// Copyright Jan Nentjes - nentjes@worldonline.nl
// Copying of the script without permission is forbidden by international law
// Overname van dit script zonder toestemming van de auteur (nentjes@worldonline.nl)
// is niet toegestaan.

var taal = 0; 
var graden = ' graden'; 
var fm;

// var dagnaam = new Array('zondag','maandag','dinsdag','woensdag','donderdag','vrijdag','zaterdag','zondag','maandag');
var westerlengte = new Array(-151.17,-144.50,-139.75,-127.05,-121.63,-116.38,-114.38,-106.75,-103.00, -101.70,-77.22,-69.15,-67.02,-51.43,-44.80,-44.43,-39.80,-37.58,-35.22, -33.38,-33.21,-30.48,-30.15,-28.83,-28.03,-28.95,-27.50,-26.18,-26.17,-25.32,-25.00,-24.80,-24.08,-23.73,-23.33,-21.00,-20.47,-19.80,-19.25,-18.43,-18.00,-17.12,-16.57,-15.97,-14.52,-14.52,-14.42,-13.40,-12.57,-12.50,-10.68,-6.13,-4.83,-4.35,-3.72,-2.33,0.17, 6.25,6.85,9.08,21.96,43.28,50.1, 68.56, 70.06,74.01,75.70,99.17,122.42,123.07,158.75,0,0,0);
var noorderbreedte = new Array(-33.92,-37.50,35.67,37.58, 25.03, 39.92, 22.25,-6.13,2.00, 3.13,28.62,34.5,24.85,35.67,41.72,33.32,21.42,55.75,31.77, 35.18,68.68, 50.47, 59.55, 47.00,-26.17,41.03, 53.85, 44.48, 44.38, 54.67, 60.13, 59.37, 56.88, 38.00, 42.72, 52.25, 44.82, 41.33, 47.43, 43.87, 59.38, 48.15, 48.12, 45.82, 46.05, 35.88, 50.08, 52.52, 55.72, 41.88, 59.93,49.62,52.35,50.85,40.42,48.87,51.50, 53.43,34.03,38.70,64.15,-22.88,5.5, 12.06, 12.33,40.43,45.43,19.42,37.78,49.16,21.88,90,0,-90);
var plaats = new Array('Sydney','Melbourne','Tokyo','Seoul','Taipei','Beijng','Hongkong','Jakarta','Singapore','Kuala Lumpur','New Delhi','Kabul','Karachi','Teheran','Tbilisi','Baghdad','Mecca','Moskou','Jeruzalem','Nicosia','Moermansk','Kiev','St. Petersburg','Chisinau','Johannesburg','Istanbul','Minsk','Skopje','Bucharest','Vilnius','Helsinki','Tallinn','Riga','Athens','Sofia','Warsaw','Belgrade','Tirane','Budapest','Serajevo','Stockholm','Bratislava','Vienna','Zagreb','Ljubljana','Valletta','Prague','Berlin','Copenhagen','Rome','Oslo','Luxemburg','Amsterdam','Brussel','Madrid','Parijs','Londen','Dublin','Rabat','Lissabon','Reykjavik','Rio de Janeiro','Paramaribo','Willemstad','Oranjestad','New York','Ottawa','Mexico City','San Francisco','Vancouver','Honolulu','Noordpool','Equator','Zuidpool');
var tijdzn = new Array(-10,-10,-9,-9,-8,-8,-8,-7,-7, -8,-5.5,-4.5,-5,-3.5,-4,-3,-3,-3,-2, -2,-3, -2,-3,-2,-2,-2,-2,-1,-2,-2,-2,-2,-2,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,3,3,4,4,5,5,6,8,8,10,0,0,0);
var images = new Array('au','au','jp','kr','tw','cn','hk','id','sg','my','in','af','pk','ir','ge','iq','sa','ru','il','cy','ru','ua','ru','md','za','tr','by','mk','ro','lt','fi','ee','lv','gr','bg','pl','yu','al','hu','ba','se','sk','at','hr','si','mt','cz','de','dk','it','no','lu','nl','be','es','fr','uk','ie','ma','pt','is','br','sr','an','ab','us','ca','mx','us','ca','us','un','un','un');
var images2 = new Array('AU','AU','JP','KR','TW','CN','HK','ID','SG','MY','IN','AF','PK','IR','GE','IQ','SA','RU','IL','CY','RU','UA','RU','MD','ZA','TR','BY','MK','RO','LT','FI','EE','LV','GR','BG','PL','YU','AL','HU','BA','SE','SK','AT','HR','SI','MT','CZ','DE','DK','IT','NO','LU','NL','BE','ES','FR','UK','IE','MA','PT','IS','BR','SR','AN','AB','US','CA','MX','US','CA','US','UN','UN','UN');
var land = new Array('Australië','Australië','Japan','Zuid-Korea','Taiwan','China','China','Indonesië','Singapore','Maleisië','Indië','Afganistan','Pakistan','Iran','Georgië','Irak','Saudi-Arabië','Rusland','Israël','Cyprus','Rusland','Oekraïne','Rusland','Moldavia','Zuid-Afrika','Turkije','Wit-Rusland','Macedonië','Roemenië','Litouwen','Finland','Estland','Letland','Griekenland','Bulgarije','Polen','Servië en Montenegro','Albanië','Hongarije','Bosnië-Herzegovina','Zweden','Slowakije','Oostenrijk','Kroatië','Slovenië','Malta','Tsjechië','Duitsland','Denemarken','Italië','Noorwegen','Luxemburg','Nederland','België','Spanje','Frankrijk','Verenigd Koninkrijk','Ierland','Marokko','Portugal','IJsland','Brazilië','Suriname','Curaçao','Aruba','Verenigde Staten','Canada','Mexico','Verenigde Staten','Canada','Hawaii VS','Arctica','Evenaar','Antarctica')
var land1 = new Array('Australia','Australië','Japan','South Korea','Taiwan','China','China','Indonesia','Singapore','Malaysia','India','Afganistan','Pakistan','Iran','Georgia','Irak','Saudi Arabia','Russia','Israel','Cyprus','Russia','Ukraine','Russia','Moldova','South Africa','Turkey','Belarus','Macedonia','Romenia','Lithuania','Finland','Estonia','Latvia','Greece','Bulgaria','Poland','Serbia and Montenegro','Albania','Hongary','Bosnia and Herzegovina','Sweden','Slovakia','Austria','Croatia','Slovenia','Malta','Czech Republic','Germany','Denmark','Italy','Norway','Luxembourg','The Netherlands','Belgium','Spain','France','United Kingdom','Ireland','Morocco','Portugal','Iceland','Brazil','Suriname','Curaçao','Aruba','United States','Canada','Mexico','United States','Canada','Hawaii US','Arctica UN','UN','Antarctica UN')
var land2 = new Array('Australien','Australien','Japan','Südkorea','Taiwan','Volksrepublik China','China','Indonesie','Singapore','Malaysia','Indien','Afganistan','Pakistan','Iran','Géorgie','Irak','Saudi Arabien','Russische Föderation','Israel','Zypern','Russische Föderation','Ukraine','Russische Föderation','Moldawien','Südafrika','Türkei','Weißrussland','Mazedonien','Rumänien','Litauen','Finnland','Estland','Lettland','Griechenland','Bulgarien','Polen','Serbien und Montenegro','Albanien','Ungarn','Bosnien-Herzegowina','Schweden','Slowakei','Österreich','Kroatien','Slowenien','Malta','Tschechische Republik','Deutschland','Dänemark','Italien','Norwegen','Luxemburg','Die Niederlande','Belgien','Spanien','Frankreich','England','Irland','Marokko','Portugal','Island','Brasilien','Suriname','Curaçao','Aruba','United States','Canada','Mexico','Vereinigte Staaten','Canada','Hawaii VS','Arctica VN','VN','Antarctica VN')
var land3 = new Array('Australie','Australie','Japon','Corée du Sud','Taiwan','Chine','Chine','Indonésie','Singapour','Malaysia','Inde','Afganistan','Pakistan','Iran','Georgien','Irak','Arabie saoudite','Russie','Israël','Chypre','Russie','Ukraine','Russie','Moldavie','Afrique du Sud','Turquie','Biélorussie','Macédoine','Roumanie','Lituanie','Finlande','Estonie','Lettonie','Grèce','Bulgarie','Pologne','Serbie et Monténégro','Albanie','Hongrie','Bosnie-Herzégovine','Suède','Slovaquie','Autriche','Croatie','Slovénie','Malte','Tchéquie','Allemagne','Danemark','Italie','Norvège','Luxembourg','Pays-Bas','Belgique','Espagne','France','Royaume-Uni','Irlande','Maroc','Portugal','Islande','Brésil','Surinam','Curaçao','Aruba','Etats-Unis','Canada','Mexique','Etats-Unis','Canada','Hawaii US','Arctica UN','UN','Antarctica UN')
var halfrond = new Array(-1,-1,1,1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1);
var toevoeging = 'Noordelijk Halfrond'; 
if (taal == 1) {toevoeging = 'Northern Hemisphere'};
if (taal == 2) {toevoeging = 'Nordhemisphäre'};
if (taal == 3) {toevoeging = 'Hémisphère du nord'};

var zomervlag = 'Start';
var vlag = 'wintertijd'; if (taal == 1) {vlag = 'winter time'}; if (taal == 2) {vlag = 'Winterzeit'};

var phi = 52.35;
var lambda = -4.83;
var plaats = 'Amsterdam';
var tijdzone = -1; 
    if (taal == 0) {window.status = plaats + "  Tijdzone " + tijdzone + "  Wester Lengte " + lambda + "  Noorder Breedte " + phi +  "  " + toevoeging};
    if (taal == 1) {window.status = plaats + "  Time zone " + tijdzone + "  Longitude " + lambda + "  Latitude " + phi +  "  " + toevoeging}; 
    if (taal == 2) {window.status = plaats + "  Zeitzone " + tijdzone + "  Länge " + lambda + "  Breite " + phi +  "  " + toevoeging};  
var zonop;
var zonon;
var the_date = new Date();

var the_weekday = the_date.getUTCDay();
var d = the_date.getUTCDate();
var M = the_date.getUTCMonth() + 1;
var J = the_date.getUTCFullYear();
var dag = the_date.getDate();
var DVJ;
var lamz;
var EPS;
var extra;
var extrana;
var Eff;
var S;
var t;
var G;
var L;
var ome;
var PY;
var fa = PY / 180;
var o0;
var hwaar;
var dwaar;
var poolvlag;
var alf;
var del;
var SGNalf; 
var SGNdel;

// tijdelijke oplossing voor DVJ
 var the_date1 = new Date('January 1, 2000');
 var duur = the_date.getTime();
 var duur1 = the_date1.getTime();
 var dagvanjaar = (dag-d) + 1 + parseInt((duur - duur1)/(1000*60*60*24));   
     if (dagvanjaar > 366) {dagvanjaar = dagvanjaar -366};
 var juliaansedag = dagvanjaar + 2451545 - 1;
// alert(dagvanjaar + ' ' + juliaansedag);
//

function DagVanJaar()
{
  if (M > 12 || M <= 0) {M = ''; alert('Foute datum')};
  if (d > 31 || d <= 0) {d = ''; alert('Foute datum')};
  if (M == 2 && d == 30) {d = ''; alert('Foute datum')};
  if (M == 2 || M == 4 || M == 6 || M == 9 || M == 11) {if (d == 31) {d = ''; alert('Foute datum')}};
  if ( (J / 4 - parseInt(J / 4 + 0.001) > 0.1) && M == 2 && d == 29) {d = ''; alert('Foute datum')};
  d=parseInt(d); M=parseInt(M);

var E = (J*10000 + M*100 + d);
var M1 = 0;

if (M == 2) {M1 = 1};
if (M == 3) {M1 = -1};
if (M == 6 || M == 7) {M1 = 1};
if (M == 8) {M1 = 2};
if (M == 9 || M == 10) {M1 = 3};
if (M == 11 || M == 12) {M1 = 4};
var J1 = 0;
var J11 = 0;
if ( ( ( J / 4 - Math.floor(J / 4 + 0.001) ) < 0.1 ) && M < 3 ) {J1 = J1 - 1};
if ( ( ( J / 4 - Math.floor(J / 4 + 0.001) ) < 0.1 ) ) {J11 = J11 - 1};

  S = Math.floor(365.25 * J + 0.001);
  S = S + 30 * (M - 1) + M1 + J1 + d - 2;
var S1 = Math.floor(365.25 * J + 0.001);
    S1 = S1 + J11 + 1 - 2;
  DVJ = S - S1 + 1; // nu O.K.
//DVJ = dagvanjaar; // tijdelijke oplossing voor 2000 vervalt

  t = (S / 7) - Math.floor(S / 7 + 0.001);
  t = t * 7;
  t = Math.floor(t + 0.1);
  if (t == 0) {t = 7};

//  S = S + 1721047;

var the_datex = new Date();
var the_hourx = the_datex.getUTCHours();
var the_minutex  =  the_datex.getUTCMinutes();
var the_secondx = the_datex.getUTCSeconds();
var UTx = the_hourx + the_minutex/60 + the_secondx/3600;

    G = 356.6005 + 0.9856003 * (DVJ+UTx/24);
    L = 279.4346 + 0.9856474 * (DVJ+UTx/24);
    ome = 241.1457 + 0.0529538 * (DVJ+UTx/24);
    PY = Math.PI;
    fa = PY / 180;
    EPS = 23.4401 + 0.00256 * Math.cos(ome * fa);
    o0 = 99.4288 + 0.9856474 * Math.floor(DVJ+UTx/24);
    lamz = L - 0.0057 + 1.9149 * Math.sin(G * fa) + 0.02 * Math.sin(2 * G * fa) + 0.0003 * Math.sin(3 * G * fa) -0.0048 * Math.cos(ome * fa);
    while (lamz > 360) {lamz = lamz - 360};
    while (lamz < 0) {lamz = lamz + 360};
    Eff = 591.8 * Math.sin(2 * L * fa) - 459.6 * Math.sin(G * fa) + 39.6 * Math.sin(G * fa)* Math.cos(2 * L * fa) - 12.7 * Math.sin(4 * L * fa) - 4.8 * Math.sin(2 * G * fa);

};

DagVanJaar();


function offButton(){var the_box = window.document.form_g.radio_1;	
	if (the_box.checked == true) 
        {window.document.form_g.radio_2.checked = false; zomervlag = 'Omhoog';}}

function onButton(){var the_box = window.document.form_g.radio_2;	
	if (the_box.checked == true) 
        {window.document.form_g.radio_1.checked = false; zomervlag = '';}}


var verschil = dag-d;
    if (verschil > 1) {verschil = -1};
    if (verschil < -1) {verschil = 1};
var dvj0 = DVJ +  verschil; 
var JD = S + 1721047;

// ingelast begin
   var the_date = new Date();
   var the_weekday = the_date.getUTCDay();
   var the_hour = the_date.getUTCHours();
   var the_minute  =  the_date.getUTCMinutes();
   var the_second = the_date.getUTCSeconds();
   var UT = the_hour + the_minute/60 + the_second/3600;
   JD = JD + UT/24 -0.5;
   JD = Math.round(JD * 100);
   JD = JD/100;
// ingelast eind 

    t = t +  verschil;
    if (t < 0) {t = t + 7};
    if (t > 7) {t = t - 7};
var afr = (JD - dvj0 - 0.5) / 7; afr = afr - Math.floor(afr + 0.001);
var afroming = 1 + Math.floor(afr * 7 + 0.001);
//  afroming = ((JD - dvj0 - 0.5) MOD 7) + 1;
    if (afroming < 3) {afroming = afroming + 7};
var Wnr = Math.floor((dvj0 + afroming) / 7);

var lente = verschil + Math.round(lamz / 0.986);
var zomer = verschil + Math.round((lamz - 90) / 0.986);
var herfst = verschil + Math.round((lamz - 180) / 0.986);
var winter = verschil + Math.round((lamz - 270) / 0.986);

 function lokaal()
{
var dagnaam = new Array('zondag','maandag','dinsdag','woensdag','donderdag','vrijdag','zaterdag','zondag','maandag');
document.writeln ("<b>");
// document.writeln (" Verschil = " + verschil + ". ");
document.writeln ("Weeknummer = " + Wnr + ". ");
document.writeln (" Dagnummer = " + dvj0 + ". ");
document.writeln (" Dagnaam =  " + dagnaam[t] + ". ");
document.writeln (" Juliaanse dag = " + JD + ". " );
document.writeln ("<br>");
// document.writeln ("Ware middag voor " + plaats + " is om " + extra + " uur");
if (0 <= lamz && lamz < 90) {document.writeln("Aantal dagen na het begin van de lente = " + lente)};
if (90 <= lamz && lamz < 180) {document.writeln ("Aantal dagen na het begin van de zomer = " + zomer)};
if (180 <= lamz && lamz < 270) {document.writeln ("Aantal dagen na het begin van de herfst = " + herfst)};
if (270 <= lamz && lamz < 360) {document.writeln ("Aantal dagen na het begin van de winter = " + winter)}; 
// document.writeln ("Aantal uren zon vandaag = " + dagl);
document.writeln (" voor het noordelijk halfrond.</b>");
};

    function local()
{
if (taal == 1) {graden = ' degrees'};
if (taal == 2) {graden = ' Grade'};
var dagnaam = new Array('sunday','monday','tuesday','wednesday','thursday','friday','saturday','sunday','monday');
document.writeln ("<b>");
// document.writeln (" Verschil = " + verschil + ". ");
document.writeln ("Week number = " + Wnr + ". ");
document.writeln (" Day number = " + dvj0 + ". ");
document.writeln (" Day name =  " + dagnaam[t] + ". ");
document.writeln (" Julian day = " + JD + ". " );
document.writeln ("<br>");
// document.writeln ("Ware middag voor " + plaats + " is om " + extra + " uur");
if (0 <= lamz && lamz < 90) {document.writeln("Number of days after the beginning of the spring = " + lente)};
if (90 <= lamz && lamz < 180) {document.writeln ("Number of days after the beginning of the summer = " + zomer)};
if (180 <= lamz && lamz < 270) {document.writeln ("Number of days after the beginning of the autumn = " + herfst)};
if (270 <= lamz && lamz < 360) {document.writeln ("Number of days after the beginning of the winter = " + winter)}; 
// document.writeln ("Aantal uren zon vandaag = " + dagl);
document.writeln (" for the northern hemisphere.</b>");
};

    function lokal()
{
if (taal == 1) {graden = ' degrees'};
if (taal == 2) {graden = ' Grade'};
var dagnaam = new Array('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag', 'Montag');
document.writeln ("<b>");
// document.writeln (" Verschil = " + verschil + ". ");
document.writeln ("Wochen Nummer = " + Wnr + ". ");
document.writeln (" Tag Nummer = " + dvj0 + ". ");
document.writeln (" Tag Name =  " + dagnaam[t] + ". ");
document.writeln (" Julianische Tag = " + JD + ". " );
document.writeln ("<br>");
// document.writeln ("Ware middag voor " + plaats + " is om " + extra + " uur");
if (0 <= lamz && lamz < 90) {document.writeln("Anzahl der Tagen nach dem Anfang des Fruelings = " + lente)};
if (90 <= lamz && lamz < 180) {document.writeln ("Anzahl der Tagen nach dem Anfang des Sommers = " + zomer)};
if (180 <= lamz && lamz < 270) {document.writeln ("Anzahl der Tagen nach dem Anfang des Herbstes = " + herfst)};
if (270 <= lamz && lamz < 360) {document.writeln ("Anzahl der Tagen nach dem Anfang des Winters = " + winter)}; 
// document.writeln ("Aantal uren zon vandaag = " + dagl);
document.writeln (" für die nördliche Halbkugel.</b>");
};

 function zon()
{
    vlag ='wintertijd'; //if (taal == 1) {vlag = 'winter time'};
var uu = - tijdzone; // uu = 1 voor wintertijd, anders uu = 2 voor Amsterdam

// var dag1 = 25; // maart 2007 voor Europa
// var dag1a = 11; // maart 2007 voor Amerika
// var dag2 = 28; // oktober 2007 voor Europa
// var da2a = 4; // november 2007 voor Amerika

    uu = - tijdzone; // uu = 1 voor wintertijd, anders uu = 2 voor Amsterdam
    if (d>=dag1 && M==3 && phi>0) {uu=-tijdzone+1; vlag='zomertijd';}; 
    if ((M>3 && M<11) && phi>0) {uu=-tijdzone+1; vlag='zomertijd';}; 
    if (d>=dag2 && M==10 && phi>0) {uu=-tijdzone; vlag='wintertijd';}; 

    if (M<3 && phi<0) {uu=-tijdzone+1; vlag='zomertijd';};
    if (d<dag1 && M==3 && phi<0) {uu=-tijdzone+1; vlag='zomertijd';};
    if (d>=dag2 && M==10 && phi<0) {uu=-tijdzone+1; vlag='zomertijd';}; 
    if (M>=11 && phi<0) {uu=-tijdzone+1; vlag='zomertijd';};

// Voor Noord-Amerika 
var sein = 'groen'; 
    if (d>=dag1a && d<dag1 && M==3 && phi>0) {sein = 'rood';}; 
    if (d>=dag2 && M==10 && phi>0) {sein = 'rood';};  
    if (d<dag2a && M==11 && phi>0) {sein = 'rood';};      
    if ((sein == 'rood') && (plaats == 'Anchorage' || plaats == 'New York' || plaats == 'San Francisco' || plaats == 'Vancouver' || plaats == 'Honolulu' || plaats == 'Ottawa' || plaats == 'Toronto et Quebec' || plaats == 'Denver' || plaats == 'Mexico City')) {uu=-tijdzone+1; vlag='zomertijd';};
// special Noord-Amerika 2006
    if (plaats == 'Paramaribo' || plaats == 'Willemstad' || plaats == 'Oranjestad') {uu=-tijdzone; vlag='wintertijd';};
    if (plaats == 'Jerusalem' || plaats == 'Jérusalem' || plaats == 'Jeruzalem') {if (M>9 || M<3 || (d < 31 && M == 3)) {uu=-tijdzone; vlag='wintertijd';};}; 
// special Jerusalem voor 2006
    if (plaats == 'Sydney' || plaats == 'Melbourne') {uu=-tijdzone; vlag='wintertijd'; if (M<4 || (d < 3 && M == 4) || (d >= 2 && M == 10) || M>10) {uu=-tijdzone+1; vlag='zomertijd';};}; 
    if (plaats == 'Seoul' || plaats == 'Taipei') {uu=-tijdzone; vlag='wintertijd';};
    if (plaats == 'Beijing' || plaats == 'Peking') {uu=-tijdzone; vlag='wintertijd';};
    if (plaats == 'Tokyo') {uu=-tijdzone; vlag='wintertijd';};
    if (plaats == 'Hong Kong' || plaats == 'Hongkong') {uu=-tijdzone; vlag='wintertijd';};
    if (plaats == 'Singapore' || plaats == 'Singapour') {uu=-tijdzone; vlag='wintertijd';};
    if (plaats == 'Johannesburg') {uu=-tijdzone; vlag='wintertijd';};
    if (plaats == 'Honolulu') {uu=-tijdzone; vlag='wintertijd';};
    if (plaats == 'Rio de Janeiro') {uu=-tijdzone; vlag='wintertijd';};
    if (plaats == 'Rabat') {uu=-tijdzone; vlag='wintertijd';};
    if (plaats == 'Reykjavik') {uu=-tijdzone; vlag='wintertijd';};
    if (plaats == 'Kabul' || plaats == 'Kaboul') {uu=-tijdzone; vlag='wintertijd';};
    if (plaats == 'Karachi') {uu=-tijdzone; vlag='wintertijd';};
    if (plaats == 'Teheran' || plaats == 'Tehran' || plaats == 'Téhéran') {uu=-tijdzone; vlag='wintertijd';};
    if (plaats == 'Tiflis' || plaats == 'Tbilisi') {uu=-tijdzone; vlag='wintertijd';};
// Special Teheran voor 2006 
    if (plaats == 'Mecca' || plaats == 'Makkah' || plaats == 'La Mecque') {uu=-tijdzone; vlag='wintertijd';};
    if (plaats == 'Baghdad' || plaats == 'Bagdad') {if (M<4 || M>9) {uu=-tijdzone; vlag='wintertijd';};}; 
// special Bagdad voor 2006
    if (plaats == 'New Delhi' || plaats == 'Neu Delhi') {uu=-tijdzone; vlag='wintertijd';};
    if (plaats == 'Jakarta') {uu=-tijdzone; vlag='wintertijd';};


if (zomervlag == 'Omhoog') {vlag='zomertijd'; uu=-tijdzone+1;};
if (zomervlag == '') {vlag='wintertijd'; uu=-tijdzone;}; 

if (taal == 1 && tijdzone == -uu) {vlag = 'winter time'};
if (taal == 1 && tijdzone == -uu +1 ) {vlag = 'summer time'};

if (taal == 2 && tijdzone == -uu) {vlag = 'Winterzeit'};
if (taal == 2 && tijdzone == -uu +1 ) {vlag = 'Sommerzeit'};

    G = 356.6005 + 0.9856003 * DVJ;
    L = 279.4346 + 0.9856474 * DVJ;
    ome = 241.1457 + 0.0529538 * DVJ;
    PY = Math.PI;
    fa = PY / 180;
    EPS = 23.4401 + 0.00256 * Math.cos(ome * fa);
    o0 = 99.4288 + 0.9856474 * Math.floor(DVJ);
    lamz = L - 0.0057 + 1.9149 * Math.sin(G * fa) + 0.02 * Math.sin(2 * G * fa) + 0.0003 * Math.sin(3 * G * fa) -0.0048 * Math.cos(ome * fa);
    while (lamz > 360) {lamz = lamz - 360};
    while (lamz < 0) {lamz = lamz + 360};
    Eff = 591.8 * Math.sin(2 * L * fa) - 459.6 * Math.sin(G * fa) + 39.6 * Math.sin(G * fa)* Math.cos(2 * L * fa) - 12.7 * Math.sin(4 * L * fa) - 4.8 * Math.sin(2 * G * fa);

    extra = uu + 12 + (lambda / 15) - (Eff / 3600);
    if (extra > 24) {extra = extra - 24};
    if (extra < 0) {extra = extra + 24};
    extrana = extra - 12; if (extrana < 0) {extrana = extrana + 24};
    // Berekening van alfa en delta van de zon
    alf = Math.atan(Math.cos(EPS * fa) * Math.tan(lamz * fa)) / fa;
    del = Math.asin(Math.sin(EPS * fa) * Math.sin(lamz * fa)) / fa;

    if (alf > 0) {SGNalf = 1};
	 if (alf < 0) {SGNalf = -1};
	 if (alf == 0) {SGNalf = 0};
	 if (del > 0) {SGNdel = 1};
	 if (del < 0) {SGNdel = -1};
	 if (del == 0) {SGNdel = 0};
 	 if (SGNalf != SGNdel)  {alf = alf + 180};
	 if (alf < 0)  {alf = alf + 360};

  if (phi >= 0) {hwaar = 90 - phi + del};
  if (phi < 0) {hwaar = 180 - (90 - phi + del)};
  if (phi > 0) {dwaar = -(90 - phi - del)};
  if (phi <= 0) {dwaar = -180 + (90 - phi - del)};
  if (hwaar > 90) {hwaar = 180 - hwaar};
  if (dwaar < -90) {dwaar = -180 - dwaar};
// hwaar en dwaar zijn max. en min hoogten voor de zon

// alert("Zon exact in het zuiden: " + extra + " uur");

// REM ------------------------ 
    poolvlag = 0;
 if (phi > (90 - EPS)) {poolvlag = 1};
 if (phi < (-90 + EPS)) {poolvlag = 1};

 if (poolvlag == 1)
{
 if (hwaar < 0.1) {zonop = extra; zonon = extra; poolvlag = 2;}; // GOTO 14060
 if (dwaar > -0.1) {zonop = extra - 12; zonon = extra + 12; poolvlag = 3;}; // GOTO 14060
    while (zonon < 0) {zonon = zonon + 24};
    while (zonon >= 24) {zonon = zonon - 24};
    while (zonop < 0) {zonop = zonop + 24};
    while (zonop >= 24) {zonop = zonop - 24};
};

//  REM ------------------------ Sla over voor poolgebied 
// 14040 REM
 if (poolvlag == 0 || poolvlag == 1) 
{
 var arg = (-0.011454 - Math.sin(phi * fa) * Math.sin(del * fa)) / (Math.cos(phi * fa)* Math.cos(del * fa));
     if (1 - arg * arg <= 0) {alert("Er is een fout opgetreden")};

var FNAC = PY/2 - Math.atan(arg/Math.sqrt(1-arg*arg)); // FNAC = Math.acos(arg)

 var H0 = FNAC / fa;
 var mop = ((alf + lambda - o0) - H0) / 360;
     mop = mop - Math.floor(mop);

var o = o0 + 360.9856474 * mop;
var h = o - lambda - alf;

var between = Math.sin(phi * fa) * Math.sin(del * fa) + Math.cos(phi * fa)* Math.cos(del * fa) * Math.cos(h * fa);
var FNAS = Math.atan(between/Math.sqrt(1-between*between)); // FNAS = Math.asin(between)

var hoogte = FNAS / fa;
var delmop = (hoogte + 0.8333) / (360 * Math.cos(del * fa) * Math.cos(phi * fa)* Math.sin(h * fa));

var mon = ((alf + lambda - o0) + H0) / 360;
    mon = mon - Math.floor(mon);
    o = o0 + 360.9856474 * mon;
    h = o - lambda - alf;
    between = Math.sin(phi * fa) * Math.sin(del * fa) + Math.cos(phi * fa)* Math.cos(del * fa) * Math.cos(h * fa);
    hoogte = FNAS / fa;
var delmon = (hoogte + 0.8333) / (360 * Math.cos(del * fa) * Math.cos(phi * fa)* Math.sin(h * fa));

    zonop = uu + 24 * (mop + delmop);
    zonon = uu + 24 * (mon + delmon);

    while (zonon < 0) {zonon = zonon + 24};
    while (zonon >= 24) {zonon = zonon - 24};
    while (zonop < 0) {zonop = zonop + 24};
    while (zonop >= 24) {zonop = zonop - 24};
};


// 14060 REM ------ vervolg voor poolgebied 
   if (poolvlag != 0) 
{
var rondgang=0;
var boodschap = ' We bevinden ons in het poolgebied \n vlakbij middernachtzon of poolnacht';
var boodschap1 = ' We bevinden ons in het poolgebied \n met pooldag en middernachtzon';
var boodschap2 = ' We bevinden ons in het poolgebied \n met poolnacht'; 

if (taal == 1) {boodschap = ' We are in the polar region \n near polar day or polar night'};
if (taal == 1) {boodschap1 = ' We are in the polar region \n with polar day and midnight sun'};
if (taal == 1) {boodschap2 = ' We are in the polar region \n with polar night'}; 

if (taal == 2) {boodschap = ' Wir sind in der polaren Region \n nahe polarem Tag oder polarer Nacht'};
if (taal == 2) {boodschap1 = ' Wir sind in der polaren Region \n mit polarem Tag und Mitternachtsonne'};
if (taal == 2) {boodschap2 = ' Wir sind in der polaren Region \n mit polarem Nacht'}; 

   if (poolvlag==3 && Math.round(zonop*100)==Math.round(zonon*100)) {boodschap=boodschap1; rondgang=1;};
   if (poolvlag==2 && Math.round(zonop*100)==Math.round(zonon*100)) {boodschap=boodschap2; rondgang=1;};
   alert(boodschap);
   dagl = zonon - zonop;                        
   lamz = L - 0.0057 + 1.9149 * Math.sin(G * fa) + 0.02 * Math.sin(2 * G * fa) + 0.0003 * Math.sin(3 * G * fa) - 0.0048 * Math.cos(ome * fa);
   while (lamz > 360) {lamz = lamz - 360};
   while (lamz < 0) {lamz = lamz + 360};  
// var R = 1.0001406# -0.016709 * Math.cos(G * fa) -0.00014* Math.cos(2 * G * fa) - 0.000002 * Math.cos(3 * G * fa);

//   PRINT USING "Afstand zon   = #.#### A.E."; r
//   RETURN
}; 

// Vormgeving
var ZONOPuur = Math.floor(zonop);
//    if (isNaN(ZONOPuur) == true) {ZONOPuur = 0};
var rest = (zonop - ZONOPuur);
var ZONOPminuut = Math.floor(60*rest);
//    if (isNaN(ZONOPminuut) == true) {ZONOPminuut=0};
var over = (60*rest) - ZONOPminuut;
var ZONOPseconde = Math.round(60*over);
    if (ZONOPuur < 10) {ZONOPuur = "0" + ZONOPuur};
    if (ZONOPminuut < 10) {ZONOPminuut = "0" + ZONOPminuut};  
    if (ZONOPseconde < 10) {ZONOPseconde = "0" + ZONOPseconde}; 
zonop = ZONOPuur + " : " + ZONOPminuut + " : " + ZONOPseconde;
if (rondgang==1) {zonop=' -- : -- : --'};

var ZONONuur = Math.floor(zonon);
//    if (isNaN(ZONONuur) == true) {ZONONuur = 0};
var rest = (zonon - ZONONuur);
var ZONONminuut = Math.floor(60*rest);
//    if (isNaN(ZONONminuut) == true) {ZONONminuut=0};
var over = (60*rest) - ZONONminuut;
var ZONONseconde = Math.round(60*over);
    if (ZONONuur < 10) {ZONONuur = "0" + ZONONuur};
    if (ZONONminuut < 10) {ZONONminuut = "0" + ZONONminuut};  
    if (ZONONseconde < 10) {ZONONseconde = "0" + ZONONseconde}; 
zonon = ZONONuur + " : " + ZONONminuut + " : " + ZONONseconde;
if (rondgang==1) {zonon=' -- : -- : --'};

var EXTRAuur = Math.floor(extra);
var rest = (extra - EXTRAuur);
var EXTRAminuut = Math.floor(60*rest);
var over = (60*rest) - EXTRAminuut;
var EXTRAseconde = Math.round(60*over);
    if (EXTRAuur < 10) {EXTRAuur = "0" + EXTRAuur};
    if (EXTRAminuut < 10) {EXTRAminuut = "0" + EXTRAminuut};  
    if (EXTRAseconde < 10) {EXTRAseconde = "0" + EXTRAseconde}; 
extra = EXTRAuur + " : " + EXTRAminuut + " : " + EXTRAseconde;
// if (rondgang==1) {zonon=' -- : -- : --'};

var EXTRANAuur = Math.floor(extrana);
var rest = (extrana - EXTRANAuur);
var EXTRANAminuut = Math.floor(60*rest);
var over = (60*rest) - EXTRANAminuut;
var EXTRANAseconde = Math.round(60*over);
    if (EXTRANAuur < 10) {EXTRANAuur = "0" + EXTRANAuur};
    if (EXTRANAminuut < 10) {EXTRANAminuut = "0" + EXTRANAminuut};  
    if (EXTRANAseconde < 10) {EXTRANAseconde = "0" + EXTRANAseconde}; 
extrana = EXTRANAuur + " : " + EXTRANAminuut + " : " + EXTRANAseconde;
// if (rondgang==1) {zonon=' -- : -- : --'};

   window.document.form_Zonop.text_d.value = zonop;
   window.document.form_Zonon.text_e.value = zonon;
   window.document.form_Zonop.text_Vlag.value = vlag;
   window.document.form_Zonon.text_Vlag.value = vlag;
   window.document.form_Zonhoog.text_d.value = Math.round(hwaar) + graden;
   window.document.form_Zonlaag.text_e.value = Math.round(dwaar) + graden;
   window.document.form_Zonhoog.text_Tijd.value = extra + '  ' + vlag;
   window.document.form_Zonlaag.text_Tijd.value = extrana + '  ' + vlag;

   window.document.form_g.text_maand.value = M;
   window.document.form_g.text_dag.value = d;
};

 function changePlace()
{
zomervlag = 'Start';
   fm = document.forms.form_LOC;
   plaats = fm.pages.options[fm.pages.selectedIndex].value;
   lambda = westerlengte[fm.pages.selectedIndex]; 
   phi= noorderbreedte[fm.pages.selectedIndex];
   tijdzone = tijdzn[fm.pages.selectedIndex]; 

   toevoeging = 'Noordelijk Halfrond';  
   if (taal == 1) {toevoeging = 'Nothern Hemisphere'};
   if (taal == 2) {toevoeging = 'Nordhemisphäre'};
   if (noorderbreedte[fm.pages.selectedIndex] < 0 && taal == 0) {toevoeging = 'Zuidelijk Halfrond'}; 
   if (noorderbreedte[fm.pages.selectedIndex] < 0 && taal == 1) {toevoeging = 'Southern Hemisphere'};  
   if (noorderbreedte[fm.pages.selectedIndex] < 0 && taal == 2) {toevoeging = 'Südlichen Hemisphäre'};  

    if (taal == 0) {window.status = plaats + "  Tijdzone " + tijdzone + "  Wester Lengte " + lambda + "  Noorder Breedte " + phi +  "  " + toevoeging};
    if (taal == 1) {window.status = plaats + "  Time zone " + tijdzone + "  Longitude " + lambda + "  Latitude " + phi +  "  " + toevoeging}; 
    if (taal == 2) {window.status = plaats + "  Zeitzone " + tijdzone + "  Länge " + lambda + "  Breite " + phi +  "  " + toevoeging}; 

   window.document.form_g.text_LOC.value = plaats;
   window.document.form_g.text_ZONE.value = tijdzone;
   window.document.form_g.text_lambda.value = lambda;
   window.document.form_g.text_phi.value = phi;

   window.document.form_LOC.text_LOC.value = plaats + ' ' + images2[fm.pages.selectedIndex]; 
   window.document.form_c.text_LOC.value = plaats;
   window.document.form_b.text_LOC.value = plaats;
   window.document.form_LST.text_LOC.value = plaats;
   window.document.form_LZT.text_LOC.value = plaats;
  
   zon(); announceTime();
//   fm.pages.selectedIndex = 18;
};


 function changePlace2()
{
  if (zomervlag == 'Start') {zomervlag='Omhoog'};
    plaats = window.document.form_g.text_LOC.value;
    tijdzone = window.document.form_g.text_ZONE.value;
    phi = window.document.form_g.text_phi.value;
    lambda = window.document.form_g.text_lambda.value;
    M = window.document.form_g.text_maand.value;
    d = window.document.form_g.text_dag.value;
 
    if (window.document.form_g.text_phi.value == '') {phi = 0};
    if (window.document.form_g.text_ZONE.value == '') 
    {tijdzone = Math.round(lambda/15); plaats= 'Tijdzone ' + tijdzone;};
    if (window.document.form_g.text_lambda.value == '') 
    {lambda = 15 * tijdzone; plaats = 'Westerlengte ' + lambda;};
    toevoeging = ' '; 
    if (phi >0 && taal == 0) {toevoeging = 'Noordelijk Halfrond'};
    if (phi >0 && taal == 1) {toevoeging = 'Nothern Hemisphere'};
    if (phi >0 && taal == 2) {toevoeging = 'Nordhemisphäre'};
    if (phi <0 && taal == 0) {toevoeging = 'Zuidelijk Halfrond'}; 
    if (phi <0 && taal == 1) {toevoeging = 'Southern Hemisphere'}; 
    if (phi <0 && taal == 2) {toevoeging = 'Südlichen Hemisphäre'}; 
    phi=parseFloat(phi);
    lambda=parseFloat(lambda);
    tijdzone=parseFloat(tijdzone);
    M=parseInt(M);
    d=parseInt(d);  

    while (tijdzone > 12) {tijdzone = tijdzone - 24}; 
    while (tijdzone < -12) {tijdzone = tijdzone + 24}; 
    while (phi > 90 || phi < -90 ) {phi = ''; alert('Onjuiste ingave')};
    while (lambda > 180) {lambda = lambda - 360}; 
    while (lambda < -180) {lambda = lambda + 360}; 

    window.document.form_g.text_ZONE.value = tijdzone;
    window.document.form_g.text_lambda.value = lambda;
    window.document.form_g.text_phi.value = phi;
    window.document.form_g.text_LOC.value = plaats;

   window.document.form_LOC.text_LOC.value = plaats; 
   window.document.form_c.text_LOC.value = plaats;
   window.document.form_b.text_LOC.value = plaats;
   window.document.form_LST.text_LOC.value = plaats;
   window.document.form_LZT.text_LOC.value = plaats;

   if (taal == 0) {window.status = plaats + "  Tijdzone " + tijdzone + "  Wester Lengte " + lambda + "  Noorder Breedte " + phi +  "  " + toevoeging};
   if (taal == 1) {window.status = plaats + "  Time zone " + tijdzone + "  Longitude " + lambda + "  Latitude " + phi +  "  " + toevoeging}; 
   if (taal == 2) {window.status = plaats + "  Zeitzone " + tijdzone + "  Länge " + lambda + "  Breite " + phi +  "  " + toevoeging}; 
   DagVanJaar(); zon(); announceTime();
//   fm.pages.selectedIndex = 18; 
};

function announceTime()
{
	//get the date, the hour, minutes, and seconds
   var the_date = new Date();
var the_weekday = the_date.getUTCDay();
// d = the_date.getUTCDate();
// M = the_date.getUTCMonth() + 1;
// J = the_date.getUTCFullYear();
var the_hour = the_date.getUTCHours();
var the_minute  =  the_date.getUTCMinutes();
var the_second = the_date.getUTCSeconds();
var UT = the_hour + the_minute/60 + the_second/3600;
    if (the_hour <10) {the_hour = "0" + the_hour};
    if (the_minute <10) {the_minute = "0" + the_minute};
    if (the_second <10) {the_second = "0" + the_second};
var het_winteruur = the_date.getUTCHours() - tijdzone;
    var de_winterminuut= the_date.getUTCMinutes();
      if (tijdzone != Math.floor(tijdzone)) {het_winteruur = het_winteruur - 0.5; de_winterminuut = de_winterminuut + 30};
      if (de_winterminuut >= 60) {het_winteruur = het_winteruur + 1; de_winterminuut = de_winterminuut - 60};
    if (het_winteruur >= 24) {het_winteruur = -24 + het_winteruur};
    if (het_winteruur < 0) {het_winteruur = 24 + het_winteruur};
    if (het_winteruur < 10) {het_winteruur = "0" + het_winteruur};
    if (de_winterminuut < 10) {de_winterminuut = "0" + de_winterminuut};
var het_zomeruur = the_date.getUTCHours() - tijdzone + 1;
    var de_zomerminuut= the_date.getUTCMinutes();
      if (tijdzone != Math.floor(tijdzone)) {het_zomeruur = het_zomeruur - 0.5; de_zomerminuut = de_zomerminuut + 30};
      if (de_zomerminuut >= 60) {het_zomeruur = het_zomeruur + 1; de_zomerminuut = de_zomerminuut - 60};
    if (het_zomeruur >= 24) {het_zomeruur = -24 + het_zomeruur};
    if (het_zomeruur < 0) {het_zomeruur =  24 + het_zomeruur};
    if (het_zomeruur < 10) {het_zomeruur = "0" + het_zomeruur};
    if (de_zomerminuut < 10) {de_zomerminuut = "0" + de_zomerminuut};
var het_burgeruur = the_date.getHours();
    if (het_burgeruur < 10) {het_burgeruur = "0" + het_burgeruur};

var wereldtijd = the_hour + " : " + the_minute + " : " + the_second; 
var wintertijd = het_winteruur + " : " + de_winterminuut + " : " + the_second;
var zomertijd = het_zomeruur + " : " + de_zomerminuut + " : " + the_second;
var burgertijd = het_burgeruur + " : " + the_minute + " : " + the_second;


// DVJ bekend en Eff bekend

var LST = 6.6285846 - 0.0666666667 * lambda + 0.0657098243 * Math.floor(DVJ) + 1.0027379093 * UT;
    while (LST > 24) {LST = LST - 24};
    while (LST <= 0) {LST = LST + 24};

var LSTuur = Math.floor(LST);
//    if (isNaN(LSTuur) == true) {LSTuur = 0};
var rest = (LST - LSTuur);
var LSTminuut = Math.floor(60*rest);
//    if (isNaN(LSTminuut) == true) {LSTminuut=0};
var over = (60*rest) - LSTminuut;
var LSTseconde = Math.round(60*over);
    if (LSTuur < 10) {LSTuur = "0" + LSTuur};
    if (LSTminuut < 10) {LSTminuut = "0" + LSTminuut};  
    if (LSTseconde < 10) {LSTseconde = "0" + LSTseconde}; 
var sterretijd = LSTuur + " : " + LSTminuut + " : " + LSTseconde;

var LZT = (UT - lambda/15 + Eff/3600);
    while (LZT > 24) {LZT = LZT - 24};
    while (LZT <= 0) {LZT = LZT + 24};

var LZTuur = Math.floor(LZT);
//    if (isNaN(LZTuur) == true) {LZTuur=0};
var rest2 = LZT - LZTuur;
var LZTminuut = Math.floor(60*rest2);
//    if (isNaN(LZTminuut) == true) {LZTminuut=0};
var over2 = (60*rest2) - LZTminuut;
var LZTseconde = Math.round(60*over2);
    if (LZTuur < 10) {LZTuur = "0" + LZTuur};
    if (LZTminuut < 10) {LZTminuut = "0" + LZTminuut};  
    if (LZTseconde < 10) {LZTseconde = "0" + LZTseconde}; 
var zonnetijd = LZTuur + " : " + LZTminuut + " : " + LZTseconde;

var dag = the_date.getDate();
var maand = the_date.getMonth() + 1;
var jaar = the_date.getFullYear();
    if (dag < 10) {dag = "0" + dag}; if (maand < 10) {maand = "0" + maand}; 
//    if (d < 10) {d = "0" + d}; if (M < 10) {M = "0" + M};
var burgerdatum = (dag + " - " + maand + " - " + jaar);
var dagUTC = the_date.getUTCDate();
var maandUTC = the_date.getUTCMonth() + 1;
var jaarUTC = the_date.getUTCFullYear();
var werelddatum = (dagUTC + " - " + maandUTC + " - " + jaarUTC);
// Juliaanse dag JD bepalen tot op decimalen
// var JD = S;
//    JDrest = UT/24; JD = JD - 0.5 + JDrest

if (vlag == 'winter time') {wintertijd = wintertijd  + " Y"; zomertijd = zomertijd + " N";};
if (vlag == 'summer time') {zomertijd = zomertijd + " Y"; wintertijd = wintertijd  + " N";}; 
if (vlag == 'wintertijd') {wintertijd = wintertijd  + " J"; zomertijd = zomertijd + " N";};
if (vlag == 'zomertijd') {zomertijd = zomertijd + " J";  wintertijd = wintertijd  + " N";}; 
if (vlag == 'Winterzeit') {wintertijd = wintertijd  + " J"; zomertijd = zomertijd + " N";};
if (vlag == 'Sommerzeit') {zomertijd = zomertijd + " J"; wintertijd = wintertijd  + " N";}; 

window.document.form_a.text_a.value = wereldtijd; 
window.document.form_b.text_b.value = wintertijd;
window.document.form_c.text_c.value = zomertijd;
window.document.form_LST.text_LST.value = sterretijd;;
window.document.form_LZT.text_LZT.value = zonnetijd;
window.document.form_d.text_d.value = burgertijd;
window.document.form_f.text_f.value = werelddatum;
window.document.form_e.text_e.value = burgerdatum;

window.setTimeout('announceTime();',1000);
};


