Calendar=function(a,b,c,d){this.timeout=this.getDateText=this.getDateToolTip=this.getDateStatus=this.currentDateEl=this.activeDiv=null;this.onSelected=c||null;this.onClose=d||null;this.hidden=this.dragging=!1;this.minYear=1970;this.maxYear=2050;this.dateFormat=Calendar._TT.DEF_DATE_FORMAT;this.ttDateFormat=Calendar._TT.TT_DATE_FORMAT;this.weekNumbers=this.isPopup=!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.activeYear=this.hilitedYear=this.activeMonth=this.hilitedMonth=this.yearsCombo=this.monthsCombo=this.firstdayname=this.tbody=this.element=this.table=this.multiple=null;this.dateClicked=!1;if(typeof Calendar._SDN=="undefined"){if(typeof Calendar._SDN_len=="undefined")Calendar._SDN_len=3;a=[];for(b=8;b>0;)a[--b]=Calendar._DN[b].substr(0,Calendar._SDN_len);Calendar._SDN=a;if(typeof Calendar._SMN_len=="undefined")Calendar._SMN_len=3;a=[];for(b=12;b>0;)a[--b]=Calendar._MN[b].substr(0,Calendar._SMN_len);Calendar._SMN=a}};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.is_gecko=navigator.userAgent.match(/gecko/i);Calendar.getStyle=function(a,b){if(a.currentStyle)var c=a.currentStyle[b];else window.getComputedStyle&&(c=document.defaultView.getComputedStyle(a,null).getPropertyValue(b));return c};Calendar.getAbsolutePos=function(a){var b={x:0,y:0};do if(b.x+=a.offsetLeft||0,b.y+=a.offsetTop||0,a=a.offsetParent){if(a.tagName.toUpperCase()=="BODY")break;var c=Calendar.getStyle(a,"position");if(c!=="static"&&c!=="relative")break}while(a);return b};Calendar.isRelated=function(a,b){var c=b.relatedTarget;if(!c){var d=b.type;if(d=="mouseover")c=b.fromElement;else if(d=="mouseout")c=b.toElement}for(;c;){if(c==a)return!0;c=c.parentNode}return!1};Calendar.removeClass=function(a,b){if(a&&a.className){for(var c=a.className.split(" "),d=[],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){for(a=Calendar.is_ie?window.event.srcElement:a.currentTarget;a.nodeType!=1||/^div$/i.test(a.tagName);)a=a.parentNode;return a};Calendar.getTargetElement=function(a){for(a=Calendar.is_ie?window.event.srcElement:a.target;a.nodeType!=1;)a=a.parentNode;return a};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,c=document.createElementNS?document.createElementNS("http://www.w3.org/1999/xhtml",a):document.createElement(a);typeof b!="undefined"&&b.appendChild(c);return c};Calendar._add_evs=function(a){with(Calendar)addEvent(a,"mouseover",dayMouseOver),addEvent(a,"mousedown",dayMouseDown),addEvent(a,"mouseout",dayMouseOut),is_ie&&(addEvent(a,"dblclick",dayMouseDblClick),a.setAttribute("unselectable",!0))};Calendar.findMonth=function(a){if(typeof a.month!="undefined")return a;else if(typeof a.parentNode.month!="undefined")return a.parentNode;return null};Calendar.findYear=function(a){if(typeof a.year!="undefined")return a;else if(typeof a.parentNode.year!="undefined")return a.parentNode;return null};Calendar.showMonthsCombo=function(){var a=Calendar._C;if(!a)return!1;var 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;a=c.style;a.display="block";b.navtype<0?a.left=b.offsetLeft+"px":(c=c.offsetWidth,typeof c=="undefined"&&(c=50),a.left=b.offsetLeft+b.offsetWidth-c+"px");a.top=b.offsetTop+
b.offsetHeight+"px"};Calendar.showYearsCombo=function(a){var b=Calendar._C;if(!b)return!1;var c=b.activeDiv,d=b.yearsCombo;b.hilitedYear&&Calendar.removeClass(b.hilitedYear,"hilite");b.activeYear&&Calendar.removeClass(b.activeYear,"active");b.activeYear=null;for(var e=b.date.getFullYear()+(a?1:-1),g=d.firstChild,f=!1,h=12;h>0;--h)e>=b.minYear&&e<=b.maxYear?(g.innerHTML=e,g.year=e,g.style.display="block",f=!0):g.style.display="none",g=g.nextSibling,e+=a?b.yearStep:-b.yearStep;if(f)a=d.style,a.display="block",c.navtype<0?a.left=c.offsetLeft+"px":(d=d.offsetWidth,typeof d=="undefined"&&(d=50),a.left=c.offsetLeft+c.offsetWidth-d+"px"),a.top=c.offsetTop+c.offsetHeight+"px"};Calendar.tableMouseUp=function(a){var b=Calendar._C;if(!b)return!1;b.timeout&&clearTimeout(b.timeout);var c=b.activeDiv;if(!c)return!1;var d=Calendar.getTargetElement(a);a||(a=window.event);Calendar.removeClass(c,"active");(d==c||d.parentNode==c)&&Calendar.cellClick(c,a);var e=Calendar.findMonth(d),c=null;if(e){if(c=new CalendarDateObject(b.date),e.month!=c.getMonth())c.setMonth(e.month),b.setDate(c),b.dateClicked=!1,b.callHandler()}else if(d=Calendar.findYear(d))if(c=new CalendarDateObject(b.date),d.year!=c.getFullYear())c.setFullYear(d.year),b.setDate(c),b.dateClicked=!1,b.callHandler();with(Calendar)return removeEvent(document,"mouseup",tableMouseUp),removeEvent(document,"mouseover",tableMouseOver),removeEvent(document,"mousemove",tableMouseOver),b._hideCombos(),_C=null,stopEvent(a)};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),g=c.offsetWidth,f=a.clientX,h=!0;f>e.x+g?(f=f-e.x-g,h=!1):f=e.x-f;f<0&&(f=0);for(var e=c._range,g=c._current,f=Math.floor(f/10)%e.length,i=e.length;--i>=0;)if(e[i]==g)break;for(;f-->0;)h?--i<0&&(i=e.length-1):++i>=e.length&&(i=0);c.innerHTML=e[i];b.onUpdateTime()}(c=Calendar.findMonth(d))?c.month!=b.date.getMonth()?(b.hilitedMonth&&Calendar.removeClass(b.hilitedMonth,"hilite"),Calendar.addClass(c,"hilite"),b.hilitedMonth=c):b.hilitedMonth&&Calendar.removeClass(b.hilitedMonth,"hilite"):(b.hilitedMonth&&Calendar.removeClass(b.hilitedMonth,"hilite"),(d=Calendar.findYear(d))?d.year!=b.date.getFullYear()?(b.hilitedYear&&Calendar.removeClass(b.hilitedYear,"hilite"),Calendar.addClass(d,"hilite"),b.hilitedYear=d):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?(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(a){var b=Calendar._C;if(!b)return!1;b.dragging=!1;with(Calendar)removeEvent(document,"mousemove",calDragIt),removeEvent(document,"mouseup",calDragEnd),tableMouseUp(a);b.hideShowCovered()};Calendar.dayMouseDown=function(a){var b=Calendar.getElement(a);if(b.disabled)return!1;var c=b.calendar;c.activeDiv=b;Calendar._C=c;if(b.navtype!=300)with(Calendar)b.navtype==50?(b._current=b.innerHTML,addEvent(document,"mousemove",tableMouseOver)):addEvent(document,Calendar.is_ie5?"mousemove":"mouseover",tableMouseOver),addClass(b,"hilite active"),addEvent(document,"mouseup",tableMouseUp);else c.isPopup&&c._dragStart(a);b.navtype==-1||b.navtype==1?(c.timeout&&clearTimeout(c.timeout),c.timeout=setTimeout("Calendar.showMonthsCombo()",250)):b.navtype==-2||b.navtype==2?(c.timeout&&clearTimeout(c.timeout),c.timeout=setTimeout(b.navtype>0?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250)):c.timeout=null;return Calendar.stopEvent(a)};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;if(b.ttip){if(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(a){with(Calendar){var b=getElement(a);if(isRelated(b,a)||_C||b.disabled)return!1;removeClass(b,"hilite");b.caldate&&removeClass(b.parentNode,"rowhilite");if(b.calendar)b.calendar.tooltips.innerHTML=_TT.SEL_DATE;return stopEvent(a)}};Calendar.cellClick=function(a,b){var c=a.calendar,d=!1,e=!1,g=null;if(typeof a.navtype=="undefined"){if(c.currentDateEl&&(Calendar.removeClass(c.currentDateEl,"selected"),Calendar.addClass(a,"selected"),d=c.currentDateEl==a,!d))c.currentDateEl=a;c.date.setDateOnly(a.caldate);var g=c.date,f=!(c.dateClicked=!a.otherMonth);!f&&!c.currentDateEl?c._toggleMultipleDate(new CalendarDateObject(g)):e=!a.disabled;f&&c._init(c.firstDayOfWeek,g)}else{if(a.navtype==200){Calendar.removeClass(a,"hilite");c.callCloseHandler();return}g=new CalendarDateObject(c.date);a.navtype==0&&g.setDateOnly(new CalendarDateObject);c.dateClicked=!1;var f=g.getFullYear(),h=g.getMonth(),i=function(a){var b=g.getDate(),c=g.getMonthDays(a);b>c&&g.setDate(c);g.setMonth(a)};switch(a.navtype){case 400:Calendar.removeClass(a,"hilite");d=Calendar._TT.ABOUT;typeof d!="undefined"?d+=c.showsTime?Calendar._TT.ABOUT_TIME:"":d='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(d);return;case-2:f>c.minYear&&g.setFullYear(f-1);break;case-1:h>0?i(h-1):f-->c.minYear&&(g.setFullYear(f),i(11));break;case 1:h<11?i(h+1):f<c.maxYear&&(g.setFullYear(f+1),i(0));break;case 2:f<c.maxYear&&g.setFullYear(f+1);break;case 100:c.setFirstDayOfWeek(a.fdow);return;case 50:d=a._range;e=a.innerHTML;for(f=d.length;--f>=0;)if(d[f]==e)break;b&&b.shiftKey?--f<0&&(f=d.length-1):++f>=d.length&&(f=0);a.innerHTML=d[f];c.onUpdateTime();return;case 0:if(typeof c.getDateStatus=="function"&&c.getDateStatus(g,g.getFullYear(),g.getMonth(),g.getDate()))return!1}g.equalsTo(c.date)?a.navtype==0&&(e=d=!0):(c.setDate(g),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 CalendarDateObject(this.dateStr):new CalendarDateObject;this.table=a=Calendar.createElement("table");a.cellSpacing=0;a.cellPadding=0;a.calendar=this;Calendar.addEvent(a,"mousedown",Calendar.tableMouseDown);var c=Calendar.createElement("div");this.element=c;c.className="calendar";if(this.isPopup)c.style.position="absolute",c.style.display="none";c.appendChild(a);var d=Calendar.createElement("thead",a),e=null,g=null,f=this,c=function(a,b,c){e=Calendar.createElement("td",g);e.colSpan=b;e.className="button";c!=0&&Math.abs(c)<=2&&(e.className+=" nav");Calendar._add_evs(e);e.calendar=f;e.navtype=c;e.innerHTML="<div unselectable='on'>"+a+"</div>";return e},g=Calendar.createElement("tr",d),h=6;this.isPopup&&--h;this.weekNumbers&&++h;c("?",1,400).ttip=Calendar._TT.INFO;this.title=c("",h,300);this.title.className="title";if(this.isPopup)this.title.ttip=Calendar._TT.DRAG_TO_MOVE,this.title.style.cursor="move",c("&#x00d7;",1,200).ttip=Calendar._TT.CLOSE;g=Calendar.createElement("tr",d);g.className="headrow";this._nav_py=c("&#x00ab;",1,-2);this._nav_py.ttip=Calendar._TT.PREV_YEAR;this._nav_pm=c("&#x2039;",1,-1);this._nav_pm.ttip=Calendar._TT.PREV_MONTH;this._nav_now=c(Calendar._TT.TODAY,this.weekNumbers?4:3,0);this._nav_now.ttip=Calendar._TT.GO_TODAY;this._nav_nm=c("&#x203a;",1,1);this._nav_nm.ttip=Calendar._TT.NEXT_MONTH;this._nav_ny=c("&#x00bb;",1,2);this._nav_ny.ttip=Calendar._TT.NEXT_YEAR;g=Calendar.createElement("tr",d);g.className="daynames";if(this.weekNumbers)e=Calendar.createElement("td",g),e.className="name wn",e.innerHTML=Calendar._TT.WK;for(d=7;d>0;--d)if(e=Calendar.createElement("td",g),!d)e.navtype=100,e.calendar=this,Calendar._add_evs(e);this.firstdayname=this.weekNumbers?g.firstChild.nextSibling:g.firstChild;this._displayWeekdays();this.tbody=h=Calendar.createElement("tbody",a);for(d=6;d>0;--d){g=Calendar.createElement("tr",h);this.weekNumbers&&(e=Calendar.createElement("td",g));for(var i=7;i>0;--i)e=Calendar.createElement("td",g),e.calendar=this,Calendar._add_evs(e)}this.showsTime?(g=Calendar.createElement("tr",h),g.className="time",e=Calendar.createElement("td",g),e.className="time",e.colSpan=2,e.innerHTML=Calendar._TT.TIME||"&nbsp;",e=Calendar.createElement("td",g),e.className="time",e.colSpan=this.weekNumbers?4:3,function(){function a(b,c,d,g){var h=Calendar.createElement("span",e);h.className=b;h.innerHTML=c;h.calendar=f;h.ttip=Calendar._TT.TIME_PART;h.navtype=50;h._range=[];if(typeof d!="number")h._range=d;else for(b=d;b<=g;++b)h._range[h._range.length]=b<10&&g>=10?"0"+b:""+b;Calendar._add_evs(h);return h}var b=f.date.getHours(),c=f.date.getMinutes(),d=!f.time24,h=b>12;d&&h&&(b-=12);var i=a("hour",b,d?1:0,d?12:23),b=Calendar.createElement("span",e);b.innerHTML=":";b.className="colon";var n=a("minute",c,0,59),p=null;e=Calendar.createElement("td",g);e.className="time";e.colSpan=2;d?p=a("ampm",h?"pm":"am",["am","pm"]):e.innerHTML="&nbsp;";f.onSetTime=function(){var a,b=this.date.getHours(),c=this.date.getMinutes();if(d)(a=b>=12)&&(b-=12),b==0&&(b=12),p.innerHTML=a?"pm":"am";i.innerHTML=b<10?"0"+b:b;n.innerHTML=c<10?"0"+c:c};f.onUpdateTime=function(){var a=this.date,b=parseInt(i.innerHTML,10);d&&(/pm/i.test(p.innerHTML)&&b<12?b+=12:/am/i.test(p.innerHTML)&&b==12&&(b=0));var c=a.getDate(),e=a.getMonth(),f=a.getFullYear();a.setHours(b);a.setMinutes(parseInt(n.innerHTML,10));a.setFullYear(f);a.setMonth(e);a.setDate(c);this.dateClicked=!1;this.callHandler()}}()):this.onSetTime=this.onUpdateTime=function(){};a=Calendar.createElement("tfoot",a);g=Calendar.createElement("tr",a);g.className="footrow";e=c(Calendar._TT.SEL_DATE,this.weekNumbers?8:7,300);e.className="ttip";if(this.isPopup)e.ttip=Calendar._TT.DRAG_TO_MOVE,e.style.cursor="move";this.tooltips=e;this.monthsCombo=c=Calendar.createElement("div",this.element);c.className="combo";for(d=0;d<Calendar._MN.length;++d)a=Calendar.createElement("div"),a.className=Calendar.is_ie?"label-IEfix":"label",a.month=d,a.innerHTML=Calendar._SMN[d],c.appendChild(a);this.yearsCombo=c=Calendar.createElement("div",this.element);c.className="combo";for(d=12;d>0;--d)a=Calendar.createElement("div"),a.className=Calendar.is_ie?"label-IEfix":"label",c.appendChild(a);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,g,f,h,i,c=d==37||d==38;i=d==37||d==39?1:7;var j=function(){h=b.currentDateEl;var a=h.pos;e=a&15;g=a>>4;f=b.ar_days[g][e]};j();for(var l=function(){var a=new CalendarDateObject(b.date);a.setDate(a.getDate()-i);b.setDate(a)},m=function(){var a=new CalendarDateObject(b.date);a.setDate(a.getDate()+i);b.setDate(a)};;){switch(d){case 37:if(--e>=0)f=b.ar_days[g][e];else{e=6;d=38;continue}break;case 38:--g>=0?f=b.ar_days[g][e]:(l(),j());break;case 39:if(++e<7)f=b.ar_days[g][e];else{e=0;d=40;continue}break;case 40:++g<b.ar_days.length?f=b.ar_days[g][e]:(m(),j())}break}f&&(f.disabled?c?l():m():Calendar.cellClick(f))}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 CalendarDateObject,d=c.getFullYear(),e=c.getMonth(),c=c.getDate();this.table.style.visibility="hidden";var g=b.getFullYear();if(g<this.minYear)g=this.minYear,b.setFullYear(g);else if(g>this.maxYear)g=this.maxYear,b.setFullYear(g);this.firstDayOfWeek=a;this.date=new CalendarDateObject(b);var f=b.getMonth(),h=b.getDate();b.getMonthDays();b.setDate(1);var i=(b.getDay()-this.firstDayOfWeek)%7;i<0&&(i+=7);b.setDate(-i);b.setDate(b.getDate()+1);for(var i=this.tbody.firstChild,j=this.ar_days=[],l=Calendar._TT.WEEKEND,m=this.multiple?this.datesCells={}:null,o=0;o<6;++o,i=i.nextSibling){var k=i.firstChild;if(this.weekNumbers)k.className="day wn",k.innerHTML=b.getWeekNumber(),k=k.nextSibling;i.className="daysrow";for(var u=!1,n,p=j[o]=[],q=0;q<7;++q,k=k.nextSibling,b.setDate(n+1)){n=b.getDate();var v=b.getDay();k.className="day";k.pos=o<<4|q;p[q]=k;var s=b.getMonth()==f;if(s)k.otherMonth=!1,u=!0;else if(this.showsOtherMonths)k.className+=" othermonth",k.otherMonth=!0;else{k.className="emptycell";k.innerHTML="&nbsp;";k.disabled=!0;continue}k.disabled=!1;k.innerHTML=this.getDateText?this.getDateText(b,n):n;m&&(m[b.print("%Y%m%d")]=k);if(this.getDateStatus){var r=this.getDateStatus(b,g,f,n);if(this.getDateToolTip){var t=this.getDateToolTip(b,g,f,n);if(t)k.title=t}if(r===!0)k.className+=" disabled",k.disabled=!0;else{if(/disabled/i.test(r))k.disabled=!0;k.className+=" "+r}}if(!k.disabled){k.caldate=new CalendarDateObject(b);k.ttip="_";if(!this.multiple&&s&&n==h&&this.hiliteToday)k.className+=" selected",this.currentDateEl=k;b.getFullYear()==d&&b.getMonth()==e&&n==c&&(k.className+=" today",k.ttip+=Calendar._TT.PART_TODAY);l.indexOf(v.toString())!=-1&&(k.className+=k.otherMonth?" oweekend":" weekend")}}if(!u&&!this.showsOtherMonths)i.className="emptyrow"}this.title.innerHTML=Calendar._MN[f]+", "+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];this.multiple[a]&&b&&(b.className+=" selected")}};Calendar.prototype._toggleMultipleDate=function(a){if(this.multiple){var b=a.print("%Y%m%d"),c=this.datesCells[b];c&&(this.multiple[b]?(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(){if(this.onSelected)this.onSelected(this,this.date.print(this.dateFormat))};Calendar.prototype.callCloseHandler=function(){if(this.onClose)this.onClose(this);this.hideShowCovered()};Calendar.prototype.destroy=function(){this.element.parentNode.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;for(var c=Calendar.is_ie?Calendar.getElement(a):Calendar.getTargetElement(a);c!=null&&c!=b.element;c=c.parentNode);if(c==null)return window._dynarch_popupCalendar.callCloseHandler(),Calendar.stopEvent(a)};Calendar.prototype.show=function(){for(var a=this.table.getElementsByTagName("tr"),b=a.length;b>0;){var c=a[--b];Calendar.removeClass(c,"rowhilite");for(var c=c.getElementsByTagName("td"),d=c.length;d>0;){var e=c[--d];Calendar.removeClass(e,"hilite");Calendar.removeClass(e,"active")}}this.element.style.display="block";this.hidden=!1;if(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){var c=this,d=Calendar.getAbsolutePos(a);if(!b||typeof b!="string")return this.showAt(d.x,d.y+a.offsetHeight),!0;this.element.style.display="block";Calendar.continuation_for_the_fucking_khtml_browser=function(){var e=c.element.offsetWidth,g=c.element.offsetHeight;c.element.style.display="none";var f=b.substr(0,1),h="l";b.length>1&&(h=b.substr(1,1));switch(f){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}switch(h){case"L":d.x-=e;break;case"R":d.x+=a.offsetWidth;break;case"C":d.x+=(a.offsetWidth-e)/2;break;case"l":d.x+=a.offsetWidth-e}d.width=e;d.height=g+40;c.monthsCombo.style.display="none";if(d.x<0)d.x=0;if(d.y<0)d.y=0;e=document.createElement("div");g=e.style;g.position="absolute";g.right=g.bottom=g.width=g.height="0px";document.body.appendChild(e);g=Calendar.getAbsolutePos(e);document.body.removeChild(e);Calendar.is_ie?(g.y+=document.body.scrollTop,g.x+=document.body.scrollLeft):(g.y+=window.scrollY,g.x+=window.scrollX);e=d.x+d.width-g.x;e>0&&(d.x-=e);e=d.y+d.height-g.y;e>0&&(d.y-=e);c.showAt(d.x,d.y)};Calendar.is_khtml?setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()",10):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){if(!b)b=this.dateFormat;this.setDate(Date.parseDate(a,b))};Calendar.prototype.hideShowCovered=function(){function a(a){var b=a.style.visibility;b||(b=document.defaultView&&typeof document.defaultView.getComputedStyle=="function"?Calendar.is_khtml?"":document.defaultView.getComputedStyle(a,"").getPropertyValue("visibility"):a.currentStyle?a.currentStyle.visibility:"");return b}if(Calendar.is_ie||Calendar.is_opera)for(var b=["applet","iframe","select"],c=this.element,d=Calendar.getAbsolutePos(c),e=d.x,g=c.offsetWidth+e,f=d.y,c=c.offsetHeight+f,h=b.length;h>0;)for(var i=document.getElementsByTagName(b[--h]),j=null,l=i.length;l>0;){var j=i[--l],d=Calendar.getAbsolutePos(j),m=d.x,o=j.offsetWidth+m,d=d.y,k=j.offsetHeight+d;if(this.hidden||m>g||o<e||d>c||k<f){if(!j.__msh_save_visibility)j.__msh_save_visibility=a(j);j.style.visibility=j.__msh_save_visibility}else{if(!j.__msh_save_visibility)j.__msh_save_visibility=a(j);j.style.visibility="hidden"}}};Calendar.prototype._displayWeekdays=function(){for(var a=this.firstDayOfWeek,b=this.firstdayname,c=Calendar._TT.WEEKEND,d=0;d<7;++d){b.className="day name";var e=(d+a)%7;if(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.toString())!=-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(a){if(!this.dragging){this.dragging=!0;var b;Calendar.is_ie?(b=window.event.clientY+document.body.scrollTop,a=window.event.clientX+document.body.scrollLeft):(b=a.clientY+window.scrollY,a=a.clientX+window.scrollX);var c=this.element.style;this.xOffs=a-parseInt(c.left);this.yOffs=b-parseInt(c.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 CalendarDateObject,d=0,e=-1,g=0,f=a,h;for(h=0;h<Calendar._MN.length;h++)f=f.replace(Calendar._MN[h],enUS.m.wide[h]);for(h=0;h<Calendar._SMN.length;h++)f=f.replace(Calendar._SMN[h],enUS.m.abbr[h]);var f=f.replace(Calendar._am,"am"),f=f.replace(Calendar._am.toLowerCase(),"am"),f=f.replace(Calendar._pm,"pm"),f=f.replace(Calendar._pm.toLowerCase(),"pm"),f=f.split(/\W+/),i=b.match(/%./g),j=0,l=0,m=0;for(h=0;h<f.length;++h)if(f[h])switch(i[h]){case"%d":case"%e":g=parseInt(f[h],10);break;case"%m":e=parseInt(f[h],10)-1;break;case"%Y":case"%y":d=parseInt(f[h],10);d<100&&(d+=d>29?1900:2E3);break;case"%b":for(j=0;j<12;++j)if(enUS.m.abbr[j].substr(0,f[h].length).toLowerCase()==f[h].toLowerCase()){e=j;break}break;case"%B":for(j=0;j<12;++j)if(enUS.m.wide[j].substr(0,f[h].length).toLowerCase()==f[h].toLowerCase()){e=j;break}break;case"%H":case"%I":case"%k":case"%l":l=parseInt(f[h],10);break;case"%P":case"%p":/pm/i.test(f[h])&&l<12?l+=12:/am/i.test(f[h])&&l>=12&&(l-=12);break;case"%M":m=parseInt(f[h],10)}isNaN(d)&&(d=c.getFullYear());isNaN(e)&&(e=c.getMonth());isNaN(g)&&(g=c.getDate());isNaN(l)&&(l=c.getHours());isNaN(m)&&(m=c.getMinutes());if(d!=0&&e!=-1&&g!=0)return new CalendarDateObject(d,e,g,l,m,0);d=0;e=-1;for(h=g=0;h<f.length;++h)if(f[h].search(/[a-zA-Z]+/)!=-1){i=-1;for(j=0;j<12;++j)if(Calendar._MN[j].substr(0,f[h].length).toLowerCase()==f[h].toLowerCase()){i=j;break}i!=-1&&(e!=-1&&(g=e+1),e=i)}else parseInt(f[h],10)<=12&&e==-1?e=f[h]-1:parseInt(f[h],10)>31&&d==0?(d=parseInt(f[h],10),d<100&&(d+=d>29?1900:2E3)):g==0&&(g=f[h]);d==0&&(d=c.getFullYear());return e!=-1&&g!=0?new CalendarDateObject(d,e,g,l,m,0):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?29:Date._MD[a]};Date.prototype.getDayOfYear=function(){var a=new CalendarDateObject(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0),b=new CalendarDateObject(this.getFullYear(),0,0,0,0,0);return Math.floor((a-b)/Date.DAY)};Date.prototype.getWeekNumber=function(){var a=new CalendarDateObject(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0),b=a.getDay();a.setDate(a.getDate()-(b+6)%7+3);b=a.valueOf();a.setMonth(0);a.setDate(4);return Math.round((b-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){a=new CalendarDateObject(a);this.setDate(1);this.setFullYear(a.getFullYear());this.setMonth(a.getMonth());this.setDate(a.getDate())};Date.prototype.print=function(a){var b=this.getMonth(),c=this.getDate(),d=this.getFullYear(),e=this.getWeekNumber(),g=this.getDay(),f={},h=this.getHours(),i=h>=12,j=i?h-12:h,l=this.getDayOfYear();j==0&&(j=12);var m=this.getMinutes(),o=this.getSeconds();f["%a"]=Calendar._SDN[g];f["%A"]=Calendar._DN[g];f["%b"]=Calendar._SMN[b];f["%B"]=Calendar._MN[b];f["%C"]=1+Math.floor(d/100);f["%d"]=c<10?"0"+c:c;f["%e"]=c;f["%H"]=h<10?"0"+h:h;f["%I"]=j<10?"0"+j:j;f["%j"]=l<100?l<10?"00"+l:"0"+l:l;f["%k"]=h;f["%l"]=j;f["%m"]=b<9?"0"+(1+b):1+b;f["%M"]=m<10?"0"+m:m;f["%n"]="\n";f["%p"]=i?Calendar._pm.toUpperCase():Calendar._am.toUpperCase();f["%P"]=i?Calendar._pm.toLowerCase():Calendar._am.toLowerCase();f["%s"]=Math.floor(this.getTime()/1E3);f["%S"]=o<10?"0"+o:o;f["%t"]="\t";f["%U"]=f["%W"]=f["%V"]=e<10?"0"+e:e;f["%u"]=g+1;f["%w"]=g;f["%y"]=(""+d).substr(2,2);f["%Y"]=d;f["%%"]="%";b=/%./g;if(!Calendar.is_ie5&&!Calendar.is_khtml)return a.replace(b,function(a){return f[a]||a});c=a.match(b);for(d=0;d<c.length;d++)if(e=f[c[d]])b=RegExp(c[d],"g"),a=a.replace(b,e);return a};Date.prototype.__msh_oldSetFullYear=Date.prototype.setFullYear;Date.prototype.setFullYear=function(a){var b=new CalendarDateObject(this);b.__msh_oldSetFullYear(a);b.getMonth()!=this.getMonth()&&this.setDate(28);this.__msh_oldSetFullYear(a)};CalendarDateObject.prototype=new Date;CalendarDateObject.prototype.constructor=CalendarDateObject;CalendarDateObject.prototype.parent=Date.prototype;function CalendarDateObject(){var a;arguments.length>1?a=eval("new this.parent.constructor("+Array.prototype.slice.call(arguments).join(",")+");"):arguments.length>0?a=new this.parent.constructor(arguments[0]):(a=new this.parent.constructor,typeof CalendarDateObject._SERVER_TIMZEONE_SECONDS!="undefined"&&a.setTime((CalendarDateObject._SERVER_TIMZEONE_SECONDS+a.getTimezoneOffset()*60)*1E3));return a}window._dynarch_popupCalendar=null;;Calendar.setup=function(a){function b(b,h){typeof a[b]=="undefined"&&(a[b]=h)}function g(a){var b=a.params,c=a.dateClicked||b.electric;if(c&&b.inputField){b.inputField.value=a.date.print(b.ifFormat);if(typeof b.inputField.onchange=="function")b.inputField.onchange();typeof fireEvent=="function"&&fireEvent(b.inputField,"change")}if(c&&b.displayArea)b.displayArea.innerHTML=a.date.print(b.daFormat);if(c&&typeof b.onUpdate=="function")b.onUpdate(a);c&&b.flat&&typeof b.flatCallback=="function"&&b.flatCallback(a);c&&b.singleClick&&a.dateClicked&&a.callCloseHandler()}b("inputField",null);b("displayArea",null);b("button",null);b("eventName","click");b("ifFormat","%Y/%m/%d");b("daFormat","%Y/%m/%d");b("singleClick",!0);b("disableFunc",null);b("dateStatusFunc",a.disableFunc);b("dateText",null);b("firstDay",null);b("align","Br");b("range",[1900,2999]);b("weekNumbers",!0);b("flat",null);b("flatCallback",null);b("onSelect",null);b("onClose",null);b("onUpdate",null);b("date",null);b("showsTime",!1);b("timeFormat","24");b("electric",!0);b("step",2);b("position",null);b("cache",!1);b("showOthers",!1);b("multiple",null);var e=["inputField","displayArea","button"],f;for(f in e)typeof a[e[f]]=="string"&&(a[e[f]]=document.getElementById(a[e[f]]));if(!a.flat&&!a.multiple&&!a.inputField&&!a.displayArea&&!a.button)return alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please check your code"),!1;if(a.flat!=null){if(typeof a.flat=="string")a.flat=document.getElementById(a.flat);if(!a.flat)return alert("Calendar.setup:\n  Flat specified but can't find parent."),!1;var c=new Calendar(a.firstDay,a.date,a.onSelect||g);c.showsOtherMonths=a.showOthers;c.showsTime=a.showsTime;c.time24=a.timeFormat=="24";c.params=a;c.weekNumbers=a.weekNumbers;c.setRange(a.range[0],a.range[1]);c.setDateStatusHandler(a.dateStatusFunc);c.getDateText=a.dateText;a.ifFormat&&c.setDateFormat(a.ifFormat);a.inputField&&typeof a.inputField.value=="string"&&c.parseDate(a.inputField.value);c.create(a.flat);c.show();return!1}(a.button||a.displayArea||a.inputField)["on"+a.eventName]=function(){var b=a.inputField||a.displayArea,c=a.inputField?a.ifFormat:a.daFormat,e=!1,d=window.calendar;if(b)a.date=Date.parseDate(b.value||b.innerHTML,c);!d||!a.cache?(window.calendar=d=new Calendar(a.firstDay,a.date,a.onSelect||g,a.onClose||function(a){a.hide()}),d.showsTime=a.showsTime,d.time24=a.timeFormat=="24",d.weekNumbers=a.weekNumbers,e=!0):(a.date&&d.setDate(a.date),d.hide());if(a.multiple){d.multiple={};for(b=a.multiple.length;--b>=0;){var f=a.multiple[b],i=f.print("%Y%m%d");d.multiple[i]=f}}d.showsOtherMonths=a.showOthers;d.yearStep=a.step;d.setRange(a.range[0],a.range[1]);d.params=a;d.setDateStatusHandler(a.dateStatusFunc);d.getDateText=a.dateText;d.setDateFormat(c);e&&d.create();d.refresh();a.position?d.showAt(a.position[0],a.position[1]):d.showAtElement(a.button||a.displayArea||a.inputField,a.align);return!1};return c};
