/*
Script voor de opbouw van een kalender
Gebaseerd op de ksa kalender.
*/

var deze_dag, deze_maand, vorige_maand, vorig_jaar, volgende_maand, volgend_jaar;
var begin, begindag, startweek, laatste_week, adatum;
actdagen = new Array(60); actdatum = new Array(60);
fdagen2 = new Array("Goede Vrijdag", "Eerste Paasdag", "Tweede Paasdag", "Hemelvaartsdag", "Eerste Pinksterdag", "Tweede Pinksterdag", "Eerste Kerstdag", 
  "Tweede Kerstdag", "Oudjaarsdag", "Nieuwjaarsdag", "Koninginnedag", "Dodenherdenking", "Bevrijdingsdag", "Vandaag");
fdagen1 = new Array("", "", "", "", "", "", "25-12", "26-12", "31-12", "01-01", "30-04", "04-05", "05-05");
maanden = new Array("Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December");
maandenkort = new Array("jan.", "febr.", "maart", "april", "mei", "juni", "juli", "aug.", "sept.", "okt.", "nov.", "dec.");
dagnamen = new Array("Zondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrijdag","Zaterdag","Zondag");
dagenmnd = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var sjaar = "1904,1908,1912,1916,1920,1924,1928,1932,1936,1940,1944,1948,1952,1956,1960,1964,1968,1972,1976,1980,1984,1988,1992,1996,2000,2004,2008,2012,2016,2020,2024,2028,2032,2036,2040,2044,2048,2052,2056,2060,2064,2068,2072,2076,2080,2084,2088,2092,2096";
var pdagen = ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,";
//         2000                               2010                              2020
pdagen += "114,105,90,110,102,86,106,98,83,102,94,114,99,90,110,95,87,106,91,111,103,94,107,";
apdgn = pdagen.split(",");

var strbegin = ""; 
strbegin += "1981-29-01,1982-28-53,1983-27-52,1984-26-52,1985-31-01,1986-30-01,1987-29-01,1988-28-53,1989-26-52,1990-25-52,";
strbegin += "1991-31-01,1992-30-01,1993-28-53,1994-27-52,1995-26-52,1996-25-52,1997-30-01,1998-29-01,1999-28-53,2000-27-52,";
strbegin += "2001-25-52,2002-31-01,2003-30-01,2004-29-01,2005-27-53,2006-26-52,2007-25-52,2008-31-01,2009-29-01,2010-28-53,";
strbegin += "2011-27-52,2012-26-52,2013-31-01,2014-30-01,2015-29-01,2016-28-52,2017-26-52,2018-25-52,2019-31-01,2020-30-01,";
strbegin += "2021-28-53,2022-27-52,2023-26-52,2024-25-52,2025-30-01,2026-29-01,2027-28-53,2028-27-52,2029-25-52,2030-31-01";
aBegindag = strbegin.split(",");

var datum =  new Date; 
var dag = datum.getDate(); var maand = datum.getMonth(); var jaar = datum.getYear(); 
if (jaar < 1900) { jaar = jaar + 1900; }
var datum_s_teken = "-"; 

if ( dag < 10 ) { fdagen1[13] = "0" + dag + datum_s_teken; } else { fdagen1[13] = dag + datum_s_teken; }
if ( maand < 9 ) { fdagen1[13] = fdagen1[13] + "0" + (maand + 1); } else { fdagen1[13] = fdagen1[13] + (maand + 1); }

aJaardagen = new Array(); 
function jaardagensamenstellen() {
  if (sjaar.indexOf(jaar, 0) > 0) { dagenmnd[1] = 29; } else { dagenmnd[1] = 28; }
  var weekteller = 0;
  for (var at = 0; at < aBegindag.length; at++) {
    if (aBegindag[at].substring(0,4) == jaar) { var begindag = Math.round(aBegindag[at].substring(5,7)); 
    var tweek = Math.round(aBegindag[at].substring(8,10)); break; }
  }
  aJaardagen[0] = tweek; var dagenteller = 0; 
  for (dt = begindag; dt < 32; dt++) { 
    aJaardagen[weekteller] += "," + dt + "-12"; dagenteller++; 
    if (dagenteller > 6) { dagenteller = 0; weekteller++; tweek = 1; aJaardagen[weekteller] = tweek; }
  }
  for (mt = 0; mt < 12; mt++) {
    for (mdt = 1; mdt <= dagenmnd[mt]; mdt++) {
      aJaardagen[weekteller] += "," + mdt + "-" + (1 + mt); dagenteller++; 
      if (dagenteller > 6) { 
        dagenteller = 0; weekteller++; 
        if (mt == 0 && (tweek == 52 || tweek == 53)) { tweek = 1; } else { tweek++; }
        if (mt == 11 && tweek > 52 && mdt > 27) { tweek = 1; }
        aJaardagen[weekteller] = tweek; }
    }
  }
  for (mdt = 1; mdt <= 15; mdt++) {
    aJaardagen[weekteller] += "," + mdt + "-1"; dagenteller++; 
    if (dagenteller > 6) { 
      dagenteller = 0; weekteller++;  tweek++; 
      if (tweek > 52) { tweek = 1; }
      aJaardagen[weekteller] = tweek; }
  }
}
var testdatum = ""; var strMogelijkeAanbiedingen = "";
function verder(uit) {
  if (uit.toString() == "d:") { }
  else if (uit.toString().substring(0,2) == "d:") {
    testdatum = uit.substring(2,100); n = testdatum.split("-");
    maand=n[1]-1; jaar=n[2]; }
  else {
    maand = (1 * maand) + (1 * uit);
    while (maand > 11) { maand = maand - 12; jaar = jaar + 1; }
    while (maand < 0) { maand = maand + 12; jaar = jaar - 1; }
  }
  var url = "blokken/maandgegevens.inc.php?t=" + Math.random() + "&maand=" + maand + "&jaar=" + jaar;
  var zoekstring = window.location.search; 
  if (zoekstring != "") { url = url + "&" + zoekstring.substring(1, 10000); }
  
  var http_mg_request = false;
  if (window.XMLHttpRequest) { 
    http_mg_request = new XMLHttpRequest();
    if (http_mg_request.overrideMimeType) { http_mg_request.overrideMimeType('text/text'); }
    } 
  else if (window.ActiveXObject) { 
    try { http_mg_request = new ActiveXObject("Msxml2.XMLHTTP"); } 
    catch (e) { try {
      http_mg_request = new ActiveXObject("Microsoft.XMLHTTP");  } 
      catch (e) {} }
    }
  if (!http_mg_request) {  return false;  }
  http_mg_request.onreadystatechange = function() { verdervervolg(http_mg_request); };
  http_mg_request.open('GET', url, true);
  http_mg_request.send(null);
}
  
function verdervervolg(http_mg_request) {
  if (http_mg_request.readyState == 4) {
    if (http_mg_request.status == 200) {
      strMogelijkeAanbiedingen = http_mg_request.responseText;
      kalenderopstellen();
    } 
  }
}
function kalenderopstellen() {
  jaardagensamenstellen();
  // alert(strMogelijkeAanbiedingen);
  var startdatum =  new Date; var startdag = startdatum.getDate();
  var startmaand = startdatum.getMonth(); var startjaar = startdatum.getYear(); 
  if (startjaar < 1900) { startjaar = startjaar + 1900; }
  var basis = ((jaar - startjaar) * 12) + maand - startmaand;
  if (basis == 0) { document.getElementById("maand_terug").innerHTML = ""; }
  else { document.getElementById("maand_terug").innerHTML = "<a href=\"javascript: verder(-1);\" title=\"Hiermee gaat u één maand terug!\" class=\"vorige\"><img src=\"images/zoekenVerfijnen_button_vorige.png\" alt=\"Vorige\" /></a>"; }
  if (basis == 17) { document.getElementById("maand_verder").innerHTML = ""; }
  else { document.getElementById("maand_verder").innerHTML = "<a href=\"javascript: verder(1)\" title=\"Hiermee gaat u één maand verder!\" class=\"volgende\"><img src=\"images/zoekenVerfijnen_button_volgende.png\" alt=\"Volgende\" /></a>"; }
   var maand_jaar = "<select onChange='verder(this.value)'>";
  for (var x1 = 0; x1 < 18; x1++) {    
    s = ""; if ((x1 - basis) == 0) { s = " selected"; }
    maand_jaar+= "<option value='" + (x1 - basis) + "'" + s + ">" + maanden[startmaand] + " &nbsp; " + startjaar + "</option>";
    startmaand++;
    if (startmaand > 11) { startmaand = 0; startjaar++; }
  }
  maand_jaar += "</select>";
  document.getElementById("naam_maand").innerHTML = maand_jaar;

  // feestdagen markeren: 0 = Goede vrijdag, 1 = 1e Paasdag, 2 = 2e Paasdag, 3 = hemelvaartsdag
  // 4 = 1e Pinksterdag, 5 = 2e Pinksterdag, 6 = koninginnedag
  var b = (apdgn[(jaar - 1900)]) * 1; fdagen1[0] = b - 2; fdagen1[1] = b; fdagen1[2] = b + 1;
  fdagen1[3] = b + 39; fdagen1[4] = b + 49; fdagen1[5] = b + 50;
  for (y = 0; y < 6; y++) {
    for (x = 0; x < 12; x++) { 
      fdagen1[y] = fdagen1[y] - dagenmnd[x];
      if (fdagen1[y] <= dagenmnd[(x+1)]) { 
        fdagen1[y] = (100 + (fdagen1[y]) * 1).toString().substring(1, 3) + datum_s_teken;
        fdagen1[y] +=  (100 + (x + 2) * 1).toString().substring(1, 3); break} } }         

  var bdag = ",1-" + (maand + 1); 
  for (x = 0; x < aJaardagen.length; x++) { if (aJaardagen[x].indexOf(bdag) > 0) { var bweek = x; break; }  }
    
  var didteller = 101; var widteller = 101; 
  for (x = bweek; x< (bweek + 6); x++) {
    b = aJaardagen[x].split(",");
    t1 = "w" + widteller.toString().substring(1,3); document.getElementById(t1).innerHTML = b[0]; widteller++;
    for (y = 1; y < 8; y++) {
      b1 = b[y].split("-"); 
      wg = dagnamen[y].toLowerCase() + ", " +b1[0] + " " + maandenkort[(b1[1] - 1)] + " " + jaar;      
      // wg = (100 + 1 * b1[0]).toString().substring(1,3) + "-" + (100 + 1 * b1[1]).toString().substring(1,3);
      s1 = ">"; s2 = ""; for (fdt = 0; fdt < fdagen1.length; fdt++) { if (fdagen1[fdt] == wg) { s1 = " title='" + fdagen2[fdt] + "'><b>"; s2 = "</b>"; break; } }
      var cg = ""; if ((b[y] + "-" + jaar) == testdatum) { cg = " class='gesel' "; }
      
      if (cg != "" || strMogelijkeAanbiedingen.indexOf((";" + b[y] + "-" + jaar)) != -1) {
        wg = "<a href=\"javascript:overnemen('" + wg + "','" + b[y] + "-" + jaar + "')\"" + cg + s1 + b1[0] + s2 + "</a>"; }
      else {
        wg = b1[0]; }
      t2 = "d" + didteller.toString().substring(1,3); document.getElementById(t2).innerHTML = wg; didteller++;
    }
  }
}

function schermopbouwen() {

  var sk = "<table class=\"maandKalender\" cellpadding=\"0\" cellspacing=\"0\">";
  sk += "<tr class=\"header\">";
  sk += "<td class=\"week\">wk</td>";
  sk += "<td>ma</td>";
  sk += "<td>di</td>";
  sk += "<td>wo</td>";
  sk += "<td>do</td>";
  sk += "<td>vr</td>";
  sk += "<td style=\"color: #cd3f3f;\">za</td>";
  sk += "<td style=\"color: #cd3f3f;\">zo</td></tr>";

  var teller = 101;       
  for (rq = 101; rq < 107; rq++) {
    sk += "<tr><td class=\"week\" id=\"w" + rq.toString().substring(1,3) + "\"></td>";
    sk += "<td style=\"color: #c0c0c0;\" id=\"d" + teller.toString().substring(1,3) + "\"></td>"; teller++;
    sk += "<td style=\"color: #c0c0c0;\" id=\"d" + teller.toString().substring(1,3) + "\"></td>"; teller++;
    sk += "<td style=\"color: #c0c0c0;\" id=\"d" + teller.toString().substring(1,3) + "\"></td>"; teller++;
    sk += "<td style=\"color: #c0c0c0;\" id=\"d" + teller.toString().substring(1,3) + "\"></td>"; teller++;
    sk += "<td style=\"color: #c0c0c0;\" id=\"d" + teller.toString().substring(1,3) + "\"></td>"; teller++;
    sk += "<td style=\"color: #cd3f3f;\" id=\"d" + teller.toString().substring(1,3) + "\"></td>"; teller++;
    sk += "<td style=\"color: #cd3f3f;\" id=\"d" + teller.toString().substring(1,3) + "\"></td></tr>"; teller++;
  }
  sk += "</table>";
  document.getElementById("kalenderblok").innerHTML = sk;
}

