
// ds  kalender 20110125

//document.onkeypress = test;  // test niet helemaal volledig gedaan
if (document.onkeypress) document.otheronkeypress=document.onkeypress;
document.onkeypress = onKeyPress;
if (document.onkeydown) var otheronkeydown=document.onkeydown;
document.onkeydown = onKeyDown;

var tijd=false;
var dsfocus='';
var tsdata='';
var tspos=0;
var tsd = new Array('0','0','0','0','0','0');
var tspostype = new Array('0','0','0','0','0','0');  // 1=selected, 2=error

var dskaldiv='';
var dskaldivobj ='';
var dskaldivselobj='';
var dskaldatumobj='';  // obj van input veld met datum in formaat YYYY-MM-DD HH:MM:SS (hidden veld)
var dskaldatumtype='';
var dskalcallback='';  // eval de inhoud van deze var bij aanpassen van de datum
//var dskaldatum='';  // YYYY-MM-DD HH:MM:SS
var dskaldatumshowobj='';
var dsdagen=new Array('zondag','maandag','dinsdag','woensdag','donderdag','vrijdag','zaterdag','zondag');
var dsmaanden=new Array(' ','januari','februari','maart','april','mei','juni','juli','augustus','september','oktober','november','december');

var dsjaar='0000';
var maand='00';
var dag='00';
var uur='00';
var min='00';
var sec='00';

today=new Date();
var ditjaar=today.getFullYear()
var dezemaandnr=today.getMonth()+1
var dezemaand= (dezemaandnr>9) ? dezemaandnr : '0'+dezemaandnr;
var dezedag= (today.getDate()>9)    ? today.getDate()    : '0'+today.getDate();
var dituur=  (today.getHours()>9)   ? today.getHours()   : '0'+today.getHours();
var dezemin= (today.getMinutes()>9) ? today.getMinutes() : '0'+today.getMinutes();
var dezesec= (today.getSeconds()>9) ? today.getSeconds() : '0'+today.getSeconds();
var vandaag=ditjaar+"-"+dezemaand+"-"+dezedag+" "+dituur+":"+dezemin+":"+dezesec; // YYYY-MM-DD HH:MM:SS
//alert("vandaag="+vandaag);

function explodedate() {
     if (dskaldatumobj.value.length<1) {
        dsjaar='0000';
        maand='00';
        dag='00';
        uur='00';
        min='00';
        sec='00';
     } else if (dskaldatumobj.value.substring(4,5)=='-') { // jjjj-mm-dd hh:mm:ss
        dsjaar= dskaldatumobj.value.substring(0,4);
        maand=dskaldatumobj.value.substring(5,7);
        dag=  dskaldatumobj.value.substring(8,10);
        if(dskaldatumobj.value.length>11) uur=dskaldatumobj.value.substring(11,13); else uur='00';
        if(dskaldatumobj.value.length>14) min=dskaldatumobj.value.substring(14,16); else min='00';
        if(dskaldatumobj.value.length>17) sec=dskaldatumobj.value.substring(17,19); else sec='00';
     } else { // jjjjmmddhhmmss
        dsjaar= dskaldatumobj.value.substring(0,4);
        maand=dskaldatumobj.value.substring(4,6);
        dag=  dskaldatumobj.value.substring(6,8);
        if(dskaldatumobj.value.length>8)  uur=dskaldatumobj.value.substring(8,10);  else uur='00';
        if(dskaldatumobj.value.length>10) min=dskaldatumobj.value.substring(10,12); else min='00';
        if(dskaldatumobj.value.length>12) sec=dskaldatumobj.value.substring(12,14); else sec='00';
        //alert(jaar+','+maand+','+dag);
     }

  //alert(dskaldatumobj.value+' j='+jaar+',m='+maand+',d='+dag+',u='+uur+',m='+min+',s='+sec);
}

function savedate() {

    var maandlengte=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31); // aantal dagen in de maand
    var aantaldagen=0;

    var wjaar=parseInt(dsjaar,10);
    var wmaand=parseInt(maand,10);
    var wdag=parseInt(dag,10);
    if (wmaand==2) { if ((wjaar%4==0)&&((wjaar%100!=0)||(wjaar%400==0))) aantaldagen=29; else aantaldagen=28;}
       else aantaldagen=maandlengte[wmaand];

    if (wdag>aantaldagen) { // bij wijzigen maand of jaar kan dag later dan laatste dag zijn
         wdag=aantaldagen;
         dag= (wdag>9) ? wdag : '0'+wdag;
    }

    dskaldatumobj.value=dsjaar+"-"+maand+"-"+dag+" "+uur+":"+min+":"+sec; // YYYY-MM-DD HH:MM:SS
}

function dsgo() {  // klaar
         if (dskalcallback) eval(dskalcallback);
         dskalcallback='';
         dsshow();
         dsclearforce(dskaldivobj);
         return true;
}

function dsgozero() {  // zet datum op 0
         dskaldatumobj.value="0000-00-00 00:00:00"; // YYYY-MM-DD HH:MM:SS
         if (dskalcallback) eval(dskalcallback);
         dskalcallback='';
         dsshow();
         dsclearforce(dskaldivobj);
         return true;
}

function test(e) {

   var eventobj=window.event? event : e //distinguish between IE's explicit event object (window.event) and Firefox's implicit.
   alert("test dsfocus="+dsfocus+", altkey="+eventobj.altKey+", ctrlKey="+eventobj.ctrlKey+", shiftKey="+eventobj.shiftKey+", charCode="+eventobj.charCode+", keyCode="+eventobj.keyCode);

}

function onKeyDown(e) {
   var eventobj=window.event? event : e //distinguish between IE's explicit event object (window.event) and Firefox's implicit.
   //alert("onKeyDown dsfocus="+dsfocus+", altkey="+eventobj.altKey+", ctrlKey="+eventobj.ctrlKey+", shiftKey="+eventobj.shiftKey+", charCode="+eventobj.charCode+", keyCode="+eventobj.keyCode);
   if (dsfocus !='hh') {
     if (otheronkeydown) return(otheronkeydown(e)); else return;
   }

   var key=eventobj.keyCode;
   tspostype[0]=tspostype[1]=tspostype[2]=tspostype[3]=0;  // normaal

     if (key==13) {  // enter
                    dsshow();
                    dsclear(dskaldivobj);
                    return true;
                    }
     if (key==37) { //cursor back
                     if (tspos>0) tspos--;
                     tspostype[tspos]='1';  //selected
                     toontsdata();
                     return true;
                 }
     if (key==39) { //cursor next
                     if (tspos<3) tspos++;
                     tspostype[tspos]='1';  //selected
                     toontsdata();
                     return true;
                     }
     if (key==46) {  // delete
                     if (tspos==0)    tsd[tspos]='0';  //  wijzig het cijfer
                      else if (tspos==1) {tsd[1]=tsd[0];tsd[0]='0';}
                      else if (tspos==2) tsd[tspos]='0';
                      else if (tspos==3) {tsd[3]=tsd[2];tsd[2]='0';}
                     toontsdata();
                     return true;
                     }

}

function onKeyPress(e) { // keydown + keyup

   var eventobj=window.event? event : e //distinguish between IE's explicit event object (window.event) and Firefox's implicit.
   //alert("onKeyPress dsfocus="+dsfocus+", altkey="+eventobj.altKey+", ctrlKey="+eventobj.ctrlKey+", shiftKey="+eventobj.shiftKey+", charCode="+eventobj.charCode+", keyCode="+eventobj.keyCode);
   if (dsfocus !='hh') {if (document.otheronkeypress) return(document.otheronkeypress(e)); else return;}

   // E only supports the keyCode property and  NOT the charCode property.
   //alert("charcode="+eventobj.charCode+",keycode="+evtenobj.keyCode);
   var key=eventobj.charCode? eventobj.charCode : eventobj.keyCode; // charcode voor FF, keycode voor IE


   //tspostype[0]=tspostype[1]=tspostype[2]=tspostype[3]=0;  // normaal

     if ((key>47) && (key<58)) { // 0-9
                    cijfer=key-48; // 48=0, 49=1
                    if ((tspos==0) && (cijfer>2))      tspostype[tspos]='2';  // max 2
                      else if ((tspos==1) && ((10*tsd[0])+cijfer>23)) tspostype[0]=tspostype[1]='2'; // max 23
                      else if ((tspos==2) && (cijfer>6)) tspostype[tspos]='2'; // max 6
                      else if ((tspos==3) && ((tsd[2]*10)+cijfer>59)) tspostype[2]=tspostype[3]='2';  // max 59
                      else {
                         tsd[tspos]=cijfer;  //  wijzig het cijfer
                         if (tspos<3) tspos++;
                         tspostype[tspos]='1';  //selected
                         }
                    toontsdata();
                    dsshow();
                    return true;
                    }
     if (key==32) {return true;}  // blank
     if (key==58) {  // :    ga naar minuten
                     tspos=2;
                     tspostype[tspos]='1';  //selected
                     toontsdata();
                     return true;
                     }

     if (key==8) { // backspace
                    if (tspos>0) tspos--;
                    tspostype[tspos]='1';  //selected
                    toontsdata();
                    return true;
                    }
     if (key==9) {return true;}   // tab next

     if (eventobj.charCode==0) return true; // FF komt hier ook voor special keys (FF=0, IE=undefined)
     if (key>0) {alert("Toets '" + String.fromCharCode(key) + "' niet toegelaten ("+key+")");return false;}

}

function toontsdata() {
     tsdata=" ";
     var style = new Array();
     style[0]='background-color:#0000ff;color:#ffffff;border:solid 1px #0000ff;'  // normaal
     style[1]='background-color:#cccccc;color:#000000;border:solid 1px #000000;'  // geselecteerd
     style[2]='background-color:#ff0000;color:#ffffff;border:solid 1px #000000;'  // fout
     tsdata+="<span style='float:left;"+style[tspostype[0]]+"'>"+tsd[0]+"</span>";
     tsdata+="<span style='float:left;"+style[tspostype[1]]+"'>"+tsd[1]+"</span>";
     tsdata+="<span style='float:left;background-color:#0000ff;color:#ffffff;border:solid 1px #0000ff;'>:</span>";
     tsdata+="<span style='float:left;"+style[tspostype[2]]+"'>"+tsd[2]+"</span>";
     tsdata+="<span style='float:left;"+style[tspostype[3]]+"'>"+tsd[3]+"</span>";
     document.getElementById('dshh').innerHTML=tsdata;
     dskaldatumobj.value=dskaldatumobj.value.substr(0,10)+" "+tsd[0]+tsd[1]+':'+tsd[2]+tsd[3]+":00";   // YYYY-MM-DD HH:MM:SS
}


function dssetdefault(datumid,datumwaarde) {
   dskaldefaultobj=document.getElementById(datumwaarde);  // pointer naar datum zone   .value= YYYY-MM-DD HH:MM:SS
   dskaldatumobj=document.getElementById(datumid);    // pointer naar datum zone   .value= YYYY-MM-DD HH:MM:SS
   dskaldatumobj.value=dskaldefaultobj.value;  // copy default
}

function dsset(datumid,datumtype,datumshowid) {
   dskaldatumobj=document.getElementById(datumid);  // pointer naar datum zone   .value= YYYY-MM-DD HH:MM:SS
   // correct format
   //explodedate(); // get jaar,maand,dag,uur,min,sec
   //savedate(); // YYYY-MM-DD HH:MM:SS
   if (datumtype) dskaldatumtype=datumtype; else dskaldatumtype='tedoen';
   dskaldatumshowobj=document.getElementById(datumshowid);
   dsshow();
}

function kalender(kaldiv,datumid,datumtype,datumshowid) {
  // kalender(
  // 0 kaldiv= 'div id voor kalender',
  // 1 datumid= id van datumzone in formaat YYYY-MM-DD HH:MM:SS (hidden) ,
  // 2 datumtype= datumformaat voor datumshow: voorlopig alleen default: maandag, 1 januari 2009  (hh:mm:ss)
  // 3 id van div waar datum getoond wordt in formaat van datumtype
  // 4 tijd (voorlopig alleen true/false
  // 5 callback
  //if (kalender.arguments[0]) kaldiv=kalender.arguments[0];     // id van div waar kalender moet getoond worden
  // if (kalender.arguments[2]) datumtype=kalender.arguments[2]; else datumtype='';  // datumtype: nog niet gebruikt
  if (kalender.arguments[4]) tijd=true; else tijd=false;
  if (kalender.arguments[5]) dskalcallback=kalender.arguments[5];
  if (dskaldiv==kaldiv) { //sluit deze kalender
       var kalobj=document.getElementById(kaldiv);
       dskalcallback='';
       dsclearforce(kalobj);
       return;
     }
  if (dskaldiv) { // sluit andere actieve kalender
       var kalobj=document.getElementById(dskaldiv);
       dsclearforce(kalobj);
       }
  dskaldiv=kaldiv;            // div waarin de kalender getoond wordt

  dskaldatumobj=document.getElementById(datumid);  // pointer naar datum zone   .value= YYYY-MM-DD HH:MM:SS
  // correct format
  explodedate(); // get jaar,maand,dag,uur,min,sec
  savedate(); // YYYY-MM-DD HH:MM:SS

  dskaldatumshowobj=document.getElementById(datumshowid);

  if (datumtype) dskaldatumtype=datumtype; else dskaldatumtype='tedoen';

     dsfocus='';
     tspos=0;
     tsd[0]=dskaldatumobj.value.substr(11,1);
     tsd[1]=dskaldatumobj.value.substr(12,1);
     tsd[2]=dskaldatumobj.value.substr(14,1);
     tsd[3]=dskaldatumobj.value.substr(15,1);


  dskaldivobj = document.getElementById(kaldiv);
  if (dskaldivobj.className=='dsvisible')  {
        dsclear(dskaldivobj);
        return;
  } else {
        dskaldivobj.className='dsvisible';
        dsrefresh();
   }
}

function dshhstart() { // click op tijd
     dsfocus='hh';
     tspos=0;
     tspostype[tspos]='1';  //selected
     toontsdata();
     //this.style.backgroundColor='#00FF00'
}

function dsclearforce(obj) {
       obj.className='dshidden';
       obj.innerHTML='';
       dskaldiv="";
       dsfocus='';
       obj='';
}

function dsclear(obj) {
       if (dskalcallback) return;
       dsclearforce(obj)
}

function dstoon(obj,divid) {
  if (dskaldivselobj==document.getElementById(divid)) { // we zijn al bezig
       if (dskaldivselobj.className=='dshidden') dskaldivselobj.className='dsvisible';
         else dskaldivselobj.className='dshidden';
  } else {
       if (dskaldivselobj.className=='dsvisible') dskaldivselobj.className='dshidden'; // stond er een andere open ?
       dskaldivselobj = document.getElementById(divid);
       dskaldivselobj.className='dsvisible';
  }
}

function dsjup(cnt) {
  explodedate(); // get jaar,maand,dag,uur,min,sec
  dsjaar=parseInt(dsjaar,10)+cnt;
  savedate(); // YYYY-MM-DD HH:MM:SS

  dsrefresh();
}

function dsjdown(cnt) {
  explodedate(); // get jaar,maand,dag,uur,min,sec
  dsjaar=parseInt(dsjaar,10)-cnt;
  savedate(); // YYYY-MM-DD HH:MM:SS

  dsrefresh();
}

function dsrefresh() { // toon kalender
     if (dskaldatumobj.value.substring(0,4)=="0000") dskaldatumobj.value=vandaag;
     var wjaar= dskaldatumobj.value.substring(0,4);
     var wmaand=dskaldatumobj.value.substring(5,7);
     var wdag=  dskaldatumobj.value.substring(8,10);
     var wuur=  dskaldatumobj.value.substring(11,13);
     var wmin=  dskaldatumobj.value.substring(14,16);
     var wsec=  dskaldatumobj.value.substring(17,19);
     var dateobj = new Date (parseInt(wjaar,10),parseInt(wmaand,10)-1,1, 0, 0, 0 );  // eerste dag vd maand
     var weekdag=dateobj.getDay();	// day of the week as a number from 0 to 6 (0=Sunday, 1=Monday, etc)

     if (!weekdag) var legevakjes=6; else var legevakjes=weekdag-1;
     var maand=parseInt(wmaand,10);
     var maandlengte=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31); // aantal dagen in de maand
     var aantaldagen=0;
     if (maand==2) { if ((wjaar%4==0)&&((wjaar%100!=0)||(wjaar%400==0))) aantaldagen=29; else aantaldagen=28;}
       else aantaldagen=maandlengte[maand];

    //dskaldivobj.style.position='relative';  // nodig om 'container' te zijn voor absolute positie, w=0;h=0 om geen plaats in te nemen
    //dskaldivobj.style.zIndex="999";
    //dskaldivobj.style.width="145px";
    //dskaldivobj.style.height="200px";

     var kalhtml ="<div id=k1 class='dskal' style='z-index:99;position:absolute;top:0px;left:0px;width:170px;height:220px;background-color: #ff0000;font-size:12px;' >\n";

     kalhtml+="<div id=k2 style='z-index:99;position:absolute;top:0px;left:0px;height:17px;width:80px;background-color: #0000ff;color: #ffff00;border:solid 1px #ffffff;cursor:pointer;text-align:center;' ";
     kalhtml+=" onClick=\"dstoon(this,'maandlijst');\" ";
     kalhtml+=" >";
     kalhtml+=dsmaanden[maand];
     kalhtml+="</div>\n";
     kalhtml+="<div id=maandlijst class=dshidden style='z-index:999;position:absolute;top:20px;left:0px;width:80px;'>\n";
     for (maand=1; maand<13; maand++) {
       kalhtml+="<div id='kalmaand"+maand+"' style='z-index:11;width:80px;border:solid 1px silver;cursor:pointer;text-align:center;' ";
       kalhtml+=" onClick=\"dsselmaand(this,"+maand+");\" ";
       kalhtml+=" onmouseover=\"if (this.className=='dsteselecteren') this.className='dshover';\" ";
       kalhtml+=" onmouseout=\"if (this.className=='dshover') this.className='dsteselecteren';\" ";
       if (maand==wmaand)  kalhtml+=" class=\"dsselected\" "; else kalhtml+=" class=\"dsteselecteren\" ";
       kalhtml+=" >"+dsmaanden[maand]+"</div>\n";
     }
     kalhtml+="</div>\n";


     kalhtml+="<div style='z-index:9;position:absolute;top:0px;left:81px;height:17px;width:87px;background-color: #0000ff;color: #ffff00;border:solid 1px #ffffff;cursor:pointer;padding:0;'>";
     kalhtml+="<div style='float:left;width:13px;height:16px;'>";
     kalhtml+="<img src='/bun/ds/dsdowndown.gif' width=13 height=13 border=0 onClick='dsjdown(10)' >\n";
     kalhtml+="</div>";
     kalhtml+="<div style='float:left;width:13px;height:16px;'>";
     kalhtml+="<img src='/bun/ds/dsdown.gif' width=13 height=13 border=0 onClick='dsjdown(1)' >\n";
     kalhtml+="</div>";
     kalhtml+="<div style='float:left;width:29px;height:16px;color:#ffffff' onClick=\"dstoon(this,'jaarlijst');\">\n";
     kalhtml+=wjaar;
     kalhtml+="</div>";
     kalhtml+="<div style='float:left;width:13px;height:16px;'>";
     kalhtml+="<img src='/bun/ds/dsup.gif' width=13 height=13 border=0 onClick='dsjup(1)' >\n";
     kalhtml+="</div>";
     kalhtml+="<div style='float:left;width:13px;height:16px;'>";
     kalhtml+="<img src='/bun/ds/dsupup.gif' width=13 height=13 border=0 onClick='dsjup(10)' >\n";
     kalhtml+="</div>";
     kalhtml+="<div style='clear:both;'></div>";
     kalhtml+="</div>\n";
     kalhtml+="<div id=jaarlijst class=dshidden style='z-index:11;position:absolute;top:20px;left:81px;width:50px;text-align:center;'>\n";

     startjaar=parseInt(wjaar,10)-4;
     //if (startjaar>ditjaar) startjaar=ditjaar-4;
     //eindjaar=parseInt(wjaar,10)+5;
     eindjaar=startjaar+10;
     //if (eindjaar<ditjaar) eindjaar=ditjaar;
     for (dsjaar=startjaar; dsjaar<eindjaar+1; dsjaar++) {
       kalhtml+="<div id='kaljaar"+dsjaar+"' style=\"z-index:11;width:50px;border:solid 1px silver;cursor:pointer;\" ";
       kalhtml+=" onClick=\"dsseljaar(this,"+dsjaar+");\" ";
       kalhtml+=" onmouseover=\"if (this.className=='dsteselecteren') this.className='dshover';\" ";
       kalhtml+=" onmouseout=\"if (this.className=='dshover') this.className='dsteselecteren';\" ";
       if (dsjaar==wjaar)  kalhtml+=" class=\"dsselected\" "; else kalhtml+=" class=\"dsteselecteren\" ";
       kalhtml+=" >"+dsjaar+"</div>\n";
     }

     kalhtml+="</div>\n";

     kalhtml+="<div style='clear:both;'></div>";

     // dagen
     kalhtml+="<div style='z-index:9;margin-left:10px;position:absolute;top:20px;height:106px;width:200px;'>";

     wd=Array('M','D','W','D','V','Z','Z')
     for (var vakptr=0; vakptr<7; vakptr++) {
        var top=Math.floor(vakptr/7);
        var left=vakptr-(7*top);
        kalhtml+="<div class='dsvakd'  >"; // style='top:"+(20*top)+"px;left:"+((20*left))+"px;text-align:center;'
        kalhtml+=wd[vakptr];
        kalhtml+="</div>\n";
      }
      kalhtml+="<div style='clear:both;'></div>";

      var dag=1;
      for (var vakptr=0;vakptr<7;vakptr++) {
         if (vakptr<legevakjes) {
            kalhtml+="<div class='dsvak'>&nbsp; </div>\n";
         } else {
            kalhtml+="<div id='kaldag"+dag+"' style='float:left;text-align:center;'"; // style='top:"+(15*top)+"px;left:"+((20*left))+"px;'
            kalhtml+=" onClick=\"dsselect(this,"+dag+");\" ";  // ,'"+id+"','"+toonvakid+"',"+dag+",'"+resultaatid+"','"+showdivid+"','dag'
            kalhtml+=" onmouseover=\"if (this.className=='dsteselecteren') this.className='dshover';\"  ";
            kalhtml+=" onmouseout=\"if (this.className=='dshover') this.className='dsteselecteren';\" ";
            if (dag==wdag) kalhtml+=" class='dsvak dsselected' ";   else kalhtml+=" class='dsvak dsteselecteren' ";
            kalhtml+=" >";
            kalhtml+=dag;
            dag++;
            kalhtml+="</div>\n";
         }
      }
      kalhtml+="<div style='clear:both;'></div>";
      for (var lijnptr=0;lijnptr<7;lijnptr++) {
         for (var vakptr=0;vakptr<7;vakptr++) {
            kalhtml+="<div id='kaldag"+dag+"' style='float:left;text-align:center;'"; // style='top:"+(15*top)+"px;left:"+((20*left))+"px;'
            kalhtml+=" onClick=\"dsselect(this,"+dag+");\" ";  // ,'"+id+"','"+toonvakid+"',"+dag+",'"+resultaatid+"','"+showdivid+"','dag'
            kalhtml+=" onmouseover=\"if (this.className=='dsteselecteren') this.className='dshover';\"  ";
            kalhtml+=" onmouseout=\"if (this.className=='dshover') this.className='dsteselecteren';\" ";
            if (dag==wdag) kalhtml+=" class='dsvak dsselected' ";   else kalhtml+=" class='dsvak dsteselecteren' ";
            kalhtml+=" >";
            kalhtml+=dag;
            kalhtml+="</div>\n";
            dag++;
            if (dag>aantaldagen) break;
         }
         kalhtml+="<div style='clear:both;'></div>";
         if (dag>aantaldagen) break;
      }


   if (legevakjes>9999) {
   for (vakptr=legevakjes+7; vakptr<aantaldagen+legevakjes+7; vakptr++) {
      top=Math.floor(vakptr/7);
      left=vakptr-(7*top);
      dag++;
      kalhtml+="<div id='kaldag"+dag+"' style='float:left;text-align:center;'"; // style='top:"+(15*top)+"px;left:"+((20*left))+"px;'
      kalhtml+=" onClick=\"dsselect(this,"+dag+");\" ";  // ,'"+id+"','"+toonvakid+"',"+dag+",'"+resultaatid+"','"+showdivid+"','dag'
      kalhtml+=" onmouseover=\"if (this.className=='dsteselecteren') this.className='dshover';\"  ";
      kalhtml+=" onmouseout=\"if (this.className=='dshover') this.className='dsteselecteren';\" ";
      if (dag==wdag) kalhtml+=" class='dsvak dsselected' ";   else kalhtml+=" class='dsvak dsteselecteren' ";
      kalhtml+=" >";
      kalhtml+=dag;
      kalhtml+="</div>\n";
      kalhtml+="<div style='clear:both;'></div>";
     }
   }

   kalhtml+="</div>\n"; // dagen


   if (tijd) {
     kalhtml+="<div style='z-index:9;position:absolute;top:150px;left:10px;height:18px;width:100px;' >";
        kalhtml+="<div style='float:left;height:17px;width:30px;color: #000000;' >";
        kalhtml+="Tijd:";
        kalhtml+="</div>\n";
        kalhtml+="<div id=dshh style='float:left;height:17px;width:60px;background-color:#ff0000;color:#000000;' ";
        kalhtml+=" onclick=\"dshhstart();\" >";
        kalhtml+="</div>\n";
     kalhtml+="</div>\n";
   }

     kalhtml+="<div style='z-index:9;position:absolute;top:170px;left:10px;height:15px;font-size:11px;width:30px;background-color:#ffffff;color:#000000;border:solid 1px #000000;text-align:center;cursor:pointer;' ";
     kalhtml+=" onclick=\"dsgo();\" >";
     kalhtml+="Klaar";
     kalhtml+="</div>\n";
     kalhtml+="<div style='z-index:9;position:absolute;top:170px;left:50px;height:15px;font-size:11px;width:30px;background-color:#ffffff;color:#000000;border:solid 1px #000000;text-align:center;cursor:pointer;' ";
     kalhtml+=" onclick=\"dsgozero();\" >";
     kalhtml+="Wis";
     kalhtml+="</div>\n";
     kalhtml+="<div style='z-index:9;position:absolute;top:170px;left:90px;height:15px;font-size:11px;width:30px;background-color:#ffffff;color:#000000;border:solid 1px #000000;text-align:center;cursor:pointer;' ";
     kalhtml+=" onclick=\"dsclearforce(dskaldivobj);\" >";
     kalhtml+="Sluit";
     kalhtml+="</div>\n";

     kalhtml+="</div>\n";

// test
//var kalhtml ="<div class='dskal' style='z-index:99;position:absolute;top:0px;left:0px;width:145px;height:200px;background-color: #ff0000;' >\n";
//kalhtml+="test<br><br>test";
//kalhtml+="<br><br>id="+dskaldivobj.id;
//kalhtml+="<br>class="+dskaldivobj.className;
//kalhtml+="</div>\n";
//
 //document.getElementById('debugarea').innerHTML=kalhtml;
 //document.getElementById(dskaldivobj.id).innerHTML=kalhtml;
  dskaldivobj.innerHTML = kalhtml;
  //alert("innerhtml2"+dskaldivobj.innerHTML);
  if (tijd) toontsdata();
  //dskaldivobj.style.zIndex="9";
  dsshow();
  //dskaldatumshowobj.innerHTML = wdag +" " + dsmaanden[parseInt(wmaand,10)]+ " " + wjaar;
}


function dsselmaand(obj,nieuwemaand) {
  obj.className = 'dsselected';
  explodedate(); // get jaar,maand,dag,uur,min,sec
  var maandobj = document.getElementById('kalmaand'+parseInt(maand,10));
  maandobj.className = 'dsteselecteren';

  maand= (nieuwemaand>9) ? nieuwemaand : '0'+nieuwemaand;

  savedate(); // YYYY-MM-DD HH:MM:SS

  dskaldivselobj.className='dshidden';
  dskaldivselobj ='';

  dsrefresh();

}

function dsseljaar(obj,nieuwjaar) {
  obj.className = 'dsselected';
  explodedate(); // get jaar,maand,dag,uur,min,sec
  var jaarobj = document.getElementById('kaljaar'+parseInt(dsjaar,10));
  jaarobj.className = 'dsteselecteren';

  dsjaar= (nieuwjaar>9) ? nieuwjaar : '0'+nieuwjaar;
  savedate(); // YYYY-MM-DD HH:MM:SS

  dskaldivselobj.className='dshidden';
  dskaldivselobj ='';

  dsrefresh();

}


function dsselect(obj,nieuwedag) {   // ,lijstid,id,waarde,resultaatid,showdivid,type
// dsselect(this,'stopjaarlijst','stopjaar','$jaar','toesteleinddatum','stopdatum','jaar')
  obj.className = 'dsvak dsselected';
  explodedate(); // get jaar,maand,dag,uur,min,sec
  var dagobj = document.getElementById('kaldag'+parseInt(dag,10));
  dagobj.className = 'dsvak dsteselecteren';

  dag= (nieuwedag>9) ? nieuwedag : '0'+nieuwedag;
  savedate(); // YYYY-MM-DD HH:MM:SS
  maand=parseInt(maand,10);
  dateobj = new Date ( dsjaar, maand-1, dag, 0, 0, 0 );
  weekdag=dateobj.getDay() 	// day of the week as a number from 0 to 6 (0=Sunday, 1=Monday, etc)

dsshow()
//dsclear(dskaldivobj);
//dskaldivobj='';
return;

// aantal dagen in de maand
//maandlengte=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
//if (maand==2) {
//  if ((jaar%4==0)&&((jaar%100!=0)||(jaar%400==0))) aantaldagen=29; else aantaldagen=28;
//} else aantaldagen=maandlengte[maand];


  //var showobj = document.getElementById(showdivid);
  //showobj.innerHTML= dagen[weekdag] + ", " + dag + " " + maanden[maand] + " " + jaar + " " + uur + ":" + min ;

}

function dsshow() {
  if (dskalcallback) return;  // indien callback doe niets, toon alleen bij 'klaar'
  explodedate(); // get jaar,maand,dag,uur,min,sec
  if (dsjaar.substring(0,1)=='0') {
          dskaldatumshowobj.innerHTML = '&nbsp;';
          return;
          }
  dateobj = new Date (dsjaar, maand-1, dag, uur, min, sec );
  //if (tijd) dateobj = new Date ( jaar, maand-1, dag, uur, min, sec );
  //  else dateobj = new Date ( jaar, maand-1, dag );
  weekdag=dateobj.getDay() 	// day of the week as a number from 0 to 6 (0=Sunday, 1=Monday, etc)
  maand=parseInt(maand,10);
  updatetxt=dsdagen[weekdag] +", " + parseInt(dag,10) +" " + dsmaanden[maand]+ " " + dsjaar;
  if (tijd) updatetxt += " " + uur + ":" + min
  dskaldatumshowobj.innerHTML = updatetxt;

}



