
var OneDay = 86400000
var OneMonth = (OneDay * 30)
var OneYear = (OneMonth * 12)
var CurrentDate = new Date()
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" 
varActiveTBox = ""
varTop = "100"
varLeft = "100"

function DatePicker(TheDate,e,top,left)
{
calendar.style.display = ""
varActiveTBox = e
varTop = getObjectPosition(e.name).y + 20
varLeft = getObjectPosition(e.name).x
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)
varCurrentMonth = varMonth[MnthDate.getMonth()+1] + " " + MnthDate.getYear()
CurrentDate = TheDate
ShowCalendar(RefDate);
}

function Prev()
{
var pDate = new Date(CurrentDate);
varpDays = pDate.getTime() - OneMonth;
pDate.setTime(varpDays);
DatePicker(pDate,varActiveTBox,varTop,varLeft);
}

function Next()
{
var nDate = new Date(CurrentDate);
varnDays = nDate.getTime() + OneMonth;
nDate.setTime(varnDays);
DatePicker(nDate,varActiveTBox,varTop,varLeft);
}

function PrevYear()
{
var pDate = new Date(CurrentDate);
varpDays = pDate.getTime() - OneYear;
pDate.setTime(varpDays);
DatePicker(pDate,varActiveTBox,varTop,varLeft);
}
function Close()
{
	calendar.innerHTML = ""
}
function NextYear()
{
var nDate = new Date(CurrentDate);
varnDays = nDate.getTime() + OneYear;
nDate.setTime(varnDays);
DatePicker(nDate,varActiveTBox,varTop,varLeft);
}
function ShowCalendar(theDate){
calendar.innerHTML = "";
var DateLoop = new Date(theDate);
//// style='left: " + varLeft + "px; TOP: " + varTop + "px'
var varCal ="<table border='0' cellspacing='2' cellpadding='1' class='calendar' style='left: " + varLeft + "px; TOP: " + varTop + "px'>";
varCal += "<TR><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><td width='15%' align='right'><span title='Close' onClick=Close() class='clicker'>X</span></td></tr>";
varCal += "<tr><td width='15%'><span  title='Previous Year' onClick=PrevYear() class='clicker'><</span><span  title='Previous Month' onClick=Prev() class='clicker'><</span></td>";
varCal += "<td colspan='5' align='center' class='calheader'>" + varCurrentMonth  +"</td>";
varCal += "<td width='15%' align='right'><span title='Next Month' onClick=Next() class='clicker'>></span><span title='Next Year' onClick=NextYear() class='clicker'>></span></td></TR>";

varCal += "<tr><td class='weekday'>S</td><td class='weekday'>M</td><td class='weekday'>T</td><td class='weekday'>W</td><td class='weekday'>T</td><td class='weekday'>F</td><td class='weekday'>S</td></tr>";


for ( var r = 1; r <= 6; r++ ) {
	varCal += "<tr>"
	
for ( var c = 1; c <= 7; c++ ) {
	varCal += "<td align='right' onClick=ShowDate('"
	varCal +=    DateLoop.getDate() + "/" + (DateLoop.getMonth()+1) + "/" + DateLoop.getYear() 
	varCal += "') class='calday'>" + DateLoop.getDate() + "</td>";
	varDays = DateLoop.getTime() + OneDay;
	DateLoop.setTime(varDays);
	
}
varCal += "</tr>"
}
varCal += "</table>"
calendar.innerHTML = varCal
}

function ShowDate(theDate)
{
calendar.innerHTML = ""
varActiveTBox.value = theDate
}



// Returns an object having .x and .y properties which are the coordinates of the named object, relative to the page.
function getObjectPosition(objName) {
	var useWindow=false;
	var coordinates=new Object();
	var x=0,y=0;

	// Logic to find position
if (document.getElementById && document.all) {
x=AnchorPosition_getPageOffsetLeft(document.all[objName]);
y=AnchorPosition_getPageOffsetTop(document.all[objName]);
}
else if (document.getElementById) {
var o=document.getElementById(objName);
alert(o);
x=o.offsetLeft; y=o.offsetTop;
}
else if (document.all) {
x=AnchorPosition_getPageOffsetLeft(document.all[objName]);
y=AnchorPosition_getPageOffsetTop(document.all[objName]);
}
else {
		coordinates.x=0; coordinates.y=0; return coordinates;
}
	coordinates.x=x;
	coordinates.y=y;
	return coordinates;
}

// Functions for IE to get position of an object
function AnchorPosition_getPageOffsetLeft (el) {
	var ol=el.offsetLeft;
	while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }
	return ol;
}
function AnchorPosition_getWindowOffsetLeft (el) {
	return AnchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft;
}	
function AnchorPosition_getPageOffsetTop (el) {
	var ot=el.offsetTop;
	while((el=el.offsetParent) != null) { ot += el.offsetTop; }
	return ot;
}
function AnchorPosition_getWindowOffsetTop (el) {
	return AnchorPosition_getPageOffsetTop(el)-document.body.scrollTop;
}

function showMultiColBox(dispName, layerName, winName, strURL) {
	var oLayer = document.all(layerName);
	
	adjustLayerPosition(dispName, layerName);
	
	if (oLayer.style.display == "none") {
		oLayer.style.display = "block";
		if (oLayer.style.display == "block")
			winName.location.href = strURL;
	}
	else if (oLayer.style.display == "block") {
		hideMultiColBox(layerName);
	}
}

function hideMultiColBox(layerName) {
	var oLayer = document.all(layerName);
	oLayer.style.display = "none";
}

function adjustLayerPosition(dispName, layerName) {
	var oDispText = document.all(dispName);
	var oLayer = document.all(layerName);
	
	if (parseInt(oLayer.style.width) > (document.body.offsetWidth - getObjectPosition(dispName).x)) {
		oLayer.style.left = getObjectPosition(dispName).x + 18 - parseInt(oLayer.style.width) + parseInt(oDispText.style.width);
	}	 
	else {
		oLayer.style.left = "";
	}

	if (oLayer.style.height) {
		if (parseInt(oLayer.style.height) > (document.body.offsetHeight - getObjectPosition(dispName).y)) {
			oLayer.style.top = getObjectPosition(dispName).y - 3 - parseInt(oLayer.style.height);
		}
		else {
			oLayer.style.top = "";
		}
	}	
}


