
var cp_timeoutDelay=2000;var cp_timeoutId=false;var cp_location=1;var g_startDay=0;var g_Calendar;function Calendar(){g_Calendar=this;this.daysOfWeek="Sun Mon Tue Wed Thu Fri Sat".split(" ");this.months="January February March April May June July August September October November December".split(" ");this.daysInMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);this.containerLayer=null;this.dayMask=[1,1,1,1,1,1,1];this.Holidays=null;this.showHolidays=true}Calendar.prototype.show=function(e,target,dateFormat,dateFrom,dateTo,menuYearFrom,menuYearTo){if(!document.getElementById){alert("This browser is not suppored for a calendar popup.");return}if(!document.getElementById(target)){alert("Error: input field \""+target+"\" does not exist.");return}this.containerLayer=document.getElementById('calcontainer');if(!this.containerLayer){this.containerLayer=document.createElement('div');this.containerLayer.id='calcontainer';this.containerLayer.onmouseout=calendarTimeout;this.containerLayer.onmouseover=calendarClearTimeout;this.containerLayer.onclick=this.handleClick;document.body.insertBefore(this.containerLayer,document.body.childNodes[0])}if(this.isVisible()){this.hide();return}calendarClearTimeout();var elSrc;if(!e){e=window.event}if(e.target){elSrc=e.target}else if(e.srcElement){elSrc=e.srcElement}e.cancelBubble=true;if(e.stopPropagation){e.stopPropagation()}var x,y,obj;x=y=0;if(cp_location==1){obj=document.getElementById(target)}else{obj=elSrc}if(obj.offsetParent){while(obj){x+=obj.offsetLeft;y+=obj.offsetTop;obj=obj.offsetParent}}else{x=obj.x;y=obj.y}if(cp_location==1){var yScroll;if(self.pageYOffset){yScroll=self.pageYOffset}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop}else if(document.body){yScroll=document.body.scrollTop}this.containerLayer.style.left=x+"px";if((y+document.getElementById(target).offsetHeight+1+this.containerLayer.offsetHeight)>this.getWindowHeight()+yScroll){this.containerLayer.style.top=((y-this.containerLayer.offsetHeight)-1)+"px"}else{this.containerLayer.style.top=(y+document.getElementById(target).offsetHeight+1)+"px"}}else{this.containerLayer.style.left=(x+elSrc.offsetWidth+1)+"px";this.containerLayer.style.top=y+"px"}this.dateFrom=dateFrom||new Date(1900,0,1);this.dateFromDay=this.padZero(this.dateFrom.getDate());this.dateFromMonth=this.padZero(this.dateFrom.getMonth());this.dateFromYear=this.dateFrom.getFullYear();this.dateTo=dateTo||new Date(3000,0,1);this.dateToDay=this.padZero(this.dateTo.getDate());this.dateToMonth=this.padZero(this.dateTo.getMonth());this.dateToYear=this.dateTo.getFullYear();this.dateToday=new Date();this.tYear=this.dateToday.getFullYear();this.tMonth=this.dateToday.getMonth();this.tDay=this.dateToday.getDate();if(dateFormat){this.dateFormat=dateFormat}else if(dp_dateFormat){this.dateFormat=dp_dateFormat}else if(!this.dateFormat){this.dateFormat='m/d/yyyy'}dp_dateFormat=this.dateFormat;if(this.dateFormat.indexOf('-')!=-1){this.dateDelim='-'}else if(this.dateFormat.indexOf('/')!=-1){this.dateDelim='/'}else if(this.dateFormat.indexOf('.')!=-1){this.dateDelim='.'}else if(this.dateFormat.indexOf(' ')!=-1){this.dateDelim=' '}else{this.dateDelim='/'}this.target=target;var tmp=document.getElementById(this.target);tmp.className=tmp.className.replace("error","").replace("  "," ");if(tmp&&tmp.value&&tmp.value.split(this.dateDelim).length==3){var atmp=tmp.value.split(this.dateDelim);var delim=eval('/\\'+this.dateDelim+'/g');switch(this.dateFormat.replace(delim,"")){case'ddmmmyyyy':case'dmmmyyyy':this.day=1;this.year=this.oYear=parseInt(atmp[2],10);for(var i=0;i<this.months.length;i++){if(atmp[1].toLowerCase()==this.months[i].substr(0,3).toLowerCase()){this.month=this.oMonth=i;break}}this.day=parseInt(atmp[0],10);break;case'ddmmyyyy':case'dmmyyyy':case'dmyyyy':this.day=1;this.year=this.oYear=parseInt(atmp[2],10);this.month=this.oMonth=parseInt(atmp[1]-1,10);this.day=parseInt(atmp[0],10);break;case'mmddyyyy':case'mddyyyy':case'mdyyyy':this.day=1;this.year=this.oYear=parseInt(atmp[2],10);this.month=this.oMonth=parseInt(atmp[0]-1,10);this.day=parseInt(atmp[1],10);break;case'yyyymmdd':this.day=1;this.year=this.oYear=parseInt(atmp[0],10);this.month=this.oMonth=parseInt(atmp[1]-1,10);this.day=parseInt(atmp[2],10);break}}else{var theDate=new Date();this.year=this.oYear=theDate.getFullYear();this.month=this.oMonth=theDate.getMonth();this.day=this.oDay=theDate.getDate()}this.menuYearFrom=menuYearFrom||this.year-3;this.menuYearTo=menuYearTo||this.year+3;var tmpCurYear=(new Date()).getFullYear();if(this.menuYearTo<tmpCurYear)this.menuYearTo=tmpCurYear;this.menuYearTo++;this.writeString(this.buildString());this.containerLayer.style.visibility='visible'};Calendar.prototype.buildString=function(){var tmpStr='';var aHolidays=new Array();if(this.Holidays){for(var h=0;h<this.Holidays.length;h++){if(this.Holidays[h].date.getFullYear()==this.year&&this.Holidays[h].date.getMonth()==this.month){aHolidays[aHolidays.length]=this.Holidays[h]}}}if(document.all&&document.getElementById&&!window.Opera){if(navigator.appVersion.substr(22,3)!="5.0"){tmpStr='<iframe src="about:blank" scrolling="no" frameborder="0" style="width: '+this.containerLayer.offsetWidth+'px; height: '+this.containerLayer.offsetHeight+'px; z-index: -1; position: absolute; filter: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);"></iframe>'}}tmpStr+='<table cellspacing="0">';tmpStr+='<thead><tr><td colspan="7"><ul>\n'+'<li id="cp_prevMonth"><a href="javascript:g_Calendar.changeMonth(-1)" title="Go to previous month"><span>&lt;</span></a></li>\n'+'<li id="cp_monthMenu"><a href="javascript:g_Calendar.openMenuMonths()" title="Open months menu">'+this.months[this.month]+'</a>\n'+'<ul id="cp_months"><li><a href="javascript:g_Calendar.clickMonth(0)">January</a></li><li><a href="javascript:g_Calendar.clickMonth(1)">February</a></li><li><a href="javascript:g_Calendar.clickMonth(2)">March</a></li><li><a href="javascript:g_Calendar.clickMonth(3)">April</a></li><li><a href="javascript:g_Calendar.clickMonth(4)">May</a></li><li><a href="javascript:g_Calendar.clickMonth(5)">June</a></li><li><a href="javascript:g_Calendar.clickMonth(6)">July</a></li><li><a href="javascript:g_Calendar.clickMonth(7)">August</a></li><li><a href="javascript:g_Calendar.clickMonth(8)">September</a></li><li><a href="javascript:g_Calendar.clickMonth(9)">October</a></li><li><a href="javascript:g_Calendar.clickMonth(10)">November</a></li><li><a href="javascript:g_Calendar.clickMonth(11)">December</a></li></ul></li>\n'+'<li id="cp_nextMonth"><a href="javascript:g_Calendar.changeMonth(1)" title="Go to next month"><span>&gt;</span></a></li>\n'+'<li id="cp_prevYear"><a href="javascript:g_Calendar.changeYear(-1)" title="Go to previous year"><span>&lt;</span></a></li>\n'+'<li id="cp_yearMenu"><a href="javascript:g_Calendar.openMenuYears();" title="Open years menu">'+this.year+'</a>\n';if(this.menuYearTo-this.menuYearFrom>7){tmpStr+='<ul id="cp_years" style="overflow: auto; overflow-x: hidden; overflow-y: auto;">'}else{tmpStr+='<ul id="cp_years">'}var menuYearTo=this.menuYearTo;if(menuYearTo<=this.year)menuYearTo=this.year+1;for(var y=this.menuYearFrom;y<menuYearTo;y++){tmpStr+='<li><a href="javascript:g_Calendar.clickYear('+y+')">'+y+'</a></li>'}tmpStr+='</ul></li>\n<li id="cp_nextYear"><a href="javascript:g_Calendar.changeYear(1)" title="Go to next year"><span>&gt;</span></a></li>\n</ul></td></tr>';var iCount=1;var iFirstDOM=(7+this.getFirstDOM()-g_startDay)%7;var iDaysInMonth=this.getDaysInMonth();tmpStr+='<tr>';for(var i=0;i<7;i++){tmpStr+='<th>'+this.daysOfWeek[(g_startDay+i)%7]+'</th>'}var dtToday=new Date();tmpStr+='</tr></thead><tfoot><tr><td colspan="7">Today is: <a href="javascript:g_Calendar.clickToday()" title="Go to current month">'+(/^d/.test(this.dateFormat)?dtToday.getDate()+' '+this.months[dtToday.getMonth()]+' ':this.months[dtToday.getMonth()]+' '+dtToday.getDate()+', ')+dtToday.getFullYear()+'</a></td></tr></tfoot><tbody>';var tmpFrom=parseInt(''+this.dateFromYear+this.dateFromMonth+this.dateFromDay,10);var tmpTo=parseInt(''+this.dateToYear+this.dateToMonth+this.dateToDay,10);var tmpCompare;for(var j=1;j<=6;j++){tmpStr+='<tr>';for(i=1;i<=7;i++){var bShowDay=true;var sTitle='';for(h=0;h<aHolidays.length;h++){if(aHolidays[h].date.getDate()==iCount){if(!this.showHolidays)bShowDay=false;sTitle=aHolidays[h].desc}}tmpStr+='<td ';if((7*(j-1)+i)>=iFirstDOM+1&&iCount<=iDaysInMonth){if(iCount==this.day&&this.year==this.oYear&&this.month==this.oMonth){tmpStr+='class="calHighlightColor"'}else if(i==7-g_startDay||i==((7-g_startDay)%7)+1){tmpStr+='class="calWeekend"'}tmpStr+='>';if(this.dayMask[i-1]==0){bShowDay=false}else{tmpCompare=parseInt(''+this.year+this.padZero(this.month)+this.padZero(iCount),10);if(!(tmpCompare>=tmpFrom&&tmpCompare<=tmpTo)){bShowDay=false}}if(bShowDay){if(iCount==this.tDay&&this.year==this.tYear&&this.month==this.tMonth){tmpStr+='<a class="today"'+(sTitle==''?'':' title="'+sTitle+'"')+' href="javascript: g_Calendar.clickDay('+iCount+');"><strong>'+iCount+'</strong></a>'}else{tmpStr+='<a'+(sTitle==''?'':' title="'+sTitle+'"')+' href="javascript: g_Calendar.clickDay('+iCount+');">'+iCount+'</a>'}}else{if(iCount==this.tDay&&this.year==this.tYear&&this.month==this.tMonth){tmpStr+='<span'+(sTitle==''?'':' title="'+sTitle+'"')+' class="disabled today"><strong>'+iCount+'</strong></span>'}else{tmpStr+='<span'+(sTitle==''?'':' title="'+sTitle+'"')+' class="disabled">'+iCount+'</span>'}}iCount++}else{if(i==7-g_startDay||i==((7-g_startDay)%7)+1){tmpStr+='class="calWeekend"'}tmpStr+=(sTitle==''?'':' title="'+sTitle+'"')+'>&nbsp;'}tmpStr+='</td>'}tmpStr+='</tr>'}tmpStr+='</tbody>';tmpStr+='</table>';return tmpStr};Calendar.prototype.setDateFormat=function(dateFormat){this.dateFormat=dateFormat||'m/d/yyyy';dp_dateFormat=this.dateFormat};Calendar.prototype.setDayMask=function(mask){var j=this.dayMask.length>mask.length?mask.length:this.dayMask.length;for(var i=0;i<j;i++)this.dayMask[i]=mask[i];return this.dayMask};Calendar.prototype.setHolidays=function(obj,bShow){this.Holidays=obj;this.showHolidays=bShow;return obj};Calendar.prototype.getFirstDOM=function(){var thedate=new Date();thedate.setDate(1);thedate.setMonth(this.month);thedate.setFullYear(this.year);return thedate.getDay()};Calendar.prototype.getDaysInMonth=function(){if(this.month!=1){return this.daysInMonth[this.month]}if(this.isLeapYear(this.year)){return 29}return 28};Calendar.prototype.isLeapYear=function(year){if(year%4==0&&((year%100!=0)||(year%400==0))){return true}else{return false}};Calendar.prototype.selectChange=function(el){this.month=el.selectedIndex;this.writeString(this.buildString())};Calendar.prototype.inputChange=function(el){var tmp=el;if(tmp.value>=1900&&tmp.value<=2100){this.year=tmp.value;this.writeString(this.buildString())}else{tmp.value=this.year}};Calendar.prototype.changeYear=function(incr){if(incr==1){this.year++}else{this.year--}this.writeString(this.buildString())};Calendar.prototype.changeMonth=function(incr){if(this.month==11&&incr==1){this.month=0;this.year++}else if(this.month==0&&incr==-1){this.month=11;this.year--}else if(incr==1){this.month++}else{this.month--}this.writeString(this.buildString())};Calendar.prototype.clickDay=function(day){var el=document.getElementById(this.target);if(el){el.value=this.formatDateAsString(day,this.month,this.year);if(magicDate){magicDate(el)}el.className="formtext";el.focus()}this.hide()};Calendar.prototype.clickMonth=function(month){this.month=month;this.writeString(this.buildString())};Calendar.prototype.clickYear=function(year){this.year=year;this.writeString(this.buildString())};Calendar.prototype.clickToday=function(){var theDate=new Date();this.year=theDate.getFullYear();this.month=theDate.getMonth();this.writeString(this.buildString())};Calendar.prototype.formatDateAsString=function(day,month,year){var delim=eval('/\\'+this.dateDelim+'/g');switch(this.dateFormat.replace(delim,"")){case'ddmmmyyyy':return this.padZero(day)+this.dateDelim+this.months[month].substr(0,3)+this.dateDelim+year;case'dmmmyyyy':return day+this.dateDelim+this.months[month].substr(0,3)+this.dateDelim+year;case'ddmmyyyy':return this.padZero(day)+this.dateDelim+this.padZero(month+1)+this.dateDelim+year;case'dmmyyyy':return day+this.dateDelim+this.padZero(month+1)+this.dateDelim+year;case'mmddyyyy':return this.padZero((month+1))+this.dateDelim+this.padZero(day)+this.dateDelim+year;case'mddyyyy':return(month+1)+this.dateDelim+this.padZero(day)+this.dateDelim+year;case'mdyyyy':return(month+1)+this.dateDelim+day+this.dateDelim+year;case'yyyymmdd':return year+this.dateDelim+this.padZero(month+1)+this.dateDelim+this.padZero(day);default:return(month+1)+this.dateDelim+this.padZero(day)+this.dateDelim+year}};Calendar.prototype.writeString=function(str){this.containerLayer.innerHTML=str};Calendar.prototype.hide=function(){calendarClearTimeout();this.containerLayer.style.visibility='hidden'};Calendar.prototype.isVisible=function(){return this.containerLayer.style.visibility=='visible'?true:false};Calendar.prototype.isHidden=function(){return this.containerLayer.style.visibility=='hidden'?true:false};Calendar.prototype.padZero=function(num){return((num<=9)?("0"+num):num)};Calendar.prototype.getWindowHeight=function(){var windowHeight=0;if(typeof(window.innerHeight)=='number'){windowHeight=window.innerHeight}else if(document.documentElement&&document.documentElement.clientHeight){windowHeight=document.documentElement.clientHeight}else if(document.body&&document.body.clientHeight){windowHeight=document.body.clientHeight}return windowHeight};Calendar.prototype.openMenu=function(e){var el=document.getElementById(e);if(!el){return}if(el.className=="open"){el.className=""}else{el.className="open"}};Calendar.prototype.closeMenu=function(e){var el=document.getElementById(e);if(!el){return}el.className=""};Calendar.prototype.openMenuMonths=function(){this.closeMenu('cp_years');this.openMenu('cp_months')};Calendar.prototype.openMenuYears=function(){this.closeMenu('cp_months');this.openMenu('cp_years')};Calendar.prototype.closeMenus=function(){this.closeMenu('cp_years');this.closeMenu('cp_months')};Calendar.prototype.handleClick=function(e){if(!e){e=window.event}if(e.target){elSrc=e.target}else if(e.srcElement){elSrc=e.srcElement}if(e.pageX||e.pageY){x=e.pageX;y=e.pageY}else if(e.clientX||e.clientY){x=e.clientX+document.body.scrollLeft;y=e.clientY+document.body.scrollTop}if(y>parseInt(g_Calendar.containerLayer.style.top,10)+20){g_Calendar.closeMenus()}e.cancelBubble=true;if(e.stopPropagation){e.stopPropagation()}};function calendarTimeout(){if(cp_timeoutDelay){cp_timeoutId=setTimeout('g_Calendar.hide();',cp_timeoutDelay)}}function calendarClearTimeout(){if(cp_timeoutId){clearTimeout(cp_timeoutId)}}function cp_handleDocumentClick(e){var elSrc,x,y;if(!g_Calendar.containerLayer){return}if(g_Calendar.isHidden()){return}g_Calendar.hide()}Date.prototype.addDays=function(num){return new Date((num*(1000*60*60*24))+this.valueOf())};new Calendar(new Date());window.document.onclick=cp_handleDocumentClick;Array.prototype.indexOf=function(item){for(var i=0;i<this.length;i++){if(this[i]==item){return i;}}
return-1;};Array.prototype.filter=function(test){var matches=[];for(var i=0;i<this.length;i++){if(test(this[i])){matches[matches.length]=this[i];}}
return matches;};var monthNames="January February March April May June July August September October November December".split(" ");var weekdayNames="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" ");function parseMonth(month){var matches=monthNames.filter(function(item){return new RegExp("^"+month,"i").test(item);});if(matches.length==0){throw new Error("Invalid month string");}
if(matches.length>1){throw new Error("Ambiguous month");}
return monthNames.indexOf(matches[0]);}
function parseWeekday(weekday){var matches=weekdayNames.filter(function(item){return new RegExp("^"+weekday,"i").test(item);});if(matches.length==0){throw new Error("Invalid day string");}
if(matches.length>1){throw new Error("Ambiguous weekday");}
return weekdayNames.indexOf(matches[0]);}
var dateParsePatterns=[{re:/^tod/i,handler:function(){return new Date();}},{re:/^tom/i,handler:function(){var d=new Date();d.setDate(d.getDate()+1);return d;}},{re:/^yes/i,handler:function(){var d=new Date();d.setDate(d.getDate()-1);return d;}},{re:/^(\d{1,2})(st|nd|rd|th)?$/i,handler:function(bits){var d=new Date();d.setDate(parseInt(bits[1],10));return d;}},{re:/^(\d{1,2})(?:st|nd|rd|th)? (\w+)$/i,handler:function(bits){var d=new Date();d.setDate(1);d.setMonth(parseMonth(bits[2]));d.setDate(parseInt(bits[1],10));return d;}},{re:/^(\d{1,2})(?:st|nd|rd|th)? (\w+),? (\d{4})$/i,handler:function(bits){var d=new Date();d.setDate(1);d.setYear(bits[3]);d.setMonth(parseMonth(bits[2]));d.setDate(parseInt(bits[1],10));return d;}},{re:/^(\w+) (\d{1,2})(?:st|nd|rd|th)?$/i,handler:function(bits){var d=new Date();d.setDate(1);d.setMonth(parseMonth(bits[1]));d.setDate(parseInt(bits[2],10));return d;}},{re:/^(\w+) (\d{1,2})(?:st|nd|rd|th)?,? (\d{4})$/i,handler:function(bits){var d=new Date();d.setDate(1);d.setYear(bits[3]);d.setMonth(parseMonth(bits[1]));d.setDate(parseInt(bits[2],10));return d;}},{re:/^ne(?:xt)* (\w+)$/i,handler:function(bits){var d=new Date();var wd=d.getDay();var nwd=parseWeekday(bits[1]);var addDays=nwd-wd;if(nwd<=wd||(addDays+wd<7)){addDays+=7;}
if(1==addDays){addDays+=7;}
d.setDate(d.getDate()+addDays);return d;}},{re:/^la(?:st)* (\w+)$/i,handler:function(bits){var d=new Date();var wd=d.getDay();var nwd=parseWeekday(bits[1]);var addDays=(-1*(wd+7-nwd))%7;if(0==addDays){addDays=-7;}else if(-1==addDays){addDays-=7;}
d.setDate(d.getDate()+addDays);return d;}},{re:/^th(?:is)* (\w+)$/i,handler:function(bits){var d=new Date();var wd=d.getDay();var nwd=parseWeekday(bits[1]);var addDays=nwd-wd;if(nwd<=wd){addDays+=7;}
d.setDate(d.getDate()+addDays);return d;}},{re:/^fir(?:st)* (\w+)$/i,handler:function(bits){var d=new Date();d.setDate(1);var day=d.getDay();var newDay=parseWeekday(bits[1]);if(day==newDay){return d;}
var addDays=newDay-day;if(newDay<day){addDays+=7;}
d.setDate(d.getDate()+addDays);return d;}},{re:/^sec(?:ond)* (\w+)$/i,handler:function(bits){var d=new Date();d.setDate(1);var day=d.getDay();var newDay=parseWeekday(bits[1]);var addDays=newDay-day;if(newDay<day){addDays+=7;}
addDays+=7;d.setDate(d.getDate()+addDays);return d;}},{re:/^thi(?:rd)* (\w+)$/i,handler:function(bits){var d=new Date();d.setDate(1);var day=d.getDay();var newDay=parseWeekday(bits[1]);var addDays=newDay-day;if(newDay<day){addDays+=7;}
addDays+=14;d.setDate(d.getDate()+addDays);return d;}},{re:/^fo(?:urth)* (\w+)$/i,handler:function(bits){var d=new Date();d.setDate(1);var day=d.getDay();var newDay=parseWeekday(bits[1]);var addDays=newDay-day;if(newDay<day){addDays+=7;}
addDays+=21;d.setDate(d.getDate()+addDays);return d;}},{re:/^fi(?:fth)* (\w+)$/i,handler:function(bits){var d=new Date();d.setDate(1);var day=d.getDay();var newDay=parseWeekday(bits[1]);var addDays=newDay-day;if(newDay<day){addDays+=7;}
addDays+=28;d.setDate(d.getDate()+addDays);return d;}},{re:/(\d{1,2})\/(\d{1,2})\/(\d{4})/,handler:function(bits){var d=new Date();d.setDate(1);if(!dp_dateFormat||dp_dateFormat.substr(0,1)=='m'){d.setYear(bits[3]);d.setMonth(parseInt(bits[1],10)-1);d.setDate(parseInt(bits[2],10));}else{d.setYear(bits[3]);d.setMonth(parseInt(bits[2],10)-1);d.setDate(parseInt(bits[1],10));}
return d;}},{re:/(\d{1,2})-(\d{1,2})-(\d{4})/,handler:function(bits){var d=new Date();d.setDate(1);if(!dp_dateFormat||dp_dateFormat.substr(0,1)=='m'){d.setYear(bits[3]);d.setMonth(parseInt(bits[1],10)-1);d.setDate(parseInt(bits[2],10));}else{d.setYear(bits[3]);d.setMonth(parseInt(bits[2],10)-1);d.setDate(parseInt(bits[1],10));}
return d;}},{re:/(\d{1,2})\.(\d{1,2})\.(\d{4})/,handler:function(bits){var d=new Date();d.setDate(1);if(!dp_dateFormat||dp_dateFormat.substr(0,1)=='m'){d.setYear(bits[3]);d.setMonth(parseInt(bits[1],10)-1);d.setDate(parseInt(bits[2],10));}else{d.setYear(bits[3]);d.setMonth(parseInt(bits[2],10)-1);d.setDate(parseInt(bits[1],10));}
return d;}},{re:/(\d{4})-(\d{1,2})-(\d{1,2})/,handler:function(bits){var d=new Date();d.setDate(1);d.setYear(parseInt(bits[1],10));d.setMonth(parseInt(bits[2],10)-1);d.setDate(parseInt(bits[3],10));return d;}}];function parseDateString(s){for(var i=0;i<dateParsePatterns.length;i++){var re=dateParsePatterns[i].re;var handler=dateParsePatterns[i].handler;var bits=re.exec(s);if(bits){return handler(bits);}}
throw new Error("Invalid date string");}
var dp_dateFormat;function dp_DateString(d){var dateDelim,delim;dp_dateFormat=dp_dateFormat||'m/d/yyyy';if(dp_dateFormat.indexOf('/')!=-1){delim=eval('/\\//g');dateDelim='/';}else if(dp_dateFormat.indexOf('-')!=-1){delim=eval('/\\-/g');dateDelim='-';}else if(dp_dateFormat.indexOf('.')!=-1){delim=eval('/\\./g');dateDelim='.';}else{delim=eval('/\\ /g');dateDelim=' ';}
var month,day,year;month=d.getMonth();day=d.getDate();year=d.getFullYear();switch(dp_dateFormat.replace(delim,"")){case'ddmmmyyyy':return dp_padZero(day)+dateDelim+monthNames[month].substr(0,3)+dateDelim+year;case'dmmmyyyy':return day+dateDelim+monthNames[month].substr(0,3)+dateDelim+year;case'ddmmyyyy':return dp_padZero(day)+dateDelim+dp_padZero(month+1)+dateDelim+year;case'dmmyyyy':return day+dateDelim+dp_padZero(month+1)+dateDelim+year;case'mmddyyyy':return dp_padZero((month+1))+dateDelim+dp_padZero(day)+dateDelim+year;case'mddyyyy':return(month+1)+dateDelim+dp_padZero(day)+dateDelim+year;case'mdyyyy':return(month+1)+dateDelim+day+dateDelim+year;case'yyyymmdd':return year+dateDelim+dp_padZero(month+1)+dateDelim+dp_padZero(day);default:return(month+1)+dateDelim+day+dateDelim+year;}}
function dp_padZero(n){return((n<=9)?("0"+n):n);}
function magicDate(input,required){if(!required&&input.value==''){return true;}
var bRet=true;var messagespan=input.id+'Msg';try{var d=parseDateString(input.value);input.value=dp_DateString(d);var el=document.getElementById(messagespan);if(el){el.firstChild.nodeValue=d.toDateString();}else{d.toDateString();}}
catch(e){input.className='error';var message=e.message;if(!message.length||message.indexOf('is null or not an object')>-1){message='Invalid date string';}
var el=document.getElementById(messagespan);if(el){el.firstChild.nodeValue=message;}else{alert(message);}
bRet=false;}
return bRet;}
try{if(addEvent){var sEventType;;try{if(addDOMLoadEvent)
sEventType="DOMContentLoaded";}
catch(e){sEventType="load";}
addEvent(window,sEventType,function(){var els=document.getElementsByTagName("input");for(var i=0;i<els.length;i++){if(/\bdateparse\b/.test(els[i].className)){addEvent(els[i],"blur",function(){magicDate(this);});addEvent(els[i],"focus",function(){if(this.className!='error')this.select();});}}});}}
catch(e){}
function returnDatePart(dateid,part){var splitString;var theString=document.getElementById(dateid).value;splitString=theString.split("/")
if(splitString.length!=3)
return false;else
return(splitString[part]*1);}
function assembleDate(dateid1,dateid2){var t,seperator,date1,date2,date1Month,date1Date,date1Year
seperator="/";date1=document.getElementById(dateid1).value;date2=document.getElementById(dateid2).value;date1Month=returnDatePart(dateid1,0);date1Date=returnDatePart(dateid1,1);date1Year=returnDatePart(dateid1,2);if(!date1Month||!date1Date||!date1Year)
t=new Date();else
t=new Date(date1Year,(date1Month*1-1),date1Date);t=t.addDays(1);tStr=(t.getMonth()*1+1)+'/'+t.getDate()+'/';if((t.getYear()*1)>1900)
tStr=tStr+(t.getYear()*1);else
tStr=tStr+(t.getYear()*1+1900);if(compareDates(date1,date2,seperator)!=-1)
document.getElementById(dateid2).value=tStr;return t;}
function compareDates(value1,value2,sep){var date1,date2;var month1,month2;var year1,year2;month1=value1.substring(0,value1.indexOf(sep));date1=value1.substring(value1.indexOf(sep)+1,value1.lastIndexOf(sep));year1=value1.substring(value1.lastIndexOf(sep)+1,value1.length);month2=value2.substring(0,value2.indexOf(sep));date2=value2.substring(value2.indexOf(sep)+1,value2.lastIndexOf(sep));year2=value2.substring(value2.lastIndexOf(sep)+1,value2.length);month1=month1*1;month2=month2*1;date1=date1*1;date2=date2*1;year1=year1*1;year2=year2*1;if(year1>year2)return 1;else if(year1<year2)return-1;else if(month1>month2)return 1;else if(month1<month2)return-1;else if(date1>date2)return 1;else if(date1<date2)return-1;else return 0;}
