
 function Calendar(divParent, intMonth, strFieldID, strTimestamp)
  {
   var datCalendar_Current = new Date();

   if (intMonth != null)
    {
     var datCalendar = new Date(datCalendar_Current.getUTCFullYear(), intMonth, 1);
    }
   else
    {
     var datCalendar = new Date(datCalendar_Current.getUTCFullYear(), datCalendar_Current.getMonth(), 1);
    }

   var strHTML        = ""; 
   var arystrDay      = new Array(7);
   var arystrMonth    = new Array(12);
   var intDay_Current = datCalendar.getDay() - 1;

   arystrDay[0] = "Ma";
   arystrDay[1] = "Di";
   arystrDay[2] = "Wo";
   arystrDay[3] = "Do";
   arystrDay[4] = "Vr";
   arystrDay[5] = "Za";
   arystrDay[6] = "Zo";

   arystrMonth[0] = "Januari";
   arystrMonth[1] = "Februari";
   arystrMonth[2] = "Maart";
   arystrMonth[3] = "April";
   arystrMonth[4] = "Mei";
   arystrMonth[5] = "Juni";
   arystrMonth[6] = "Juli";
   arystrMonth[7] = "Augustus";
   arystrMonth[8] = "September";
   arystrMonth[9] = "Oktober";
   arystrMonth[10] = "November";
   arystrMonth[11] = "December";

   strHTML += "<table onselectstart=\"return false;\" cellspacing=\"3\" style=\"border: 1px solid #e0e0e0; background-color: #FDFDFD; font-family: Verdana; font-size: 13px; z-index: 999;\">";

   if (intMonth == null)
    {
     intMonth = datCalendar.getMonth() - 1;
    }

   strHTML += " <tr>";
   strHTML += "  <td align=\"center\" valign=\"middle\" style=\"background-color: #f2f2f2; cursor: pointer;\" onclick=\"Calendar(document.getElementById('" + divParent.id + "'), " + (intMonth - 1) + ", '" + strFieldID + "', '" + strTimestamp + "');\"><b><</b></td><td align=\"center\" valign=\"middle\" colspan=\"5\">" + arystrMonth[datCalendar.getMonth()] + " " + displayYear(datCalendar.getUTCFullYear(), intMonth) + "</td><td align=\"center\" valign=\"middle\" style=\"background-color: #f2f2f2; cursor: pointer;\" onclick=\"Calendar(document.getElementById('" + divParent.id + "'), " + (intMonth + 1) + ", '" + strFieldID + "', '" + strTimestamp + "');\"><b>></b></td>";
   strHTML += " </tr>";

   strHTML += " <tr>";

   for (var intIndex = 0; intIndex < 7; intIndex++)
    {
     strHTML += " <td align=\"center\" valign=\"middle\">" + arystrDay[intIndex] + "</td>";
    }

   strHTML += " </tr>";
   strHTML += " <tr>";

   if (intDay_Current == -1)
    {
     intDay_Current = 6;
    }

   for (var intIndex = 0; intIndex < intDay_Current; intIndex++)
    {
     strHTML += " <td align=\"center\" valign=\"middle\">&nbsp;</td>";
    }

   for (var intDay = 1; intDay < monthDay(datCalendar.getUTCFullYear(), datCalendar.getMonth()); intDay++)
    {
     if (intDay_Current == 0)
      {
       strHTML += " <tr>";
      }

     intDay_Current++;

     strHTML += "  <td align=\"center\" valign=\"middle\" style=\"background-color: #f2f2f2; cursor: pointer;\" onclick=\"document.getElementById('" + strFieldID + "').value = '" + intDay + "-" + (datCalendar.getMonth() + 1) + "-" + displayYear(datCalendar.getUTCFullYear(), intMonth) + "'; document.getElementById('" + divParent.id + "').innerHTML = '';";

     if (strTimestamp != null)
      {
       var strTimestamp_Value = (datCalendar.getTime() + (((60 * 60) * 24) * (intDay * 1000))).toString()

       strTimestamp_Value = strTimestamp_Value.substring(0, strTimestamp_Value.length - 3);

       strHTML += " " + strTimestamp + ".value = '" + strTimestamp_Value + "';\">" + intDay + "</td>";
      }
     else
      {
       strHTML += "\">" + intDay + "</td>";
      }


     if (intDay_Current > 6)
      {
       strHTML += " </tr>";

       intDay_Current = 0;
      }
    }

   strHTML += "</table>";

   divParent.innerHTML = strHTML;
  }

 function monthDay(intYear, intMonth)
  {
   var datCalendar_Day = new Date(intYear, intMonth + 1, 0);

   return datCalendar_Day.getDate() + 1;
  }

 function displayYear(intYear, intMonth)
  {
   if (((intMonth / 12) + "").indexOf(".") == -1)
    {
     return intYear + 1;
    }
   else
    {
     return intYear;
    }
  }
