function InterpretDate(DateField){
	DatePartArray = DateField.value.split("/")
	MonthDateCheck = ((DatePartArray[0]>0 && DatePartArray[0]<13) && (DatePartArray[1]>0 && DatePartArray[1]<31))?true:false;
	NewYear = (DatePartArray[2]<30)?eval("20" + DatePartArray[2]):(DatePartArray[2]>=30 && DatePartArray[2]<100)?eval("19" + DatePartArray[2]):(DatePartArray[2]>999)?DatePartArray[2]:new Date().getFullYear();
	DateField.value = (MonthDateCheck)?DatePartArray[0] + "/" + DatePartArray[1] + "/" + NewYear:DateField.value;
}

function WriteCalendar(cButton,FormName,FieldName,INYear,INMonth,INDate){
	CalButtonTop = 0
	i=cButton
	while (i!=null) {
	 	CalButtonTop += i.offsetTop
		i = i.offsetParent
	}

	i=cButton
	CalButtonLeft = 0
	while (i!=null) {
	 	CalButtonLeft += i.offsetLeft
		i = i.offsetParent
	}
	
	var CalendarStyle = document.getElementById("calendar").style;
	CalendarStyle.left = CalButtonLeft - 139;
	CalendarStyle.top = CalButtonTop + cButton.offsetHeight + 5;

	var TodaysDate = new Date();
	var TargetDate = (INYear)? new Date(INYear,INMonth,INDate) : new Date(TodaysDate);
	var MonthNames = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	var ThisMonth = TargetDate.getMonth();
	var ThisYear = TargetDate.getFullYear();
	var NextMonth = (ThisMonth<11)? ThisMonth+1 : 0;
	var PreviousMonth = (ThisMonth>0)? ThisMonth-1 : 11;
	var NextYear = (ThisMonth<11)? ThisYear : ThisYear+1;
	var PreviousYear = (ThisMonth>0)? ThisYear : ThisYear-1;
	var FirstDateNextMonth = new Date(NextYear,NextMonth,1);
	var LastDateThisMonth = new Date(FirstDateNextMonth-1);
	var NumberOfDaysThisMonth = LastDateThisMonth.getDate();
	var FirstDateThisMonth = new Date(ThisYear,ThisMonth,1);
	var FirstDatesDay = FirstDateThisMonth.getDay();
	var cellPos = 0;
	
	var HTMLOut = new String;
	HTMLOut = "<table border=\"1\" bgcolor=\"white\" cellspacing=\"0\" cellpadding=\"2\" style=\"border-color:navy;border-width:1px;border-style:solid;\">";
	HTMLOut += "<tr>";
	HTMLOut += "<td align=\"center\" vAlign=\"middle\">";
	HTMLOut += "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" bgcolor=\"white\">";
	HTMLOut += "<tr>";
	HTMLOut += "<td align=\"center\" width=\"21\"><a href=\"Javascript: WriteCalendar(document." + cButton.name + ",document." + FormName.name + ",document." + FormName.name + "." + FieldName.name + "," + PreviousYear + "," + PreviousMonth + ",1);\" onMouseOver=\"window.status='" + MonthNames[PreviousMonth] + " " + PreviousYear + "'; return true;\" onMouseOut=\"window.status=''; return true;\" class=\"Navigation\">&laquo;</a></td>";
	HTMLOut += "<td colspan=\"5\" align=\"center\" class=\"MonthHeader\">" + MonthNames[ThisMonth] + " " + ThisYear + "</td>";
	HTMLOut += "<td align=\"center\" width=\"21\"><a href=\"Javascript: WriteCalendar(document." + cButton.name + ",document." + FormName.name + ",document." + FormName.name + "." + FieldName.name + "," + NextYear + "," + NextMonth + ",1);\" onMouseOver=\"window.status='" + MonthNames[NextMonth] + " " + NextYear + "'; return true;\" onMouseOut=\"window.status=''; return true;\" class=\"Navigation\">&raquo;</a></td>";
	HTMLOut += "</tr>";
	HTMLOut += "<tr height=\"15\">";
	HTMLOut += "<td width=\"21\" align=\"center\" vAlign=\"top\" class=\"DaysOfWeek\">Sun</td>";
	HTMLOut += "<td width=\"21\" align=\"center\" vAlign=\"top\" class=\"DaysOfWeek\">Mon</td>";
	HTMLOut += "<td width=\"21\" align=\"center\" vAlign=\"top\" class=\"DaysOfWeek\">Tue</td>";
	HTMLOut += "<td width=\"21\" align=\"center\" vAlign=\"top\" class=\"DaysOfWeek\">Wed</td>";
	HTMLOut += "<td width=\"21\" align=\"center\" vAlign=\"top\" class=\"DaysOfWeek\">Thu</td>";
	HTMLOut += "<td width=\"21\" align=\"center\" vAlign=\"top\" class=\"DaysOfWeek\">Fri</td>";
	HTMLOut += "<td width=\"21\" align=\"center\" vAlign=\"top\" class=\"DaysOfWeek\">Sat</td>";
	HTMLOut += "</tr>";

	for(i = eval(-FirstDatesDay + 1);i<NumberOfDaysThisMonth+1;i++){
		if(cellPos==0){
			HTMLOut += "<tr height=\"15\">";}
		if(i<1){
			HTMLOut += "<td></td>";}
		else{
			if(i==TodaysDate.getDate() && (INMonth==TodaysDate.getMonth() || INMonth==null) && (INYear==TodaysDate.getFullYear() || INYear==null)){
				HTMLOut += "<td align=\"center\" bgcolor=\"navy\"><a href=\"Javascript: document." + FormName.name + "." + FieldName.name + ".value='" + eval(ThisMonth+1) + "/" + i + "/" + ThisYear + "';dHideCalendar(document." + FormName.name + "." + FieldName.name + ");\" onMouseOver=\"window.status='" + MonthNames[ThisMonth] + " " + i + ", " + ThisYear + "'; return true;\" onMouseOut=\"window.status=''; return true;\" class=\"Today\">" + i + "</a></td>";}
			else{
				if(cellPos==0 || cellPos==6){
				    HTMLOut += "<td align=\"center\" bgcolor=\"#f0f0f0\"><a href=\"Javascript: document." + FormName.name + "." + FieldName.name + ".value='" + eval(ThisMonth+1) + "/" + i + "/" + ThisYear + "';dHideCalendar(document." + FormName.name + "." + FieldName.name + ");\" onMouseOver=\"window.status='" + MonthNames[ThisMonth] + " " + i + ", " + ThisYear + "'; return true;\" onMouseOut=\"window.status=''; return true;\" class=\"WeekDays\">" + i + "</a></td>";}
				else{
					HTMLOut += "<td align=\"center\"><a href=\"Javascript: document." + FormName.name + "." + FieldName.name + ".value='" + eval(ThisMonth+1) + "/" + i + "/" + ThisYear + "';dHideCalendar(document." + FormName.name + "." + FieldName.name + ");\" onMouseOver=\"window.status='" + MonthNames[ThisMonth] + " " + i + ", " + ThisYear + "'; return true;\" onMouseOut=\"window.status=''; return true;\" class=\"WeekDays\">" + i + "</a></td>";}
			}
		}
		if(cellPos==6){
			HTMLOut += "</tr>";
			cellPos=0;}
		else{
			cellPos++;}
	}
	HTMLOut += "<tr height=\"15\">";
	HTMLOut += "<td colspan=\"7\" align=\"center\"><a href=\"Javascript: HideCalendar();\" onMouseOver=\"window.status='Close calendar'; return true;\" onMouseOut=\"window.status=''; return true;\" class=\"WeekDays\">Close</a></td>";
	HTMLOut += "</tr>";
	HTMLOut += "</table>";
	HTMLOut += "</td>";
	HTMLOut += "</tr>";
	HTMLOut += "</table>";
	
	document.getElementById("calendar").innerHTML = HTMLOut;
	CalendarStyle.visibility = "visible";

}

function HideCalendar(){
	document.getElementById("calendar").style.visibility = "hidden";
}

function dHideCalendar(FieldName){
	FieldName.focus();
	document.getElementById("calendar").style.visibility = "hidden";
}
