var OneDay = 86400000
var OneMonth = (OneDay * 30)
var CurrentDate = new Date()
var RetObj 
varCurrentMonth = ""
varMonth = new Array(12)
varMonth[1] = "January"
varMonth[2] = "February" 
varMonth[3] = "March" 
varMonth[4] = "April" 
varMonth[5] = "May" 
varMonth[6] = "June" 
varMonth[7] = "July" 
varMonth[8] = "August" 
varMonth[9] = "September" 
varMonth[10] = "October" 
varMonth[11] = "November" 
varMonth[12] = "December" 

function fixTheYear(TheYear)  {

if (TheYear >= 100 && TheYear <= 1999)
{TheYear=TheYear + 1900}
else
{TheYear=TheYear}
return TheYear
}

function DoCalendar(TheDate,obj)
{
  RetObj = obj
  var RefDate = new Date(TheDate)
  varDays = RefDate.getTime() - (OneDay * (RefDate.getDate()-1))
  RefDate.setTime(varDays)
  varDays = RefDate.getTime() - (OneDay * (RefDate.getDay()))
  RefDate.setTime(varDays)
  var MnthDate = new Date(TheDate)
  varDays = RefDate.getTime() + (OneDay * 15)
  MnthDate.setTime(varDays)
  myyear = MnthDate.getYear()
  varCurrentMonth = varMonth[MnthDate.getMonth()+1] + " " + fixTheYear(myyear)
  CurrentDate = TheDate  
  ShowCalendar(RefDate,obj);
}


function Prev()
{
  var pDate = new Date(CurrentDate);
  varpDays = pDate.getTime() - OneMonth;
  pDate.setTime(varpDays);
  DoCalendar(pDate,RetObj);
}

function Next()
{
  var nDate = new Date(CurrentDate);
  //alert(nDate.getMonth()+ " " + nDate.getDate());
  
  if ((nDate.getMonth() == 00) && (nDate.getDate() >= 28))
  { 
	 varMon = OneDay * 28;
	 varnDays = nDate.getTime() + varMon;
	 nDate.setTime(varnDays);
 	 DoCalendar(nDate,RetObj);
  }
  else
  {

  	varnDays = nDate.getTime() + OneMonth;
 	 nDate.setTime(varnDays);
 	 DoCalendar(nDate,RetObj);
  }
}

function ShowCalendar(theDate,RetObj){
  
  document.getElementById("calendar").innerHTML = "";
  var DateLoop = new Date(theDate);
  var varCal =""
  varCal += "<table border='0' cellspacing='0' cellpadding='1' class='calendar'>";
    varCal += "<tr>";
      varCal += "<td class='calClicker'>&nbsp;</td>";
      varCal += "<td class='calMonthname' colspan='5'><a class='ahreflink' href='javascript:void(0)' onClick=CloseCal()>Close</a></td>";
      varCal += "<td class='calClicker'></td>";      
    varCal += "</tr>";
    varCal += "<tr>";
      varCal += "<td class='calClicker'><a class='ahreflink' href='javascript:void(0)' onClick=Prev()>&lt;&lt;</a></td>";
      varCal += "<td class='calMonthname' colspan='5'>" + varCurrentMonth  +"</td>";
      varCal += "<td class='calClicker'><a class='ahreflink' href='javascript:void(0)' onClick=Next()>&gt;&gt;</a></td>";      
    varCal += "</tr>";
    varCal += "<tr>";
      varCal += "<td class='calDayname' align='center'>S</td>";    
      varCal += "<td class='calDayname' align='center'>M</td>";    
      varCal += "<td class='calDayname' align='center'>T</td>";    
      varCal += "<td class='calDayname' align='center'>W</td>";    
      varCal += "<td class='calDayname' align='center'>T</td>";    
      varCal += "<td class='calDayname' align='center'>F</td>";    
      varCal += "<td class='calDayname' align='center'>S</td>";    
    varCal += "</tr>";

  var todayDate = new Date(CurrentDate);
  todayDayNo=(todayDate.getDate())
  todayMonthNo = todayDate.getMonth()+1
  today_year = todayDate.getYear()
  todayYearNo=fixTheYear(today_year)
  todayDateStr = todayDayNo + " " + (varMonth[todayMonthNo]) + " " + todayYearNo
  //Normalize Day
  if (todayDayNo < 10)
  {
    todayDayNo = '0' + todayDayNo;
  }
  //Normalize Month
  if (todayMonthNo < 10)
  {
    todayMonthNo = '0' + todayMonthNo;
  }  
  
  todayDateValue = todayDayNo + "/" + todayMonthNo + "/" + todayYearNo
  
  for ( var r = 1; r <= 6; r++ ) 
  {
	  varCal += "<tr>"

    for ( var c = 1; c <= 7; c++ ) 
    {
      //Normalize Day
      if (DateLoop.getDate() < 10)
      {
        dayNo = '0' + DateLoop.getDate();
      }
       else
      {
        dayNo = DateLoop.getDate();
      }
      //Normalize Month
      if ((DateLoop.getMonth()+1) < 10)
      {
        monthNo = '0' + (DateLoop.getMonth()+1);
      }
       else
      {
        monthNo = (DateLoop.getMonth()+1);
      }
      
      
      if ((eval(todayMonthNo))!=(eval(monthNo)))
      {
  	    varCal += "<td>&nbsp;</td>";  	    
  	  }
  	  else
  	  {
  		chosenyear = DateLoop.getYear()
  	    varCal += "<td onClick=ShowDate('"
  	    varCal +=  dayNo + "/"  + monthNo + "/" + fixTheYear(chosenyear)
  	    varCal += "','" + RetObj + "') class='calDay'>" + dayNo + "</td>";
  	  }
  	  varDays = DateLoop.getTime() + OneDay;
  	  DateLoop.setTime(varDays);	
    }
    varCal += "</tr>"    
  }
    
    //Today Date
    varCal += "<tr>";
      varCal += "<td colspan=7 class='calToday' onClick=ShowDate('" + todayDateValue + "','" + RetObj + "')>" + todayDateStr + "</td>";    
    varCal += "</tr>";
  varCal += "</table>"
  document.getElementById("calendar").innerHTML = varCal
  }

function ShowDate(theDate,obj)
{
  document.getElementById("calendar").innerHTML = "";    
  document.getElementById(RetObj).value = theDate
}

function CloseCal()
{
  document.getElementById("calendar").innerHTML = "";    
}

function setLyr(obj,lyr)
{
	var newX = findPosX(obj);
	var newY = findPosY(obj);
	if (lyr == 'testP') newY -= 50;
	var x = new getObj(lyr);
	x.style.top = newY + 'px';
	x.style.left = newX + 'px';
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	var printstring = '';
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			printstring += ' element ' + obj.tagName + ' has ' + obj.offsetTop;
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	window.status = printstring;
	return curtop;
}


function getObj(name)
{
 if (document.getElementById)
 {
	   this.obj = document.getElementById(name);
	   this.style = document.getElementById(name).style;
 }
 else if (document.all)
 {
	   this.obj = document.all[name];
	   this.style = document.all[name].style;
 }
 else if (document.layers)
 {
	   if (document.layers[name])
	   {
	   	this.obj = document.layers[name];
	   	this.style = document.layers[name];
	   }
	   else
	   {
	    this.obj = document.layers.testP.layers[name];
	    this.style = document.layers.testP.layers[name];
	   }
 }
}

function StartDateCal(obj)
		{
			//setDivPos(calendar,obj,0,10);
			DoCalendar(Date(),obj);
			return
		}	//StartDateCal