/************************************************************
 m   - month (1-12)
 y   - year (exm. 2005)
 url - link to page (exm. "mypage.php?p=1")
************************************************************/
function Calendar(m,y,page) {
  this.cssFile = "/calendar/calendar.css";
  this.daysName = ["Su","Mo","Tu","We","Th","Fr","Sa"];
  this.monthsName = ["January","February","March","April","May","June","July","August","September","October","November","December"];
  this.daysOfMonth = [31,28,31,30,31,30,31,31,30,31,30,31];
  this.items = new Object();
  this.tpl = "&d=m-y";
  this.isLeapYear = function(y) {
    return (y%4==0)&&(y%100!=0)||(y%400==0);
  }
  this.init = function() {
    if (this.isLeapYear(y))
      this.daysOfMonth[1] = 29;
    if (!page) page = "?";
  }
  this.add = function(d,link) {
    this.items[d] = link;
  }
  this.show = function() {
    var prev = m>1?this.tpl.replace(/m/,m-1).replace(/y/,y):this.tpl.replace(/m/,12).replace(/y/,y-1);
    var next = m<12?this.tpl.replace(/m/,parseInt(m)+1).replace(/y/,y):this.tpl.replace(/m/,1).replace(/y/,parseInt(y)+1);
    var s = "<LINK rel='stylesheet' type='text/css' href='"+this.cssFile+"'>"+
      "<TABLE class=calTable cellspacing=0 cellpadding=0>"+
      "<TR><TD class=calDate colspan=7> <A href='"+page+prev+"'><<</A> "+this.monthsName[m-1]+" "+y+" <A href='"+page+next+"'>>></A> </TD></TR>"+
      "<TR class=calHeader>";
    for (var i=0;i<7;i++)
      s += "<TD"+(!i?" class=su":"")+">"+this.daysName[i]+"</TD>";
    s += "</TR><TR>";
    var fdom = new Date(y,m-1,1).getDay();
    var rows = Math.ceil((fdom+this.daysOfMonth[m-1])/7);
    for (var i=0;i<rows*7;i++) {
      var f = i<fdom||i-fdom+1>this.daysOfMonth[m-1];
      var val = i-fdom+1;
      var tdc = "calNormal";
      if (this.items[val]) {
        val = "<A href="+this.items[val]+">"+val+"</A>";
        tdc = "calFull";
      }
      if (i%7==0) tdc += "Su";
      s += "<TD class="+(f?"calOut":tdc)+">"+(f?"&nbsp;":val)+"</TD>";
      if (i%7==6) s += "</TR>";
      if (i%7==6&&i<rows*7-1) s += "<TR>";
    }
    s += "</TABLE>";
    document.write(s);
  }
  this.init();
}
