/*  Copyright Mihai Bazon, 2002-2005  |  www.bazon.net/mishoo
 * -----------------------------------------------------------
 *
 * The DHTML Calendar, version 1.0 "It is happening again"
 * Modified/corrected by Beat (search for "/*BB")
 * Details and latest version at:
 * www.dynarch.com/projects/calendar
 *
 * This script is developed by Dynarch.com.  Visit us at www.dynarch.com.
 *
 * This script is distributed under the GNU Lesser General Public License.
 * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
 */Calendar=function(a,b,c,d){this.activeDiv=null,this.currentDateEl=null,this.getDateStatus=null,this.getDateToolTip=null,this.getDateText=null,this.timeout=null,this.onSelected=c||null,this.onClose=d||null,this.dragging=!1,this.hidden=!1,this.minYear=1900,this.maxYear=2999,this.dateFormat=Calendar._TT.DEF_DATE_FORMAT,this.ttDateFormat=Calendar._TT.TT_DATE_FORMAT,this.isPopup=!0,this.weekNumbers=!0,this.firstDayOfWeek=typeof a=="number"?a:Calendar._FD,this.showsOtherMonths=!1,this.dateStr=b,this.ar_days=null,this.showsTime=!1,this.time24=!0,this.yearStep=2,this.hiliteToday=!0,this.multiple=null,this.table=null,this.element=null,this.tbody=null,this.firstdayname=null,this.monthsCombo=null,this.yearsCombo=null,this.hilitedMonth=null,this.activeMonth=null,this.hilitedYear=null,this.activeYear=null,this.dateClicked=!1;if(typeof Calendar._SDN=="undefined"){typeof Calendar._SDN_len=="undefined"&&(Calendar._SDN_len=3);var e=[];for(var f=8;f>0;)e[--f]=Calendar._DN[f].substr(0,Calendar._SDN_len);Calendar._SDN=e,typeof Calendar._SMN_len=="undefined"&&(Calendar._SMN_len=3),e=[];for(var f=12;f>0;)e[--f]=Calendar._MN[f].substr(0,Calendar._SMN_len);Calendar._SMN=e}},Calendar._C=null,Calendar.is_ie=/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent),Calendar.is_ie5=Calendar.is_ie&&/msie 5\.0/i.test(navigator.userAgent),Calendar.is_opera=/opera/i.test(navigator.userAgent),Calendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent),Calendar.getAbsolutePos=function(a){var b=0,c=0,d=/^div$/i.test(a.tagName);d&&a.scrollLeft&&(b=a.scrollLeft),d&&a.scrollTop&&(c=a.scrollTop);var e={x:a.offsetLeft-b,y:a.offsetTop-c};if(a.offsetParent){var f=this.getAbsolutePos(a.offsetParent);e.x+=f.x,e.y+=f.y}return e},Calendar.isRelated=function(a,b){var c=b.relatedTarget;if(!c){var d=b.type;d=="mouseover"?c=b.fromElement:d=="mouseout"&&(c=b.toElement)}while(c){if(c==a)return!0;c=c.parentNode}return!1},Calendar.removeClass=function(a,b){if(a&&a.className){var c=a.className.split(" "),d=[];for(var e=c.length;e>0;)c[--e]!=b&&(d[d.length]=c[e]);a.className=d.join(" ")}},Calendar.addClass=function(a,b){Calendar.removeClass(a,b),a.className+=" "+b},Calendar.getElement=function(a){var b=Calendar.is_ie?window.event.srcElement:a.currentTarget;while(b.nodeType!=1||/^div$/i.test(b.tagName))b=b.parentNode;return b},Calendar.getTargetElement=function(a){var b=Calendar.is_ie?window.event.srcElement:a.target;while(b.nodeType!=1)b=b.parentNode;return b},Calendar.stopEvent=function(a){a||(a=window.event),Calendar.is_ie?(a.cancelBubble=!0,a.returnValue=!1):(a.preventDefault(),a.stopPropagation());return!1},Calendar.addEvent=function(a,b,c){a.attachEvent?a.attachEvent("on"+b,c):a.addEventListener?a.addEventListener(b,c,!0):a["on"+b]=c},Calendar.removeEvent=function(a,b,c){a.detachEvent?a.detachEvent("on"+b,c):a.removeEventListener?a.removeEventListener(b,c,!0):a["on"+b]=null},Calendar.createElement=function(a,b){var c=null;document.createElementNS?c=document.createElementNS("http://www.w3.org/1999/xhtml",a):c=document.createElement(a),typeof b!="undefined"&&b.appendChild(c);return c},Calendar._add_evs=function(el){with(Calendar)addEvent(el,"mouseover",dayMouseOver),addEvent(el,"mousedown",dayMouseDown),addEvent(el,"mouseout",dayMouseOut),is_ie&&(addEvent(el,"dblclick",dayMouseDblClick),el.setAttribute("unselectable",!0))},Calendar.findMonth=function(a){if(typeof a.month!="undefined")return a;if(typeof a.parentNode.month!="undefined")return a.parentNode;return null},Calendar.findYear=function(a){if(typeof a.year!="undefined")return a;if(typeof a.parentNode.year!="undefined")return a.parentNode;return null},Calendar.showMonthsCombo=function(){var a=Calendar._C;if(!a)return!1;var a=a,b=a.activeDiv,c=a.monthsCombo;a.hilitedMonth&&Calendar.removeClass(a.hilitedMonth,"hilite"),a.activeMonth&&Calendar.removeClass(a.activeMonth,"active");var d=a.monthsCombo.getElementsByTagName("div")[a.date.getMonth()];Calendar.addClass(d,"active"),a.activeMonth=d;var e=c.style;e.display="block";if(b.navtype<0)e.left=b.offsetLeft+"px";else{var f=c.offsetWidth;typeof f=="undefined"&&(f=50),e.left=b.offsetLeft+b.offsetWidth-f+"px"}e.top=b.offsetTop+b.offsetHeight+"px"},Calendar.showYearsCombo=function(a){var b=Calendar._C;if(!b)return!1;var b=b,c=b.activeDiv,d=b.yearsCombo;b.hilitedYear&&Calendar.removeClass(b.hilitedYear,"hilite"),b.activeYear&&Calendar.removeClass(b.activeYear,"active"),b.activeYear=null;var e=b.date.getFullYear()+(a?1:-1),f=d.firstChild,g=!1;for(var h=12;h>0;--h)e<b.minYear||e>b.maxYear?f.style.display="none":(f.innerHTML=e,f.year=e,f.style.display="block",g=!0),f=f.nextSibling,e+=a?b.yearStep:-b.yearStep;if(g){var i=d.style;i.display="block";if(c.navtype<0)i.left=c.offsetLeft+"px";else{var j=d.offsetWidth;typeof j=="undefined"&&(j=50),i.left=c.offsetLeft+c.offsetWidth-j+"px"}i.top=c.offsetTop+c.offsetHeight+"px"}},Calendar.tableMouseUp=function(ev){var cal=Calendar._C;if(!cal)return!1;cal.timeout&&clearTimeout(cal.timeout);var el=cal.activeDiv;if(!el)return!1;var target=Calendar.getTargetElement(ev);ev||(ev=window.event),Calendar.removeClass(el,"active"),(target==el||target.parentNode==el)&&Calendar.cellClick(el,ev);var mon=Calendar.findMonth(target),date=null;if(mon)date=new Date(cal.date),mon.month!=date.getMonth()&&(date.setMonth(mon.month),cal.setDate(date),cal.dateClicked=!1,cal.callHandler());else{var year=Calendar.findYear(target);year&&(date=new Date(cal.date),year.year!=date.getFullYear()&&(date.setFullYear(year.year),cal.setDate(date),cal.dateClicked=!1,cal.callHandler()))}with(Calendar){removeEvent(document,"mouseup",tableMouseUp),removeEvent(document,"mouseover",tableMouseOver),removeEvent(document,"mousemove",tableMouseOver),cal._hideCombos(),_C=null;return stopEvent(ev)}},Calendar.tableMouseOver=function(a){var b=Calendar._C;if(b){var c=b.activeDiv,d=Calendar.getTargetElement(a);d==c||d.parentNode==c?(Calendar.addClass(c,"hilite active"),Calendar.addClass(c.parentNode,"rowhilite")):((typeof c.navtype=="undefined"||c.navtype!=50&&(c.navtype==0||Math.abs(c.navtype)>2))&&Calendar.removeClass(c,"active"),Calendar.removeClass(c,"hilite"),Calendar.removeClass(c.parentNode,"rowhilite")),a||(a=window.event);if(c.navtype==50&&d!=c){var e=Calendar.getAbsolutePos(c),f=c.offsetWidth,g=a.clientX,h,i=!0;g>e.x+f?(h=g-e.x-f,i=!1):h=e.x-g,h<0&&(h=0);var j=c._range,k=c._current,l=Math.floor(h/10)%j.length;for(var m=j.length;--m>=0;)if(j[m]==k)break;while(l-->0)i?--m<0&&(m=j.length-1):++m>=j.length&&(m=0);var n=j[m];c.innerHTML=n,b.onUpdateTime()}var o=Calendar.findMonth(d);if(o)o.month!=b.date.getMonth()?(b.hilitedMonth&&Calendar.removeClass(b.hilitedMonth,"hilite"),Calendar.addClass(o,"hilite"),b.hilitedMonth=o):b.hilitedMonth&&Calendar.removeClass(b.hilitedMonth,"hilite");else{b.hilitedMonth&&Calendar.removeClass(b.hilitedMonth,"hilite");var p=Calendar.findYear(d);p?p.year!=b.date.getFullYear()?(b.hilitedYear&&Calendar.removeClass(b.hilitedYear,"hilite"),Calendar.addClass(p,"hilite"),b.hilitedYear=p):b.hilitedYear&&Calendar.removeClass(b.hilitedYear,"hilite"):b.hilitedYear&&Calendar.removeClass(b.hilitedYear,"hilite")}return Calendar.stopEvent(a)}},Calendar.tableMouseDown=function(a){if(Calendar.getTargetElement(a)==Calendar.getElement(a))return Calendar.stopEvent(a)},Calendar.calDragIt=function(a){var b=Calendar._C;if(!b||!b.dragging)return!1;var c,d;Calendar.is_ie||Calendar.is_khtml?(d=window.event.clientY+document.body.scrollTop,c=window.event.clientX+document.body.scrollLeft):(c=a.pageX,d=a.pageY),b.hideShowCovered();var e=b.element.style;e.left=c-b.xOffs+"px",e.top=d-b.yOffs+"px";return Calendar.stopEvent(a)},Calendar.calDragEnd=function(ev){var cal=Calendar._C;if(!cal)return!1;cal.dragging=!1;with(Calendar)removeEvent(document,"mousemove",calDragIt),removeEvent(document,"mouseup",calDragEnd),tableMouseUp(ev);cal.hideShowCovered()},Calendar.dayMouseDown=function(ev){var el=Calendar.getElement(ev);if(el.disabled)return!1;var cal=el.calendar;cal.activeDiv=el,Calendar._C=cal;if(el.navtype!=300)with(Calendar)el.navtype==50?(el._current=el.innerHTML,addEvent(document,"mousemove",tableMouseOver)):addEvent(document,Calendar.is_ie5?"mousemove":"mouseover",tableMouseOver),addClass(el,"hilite active"),addEvent(document,"mouseup",tableMouseUp);else cal.isPopup&&cal._dragStart(ev);el.navtype==-1||el.navtype==1?(cal.timeout&&clearTimeout(cal.timeout),cal.timeout=setTimeout("Calendar.showMonthsCombo()",250)):el.navtype==-2||el.navtype==2?(cal.timeout&&clearTimeout(cal.timeout),cal.timeout=setTimeout(el.navtype>0?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250)):cal.timeout=null;return Calendar.stopEvent(ev)},Calendar.dayMouseDblClick=function(a){Calendar.cellClick(Calendar.getElement(a),a||window.event),Calendar.is_ie&&document.selection.empty()},Calendar.dayMouseOver=function(a){var b=Calendar.getElement(a);if(Calendar.isRelated(b,a)||Calendar._C||b.disabled)return!1;b.ttip&&(b.ttip.substr(0,1)=="_"&&(b.ttip=b.caldate.print(b.calendar.ttDateFormat)+b.ttip.substr(1)),b.calendar.tooltips.innerHTML=b.ttip),b.navtype!=300&&(Calendar.addClass(b,"hilite"),b.caldate&&Calendar.addClass(b.parentNode,"rowhilite"));return Calendar.stopEvent(a)},Calendar.dayMouseOut=function(ev){with(Calendar){var el=getElement(ev);if(isRelated(el,ev)||_C||el.disabled)return!1;removeClass(el,"hilite"),el.caldate&&removeClass(el.parentNode,"rowhilite"),el.calendar&&(el.calendar.tooltips.innerHTML=_TT.SEL_DATE);return stopEvent(ev)}},Calendar.cellClick=function(a,b){var c=a.calendar,d=!1,e=!1,f=null;if(typeof a.navtype=="undefined"){c.currentDateEl&&(Calendar.removeClass(c.currentDateEl,"selected"),Calendar.addClass(a,"selected"),d=c.currentDateEl==a,d||(c.currentDateEl=a)),c.date.setDateOnly(a.caldate),f=c.date;var g=!(c.dateClicked=!a.otherMonth);g||c.currentDateEl?e=!a.disabled:c._toggleMultipleDate(new Date(f)),g&&c._init(c.firstDayOfWeek,f)}else{if(a.navtype==200){Calendar.removeClass(a,"hilite"),c.callCloseHandler();return}f=new Date(c.date),a.navtype==0&&f.setDateOnly(new Date),c.dateClicked=!1;var h=f.getFullYear(),i=f.getMonth();function j(a){var b=f.getDate(),c=f.getMonthDays(a);b>c&&f.setDate(c),f.setMonth(a)}switch(a.navtype){case 400:Calendar.removeClass(a,"hilite");var k=Calendar._TT.ABOUT;typeof k!="undefined"?k+=c.showsTime?Calendar._TT.ABOUT_TIME:"":k='Help and about box text is not translated into this language.\nIf you know this language and you feel generous please update\nthe corresponding file in "lang" subdir to match calendar-en.js\nand send it back to <mihai_bazon@yahoo.com> to get it into the distribution  ;-)\n\nThank you!\nhttp://dynarch.com/mishoo/calendar.epl\n',alert(k);return;case-2:h>c.minYear&&f.setFullYear(h-1);break;case-1:i>0?j(i-1):h-->c.minYear&&(f.setFullYear(h),j(11));break;case 1:i<11?j(i+1):h<c.maxYear&&(f.setFullYear(h+1),j(0));break;case 2:h<c.maxYear&&f.setFullYear(h+1);break;case 100:c.setFirstDayOfWeek(a.fdow);return;case 50:var l=a._range,m=a.innerHTML;for(var n=l.length;--n>=0;)if(l[n]==m)break;b&&b.shiftKey?--n<0&&(n=l.length-1):++n>=l.length&&(n=0);var o=l[n];a.innerHTML=o,c.onUpdateTime();return;case 0:if(typeof c.getDateStatus=="function"&&c.getDateStatus(f,f.getFullYear(),f.getMonth(),f.getDate()))return!1}f.equalsTo(c.date)?a.navtype==0&&(e=d=!0):(c.setDate(f),e=!0)}e&&(b&&c.callHandler()),d&&(Calendar.removeClass(a,"hilite"),b&&c.callCloseHandler())},Calendar.prototype.create=function(a){var b=null;a?(b=a,this.isPopup=!1):(b=document.getElementsByTagName("body")[0],this.isPopup=!0),this.date=this.dateStr?new Date(this.dateStr):new Date;var c=Calendar.createElement("table");this.table=c,c.cellSpacing=0,c.cellPadding=0,c.calendar=this,Calendar.addEvent(c,"mousedown",Calendar.tableMouseDown);var d=Calendar.createElement("div");this.element=d,d.className="calendar",this.isPopup&&(d.style.position="absolute",d.style.display="none",d.style.zIndex="32003"),d.appendChild(c);var e=Calendar.createElement("thead",c),f=null,g=null,h=this,i=function(a,b,c){f=Calendar.createElement("td",g),f.colSpan=b,f.className="button",c!=0&&Math.abs(c)<=2&&(f.className+=" nav"),Calendar._add_evs(f),f.calendar=h,f.navtype=c,f.innerHTML="<div unselectable='on'>"+a+"</div>";return f};g=Calendar.createElement("tr",e);var j=6;this.isPopup&&--j,this.weekNumbers&&++j,i("?",1,400).ttip=Calendar._TT.INFO,this.title=i("",j,300),this.title.className="title",this.isPopup&&(this.title.ttip=Calendar._TT.DRAG_TO_MOVE,this.title.style.cursor="move",i("&#x00d7;",1,200).ttip=Calendar._TT.CLOSE),g=Calendar.createElement("tr",e),g.className="headrow",this._nav_py=i("&#x00ab;",1,-2),this._nav_py.ttip=Calendar._TT.PREV_YEAR,this._nav_pm=i("&#x2039;",1,-1),this._nav_pm.ttip=Calendar._TT.PREV_MONTH,this._nav_now=i(Calendar._TT.TODAY,this.weekNumbers?4:3,0),this._nav_now.ttip=Calendar._TT.GO_TODAY,this._nav_nm=i("&#x203a;",1,1),this._nav_nm.ttip=Calendar._TT.NEXT_MONTH,this._nav_ny=i("&#x00bb;",1,2),this._nav_ny.ttip=Calendar._TT.NEXT_YEAR,g=Calendar.createElement("tr",e),g.className="daynames",this.weekNumbers&&(f=Calendar.createElement("td",g),f.className="name wn",f.innerHTML=Calendar._TT.WK);for(var k=7;k>0;--k)f=Calendar.createElement("td",g),k||(f.navtype=100,f.calendar=this,Calendar._add_evs(f));this.firstdayname=this.weekNumbers?g.firstChild.nextSibling:g.firstChild,this._displayWeekdays();var l=Calendar.createElement("tbody",c);this.tbody=l;for(k=6;k>0;--k){g=Calendar.createElement("tr",l),this.weekNumbers&&(f=Calendar.createElement("td",g));for(var m=7;m>0;--m)f=Calendar.createElement("td",g),f.calendar=this,Calendar._add_evs(f)}this.showsTime?(g=Calendar.createElement("tr",l),g.className="time",f=Calendar.createElement("td",g),f.className="time",f.colSpan=2,f.innerHTML=Calendar._TT.TIME||"&nbsp;",f=Calendar.createElement("td",g),f.className="time",f.colSpan=this.weekNumbers?4:3,function(){function a(a,b,c,d){var e=Calendar.createElement("span",f);e.className=a,e.innerHTML=b,e.calendar=h,e.ttip=Calendar._TT.TIME_PART,e.navtype=50,e._range=[];if(typeof c!="number")e._range=c;else for(var g=c;g<=d;++g){var i;g<10&&d>=10?i="0"+g:i=""+g,e._range[e._range.length]=i}Calendar._add_evs(e);return e}var b=h.date.getHours(),c=h.date.getMinutes(),d=!h.time24,e=b>12;d&&e&&(b-=12);var i=a("hour",b,d?1:0,d?12:23),j=Calendar.createElement("span",f);j.innerHTML=":",j.className="colon";var k=a("minute",c,0,59),l=null;f=Calendar.createElement("td",g),f.className="time",f.colSpan=2,d?l=a("ampm",e?"pm":"am",["am","pm"]):f.innerHTML="&nbsp;",h.onSetTime=function(){var a,b=this.date.getHours(),c=this.date.getMinutes();d&&(a=b>=12,a&&(b-=12),b==0&&(b=12),l.innerHTML=a?"pm":"am"),i.innerHTML=b<10?"0"+b:b,k.innerHTML=c<10?"0"+c:c},h.onUpdateTime=function(){var a=this.date,b=parseInt(i.innerHTML,10);d&&(/pm/i.test(l.innerHTML)&&b<12?b+=12:/am/i.test(l.innerHTML)&&b==12&&(b=0));var c=a.getDate(),e=a.getMonth(),f=a.getFullYear();a.setHours(b),a.setMinutes(parseInt(k.innerHTML,10)),a.setFullYear(f),a.setMonth(e),a.setDate(c),this.dateClicked=!1,this.callHandler()}}()):this.onSetTime=this.onUpdateTime=function(){};var n=Calendar.createElement("tfoot",c);g=Calendar.createElement("tr",n),g.className="footrow",f=i(Calendar._TT.SEL_DATE,this.weekNumbers?8:7,300),f.className="ttip",this.isPopup&&(f.ttip=Calendar._TT.DRAG_TO_MOVE,f.style.cursor="move"),this.tooltips=f,d=Calendar.createElement("div",this.element),this.monthsCombo=d,d.className="combo";for(k=0;k<Calendar._MN.length;++k){var o=Calendar.createElement("div");o.className=Calendar.is_ie?"label-IEfix":"label",o.month=k,o.innerHTML=Calendar._SMN[k],d.appendChild(o)}d=Calendar.createElement("div",this.element),this.yearsCombo=d,d.className="combo";for(k=12;k>0;--k){var p=Calendar.createElement("div");p.className=Calendar.is_ie?"label-IEfix":"label",d.appendChild(p)}this._init(this.firstDayOfWeek,this.date),b.appendChild(this.element)},Calendar._keyEvent=function(a){var b=window._dynarch_popupCalendar;if(!b||b.multiple)return!1;Calendar.is_ie&&(a=window.event);var c=Calendar.is_ie||a.type=="keypress",d=a.keyCode;if(a.ctrlKey)switch(d){case 37:c&&Calendar.cellClick(b._nav_pm);break;case 38:c&&Calendar.cellClick(b._nav_py);break;case 39:c&&Calendar.cellClick(b._nav_nm);break;case 40:c&&Calendar.cellClick(b._nav_ny);break;default:return!1}else switch(d){case 32:Calendar.cellClick(b._nav_now);break;case 27:c&&b.callCloseHandler();break;case 37:case 38:case 39:case 40:if(c){var e,f,g,h,i,j;e=d==37||d==38,j=d==37||d==39?1:7;function k(){i=b.currentDateEl;var a=i.pos;f=a&15,g=a>>4,h=b.ar_days[g][f]}k();function l(){var a=new Date(b.date);a.setDate(a.getDate()-j),b.setDate(a)}function m(){var a=new Date(b.date);a.setDate(a.getDate()+j),b.setDate(a)}while(1){switch(d){case 37:if(--f<0){f=6,d=38;continue}h=b.ar_days[g][f];break;case 38:--g<0?(l(),k()):h=b.ar_days[g][f];break;case 39:if(++f<7)h=b.ar_days[g][f];else{f=0,d=40;continue}break;case 40:++g<b.ar_days.length?h=b.ar_days[g][f]:(m(),k())}break}h&&(h.disabled?e?l():m():Calendar.cellClick(h))}break;case 13:c&&Calendar.cellClick(b.currentDateEl,a);break;default:return!1}return Calendar.stopEvent(a)},Calendar.prototype._init=function(a,b){var c=new Date,d=c.getFullYear(),e=c.getMonth(),f=c.getDate();this.table.style.visibility="hidden";var g=b.getFullYear();g<this.minYear?(g=this.minYear,b.setFullYear(g)):g>this.maxYear&&(g=this.maxYear,b.setFullYear(g)),this.firstDayOfWeek=a,this.date=new Date(b);var h=b.getMonth(),i=b.getDate(),j=b.getMonthDays();b.setDate(1);var k=(b.getDay()-this.firstDayOfWeek)%7;k<0&&(k+=7),b.setDate(-k),b.setDate(b.getDate()+1);var l=this.tbody.firstChild,m=Calendar._SMN[h],n=this.ar_days=[],o=Calendar._TT.WEEKEND,p=this.multiple?this.datesCells={}:null;for(var q=0;q<6;++q,l=l.nextSibling){var r=l.firstChild;this.weekNumbers&&(r.className="day wn",r.innerHTML=b.getWeekNumber(),r=r.nextSibling),l.className="daysrow";var s=!1,t,u=n[q]=[];for(var v=0;v<7;++v,r=r.nextSibling,b.setDate(t+1)){t=b.getDate();var w=b.getDay();r.className="day",r.pos=q<<4|v,u[v]=r;var x=b.getMonth()==h;if(x)r.otherMonth=!1,s=!0;else if(this.showsOtherMonths)r.className+=" othermonth",r.otherMonth=!0;else{r.className="emptycell",r.innerHTML="&nbsp;",r.disabled=!0;continue}r.disabled=!1,r.innerHTML=this.getDateText?this.getDateText(b,t):t,p&&(p[b.print("%Y%m%d")]=r);if(this.getDateStatus){var y=this.getDateStatus(b,g,h,t);if(this.getDateToolTip){var z=this.getDateToolTip(b,g,h,t);z&&(r.title=z)}y===!0?(r.className+=" disabled",r.disabled=!0):(/disabled/i.test(y)&&(r.disabled=!0),r.className+=" "+y)}r.disabled||(r.caldate=new Date(b),r.ttip="_",!this.multiple&&x&&t==i&&this.hiliteToday&&(r.className+=" selected",this.currentDateEl=r),b.getFullYear()==d&&b.getMonth()==e&&t==f&&(r.className+=" today",r.ttip+=Calendar._TT.PART_TODAY),o.indexOf(w+"")!=-1&&(r.className+=r.otherMonth?" oweekend":" weekend"))}!s&&!this.showsOtherMonths&&(l.className="emptyrow")}this.title.innerHTML=Calendar._MN[h]+", "+g,this.onSetTime(),this.table.style.visibility="visible",this._initMultipleDates()},Calendar.prototype._initMultipleDates=function(){if(this.multiple)for(var a in this.multiple){var b=this.datesCells[a],c=this.multiple[a];if(!c)continue;b&&(b.className+=" selected")}},Calendar.prototype._toggleMultipleDate=function(a){if(this.multiple){var b=a.print("%Y%m%d"),c=this.datesCells[b];if(c){var d=this.multiple[b];d?(Calendar.removeClass(c,"selected"),delete this.multiple[b]):(Calendar.addClass(c,"selected"),this.multiple[b]=a)}}},Calendar.prototype.setDateToolTipHandler=function(a){this.getDateToolTip=a},Calendar.prototype.setDate=function(a){a.equalsTo(this.date)||this._init(this.firstDayOfWeek,a)},Calendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date)},Calendar.prototype.setFirstDayOfWeek=function(a){this._init(a,this.date),this._displayWeekdays()},Calendar.prototype.setDateStatusHandler=Calendar.prototype.setDisabledHandler=function(a){this.getDateStatus=a},Calendar.prototype.setRange=function(a,b){this.minYear=a,this.maxYear=b},Calendar.prototype.callHandler=function(){this.onSelected&&this.onSelected(this,this.date.print(this.dateFormat))},Calendar.prototype.callCloseHandler=function(){this.onClose&&this.onClose(this),this.hideShowCovered()},Calendar.prototype.destroy=function(){var a=this.element.parentNode;a.removeChild(this.element),Calendar._C=null,window._dynarch_popupCalendar=null},Calendar.prototype.reparent=function(a){var b=this.element;b.parentNode.removeChild(b),a.appendChild(b)},Calendar._checkCalendar=function(a){var b=window._dynarch_popupCalendar;if(!b)return!1;var c=Calendar.is_ie?Calendar.getElement(a):Calendar.getTargetElement(a);for(;c!=null&&c!=b.element;c=c.parentNode);if(c==null){window._dynarch_popupCalendar.callCloseHandler();return Calendar.stopEvent(a)}},Calendar.prototype.show=function(){var a=this.table.getElementsByTagName("tr");for(var b=a.length;b>0;){var c=a[--b];Calendar.removeClass(c,"rowhilite");var d=c.getElementsByTagName("td");for(var e=d.length;e>0;){var f=d[--e];Calendar.removeClass(f,"hilite"),Calendar.removeClass(f,"active")}}this.element.style.display="block",this.hidden=!1,this.isPopup&&(window._dynarch_popupCalendar=this,Calendar.addEvent(document,"keydown",Calendar._keyEvent),Calendar.addEvent(document,"keypress",Calendar._keyEvent),Calendar.addEvent(document,"mousedown",Calendar._checkCalendar)),this.hideShowCovered()},Calendar.prototype.hide=function(){this.isPopup&&(Calendar.removeEvent(document,"keydown",Calendar._keyEvent),Calendar.removeEvent(document,"keypress",Calendar._keyEvent),Calendar.removeEvent(document,"mousedown",Calendar._checkCalendar)),this.element.style.display="none",this.hidden=!0,this.hideShowCovered()},Calendar.prototype.showAt=function(a,b){var c=this.element.style;c.left=a+"px",c.top=b+"px",this.show()},Calendar.prototype.showAtElement=function(a,b){function e(a){a.x<0&&(a.x=0),a.y<0&&(a.y=0);var b=document.createElement("div"),c=b.style;c.position="absolute",c.right=c.bottom=c.width=c.height="0px",document.body.appendChild(b);var d=Calendar.getAbsolutePos(b);document.body.removeChild(b),Calendar.is_ie?(d.y+=document.body.scrollTop,d.x+=document.body.scrollLeft):(d.y+=window.scrollY,d.x+=window.scrollX);var e=a.x+a.width-d.x;e>0&&(a.x-=e),e=a.y+a.height-d.y,e>0&&(a.y-=e)}var c=this,d=Calendar.getAbsolutePos(a);if(!b||typeof b!="string"){this.showAt(d.x,d.y+a.offsetHeight);return!0}this.element.style.display="block",Calendar.continuation_for_the_fucking_khtml_browser=function(){var f=c.element.offsetWidth,g=c.element.offsetHeight;c.element.style.display="none";var h=b.substr(0,1),i="l";b.length>1&&(i=b.substr(1,1));switch(h){case"T":d.y-=g;break;case"B":d.y+=a.offsetHeight;break;case"C":d.y+=(a.offsetHeight-g)/2;break;case"t":d.y+=a.offsetHeight-g;break;case"b":}switch(i){case"L":d.x-=f;break;case"R":d.x+=a.offsetWidth;break;case"C":d.x+=(a.offsetWidth-f)/2;break;case"l":d.x+=a.offsetWidth-f;break;case"r":}d.width=f,d.height=g+40,c.monthsCombo.style.display="none",e(d),c.showAt(d.x,d.y)},Calendar.continuation_for_the_fucking_khtml_browser()},Calendar.prototype.setDateFormat=function(a){this.dateFormat=a},Calendar.prototype.setTtDateFormat=function(a){this.ttDateFormat=a},Calendar.prototype.parseDate=function(a,b){b||(b=this.dateFormat),this.setDate(Date.parseDate(a,b))},Calendar.prototype.hideShowCovered=function(){function a(a){var b=a.style.visibility;b||(document.defaultView&&typeof document.defaultView.getComputedStyle=="function"?Calendar.is_khtml?b="":b=document.defaultView.getComputedStyle(a,"").getPropertyValue("visibility"):a.currentStyle?b=a.currentStyle.visibility:b="");return b}if(Calendar.is_ie){var b=Array("select"),c=this.element,d=Calendar.getAbsolutePos(c),e=d.x,f=c.offsetWidth+e,g=d.y,h=c.offsetHeight+g;for(var i=b.length;i>0;){var j=document.getElementsByTagName(b[--i]),k=null;for(var l=j.length;l>0;){k=j[--l],d=Calendar.getAbsolutePos(k);var m=d.x,n=k.offsetWidth+m,o=d.y,p=k.offsetHeight+o;this.hidden||m>f||n<e||o>h||p<g?(k.__msh_save_visibility||(k.__msh_save_visibility=a(k)),k.style.visibility=k.__msh_save_visibility):(k.__msh_save_visibility||(k.__msh_save_visibility=a(k)),k.style.visibility="hidden")}}}},Calendar.prototype._displayWeekdays=function(){var a=this.firstDayOfWeek,b=this.firstdayname,c=Calendar._TT.WEEKEND;for(var d=0;d<7;++d){b.className="day name";var e=(d+a)%7;d&&(b.ttip=Calendar._TT.DAY_FIRST.replace("%s",Calendar._DN[e]),b.navtype=100,b.calendar=this,b.fdow=e,Calendar._add_evs(b)),c.indexOf(e+"")!=-1&&Calendar.addClass(b,"weekend"),b.innerHTML=Calendar._SDN[(d+a)%7],b=b.nextSibling}},Calendar.prototype._hideCombos=function(){this.monthsCombo.style.display="none",this.yearsCombo.style.display="none"},Calendar.prototype._dragStart=function(ev){if(!this.dragging){this.dragging=!0;var posX,posY;Calendar.is_ie||Calendar.is_khtml?(posY=window.event.clientY+document.body.scrollTop,posX=window.event.clientX+document.body.scrollLeft):(posY=ev.clientY+window.scrollY,posX=ev.clientX+window.scrollX);var st=this.element.style;this.xOffs=posX-parseInt(st.left),this.yOffs=posY-parseInt(st.top);with(Calendar)addEvent(document,"mousemove",calDragIt),addEvent(document,"mouseup",calDragEnd)}},Date._MD=[31,28,31,30,31,30,31,31,30,31,30,31],Date.SECOND=1e3,Date.MINUTE=60*Date.SECOND,Date.HOUR=60*Date.MINUTE,Date.DAY=24*Date.HOUR,Date.WEEK=7*Date.DAY,Date.parseDate=function(a,b){var c=new Date,d=0,e=-1,f=0,g=a.split(/\W+/),h=b.match(/%./g),i=0,j=0,k=0,l=0;for(i=0;i<g.length;++i){if(!g[i])continue;switch(h[i]){case"%d":case"%e":f=parseInt(g[i],10);break;case"%m":e=parseInt(g[i],10)-1;break;case"%Y":case"%y":d=parseInt(g[i],10),d<100&&(d+=d>29?1900:2e3);break;case"%b":case"%B":for(j=0;j<12;++j)if(Calendar._MN[j].substr(0,g[i].length).toLowerCase()==g[i].toLowerCase()){e=j;break}break;case"%H":case"%I":case"%k":case"%l":k=parseInt(g[i],10);break;case"%P":case"%p":/pm/i.test(g[i])&&k<12?k+=12:/am/i.test(g[i])&&k>=12&&(k-=12);break;case"%M":l=parseInt(g[i],10)}}isNaN(d)&&(d=c.getFullYear()),isNaN(e)&&(e=c.getMonth()),isNaN(f)&&(f=c.getDate()),isNaN(k)&&(k=c.getHours()),isNaN(l)&&(l=c.getMinutes());if(d!=0&&e!=-1&&f!=0)return new Date(d,e,f,k,l,0);d=0,e=-1,f=0;for(i=0;i<g.length;++i)if(g[i].search(/[a-zA-Z]+/)!=-1){var m=-1;for(j=0;j<12;++j)if(Calendar._MN[j].substr(0,g[i].length).toLowerCase()==g[i].toLowerCase()){m=j;break}m!=-1&&(e!=-1&&(f=e+1),e=m)}else parseInt(g[i],10)>12||e!=-1?parseInt(g[i],10)>31&&d==0?(d=parseInt(g[i],10),d<100&&(d+=d>29?1900:2e3)):f==0&&(f=g[i]):e=g[i]-1;d==0&&(d=c.getFullYear());if(e!=-1&&f!=0)return new Date(d,e,f,k,l,0);return c},Date.prototype.getMonthDays=function(a){var b=this.getFullYear();typeof a=="undefined"&&(a=this.getMonth());return 0!=b%4||0==b%100&&0!=b%400||a!=1?Date._MD[a]:29},Date.prototype.getDayOfYear=function(){var a=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0),b=new Date(this.getFullYear(),0,0,0,0,0),c=a-b;return Math.floor(c/Date.DAY)},Date.prototype.getWeekNumber=function(){var a=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0),b=a.getDay();a.setDate(a.getDate()-(b+6)%7+3);var c=a.valueOf();a.setMonth(0),a.setDate(4);return Math.round((c-a.valueOf())/6048e5)+1},Date.prototype.equalsTo=function(a){return this.getFullYear()==a.getFullYear()&&this.getMonth()==a.getMonth()&&this.getDate()==a.getDate()&&this.getHours()==a.getHours()&&this.getMinutes()==a.getMinutes()},Date.prototype.setDateOnly=function(a){var b=new Date(a);this.setDate(1),this.setFullYear(b.getFullYear()),this.setMonth(b.getMonth()),this.setDate(b.getDate())},Date.prototype.print=function(a){var b=this.getMonth(),c=this.getDate(),d=this.getFullYear(),e=this.getWeekNumber(),f=this.getDay(),g={},h=this.getHours(),i=h>=12,j=i?h-12:h,k=this.getDayOfYear();j==0&&(j=12);var l=this.getMinutes(),m=this.getSeconds();g["%a"]=Calendar._SDN[f],g["%A"]=Calendar._DN[f],g["%b"]=Calendar._SMN[b],g["%B"]=Calendar._MN[b],g["%C"]=1+Math.floor(d/100),g["%d"]=c<10?"0"+c:c,g["%e"]=c,g["%H"]=h<10?"0"+h:h,g["%I"]=j<10?"0"+j:j,g["%j"]=k<100?k<10?"00"+k:"0"+k:k,g["%k"]=h,g["%l"]=j,g["%m"]=b<9?"0"+(1+b):1+b,g["%M"]=l<10?"0"+l:l,g["%n"]="\n",g["%p"]=i?"PM":"AM",g["%P"]=i?"pm":"am",g["%s"]=Math.floor(this.getTime()/1e3),g["%S"]=m<10?"0"+m:m,g["%t"]="\t",g["%U"]=g["%W"]=g["%V"]=e<10?"0"+e:e,g["%u"]=f+1,g["%w"]=f,g["%y"]=(""+d).substr(2,2),g["%Y"]=d,g["%%"]="%";var n=/%./g;if(!Calendar.is_ie5&&!Calendar.is_khtml)return a.replace(n,function(a){return g[a]||a});var o=a.match(n);for(var p=0;p<o.length;p++){var q=g[o[p]];q&&(n=new RegExp(o[p],"g"),a=a.replace(n,q))}return a},Date.prototype.__msh_oldSetFullYear==null&&(Date.prototype.__msh_oldSetFullYear=Date.prototype.setFullYear),Date.prototype.setFullYear=function(a){var b=new Date(this);b.__msh_oldSetFullYear(a),b.getMonth()!=this.getMonth()&&this.setDate(28),this.__msh_oldSetFullYear(a)},window._dynarch_popupCalendar=null
