var DatePicker={version:0.31,constantHeight:true,useDropForYear:false,useDropForMonth:false,yearsPriorInDrop:10,yearsNextInDrop:10,year:new Date().getFullYear(),firstDayOfWeek:0,abbreviateMonthInLink:true,abbreviateYearInLink:false,showDaySuffixInLink:false,showDaySuffixInCalendar:false,largeCellSize:22,urlBase:null,showCancelLink:true,_priorLinkText:[],_priorDate:[],months:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),days:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),toggleDatePicker:function(b){var a=this.findCalendarElement(b);if(a.style.display=="block"){a.style.display="none"}else{a.style.display="block";this._priorLinkText[b]=this.findLinkElement(b).innerHTML;this._priorDate[b]=document.getElementById(b).value;this.writeCalendar(b)}},cancel:function(a){this.findLinkElement(a).innerHTML=this._priorLinkText[a];document.getElementById(a).value=this._priorDate[a];this.findCalendarElement(a).style.display="none"},unclipDates:function(b,a){if(a.getDate()!=b.getDate()){a=new Date(a.getFullYear(),a.getMonth(),0)}return a},changeCalendar:function(e,c){var b=this.getSelectedDate(e),a;if(c%12==0){a=new Date(b.getFullYear()+c/12,b.getMonth(),b.getDate())}else{if(b.getMonth()==0&&c==-1){a=new Date(b.getFullYear()-1,11,b.getDate())}else{a=new Date(b.getFullYear(),b.getMonth()+c,b.getDate())}}a=this.unclipDates(b,a);ansi_date=a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate();this.setDate(e,ansi_date);this.writeCalendar(e)},setDate:function(f,e){var c=(this.showDaySuffixInLink?this.formatDay(e.split("-")[2]):e.split("-")[2]);var b=(this.abbreviateYearInLink?e.split("-")[0].substring(2,4):e.split("-")[0]);var a=this.getMonthName(Number(e.split("-")[1])-1);if(this.abbreviateMonthInLink){a=a.substring(0,3)}document.getElementById(f).value=e;this.findLinkElement(f).innerHTML=c+" "+a+" "+b},pickDate:function(b,a){this.setDate(b,a);this.toggleDatePicker(b);if(this.urlBase){document.location.href=this.urlBase+a}},getMonthName:function(a){return this.months[a]},dateFromAnsiDate:function(a){return new Date(a.split("-")[0],Number(a.split("-")[1])-1,a.split("-")[2])},ansiDateFromDate:function(a){alert(a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate())},getSelectedDate:function(a){if(document.getElementById(a).value==""){return new Date()}return this.dateFromAnsiDate(document.getElementById(a).value)},makeChangeCalendarLink:function(c,a,b){return('<a href="#" onclick="DatePicker.changeCalendar(\''+c+"',"+b+')">'+a+"</a>")},formatDay:function(b){var a;switch(String(b)){case"1":case"21":case"31":a="st";break;case"2":case"22":a="nd";break;case"3":case"23":a="rd";break;default:a="th"}return b+a},writeMonth:function(c,b){if(this.useDropForMonth){var a="";for(i in this.months){sel=(i==this.getSelectedDate(c).getMonth()?'selected="selected" ':"");a+="<option "+sel+'value="'+i+'">'+this.getMonthName(i)+"</option>"}return"<select onchange=\"DatePicker.selectMonth('"+c+"', this.value)\">"+a+"</select>"}else{return this.getMonthName(b)}},writeYear:function(f,e){if(this.useDropForYear){var b=this.year-this.yearsPriorInDrop;var a=this.year+this.yearsNextInDrop;var c="";for(i=b;i<a;i++){sel=(i==this.getSelectedDate(f).getFullYear()?'selected="selected" ':"");c+="<option "+sel+'value="'+i+'">'+i+"</option>"}return"<select onchange=\"DatePicker.selectYear('"+f+"', this.value)\">"+c+"</select>"}else{return e}},selectMonth:function(b,a){d=this.getSelectedDate(b);d2=new Date(d.getFullYear(),a,d.getDate());d2=this.unclipDates(d,d2);this.setDate(b,d2.getFullYear()+"-"+(Number(a)+1)+"-"+d2.getDate());this.writeCalendar(b)},selectYear:function(b,a){d=this.getSelectedDate(b);d2=new Date(a,d.getMonth(),d.getDate());d2=this.unclipDates(d,d2);this.setDate(b,a+"-"+(d2.getMonth()+1)+"-"+d2.getDate());this.writeCalendar(b)},writeCalendar:function(a){var e=this.getSelectedDate(a);var j=new Date(e.getFullYear(),e.getMonth(),1).getDay();var g=new Date(e.getFullYear(),e.getMonth()+1,0).getDate();var h=1;this.findLinkElement(a).innerHTML=this.findLinkElement(a).innerHTML;var c='<table cellspacing="1">';c+="<thead><tr>";c+='<th style="text-align:left">'+this.makeChangeCalendarLink(a,"&lt;",-1)+'</th><th colspan="5">'+(this.showDaySuffixInCalendar?this.formatDay(e.getDate()):e.getDate())+" "+this.writeMonth(a,e.getMonth())+'</th><th style="text-align:right">'+this.makeChangeCalendarLink(a,"&gt;",1)+"</th>";c+="</tr><tr>";c+='<th colspan="2" style="text-align:left">'+this.makeChangeCalendarLink(a,"&lt;&lt;",-12)+'</th><th colspan="3">'+this.writeYear(a,e.getFullYear())+'</th><th colspan="2" style="text-align:right">'+this.makeChangeCalendarLink(a,"&gt;&gt;",12)+"</th>";c+='</tr><tr class="day_labels">';for(var f=0;f<this.days.length;f++){c+="<th>"+this.days[(f+this.firstDayOfWeek)%7]+"</th>"}c+="</tr></thead>";if(this.showCancelLink){c+='<tfoot><tr><td colspan="7"><div class="cancel_butt"><a href="#" onclick="DatePicker.cancel(\''+a+"')\">[x] cancel</a></div></td></tr></tfoot>"}c+="<tbody>";for(rows=1;rows<7&&(this.constantHeight||h<g);rows++){c+="<tr>";for(var b=0;b<this.days.length;b++){var k=(this.firstDayOfWeek+b)%7;if((k>=j||h>1)&&(h<=g)){args=[a,(e.getFullYear()+"-"+(e.getMonth()+1)+"-"+h)];style=(this.selectMonth?'style="width: '+this.largeCellSize+'px"':"");c+="<td "+style+'><a href="#" onclick="DatePicker.pickDate(\''+args.join("','")+"'); return false;\">"+h+"</a></td>";h++}else{c+="<td>&nbsp;</td>"}}c+="</tr></tbody>"}c+="</table>";this.findCalendarElement(a).innerHTML=c},findCalendarElement:function(a){return document.getElementById("_"+a+"_calendar")},findLinkElement:function(a){return document.getElementById("_"+a+"_link")}};