function ut(h,m,z) { // Zamien czas lokalny na UTC, hms --> h.xxxx return (h-z+m/60); } // ******************************************* function jd(y,m,d,u) { // Standaryzuj date i czas return (367*y)-Math.floor((7/4)*(Math.floor((m+9)/12)+y))+Math.floor(275*m/9)+d-730531.5+(u/24) } // ******************************************* function azimuth(lg,la,ye,mo,da,ho,mi,zo) { with (Math) { var uu=ut(ho,mi,zo); var jj=jd(ye,mo,da,uu); var T=jj/36525; var k=PI/180.0; var M=357.5291+35999.0503*T-0.0001559*T*T-0.00000045*T*T*T M=M % 360 var Lo=280.46645+36000.76983*T+0.0003032*T*T Lo=Lo % 360 var DL=(1.9146-0.004817*T-0.000014*T*T)*sin(k*M)+(0.019993-0.000101*T)*sin(k*2*M)+0.00029*sin(k*3*M) var L=Lo+DL var eps=23.43999-0.013*T var delta=(1/k)*asin(sin(L*k)*sin(eps*k)) var RA=(1/k)*atan2(cos(eps*k)*sin(L*k),cos(L*k)) RA=(RA+360) % 360 var GMST=280.46061837+360.98564736629*jj+0.000387933*T*T-T*T*T/38710000 GMST=(GMST+360) % 360 var LMST=GMST+lg var H=LMST-RA // var eqt=(Lo-RA)*4 var azm=(1/k)*atan2(-sin(H*k),cos(la*k)*tan(delta*k)-sin(la*k)*cos(H*k)) azm=(azm+360) % 360 return azm } } // KONIEC: function azimuth() // ******************************************* function altitude(lg,la,ye,mo,da,ho,mi,zo) { with (Math) { var uu=ut(ho,mi,zo); var jj=jd(ye,mo,da,uu); var T=jj/36525; var k=PI/180.0; var M=357.5291+35999.0503*T-0.0001559*T*T-0.00000045*T*T*T M=M % 360 var Lo=280.46645+36000.76983*T+0.0003032*T*T Lo=Lo % 360 var DL=(1.9146-0.004817*T-0.000014*T*T)*sin(k*M)+(0.019993-0.000101*T)*sin(k*2*M)+0.00029*sin(k*3*M) L=Lo+DL var eps=23.43999-0.013*T var delta=(1/k)*asin(sin(L*k)*sin(eps*k)) var RA=(1/k)*atan2(cos(eps*k)*sin(L*k),cos(L*k)) RA=(RA+360) % 360 var GMST=280.46061837+360.98564736629*jj+0.000387933*T*T-T*T*T/38710000 GMST=(GMST+360) % 360 var LMST=GMST+lg var H=LMST-RA // var eqt=(Lo-RA)*4 var alt=(1/k)*asin(sin(la*k)*sin(delta*k)+cos(la*k)*cos(delta*k)*cos(H*k)) return alt; } // KONIEC: with (Math) } // KONIEC: function altitude() // ******************************************* function settoday() { // Pobierz z komputera - "Teraz" today=new Date() thisyear=today.getYear() if (thisyear<=1900) thisyear=thisyear+1900 // for Netscape on Mac thismonth=today.getMonth()+1 thisday=today.getDate() thishour=today.getHours() thisminute=today.getMinutes() offset=today.getTimezoneOffset() if (offset>=1380) offset=offset-1440 // for Netscape on Mac thiszone=-offset/60 Rok=thisyear; Mies=thismonth; Dzien=thisday; Godz=thishour; Minuta=thisminute; Zona=thiszone; } // KONIEC: function settoday() // ******************************************* function sunpos() { // Pozycja slonca: Azymut, Elewacja var lg=14; // dlugosc geograficzna - stopnie var lgmi=32; // dlugosc geograficzna - minuty var la=53; // szerokosc geograficzna - stopnie var lami=25 // szerokosc geograficzna - var ye=Rok; var mo=Mies; var da=Dzien; var ho=Godz; var mi=Minuta; var zo=Zona; // czas letni = GMT+2; zimowy = GMT+2 var k=Math.PI/180.0; lg=lg+lgmi/60 la=la+lami/60 lgo=lg lao=la aa=180.0 ho=ho // godzina pozycji var alt=altitude(lg,la,ye,mo,da,ho,mi,zo) // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- // *** Wyswietlaj ELEWACJE *** // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- z=alt+0.055; if (alt<0) (alt=0); // ponizej horyzontu elew. --> 00.0 A = eval(Math.floor(z)) if (A<1) A=0 if (A<=9){ document.images.a11.src=c0.src document.images.b11.src=eval("c"+A+".src") } else { document.images.a11.src=eval("c"+Math.floor(A/10)+".src") document.images.b11.src=eval("c"+(A%10)+".src") } // -=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- z=(z-A)*100 B = eval(Math.floor(z)) if (B<1) B=0 if (B<=9){ document.images.a21.src=c0.src // document.images.b21.src=eval("c"+B+".src") } else { document.images.a21.src=eval("c"+Math.floor(B/10)+".src") // document.images.b21.src=eval("c"+(B%10)+".src") } if (alt<=0) document.a11.src=cd.src // znak "dół" ponizej // *** KONIEC: Wyswietlaj ELEWACJE *** // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- var azm=azimuth(lg,la,ye,mo,da,ho,mi,zo) // -=-=-=-=-=-=-=-==-=-=-=-=-=-=-=- // *** Wyswietlaj AZYMUT *** // -=-=-=-=-=-=-=-==-=-=-=-=-=-=-=- azm=azm-180 if (azm<0) document.j1.src=ce.src else document.images.j1.src=cw.src if (alt<=0) document.j1.src=cd.src // znak "dół" ponizej z=Math.abs(azm); z=z+0.055; if (alt<=0) z=0.0; // ponizej horyzontu az --> 000.0 A = eval(Math.floor(z)) if (z>99) { document.images.a01.src=eval("c"+Math.floor(A/100)+".src") A=A%100; z=z%100; } else { document.images.a01.src=c0.src } if (A<1) A=0 if (A<=9){ document.images.a31.src=c0.src document.images.b31.src=eval("c"+A+".src") } else { document.images.a31.src=eval("c"+Math.floor(A/10)+".src") document.images.b31.src=eval("c"+(A%10)+".src") } z=Math.abs((z-A)*100) B = eval(Math.floor(z)) if (B<1) B=0 if (B<=9){ document.images.a41.src=c0.src } else { document.images.a41.src=eval("c"+Math.floor(B/10)+".src") } // *** KONIEC: Wyswietlaj AZYMUT *** // -=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=- h1=0 m=0 alt1=altitude(lg,la,ye,mo,da,h1,m,zo) azm1=azimuth(lg,la,ye,mo,da,h1,m,zo) // s=-0.8333 s=0; // find midday interval for (var h=0; h<24; h++){ h2=h azm2=azimuth(lg,la,ye,mo,da,h2,m,zo) if ((azm1<=180)&&(azm2>=180)){ ha1=h1 ha2=h2 } h1=h2 azm1=azm2 } // *** --------- kiedy srodek dnia , uwzg. "time zone" --------- *** mino=1.0; for (h=ha1; h s){ dfr=Math.abs(s-altr) if (dfr<=minr) {minr=dfr; hr=h; mr=m} } } } // -=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- // *** --------- Obliczenie zachodu slonca --------- *** hs="xx" ms="xx" // poza zakresem - "xx" mins=0.1; for (h=hno+3; h s){ dfs=Math.abs(s-alts) if (dfs<=mins) {mins=dfs; hs=h; ms=m} } } } // -=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- // Wyswietl Wschod z=hr A = eval(Math.floor(z)) if (A<1) A=0 if (A<=9){ document.images.a1.src=c0.src document.images.b1.src=eval("c"+A+".src") } else { document.images.a1.src=eval("c"+Math.floor(A/10)+".src") document.images.b1.src=eval("c"+(A%10)+".src") } // -=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- z=mr B = eval(Math.floor(z)) if (B<1) B=0 if (B<=9){ document.images.a2.src=c0.src document.images.b2.src=eval("c"+B+".src") } else { document.images.a2.src=eval("c"+Math.floor(B/10)+".src") document.images.b2.src=eval("c"+(B%10)+".src") } // -=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- // Wyswietl Zachod z=hs C = eval(Math.floor(z)) if (C<1) C=0 if (C<=9){ document.images.a3.src=c0.src document.images.b3.src=eval("c"+C+".src") } else { document.images.a3.src=eval("c"+Math.floor(C/10)+".src") document.images.b3.src=eval("c"+(C%10)+".src") } // -=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- z=ms D = eval(Math.floor(z)) if (D<1) D=0 if (D<=9){ document.images.a4.src=c0.src document.images.b4.src=eval("c"+D+".src") } else { document.images.a4.src=eval("c"+Math.floor(D/10)+".src") document.images.b4.src=eval("c"+(D%10)+".src") } // -=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- } // KONIEC: function sunpos() var c1=new Image(); c1.src="cyfry//c1.gif" //obrazki cyfr: "1" .. "0" c2=new Image(); c2.src="cyfry//c2.gif" c3=new Image(); c3.src="cyfry//c3.gif" c4=new Image(); c4.src="cyfry//c4.gif" c5=new Image(); c5.src="cyfry//c5.gif" c6=new Image(); c6.src="cyfry//c6.gif" c7=new Image(); c7.src="cyfry//c7.gif" c8=new Image(); c8.src="cyfry//c8.gif" c9=new Image(); c9.src="cyfry//c9.gif" c0=new Image(); c0.src="cyfry//c0.gif" ce=new Image(); ce.src="cyfry/e.gif" // znak "E" wschod cw=new Image(); cw.src="cyfry/w.gif" // znak "W" zachod cd=new Image(); cd.src="cyfry/dol.gif" // znak "dół" ponizej // ========================================================