// copyright CatharinaWeb 2000-2006
// het is verboden dit script te gebruiken
// anders dan op catharinaweb.nl

//Script gemaakt door WebWax.nl

 function valideer() {
    validity = true; // neem aan dat alles goed is ingevuld
    if (parseInt(document.mijnForm.gebdatj.value) < 1900)
         { validity = false; alert('Geboortejaar voor 1900 niet toegestaan!'); }
    if (parseInt(document.mijnForm.gebdatj.value) > 2025)
         { validity = false; alert('Geboortejaar na 2025 niet toegestaan!'); }   
    if (!check_empty(document.mijnForm.gebdatj.value))
         { validity = false; alert('Nog geen geboortejaar ingevuld!'); }
    if (!check_numeric(document.mijnForm.gebdatj.value))
         { validity = false; alert('Geboortejaar bevat niet-numerieke tekens!'); }
    if (!check_empty(document.mijnForm.gebtijdu.value))
         { validity = false; alert('Nog geen geboorte-uur ingevuld!'); }
    if (!check_numeric(document.mijnForm.gebtijdu.value))
         { validity = false; alert('Geboorteuur bevat niet-numerieke tekens!'); }
    if (parseInt(document.mijnForm.gebtijdu.value) < 0 ||
        parseInt(document.mijnForm.gebtijdu.value) > 23)
         { validity = false; alert('Niet bestaand uur!'); }
    if (!check_empty(document.mijnForm.gebtijdm.value))
         { validity = false; alert('Nog geen geboorte-minuten ingevuld!'); }
    if (!check_numeric(document.mijnForm.gebtijdm.value))
         { validity = false; alert('Geboorteminuten bevat niet-numerieke tekens!'); }
    if (parseInt(document.mijnForm.gebtijdm.value) < 0 ||
        parseInt(document.mijnForm.gebtijdm.value) > 59)
         { validity = false; alert('Niet bestaand minutenaantal!'); }

    return validity;
 }

 function check_empty(tekst) { 
    return (tekst.length > 0); 
 }

 function check_numeric(tekst) {
  tekens = "0123456789";
  for (i=0;i<tekst.length;i++) {
   if (tekens.indexOf(tekst.charAt(i)) == -1) {
    return false; break;
        }
   }
   return true;
  }     


//Array met data en resultaat:

var Results = new Array;
Results[0] = "23002359Rat";
Results[1] = "01000259Os";
Results[2] = "03000459Tijger";
Results[3] = "05000659Konijn";
Results[4] = "07000859Draak";
Results[5] = "09001059Slang";
Results[6] = "11001259Paard";
Results[7] = "13001459Geit";
Results[8] = "15001659Aap";
Results[9] = "17001859Haan";
Results[10] = "19002059Hond";
Results[11] = "21002259Varken";
Results[12] = "00000059Rat";


var zomerTijdNL = new Array();
     zomerTijdNL[0] = "01-05-1916 [00 uur] tot 01-10-1916 [00 uur]";
     zomerTijdNL[1] = "16-04-1917 [02 uur] tot 17-09-1917 [03 uur]";
     zomerTijdNL[2] = "01-04-1918 [02 uur] tot 30-09-1918 [03 uur]";
     zomerTijdNL[3] = "07-04-1919 [02 uur] tot 29-09-1919 [03 uur]";
     zomerTijdNL[4] = "05-04-1920 [02 uur] tot 27-09-1920 [03 uur]";
     zomerTijdNL[5] = "04-04-1921 [02 uur] tot 26-09-1921 [03 uur]";
     zomerTijdNL[6] = "26-03-1922 [02 uur] tot 08-10-1922 [03 uur]";
     zomerTijdNL[7] = "01-06-1923 [02 uur] tot 07-10-1923 [03 uur]";
     zomerTijdNL[8] = "30-03-1924 [02 uur] tot 05-10-1924 [03 uur]";
     zomerTijdNL[9] = "05-06-1925 [02 uur] tot 04-10-1925 [03 uur]";
     zomerTijdNL[10] = "15-05-1926 [02 uur] tot 03-10-1926 [03 uur]";
     zomerTijdNL[11] = "15-05-1927 [02 uur] tot 02-10-1927 [03 uur]";
     zomerTijdNL[12] = "15-05-1928 [02 uur] tot 07-10-1928 [03 uur]";
     zomerTijdNL[13] = "15-05-1929 [02 uur] tot 06-10-1929 [03 uur]";
     zomerTijdNL[14] = "15-05-1930 [02 uur] tot 05-10-1930 [03 uur]";
     zomerTijdNL[15] = "15-05-1931 [02 uur] tot 04-10-1931 [03 uur]";
     zomerTijdNL[16] = "22-05-1932 [02 uur] tot 02-10-1932 [03 uur]";
     zomerTijdNL[17] = "15-05-1933 [02 uur] tot 08-10-1933 [03 uur]";
     zomerTijdNL[18] = "15-05-1934 [02 uur] tot 07-10-1934 [03 uur]";
     zomerTijdNL[19] = "15-05-1935 [02 uur] tot 06-10-1935 [03 uur]";
     zomerTijdNL[20] = "15-05-1936 [02 uur] tot 04-10-1936 [03 uur]";
     zomerTijdNL[21] = "22-05-1937 [02 uur] tot 03-10-1937 [03 uur]";
     zomerTijdNL[22] = "15-05-1938 [02 uur] tot 02-10-1938 [03 uur]";
     zomerTijdNL[23] = "15-05-1939 [02 uur] tot 08-10-1939 [03 uur]";
     zomerTijdNL[24] = "16-05-1940 [00 uur] tot 02-11-1942 [03 uur]";
     zomerTijdNL[25] = "29-03-1943 [02 uur] tot 04-10-1943 [03 uur]";
     zomerTijdNL[26] = "03-04-1944 [02 uur] tot 02-10-1944 [03 uur]";
     zomerTijdNL[27] = "02-04-1945 [02 uur] tot 16-09-1945 [03 uur]";
     zomerTijdNL[28] = "03-04-1977 [02 uur] tot 25-09-1977 [03 uur]";
     zomerTijdNL[29] = "02-04-1978 [02 uur] tot 01-10-1978 [03 uur]";
     zomerTijdNL[30] = "01-04-1979 [02 uur] tot 30-09-1979 [03 uur]";
     zomerTijdNL[31] = "06-04-1980 [02 uur] tot 28-09-1980 [03 uur]";
     zomerTijdNL[32] = "29-03-1981 [02 uur] tot 27-09-1981 [03 uur]";
     zomerTijdNL[33] = "28-03-1982 [02 uur] tot 26-09-1982 [03 uur]";
     zomerTijdNL[34] = "27-03-1983 [02 uur] tot 25-09-1983 [03 uur]";
     zomerTijdNL[35] = "25-03-1984 [02 uur] tot 30-09-1984 [03 uur]";
     zomerTijdNL[36] = "31-03-1985 [02 uur] tot 29-09-1985 [03 uur]";
     zomerTijdNL[37] = "30-03-1986 [02 uur] tot 28-09-1986 [03 uur]";
     zomerTijdNL[38] = "29-03-1987 [02 uur] tot 27-09-1987 [03 uur]";
     zomerTijdNL[39] = "27-03-1988 [02 uur] tot 25-09-1988 [03 uur]";
     zomerTijdNL[40] = "26-03-1989 [02 uur] tot 24-09-1989 [03 uur]";
     zomerTijdNL[41] = "24-03-1990 [02 uur] tot 30-09-1990 [03 uur]";
     zomerTijdNL[42] = "31-03-1991 [02 uur] tot 29-09-1991 [03 uur]";
     zomerTijdNL[43] = "29-03-1992 [02 uur] tot 27-09-1992 [03 uur]";
     zomerTijdNL[44] = "28-03-1993 [02 uur] tot 26-09-1993 [03 uur]";
     zomerTijdNL[45] = "27-03-1994 [02 uur] tot 25-09-1994 [03 uur]";
     zomerTijdNL[46] = "26-03-1995 [02 uur] tot 30-09-1995 [03 uur]";
     zomerTijdNL[47] = "31-03-1996 [02 uur] tot 27-10-1996 [03 uur]";
     zomerTijdNL[48] = "30-03-1997 [02 uur] tot 26-10-1997 [03 uur]";
     zomerTijdNL[49] = "29-03-1998 [02 uur] tot 25-10-1998 [03 uur]";
     zomerTijdNL[50] = "28-03-1999 [02 uur] tot 31-10-1999 [03 uur]";
     zomerTijdNL[51] = "26-03-2000 [02 uur] tot 29-10-2000 [03 uur]";
     zomerTijdNL[52] = "25-03-2001 [02 uur] tot 28-10-2001 [03 uur]";
     zomerTijdNL[53] = "31-03-2002 [02 uur] tot 27-10-2002 [03 uur]";
     zomerTijdNL[54] = "30-03-2003 [02 uur] tot 26-10-2003 [03 uur]";
     zomerTijdNL[55] = "28-03-2004 [02 uur] tot 31-10-2004 [03 uur]";
     zomerTijdNL[56] = "27-03-2005 [02 uur] tot 30-10-2005 [03 uur]";
     zomerTijdNL[57] = "26-03-2006 [02 uur] tot 29-10-2006 [03 uur]";
     zomerTijdNL[58] = "25-03-2007 [02 uur] tot 28-10-2007 [03 uur]";
     zomerTijdNL[59] = "30-03-2008 [02 uur] tot 26-10-2008 [03 uur]";
     zomerTijdNL[60] = "29-03-2009 [02 uur] tot 25-10-2009 [03 uur]";
     zomerTijdNL[61] = "28-03-2010 [02 uur] tot 31-10-2010 [03 uur]";
     zomerTijdNL[62] = "27-03-2011 [02 uur] tot 30-10-2011 [03 uur]";
     zomerTijdNL[63] = "25-03-2012 [02 uur] tot 28-10-2012 [03 uur]";
     zomerTijdNL[64] = "31-03-2013 [02 uur] tot 27-10-2013 [03 uur]";
     zomerTijdNL[65] = "30-03-2014 [02 uur] tot 26-10-2014 [03 uur]";
     zomerTijdNL[66] = "29-03-2015 [02 uur] tot 25-10-2015 [03 uur]";
     zomerTijdNL[67] = "27-03-2016 [02 uur] tot 30-10-2016 [03 uur]";
     zomerTijdNL[68] = "26-03-2017 [02 uur] tot 29-10-2017 [03 uur]";
     zomerTijdNL[69] = "25-03-2018 [02 uur] tot 28-10-2018 [03 uur]";
     zomerTijdNL[70] = "31-03-2019 [02 uur] tot 27-10-2019 [03 uur]";
     zomerTijdNL[71] = "29-03-2020 [02 uur] tot 25-10-2020 [03 uur]";
     zomerTijdNL[72] = "28-03-2021 [02 uur] tot 31-10-2021 [03 uur]";
     zomerTijdNL[73] = "27-03-2022 [02 uur] tot 30-10-2022 [03 uur]";
     zomerTijdNL[74] = "26-03-2023 [02 uur] tot 29-10-2023 [03 uur]";
     zomerTijdNL[75] = "31-03-2024 [02 uur] tot 27-10-2024 [03 uur]";
     zomerTijdNL[76] = "30-03-2025 [02 uur] tot 26-10-2025 [03 uur]";
	 
 
 var zomerTijdBE = new Array();
     zomerTijdBE[0] = "30-04-1916 [23 uur] tot 01-10-1916 [01 uur]";
     zomerTijdBE[1] = "16-04-1917 [02 uur] tot 17-09-1917 [03 uur]";
     zomerTijdBE[2] = "15-04-1918 [02 uur] tot 16-09-1918 [03 uur]";
     zomerTijdBE[3] = "01-03-1919 [02 uur] tot 05-10-1919 [00 uur]";
     zomerTijdBE[4] = "14-02-1920 [23 uur] tot 24-10-1920 [00 uur]";
     zomerTijdBE[5] = "14-03-1921 [23 uur] tot 26-10-1921 [00 uur]";
     zomerTijdBE[6] = "25-03-1922 [23 uur] tot 08-10-1922 [00 uur]";
     zomerTijdBE[7] = "21-04-1923 [23 uur] tot 07-10-1923 [00 uur]";
     zomerTijdBE[8] = "29-03-1924 [23 uur] tot 05-10-1924 [00 uur]";
     zomerTijdBE[9] = "04-04-1925 [23 uur] tot 04-10-1925 [00 uur]";
     zomerTijdBE[10] = "17-04-1926 [23 uur] tot 03-10-1926 [00 uur]";
     zomerTijdBE[11] = "09-04-1927 [23 uur] tot 02-10-1927 [00 uur]";
     zomerTijdBE[12] = "14-04-1928 [23 uur] tot 07-10-1928 [03 uur]";
     zomerTijdBE[13] = "21-04-1929 [02 uur] tot 06-10-1929 [03 uur]";
     zomerTijdBE[14] = "13-04-1930 [02 uur] tot 05-10-1930 [03 uur]";
     zomerTijdBE[15] = "19-04-1931 [02 uur] tot 04-10-1931 [03 uur]";
     zomerTijdBE[16] = "03-04-1932 [02 uur] tot 02-10-1932 [03 uur]";
     zomerTijdBE[17] = "26-03-1933 [02 uur] tot 08-10-1933 [03 uur]";
     zomerTijdBE[18] = "08-04-1934 [02 uur] tot 07-10-1934 [03 uur]";
     zomerTijdBE[19] = "31-03-1935 [02 uur] tot 06-10-1935 [03 uur]";
     zomerTijdBE[20] = "19-04-1936 [02 uur] tot 04-10-1936 [03 uur]";
     zomerTijdBE[21] = "04-04-1937 [02 uur] tot 03-10-1937 [03 uur]";
     zomerTijdBE[22] = "27-03-1938 [02 uur] tot 02-10-1938 [03 uur]";
     zomerTijdBE[23] = "16-04-1939 [02 uur] tot 19-11-1939 [03 uur]";
     zomerTijdBE[24] = "25-02-1940 [00 uur] tot 02-11-1942 [03 uur]";
     zomerTijdBE[25] = "29-03-1943 [02 uur] tot 04-10-1943 [03 uur]";
     zomerTijdBE[26] = "03-04-1944 [02 uur] tot 17-09-1944 [03 uur]";
     zomerTijdBE[27] = "02-04-1945 [02 uur] tot 16-09-1945 [03 uur]";
     zomerTijdBE[28] = "19-05-1946 [02 uur] tot 07-10-1946 [03 uur]";
     zomerTijdBE[29] = "03-04-1977 [02 uur] tot 25-09-1977 [03 uur]";
     zomerTijdBE[30] = "02-04-1978 [02 uur] tot 01-10-1978 [03 uur]";
     zomerTijdBE[31] = "01-04-1979 [02 uur] tot 30-09-1979 [03 uur]";
     zomerTijdBE[32] = "06-04-1980 [02 uur] tot 28-09-1980 [03 uur]";
     zomerTijdBE[33] = "29-03-1981 [02 uur] tot 27-09-1981 [03 uur]";
     zomerTijdBE[34] = "28-03-1982 [02 uur] tot 26-09-1982 [03 uur]";
     zomerTijdBE[35] = "27-03-1983 [02 uur] tot 25-09-1983 [03 uur]";
     zomerTijdBE[36] = "25-03-1984 [02 uur] tot 30-09-1984 [03 uur]";
     zomerTijdBE[37] = "31-03-1985 [02 uur] tot 29-09-1985 [03 uur]";
     zomerTijdBE[38] = "30-03-1986 [02 uur] tot 28-09-1986 [03 uur]";
     zomerTijdBE[39] = "29-03-1987 [02 uur] tot 27-09-1987 [03 uur]";
     zomerTijdBE[40] = "27-03-1988 [02 uur] tot 25-09-1988 [03 uur]";
     zomerTijdBE[41] = "26-03-1989 [02 uur] tot 24-09-1989 [03 uur]";
     zomerTijdBE[42] = "24-03-1990 [02 uur] tot 30-09-1990 [03 uur]";
     zomerTijdBE[43] = "31-03-1991 [02 uur] tot 29-09-1991 [03 uur]";
     zomerTijdBE[44] = "29-03-1992 [02 uur] tot 27-09-1992 [03 uur]";
     zomerTijdBE[45] = "28-03-1993 [02 uur] tot 26-09-1993 [03 uur]";
     zomerTijdBE[46] = "27-03-1994 [02 uur] tot 25-09-1994 [03 uur]";
     zomerTijdBE[47] = "26-03-1995 [02 uur] tot 30-09-1995 [03 uur]";
     zomerTijdBE[48] = "31-03-1996 [02 uur] tot 27-10-1996 [03 uur]";
     zomerTijdBE[49] = "30-03-1997 [02 uur] tot 26-10-1997 [03 uur]";
     zomerTijdBE[50] = "29-03-1998 [02 uur] tot 25-10-1998 [03 uur]";
     zomerTijdBE[51] = "28-03-1999 [02 uur] tot 31-10-1999 [03 uur]";
     zomerTijdBE[52] = "26-03-2000 [02 uur] tot 29-10-2000 [03 uur]";
     zomerTijdBE[53] = "25-03-2001 [02 uur] tot 28-10-2001 [03 uur]";
     zomerTijdBE[54] = "31-03-2002 [02 uur] tot 27-10-2002 [03 uur]";
     zomerTijdBE[55] = "30-03-2003 [02 uur] tot 26-10-2003 [03 uur]";
     zomerTijdBE[56] = "28-03-2004 [02 uur] tot 31-10-2004 [03 uur]";
     zomerTijdBE[57] = "27-03-2005 [02 uur] tot 30-10-2005 [03 uur]";
     zomerTijdBE[58] = "26-03-2006 [02 uur] tot 29-10-2006 [03 uur]";
     zomerTijdBE[59] = "26-03-2007 [02 uur] tot 29-10-2007 [03 uur]";
     zomerTijdBE[60] = "30-03-2008 [02 uur] tot 26-10-2008 [03 uur]";
     zomerTijdBE[61] = "29-03-2009 [02 uur] tot 25-10-2009 [03 uur]";
     zomerTijdBE[62] = "28-03-2010 [02 uur] tot 31-10-2010 [03 uur]";
     zomerTijdBE[63] = "27-03-2011 [02 uur] tot 30-10-2011 [03 uur]";
     zomerTijdBE[64] = "25-03-2012 [02 uur] tot 28-10-2012 [03 uur]";
     zomerTijdBE[65] = "31-03-2013 [02 uur] tot 27-10-2013 [03 uur]";
     zomerTijdBE[66] = "30-03-2014 [02 uur] tot 26-10-2014 [03 uur]";
     zomerTijdBE[67] = "29-03-2015 [02 uur] tot 25-10-2015 [03 uur]";
     zomerTijdBE[68] = "27-03-2016 [02 uur] tot 30-10-2016 [03 uur]";
     zomerTijdBE[69] = "26-03-2017 [02 uur] tot 29-10-2017 [03 uur]";
     zomerTijdBE[70] = "25-03-2018 [02 uur] tot 28-10-2018 [03 uur]";
     zomerTijdBE[71] = "31-03-2019 [02 uur] tot 27-10-2019 [03 uur]";
     zomerTijdBE[72] = "29-03-2020 [02 uur] tot 25-10-2020 [03 uur]";
     zomerTijdBE[73] = "28-03-2021 [02 uur] tot 31-10-2021 [03 uur]";
     zomerTijdBE[74] = "27-03-2022 [02 uur] tot 30-10-2022 [03 uur]";
     zomerTijdBE[75] = "26-03-2023 [02 uur] tot 29-10-2023 [03 uur]";
     zomerTijdBE[76] = "31-03-2024 [02 uur] tot 27-10-2024 [03 uur]";
     zomerTijdBE[77] = "30-03-2025 [02 uur] tot 26-10-2025 [03 uur]";

 
 var jaar;
 var maand;
 var dag;
 var uur;
 var minu;
 var tijd;
 var land;
 var tijdInMin;
 var gebDatTijd;
 var deArray = new Array();

 // variabelen vullen vanuit formulier:
 function vulVars() {
  jaar = document.mijnForm.gebdatj.value;
  maand = document.mijnForm.gebdatm.options[document.mijnForm.gebdatm.selectedIndex].value;
  dag = document.mijnForm.gebdatd.options[document.mijnForm.gebdatd.selectedIndex].value;
  uur = document.mijnForm.gebtijdu.value;
     if (eval(uur) < 10 && uur.length == 1) {uur = "0" + uur}
  minu = document.mijnForm.gebtijdm.value;
     if (eval(minu) < 10 && minu.length == 1) {minu = "0" + minu}
  land = document.mijnForm.gebland.options[document.mijnForm.gebland.selectedIndex].value; 
  tijd = uur + minu;
  tijdInMin = eval(uur) * 60 + eval(minu);
  gebDatTijd = jaar + maand + dag + tijd;
}

 // De onderstaande functie bepaalt de zomertijd-correctie
 // De functie wordt aangeroepen binnen functie echtLokaleTijd()
 // en levert de correctie in minuten op  
 function zomerCorrectie() {
  corrigeer = 0;
 // zoek de goede Array adhv het land:
  if (land == "nl") {
   deArray = zomerTijdNL};
  if (land == "be") {
   deArray = zomerTijdBE};
 

 // doorzoek dat array. Stel eerst start en einddatum en tijd samen
  for (i=0; i < deArray.length; i++) {
startD = deArray[i].substring(6,10) + deArray[i].substring(3,5) + deArray[i].substring(0,2) + deArray[i].substring(12,14) + "00";
   eindD  = deArray[i].substring(30,34) + deArray[i].substring(27,29) + deArray[i].substring(24,26) + deArray[i].substring(36,38) + "00";
   if (gebDatTijd < eindD && gebDatTijd >= startD) {
    corrigeer = 60;
        break;
   }
  }
  
 // mogelijk is er nog sprake van 20 minuten extra aftrek:
  if (land == "nl"  && gebDatTijd < 194005152400 && gebDatTijd >= 190905010000) {
         corrigeer = corrigeer - 40;
  } 

// VOOR deze datum was de Belgische tijd GMT
  if (land == "be"  && gebDatTijd < 194005200300) {
         corrigeer = corrigeer - 60;
  }
     return corrigeer; 
 }


 
 function echtLokaleTijd() {
 if (land == "nl" || land == "be") {
  correctie = zomerCorrectie(); 
  tijdInMin = tijdInMin - correctie; //  zomertijd
 }


 if (tijdInMin > 1440) {
    tijdInMin = tijdInMin - 1440;
 }
  if (tijdInMin < 0) {
    tijdInMin = tijdInMin + 1440;
 }

 tijd = eval(100 * Math.floor(tijdInMin/60) + (tijdInMin)%60); 
 uur = Math.floor(tijdInMin/60);
 minu= (tijdInMin)%60;
 if (eval(minu) < 10) {minu = "0" + minu}
 if (eval(uur) < 10) {uur = "0" + uur}
 tijd = uur + "" + minu + ""; //naar string-type
}

function ChinAsc (f) {
  if (valideer()) {
    vulVars();
    echtLokaleTijd();   
        for (i=0;i<Results.length;i++) {

         var Ogrens = (Results[i].substring(0,4));
         var Bgrens = (Results[i].substring(4,8));
         //
         if (tijd >= Ogrens && tijd <= Bgrens) {
          f.formteken.value = Results[i].substring(8,99);
          break;
         }
        }
      }
}


