<!--//Localized calendar dropdown/*Starts the calendar dropdown	Parameters:	CalID - the id of the href that is calling this function							day - the day dropdown object to change							month - the month dropdown object to change*/function selectOption(pCtrl,strVal){	var nlCount;	if(pCtrl==null) return;	if(pCtrl.options){		for (nlCount=0; (nlCount < pCtrl.options.length); nlCount++) {			if(pCtrl.options[nlCount].value==strVal){				pCtrl.selectedIndex = nlCount;				break;			}		}	}}function todaysDate() {	todaysDate.prototype.formatDate = function(dteDateToFormat) {		//This will return a date in dd MMM yyyy format		var strDay = dteDateToFormat.getDate();		var strMonth = monthArray[dteDateToFormat.getMonth() + 1];		var strYear = dteDateToFormat.getFullYear();		var strFormattedDate = strDay + " " + strMonth + " " + strYear;		return strFormattedDate;	}	todaysDate.prototype.constructDate = function(oMonYear, oDay, bMinus1) {				var objYear = this.getYear(oMonYear);		var objMonth = this.getMonth(oMonYear);		var objDay = this.getDay(oDay);		var objDate;				if (bMinus1) {			objDate = new Date(objYear, (objMonth-1), objDay);		} else {			objDate = new Date(objYear, objMonth, objDay);		}		return objDate;	}	todaysDate.prototype.getYear = function(oMonYear) {		return oMonYear.options[oMonYear.selectedIndex].value.substring(2,6);	}	todaysDate.prototype.getMonth = function(oMonYear){		return oMonYear.options[oMonYear.selectedIndex].value.substring(0,2)	}	todaysDate.prototype.getDay = function(oDay) {				return oDay.options[oDay.selectedIndex].value;	}}var gED = new todaysDate();	var timeout = 500;var timeoutId;//write out the calendar div.document.write('<div id="container"');if (timeout) document.write(' onmouseout="calendarTimer();" onmouseover="if (timeoutId) clearTimeout(timeoutId);"');document.write(' style="display: none;"></div>');//create the date and calendar objectsvar gCal= new Calendar();/*Closes the calendar after timeout (ms) has elapsed*/function calendarTimer(){	timeoutId=setTimeout('gCal.closeMe();',timeout);}/*Class Calendar encapsulates the dropdown calendar.*/function Calendar(){	this._iMonth	//currently selected month/year	this._iDay		//Currently selected day	this._endMonth;	this._container=document.getElementById?document.getElementById('container'):document.all.container;	this.objDay;				//reference to the day dropdown 	this.objMonthYear;	//reference to the month dropdown	this._currentMonth=0;	//default to first item in the list		Calendar.prototype.show=function(calID, sDay, sMonthYear){		//months in an array called shortMonthArray 		//days in an array called shortDayArray		try{			this.objDay=(document.all)?document.all(sDay):document.getElementById(sDay);			this.objMonthYear=(document.all)?document.all(sMonthYear):document.getElementById(sMonthYear);			this._iDay=gED.getDay(this.objDay);			this._iMonth=gED.getMonth(this.objMonthYear);			if(this._iDay=='00'||this._iMonth=="00"){				//day is set to No... set to todays date				this._iDay=serverday;				this._currentMonth=0;	//first item in the month dropdown list							}else{				//Current month is selected from the dropdown list				this._currentMonth=this.getCurrentMonth(this.objMonthYear.options[this.objMonthYear.selectedIndex].value);				}			//Build the calendar HTML			var calendarHTML=this.buildCalendar(this._currentMonth);			//Get the calendar button on the page			var objCal=(document.all)?document.all(calID):document.getElementById(calID);			//Set the calendar container properties			this._container.innerHTML= calendarHTML;			this._container.style.left=this.getElementX(objCal)+30+"px";			this._container.style.top=parseInt(this.getElementY(objCal))-140+"px";			this._container.style.zIndex=999;			this._container.style.display="";				}catch(e){			//just hide me - no errors to user...			this.closeMe();		}	}	/* Main calendar class */	Calendar.prototype.buildCalendar=function(iCurrentMonth) {		//Get the current selected month		var iMonth=this.getMonth(validMonthArray[iCurrentMonth]);		var iYear=this.getYear(validMonthArray[iCurrentMonth]);		//create a date object for the current selected month		var currDate=new Date(iYear,iMonth-1,1);				var month=currDate.getMonth()+1;		var numDays=this.getDaysInMonth(month,iYear);		var year=this.getFullYear(currDate);						currDate.setDate(1); 				var startDate=1;	//set to 0 for sunday, 1 for Monday, 2 for tuesday etc...				var firstDay=(((currDate.getDay())+(7-startDate)) % 7);		//build the html		var calHTML='<table width="100%" border="0" cellspacing="0" cellpadding="0">';		calHTML+='<tr><td height="25" bgcolor="#CFD1D4" valign="middle" align="right"><a href="javascript:gCal.closeMe()"><img src="images/close.gif" alt="Close" border="0"></a></td></tr></table>'		calHTML+='<table border="0" align="center" class="calTable" cellspacing="0" cellpadding="0">';				calHTML+='<tr><td height="20" width="15">';		//if not the first month, add a previous link		if (iCurrentMonth>0){			calHTML+='<a href="javascript:gCal.movePrevious()"><img src="images/prev.gif" alt="" border="0"></a>';		}		calHTML+='</td><td colspan="5" width="100" class="calHeader">'+ shortMonthArray[currDate.getMonth()+1] +' '+year+'</td><td width="20">';		//if not the last month, add a next link				if (iCurrentMonth<validMonthArray.length-1){			calHTML+='<a href="javascript:gCal.moveNext()"><img src="images/next.gif" alt="" border="0"></a>';		}		calHTML+='</td></tr>'		//Add the day titles		for(var iDay=0;iDay<7;iDay++){			calHTML+='<td height="20" width="20" class="calmainformbox">'+shortDayArray[(iDay+startDate) % 7]+'</td>';		}		calHTML+='</tr>';		//for each week in a possible 6 weeks to display...		for(var iWeek=0;iWeek<6;iWeek++){			calHTML+='<tr>';			//for each day in a week			for(iDay=1;iDay<8;iDay++){				var dayWeekPos=(iWeek*7)+iDay;		//Get the actual position in the 7 day by 6 week matrix				var dayOffset=dayWeekPos-firstDay;	//Get the offset from the day of the week								var isValidDay=(dayWeekPos>firstDay)&&(dayOffset<=numDays);	//Is the day in the proper range?				var beforeToday=(year==serveryear&&month==servermonth&&dayOffset<serverday);	//Is the day before todays date?				var dateToShow=(isValidDay)?dayOffset:'';	//Only show days that are in this month										//Write the day as a link if appropriate				calHTML+='<td height="20" class="calmainform">';				calHTML+=(isValidDay&&!beforeToday)?'<a href="javascript:gCal.selectDay('+dateToShow+',\''+validMonthArray[iCurrentMonth]+'\')">':'';				calHTML+=(isValidDay&&beforeToday)?'<font color="#000000">':'';				calHTML+=dateToShow;				calHTML+=(isValidDay&&beforeToday)?'</font>':'';				calHTML+=(isValidDay&&!beforeToday)?'</a>':'';				calHTML+='</td>';			}			calHTML+='</tr>';		}		//write out the footer "close" link		calHTML+='<tr><td class="calmainform">&nbsp;</td>';		calHTML+='<td align="center" colspan="5" class="calmainform"><a href="javascript:gCal.closeMe()">Close</a></td>';		calHTML+='<td class="calmainform">&nbsp;</td></tr></table>';						return calHTML;	}	/* gets the days in the month taking into account leap years */	Calendar.prototype.getDaysInMonth=function(iMonth,iYear){		if(iMonth==2){			var febYear=(iMonth<=2)?iYear:iYear*1+1;			var febDate=new Date(Date.UTC(febYear,1,29));			return (febDate.getMonth()==1)?29:28;		}		else return (iMonth==4||iMonth==6||iMonth==9||iMonth==11)?30:31;	}		Calendar.prototype.getElementX=function(element){		var x=element.offsetLeft;		var oParent=element.offsetParent;		while(oParent){			x+=oParent.offsetLeft;			oParent=oParent.offsetParent;}		return x;	}		Calendar.prototype.getElementY=function(element){		var y=element.offsetTop;		var oParent=element.offsetParent;		while(oParent){			y+=oParent.offsetTop;			oParent=oParent.offsetParent;}		return y;	}		Calendar.prototype.closeMe=function(){		this._container.style.left="";		this._container.style.top="";		this._container.style.display="none";	}		Calendar.prototype.movePrevious=function(){		if(this._currentMonth>0){			this._currentMonth--;		}else{this._currentMonth=0;}		var calendarHTML=this.buildCalendar(this._currentMonth);		this._container.innerHTML= calendarHTML;	}	Calendar.prototype.moveNext=function(){		if(this._currentMonth<validMonthArray.length-1){			this._currentMonth++;		}else{this._currentMonth=validMonthArray.length-1;}		var calendarHTML=this.buildCalendar(this._currentMonth);		this._container.innerHTML= calendarHTML;	}		Calendar.prototype.selectDay=function(iDay,iMonthYear){		selectOption(this.objDay,iDay);		selectOption(this.objMonthYear,iMonthYear);		this.closeMe();	}		Calendar.prototype.getCurrentMonth=function(oMonthYear){		for(var i=0;i<validMonthArray.length;i++){			if(validMonthArray[i]==oMonthYear){return i;break;}		}	}		Calendar.prototype.getMonth = function(sMonthYear){		return sMonthYear.substring(0,2);	}		Calendar.prototype.getYear = function(sMonthYear){		return sMonthYear.substring(2,6);	}	Calendar.prototype.getFullYear=function(date){		fullyear = date.getYear();		return (fullyear<1000)?fullyear+=1900:fullyear;	} }-->
