/***********************************************
 Fool-Proof Date Input Script with DHTML Calendar
 by Jason Moon - calendar@moonscript.com
 ************************************************//***********************************************
* Jason's Date Input Calendar- By Jason Moon http://calendar.moonscript.com/dateinput.cfm
* Script featured on and available at http://www.dynamicdrive.com
* Keep this notice intact for use.
***********************************************/function cbcalDateInput(a,b,c,d,e,f,g,h,i){arguments.length<5&&(e=a),arguments.length<6&&(f=""),arguments.length<7&&(g="1"),arguments.length<8&&(h=null),arguments.length<9&&(i=null),document.write('<input type="hidden" name="'+e+'" id="'+a+'" value="" '+f+" />"),document.write(cbcalDateHtml(a,b,c,d,e,f,g,h,i))}function cbcalDateHtml(DateName,Required,DateFormat,DefaultDate,DateFieldName,AdditionalInputAttributes,YearDropDownStop,YearMin,YearMax){var calhtml;if(arguments.length==0)calhtml="<span style=\"color:red;font-size:1px;font-family:Tahoma;\">ERROR: Missing required parameter in call to 'cbcalDateInput': [name of hidden date field].</span>";else{if(arguments.length<3)DateFormat=cbcalDefaultDateFormat,arguments.length<2&&(Required=!1);else if(/^(Y{2,4}(-|\/|\.)?)?((MON)|(MM?M?)|(DD?))(-|\/|\.)?((MON)|(MM?M?)|(DD?))((-|\/|\.)Y{2,4})?$/i.test(DateFormat))DateFormat=DateFormat.toUpperCase();else{var AlertMessage="WARNING: The supplied date format for the '"+DateName+"' field is not valid: "+DateFormat+"\nTherefore, the default date format will be used instead: "+cbcalDefaultDateFormat;DateFormat=cbcalDefaultDateFormat;if(arguments.length==4){var CurrentDate=new cbcalStoredMonthObject(DateFormat,cbcalToday.getFullYear(),cbcalToday.getMonth(),cbcalToday.getDate());AlertMessage+="\n\nThe supplied date ("+DefaultDate+") cannot be interpreted with the invalid format.\nTherefore, the current system date will be used instead: "+CurrentDate.formatted,DefaultDate=CurrentDate.formatted}alert(AlertMessage)}if(!CurrentDate)var CurrentDate=new cbcalStoredMonthObject(DateFormat,cbcalToday.getFullYear(),cbcalToday.getMonth(),cbcalToday.getDate());if(arguments.length<4||DefaultDate=="")DefaultDate=Required?CurrentDate.formatted:"";arguments.length<5&&(DateFieldName=DateName),arguments.length<6&&(AdditionalInputAttributes=""),arguments.length<7&&(YearDropDownStop="1"),arguments.length<8&&(YearMin=null),arguments.length<9&&(YearMax=null),eval(DateName+"_Object=new cbcalCalendarObject('"+DateName+"','"+DateFormat+"','"+DefaultDate+"','"+YearDropDownStop+"')");if(Required||arguments.length>=4&&DefaultDate!="")var InitialStatus="",InitialDate=eval(DateName+"_Object.picked.formatted");else{var InitialStatus=' style="visibility:hidden"',InitialDate="";eval(DateName+"_Object.setPicked("+cbcalToday.getFullYear()+","+cbcalToday.getMonth()+","+cbcalToday.getDate()+")")}calhtml='<span class="cbDateinputJs" style="white-space:nowrap;">';for(var f=0;f<document.forms.length;f++)for(var e=0;e<document.forms[f].elements.length;e++)if(typeof document.forms[f].elements[e].type=="string")if(document.forms[f].elements[e].type=="hidden"&&document.forms[f].elements[e].id==DateName){eval(DateName+"_Object.formNumber="+f);break}calhtml+=cbcalHtmlYmdReplace(DateName,Required,DateFormat,DefaultDate,InitialStatus,YearDropDownStop,YearMin,YearMax),calhtml+='<a id="'+DateName+'_ID_Link" href="javascript:'+DateName+'_Object.show()" onMouseOver="return '+DateName+'_Object.iconHover(true)" onMouseOut="return '+DateName+'_Object.iconHover(false)"><img src="'+cbcalImageURL+'" align="baseline" title="Calendar" border="0" width="16px" height="15px" /></a><span class="cbtmplDateWhiteSeps">&nbsp;</span>',calhtml+='<span style="position:relative;"><span id="'+DateName+'_ID" style="position:absolute;visibility:hidden;width:'+cbcalCellWidth*7+"px;background-color:"+cbcalCalBGColor+';border:1px solid dimgray;" onMouseOver="'+DateName+'_Object.handleTimer(true)" onMouseOut="'+DateName+'_Object.handleTimer(false)">',calhtml+="\n"+('<table class="cbDateinputCalTable" width="'+cbcalCellWidth*7+'" cellspacing="0" cellpadding="1">'+String.fromCharCode(13)+'<tr style="background-color:'+cbcalTopRowBGColor+';">'),calhtml+="\n"+('<td id="'+DateName+'_Previous_ID" style="cursor:default" align="center" class="calendarDateInput" style="height:'+cbcalCellHeight+'" onClick="'+DateName+'_Object.previous.go()" onMouseDown="cbcalVirtualButton(this,true)" onMouseUp="cbcalVirtualButton(this,false)" onMouseOver="return '+DateName+'_Object.previous.hover(this,true)" onMouseOut="return '+DateName+'_Object.previous.hover(this,false)" title="'+eval(DateName+"_Object.previous.monthName")+'"><img src="'+cbcalPrevURL+'" /></td>'),calhtml+="\n"+('<td id="'+DateName+'_Current_ID" style="cursor:pointer" align="center" class="calendarDateInput" style="height:'+cbcalCellHeight+'" colspan="5" onClick="'+DateName+'_Object.displayed.goCurrent()" onMouseOver="self.status=\'Click to view '+CurrentDate.fullName+'\';return true;" onMouseOut="self.status=\'\';return true;" title="Show Current Month">'+eval(DateName+"_Object.displayed.fullName")+"</td>"),calhtml+="\n"+('<td id="'+DateName+'_Next_ID" style="cursor:default" align="center" class="calendarDateInput" style="height:'+cbcalCellHeight+'" onClick="'+DateName+'_Object.next.go()" onMouseDown="cbcalVirtualButton(this,true)" onMouseUp="cbcalVirtualButton(this,false)" onMouseOver="return '+DateName+'_Object.next.hover(this,true)" onMouseOut="return '+DateName+'_Object.next.hover(this,false)" title="'+eval(DateName+"_Object.next.monthName")+'"><img src="'+cbcalNextURL+'" /></td></tr>'+String.fromCharCode(13)+"<tr>");for(var w=0;w<7;w++)calhtml+="\n"+('<td width="'+cbcalCellWidth+'" align="center" class="calendarDateInput" style="height:'+cbcalCellHeight+";width:"+cbcalCellWidth+'px;font-weight:bold;border-top:1px solid dimgray;border-bottom:1px solid dimgray;">'+cbcalWeekDays[w]+"</td>");calhtml+="\n"+("</tr>"+String.fromCharCode(13)+"</table>"+String.fromCharCode(13)+'<span id="'+DateName+'_DayTable_ID">'+eval(DateName+"_Object.buildCalendar()")+"</span>"+String.fromCharCode(13)+"</span></span>"+String.fromCharCode(13)+"</span>")}return calhtml}function cbcalHtmlYmdReplace(a,b,c,d,e,f,g,h){var i=cbcalHtmlMonth(a,b,d,e),j=cbcalHtmlDay(a,b,d,e);if(f=="")var k=cbcalHtmlYear(a,b,d,e);else var k=cbcalHtmlYearDropDown(a,b,d,e,f,g,h);var l=0,m=c.replace(/(Y{2,4})|((MON)|(MM?M?))|(DD?)|(-|\/|\.| )/g,function(a){var b="";if(/(-|\/|\.)/g.test(a))return'<span class="cbtmplDateSeps">'+a+"</span>";/(Y{2,4})/g.test(a)?b=k:/((MON)|(MM?M?))/.test(a)?b=i:/(DD?)/.test(a)&&(b=j),l++&&(b='<span class="cbtmplDateWhiteSeps">&nbsp;</span>'+b),b+='<span class="cbtmplDateWhiteSeps">&nbsp;</span>';return b});return m}function cbcalHtmlYear(DateName,Required,DefaultDate,InitialStatus){return"<input"+InitialStatus+' class="inputbox" type="text" id="'+DateName+'_Year_ID" size="'+eval(DateName+"_Object.picked.yearPad.length")+'" maxlength="'+eval(DateName+"_Object.picked.yearPad.length")+'" title="Year" value="'+eval(DateName+"_Object.picked.yearPad")+'" onKeyPress="return cbcalYearDigitsOnly(event)" onKeyUp="'+DateName+'_Object.checkYear(this)" onBlur="'+DateName+'_Object.fixYear(this)" />'}function cbcalHtmlYearDropDown(DateName,Required,DefaultDate,InitialStatus,YearDropDownStop,YearMin,YearMax){var r='<select class="inputbox" id="'+DateName+'_Year_ID" onChange="'+DateName+'_Object.changeYear(this)">';if(!Required){var NoneSelected=DefaultDate==""?" selected":"";r+='<option value=""'+NoneSelected+">"+cbcalUnselectedMonthText+"</option>"}var digits=eval(DateName+"_Object.picked.yearPad.length"),defaultYear=eval(DateName+"_Object.picked.yearPad"),yearsToShow,modulo,y;modulo=1e4,YearMin===null&&YearMax===null?(yearsToShow=220,y=defaultYear-107):(yearsToShow=YearMax-YearMin+1,y=YearMin),digits==2&&(yearsToShow>100&&(yearsToShow=100),modulo=100,YearMin===null&&YearMax===null?y=cbcalY2kPivotPoint:y=YearMin%modulo);for(var j=0;j<yearsToShow;j++){var YearSelected=DefaultDate!=""&&eval(DateName+"_Object.picked.yearPad")==y?" selected":"",yy=(y<10?"0":"")+y;r+='<option value="'+yy+'"'+YearSelected+">"+yy+"</option>",y=(y+1)%modulo}r+="</select>";return r}function cbcalHtmlDay(DateName,Required,DefaultDate,InitialStatus){var r='<select class="inputbox" id="'+DateName+'_Day_ID" onChange="'+DateName+'_Object.changeDay(this)">';if(!Required){var NoneSelected=DefaultDate==""?" selected":"";r+='<option value=""'+NoneSelected+">"+cbcalUnselectedMonthText+"</option>"}for(var j=1;j<=eval(DateName+"_Object.picked.dayCount");j++){var DaySelected=DefaultDate!=""&&eval(DateName+"_Object.picked.day")==j?" selected":"";r+='<option value="'+j+'"'+DaySelected+">"+j+"</option>"}r+="</select>";return r}function cbcalHtmlMonth(DateName,Required,DefaultDate,InitialStatus){var r="";r+='<select class="inputbox" id="'+DateName+'_Month_ID" onChange="'+DateName+'_Object.changeMonth(this)">';if(!Required){var NoneSelected=DefaultDate==""?" selected":"";r+='<option value=""'+NoneSelected+">"+cbcalUnselectedMonthText+"</option>"}for(var i=0;i<12;i++){var MonthSelected=DefaultDate!=""&&eval(DateName+"_Object.picked.monthIndex")==i?" selected":"";r+='<option value="'+i+'"'+MonthSelected+">"+cbcalMonthNames[i]+"</option>"}r+="</select>";return r}function cbcalCalendarObject(a,b,c,d){function f(a,d){a.setPicked(cbcalToday.getFullYear(),cbcalToday.getMonth(),cbcalToday.getDate()),d&&alert("WARNING: The supplied date is not in valid '"+b+"' format: "+c+".\nTherefore, the current system date will be used instead: "+a.picked.formatted)}function e(a){for(var b=0;b<cbcalMonthNames.length;b++)if(cbcalMonthNames[b].substr(0,3).toUpperCase()==a.toUpperCase())break;return b}this.hiddenFieldName=a,this.monthListID=a+"_Month_ID",this.dayListID=a+"_Day_ID",this.yearFieldID=a+"_Year_ID",this.monthDisplayID=a+"_Current_ID",this.calendarID=a+"_ID",this.dayTableID=a+"_DayTable_ID",this.calendarLinkID=this.calendarID+"_Link",this.timerID=this.calendarID+"_Timer",this.objName=a+"_Object",this.format=b,this.formNumber=-1,this.picked=null,this.displayed=null,this.previous=null,this.next=null,this.yeardropdownstop=d,this.setPicked=cbcalSetPickedMonth,this.setDisplayed=cbcalSetDisplayedMonth,this.checkYear=cbcalCheckYearInput,this.fixYear=FixYearInput,this.changeYear=cbcalCheckYearChange,this.changeMonth=cbcalCheckMonthChange,this.changeDay=cbcalCheckDayChange,this.resetTimer=cbcalCalTimerReset,this.hideElements=cbcalSetElementStatus,this.show=cbcalShowCalendar,this.handleTimer=cbcalDoTimer,this.iconHover=cbcalCalIconHover,this.buildCalendar=cbcalBuildCalendarDays,this.pickDay=cbcalPickDisplayDay,this.fixSelects=cbcalFixSelectLists,this.setHidden=new Function("D","if (this.formNumber >= 0) this.getHiddenField().value=D"),this.getHiddenField=new Function("return document.forms[this.formNumber].elements[this.hiddenFieldName]"),this.getMonthList=new Function("return document.getElementById(this.monthListID)"),this.getDayList=new Function("return document.getElementById(this.dayListID)"),this.getYearField=new Function("return document.getElementById(this.yearFieldID)"),this.getCalendar=new Function("return document.getElementById(this.calendarID)"),this.getDayTable=new Function("return document.getElementById(this.dayTableID)"),this.getCalendarLink=new Function("return document.getElementById(this.calendarLinkID)"),this.getMonthDisplay=new Function("return document.getElementById(this.monthDisplayID)"),this.isShowing=new Function("return !(this.getCalendar().style.visibility != 'visible')");if(c!="")if(this.format=="YYYYMMDD"&&/^(\d{4})(\d{2})(\d{2})$/.test(c))this.setPicked(RegExp.$1,parseInt(RegExp.$2,10)-1,RegExp.$3);else if(this.format.substr(0,2)=="YY"&&/^(\d{2,4})(-|\/|\.)/.test(c)){var g=cbcalGetGoodYear(RegExp.$1);if(/(-|\/|\.)(\w{1,3})(-|\/|\.)(\w{1,3})$/.test(c)){var h=RegExp.$2,i=RegExp.$4;if(/D$/.test(this.format))var j=i,k=h;else var j=h,k=i;k=/\d{1,2}/i.test(k)?parseInt(k,10)-1:e(k),this.setPicked(g,k,j)}else f(this,!0)}else if(/(-|\/|\.)(\d{2,4})$/.test(c)){var g=cbcalGetGoodYear(RegExp.$2);if(/^(\w{1,3})(-|\/|\.)(\w{1,3})(-|\/|\.)/.test(c)){if(this.format.substr(0,1)=="D")var j=RegExp.$1,k=RegExp.$3;else var k=RegExp.$1,j=RegExp.$3;k=/\d{1,2}/i.test(k)?parseInt(k,10)-1:e(k),this.setPicked(g,k,j)}else f(this,!0)}else f(this,!0)}function cbcalSetPickedMonth(a,b,c){this.picked=new cbcalStoredMonthObject(this.format,a,b,c),this.setHidden(this.picked.formatted),this.setDisplayed(a,b)}function cbcalSetDisplayedMonth(a,b){this.displayed=new cbcalDisplayMonthObject(this,a,b,1),this.previous=new cbcalNeighborMonthObject(this,"Previous",this.displayed.date.getTime()-864e5),this.next=new cbcalNeighborMonthObject(this,"Next",this.displayed.date.getTime()+864e5*(this.displayed.dayCount+1)),this.formNumber>=0&&(this.getDayTable().innerHTML=this.buildCalendar())}function cbcalNeighborMonthObject(a,b,c){Function.call?cbcalDateObject.call(this,c):cbcalDateObject(this,c),this.buttonID=a.hiddenFieldName+"_"+b+"_ID",this.hover=new Function("C","O","cbcalNeighborHover(C,O,this)"),this.getButton=new Function("return document.getElementById(this.buttonID)"),this.go=new Function(a.objName+".getCalendar().style.zIndex=++cbcalZCounter;"+a.objName+".setDisplayed(this.yearValue,this.monthIndex);"),a.formNumber>=0&&(this.getButton().title=this.monthName)}function cbcalDisplayMonthObject(a,b,c,d){Function.call?cbcalDateObject.call(this,b,c,d):cbcalDateObject(this,b,c,d),this.displayID=a.hiddenFieldName+"_Current_ID",this.getDisplay=new Function("return document.getElementById(this.displayID)"),this.dayHover=cbcalDayCellHover,this.goCurrent=new Function(a.objName+".getCalendar().style.zIndex=++cbcalZCounter;"+a.objName+".setDisplayed(cbcalToday.getFullYear(),cbcalToday.getMonth());"),a.formNumber>=0&&(this.getDisplay().innerHTML=this.fullName)}function cbcalStoredMonthObject(a,b,c,d){Function.call?cbcalDateObject.call(this,b,c,d):cbcalDateObject(this,b,c,d),this.yearPad=this.yearValue+"",this.monthPad=this.monthIndex<9?"0"+String(this.monthIndex+1):this.monthIndex+1,this.dayPad=this.day<10?"0"+(this.day+""):this.day,this.monthShort=this.monthName.substr(0,3).toUpperCase(),a.indexOf("YYYY")==-1&&(this.yearPad=this.yearPad.substr(2));if(a.indexOf("/")<0)if(a.indexOf("-")<0)if(a.indexOf(".")<0)var e="";else var e=".";else var e="-";else var e="/";/DD?.?((MON)|(MM?M?))/.test(a)?(this.formatted=this.dayPad+e,this.formatted+=RegExp.$1.length==3?this.monthShort:this.monthPad):/((MON)|(MM?M?))?.?DD?/.test(a)&&(this.formatted=RegExp.$1.length==3?this.monthShort:this.monthPad,this.formatted+=e+this.dayPad),this.formatted=a.substr(0,2)=="YY"?this.yearPad+e+this.formatted:this.formatted+e+this.yearPad}function cbcalDateObject(){if(Function.call)var a=this,b=0;else var a=arguments[0],b=1;a.date=arguments.length==b+1?new Date(arguments[b+0]):new Date(cbcalGetGoodYear(arguments[b+0]),arguments[b+1],arguments[b+2]),a.yearValue=a.date.getFullYear(),a.monthIndex=a.date.getMonth(),a.monthName=cbcalMonthNames[a.monthIndex],a.fullName=a.monthName+" "+a.yearValue,a.day=a.date.getDate(),a.dayCount=cbcalGetDayCount(a.yearValue,a.monthIndex);var c=new Date(a.yearValue,a.monthIndex,1);a.firstDay=c.getDay()}function cbcalCheckYearInput(a){if(a.value.length==a.defaultValue.length&&a.defaultValue!=a.value){this.isShowing()&&(this.resetTimer(),this.getCalendar().style.zIndex=++cbcalZCounter);var b=cbcalGetGoodYear(a.value),c=this.getMonthList(),d=cbcalFixDayList(this.getDayList(),cbcalGetDayCount(b,c.options[c.selectedIndex].value));this.setPicked(b,c.options[c.selectedIndex].value,d),a.defaultValue=a.value}}function cbcalCheckDayChange(a){var b=a.options[0].value==""?1:0,c=this.getMonthList(),d=this.getYearField();if(a.options[a.selectedIndex].value==""){var e=cbcalFixDayList(a,31);this.yeardropdownstop!=""&&(d.selectedIndex=0),c.selectedIndex=0,a.selectedIndex=0,this.hideElements(!0),this.setHidden("")}else{this.hideElements(!1),this.isShowing()&&(this.resetTimer(),this.getCalendar().style.zIndex=++cbcalZCounter),c.selectedIndex==0&&(c.selectedIndex=1);var e=cbcalFixDayList(a,cbcalGetDayCount(this.picked.yearValue,c.options[c.selectedIndex].value));this.setPicked(this.picked.yearValue,c.options[c.selectedIndex].value,a.options[a.selectedIndex].value);if(this.yeardropdownstop!=""&&d.selectedIndex==0)var f=cbcalFixYearList(d,this.picked.yearValue)}}function cbcalCheckMonthChange(a){var b=this.getDayList(),c=this.getYearField();if(a.options[a.selectedIndex].value==""){var d=cbcalFixDayList(b,31);this.yeardropdownstop!=""&&(c.selectedIndex=0),a.selectedIndex=0,b.selectedIndex=0,this.hideElements(!0),this.setHidden("")}else{this.hideElements(!1),this.isShowing()&&(this.resetTimer(),this.getCalendar().style.zIndex=++cbcalZCounter);var d=cbcalFixDayList(b,cbcalGetDayCount(this.picked.yearValue,a.options[a.selectedIndex].value));this.setPicked(this.picked.yearValue,a.options[a.selectedIndex].value,d);if(this.yeardropdownstop!=""&&c.selectedIndex==0)var e=cbcalFixYearList(c,this.picked.yearValue)}}function cbcalCheckYearChange(a){var b=this.getDayList(),c=this.getMonthList();if(a.options[a.selectedIndex].value==""){var d=cbcalFixDayList(b,31);b.selectedIndex=0,c.selectedIndex=0,this.hideElements(!0),this.setHidden("")}else{this.hideElements(!1),this.isShowing()&&(this.resetTimer(),this.getCalendar().style.zIndex=++cbcalZCounter),c.selectedIndex==0&&(c.selectedIndex=1);var d=cbcalFixDayList(b,cbcalGetDayCount(cbcalGetGoodYear(a.options[a.selectedIndex].value),c.options[c.selectedIndex].value));this.setPicked(a.options[a.selectedIndex].value,c.options[c.selectedIndex].value,d)}}function cbcalSetElementStatus(a){this.yeardropdownstop==""&&(this.getYearField().style.visibility=a?"hidden":"visible")}function cbcalShowCalendar(){if(this.isShowing()){var a=!0;this.getCalendar().style.zIndex=--cbcalZCounter,this.getCalendar().style.visibility="hidden",this.fixSelects(!1)}else{var a=!1;this.fixSelects(!0),this.getCalendar().style.zIndex=++cbcalZCounter,this.getCalendar().style.visibility="visible"}this.handleTimer(a),self.status=""}function cbcalDoTimer(CancelTimer){CancelTimer?eval("clearTimeout("+this.timerID+")"):(eval(this.timerID+"=null"),this.resetTimer())}function cbcalCalTimerReset(){eval("clearTimeout("+this.timerID+")"),eval(this.timerID+"=setTimeout('"+this.objName+".show()',"+cbcalHideWait*1e3+")")}function cbcalCalIconHover(a){var b=this.isShowing()?"hide":"show";self.status=a?"Click to "+b+" the calendar":"";return!0}function FixYearInput(a){var b=new RegExp("\\d{"+a.defaultValue.length+"}");b.test(a.value)||(a.value=a.defaultValue)}function cbcalFixYearList(a,b){var c=a.options[0].value==""?1:0;a.options[1].value<100&&(b=b%100);var d=a.options[a.selectedIndex].value;for(var e=c;e<a.options.length;e++)if(a.options[e].value==b){d=b;break}e<a.options.length&&(a.options[e].selected=!0);return d}function cbcalFixDayList(a,b){var c=a.options[0].value==""?1:0,d=a.selectedIndex+1-c;d==0&&(d=1,a.options[d-1+c].selected=!0);if(b!=a.length-c){var e=a.length-c;for(var f=Math.min(b,e);f<Math.max(b,e);f++)f>=b?a.options[b+c]=null:a.options[f+c]=new Option(f+1,f+1);d=Math.min(d,b),a.options[d-1+c].selected=!0}return d}function cbcalNeighborHover(a,b,c){b?(cbcalVirtualButton(a,!1),self.status="Click to view "+c.fullName):(a.style.border="buttonface 1px solid",self.status="");return!0}function cbcalVirtualButton(a,b){b?(a.style.borderLeft="buttonshadow 1px solid",a.style.borderTop="buttonshadow 1px solid",a.style.borderBottom="buttonhighlight 1px solid",a.style.borderRight="buttonhighlight 1px solid"):(a.style.borderLeft="buttonhighlight 1px solid",a.style.borderTop="buttonhighlight 1px solid",a.style.borderBottom="buttonshadow 1px solid",a.style.borderRight="buttonshadow 1px solid")}function cbcalGetDayCount(a,b){return b==1&&(a%400==0||a%4==0&&a%100!=0)?29:cbcalMonthDays[b]}function cbcalGetGoodYear(a){if(a>100)return a;var b=parseInt(a,10)%100,c=b<cbcalY2kPivotPoint?2e3:1900;return c+b}function cbcalBuildCalendarDays(){var a=5;this.displayed.dayCount==31&&this.displayed.firstDay>4||this.displayed.dayCount==30&&this.displayed.firstDay==6?a=6:this.displayed.dayCount==28&&this.displayed.firstDay==0&&(a=4);var b='<table width="'+cbcalCellWidth*7+'" cellspacing="0" cellpadding="1" style="cursor:default">';for(var c=0;c<a;c++){b+="<tr>";for(var d=1;d<=7;d++)Day=c*7+(d-this.displayed.firstDay),Day<1||Day>this.displayed.dayCount?b+='<td class="calendarDateInput" style="height:'+cbcalCellHeight+'">&nbsp;</td>':(this.displayed.yearValue==this.picked.yearValue&&this.displayed.monthIndex==this.picked.monthIndex&&Day==this.picked.day?(TextStyle="color:white;font-weight:bold;",BackColor=cbcalDayBGColor):(TextStyle="color:black;",BackColor=cbcalCalBGColor),this.displayed.yearValue==cbcalToday.getFullYear()&&this.displayed.monthIndex==cbcalToday.getMonth()&&Day==cbcalToday.getDate()&&(TextStyle+="border:1px solid darkred;padding:0px;"),b+='<td align="center" class="calendarDayInput" style="cursor:default;height:'+cbcalCellHeight+"px;width:"+cbcalCellWidth+"px;"+TextStyle+";background-color:"+BackColor+'" onClick="'+this.objName+".pickDay("+Day+')" onMouseOver="return '+this.objName+".displayed.dayHover(this,true,'"+BackColor+"',"+Day+')" onMouseOut="return '+this.objName+".displayed.dayHover(this,false,'"+BackColor+"')\">"+Day+"</td>");b+="</tr>"}return b+="</table>"}function cbcalPickDisplayDay(a){this.show();var b=this.getMonthList(),c=this.getDayList(),d=this.getYearField(),e=c.options[0].value==""?1:0;cbcalFixDayList(c,cbcalGetDayCount(this.displayed.yearValue,this.displayed.monthIndex));for(var f=0;f<b.length;f++)b.options[f].value==this.displayed.monthIndex&&(b.options[f].selected=!0);for(var g=1;g<=c.length-e;g++)g==a&&(c.options[g-1+e].selected=!0);this.setPicked(this.displayed.yearValue,this.displayed.monthIndex,a),d.value=this.picked.yearPad,d.defaultValue=d.value,this.hideElements(!1)}function cbcalDayCellHover(a,b,c,d){a.style.backgroundColor=b?cbcalDayBGColor:c;if(b)if(this.yearValue==cbcalToday.getFullYear()&&this.monthIndex==cbcalToday.getMonth()&&d==cbcalToday.getDate())self.status="Click to select today";else{var e=d+"";switch(e.substr(e.length-1,1)){case"1":e+=d==11?"th":"st";break;case"2":e+=d==12?"th":"nd";break;case"3":e+=d==13?"th":"rd";break;default:e+="th"}self.status="Click to select "+this.monthName+" "+e}else self.status="";return!0}function cbcalFixSelectLists(a){if(navigator.appName=="Microsoft Internet Explorer"){var b=this.getCalendar(),c=b.offsetLeft,d=c+b.offsetWidth,e=b.offsetTop,f=e+cbcalCellHeight*9,g=!1;formLoop:for(var h=this.formNumber;h<document.forms.length;h++)for(var i=0;i<document.forms[h].elements.length;i++)if(typeof document.forms[h].elements[i].type=="string"){document.forms[h].elements[i].type=="hidden"&&document.forms[h].elements[i].name==this.hiddenFieldName&&(g=!0,i+=3);if(g)if(document.forms[h].elements[i].type.substr(0,6)=="select"){ListTopY=cbcalGetTagPixels(document.forms[h].elements[i],"TOP");if(ListTopY<f)cbcalBehindCal(document.forms[h].elements[i],c,d,e,f,ListTopY)&&(document.forms[h].elements[i].style.visibility=a?"hidden":"visible");else break formLoop}}}}function cbcalBehindCal(a,b,c,d,e,f){var g=cbcalGetTagPixels(a,"LEFT"),h=g+a.offsetWidth,i=f+a.offsetHeight;return f<e&&i>d&&(g<c&&h>b)}function cbcalGetTagPixels(a,b){var c=b=="LEFT"?a.offsetLeft:a.offsetTop;while(a.tagName!="BODY"&&a.tagName!="HTML")a=a.offsetParent,c+=b=="LEFT"?a.offsetLeft:a.offsetTop;return c}function cbcalYearDigitsOnly(a){var b=a.keyCode?a.keyCode:a.which;return b==8||b==9||b==37||b==39||b==46||b>47&&b<58}var cbcalDefaultDateFormat="MM/DD/YYYY",cbcalHideWait=4,cbcalY2kPivotPoint=76,cbcalUnselectedMonthText="",cbcalFontSize=11,cbcalFontSizeDay=14,cbcalFontFamily="Tahoma",cbcalCellWidth=26,cbcalCellHeight=24,cbcalImageURL=cbTemplateDir+"calendar_icon.jpg",cbcalNextURL=cbTemplateDir+"calendar_next.gif",cbcalPrevURL=cbTemplateDir+"calendar_prev.gif",cbcalCalBGColor="#F4F4F4",cbcalTopRowBGColor="#DDD",cbcalDayBGColor="#CCCCFF",cbcalZCounter=100,cbcalToday=new Date,cbcalWeekDays=Calendar._SDN,cbcalMonthDays=[31,28,31,30,31,30,31,31,30,31,30,31],cbcalMonthNames=Calendar._MN
