var TodayMonth,TodayDay,TodayYear,TodayRef="";
var SelectMonth,SelectDay,SelectYear,SelectRef="";
var CurrentMonth,CurrentYear,time;
var Months=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var oneDay = 86400000; //In milliseconds

function initializeCal(tmpMon,tmpDay,tmpYear,tmpWeekDay) {
  TodayMonth=tmpMon;
  TodayDay=tmpDay;
  TodayYear=tmpYear;
  SelectMonth=TodayMonth;
  SelectDay=TodayDay+1;
  SelectYear=TodayYear;
  CurrentMonth=TodayMonth;
  CurrentYear=TodayYear;
  if(tmpWeekDay==1){ SelectDay=TodayDay+2; } //If its Mon then skep Tues to select Wed

}

function drawCal(x,y) {
  document.getElementById("calandarValue").value=SelectMonth+"/"+SelectDay+"/"+SelectYear;
  document.write("<IMG align=absmiddle SRC=img/calendar/icon.gif border=0 style='position:relative;top:"+(y)+"px;left:"+x+"px;cursor:hand;' onclick=toggleCal();><DIV id=CalContainer style='display:none;position:relative;top:"+(y-10)+"px;left:"+(x-20)+"px;width:198px;height:160px;border:2px solid black;'><TABLE CELLPADDING=0 CELLSPACING=0 WIDTH=100% BGCOLOR=#dddddd><TR height=24><TD align=center><IMG SRC=img/calendar/but_prev.gif onclick=LoadMonth(-1); style=position:absolute;top:3px;left:3px;cursor:pointer;cursor:hand;><SPAN id=month style='text-align:center;color:#000000;font-family:Arial,sans-serif;font-size: 14px;font-weight:bold;'>Month</SPAN><IMG SRC=img/calendar/but_next.gif onclick=LoadMonth(1); style=position:absolute;top:3px;right:3px;cursor:pointer;cursor:hand;></TD></TR><TR height=4><TD BGCOLOR=#ffffff></TD></TR><TR><TD BGCOLOR=#ffffff valign=top><DIV id=calendar></div></TD></TR><TR height=5><TD></TD></TR></TABLE></DIV>");  

  LoadMonth(0);
}

function toggleCal(){
  if(document.getElementById("CalContainer").style.display=="none"){
    document.getElementById("CalContainer").style.display="block";
  } else {
    document.getElementById("CalContainer").style.display="none";
  }
}

function LoadMonth(inc) {
  CurrentMonth+=inc;
  if (CurrentMonth>12) {CurrentMonth=0;  CurrentYear++; }
  if (CurrentMonth<0)  {CurrentMonth=11; CurrentYear--; }
  if (CurrentMonth < TodayMonth && CurrentYear==TodayYear){ CurrentMonth++; }   //Limit dates to within one year
  if (CurrentMonth > TodayMonth && CurrentYear==TodayYear+1){ CurrentMonth--; }

  var StartDate= CurrentMonth+"/1/"+CurrentYear;
  var VIEW = new Date(StartDate);
  var monthnumber = VIEW.getMonth();
  var day         = VIEW.getDay();
  var year        = VIEW.getYear();
  time            = VIEW.getTime();

  if (year<1000) { year+=1900;}
  time -= oneDay*day;
  SelectRef="";
  TodayRef=0;

  var CAL="<TABLE CELLPADDING=2 CELLSPACING=0 WIDTH=100% style='font-family:Arial,sans-serif;font-size: 11px;'><TR><TD class=Day>Sun</TD><TD class=Day>Mon</TD><TD class=Day>Tue</TD><TD class=Day>Wed</TD><TD class=Day>Thu</TD><TD class=Day>Fri</TD><TD class=Day>Sat</TD></TR>";
  for (y=0;y<=5;y++){
    CAL+="<TR>";
    for (x=0;x<=6;x++){
      VIEW.setTime(time+(y*7+x)*oneDay);
      var monthday     = VIEW.getDate();
      var tmonthnumber = VIEW.getMonth();
      var tyear        = VIEW.getYear();
      if (tyear<1000) { tyear+=1900;}
      if (tyear==TodayYear && (tmonthnumber+1)==TodayMonth && monthday==TodayDay){
        TodayRef=""+(y*7+x);
        if (SelectYear==TodayYear && SelectMonth==TodayMonth && SelectDay==TodayDay){  CAL+="<TD id="+(y*7+x)+" onclick=select(this.id); class=seltdyDate>"+monthday+"</TD>"; SelectRef=""+(y*7+x); }
        else { CAL+="<TD id="+(y*7+x)+" onclick=select(this.id); class=tdyDate>"+monthday+"</TD>"; }
      } else {

        if(tyear==SelectYear && (tmonthnumber+1)==SelectMonth && monthday==SelectDay){
          CAL+="<TD id="+(y*7+x)+" onclick=select(this.id); class=selDate>"+monthday+"</TD>";
          SelectRef=""+(y*7+x);
        } else if (tmonthnumber==monthnumber) {
          CAL+="<TD id="+(y*7+x)+" onclick=select(this.id); class=hiDate>"+monthday+"</TD>";
        } else {
          CAL+="<TD id="+(y*7+x)+" onclick=select(this.id); class=loDate>"+monthday+"</TD>";
        }
      }
    }
    CAL+="</TR>";
  } CAL += "</TABLE>";
  document.getElementById('month').innerHTML = Months[monthnumber]+" "+year;
  document.getElementById('calendar').innerHTML = CAL;
}

function select(ID) {
  toggleCal();

  var Tuesday=Math.floor((ID-2)/7);
  if ((Tuesday*7)+2 == ID) { Tuesday=1; } else { Tuesday=0; }

if (((ID*1)+((CurrentMonth+(CurrentYear-TodayYear)*12)-TodayMonth)*30)<(TodayRef*1+1)){
  alert ("Your reservation must be made at least one day in advance.");
} else if (Tuesday) {
  alert("Sorry, we are closed on Tuesdays during this month.");
} else {

  var LOAD=new Date(time+ID*oneDay);
  SelectDay    = LOAD.getDate();
  SelectMonth  = LOAD.getMonth()+1;
  SelectYear   = LOAD.getYear();
  if(SelectYear<1000){ SelectYear += 1900; }
  if (SelectRef != ""){
    if (SelectRef==TodayRef) {
      document.getElementById(SelectRef).style.backgroundImage="url(img/calendar/today.png)";
    } else {
      document.getElementById(SelectRef).style.backgroundImage="none";
    }
    document.getElementById(SelectRef).style.cursor="pointer";
  }
  if (ID==TodayRef) {
    document.getElementById(ID).style.backgroundImage="url(img/calendar/today_sel.png)";
  } else {
    document.getElementById(ID).style.backgroundImage="url(img/calendar/sel.png)";
  }
  document.getElementById(ID).style.cursor="default";
  SelectRef=ID;

  document.getElementById("calandarValue").value=SelectMonth+"/"+SelectDay+"/"+SelectYear;
  CurrentMonth=SelectMonth;
  CurrentYear=SelectYear;
  LoadMonth(0);
}
}