	var MonthName=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
	var MonthNameLong=new Array("January","February","March","April","May","June","July","August","September","October","November","Dececember");
	var DayName=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
	var ePassed;
	var origPassed;
	var calWin;
	function jsShowYears(dPassed)
	{
		var sCode="";
		var i;
		var dVal;
		var cY=dPassed.getFullYear();
		sCode+="<table cellpadding=0 cellspacing=0><tr><td><img src=\"" + imgPath + "s.gif\" width=\"1\" height=\"1\"></td><td><img src=\"" + imgPath + "s.gif\" width=\"36\" height=\"1\"></td></tr>";
		for(i=cY-10;i<cY+20;i++)
		{
			dVal=new Date(dPassed).setYear(i).valueOf();
			if(i==cY)
				sCode+="<tr bgcolor=\"#000099\"><td></td><td onclick=\"window.opener.jsDayOtherPick(" + dVal + ")\" class=\"calText\" style=\"cursor:hand;background-color:#000099;color:#ffffff;\">" + i + "</td></tr>"; 
			else if(i==cY-1)
				sCode+="<tr><td></td><td onclick=\"window.opener.jsDayOtherPick(" + dVal + ")\" id=\"scrollYear\" style=\"cursor:hand;\" class=\"calText\">" + i + "</td></tr>"; 
			else
				sCode+="<tr><td></td><td onclick=\"window.opener.jsDayOtherPick(" + dVal + ")\" style=\"cursor:hand;\" class=\"calText\">" + i + "</td></tr>"; 
		}
		calWin.divYears.innerHTML=sCode;
		calWin.scrollYear.scrollIntoView(true);
		calWin.divYears.style.visibility="visible";
	}
	function jsHideYears()
	{
		calWin.divYears.style.visibility="hidden";
	}
	function FillDate(dPassed)
	{
		var dNow=new Date();
		var dFirstDayOfMonth=new Date(dPassed.getFullYear(),dPassed.getMonth(),1)
		var dTmp=new Date(dPassed);
		var dS;var dE;
		var m=dPassed.getMonth();
		var lMonth=new Date(dFirstDayOfMonth)
		lMonth.setMonth(dFirstDayOfMonth.getMonth()-1);
		var nMonth=new Date(dFirstDayOfMonth)
		nMonth.setMonth(dFirstDayOfMonth.getMonth()+1);
		var lYear=new Date(dFirstDayOfMonth)
		lYear.setFullYear(dFirstDayOfMonth.getFullYear()-1);
		var nYear=new Date(dFirstDayOfMonth)
		nYear.setFullYear(dFirstDayOfMonth.getFullYear()+1);
		var lngCounter=0;
		var lngDay=0;
		var rowcount=0;
		var i;
		var sCode;
		var NowInDisplay;
		var SelectedInDisplay;
		sCode="<table cellpadding=0 cellspacing=0>";
		//sCode+="<tr bgColor=\"#cecece\"><td colspan=\"6\" class=\"calText\" style=\"text-align:left;font-size:10pt;\">Select Date</td><td style=\"text-align:center\"><a href=\"javascript:window.opener.CloseDatePicker()\"><img src=\"" + imgPath + "icon_cross.gif\" border=\"0\"></a></td></tr>";
		sCode+="<tr><td colspan=\"7\"><img src=\"" + imgPath + "s.gif\" width=\"1\" height=\"10\"></td></tr>";
		sCode+="<tr><td class=\"ButtonDateGo\" onclick=\"window.opener.jsDayOtherPick(" + lMonth.valueOf() + ")\"><img src=\"" + imgPath + "left_button.gif\"></td><td colspan=\"1\" class=\"calText\" style=\"text-align:center;vertical-align:top;\">" + MonthName[dPassed.getMonth()] + "</td><td class=\"ButtonDateGo\" onclick=\"window.opener.jsDayOtherPick(" + nMonth.valueOf() + ")\"><img src=\"" + imgPath + "right_button.gif\"></td>";
		sCode+="<td colspan=2></td></td><td colspan=\"1\" class=\"calText\" style=\"text-align:center;vertical-align:top;\">" + yyyy(dPassed) + "</td><td class=\"ButtonDateGo\" onclick=\"window.opener.jsShowYears(new Date(" + dPassed.valueOf() + "))\"><img src=\"" + imgPath + "down_button.gif\"></td></tr>";
		dTmp=DayAdd(dFirstDayOfMonth,-1);
		dE=new Date(dTmp);
		dTmp=DayAdd(dTmp,-dTmp.getDay());
		dS=new Date(dTmp);
		for(i=0;i<7;i++)
			sCode+="<td class=\"DayName\">" + DayName[i] + "</td>";
		sCode+="</tr>";
		sCode+="<tr><td colspan=\"7\" style=\"background-color:#000000\"><img src=\"" + imgPath + "s.gif\" width=\"203\" height=\"1\"></tr>";
		lngDay=dS.getDate();
		i=dS.valueOf();
		while(lngDay<=dE.getDate())
		{
			lngCounter++;
			if((lngCounter-1) % 7==0) sCode+="<tr>";
			sCode+="<td class=\"DayOther\" onclick=\"window.opener.jsDayOtherPick(" + i + ")\">" + lngDay + "</td>";
			if(lngCounter % 7==0) {sCode+="</tr>";rowcount++}
			i+=86400000;
			lngDay++;
		}
		dS=new Date(dFirstDayOfMonth);
		dE=new Date(dS);
		dE.setMonth(dS.getMonth()+1);
		dE=DayAdd(dE,-1);
		lngDay=dS.getDate();
		i=dS.valueOf();
		
		if(dS.getMonth()==dNow.getMonth()&&dS.getFullYear()==dNow.getFullYear()) NowInDisplay=dNow.getDate(); else NowInDisplay=0;
		if(dS.getMonth()==origPassed.getMonth()&&dS.getFullYear()==origPassed.getFullYear()) SelectedInDisplay=origPassed.getDate(); else SelectedInDisplay=0;
		while(lngDay<=dE.getDate())
		{
			lngCounter++;
			if((lngCounter-1) % 7==0) sCode+="<tr>";
			if(lngDay==NowInDisplay)
				sCode+="<td class=\"DayToday\" style=\"BACKGROUND-IMAGE:url(" + imgPath + "date_today.gif);background-repeat:no-repeat;\" onclick=\"window.opener.jsDayPick(" + i + ")\">" + lngDay + "</td>";
			else if(lngDay==SelectedInDisplay)
				sCode+="<td class=\"DayToday\" style=\"BACKGROUND-IMAGE:url(" + imgPath + "date_selected.gif);background-repeat:no-repeat;\" onclick=\"window.opener.jsDayPick(" + i + ")\">" + lngDay + "</td>";
			else
				sCode+="<td class=\"Day\" onclick=\"window.opener.jsDayPick(" + i + ")\">" + lngDay + "</td>";
			if(lngCounter % 7==0) {sCode+="</tr>";rowcount++}
			i+=86400000;
			lngDay++;
		}
		dS=DayAdd(dE,1);
		lngDay=dS.getDate();
		i=dS.valueOf();
		while(lngCounter % 7!=0||rowcount<6)
		{
			lngCounter++;
			sCode+="<td class=\"DayOther\" onclick=\"window.opener.jsDayOtherPick(" + i + ")\">" + lngDay + "</td>";
			if(lngCounter % 7==0) {sCode+="</tr>";rowcount++}
			i+=86400000;
			lngDay++;
		}
		sCode+="</tr><tr><td style=\"cursor:hand;\" onclick=\"window.opener.jsDayPick(" + dNow.valueOf() + ")\"><img src=\"" + imgPath + "date_today.gif\"></td><td class=\"calText\" colspan=\"6\">Today " + ddd_ddmmmyyyy(dNow) + "</td></tr></table>";
		calWin.divCalendar.innerHTML=sCode;
	}
	
	function DayAdd(d,n)
	{
		var d=new Date(d)
		d.setDate(d.getDate()+n)
		return d;
	}
	function jsDayOtherPick(d)
	{
		jsHideYears();
		var dt=new Date(d);
		FillDate(dt);
	}
	function ddmmmyyyy(d)
	{
		return dd(d) + "/" + mmm(d) + "/" + yyyy(d);
	}
	function ddd_ddmmmyyyy(d)
	{
		return ddd(d) + " " + dd(d) + "/" + mmm(d) + "/" + yyyy(d);
	}
	function ddd(d)
	{return DayName[d.getDay()]}
	function mmm(d)
	{return MonthName[d.getMonth()];}
	function yyyy(d)
	{if(d.getYear()<100) return "19" + d.getYear(); else return d.getYear();}
	function dd(d)
	{if(d.getDate()<10) return "0" + d.getDate(); else return d.getDate();}
	function sRootHTTP()
	{
		var i;
		var x;
		var uSrc=location.href.substring(0,location.href.lastIndexOf(".asp")+1);
		uSrc=uSrc.substring(0,uSrc.lastIndexOf("/")+1);
		var pd=pageDepth.split("/").length;
		for(i=0;i<pd;i++)
		{
			x=uSrc.lastIndexOf("/");
			uSrc=uSrc.substring(0,x);
		}
		return uSrc + "/";
	}
	function jsBuildDateMM(sDDMMYYYY)
	{
		var a=sDDMMYYYY.split("/");
		var d=new Date(a[2],a[1]-1,a[0]);
		return d;
	}
	function jsBuildDateMMM(sDDMMMYYYY)
	{
		var a=sDDMMMYYYY.split("/");
		var i;
		var m=0;
		for(i=0;i<MonthName.length;i++)
		{
			if(MonthName[i].toLowerCase()==a[1].toLowerCase())
			{
				m=i;
				break;
			}
		}
		var d=new Date(a[2],m,a[0]);
		return d;
	}
	
	function jsBuildDateMMMHHNNap(sDDMMMYYYYHHNNap)
	{
		var a1=sDDMMMYYYYHHNNap.split(" ");
		var a2=a1[0].split("/");
		var i;
		var m=0;
		for(i=0;i<MonthName.length;i++)
		{
			if(MonthName[i].toLowerCase()==a2[1].toLowerCase())
			{
				m=i;
				break;
			}
		}
		var a3=a1[1].split(":")
		if(a1[2].toLowerCase()=="am") 
		{
			if(a3[0]==12)	a3[0]="0";
		}
		else
		{
			if(a3[0]!=12)	a3[0]=new Number(a3[0]) +12;
		}
		var d=new Date(a2[2],m,a2[0],a3[0],a3[1]);
		return d;
	}
	
	function ShowDatePicker(d,e)
	{
		if(arguments.length<2)
		{
			ePassed=d;
			d=jsBuildDateMMM(d.value);
		}
		else
			ePassed=e;
		calWin=window.open("","calWin","height=200,width=205");
		calWin.focus();
		calWin.document.body.innerHTML="";
		calWin.document.write("<html><head><title>Select Date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</title><link rel=\"STYLESHEET\" type=\"text/css\" href=\"" + sRootHTTP() + "css/date_picker.css\"></head>");
		calWin.document.write("<body leftmargin=\"0\" topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\"><div onmousedown=\"window.opener.jsHideYears()\" id=\"divCalendar\" style=\"background-color:#ffffff;Position:absolute;width:205px;\"></div>");
		calWin.document.write("<div id=\"divYears\" style=\"background-color:#ffffff;visibility:hidden;Position:absolute;BORDER-STYLE: ridge;width:58px;overflow-y:scroll;overflow-x:hidden;height:165px;\"></div>");
		origPassed=new Date(d);
		FillDate(d);
		calWin.divCalendar.style.posTop=0;
		calWin.divCalendar.style.posLeft=0;
		calWin.divYears.style.posTop=25;
		calWin.divYears.style.posLeft=144;
		calWin.divCalendar.style.visibility="visible";
	}
	function jsDayPick(d)
	{
		var dt=new Date(d);
		CloseDatePicker();
		if(ePassed) ePassed.value=ddmmmyyyy(dt);
		try{jsDatePicked(dt,ddmmmyyyy(dt));}catch(e){}
	}

	function CloseDatePicker()
	{
		calWin.window.close();
	}
	
	function CompareDateOrder(sDate1,sDate2)
	{
		return jsBuildDateMMMHHNNap(sDate2).valueOf()-jsBuildDateMMMHHNNap(sDate1).valueOf();
	}
