
//Script by: By Oliver Bryant
//Gotten from: http://calendar.swazz.org

function getObj(objID)
{
    if (document.getElementById) {return document.getElementById(objID);}
    else if (document.all) {return document.all[objID];}
    else if (document.layers) {return document.layers[objID];}
}

function isChild(s,d) {
	while(s) {
		if (s==d) 
			return true;
		s=s.parentNode;
	}
	return false;
}

function Left(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 Top(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function initcal(num)
{
	/*if (num == 1) {//1 = date_of_hire, so it must be very far in the past 
		ccy = 2000;
		sccy = 2000;
		sccm = 0;
		ccm = 0;
	}*/
	//else {
		sccm=now.getMonth();
		sccy=now.getFullYear();
		ccm=now.getMonth();
		ccy=now.getFullYear();	
	//}
	document.write( '<table id="fc'+num+'" style="z-index:50;border-collapse:collapse;background:#FFFFFF;border:1px solid #BCBCBC;display:none;padding:none;margin:7px 2px 10px 2px;" cellpadding=2>');
	document.write( '<tr><td style="cursor:pointer" onclick="csubm('+num+')"><img src="images/arrowleft.gif"></td><td colspan=5 id="mns'+num+'" align="center" style="font:bold 13px Arial"></td><td align="right" style="cursor:pointer" onclick="caddm('+num+')"><img src="images/arrowright.gif"></td></tr>');
	document.write( '<tr><td style="cursor:pointer" onclick="csuby('+num+')"><img src="images/arrowleft.gif"></td><td colspan=5 id="yrs'+num+'" align="center" style="font:bold 13px Arial"></td><td align="right" style="cursor:pointer" onclick="caddy('+num+')"><img src="images/arrowright.gif"></td></tr>');	
	document.write( '<tr style="border-top:1px solid #BCBCBC"><td align=center style="background:#DADADA;font:12px Arial">S</td><td align=center style="background:#DADADA;font:12px Arial">M</td><td align=center style="background:#DADADA;font:12px Arial">T</td><td align=center style="background:#DADADA;font:12px Arial">W</td><td align=center style="background:#DADADA;font:12px Arial">T</td><td align=center style="background:#DADADA;font:12px Arial">F</td><td align=center style="background:#DADADA;font:12px Arial">S</td></tr>');
	for (var kk = 1; kk <= 6; kk++) {
		document.write( '<tr>');
		for (var tt = 1; tt <= 7; tt++) {
			num2 = 7 * (kk - 1) - (-tt);
			document.write( '<td id="v'+num + num2 + '" style="width:18px;height:14px"></td>');
		}
		document.write( '</tr>');
	}
	document.write( '</table>');
	prepcalendar('',ccm,ccy,num);
}

// Calendar script
var now = new Date;
var sccm=now.getMonth();
var sccy=now.getFullYear();
var ccm=now.getMonth();
var ccy=now.getFullYear();
var maxday=now.getDate();
var maxmonth=now.getMonth();
var maxyear=now.getFullYear();
var updobj;

function lcs(ielem, num) {
	updobj=ielem;
	getObj('fc'+num).style.left=Left(ielem);
	getObj('fc'+num).style.top=Top(ielem)+ielem.offsetHeight;
	getObj('fc'+num).style.display='';
	
	// First check date is valid
	curdt=ielem.value;
	curdtarr=curdt.split('/');
	isdt=true;
	for(var k=0;k<curdtarr.length;k++) {
		if (isNaN(curdtarr[k]))
			isdt=false;
	}
	if (isdt&(curdtarr.length==3)) {
		ccm=curdtarr[0]-1;
		ccy=curdtarr[2];
		sccy = ccy;
		sccm = ccm;
		prepcalendar(curdtarr[1],curdtarr[0]-1,curdtarr[2], num); //fix for formatting to be mm/dd/yyyy
	}
	else {
		sccm=now.getMonth();
		sccy=now.getFullYear();
		ccm=now.getMonth();
		ccy=now.getFullYear();	
		prepcalendar('',ccm, ccy, num)
	}

	
}

function evtTgt(e)
{
	var el;
	if(e.target)el=e.target;
	else if(e.srcElement)el=e.srcElement;
	if(el.nodeType==3)el=el.parentNode; // defeat Safari bug
	return el;
}
function EvtObj(e){if(!e)e=window.event;return e;}
function cs_over(e) {
	evtTgt(EvtObj(e)).style.background='#DADADA';
}
function cs_out(e) {
	evtTgt(EvtObj(e)).style.background='#f1f1fa';
}
function cs_click(e) {
	id = evtTgt(EvtObj(e)).parentNode.parentNode.parentNode.id;
	getObj("date"+id).value=calvalarr[evtTgt(EvtObj(e)).id.substring(2,evtTgt(EvtObj(e)).id.length)];
	getObj(id).style.display='none';
	
}

var mn=new Array('JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC');
var mnn=new Array('31','28','31','30','31','30','31','31','30','31','30','31');
var mnl=new Array('31','29','31','30','31','30','31','31','30','31','30','31');
var calvalarr=new Array(42);

function f_cps(obj) {
	obj.style.background='#f1f1fa';
	obj.style.font='10px Arial';
	obj.style.color='#333333';
	obj.style.textAlign='center';
	obj.style.textDecoration='none';
	obj.style.border='1px solid #BCBCBC';
	obj.style.cursor='pointer';
}

function f_cpps(obj) {
	obj.style.background='#f1f1fa';
	obj.style.font='10px Arial';
	obj.style.color='#ABABAB';
	obj.style.textAlign='center';
	obj.style.textDecoration='line-through';
	obj.style.border='1px solid #BCBCBC';
	obj.style.cursor='default';
}

function f_hds(obj) {
	obj.style.background='#f1f1fa';
	obj.style.font='bold 11px Arial';
	obj.style.color='#5E3989';
	obj.style.textAlign='center';
	obj.style.border='1px solid #BCBCBC';
	obj.style.cursor='pointer';
}

// day selected
function prepcalendar(hd,cm,cy,num) {

	if (ccy == maxyear) {
		if (ccm == maxmonth) {
	   	now = new Date();
	   	sd = now.getDate();
		}
		else {
			sd = 42;
		}
	}
	else {
		sd = 42;
	}
	td=new Date();
	td.setDate(1);
	td.setFullYear(cy);
	td.setMonth(cm);
	cd=td.getDay();
	getObj('mns'+num).innerHTML=mn[cm];
	getObj('yrs'+num).innerHTML=cy;
	marr=((cy%4)==0)?mnl:mnn;
	//ccm = sccm;
	//ccy = sccy;
	for(var d=1;d<=42;d++) {
		f_cps(getObj('v'+num+parseInt(d)));
		if ((d >= (cd -(-1))) && (d<=cd-(-marr[cm]))) {
			dip=((d-cd > sd)&&(cm==sccm)&&(cy==sccy));//took out s before ccy/m
			htd=((hd!='')&&(d-cd==hd));
			if (dip)
				f_cpps(getObj('v'+num+parseInt(d)));
			else if (htd)
				f_hds(getObj('v'+num+parseInt(d)));
			else
				f_cps(getObj('v'+num+parseInt(d)));

			getObj('v'+num+parseInt(d)).onmouseover=(dip)?null:cs_over;
			getObj('v'+num+parseInt(d)).onmouseout=(dip)?null:cs_out;
			getObj('v'+num+parseInt(d)).onclick=(dip)?null:cs_click;
			
			getObj('v'+num+parseInt(d)).innerHTML=d-cd;	
			calvalarr[d]=''+(cm-(-1))+'/'+(d-cd)+'/'+cy;
		}
		else {
			getObj('v'+num+d).innerHTML='&nbsp;';
			getObj('v'+num+parseInt(d)).onmouseover=null;
			getObj('v'+num+parseInt(d)).onmouseout=null;
			getObj('v'+num+parseInt(d)).style.cursor='default';
			}
	}
}

function caddm(num) {
	marr=((ccy%4)==0)?mnl:mnn;
	if (ccy >= maxyear) {
		if (ccm >= maxmonth) {
			ccm = maxmonth;
			sccm = maxmonth;
			ccy = maxyear;
			sccy = maxyear;
			prepcalendar('',ccm, ccy, num);
			return;
		}
	}
	ccm+=1;
	sccm++;
	if (ccm>=12) {
		sccm=0;
		ccm=0;
		ccy++;
		sccy++;
	}
	cdayf();
	prepcalendar('',ccm,ccy,num);
}

function caddy(num) {
	if (ccm > maxmonth) {
		if (ccy+1 == maxyear) {
			ccm = maxmonth;
			sccm = maxmonth;
			ccy = maxyear;
			sccy = maxyear;
			prepcalendar('',ccm, ccy, num);
			return;
		}
	}
	if (ccy == maxyear) {
		return;
	}
	sccy++;
	ccy++;

	prepcalendar('',ccm,ccy,num);
}

function csubm(num) {
	marr=((ccy%4)==0)?mnl:mnn;
	ccm-=1;
	sccm--;
	if (ccm<0) {
		sccm=11;
		ccm=11;
		ccy--;
		sccy--;
	}
	cdayf();
	prepcalendar('',ccm,ccy,num);
}

function csuby(num) {
	sccy--;
	ccy--;
	prepcalendar('',ccm,ccy,num);
}
function cdayf() {
if ((ccy>sccy)|((ccy==sccy)&&(ccm>=sccm)))
	return;
else {
	ccy=sccy;
	ccm=sccm;
	cfd=scfd;
	}
}