/////////////////////////////////////
//Please change max and min values are per your requirements
//if any of value is 0 means no restrictions in year range
var mMaxYear = 2050
var mMinYear = 1800 //1753 - is sqlserver limitaion year

////////////////////////////////////
	var bMaxReached = false
	var bMinReached = false
	var	fixedX = -1			// x position (-1 if to appear below control)
	var	fixedY = -1			// y position (-1 if to appear below control)
	var startAt = 1			// 0 - sunday ; 1 - monday
	var showWeekNumber = 0	// 0 - don't show; 1 - show
	var showToday = 1		// 0 - don't show; 1 - show
	var imgDir = "Images/"			// directory for images ... e.g. var imgDir="/img/"

	var gotoString = "Go To Current Month"
	var todayString = "Today is"
	var weekString = "Wk"
	var scrollLeftMessage = "Click to scroll to previous month. Hold mouse button to scroll automatically."
	var scrollRightMessage = "Click to scroll to next month. Hold mouse button to scroll automatically."
	var selectMonthMessage = "Click to select a month."
	var selectYearMessage = "Click to select a year."
	var selectDateMessage = "Select [date] as date." // do not replace [date], it will be replaced by date.

	var	crossobj, crossMonthObj, crossYearObj, monthSelected, yearSelected, dateSelected, omonthSelected, oyearSelected, odateSelected, monthConstructed, yearConstructed, intervalID1, intervalID2, timeoutID1, timeoutID2, ctlToPlaceValue, ctlNow, dateFormat, nStartingYear

	var	bPageLoaded=false
	var	ie=document.all
	var	dom=document.getElementById

	var	ns4=document.layers
	var	today =	new	Date()
	var	dateNow	 = today.getDate()
	var	monthNow = today.getMonth()
	var	yearNow	 = today.getYear()
	var	imgsrc = new Array("drop1.gif","drop2.gif","left1.gif","left2.gif","right1.gif","right2.gif")
	var	img	= new Array()

	var bShow = false;

	/* hides <select> and <applet> objects (for IE only) */
	function hideElement( elmID, overDiv )
	{
		if( ie )
		{
			for( i = 0; i < document.all.tags( elmID ).length; i++ )
			{
				obj = document.all.tags( elmID )[i];
				if( !obj || !obj.offsetParent )
				{
					continue;
				}

				// Find the element's offsetTop and offsetLeft relative to the BODY tag.
				objLeft   = obj.offsetLeft;
				objTop    = obj.offsetTop;
				objParent = obj.offsetParent;

				//Fix: The calander is shown WRT screen coordinates and not WRT the scroll area in
				//PAI, Pre-admisison Information screens.

				if (document.all)
				{
					if (document.all("divPageScroll"))
					{
							objTop = (objTop - document.all("divPageScroll").scrollTop);
					}
				}

				while(objParent != null && objParent.tagName.toUpperCase() != "BODY" )
				{
					objLeft  += objParent.offsetLeft;
					objTop   += objParent.offsetTop;
					objParent = objParent.offsetParent;
				}

				objHeight = obj.offsetHeight;
				objWidth = obj.offsetWidth;

				if(( overDiv.offsetLeft + overDiv.offsetWidth ) <= objLeft );
				else if(( overDiv.offsetTop + overDiv.offsetHeight ) <= objTop );
				else if( overDiv.offsetTop >= ( objTop + objHeight ));
				else if( overDiv.offsetLeft >= ( objLeft + objWidth ));
				else
				{
					obj.style.visibility = "hidden";
				}
			}
		}
	}

	/*
	* unhides <select> and <applet> objects (for IE only)
	*/
	function showElement( elmID )
	{
		if( ie )
		{
			for( i = 0; i < document.all.tags( elmID ).length; i++ )
			{
				obj = document.all.tags( elmID )[i];

				if( !obj || !obj.offsetParent )
				{
				continue;
				}

				obj.style.visibility = "";
			}
		}
	}

	function HolidayRec (d, m, y, desc)
	{
		this.d = d
		this.m = m
		this.y = y
		this.desc = desc
	}

	var HolidaysCounter = 0
	var Holidays = new Array()

	function addHoliday (d, m, y, desc)
	{
		Holidays[HolidaysCounter++] = new HolidayRec ( d, m, y, desc )
	}

	if (dom)
	{
		for	(i=0;i<imgsrc.length;i++)
		{
			img[i] = new Image
			img[i].src = imgDir + imgsrc[i]
		}
		document.write ("<div onclick='bShow=true' id='calendar'	style='z-index:+999;position:absolute;visibility:hidden;'><table	width="+((showWeekNumber==1)?250:220)+" style='font-family:arial;font-size:11px;border-width:1;border-style:solid;border-color:#a0a0a0;font-family:arial; font-size:11px; color: black;}' bgcolor='#ffffff'><tr bgcolor='#0000aa'><td><table width='"+((showWeekNumber==1)?248:218)+"'><tr><td style='padding:2px;font-family:arial; font-size:11px; color:black;'><font color='#ffffff'><B><span id='caption'></span></B></font></td><td align=right><a id = 'JavascriptCalender' href='javascript:hideCalendar()'><IMG SRC='"+imgDir+"close.gif' WIDTH='15' HEIGHT='13' BORDER='0' ALT='Close the Calendar'></a></td></tr></table></td></tr><tr><td style='padding:5px;color:black; ' bgcolor=#ffffff><span id='content'></span></td></tr>")

		if (showToday==1)
		{
			document.write ("<tr bgcolor=#f0f0f0><td style='padding:5px; font-family:arial; font-size:11px; ' align=center><font color=black> <span id='lblToday'></font></span></td></tr>")
		}

		document.write ("</table></div><div id='selectMonth' style='z-index:+999;position:absolute;visibility:hidden;color:black;'></div><div id='selectYear' style='z-index:+999;position:absolute;visibility:hidden;'></div>");
	}

	var	monthName =	new	Array("January","February","March","April","May","June","July","August","September","October","November","December")
	if (startAt==0)
	{
		dayName = new Array	("Sun","Mon","Tue","Wed","Thu","Fri","Sat")
		TodayName = new Array ("Sunday", "Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")

	}
	else
	{
		dayName = new Array	("Mon","Tue","Wed","Thu","Fri","Sat","Sun")
		TodayName = new Array	("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")

	}
	var	styleAnchor="text-decoration:none;color:black;"
	var	styleLightBorder="border-style:solid;border-width:1px;border-color:#a0a0a0;"

	function swapImage(srcImg, destImg){
		if (ie)	{ document.getElementById(srcImg).setAttribute("src",imgDir + destImg) }
	}

	function init()	{
	if (!ns4)
		{

			if (!ie) { yearNow += 1900	}
			
			crossobj=(dom)?document.getElementById("calendar").style : ie? document.all.calendar : document.calendar
			hideCalendar()

			crossMonthObj=(dom)?document.getElementById("selectMonth").style : ie? document.all.selectMonth	: document.selectMonth

			crossYearObj=(dom)?document.getElementById("selectYear").style : ie? document.all.selectYear : document.selectYear

			monthConstructed=false;
			yearConstructed=false;

			if (showToday==1)
			{
				//document.getElementById("lblToday").innerHTML =	todayString + " <a onmousemove='window.status=\""+gotoString+"\"' onmouseout='window.status=\"\"' title='"+gotoString+"' style='"+styleAnchor+"' href='javascript:monthSelected=monthNow;yearSelected=yearNow;constructCalendar();'>"+dayName[(today.getDay()-startAt==-1)?6:(today.getDay()-startAt)]+", " + dateNow + " " + monthName[monthNow].substring(0,3)	+ "	" +	yearNow	+ "</a>"
				//Changed the today's date fromat from "Today is Monday 5 May, 2003" -- to-- "Today is Monday, May 5, 2003"..As per the issue doc 05052003...HYD1100014
				document.getElementById("lblToday").innerHTML =	todayString + " <a onmousemove='window.status=\""+gotoString+"\"' onmouseout='window.status=\"\"' title='"+gotoString+"' style='"+styleAnchor+"' href='javascript:monthSelected=monthNow;yearSelected=yearNow;constructCalendar();'>"+TodayName[(today.getDay()-startAt==-1)?6:(today.getDay()-startAt)]+", " + " " + monthName[monthNow].substring(0,3)+ " " + dateNow + ", " +	yearNow	+ "</a>"
			}

			sHTML1="<span id='spanLeft'	style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer' onmouseover='swapImage(\"changeLeft\",\"left2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+scrollLeftMessage+"\"' onclick='javascript:decMonth()' onmouseout='clearInterval(intervalID1);swapImage(\"changeLeft\",\"left1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartDecMonth()\",500)'	onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'>&nbsp<IMG id='changeLeft' SRC='"+imgDir+"left1.gif' width=10 height=11 BORDER=0>&nbsp</span>&nbsp;"
			sHTML1+="<span id='spanRight' style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer'	onmouseover='swapImage(\"changeRight\",\"right2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+scrollRightMessage+"\"' onmouseout='clearInterval(intervalID1);swapImage(\"changeRight\",\"right1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"' onclick='incMonth()' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartIncMonth()\",500)'	onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'>&nbsp<IMG id='changeRight' SRC='"+imgDir+"right1.gif'	width=10 height=11 BORDER=0>&nbsp</span>&nbsp"
			sHTML1+="<span id='spanMonth' style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer'	onmouseover='swapImage(\"changeMonth\",\"drop2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+selectMonthMessage+"\"' onmouseout='swapImage(\"changeMonth\",\"drop1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"' onclick='popUpMonth()'></span>&nbsp;"
			sHTML1+="<span id='spanYear' style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer' onmouseover='swapImage(\"changeYear\",\"drop2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+selectYearMessage+"\"'	onmouseout='swapImage(\"changeYear\",\"drop1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"'	onclick='popUpYear()'></span>&nbsp;"

			document.getElementById("caption").innerHTML = sHTML1

			bPageLoaded=true
		}
	}

	function hideCalendar()	{
		if ((crossobj == '[object]') || (crossobj == '[object CSSStyleDeclaration]') )
		{

			crossobj.visibility="hidden"
			if (crossMonthObj != null){crossMonthObj.visibility="hidden"}
			if (crossYearObj !=	null){crossYearObj.visibility="hidden"}

			showElement( 'SELECT' );
			showElement( 'APPLET' );
		}
	}

	function padZero(num) {
		return (num	< 10)? '0' + num : num ;
	}

	function constructDate(d,m,y)
	{
		sTmp = dateFormat
		sTmp = sTmp.replace	("dd","<e>")
		sTmp = sTmp.replace	("d","<d>")
		sTmp = sTmp.replace	("<e>",padZero(d))
		sTmp = sTmp.replace	("<d>",d)
		sTmp = sTmp.replace	("mmm","<o>")
		sTmp = sTmp.replace	("mm","<n>")
		sTmp = sTmp.replace	("m","<m>")
		sTmp = sTmp.replace	("<m>",m+1)
		sTmp = sTmp.replace	("<n>",padZero(m+1))
		sTmp = sTmp.replace	("<o>",monthName[m])
		return sTmp.replace ("yyyy",y)
	}

	function closeCalendar() {
		var	sTmp
		hideCalendar();
		var pTemp = constructDate(dateSelected,monthSelected,yearSelected);
		var pChanged = (mfpConvertToDate(pTemp) - mfpConvertToDate(ctlToPlaceValue.value))
		if (ctlToPlaceValue.readOnly==false) //Added By gopal Not to assign the value if the control is disabled.
		{
			if ((ctlToPlaceValue.id == 'txtAdmissionDate_Tab2') || (ctlToPlaceValue.id == 'txtDOB_Tab2'))
			{
				if (pChanged != 0)
				{
					pPreadmitKeyFieldsChanged =1;
					pCostKeyFieldsChanged =1;
				}
			}
			else if (ctlToPlaceValue.id == 'txtDischDate_Tab5')
			{
				if (pChanged != 0)
					pPreadmitKeyFieldsChanged =1;
			}
			ctlToPlaceValue.value =	constructDate(dateSelected,monthSelected,yearSelected)
			mDataChanged=1;//EMPID:1003049 04/02/2004 to set the show save reminder message flag so, that upon click of cancel button user should get the notification.
			ctlToPlaceValue.focus(); //Added by sekhar to fire th validations on blur event
		}
	}

	/*** Month Pulldown	***/

	function StartDecMonth()
	{
		intervalID1=setInterval("decMonth()",80)
	}

	function StartIncMonth()
	{
		intervalID1=setInterval("incMonth()",80)
	}

	function incMonth () {
		monthSelected++;
		if (monthSelected>11) {
			monthSelected=0;
			yearSelected++;
		}
		if ((yearSelected > mMaxYear) && (mMaxYear > 0))
			yearSelected = mMaxYear;
		constructCalendar();
	}

	function decMonth () {
		monthSelected--;
		if (monthSelected<0) {
			monthSelected=11;
			yearSelected--;
		}
		if ((yearSelected < mMinYear) && (mMinYear > 0))
			yearSelected = mMinYear;
		constructCalendar();
	}

	function constructMonth() {
		popDownYear();
		if (!monthConstructed) {
			sHTML =	""
			for	(i=0; i<12;	i++) {
				sName =	monthName[i];
				if (i==monthSelected){
					sName =	"<B>" +	sName +	"</B>";
				}
				sHTML += "<tr><td style='font-family:arial; font-size:11px; ' id='m" + i + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='monthConstructed=false;monthSelected=" + i + ";constructCalendar();popDownMonth();event.cancelBubble=true'><font color=black >&nbsp;" + sName + "&nbsp;</font></td></tr>"
			}

			document.getElementById("selectMonth").innerHTML = "<table width=70	style='font-family:arial; color:black; font-size:11px; border-width:1; border-style:solid; border-color:#a0a0a0;' bgcolor='#FFFFDD' cellspacing=0 onmouseover='clearTimeout(timeoutID1)'	onmouseout='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"popDownMonth()\",100);event.cancelBubble=true'>" +	sHTML +	"</table>"

			monthConstructed=true;
		}
	}

	function popUpMonth() {
		constructMonth();
		crossMonthObj.visibility = (dom||ie)? "visible"	: "show"
		crossMonthObj.left = parseInt(crossobj.left) + 50
		crossMonthObj.top =	parseInt(crossobj.top) + 26

		hideElement( 'SELECT', document.getElementById("selectMonth") );
		hideElement( 'APPLET', document.getElementById("selectMonth") );
	}

	function popDownMonth()	{
		crossMonthObj.visibility= "hidden";
	}

	/*** Year Pulldown ***/

	function incYear()
	{
		if (bMaxReached == true)
		{
			bShow=true;
			return true;
		}
		bMinReached = false;
		for	(i=0; i<7; i++)
		{
			newYear	= (i+nStartingYear)+1;
			if ((newYear < mMinYear) && (mMinYear > 0))
			{
				txtYear = "&nbsp;"
				document.getElementById("y"+i).innerHTML = txtYear;
			}
			else
			{
				if ((newYear > mMaxYear) && (mMaxYear > 0))
				{
					bMaxReached = true;
					txtYear = "&nbsp;"
					document.getElementById("y"+i).innerHTML = txtYear
				}
				else
				{
					if (newYear==yearSelected)
					{
						txtYear =	"&nbsp;<B>"	+ newYear +	"</B>&nbsp;"
					}
					else
					{
						txtYear =	"&nbsp;" + newYear + "&nbsp;"
					}
					document.getElementById("y"+i).innerHTML = "<font color=black>" + txtYear + "</font>"
				}
			}
		}
		if (!((nStartingYear > mMaxYear) && (mMaxYear > 0)))
		{
			nStartingYear ++;
		}

		bShow=true
	}

	function decYear()
	{

		if (bMinReached == true)
		{
			bShow=true;
			return true;
		}
		bMaxReached = false;
		for	(i=0; i<7; i++)
		{
			newYear	= (i+nStartingYear)-1;
			if ((newYear > mMaxYear) && (mMaxYear > 0))
			{
				txtYear = "&nbsp;"
				document.getElementById("y"+i).innerHTML = txtYear
			}
			else
			{
				if ((newYear < mMinYear) && (mMinYear > 0))
				{
					bMinReached = true;
					txtYear = "&nbsp;"
					document.getElementById("y"+i).innerHTML = txtYear;
				}
				else
				{
					if (newYear==yearSelected)
					{
						txtYear =	"&nbsp;<B>"	+ newYear +	"</B>&nbsp;"
					}
					else
					{
						txtYear =	"&nbsp;" + newYear + "&nbsp;"
					}
					document.getElementById("y"+i).innerHTML = "<font color=black>" + txtYear + "</font>"
				}
			}
		}
		if (!((nStartingYear < mMinYear) && (mMinYear > 0)))
		{
			nStartingYear --;
		}

		bShow=true

	}

	function selectYear(nYear) {
		if (document.getElementById("y"+nYear).innerHTML == '&nbsp;')
			return true;
		yearSelected=parseInt(nYear+nStartingYear);
		yearConstructed=false;
		constructCalendar();
		popDownYear();
	}

	function constructYear() {
		popDownMonth()
		sHTML =	""
		if (!yearConstructed) {

			sHTML =	"<tr><td align='center'	onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"' style='cursor:pointer'	onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decYear()\",30)' onmouseup='clearInterval(intervalID1)'><font color=black >-</font></td></tr>"

			j =	0
			nStartingYear =	yearSelected-3
			for	(i=(yearSelected-3); i<=(yearSelected+3); i++) {
				sName =	i;
				if ( ((i < mMinYear) && (mMinYear > 0)) || ((i > mMaxYear) && (mMaxYear > 0)) )
				{
					sHTML += "<tr><td style = 'font-family:arial; font-size:11px;' id='y" + j + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='selectYear("+j+");event.cancelBubble=true'>&nbsp;</td></tr>"
				}
				else
				{
					if (i==yearSelected)
					{
						sName =	"<B>" +	sName +	"</B>"
					}

					sHTML += "<tr><td style = 'font-family:arial; font-size:11px;' id='y" + j + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='selectYear("+j+");event.cancelBubble=true'>&nbsp;<font color=black >" + sName + "&nbsp;</font></td></tr>"
				}
				j ++;
			}

			sHTML += "<tr><td align='center' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='clearInterval(intervalID2);this.style.backgroundColor=\"\"' style='cursor:pointer' onmousedown='clearInterval(intervalID2);intervalID2=setInterval(\"incYear()\",30)'	onmouseup='clearInterval(intervalID2)'><font color=black >+</font></td></tr>"

			document.getElementById("selectYear").innerHTML	= "<table width=44 style='font-family:arial; font-size:11px; border-width:1; border-style:solid; border-color:#a0a0a0;'	bgcolor='#FFFFDD' onmouseover='clearTimeout(timeoutID2)' onmouseout='clearTimeout(timeoutID2);timeoutID2=setTimeout(\"popDownYear()\",100)' cellspacing=0>"	+ sHTML	+ "</table>"

			yearConstructed	= true
		}
	}

	function popDownYear() {
		clearInterval(intervalID1)
		clearTimeout(timeoutID1)
		clearInterval(intervalID2)
		clearTimeout(timeoutID2)
		crossYearObj.visibility= "hidden"
	}

	function popUpYear() {
		var	leftOffset

		constructYear()
		crossYearObj.visibility	= (dom||ie)? "visible" : "show"
		leftOffset = parseInt(crossobj.left) + document.getElementById("spanYear").offsetLeft
		if (ie)
		{
			leftOffset += 6
		}
		crossYearObj.left =	leftOffset
		crossYearObj.top = parseInt(crossobj.top) +	26
	}

	/*** calendar ***/
	function WeekNbr(n) 
	{
		// Algorithm used:
		// From Klaus Tondering's Calendar document (The Authority/Guru)
		// hhtp://www.tondering.dk/claus/calendar.html
		// a = (14-month) / 12
		// y = year + 4800 - a
		// m = month + 12a - 3
		// J = day + (153m + 2) / 5 + 365y + y / 4 - y / 100 + y / 400 - 32045
		// d4 = (J + 31741 - (J mod 7)) mod 146097 mod 36524 mod 1461
		// L = d4 / 1460
		// d1 = ((d4 - L) mod 365) + L
		// WeekNumber = d1 / 7 + 1

		year = n.getFullYear();
		month = n.getMonth() + 1;
		if (startAt == 0) {
		 day = n.getDate() + 1;
		}
		else {
		 day = n.getDate();
		}

		a = Math.floor((14-month) / 12);
		y = year + 4800 - a;
		m = month + 12 * a - 3;
		b = Math.floor(y/4) - Math.floor(y/100) + Math.floor(y/400);
		J = day + Math.floor((153 * m + 2) / 5) + 365 * y + b - 32045;
		d4 = (((J + 31741 - (J % 7)) % 146097) % 36524) % 1461;
		L = Math.floor(d4 / 1460);
		d1 = ((d4 - L) % 365) + L;
		week = Math.floor(d1/7) + 1;

		return week;
	}

	function constructCalendar () {
		var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31)

		var dateMessage
		var	startDate =	new	Date (yearSelected,monthSelected,1)
		var endDate

		if (monthSelected==1)
		{
			endDate	= new Date (yearSelected,monthSelected+1,1);
			endDate	= new Date (endDate	- (24*60*60*1000));
			numDaysInMonth = endDate.getDate()
		}
		else
		{
			numDaysInMonth = aNumDays[monthSelected];
		}

		datePointer	= 0
		dayPointer = startDate.getDay() - startAt

		if (dayPointer<0)
		{
			dayPointer = 6
		}

		sHTML =	"<table	 border=0 style='font-family:verdana;font-size:10px;'><tr>"

		if (showWeekNumber==1)
		{
			sHTML += "<td width=27><b>" + weekString + "</b></td><td width=1 rowspan=7 bgcolor='#d0d0d0' style='padding:0px'><img src='"+imgDir+"divider.gif' width=1></td>"
		}

		for	(i=0; i<7; i++)	{
			sHTML += "<td width='27' style='color: black; font-family:arial; font-size:11px; ' align='right'><B>"+ dayName[i]+"</B></td>"
		}
		sHTML +="</tr><tr>"

		if (showWeekNumber==1)
		{
			sHTML += "<td align=right>" + WeekNbr(startDate) + "&nbsp;</td>"
		}

		for	( var i=1; i<=dayPointer;i++ )
		{
			sHTML += "<td>&nbsp;</td>"
		}

		for	( datePointer=1; datePointer<=numDaysInMonth; datePointer++ )
		{
			dayPointer++;
			sHTML += "<td align=right style='font-size:1em; color:black;'>"
			sStyle=styleAnchor
			if ((datePointer==odateSelected) &&	(monthSelected==omonthSelected)	&& (yearSelected==oyearSelected))
			{ sStyle+=styleLightBorder }

			sHint = ""
			for (k=0;k<HolidaysCounter;k++)
			{
				if ((parseInt(Holidays[k].d)==datePointer)&&(parseInt(Holidays[k].m)==(monthSelected+1)))
				{
					if ((parseInt(Holidays[k].y)==0)||((parseInt(Holidays[k].y)==yearSelected)&&(parseInt(Holidays[k].y)!=0)))
					{
						sStyle+="background-color:#FFDDDD;"
						sHint+=sHint==""?Holidays[k].desc:"\n"+Holidays[k].desc
					}
				}
			}

			var regexp= /\"/g
			sHint=sHint.replace(regexp,"&quot;")

			dateMessage = "onmousemove='window.status=\""+selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected))+"\"' onmouseout='window.status=\"\"' "

			if ((datePointer==dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNow))
			{ sHTML += "<b><a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer+";closeCalendar();'><font color=#ff0000>&nbsp;" + datePointer + "</font>&nbsp;</a></b>"}
			else if	(dayPointer % 7 == (startAt * -1)+1)
			{ sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'>&nbsp;<font color=#909090>" + datePointer + "</font>&nbsp;</a>" }
			else
			{ sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'>&nbsp;" + datePointer + "&nbsp;</a>" }

			sHTML += ""
			if ((dayPointer+startAt) % 7 == startAt) {
				sHTML += "</tr><tr>"
				if ((showWeekNumber==1)&&(datePointer<numDaysInMonth))
				{
					sHTML += "<td align=right>" + (WeekNbr(new Date(yearSelected,monthSelected,datePointer+1))) + "&nbsp;</td>"
				}
			}
		}

		document.getElementById("content").innerHTML  = sHTML
		document.getElementById("spanMonth").innerHTML = "&nbsp;" +	monthName[monthSelected] + "&nbsp;<IMG id='changeMonth' SRC='"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
		document.getElementById("spanYear").innerHTML =	"&nbsp;" + yearSelected	+ "&nbsp;<IMG id='changeYear' SRC='"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
	}

//ADDED BY HYD1205127 ON 2006/10/17
	function popUpCalendarTracking(ctl,	ctl2, format, aException) 
	{
	    //alert(ctl2);
	    ctl2 = ctl2.replace(ctl2, ctl.id.replace('_but', '_'));
	    //alert(ctl2);
	    //alert(document.getElementById(ctl2).value);
	    popUpCalendar(ctl,	document.getElementById(ctl2), format, aException);
	}
//ENDED BY HYD1205127 ON 2006/10/17

	function popUpCalendar(ctl,	ctl2, format, aException) {
		var	leftpos=0
		var	toppos=0

		if (document.body.style.cursor == "wait") //Do not show calander when the page is being loaded
		{
			return false;
		}
		
		//Fix of issue GMTID = 20050601135335273E
		hideCalendar();
				
		if (bPageLoaded)
		{
		    
			if ( crossobj.visibility ==	"hidden" ) {
				ctlToPlaceValue	= ctl2
				dateFormat=format;

				formatChar = " "
				aFormat	= dateFormat.split(formatChar)
				if (aFormat.length<3)
				{
					formatChar = "/"
					aFormat	= dateFormat.split(formatChar)
					if (aFormat.length<3)
					{
						formatChar = "."
						aFormat	= dateFormat.split(formatChar)
						if (aFormat.length<3)
						{
							formatChar = "-"
							aFormat	= dateFormat.split(formatChar)
							if (aFormat.length<3)
							{
								// invalid date	format
								formatChar=""
							}
						}
					}
				}

				tokensChanged =	0
				if ( formatChar	!= "" )
				{
					// use user's date
					aData =	ctl2.value.split(formatChar)

					for	(i=0;i<3;i++)
					{
						if ((aFormat[i]=="d") || (aFormat[i]=="dd"))
						{
							dateSelected = parseInt(aData[i], 10)
							tokensChanged ++
						}
						else if	((aFormat[i]=="m") || (aFormat[i]=="mm"))
						{
							monthSelected =	parseInt(aData[i], 10) - 1
							tokensChanged ++
						}
						else if	(aFormat[i]=="yyyy")
						{
							yearSelected = parseInt(aData[i], 10)

							tokensChanged ++
						}
						else if	(aFormat[i]=="mmm")
						{
							for	(j=0; j<12;	j++)
							{
								if (aData[i]==monthName[j])
								{
									monthSelected=j
									tokensChanged ++
								}
							}
						}
					}
				}

				if ((tokensChanged!=3)||isNaN(dateSelected)||isNaN(monthSelected)||isNaN(yearSelected))
				{
					dateSelected = dateNow
					monthSelected =	monthNow
					yearSelected = yearNow
				}

				odateSelected=dateSelected
				omonthSelected=monthSelected

				if ((yearSelected < mMinYear) && (mMinYear > 0))
					yearSelected = mMinYear;
				if ((yearSelected > mMaxYear) && (mMaxYear > 0))
					yearSelected = mMaxYear;

				oyearSelected=yearSelected

				aTag = ctl
				
				
				    do {
			            aTag = aTag.offsetParent;
			            if(aTag != null)
			            {
				            leftpos	+= aTag.offsetLeft;
				            toppos += aTag.offsetTop;
				        }
				    } while(aTag != null && aTag.tagName!="BODY");
				


				//Fix: The calander is shown WRT screen coordinates and not WRT the scroll area in
				//PAI, Pre-admisison Information screens.
				if (document.all)
				{
					if ((document.all("divPageScroll")) && (ctlToPlaceValue.name != 'txtIntFollowAssessmentRefDate_Tab7')) //Do not need to integrate scroll and this control in PAI - i/f screen.
					{
							toppos = (toppos - document.all("divPageScroll").scrollTop);
					}
				}

				//here aException == 'MoveLeft'- means we have move calendar towards left
				//here aException == 'MoveTop'- means we have move calendar towards Top
				if (aException == 'MoveLeft')
				{
					fixedX = ctl.offsetLeft	+ leftpos - 220;
					fixedY = ctl.offsetTop + toppos + ctl.offsetHeight +	2 ;
				}
				else if (aException == 'MoveTop')
				{

					fixedX = ctl.offsetLeft	+ leftpos;
					fixedY = (ctl.offsetTop + toppos + ctl.offsetHeight + 2) - 175 ;
				}
				else if (aException == 'MoveRight')
				{

					fixedX = ctl.offsetLeft	+ leftpos - 175;
					fixedY = (ctl.offsetTop + toppos + ctl.offsetHeight + 2);
				}				
				else if (aException == 'MoveTopLeft')
				{

					fixedX = ctl.offsetLeft	+ leftpos - 220;
					fixedY = (ctl.offsetTop + toppos + ctl.offsetHeight + 2) - 175 ;
				}
				else
				{
					fixedX = -1;
					fixedY = -1;
				}


				crossobj.left =	fixedX==-1 ? ctl.offsetLeft	+ leftpos :	fixedX
				crossobj.top = fixedY==-1 ?	ctl.offsetTop +	toppos + ctl.offsetHeight +	2 :	fixedY
				constructCalendar (1, monthSelected, yearSelected);

				crossobj.visibility=(dom||ie)? "visible" : "show"

				hideElement( 'SELECT', document.getElementById("calendar") );
				hideElement( 'APPLET', document.getElementById("calendar") );

				bShow = true;
			}
			else
			{
				hideCalendar()
				if (ctlNow!=ctl) {popUpCalendar(ctl, ctl2, format)}
			}
			ctlNow = ctl
		}
	}
	if(ie)
	{
		document.onkeypress = function hidecal1 () {
			if (event.keyCode==27)
			{
				hideCalendar()
			}
		}
	}
	document.onclick = function hidecal2 () {
		if (!bShow)
		{
			hideCalendar()
		}
		bShow = false
	}

	if(ie)
	{
		init()
	}
	else
	{
		window.onload=init()
	}
	
	
	//window.onload=init
	    

	//Converting string in to Date
	function mfpConvertToDate(str)
	{

		if (mTrim(str)!='')
		{
				var strVal,strDt;
				strVal=new String(str);
				var fI=strVal.indexOf('/');
				var fL=strVal.lastIndexOf('/');
				var yr=strVal.substring(fL+1);
				//Converting into 4 digit year if 2 digits entered.Ramana on 07/10/2001
				if (yr.length==2)
				{
						yr = 20 + yr;
				}
				var mont=strVal.substring(0,strVal.indexOf('/'));
				var dt=strVal.substring(strVal.indexOf('/')+1,strVal.lastIndexOf('/'));
				date=new Date(yr,mont-1,dt);
				return date
		}
	}


	// Function Name	:	mTrim
	// Purpose			:	This function is helpful for trimming the value.
	function mTrim(aStrValue)
	{

		if (!aStrValue) 
			return "";

		// this loop will get rid of leading spaces
		while (aStrValue.substring(0,1) == ' ')
			aStrValue = aStrValue.substring(1, aStrValue.length);
		// this loop will get rid of trailing spaces
		while (aStrValue.substring(aStrValue.length-1,aStrValue.length) == ' ')
			aStrValue = aStrValue.substring(0, aStrValue.length-1);
			return aStrValue;

	}
	// mTrim ends


function ShowCalendar(event, ctl, ctl2, format, aException)
{
    
    if(event.keyCode == 13)
    {
     
        popUpCalendar(ctl,	ctl2, format, aException);
        return false;;
        
    }

}

function CheckDate(theField,MsgFlag)
{
	/*Emp ID: HYD1003049 on 03/18/2004 as per new enhancements of UDSPRO for Adding Audit Level
	We have to change the format of date when valid date is entered without slashs(/)*/
if(theField.value == undefined) return;
	mFormatDate(theField);
	//*****************//
	if (theField.value!='')
	{	var strVal,strDt;
		strVal=theField.value;
		if (CheckDate.arguments.length == 1)
			MsgFlag = true;
		strDt=new Date();
			var fI=strVal.indexOf('/');
			var fL=strVal.lastIndexOf('/');
			var yr=(strVal.substring(fL+1));
			var mont=(strVal.substring(0,strVal.indexOf('/')));
			var dt=(strVal.substring(strVal.indexOf('/')+1,strVal.lastIndexOf('/')));

		if(isNaN(dt)||isNaN(mont)||isNaN(yr))
		{
			if (MsgFlag==true)
			{
				alert("Please enter a valid Date.");
				
				theField.select();
			}
			//theField.value = '';
			return false;
		}
		if (strVal.indexOf(".")!= -1)
		{
			if (MsgFlag==true)
			{
				alert("Please enter a valid Date.");
				theField.select();
			}
			//theField.value = '';
			return false;
		}

		if ((strVal.length>=6))
		{
			if ((mont>0) && (mont<=12))
			{
				if ((dt>0) && (dt<=31))
				{
					if(yr.length==4)
					{
						var now = new Date();
						var thisyear;
						var thisdate;
						var thismonth;
						thisyear = now.getYear();
						thisdate=now.getDate();
						thismonth=now.getMonth();
						var entereddate = new Date(parseInt(yr), parseInt(mont)-1, parseInt(dt), 0, 0, 0);
						var entereddate2 = new Date(parseInt(thisyear), parseInt(thismonth), parseInt(thisdate));
						if(mont==1 || mont==3 || mont==5 || mont==7 || mont==8 || mont==10 || mont==12)
						{
							if(dt<0 || dt>31)
								{
									if (MsgFlag==true)
									{
										alert("Please enter a valid Date.");
										theField.select();
									}
									//theField.value = '';
									return false;
								}
						}
						if(mont==4 || mont==6 || mont==9 || mont==11)
						{
							if(dt<0 || dt>30)
								{
									if (MsgFlag==true)
									{
										alert("Please enter a valid Date.");
										theField.select();
									}
									//theField.value = '';
									return false;
								}

						}
						//leap year
						if (mCheckLeapYear(yr)==true)
						{
							if(mont==2)
							{
									if(dt<0 || dt>29)
									{
										if (MsgFlag==true)
										{
											alert("Please enter a valid Date.");
											theField.select();
										}
										//theField.value = '';
										return false;
									}
							}
						}
						if (mCheckLeapYear(yr)==false)
						{
							if(mont==2)
							{
									if(dt<0 || dt>28)
									{
										if (MsgFlag==true)
										{
											alert("Please enter a valid Date.");
											theField.select();
										}
										//theField.value = '';
										return false;
									}
							}

						}
					}
					else
					{
						if (MsgFlag==true)
						{
							alert("Please enter a valid Date.");
							theField.select();
						}
						//theField.value = '';
						return false;
					}
				}
				else
				{
					if (MsgFlag==true)
					{
						alert("Please enter a valid Date.");
						theField.select();
					}
					//theField.value = '';
					return false;
				}
			}
			else
			{
				if (MsgFlag==true)
				{
					alert("Please enter a valid Date.");
					theField.select();
				}
				//theField.value = '';
				return false;
			}
		}
		else
		{
			if (MsgFlag==true)
			{
				alert("Please enter a valid Date.");
				theField.select();
			}
			//theField.value = '';
			return false;
		}
	}
	if ( eval(yr) <= '1752')
	{
		if (MsgFlag==true)
		{
			alert("Please enter a valid Date.");
			theField.select();
		}
		//theField.value = '';
		return false;
	}

	/*Emp ID: HYD1003049 on 03/18/2004 as per new enhancements of UDSPRO for Adding Audit Level
	this code we have took the code from WeeFIM made changes accordingly to make the date format MM/dd/yyyy for valid date*/
	/*if (Trim(theField.value) != '')
		theField.value =Trim(mont) + "/" +Trim(dt) + "/" +Trim(yr);		*/
	if (Trim(theField.value) != '')
	{
		//For auto formating the day and month i.e day 1--01, Month 1--01 in the date
		var pMonthtemp,pDaytemp
		pMonthtemp=Trim(mont);
		pDaytemp=Trim(dt);
		if (pMonthtemp.length==1)
		{
			mont="0"+Trim(mont);
		}
		if (pDaytemp.length==1)
		{
			dt="0"+Trim(dt);
		}

		theField.value =Trim(mont) + "/" +Trim(dt) + "/" +Trim(yr);
	}
	return true;

}
//	mCheckDate Ends
//	=======================================================================================


function mFormatDate(aField)
{
	// author : HYD1003049
	// date	: 18/03/2004
	// desc		: pass the field to auto format the value to MM/dd/yyyy
	//			if the field value is not correct it won't format...
	//			this method we have copied from WeeFIM
	var pStrDate =Trim(aField.value);
	if(pStrDate == undefined) return;
	var pNewDate;
	//HYD1003049 07/20/2004 format will take place only for 8 digits as per issue UDSONL0000010639 (20040719223738543W)
	//if (Trim(pStrDate)!='')
	if ((Trim(pStrDate)!='') && (pStrDate.length == 8))
	{
		if (pStrDate.indexOf('/')==(-1))
		{
			if (isNaN(pStrDate)==false)
			{
				pNewDate=pStrDate;
				if (pStrDate.length==8)
				{
					pNewDate = pStrDate.substring(0,2) + '/' + pStrDate.substring(2,4) + '/' + pStrDate.substring(4,8)
				}
				else if (pStrDate.length==6)
				{
					pNewDate = '0' + pStrDate.substring(0,1) + '/' + '0' + pStrDate.substring(1,2) + '/' + pStrDate.substring(2,6)
				}
				else if (pStrDate.length==7)
				{
					if (parseInt(pStrDate.substring(0,2))>12)
					{
						pNewDate = '0' + pStrDate.substring(0,1) + '/' + pStrDate.substring(1,3) + '/' + pStrDate.substring(3,7)
					}
					else
					{
						if (parseInt(pStrDate.substring(0,2))>9)
						{
							pNewDate = pStrDate.substring(0,2) + '/' + '0' + pStrDate.substring(2,3) + '/' + pStrDate.substring(3,7)
						}
						else
						{
							pNewDate = '0' + pStrDate.substring(0,1) + '/' + '0' + pStrDate.substring(1,3) + '/' + pStrDate.substring(3,7)
						}
					}
				}
				aField.value = pNewDate;
			}
		}
	}
}

//Function Name		:	mCheckLeapYear
//Purpose			:	To check the entered year is leap year or not.
function mCheckLeapYear(aLngYear)
{
	var pLngYear=aLngYear; //stores the year value
	if ( (pLngYear%4==0) && ( (pLngYear%100!==0) || (pLngYear%400==0)) )
	{
		return true
	}
	else
	{
		return false;
	}
}

function Trim(aStrValue)
{
    if(aStrValue == undefined) return;
    // this loop will get rid of leading spaces
    while (aStrValue.substring(0,1) == ' ')
        aStrValue = aStrValue.substring(1, aStrValue.length);

    // this loop will get rid of trailing spaces
    while (aStrValue.substring(aStrValue.length-1,aStrValue.length) == ' ')
        aStrValue = aStrValue.substring(0, aStrValue.length-1);
    
    return aStrValue;
 
}
