function info(URL, FRAME)
{
 promo=window.open(URL, FRAME, "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,hotkeys=0,titlebar=0,width=430,height=400")
 promo.focus()
}

function info2(URL, FRAME)
{
 promo=window.open(URL, FRAME, "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,hotkeys=0,titlebar=0,width=300,height=590")
 promo.focus()
}

function explozja_live(URL, FRAME)
{
 promo=window.open(URL, FRAME, "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,hotkeys=0,titlebar=0,width=500,height=400")
 promo.focus()
}

function dayofyear()
{
today = new Date()
this.year = getFullYear(today)
endDate = new Date(this.year,0,1)
startDate = new Date(this.year,today.getMonth(),today.getDate())
msPerDay = 24 * 60 * 60 * 1000
daysLeft = (startDate - endDate) / msPerDay
daysLeft = Math.ceil(daysLeft) + 1 
document.write(daysLeft)
}

function daystoendofyear()
{
today = new Date()
this.year = getFullYear(today)
endDate = new Date(this.year,11,31)
startDate = new Date(this.year,today.getMonth(),today.getDate())
msPerDay = 24 * 60 * 60 * 1000
daysLeft = (endDate - startDate) / msPerDay
daysLeft = Math.ceil(daysLeft)
document.write(daysLeft)
}


function odliczanie()
{
endDate = new Date(1992,11,22, 9, 0, 0)
var time = new Date()
msPerDay = 24 * 60 * 60 * 1000
daysLeft = (time - endDate) / msPerDay
lata = Math.floor(daysLeft/365.25)
dni = Math.floor(daysLeft) - Math.floor(lata * 365.25)
dni2 = Math.floor(daysLeft)
hour = Math.floor((daysLeft - dni2)*24)
var xx1 = Math.floor(daysLeft) - Math.floor(lata * 365.25)
var xx2 = time.getFullYear()
if (xx1 == 365 && xx2 != 2004)
{
dni = 0;
lata = lata + 1;
}
minute = Math.floor(((daysLeft - dni2)*24 - hour) * 60)
second = Math.floor(((((daysLeft - dni2)*24 - hour) * 60)- minute) * 60)
var temp = lata+" lat  "+dni+" d  "
temp += ((hour < 10) ? "0" : "") + hour+" h  "
temp += ((minute < 10) ? "0" : "") + minute+" m  "
temp += ((second < 10) ? "0" : "") + second+" s"

document.show.odlicz.value=temp

setTimeout('odliczanie()',990)
}

function datownik() {
var today = new Date()
var dzien_tyg = new Array(6)
dzien_tyg[0] = "niedziela";
dzien_tyg[1] = "poniedzia3ek";
dzien_tyg[2] = "wtorek";
dzien_tyg[3] = "środa";
dzien_tyg[4] = "czwartek";
dzien_tyg[5] = "piątek";
dzien_tyg[6] = "sobota";
var miesiac = new Array(12)
miesiac[0] = "stycznia";
miesiac[1] = "lutego";
miesiac[2] = "marca";
miesiac[3] = "kwietnia";
miesiac[4] = "maja";
miesiac[5] = "czerwca";
miesiac[6] = "lipca";
miesiac[7] = "sierpnia";
miesiac[8] = "września";
miesiac[9] = "pa1dziernika";
miesiac[10] = "listopada";
miesiac[11] = "grudnia";


with(document) {
  write(dzien_tyg[today.getDay()]+", "+today.getDate()+"&nbsp;"+miesiac[today.getMonth()]+"&nbsp;"+today.getFullYear());

}
}
var e2000     = new Date(Date.UTC(2000,0,1,12,0,0));

function place(name,latitude,ns,longitude,we,zone) {

  this.name      = name;
  this.latitude  = latitude;
  this.ns        = ns;
  this.longitude = longitude;
  this.we        = we;
  this.zone      = zone;
}

var Timezone = e2000.getTimezoneOffset();
var atlas = new Array();
atlas[0] = new place("Szczyrk","49:42:54.2",0,"19:01:24.4",1,Timezone);
atlas[1] = new place("Bielsko-Biała","49:49:15.9",0,"19:02:33.7",1,Timezone);
atlas[2] = new place("Żywiec","49:41:18.4",0,"19:12:06.5",1,Timezone);
atlas[3] = new place("Wisła","49:42:54.2",0,"19:01:24.4",1,Timezone);


function observatory(dt,latitude,longitude) {

  this.year      = getFullYear(dt);
  this.month     = dt.getMonth()+1;
  this.day       = dt.getDate();
  this.hours     = dt.getHours();
  this.minutes   = dt.getMinutes();
  this.seconds   = dt.getSeconds();
  this.tz        = dt.getTimezoneOffset(); // minutes
  this.latitude  = latitude;
  this.longitude = longitude;
}

var observer  = new observatory(e2000,49.715056,19.023444);
var observer2  = new observatory(e2000,49.821083,19.042694);
var observer3  = new observatory(e2000,49.688444,19.201806);


function planet(name,L,a,e,i,N,P) {

  this.name=name;
  this.L=L;
  this.a=a;
  this.e=e;
  this.i=i;
  this.N=N;
  this.P=P;
}

var planets=new Array();

planets[2]=new planet("Earth",
   new Array(100.466449,  36000.7698231,    0.00030368,    0.000000021),
   new Array(  1.000001018,   0.0,          0.0,           0.0),
   new Array(  0.01670862,   -0.000042037, -0.0000001236,  0.00000000004),
   new Array(  0.0,           0.0,          0.0,           0.0),
   new Array(  0.0,           0.0,          0.0,           0.0),
   new Array(102.937348,      1.7195269,    0.00045962,    0.000000499));


function jd(obs,actual) {
  var year  = obs.year;
  var month = obs.month;
  if (month < 3) {month += 12; year -= 1};
  var a = Math.floor(year/100);
  var b = 2-a+Math.floor(a/4);
  var j = Math.floor(365.25*(year+4716))+Math.floor(30.6001*(month+1))+
           obs.day+b-1524.5;
  if (actual) {
     j+=(obs.hours+((obs.minutes+obs.tz)/60.0)+(obs.seconds/3600.0))/24;
  }
  return j;
}

function local_sidereal(obs) {
  var T=(jd(obs,false)-2451545.0)/36525;
//  var T=(jd(obs,false)-51544.5)/36525;

// var d=(jd(obs,false)-51544.5);
  var res=(100.46061837+T*(36000.770053608+T*(0.000387933-T/38710000.0)))/15.0;
//  var res=(280.46061837+T*(360.98564736629*d+T*(0.000387933-T/38710000.0)))/15.0;
  res+=1.00273790935*(obs.hours+(obs.minutes+obs.tz+(obs.seconds/60.0))/60.0);
  res-=obs.longitude/15.0;
  while (res < 0) res+=24.0;
  while (res > 24) res-=24.0;
  return res;
}

function helios(p,obs) {
  var T=(jd(obs,true)-2451545.0)/36525;
  var T2=T*T;
  var T3=T2*T;
  var N=rev(p.N[0]+p.N[1]*T+p.N[2]*T2+p.N[3]*T3);
  var i=p.i[0]+p.i[1]*T+p.i[2]*T2+p.i[3]*T3;
  var L=rev(p.L[0]+p.L[1]*T+p.L[2]*T2+p.L[3]*T3);
  var a=p.a[0]+p.a[1]*T+p.a[2]*T2+p.a[3]*T3;
  var e=p.e[0]+p.e[1]*T+p.e[2]*T2+p.e[3]*T3;
  var P=rev(p.P[0]+p.P[1]*T+p.P[2]*T2+p.P[3]*T3);
  var M=rev(L-P);
  var w=rev(L-N-M);
  var E0=M+(180.0/Math.PI)*e*sind(M)*(1+e*cosd(M));
  var E=E0-(E0-(180.0/Math.PI)*e*sind(E0)-M)/(1-e*cosd(E0));
  while (Math.abs(E0-E) > 0.0001) {
     E0=E;
     E=E0-(E0-(180.0/Math.PI)*e*sind(E0)-M)/(1-e*cosd(E0));
  };
  var x=a*(cosd(E)-e);
  var y=a*Math.sqrt(1-e*e)*sind(E);
  var r=Math.sqrt(x*x+y*y);
  var v=rev(atan2d(y,x));
  var xeclip=r*(cosd(N)*cosd(v+w)-sind(N)*sind(v+w)*cosd(i));
  var yeclip=r*(sind(N)*cosd(v+w)+cosd(N)*sind(v+w)*cosd(i));
  var zeclip=r*sind(v+w)*sind(i);
  return new Array(xeclip,yeclip,zeclip);
}

function radecr(obj,base,obs) {
  var x=obj[0];
  var y=obj[1];
  var z=obj[2];
  var jdobs=jd(obs,true);
//  var obl=23.439291111-3.563E-7*(jdobs-2451543.5);
  var obl=23.439291111-0.00054184027*((jdobs-2451543.5)/36525)-6.828704E-9*Math.pow(((jdobs-2451543.5)/36525),2)+2.09838E-8*Math.pow(((jdobs-2451543.5)/36525),3);
  var x1=x-base[0];
  var y1=(y-base[1])*cosd(obl)-(z-base[2])*sind(obl);
  var z1=(y-base[1])*sind(obl)+(z-base[2])*cosd(obl);
  var ra=rev(atan2d(y1,x1))/15.0;
  var dec=atan2d(z1,Math.sqrt(x1*x1+y1*y1));
  var r=Math.sqrt(x1*x1+y1*y1+z1*z1);
  return new Array(ra,dec,r);
}

function doSun(obs) {
  var oname="SZCZYRK"
  var obscopy=new Object();
  for (i in obs) obscopy[i] = obs[i];
  obscopy.hours=12;
  obscopy.minutes=0;
  obscopy.seconds=0;
  var sun_xyz=new Array(0.0,0.0,0.0);
  var earth_xyz=helios(planets[2],obs);
  var radec=radecr(sun_xyz,earth_xyz,obs);
  var ra=radec[0];
  var dec=radec[1];
  var r=radec[2];
  var lst=local_sidereal(obs);
  var x=r*cosd(15.0*(lst-ra))*cosd(dec);
  var y=r*sind(15.0*(lst-ra))*cosd(dec);
  var z=r*sind(dec);
  // rotate so z is the local zenith
  var xhor=x*sind(obs.latitude)-z*cosd(obs.latitude);
  var yhor=y;
  var zhor=x*cosd(obs.latitude)+z*sind(obs.latitude);
  var azimuth=rev(atan2d(yhor,xhor)+180.0); // so 0 degrees is north
  var altitude=atan2d(zhor,Math.sqrt(xhor*xhor+yhor*yhor));
  with (document) {
     lst=local_sidereal(obscopy);
     earth_xyz=helios(planets[2],obscopy);
     radec=radecr(sun_xyz,earth_xyz,obscopy);
     ra=radec[0];
     dec=radec[1];
     UTsun=12.0+ra-lst;
     if (UTsun < 0.0) UTsun+=24.0;
     if (UTsun > 24.0) UTsun-=24.0;
     var twilight= -0.833333333333333;
      {
        cosLHA=(sind(twilight)-sind(obs.latitude)*sind(dec)) /
               (cosd(obs.latitude)*cosd(dec));
        if (cosLHA > 1.0) {
           writeln("--:--<BR>");
           writeln("--:--");
        } else if (cosLHA < -1.0) {
           writeln("--:--<BR>");
           writeln("--:--");
        } else {
           lha=acosd(cosLHA)/15.0;
           write(anglestring(UTsun-lha)+" "+anglestring(UTsun+lha));
        }
     }
 
     close();
  }
  focus();
}

var firsttime = true; 

function clockhandler() {
  var now = new Date();
  if (firsttime) {
    updateplace();
    observer.tz=now.getTimezoneOffset();
    document.table1.ut_offset=observer.tz;
    firsttime=false;  
  }
  observer.year    = getFullYear(now);
  observer.month   = now.getMonth()+1;
  observer.day     = now.getDate();
  observer.hours   = now.getHours();
  observer.minutes = now.getMinutes();
  observer.seconds = now.getSeconds();
  rewrite1();
}

function rewrite1() {
  with (document.table1) {
    local_date=datestring(observer);
    local_time=timestring(observer,false);
    var ut_offset=observer.tz;
    julian=jd(observer,true);
    ut_time=timestring(observer,true);
    var lstn=local_sidereal(observer);
    var lstni=Math.floor(lstn);
    var lsts=((lstni < 10) ? "0" : "") + lstni;
    lstn=60*(lstn-lstni); lstni=Math.floor(lstn);
    lsts+=((lstni < 10) ? ":0" : ":") + lstni;
    lstn=60*(lstn-lstni); lstni=Math.floor(lstn);
    lsts+=((lstni < 10) ? ":0" : ":") + lstni;
    lst=lsts;
  }
}

function updatelocal() {
  with (document.table1) {
    var col1=local_date.value.indexOf(":");
    var col2=local_date.value.lastIndexOf(":");
    var col3=local_date.value.length;
    observer.year=parseInt(local_date.value.substring(0,col1),10);
    if (observer.year < 100) {
       alert("Years should be 4 digits long");
       if (observer.year>50) {observer.year=observer.year+1900}
       else                  {observer.year=observer.year+2000}
    }

  }
}


function updateplace() {
  with (document.table1) {
     {

   var North=true;

    var West=true;
      var ut_offset = atlas[0].zone;
      var lat=parsecol(atlas[0].latitude);
      observer.latitude=North?lat:-lat;
      var lon=parsecol(atlas[0].longitude);
      observer.longitude=West?-lon:lon;
      observer.tz = atlas[0].zone;
      rewrite1();
    } 
  }
}


function updatell() {
  with (document.table1) {
    var lat=parsecol(atlas[0].latitude);
    observer.latitude=0;
    var lon=parsecol(atlas[0].longitude);
    observer.longitude=1;
    rewrite1();
  }
}

function datestring(now) {
  var datestr = "";  datestr += now.year;
  datestr += ((now.month < 10) ? ":0" : ":") + now.month;
  datestr += ((now.day < 10) ? ":0" : ":") + now.day;
  return datestr;
}

function getFullYear(now) {
   var year = now.getYear();
  if (year==0) {year=2000}
  if (year<1900) {year=year+1900}
  return year;
}

function timestring(now,wantut) {
  var hours   = now.hours;
  var minutes = now.minutes;
  var seconds = now.seconds;
  if (wantut) {
    minutes+=now.tz;
    hours+=Math.floor(minutes/60.0);
    minutes=minutes-Math.floor(minutes/60.0)*60;
    if (hours > 24) hours-=24;
    if (hours < 0)  hours+=24;
  }
  var timestr = ((hours < 10) ? "0" : "") + hours;
  timestr    += ((minutes < 10) ? ":0" : ":") + minutes;
  timestr    += ((seconds < 10) ? ":0" : ":") + seconds;
  return timestr;
}

function anglestring(a) {
  var deg = Math.abs(a+(3/360));
//  var min = Math.floor(60.0*(deg-Math.floor(deg)));
//  var sec = Math.round(3600.0*(deg-Math.floor(deg)-(min/60)));
  var min = Math.round(60.0*(deg-Math.floor(deg)));

  if (min >= 60) {
     deg+=1;
     min=0;
  }

  var anglestr=((Math.floor(deg) < 100) ? "" : "" );
  anglestr += ((a < 0) ? "-" : "&nbsp;");
  anglestr+=((Math.floor(deg) < 10) ? "0" : "" )+Math.floor(deg);
  anglestr+=((min < 10) ? ":0" : ":" )+(min);
//  anglestr+=((sec < 10) ? ":0" : ":" )+(sec);
  return anglestr;
}

function parsecol(str) {
var col1=str.indexOf(":");
var col2=str.lastIndexOf(":");
var res=parseInt(str.substring(0,col1),10) +
        (parseInt(str.substring(col1+1,col2),10)/60.0) +
        (parseInt(str.substring(col2+1,str.length),10)/3600.0);
    return res;
}

function rev(angle) {
   var a = angle - Math.floor(angle/360.0)*360.0;
   return a;
}

function sind(angle) {
   var a = Math.sin((angle*Math.PI)/180.0);
   return a;
}

function cosd(angle) {
   var a = Math.cos((angle*Math.PI)/180.0);
   return a;
}

function tand(angle) {
   var a = Math.tan((angle*Math.PI)/180.0);
   return a;
}

function asind(c) {
   var a =(180.0/Math.PI)*Math.asin(c);
   return a;
}

function acosd(c) {
   var a =(180.0/Math.PI)*Math.acos(c);
   return a;
}

function atan2d(y,x) {
   var a = (180.0/Math.PI)*Math.atan(y/x) - 180.0*(x<0);
   return a;
}