function writeCalendar(){
  var now = new Date;
  var dd = now.getDate();
  var mm = now.getMonth();
  var yyyy = now.getFullYear();
  var minYear=yyyy;
  var maxYear=yyyy;
  for (ii=0;ii<vdate.length;ii++) {
    if (vdate[ii]=='') break;
    vdate[ii]=vdate[ii].split('!');
    var y = Number(vdate[ii][0].replace(/-.*/,""));
    if (minYear>y) {minYear=y;}
    if (maxYear<y) {maxYear=y;}
  }
  var arrM = new Array("Januari","Februari","Maart","April","Mei","Juni","Juli","Augustus","September","Oktober","November","December");
  var arrD = new Array("Zo","Ma","Di","Wo","Do","Vr","Za");

  var text = "";
  text = "<form name='calForm' class='calendar'><table cellspacing='0'>";
  text += "<tr class='control'><td class='c1-2' colspan='4'>";
  text += "<a href='javascript:changeCal(-1,0)'><img name='month-prev' src='http://leeuwarden.notudoc.nl/gfx/buttons/prev.gif' border='0' alt='Vorige Maand'/></a>";
  text += "<select name='selMonth' onChange='changeCal(0,0)'>";
  for (ii=0;ii<=11;ii++){
    if (ii==mm){
      text += "<option value='" + ii + "' selected='selected'>" + arrM[ii] + "</option>";
    }
    else{
      text += "<option value='" + ii + "'>" + arrM[ii] + "</option>";
    }
  }
  text += "</select>";
  text += "<a href='javascript:changeCal(1,0)'><img name='month-next' src='http://leeuwarden.notudoc.nl/gfx/buttons/next.gif' border='0' alt='Volgende Maand'/></a>";
  text += "</td><td class='c2-2' colspan='4'>";
  text += "<a href='javascript:changeCal(0,-1)'><img name='year-prev' src='http://leeuwarden.notudoc.nl/gfx/buttons/prev.gif' border='0' alt='Vorig Jaar'/></a>";
  text += "<select name='selYear' onChange='changeCal(0,0)'>";
  for (ii=minYear;ii<=maxYear;ii++){
    if (ii==yyyy){
      text += "<option value='"+ii+"' selected='selected'>"+ii+"</option>";
    }else{
      text += "<option value='"+ii+"'>"+ii+"</option>";
    }
  }
  text += "</select>";
  text += "<a href='javascript:changeCal(0,1)'><img name='year-next' src='http://leeuwarden.notudoc.nl/gfx/buttons/next.gif' border='0' alt='Volgend Jaar'/></a>";
  text += "</div></td></tr>";
  text += "<tr valign='top'><td class='week'>&nbsp;</td>";
  for (ii=0;ii<=6;ii++){ text += "<td class='label'>" + arrD[ii] + "</td>" }
  text += "</tr>";
  for (var kk=0;kk<=5;kk++){
    text += "<tr class='week' valign='top'><td class='weeknr'><span id='wk"+kk+"'>1</span></td>";
    for (var ii=0;ii<=6;ii++){
      text += "<td class='date' id='sp" + (kk*7+ii) + "'><del>1</del></td>";
    }
    text += "</tr>";
  }
  text += "</table>";
  text += "</form>";
  document.write(text);
  changeCal(0,0);
}
function changeCal(changeM,changeY){
  var now = new Date;
  var dd = now.getDate();
  var mm = now.getMonth();
  var yyyy = now.getFullYear();
  var currM = parseInt(document.forms.calForm.selMonth.value);
  var currY = parseInt(document.forms.calForm.selYear.value);
  var yearS = document.forms.calForm.selYear.selectedIndex;
  if (changeM) {
    currM += changeM;
    if (currM<0) {
      if (yearS==0)return;
      currY--;
      yearS--;
      currM=11;
    } else if (currM>11) {
      yearS++;
      if (yearS==document.forms.calForm.selYear.length)return;
      currY++;
      currM=0;
    }
  } else if (changeY<0) {
    if (yearS==0)return;
    currY--;
    yearS--;
  } else if (changeY>0) {
    yearS++;
    if (yearS==document.forms.calForm.selYear.length)return;
    currY++;
  }
  document.forms.calForm.selYear.selectedIndex = yearS;
  document.forms.calForm.selMonth.selectedIndex=currM;
  var prevM = (currM!=0)  ? currM - 1 : 11;
  var nextM = (currM!=11) ? currM + 1 :  0;
  var prevY = (currM!=0)  ? currY     : currY-1;
  var nextY = (currM!=11) ? currY     : currY+1;
  var mmyyyy = new Date();
  mmyyyy.setFullYear(currY);
  mmyyyy.setMonth(currM);
  mmyyyy.setDate(1);
  var day1 = mmyyyy.getDay();
  if (day1 == 0){ day1 = 7; }
  var arrN = new Array(42);
  var arrT = new Array(42);
  var aa =  maxDays((prevM),prevY) - day1 +1;
  for (var ii=0;ii<day1;ii++){
    arrN[ii] = aa+ii;
    arrT[ii] = ondate(prevY,prevM+1,aa+ii);
  }
  aa = 1;
  for (var ii=day1;ii<=day1+maxDays(currM,currY)-1;ii++){
    arrN[ii] = aa;
    arrT[ii] = ondate(currY,currM+1,aa);
    aa += 1;
  }
  aa = 1
  for (var ii=day1+maxDays(currM,currY);ii<=41;ii++){
    arrN[ii] = aa;
    arrT[ii] = ondate(nextY,nextM+1,aa);
    aa += 1;
  }
  var arrW = new Array(6);
  arrW[0] = isoweeknumber(prevY,prevM,arrN[1],1);
  arrW[1] = isoweeknumber(currY,currM,arrN[8],1);
  arrW[2] = isoweeknumber(currY,currM,arrN[15],1);
  arrW[3] = isoweeknumber(currY,currM,arrN[22],1);
  arrW[4] = isoweeknumber(currY,currM,arrN[29],1);
  arrW[5] = isoweeknumber(nextY,nextM,arrN[41],6);
  for (var ii=0;ii<=41;ii++){
    var dCount = ii % 7;
    var elem = document.getElementById("sp"+ii);
    var l = elem.getElementsByTagName("*");
    for (var i=l.length - 1; i >= 0; i--) {
      if (l.item(i).tagName.toLowerCase() != "del") {
        l.item(i).parentNode.removeChild(l.item(i));
      }
    }
    var m = document.createElement("div");
    if (((ii<7)&&(arrN[ii]>20))||((ii>27)&&(arrN[ii]<20))){
      m.className = "otherday"
    }else if ((arrN[ii]==dd)&&(mm==currM)&&(yyyy==currY)){
      m.className = "now"
    }else if ((dCount==0)||(dCount==6)){
      m.className = "weekend"
    }else{
      m.className = "weekday"
    }
    m.appendChild(document.createTextNode(arrN[ii]));
    elem.appendChild(m);
    for (var i=0; i<arrT[ii].length; i++) {
      if (arrT[ii][i][3]==0) {
	makeNamed(elem,'div','meeting',['title',arrT[ii][i][1]],arrT[ii][i][2]);
      } else {
        var m = makeNamed(elem,'div','meeting',[]);
	makeAttr(m,'a',['href','http://leeuwarden.notudoc.nl'+arrT[ii][i][4],'title',arrT[ii][i][1]],arrT[ii][i][2]);
	
      }
    }
    if (arrT[ii].length==0) {
      makeNamed(elem,'div','nomeeting',[],'-');
    }
  }
  for(var ii=0;ii<=5;ii++) {
    document.getElementById("wk"+ii).innerHTML = arrW[ii];
  }
  // change gfx if needed
  yearS = document.forms.calForm.selYear.selectedIndex;
  currM = parseInt(document.forms.calForm.selMonth.value);
  if (yearS==0 && yearS==document.forms.calForm.selYear.length-1) {
    document.images['year-prev'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/no-prev.gif';
    document.images['year-next'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/no-next.gif';
    if (currM==0) {
      document.images['month-prev'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/no-prev.gif';
    } else if (currM==11) {
      document.images['month-next'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/no-next.gif';
    } else {
      document.images['month-prev'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/prev.gif';
      document.images['month-next'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/next.gif';
    }
  } else if (yearS==0) {
    document.images['year-prev'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/no-prev.gif';
    document.images['year-next'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/next.gif';
    if (currM==0) {
      document.images['month-prev'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/no-prev.gif';
    } else {
      document.images['month-prev'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/prev.gif';
    }
    document.images['month-next'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/next.gif';
  } else if (yearS==document.forms.calForm.selYear.length-1) {
    document.images['year-prev'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/prev.gif';
    document.images['year-next'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/no-next.gif';
    document.images['month-prev'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/prev.gif';
    if (currM==11) {
      document.images['month-next'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/no-next.gif';
    } else {
      document.images['month-next'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/next.gif';
    }
  } else {
    document.images['year-prev'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/prev.gif';
    document.images['year-next'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/next.gif';
    document.images['month-prev'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/prev.gif';
    document.images['month-next'].src = 'http://leeuwarden.notudoc.nl/gfx/buttons/next.gif';
  }
}
