var TodaysDate = new Date() // today's date
var DaySeconds = 86400000 // mili seconds in one day
var MonthSeconds = (DaySeconds * 30) // mili seconds in one month
var requirement = '';

var cal_timer;
var date_field = '';

arrayMonth = new Array(12)
arrayMonth[1] = "January"
arrayMonth[2] = "February" 
arrayMonth[3] = "March" 
arrayMonth[4] = "April" 
arrayMonth[5] = "May" 
arrayMonth[6] = "June" 
arrayMonth[7] = "July" 
arrayMonth[8] = "August" 
arrayMonth[9] = "September" 
arrayMonth[10] = "October" 
arrayMonth[11] = "November" 
arrayMonth[12] = "December" 
varInputBox = ""
varTop = ""
varLeft = ""
varTodaysMonth = ""
date_now = ""

pic_preload= new Image(42,20); 
pic_preload.src="images/red_arrow.gif"; 

function SelectDate(DateValue,e,source)
{
	varInputBox = e
	requirement = source;
	
	if(e.parentElement){
		varTop = e.offsetTop + e.parentElement.offsetTop + e.parentElement.parentElement.parentElement.parentElement.offsetTop;
		varLeft = e.offsetLeft + e.parentElement.offsetLeft + e.parentElement.parentElement.parentElement.parentElement.offsetLeft;
	}else{
		varTop = e.offsetTop + e.parentNode.offsetTop + e.parentNode.parentNode.parentNode.parentNode.offsetTop;
		varLeft = e.offsetLeft + e.parentNode.offsetLeft + e.parentNode.parentNode.parentNode.parentNode.offsetLeft;
	}
	
	var RefDate = new Date(DateValue)
	varDays = RefDate.getTime() - (DaySeconds * (RefDate.getDate()-1))
	RefDate.setTime(varDays)
	varDays = RefDate.getTime() - (DaySeconds * (RefDate.getDay()))
	RefDate.setTime(varDays)
	var MnthDate = new Date(DateValue)
	varDays = RefDate.getTime() + (DaySeconds * 15)
	MnthDate.setTime(varDays)
	varTodaysMonth = arrayMonth[MnthDate.getMonth()+1] + " " + MnthDate.getYear()
	TodaysDate = DateValue
	date_now = new Date()
	
	  var month1 = date_now.getMonth()+1
	  var year1 = date_now.getYear()
	  var day1 = date_now.getDate()
	  if(day1<10) day1 = "0" + day1
	  if(month1<10) month1= "0" + month1 
	  if(year1<1000) year1+=1900				 
	  date_now = month1 + "/" + day1 + "/" + year1;	
	
	ShowCalendar(RefDate);
}

function PrevMonth()
{
	clearTimeout(cal_timer);
	var pDate = new Date(TodaysDate);
	varpDays = pDate.getTime() - MonthSeconds;
	pDate.setTime(varpDays);
	SelectDate(pDate,varInputBox);
}

function NextMonth()
{
	clearTimeout(cal_timer);
	var nDate = new Date(TodaysDate);
	varnDays = nDate.getTime() + MonthSeconds;
	nDate.setTime(varnDays);
	SelectDate(nDate,varInputBox,varTop,varLeft);
}

function ShowCalendar(DateValue){
	if(document.getElementById){
		document.getElementById("calendar").innerHTML = "";
	}else{
		document.all("calendar").innerHTML = "";
	}
	
	var DateLoop = new Date(DateValue);
	var varCal = "<table id='tbl1' border='0' cellspacing='0' cellpadding='0' style='position:absolute; left: " + varLeft + "px; TOP: " + varTop + "px;'>"

	varCal += "<tr><td>";

	varCal += "<table border='0' cellspacing='0' cellpadding='0'>";
	varCal += "<tr><td width='" + varInputBox.offsetWidth + "'>&nbsp;</td><td align='left'><img src='" + pic_preload.src + "' width='42' height='20'></td></tr>";
	varCal += "</table>";	
	
	varCal += "<table border='0' cellspacing='1' cellpadding='3' class='calendar'>";
	varCal += "<tr><td onMouseDown=PrevMonth() class='navigator'>&nbsp;&lt;&nbsp;</td>";
	varCal += "<td colspan='5' align='center' class='calheader'>" + varTodaysMonth  +"</td>";
	varCal += "<td onMouseDown=NextMonth() class='navigator'>&nbsp;&gt;&nbsp;</td></tr>";
	
	varCal += "<tr><td class='day_names' align='center'>Su</td><td class='day_names' align='center'>Mo</td><td class='day_names' align='center'>Tu</td><td class='day_names' align='center'>W</td><td class='day_names' align='center'>Th</td><td class='day_names' align='center'>Fr</td><td class='day_names' align='center'>Sa</td></tr>";
	
	for ( var r = 1; r <= 6; r++ ) {
		varCal += "<tr>";		
		for ( var c = 1; c <= 7; c++ ) {
			varCal += "<td align='right' onMouseDown=ShowDate('";
			
			  var month1 = DateLoop.getMonth()+1;
			  var year1 = DateLoop.getYear();
			  var day1 = DateLoop.getDate();
			  if(day1<10) day1 = "0" + day1
			  if(month1<10) month1= "0" + month1 
			  if(year1<1000) year1+=1900				 
			  date_temp = month1 + "/" + day1 + "/" + year1;
			  
			  varCurrentMonth = arrayMonth[DateLoop.getMonth()+1] + " " + DateLoop.getYear();
			
			varCal += date_temp;
			
			if(varTodaysMonth != varCurrentMonth){			
				varCal += "') class='not_this_month'>";
			}else{
				if(date_now == date_temp){
					varCal += "') class='this_day'>";
				}else{			
					varCal += "') class='this_month'>";
				}			
			}
			
			varCal += DateLoop.getDate() + "</td>";
			varDays = DateLoop.getTime() + DaySeconds;
			DateLoop.setTime(varDays);		
		}
		varCal += "</tr>";
	}
	varCal += "</table>";
	
	varCal += "</td></tr></table>";
	
	if(document.getElementById){
		document.getElementById("calendar").innerHTML = varCal;
	}else{
		document.all("calendar").innerHTML = varCal;
	}
}

function ShowDate(DateValue)
{
	varInputBox.value = DateValue;
	if(requirement == 'required' || date_field == 'start'){
		checker(varInputBox);
	}
	document.form1.description_aca_form.focus();
	hide_calendar();
}

function hide_calendar()
{
	if(document.getElementById){
		document.getElementById("calendar").innerHTML = "";
	}else{
		document.all("calendar").innerHTML = "";
	}
	
	date_field = '';
}
