[freeside-commits] branch master updated. a7db5fbb81de9859db0fc9ccbd5236ee2a0dfe9f

Ivan ivan at 420.am
Mon Dec 15 22:16:30 PST 2014


The branch, master has been updated
       via  a7db5fbb81de9859db0fc9ccbd5236ee2a0dfe9f (commit)
       via  31d11d5b964328ecdd55340636c91088729aede6 (commit)
      from  d722c80eae608ad6d87ac1a7f4ee0baf9a567ec5 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit a7db5fbb81de9859db0fc9ccbd5236ee2a0dfe9f
Merge: 31d11d5 d722c80
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Mon Dec 15 22:16:23 2014 -0800

    Merge branch 'master' of git.freeside.biz:/home/git/freeside


commit 31d11d5b964328ecdd55340636c91088729aede6
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Mon Dec 15 22:16:20 2014 -0800

    fix "too much recursion" calendar javascript error

diff --git a/httemplate/elements/calendar.js b/httemplate/elements/calendar.js
index f5c74f6..ccc963d 100644
--- a/httemplate/elements/calendar.js
+++ b/httemplate/elements/calendar.js
@@ -1790,6 +1790,7 @@ Date.prototype.print = function (str) {
 	return str;
 };
 
+if ( !Date.prototype.__msh_oldSetFullYear ) {
 Date.prototype.__msh_oldSetFullYear = Date.prototype.setFullYear;
 Date.prototype.setFullYear = function(y) {
 	var d = new Date(this);
@@ -1798,6 +1799,7 @@ Date.prototype.setFullYear = function(y) {
 		this.setDate(28);
 	this.__msh_oldSetFullYear(y);
 };
+}
 
 // END: DATE OBJECT PATCHES
 
diff --git a/httemplate/elements/calendar_stripped.js b/httemplate/elements/calendar_stripped.js
index 4fe03f1..d2d1e0c 100644
--- a/httemplate/elements/calendar_stripped.js
+++ b/httemplate/elements/calendar_stripped.js
@@ -1,14 +1 @@
-/*  Copyright Mihai Bazon, 2002-2005  |  www.bazon.net/mishoo
- * -----------------------------------------------------------
- *
- * The DHTML Calendar, version 1.0 "It is happening again"
- *
- * 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(firstDayOfWeek,dateStr,onSelected,onClose){this.activeDiv=null;this.currentDateEl=null;this.getDateStatus=null;this.getDateToolTip=null;this.getDateText=null;this.timeout=null;this.onSelected=onSelected||null;this.onClose=onClose||null;this.dragging=false;this.hidden=false;this.minYear=1970;this.maxYear=2050;this.dateFormat=Calendar._TT["DEF_DATE_FORMAT"];this.ttDateFormat=Calendar._TT["TT_DATE_FORMAT"];this.isPopup=true;this.weekNumbers=true;this.firstDayOfWeek=typeof firstDayOfWeek=="number"?firstDayOfWeek:Calendar._FD;this.showsOtherMonths=false;this.dateStr=dateStr;this.ar_days=null;this.showsTime=false;this.time24=true;this.yearStep=2;this.hiliteToday=true;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=false;if(typeof Calendar._SDN=="undefined"){if(typeof Calendar._SDN_len=="undefined")Calendar._SDN_len=3;var ar=new Array();for(var i=8;i>0;){ar[--i]=Calendar._DN[i].substr(0,Calendar._SDN_len);}Calendar._SDN=ar;if(typeof Calendar._SMN_len=="undefined")Calendar._SMN_len=3;ar=new Array();for(var i=12;i>0;){ar[--i]=Calendar._MN[i].substr(0,Calendar._SMN_len);}Calendar._SMN=ar;}};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(el){var SL=0,ST=0;var is_div=/^div$/i.test(el.tagName);if(is_div&&el.scrollLeft)SL=el.scrollLeft;if(is_div&&el.scrollTop)ST=el.scrollTop;var r={x:el.offsetLeft-SL,y:el.offsetTop-ST};if(el.offsetParent){var tmp=this.getAbsolutePos(el.offsetParent);r.x+=tmp.x;r.y+=tmp.y;}return r;};Calendar.isRelated=function(el,evt){var related=evt.relatedTarget;if(!related){var type=evt.type;if(type=="mouseover"){related=evt.fromElement;}else if(type=="mouseout"){related=evt.toElement;}}while(related){if(related==el){return true;}related=related.parentNode;}return false;};Calendar.removeClass=function(el,className){if(!(el&&el.className)){return;}var cls=el.className.split(" ");var ar=new Array();for(var i=cls.length;i>0;){if(cls[--i]!=className){ar[ar.length]=cls[i];}}el.className=ar.join(" ");};Calendar.addClass=function(el,className){Calendar.removeClass(el,className);el.className+=" "+className;};Calendar.getElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.currentTarget;while(f.nodeType!=1||/^div$/i.test(f.tagName))f=f.parentNode;return f;};Calendar.getTargetElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.target;while(f.nodeType!=1)f=f.parentNode;return f;};Calendar.stopEvent=function(ev){ev||(ev=window.event);if(Calendar.is_ie){ev.cancelBubble=true;ev.returnValue=false;}else{ev.preventDefault();ev.stopPropagation();}return false;};Calendar.addEvent=function(el,evname,func){if(el.attachEvent){el.attachEvent("on"+evname,func);}else if(el.addEventListener){el.addEventListener(evname,func,true);}else{el["on"+evname]=func;}};Calendar.removeEvent=function(el,evname,func){if(el.detachEvent){el.detachEvent("on"+evname,func);}else if(el.removeEventListener){el.removeEventListener(evname,func,true);}else{el["on"+evname]=null;}};Calendar.createElement=function(type,parent){var el=null;if(document.createElementNS){el=document.createElementNS("http://www.w3.org/1999/xhtml",type);}else{el=document.createElement(type);}if(typeof parent!="undefined"){parent.appendChild(el);}return el;};Calendar._add_evs=function(el){with(Calendar){addEvent(el,"mouseover",dayMouseOver);addEvent(el,"mousedown",dayMouseDown);addEvent(el,"mouseout",dayMouseOut);if(is_ie){addEvent(el,"dblclick",dayMouseDblClick);el.setAttribute("unselectable",true);}}};Calendar.findMonth=function(el){if(typeof el.month!="undefined"){return el;}else if(typeof el.parentNode.month!="undefined"){return el.parentNode;}return null;};Calendar.findYear=function(el){if(typeof el.year!="undefined"){return el;}else if(typeof el.parentNode.year!="undefined"){return el.parentNode;}return null;};Calendar.showMonthsCombo=function(){var cal=Calendar._C;if(!cal){return false;}var cal=cal;var cd=cal.activeDiv;var mc=cal.monthsCombo;if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}if(cal.activeMonth){Calendar.removeClass(cal.activeMonth,"active");}var mon=cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];Calendar.addClass(mon,"active");cal.activeMonth=mon;var s=mc.style;s.display="block";if(cd.navtype<0)s.left=cd.offsetLeft+"px";else{var mcw=mc.offsetWidth;if(typeof mcw=="undefined")mcw=50;s.left=(cd.offsetLeft+cd.offsetWidth-mcw)+"px";}s.top=(cd.offsetTop+cd.offsetHeight)+"px";};Calendar.showYearsCombo=function(fwd){var cal=Calendar._C;if(!cal){return false;}var cal=cal;var cd=cal.activeDiv;var yc=cal.yearsCombo;if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}if(cal.activeYear){Calendar.removeClass(cal.activeYear,"active");}cal.activeYear=null;var Y=cal.date.getFullYear()+(fwd?1:-1);var yr=yc.firstChild;var show=false;for(var i=12;i>0;--i){if(Y>=cal.minYear&&Y<=cal.maxYear){yr.innerHTML=Y;yr.year=Y;yr.style.display="block";show=true;}else{yr.style.display="none";}yr=yr.nextSibling;Y+=fwd?cal.yearStep:-cal.yearStep;}if(show){var s=yc.style;s.display="block";if(cd.navtype<0)s.left=cd.offsetLeft+"px";else{var ycw=yc.offsetWidth;if(typeof ycw=="undefined")ycw=50;s.left=(cd.offsetLeft+cd.offsetWidth-ycw)+"px";}s.top=(cd.offsetTop+cd.offsetHeight)+"px";}};Calendar.tableMouseUp=function(ev){var cal=Calendar._C;if(!cal){return false;}if(cal.timeout){clearTimeout(cal.timeout);}var el=cal.activeDiv;if(!el){return false;}var target=Calendar.getTargetElement(ev);ev||(ev=window.event);Calendar.removeClass(el,"active");if(target==el||target.parentNode==el){Calendar.cellClick(el,ev);}var mon=Calendar.findMonth(target);var date=null;if(mon){date=new Date(cal.date);if(mon.month!=date.getMonth()){date.setMonth(mon.month);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}else{var year=Calendar.findYear(target);if(year){date=new Date(cal.date);if(year.year!=date.getFullYear()){date.setFullYear(year.year);cal.setDate(date);cal.dateClicked=false;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(ev){var cal=Calendar._C;if(!cal){return;}var el=cal.activeDiv;var target=Calendar.getTargetElement(ev);if(target==el||target.parentNode==el){Calendar.addClass(el,"hilite active");Calendar.addClass(el.parentNode,"rowhilite");}else{if(typeof el.navtype=="undefined"||(el.navtype!=50&&(el.navtype==0||Math.abs(el.navtype)>2)))Calendar.removeClass(el,"active");Calendar.removeClass(el,"hilite");Calendar.removeClass(el.parentNode,"rowhilite");}ev||(ev=window.event);if(el.navtype==50&&target!=el){var pos=Calendar.getAbsolutePos(el);var w=el.offsetWidth;var x=ev.clientX;var dx;var decrease=true;if(x>pos.x+w){dx=x-pos.x-w;decrease=false;}else dx=pos.x-x;if(dx<0)dx=0;var range=el._range;var current=el._current;var count=Math.floor(dx/10)%range.length;for(var i=range.length;--i>=0;)if(range[i]==current)break;while(count-->0)if(decrease){if(--i<0)i=range.length-1;}else if(++i>=range.length)i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();}var mon=Calendar.findMonth(target);if(mon){if(mon.month!=cal.date.getMonth()){if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}Calendar.addClass(mon,"hilite");cal.hilitedMonth=mon;}else if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}}else{if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}var year=Calendar.findYear(target);if(year){if(year.year!=cal.date.getFullYear()){if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}Calendar.addClass(year,"hilite");cal.hilitedYear=year;}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}return Calendar.stopEvent(ev);};Calendar.tableMouseDown=function(ev){if(Calendar.getTargetElement(ev)==Calendar.getElement(ev)){return Calendar.stopEvent(ev);}};Calendar.calDragIt=function(ev){var cal=Calendar._C;if(!(cal&&cal.dragging)){return false;}var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posX=ev.pageX;posY=ev.pageY;}cal.hideShowCovered();var st=cal.element.style;st.left=(posX-cal.xOffs)+"px";st.top=(posY-cal.yOffs)+"px";return Calendar.stopEvent(ev);};Calendar.calDragEnd=function(ev){var cal=Calendar._C;if(!cal){return false;}cal.dragging=false;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 false;}var cal=el.calendar;cal.activeDiv=el;Calendar._C=cal;if(el.navtype!=300)with(Calendar){if(el.navtype==50){el._current=el.innerHTML;addEvent(document,"mousemove",tableMouseOver);}else addEvent(document,Calendar.is_ie5?"mousemove":"mouseover",tableMouseOver);addClass(el,"hilite active");addEvent(document,"mouseup",tableMouseUp);}else if(cal.isPopup){cal._dragStart(ev);}if(el.navtype==-1||el.navtype==1){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout("Calendar.showMonthsCombo()",250);}else if(el.navtype==-2||el.navtype==2){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout((el.navtype>0)?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250);}else{cal.timeout=null;}return Calendar.stopEvent(ev);};Calendar.dayMouseDblClick=function(ev){Calendar.cellClick(Calendar.getElement(ev),ev||window.event);if(Calendar.is_ie){document.selection.empty();}};Calendar.dayMouseOver=function(ev){var el=Calendar.getElement(ev);if(Calendar.isRelated(el,ev)||Calendar._C||el.disabled){return false;}if(el.ttip){if(el.ttip.substr(0,1)=="_"){el.ttip=el.caldate.print(el.calendar.ttDateFormat)+el.ttip.substr(1);}el.calendar.tooltips.innerHTML=el.ttip;}if(el.navtype!=300){Calendar.addClass(el,"hilite");if(el.caldate){Calendar.addClass(el.parentNode,"rowhilite");}}return Calendar.stopEvent(ev);};Calendar.dayMouseOut=function(ev){with(Calendar){var el=getElement(ev);if(isRelated(el,ev)||_C||el.disabled)return false;removeClass(el,"hilite");if(el.caldate)removeClass(el.parentNode,"rowhilite");if(el.calendar)el.calendar.tooltips.innerHTML=_TT["SEL_DATE"];return stopEvent(ev);}};Calendar.cellClick=function(el,ev){var cal=el.calendar;var closing=false;var newdate=false;var date=null;if(typeof el.navtype=="undefined"){if(cal.currentDateEl){Calendar.removeClass(cal.currentDateEl,"selected");Calendar.addClass(el,"selected");closing=(cal.currentDateEl==el);if(!closing){cal.currentDateEl=el;}}cal.date.setDateOnly(el.caldate);date=cal.date;var other_month=!(cal.dateClicked=!el.otherMonth);if(!other_month&&!cal.currentDateEl)cal._toggleMultipleDate(new Date(date));else newdate=!el.disabled;if(other_month)cal._init(cal.firstDayOfWeek,date);}else{if(el.navtype==200){Calendar.removeClass(el,"hilite");cal.callCloseHandler();return;}date=new Date(cal.date);if(el.navtype==0)date.setDateOnly(new Date());cal.dateClicked=false;var year=date.getFullYear();var mon=date.getMonth();function setMonth(m){var day=date.getDate();var max=date.getMonthDays(m);if(day>max){date.setDate(max);}date.setMonth(m);};switch(el.navtype){case 400:Calendar.removeClass(el,"hilite");var text=Calendar._TT["ABOUT"];if(typeof text!="undefined"){text+=cal.showsTime?Calendar._TT["ABOUT_TIME"]:"";}else{text="Help and about box text is not translated into this language.\n"+"If you know this language and you feel generous please update\n"+"the corresponding file in \"lang\" subdir to match calendar-en.js\n"+"and send it back to <mihai_bazon at yahoo.com> to get it into the distribution  ;-)\n\n"+"Thank you!\n"+"http://dynarch.com/mishoo/calendar.epl\n";}alert(text);return;case-2:if(year>cal.minYear){date.setFullYear(year-1);}break;case-1:if(mon>0){setMonth(mon-1);}else if(year-->cal.minYear){date.setFullYear(year);setMonth(11);}break;case 1:if(mon<11){setMonth(mon+1);}else if(year<cal.maxYear){date.setFullYear(year+1);setMonth(0);}break;case 2:if(year<cal.maxYear){date.setFullYear(year+1);}break;case 100:cal.setFirstDayOfWeek(el.fdow);return;case 50:var range=el._range;var current=el.innerHTML;for(var i=range.length;--i>=0;)if(range[i]==current)break;if(ev&&ev.shiftKey){if(--i<0)i=range.length-1;}else if(++i>=range.length)i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();return;case 0:if((typeof cal.getDateStatus=="function")&&cal.getDateStatus(date,date.getFullYear(),date.getMonth(),date.getDate())){return false;}break;}if(!date.equalsTo(cal.date)){cal.setDate(date);newdate=true;}else if(el.navtype==0)newdate=closing=true;}if(newdate){ev&&cal.callHandler();}if(closing){Calendar.removeClass(el,"hilite");ev&&cal.callCloseHandler();}};Calendar.prototype.create=function(_par){var parent=null;if(!_par){parent=document.getElementsByTagName("body")[0];this.isPopup=true;}else{parent=_par;this.isPopup=false;}this.date=this.dateStr?new Date(this.dateStr):new Date();var table=Calendar.createElement("table");this.table=table;table.cellSpacing=0;table.cellPadding=0;table.calendar=this;Calendar.addEvent(table,"mousedown",Calendar.tableMouseDown);var div=Calendar.createElement("div");this.element=div;div.className="calendar";if(this.isPopup){div.style.position="absolute";div.style.display="none";}div.appendChild(table);var thead=Calendar.createElement("thead",table);var cell=null;var row=null;var cal=this;var hh=function(text,cs,navtype){cell=Calendar.createElement("td",row);cell.colSpan=cs;cell.className="button";if(navtype!=0&&Math.abs(navtype)<=2)cell.className+=" nav";Calendar._add_evs(cell);cell.calendar=cal;cell.navtype=navtype;cell.innerHTML="<div unselectable='on'>"+text+"</div>";return cell;};row=Calendar.createElement("tr",thead);var title_length=6;(this.isPopup)&&--title_length;(this.weekNumbers)&&++title_length;hh("?",1,400).ttip=Calendar._TT["INFO"];this.title=hh("",title_length,300);this.title.className="title";if(this.isPopup){this.title.ttip=Calendar._TT["DRAG_TO_MOVE"];this.title.style.cursor="move";hh("&#x00d7;",1,200).ttip=Calendar._TT["CLOSE"];}row=Calendar.createElement("tr",thead);row.className="headrow";this._nav_py=hh("&#x00ab;",1,-2);this._nav_py.ttip=Calendar._TT["PREV_YEAR"];this._nav_pm=hh("&#x2039;",1,-1);this._nav_pm.ttip=Calendar._TT["PREV_MONTH"];this._nav_now=hh(Calendar._TT["TODAY"],this.weekNumbers?4:3,0);this._nav_now.ttip=Calendar._TT["GO_TODAY"];this._nav_nm=hh("&#x203a;",1,1);this._nav_nm.ttip=Calendar._TT["NEXT_MONTH"];this._nav_ny=hh("&#x00bb;",1,2);this._nav_ny.ttip=Calendar._TT["NEXT_YEAR"];row=Calendar.createElement("tr",thead);row.className="daynames";if(this.weekNumbers){cell=Calendar.createElement("td",row);cell.className="name wn";cell.innerHTML=Calendar._TT["WK"];}for(var i=7;i>0;--i){cell=Calendar.createElement("td",row);if(!i){cell.navtype=100;cell.calendar=this;Calendar._add_evs(cell);}}this.firstdayname=(this.weekNumbers)?row.firstChild.nextSibling:row.firstChild;this._displayWeekdays();var tbody=Calendar.createElement("tbody",table);this.tbody=tbody;for(i=6;i>0;--i){row=Calendar.createElement("tr",tbody);if(this.weekNumbers){cell=Calendar.createElement("td",row);}for(var j=7;j>0;--j){cell=Calendar.createElement("td",row);cell.calendar=this;Calendar._add_evs(cell);}}if(this.showsTime){row=Calendar.createElement("tr",tbody);row.className="time";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;cell.innerHTML=Calendar._TT["TIME"]||" ";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=this.weekNumbers?4:3;(function(){function makeTimePart(className,init,range_start,range_end){var part=Calendar.createElement("span",cell);part.className=className;part.innerHTML=init;part.calendar=cal;part.ttip=Calendar._TT["TIME_PART"];part.navtype=50;part._range=[];if(typeof range_start!="number")part._range=range_start;else{for(var i=range_start;i<=range_end;++i){var txt;if(i<10&&range_end>=10)txt='0'+i;else txt=''+i;part._range[part._range.length]=txt;}}Calendar._add_evs(part);return part;};var hrs=cal.date.getHours();var mins=cal.date.getMinutes();var t12=!cal.time24;var pm=(hrs>12);if(t12&&pm)hrs-=12;var H=makeTimePart("hour",hrs,t12?1:0,t12?12:23);var span=Calendar.createElement("span",cell);span.innerHTML=":";span.className="colon";var M=makeTimePart("minute",mins,0,59);var AP=null;cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;if(t12)AP=makeTimePart("ampm",pm?"pm":"am",["am","pm"]);else cell.innerHTML=" ";cal.onSetTime=function(){var pm,hrs=this.date.getHours(),mins=this.date.getMinutes();if(t12){pm=(hrs>=12);if(pm)hrs-=12;if(hrs==0)hrs=12;AP.innerHTML=pm?"pm":"am";}H.innerHTML=(hrs<10)?("0"+hrs):hrs;M.innerHTML=(mins<10)?("0"+mins):mins;};cal.onUpdateTime=function(){var date=this.date;var h=parseInt(H.innerHTML,10);if(t12){if(/pm/i.test(AP.innerHTML)&&h<12)h+=12;else if(/am/i.test(AP.innerHTML)&&h==12)h=0;}var d=date.getDate();var m=date.getMonth();var y=date.getFullYear();date.setHours(h);date.setMinutes(parseInt(M.innerHTML,10));date.setFullYear(y);date.setMonth(m);date.setDate(d);this.dateClicked=false;this.callHandler();};})();}else{this.onSetTime=this.onUpdateTime=function(){};}var tfoot=Calendar.createElement("tfoot",table);row=Calendar.createElement("tr",tfoot);row.className="footrow";cell=hh(Calendar._TT["SEL_DATE"],this.weekNumbers?8:7,300);cell.className="ttip";if(this.isPopup){cell.ttip=Calendar._TT["DRAG_TO_MOVE"];cell.style.cursor="move";}this.tooltips=cell;div=Calendar.createElement("div",this.element);this.monthsCombo=div;div.className="combo";for(i=0;i<Calendar._MN.length;++i){var mn=Calendar.createElement("div");mn.className=Calendar.is_ie?"label-IEfix":"label";mn.month=i;mn.innerHTML=Calendar._SMN[i];div.appendChild(mn);}div=Calendar.createElement("div",this.element);this.yearsCombo=div;div.className="combo";for(i=12;i>0;--i){var yr=Calendar.createElement("div");yr.className=Calendar.is_ie?"label-IEfix":"label";div.appendChild(yr);}this._init(this.firstDayOfWeek,this.date);parent.appendChild(this.element);};Calendar._keyEvent=function(ev){var cal=window._dynarch_popupCalendar;if(!cal||cal.multiple)return false;(Calendar.is_ie)&&(ev=window.event);var act=(Calendar.is_ie||ev.type=="keypress"),K=ev.keyCode;if(ev.ctrlKey){switch(K){case 37:act&&Calendar.cellClick(cal._nav_pm);break;case 38:act&&Calendar.cellClick(cal._nav_py);break;case 39:act&&Calendar.cellClick(cal._nav_nm);break;case 40:act&&Calendar.cellClick(cal._nav_ny);break;default:return false;}}else switch(K){case 32:Calendar.cellClick(cal._nav_now);break;case 27:act&&cal.callCloseHandler();break;case 37:case 38:case 39:case 40:if(act){var prev,x,y,ne,el,step;prev=K==37||K==38;step=(K==37||K==39)?1:7;function setVars(){el=cal.currentDateEl;var p=el.pos;x=p&15;y=p>>4;ne=cal.ar_days[y][x];};setVars();function prevMonth(){var date=new Date(cal.date);date.setDate(date.getDate()-step);cal.setDate(date);};function nextMonth(){var date=new Date(cal.date);date.setDate(date.getDate()+step);cal.setDate(date);};while(1){switch(K){case 37:if(--x>=0)ne=cal.ar_days[y][x];else{x=6;K=38;continue;}break;case 38:if(--y>=0)ne=cal.ar_days[y][x];else{prevMonth();setVars();}break;case 39:if(++x<7)ne=cal.ar_days[y][x];else{x=0;K=40;continue;}break;case 40:if(++y<cal.ar_days.length)ne=cal.ar_days[y][x];else{nextMonth();setVars();}break;}break;}if(ne){if(!ne.disabled)Calendar.cellClick(ne);else if(prev)prevMonth();else nextMonth();}}break;case 13:if(act)Calendar.cellClick(cal.currentDateEl,ev);break;default:return false;}return Calendar.stopEvent(ev);};Calendar.prototype._init=function(firstDayOfWeek,date){var today=new Date(),TY=today.getFullYear(),TM=today.getMonth(),TD=today.getDate();this.table.style.visibility="hidden";var year=date.getFullYear();if(year<this.minYear){year=this.minYear;date.setFullYear(year);}else if(year>this.maxYear){year=this.maxYear;date.setFullYear(year);}this.firstDayOfWeek=firstDayOfWeek;this.date=new Date(date);var month=date.getMonth();var mday=date.getDate();var no_days=date.getMonthDays();date.setDate(1);var day1=(date.getDay()-this.firstDayOfWeek)%7;if(day1<0)day1+=7;date.setDate(-day1);date.setDate(date.getDate()+1);var row=this.tbody.firstChild;var MN=Calendar._SMN[month];var ar_days=this.ar_days=new Array();var weekend=Calendar._TT["WEEKEND"];var dates=this.multiple?(this.datesCells={}):null;for(var i=0;i<6;++i,row=row.nextSibling){var cell=row.firstChild;if(this.weekNumbers){cell.className="day wn";cell.innerHTML=date.getWeekNumber();cell=cell.nextSibling;}row.className="daysrow";var hasdays=false,iday,dpos=ar_days[i]=[];for(var j=0;j<7;++j,cell=cell.nextSibling,date.setDate(iday+1)){iday=date.getDate();var wday=date.getDay();cell.className="day";cell.pos=i<<4|j;dpos[j]=cell;var current_month=(date.getMonth()==month);if(!current_month){if(this.showsOtherMonths){cell.className+=" othermonth";cell.otherMonth=true;}else{cell.className="emptycell";cell.innerHTML=" ";cell.disabled=true;continue;}}else{cell.otherMonth=false;hasdays=true;}cell.disabled=false;cell.innerHTML=this.getDateText?this.getDateText(date,iday):iday;if(dates)dates[date.print("%Y%m%d")]=cell;if(this.getDateStatus){var status=this.getDateStatus(date,year,month,iday);if(this.getDateToolTip){var toolTip=this.getDateToolTip(date,year,month,iday);if(toolTip)cell.title=toolTip;}if(status===true){cell.className+=" disabled";cell.disabled=true;}else{if(/disabled/i.test(status))cell.disabled=true;cell.className+=" "+status;}}if(!cell.disabled){cell.caldate=new Date(date);cell.ttip="_";if(!this.multiple&&current_month&&iday==mday&&this.hiliteToday){cell.className+=" selected";this.currentDateEl=cell;}if(date.getFullYear()==TY&&date.getMonth()==TM&&iday==TD){cell.className+=" today";cell.ttip+=Calendar._TT["PART_TODAY"];}if(weekend.indexOf(wday.toString())!=-1)cell.className+=cell.otherMonth?" oweekend":" weekend";}}if(!(hasdays||this.showsOtherMonths))row.className="emptyrow";}this.title.innerHTML=Calendar._MN[month]+", "+year;this.onSetTime();this.table.style.visibility="visible";this._initMultipleDates();};Calendar.prototype._initMultipleDates=function(){if(this.multiple){for(var i in this.multiple){var cell=this.datesCells[i];var d=this.multiple[i];if(!d)continue;if(cell)cell.className+=" selected";}}};Calendar.prototype._toggleMultipleDate=function(date){if(this.multiple){var ds=date.print("%Y%m%d");var cell=this.datesCells[ds];if(cell){var d=this.multiple[ds];if(!d){Calendar.addClass(cell,"selected");this.multiple[ds]=date;}else{Calendar.removeClass(cell,"selected");delete this.multiple[ds];}}}};Calendar.prototype.setDateToolTipHandler=function(unaryFunction){this.getDateToolTip=unaryFunction;};Calendar.prototype.setDate=function(date){if(!date.equalsTo(this.date)){this._init(this.firstDayOfWeek,date);}};Calendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date);};Calendar.prototype.setFirstDayOfWeek=function(firstDayOfWeek){this._init(firstDayOfWeek,this.date);this._displayWeekdays();};Calendar.prototype.setDateStatusHandler=Calendar.prototype.setDisabledHandler=function(unaryFunction){this.getDateStatus=unaryFunction;};Calendar.prototype.setRange=function(a,z){this.minYear=a;this.maxYear=z;};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(){var el=this.element.parentNode;el.removeChild(this.element);Calendar._C=null;window._dynarch_popupCalendar=null;};Calendar.prototype.reparent=function(new_parent){var el=this.element;el.parentNode.removeChild(el);new_parent.appendChild(el);};Calendar._checkCalendar=function(ev){var calendar=window._dynarch_popupCalendar;if(!calendar){return false;}var el=Calendar.is_ie?Calendar.getElement(ev):Calendar.getTargetElement(ev);for(;el!=null&&el!=calendar.element;el=el.parentNode);if(el==null){window._dynarch_popupCalendar.callCloseHandler();return Calendar.stopEvent(ev);}};Calendar.prototype.show=function(){var rows=this.table.getElementsByTagName("tr");for(var i=rows.length;i>0;){var row=rows[--i];Calendar.removeClass(row,"rowhilite");var cells=row.getElementsByTagName("td");for(var j=cells.length;j>0;){var cell=cells[--j];Calendar.removeClass(cell,"hilite");Calendar.removeClass(cell,"active");}}this.element.style.display="block";this.hidden=false;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(){if(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=true;this.hideShowCovered();};Calendar.prototype.showAt=function(x,y){var s=this.element.style;s.left=x+"px";s.top=y+"px";this.show();};Calendar.prototype.showAtElement=function(el,opts){var self=this;var p=Calendar.getAbsolutePos(el);if(!opts||typeof opts!="string"){this.showAt(p.x,p.y+el.offsetHeight);return true;}function fixPosition(box){if(box.x<0)box.x=0;if(box.y<0)box.y=0;var cp=document.createElement("div");var s=cp.style;s.position="absolute";s.right=s.bottom=s.width=s.height="0px";document.body.appendChild(cp);var br=Calendar.getAbsolutePos(cp);document.body.removeChild(cp);if(Calendar.is_ie){br.y+=document.body.scrollTop;br.x+=document.body.scrollLeft;}else{br.y+=window.scrollY;br.x+=window.scrollX;}var tmp=box.x+box.width-br.x;if(tmp>0)box.x-=tmp;tmp=box.y+box.height-br.y;if(tmp>0)box.y-=tmp;};this.element.style.display="block";Calendar.continuation_for_the_fucking_khtml_browser=function(){var w=self.element.offsetWidth;var h=self.element.offsetHeight;self.element.style.display="none";var valign=opts.substr(0,1);var halign="l";if(opts.length>1){halign=opts.substr(1,1);}switch(valign){case "T":p.y-=h;break;case "B":p.y+=el.offsetHeight;break;case "C":p.y+=(el.offsetHeight-h)/2;break;case "t":p.y+=el.offsetHeight-h;break;case "b":break;}switch(halign){case "L":p.x-=w;break;case "R":p.x+=el.offsetWidth;break;case "C":p.x+=(el.offsetWidth-w)/2;break;case "l":p.x+=el.offsetWidth-w;break;case "r":break;}p.width=w;p.height=h+40;self.monthsCombo.style.display="none";fixPosition(p);self.showAt(p.x,p.y);};if(Calendar.is_khtml)setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()",10);else Calendar.continuation_for_the_fucking_khtml_browser();};Calendar.prototype.setDateFormat=function(str){this.dateFormat=str;};Calendar.prototype.setTtDateFormat=function(str){this.ttDateFormat=str;};Calendar.prototype.parseDate=function(str,fmt){if(!fmt)fmt=this.dateFormat;this.setDate(Date.parseDate(str,fmt));};Calendar.prototype.hideShowCovered=function(){if(!Calendar.is_ie&&!Calendar.is_opera)return;function getVisib(obj){var value=obj.style.visibility;if(!value){if(document.defaultView&&typeof(document.defaultView.getComputedStyle)=="function"){if(!Calendar.is_khtml)value=document.defaultView. getComputedStyle(obj,"").getPropertyValue("visibility");else value='';}else if(obj.currentStyle){value=obj.currentStyle.visibility;}else value='';}return value;};var tags=new Array("applet","iframe","select");var el=this.element;var p=Calendar.getAbsolutePos(el);var EX1=p.x;var EX2=el.offsetWidth+EX1;var EY1=p.y;var EY2=el.offsetHeight+EY1;for(var k=tags.length;k>0;){var ar=document.getElementsByTagName(tags[--k]);var cc=null;for(var i=ar.length;i>0;){cc=ar[--i];p=Calendar.getAbsolutePos(cc);var CX1=p.x;var CX2=cc.offsetWidth+CX1;var CY1=p.y;var CY2=cc.offsetHeight+CY1;if(this.hidden||(CX1>EX2)||(CX2<EX1)||(CY1>EY2)||(CY2<EY1)){if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}cc.style.visibility=cc.__msh_save_visibility;}else{if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}cc.style.visibility="hidden";}}}};Calendar.prototype._displayWeekdays=function(){var fdow=this.firstDayOfWeek;var cell=this.firstdayname;var weekend=Calendar._TT["WEEKEND"];for(var i=0;i<7;++i){cell.className="day name";var realday=(i+fdow)%7;if(i){cell.ttip=Calendar._TT["DAY_FIRST"].replace("%s",Calendar._DN[realday]);cell.navtype=100;cell.calendar=this;cell.fdow=realday;Calendar._add_evs(cell);}if(weekend.indexOf(realday.toString())!=-1){Calendar.addClass(cell,"weekend");}cell.innerHTML=Calendar._SDN[(i+fdow)%7];cell=cell.nextSibling;}};Calendar.prototype._hideCombos=function(){this.monthsCombo.style.display="none";this.yearsCombo.style.display="none";};Calendar.prototype._dragStart=function(ev){if(this.dragging){return;}this.dragging=true;var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{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=new Array(31,28,31,30,31,30,31,31,30,31,30,31);Date.SECOND=1000;Date.MINUTE=60*Date.SECOND;Date.HOUR=60*Date.MINUTE;Date.DAY=24*Date.HOUR;Date.WEEK=7*Date.DAY;Date.parseDate=function(str,fmt){var today=new Date();var y=0;var m=-1;var d=0;var a=str.split(/\W+/);var b=fmt.match(/%./g);var i=0,j=0;var hr=0;var min=0;for(i=0;i<a.length;++i){if(!a[i])continue;switch(b[i]){case "%d":case "%e":d=parseInt(a[i],10);break;case "%m":m=parseInt(a[i],10)-1;break;case "%Y":case "%y":y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);break;case "%b":case "%B":for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){m=j;break;}}break;case "%H":case "%I":case "%k":case "%l":hr=parseInt(a[i],10);break;case "%P":case "%p":if(/pm/i.test(a[i])&&hr<12)hr+=12;else if(/am/i.test(a[i])&&hr>=12)hr-=12;break;case "%M":min=parseInt(a[i],10);break;}}if(isNaN(y))y=today.getFullYear();if(isNaN(m))m=today.getMonth();if(isNaN(d))d=today.getDate();if(isNaN(hr))hr=today.getHours();if(isNaN(min))min=today.getMinutes();if(y!=0&&m!=-1&&d!=0)return new Date(y,m,d,hr,min,0);y=0;m=-1;d=0;for(i=0;i<a.length;++i){if(a[i].search(/[a-zA-Z]+/)!=-1){var t=-1;for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){t=j;break;}}if(t!=-1){if(m!=-1){d=m+1;}m=t;}}else if(parseInt(a[i],10)<=12&&m==-1){m=a[i]-1;}else if(parseInt(a[i],10)>31&&y==0){y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);}else if(d==0){d=a[i];}}if(y==0)y=today.getFullYear();if(m!=-1&&d!=0)return new Date(y,m,d,hr,min,0);return today;};Date.prototype.getMonthDays=function(month){var year=this.getFullYear();if(typeof month=="undefined"){month=this.getMonth();}if(((0==(year%4))&&((0!=(year%100))||(0==(year%400))))&&month==1){return 29;}else{return Date._MD[month];}};Date.prototype.getDayOfYear=function(){var now=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var then=new Date(this.getFullYear(),0,0,0,0,0);var time=now-then;return Math.floor(time/Date.DAY);};Date.prototype.getWeekNumber=function(){var d=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var DoW=d.getDay();d.setDate(d.getDate()-(DoW+6)%7+3);var ms=d.valueOf();d.setMonth(0);d.setDate(4);return Math.round((ms-d.valueOf())/(7*864e5))+1;};Date.prototype.equalsTo=function(date){return((this.getFullYear()==date.getFullYear())&&(this.getMonth()==date.getMonth())&&(this.getDate()==date.getDate())&&(this.getHours()==date.getHours())&&(this.getMinutes()==date.getMinutes()));};Date.prototype.setDateOnly=function(date){var tmp=new Date(date);this.setDate(1);this.setFullYear(tmp.getFullYear());this.setMonth(tmp.getMonth());this.setDate(tmp.getDate());};Date.prototype.print=function(str){var m=this.getMonth();var d=this.getDate();var y=this.getFullYear();var wn=this.getWeekNumber();var w=this.getDay();var s={};var hr=this.getHours();var pm=(hr>=12);var ir=(pm)?(hr-12):hr;var dy=this.getDayOfYear();if(ir==0)ir=12;var min=this.getMinutes();var sec=this.getSeconds();s["%a"]=Calendar._SDN[w];s["%A"]=Calendar._DN[w];s["%b"]=Calendar._SMN[m];s["%B"]=Calendar._MN[m];s["%C"]=1+Math.floor(y/100);s["%d"]=(d<10)?("0"+d):d;s["%e"]=d;s["%H"]=(hr<10)?("0"+hr):hr;s["%I"]=(ir<10)?("0"+ir):ir;s["%j"]=(dy<100)?((dy<10)?("00"+dy):("0"+dy)):dy;s["%k"]=hr;s["%l"]=ir;s["%m"]=(m<9)?("0"+(1+m)):(1+m);s["%M"]=(min<10)?("0"+min):min;s["%n"]="\n";s["%p"]=pm?"PM":"AM";s["%P"]=pm?"pm":"am";s["%s"]=Math.floor(this.getTime()/1000);s["%S"]=(sec<10)?("0"+sec):sec;s["%t"]="\t";s["%U"]=s["%W"]=s["%V"]=(wn<10)?("0"+wn):wn;s["%u"]=w+1;s["%w"]=w;s["%y"]=(''+y).substr(2,2);s["%Y"]=y;s["%%"]="%";var re=/%./g;if(!Calendar.is_ie5&&!Calendar.is_khtml)return str.replace(re,function(par){return s[par]||par;});var a=str.match(re);for(var i=0;i<a.length;i++){var tmp=s[a[i]];if(tmp){re=new RegExp(a[i],'g');str=str.replace(re,tmp);}}return str;};Date.prototype.__msh_oldSetFullYear=Date.prototype.setFullYear;Date.prototype.setFullYear=function(y){var d=new Date(this);d.__msh_oldSetFullYear(y);if(d.getMonth()!=this.getMonth())this.setDate(28);this.__msh_oldSetFullYear(y);};window._dynarch_popupCalendar=null;
\ No newline at end of file
+Calendar=function(firstDayOfWeek,dateStr,onSelected,onClose){if(this.activeDiv=null,this.currentDateEl=null,this.getDateStatus=null,this.getDateToolTip=null,this.getDateText=null,this.timeout=null,this.onSelected=onSelected||null,this.onClose=onClose||null,this.dragging=!1,this.hidden=!1,this.minYear=1970,this.maxYear=2050,this.dateFormat=Calendar._TT.DEF_DATE_FORMAT,this.ttDateFormat=Calendar._TT.TT_DATE_FORMAT,this.isPopup=!0,this.weekNumbers=!0,this.firstDayOfWeek="number"==typeof firstDayOfWeek?firstDayOfWeek:Calendar._FD,this.showsOtherMonths=!1,this.dateStr=dateStr,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,"undefined"==typeof Calendar._SDN){"undefined"==typeof Calendar._SDN_len&&(Calendar._SDN_len=3);for(var ar=new Array,i=8;i>0;)ar[--i]=Calendar._DN[i].substr(0,Calendar._SDN_len);Calendar._SDN=ar,"undefined"==typeof Calendar._SMN_len&&(Calendar._SMN_len=3),ar=new Array;for(var i=12;i>0;)ar[--i]=Calendar._MN[i].substr(0,Calendar._SMN_len);Calendar._SMN=ar}},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(el){var SL=0,ST=0,is_div=/^div$/i.test(el.tagName);is_div&&el.scrollLeft&&(SL=el.scrollLeft),is_div&&el.scrollTop&&(ST=el.scrollTop);var r={x:el.offsetLeft-SL,y:el.offsetTop-ST};if(el.offsetParent){var tmp=this.getAbsolutePos(el.offsetParent);r.x+=tmp.x,r.y+=tmp.y}return r},Calendar.isRelated=function(el,evt){var related=evt.relatedTarget;if(!related){var type=evt.type;"mouseover"==type?related=evt.fromElement:"mouseout"==type&&(related=evt.toElement)}for(;related;){if(related==el)return!0;related=related.parentNode}return!1},Calendar.removeClass=function(el,className){if(el&&el.className){for(var cls=el.className.split(" "),ar=new Array,i=cls.length;i>0;)cls[--i]!=className&&(ar[ar.length]=cls[i]);el.className=ar.join(" ")}},Calendar.addClass=function(el,className){Calendar.removeClass(el,className),el.className+=" "+className},Calendar.getElement=function(ev){for(var f=Calendar.is_ie?window.event.srcElement:ev.currentTarget;1!=f.nodeType||/^div$/i.test(f.tagName);)f=f.parentNode;return f},Calendar.getTargetElement=function(ev){for(var f=Calendar.is_ie?window.event.srcElement:ev.target;1!=f.nodeType;)f=f.parentNode;return f},Calendar.stopEvent=function(ev){return ev||(ev=window.event),Calendar.is_ie?(ev.cancelBubble=!0,ev.returnValue=!1):(ev.preventDefault(),ev.stopPropagation()),!1},Calendar.addEvent=function(el,evname,func){el.attachEvent?el.attachEvent("on"+evname,func):el.addEventListener?el.addEventListener(evname,func,!0):el["on"+evname]=func},Calendar.removeEvent=function(el,evname,func){el.detachEvent?el.detachEvent("on"+evname,func):el.removeEventListener?el.removeEventListener(evname,func,!0):el["on"+evname]=null},Calendar.createElement=function(type,parent){var el=null;return el=document.createElementNS?document.createElementNS("http://www.w3.org/1999/xhtml",type):document.createElement(type),"undefined"!=typeof parent&&parent.appendChild(el),el},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(el){return"undefined"!=typeof el.month?el:"undefined"!=typeof el.parentNode.month?el.parentNode:null},Calendar.findYear=function(el){return"undefined"!=typeof el.year?el:"undefined"!=typeof el.parentNode.year?el.parentNode:null},Calendar.showMonthsCombo=function(){var cal=Calendar._C;if(!cal)return!1;var cal=cal,cd=cal.activeDiv,mc=cal.monthsCombo;cal.hilitedMonth&&Calendar.removeClass(cal.hilitedMonth,"hilite"),cal.activeMonth&&Calendar.removeClass(cal.activeMonth,"active");var mon=cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];Calendar.addClass(mon,"active"),cal.activeMonth=mon;var s=mc.style;if(s.display="block",cd.navtype<0)s.left=cd.offsetLeft+"px";else{var mcw=mc.offsetWidth;"undefined"==typeof mcw&&(mcw=50),s.left=cd.offsetLeft+cd.offsetWidth-mcw+"px"}s.top=cd.offsetTop+cd.offsetHeight+"px"},Calendar.showYearsCombo=function(fwd){var cal=Calendar._C;if(!cal)return!1;var cal=cal,cd=cal.activeDiv,yc=cal.yearsCombo;cal.hilitedYear&&Calendar.removeClass(cal.hilitedYear,"hilite"),cal.activeYear&&Calendar.removeClass(cal.activeYear,"active"),cal.activeYear=null;for(var Y=cal.date.getFullYear()+(fwd?1:-1),yr=yc.firstChild,show=!1,i=12;i>0;--i)Y>=cal.minYear&&Y<=cal.maxYear?(yr.innerHTML=Y,yr.year=Y,yr.style.display="block",show=!0):yr.style.display="none",yr=yr.nextSibling,Y+=fwd?cal.yearStep:-cal.yearStep;if(show){var s=yc.style;if(s.display="block",cd.navtype<0)s.left=cd.offsetLeft+"px";else{var ycw=yc.offsetWidth;"undefined"==typeof ycw&&(ycw=50),s.left=cd.offsetLeft+cd.offsetWidth-ycw+"px"}s.top=cd.offsetTop+cd.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)return removeEvent(document,"mouseup",tableMouseUp),removeEvent(document,"mouseover",tableMouseOver),removeEvent(document,"mousemove",tableMouseOver),cal._hideCombos(),_C=null,stopEvent(ev)},Calendar.tableMouseOver=function(ev){var cal=Calendar._C;if(cal){var el=cal.activeDiv,target=Calendar.getTargetElement(ev);if(target==el||target.parentNode==el?(Calendar.addClass(el,"hilite active"),Calendar.addClass(el.parentNode,"rowhilite")):(("undefined"==typeof el.navtype||50!=el.navtype&&(0==el.navtype||Math.abs(el.navtype)>2))&&Calendar.removeClass(el,"active"),Calendar.removeClass(el,"hilite"),Calendar.removeClass(el.parentNode,"rowhilite")),ev||(ev=window.event),50==el.navtype&&target!=el){var dx,pos=Calendar.getAbsolutePos(el),w=el.offsetWidth,x=ev.clientX,decrease=!0;x>pos.x+w?(dx=x-pos.x-w,decrease=!1):dx=pos.x-x,0>dx&&(dx=0);for(var range=el._range,current=el._current,count=Math.floor(dx/10)%range.length,i=range.length;--i>=0&&range[i]!=current;);for(;count-->0;)decrease?--i<0&&(i=range.length-1):++i>=range.length&&(i=0);var newval=range[i];el.innerHTML=newval,cal.onUpdateTime()}var mon=Calendar.findMonth(target);if(mon)mon.month!=cal.date.getMonth()?(cal.hilitedMonth&&Calendar.removeClass(cal.hilitedMonth,"hilite"),Calendar.addClass(mon,"hilite"),cal.hilitedMonth=mon):cal.hilitedMonth&&Calendar.removeClass(cal.hilitedMonth,"hilite");else{cal.hilitedMonth&&Calendar.removeClass(cal.hilitedMonth,"hilite");var year=Calendar.findYear(target);year&&year.year!=cal.date.getFullYear()?(cal.hilitedYear&&Calendar.removeClass(cal.hilitedYear,"hilite"),Calendar.addClass(year,"hilite"),cal.hilitedYear=year):cal.hilitedYear&&Calendar.removeClass(cal.hilitedYear,"hilite")}return Calendar.stopEvent(ev)}},Calendar.tableMouseDown=function(ev){return Calendar.getTargetElement(ev)==Calendar.getElement(ev)?Calendar.stopEvent(ev):void 0},Calendar.calDragIt=function(ev){var cal=Calendar._C;if(!cal||!cal.dragging)return!1;var posX,posY;Calendar.is_ie?(posY=window.event.clientY+document.body.scrollTop,posX=window.event.clientX+document.body.scrollLeft):(posX=ev.pageX,posY=ev.pageY),cal.hideShowCovered();var st=cal.element.style;return st.left=posX-cal.xOffs+"px",st.top=posY-cal.yOffs+"px",Calendar.stopEvent(ev)},Calendar.calDragEnd=function(ev){var cal=Calendar._C;if(!cal)return!1;with(cal.dragging=!1,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;if(cal.activeDiv=el,Calendar._C=cal,300!=el.navtype)with(Calendar)50==el.navtype?(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);return-1==el.navtype||1==el.navtype?(cal.timeout&&clearTimeout(cal.timeout),cal.timeout=setTimeout("Calendar.showMonthsCombo()",250)):-2==el.navtype||2==el.navtype?(cal.timeout&&clearTimeout(cal.timeout),cal.timeout=setTimeout(el.navtype>0?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250)):cal.timeout=null,Calendar.stopEvent(ev)},Calendar.dayMouseDblClick=function(ev){Calendar.cellClick(Calendar.getElement(ev),ev||window.event),Calendar.is_ie&&document.selection.empty()},Calendar.dayMouseOver=function(ev){var el=Calendar.getElement(ev);return Calendar.isRelated(el,ev)||Calendar._C||el.disabled?!1:(el.ttip&&("_"==el.ttip.substr(0,1)&&(el.ttip=el.caldate.print(el.calendar.ttDateFormat)+el.ttip.substr(1)),el.calendar.tooltips.innerHTML=el.ttip),300!=el.navtype&&(Calendar.addClass(el,"hilite"),el.caldate&&Calendar.addClass(el.parentNode,"rowhilite")),Calendar.stopEvent(ev))},Calendar.dayMouseOut=function(ev){with(Calendar){var el=getElement(ev);return isRelated(el,ev)||_C||el.disabled?!1:(removeClass(el,"hilite"),el.caldate&&removeClass(el.parentNode,"rowhilite"),el.calendar&&(el.calendar.tooltips.innerHTML=_TT.SEL_DATE),stopEvent(ev))}},Calendar.cellClick=function(el,ev){function setMonth(m){var day=date.getDate(),max=date.getMonthDays(m);day>max&&date.setDate(max),date.setMonth(m)}var cal=el.calendar,closing=!1,newdate=!1,date=null;if("undefined"==typeof el.navtype){cal.currentDateEl&&(Calendar.removeClass(cal.currentDateEl,"selected"),Calendar.addClass(el,"selected"),closing=cal.currentDateEl==el,closing||(cal.currentDateEl=el)),cal.date.setDateOnly(el.caldate),date=cal.date;var other_month=!(cal.dateClicked=!el.otherMonth);other_month||cal.currentDateEl?newdate=!el.disabled:cal._toggleMultipleDate(new Date(date)),other_month&&cal._init(cal.firstDayOfWeek,date)}else{if(200==el.navtype)return Calendar.removeClass(el,"hilite"),void cal.callCloseHandler();date=new Date(cal.date),0==el.navtype&&date.setDateOnly(new Date),cal.dateClicked=!1;var year=date.getFullYear(),mon=date.getMonth();switch(el.navtype){case 400:Calendar.removeClass(el,"hilite");var text=Calendar._TT.ABOUT;return"undefined"!=typeof text?text+=cal.showsTime?Calendar._TT.ABOUT_TIME:"":text='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 at yahoo.com> to get it into the distribution  ;-)\n\nThank you!\nhttp://dynarch.com/mishoo/calendar.epl\n',void alert(text);case-2:year>cal.minYear&&date.setFullYear(year-1);break;case-1:mon>0?setMonth(mon-1):year-->cal.minYear&&(date.setFullYear(year),setMonth(11));break;case 1:11>mon?setMonth(mon+1):year<cal.maxYear&&(date.setFullYear(year+1),setMonth(0));break;case 2:year<cal.maxYear&&date.setFullYear(year+1);break;case 100:return void cal.setFirstDayOfWeek(el.fdow);case 50:for(var range=el._range,current=el.innerHTML,i=range.length;--i>=0&&range[i]!=current;);ev&&ev.shiftKey?--i<0&&(i=range.length-1):++i>=range.length&&(i=0);var newval=range[i];return el.innerHTML=newval,void cal.onUpdateTime();case 0:if("function"==typeof cal.getDateStatus&&cal.getDateStatus(date,date.getFullYear(),date.getMonth(),date.getDate()))return!1}date.equalsTo(cal.date)?0==el.navtype&&(newdate=closing=!0):(cal.setDate(date),newdate=!0)}newdate&&ev&&cal.callHandler(),closing&&(Calendar.removeClass(el,"hilite"),ev&&cal.callCloseHandler())},Calendar.prototype.create=function(_par){var parent=null;_par?(parent=_par,this.isPopup=!1):(parent=document.getElementsByTagName("body")[0],this.isPopup=!0),this.date=this.dateStr?new Date(this.dateStr):new Date;var table=Calendar.createElement("table");this.table=table,table.cellSpacing=0,table.cellPadding=0,table.calendar=this,Calendar.addEvent(table,"mousedown",Calendar.tableMouseDown);var div=Calendar.createElement("div");this.element=div,div.className="calendar",this.isPopup&&(div.style.position="absolute",div.style.display="none"),div.appendChild(table);var thead=Calendar.createElement("thead",table),cell=null,row=null,cal=this,hh=function(text,cs,navtype){return cell=Calendar.createElement("td",row),cell.colSpan=cs,cell.className="button",0!=navtype&&Math.abs(navtype)<=2&&(cell.className+=" nav"),Calendar._add_evs(cell),cell.calendar=cal,cell.navtype=navtype,cell.innerHTML="<div unselectable='on'>"+text+"</div>",cell};row=Calendar.createElement("tr",thead);var title_length=6;this.isPopup&&--title_length,this.weekNumbers&&++title_length,hh("?",1,400).ttip=Calendar._TT.INFO,this.title=hh("",title_length,300),this.title.className="title",this.isPopup&&(this.title.ttip=Calendar._TT.DRAG_TO_MOVE,this.title.style.cursor="move",hh("&#x00d7;",1,200).ttip=Calendar._TT.CLOSE),row=Calendar.createElement("tr",thead),row.className="headrow",this._nav_py=hh("&#x00ab;",1,-2),this._nav_py.ttip=Calendar._TT.PREV_YEAR,this._nav_pm=hh("&#x2039;",1,-1),this._nav_pm.ttip=Calendar._TT.PREV_MONTH,this._nav_now=hh(Calendar._TT.TODAY,this.weekNumbers?4:3,0),this._nav_now.ttip=Calendar._TT.GO_TODAY,this._nav_nm=hh("&#x203a;",1,1),this._nav_nm.ttip=Calendar._TT.NEXT_MONTH,this._nav_ny=hh("&#x00bb;",1,2),this._nav_ny.ttip=Calendar._TT.NEXT_YEAR,row=Calendar.createElement("tr",thead),row.className="daynames",this.weekNumbers&&(cell=Calendar.createElement("td",row),cell.className="name wn",cell.innerHTML=Calendar._TT.WK);for(var i=7;i>0;--i)cell=Calendar.createElement("td",row),i||(cell.navtype=100,cell.calendar=this,Calendar._add_evs(cell));this.firstdayname=this.weekNumbers?row.firstChild.nextSibling:row.firstChild,this._displayWeekdays();var tbody=Calendar.createElement("tbody",table);for(this.tbody=tbody,i=6;i>0;--i){row=Calendar.createElement("tr",tbody),this.weekNumbers&&(cell=Calendar.createElement("td",row));for(var j=7;j>0;--j)cell=Calendar.createElement("td",row),cell.calendar=this,Calendar._add_evs(cell)}this.showsTime?(row=Calendar.createElement("tr",tbody),row.className="time",cell=Calendar.createElement("td",row),cell.className="time",cell.colSpan=2,cell.innerHTML=Calendar._TT.TIME||" ",cell=Calendar.createElement("td",row),cell.className="time",cell.colSpan=this.weekNumbers?4:3,function(){function makeTimePart(className,init,range_start,range_end){var part=Calendar.createElement("span",cell);if(part.className=className,part.innerHTML=init,part.calendar=cal,part.ttip=Calendar._TT.TIME_PART,part.navtype=50,part._range=[],"number"!=typeof range_start)part._range=range_start;else for(var i=range_start;range_end>=i;++i){var txt;txt=10>i&&range_end>=10?"0"+i:""+i,part._range[part._range.length]=txt}return Calendar._add_evs(part),part}var hrs=cal.date.getHours(),mins=cal.date.getMinutes(),t12=!cal.time24,pm=hrs>12;t12&&pm&&(hrs-=12);var H=makeTimePart("hour",hrs,t12?1:0,t12?12:23),span=Calendar.createElement("span",cell);span.innerHTML=":",span.className="colon";var M=makeTimePart("minute",mins,0,59),AP=null;cell=Calendar.createElement("td",row),cell.className="time",cell.colSpan=2,t12?AP=makeTimePart("ampm",pm?"pm":"am",["am","pm"]):cell.innerHTML=" ",cal.onSetTime=function(){var pm,hrs=this.date.getHours(),mins=this.date.getMinutes();t12&&(pm=hrs>=12,pm&&(hrs-=12),0==hrs&&(hrs=12),AP.innerHTML=pm?"pm":"am"),H.innerHTML=10>hrs?"0"+hrs:hrs,M.innerHTML=10>mins?"0"+mins:mins},cal.onUpdateTime=function(){var date=this.date,h=parseInt(H.innerHTML,10);t12&&(/pm/i.test(AP.innerHTML)&&12>h?h+=12:/am/i.test(AP.innerHTML)&&12==h&&(h=0));var d=date.getDate(),m=date.getMonth(),y=date.getFullYear();date.setHours(h),date.setMinutes(parseInt(M.innerHTML,10)),date.setFullYear(y),date.setMonth(m),date.setDate(d),this.dateClicked=!1,this.callHandler()}}()):this.onSetTime=this.onUpdateTime=function(){};var tfoot=Calendar.createElement("tfoot",table);for(row=Calendar.createElement("tr",tfoot),row.className="footrow",cell=hh(Calendar._TT.SEL_DATE,this.weekNumbers?8:7,300),cell.className="ttip",this.isPopup&&(cell.ttip=Calendar._TT.DRAG_TO_MOVE,cell.style.cursor="move"),this.tooltips=cell,div=Calendar.createElement("div",this.element),this.monthsCombo=div,div.className="combo",i=0;i<Calendar._MN.length;++i){var mn=Calendar.createElement("div");mn.className=Calendar.is_ie?"label-IEfix":"label",mn.month=i,mn.innerHTML=Calendar._SMN[i],div.appendChild(mn)}for(div=Calendar.createElement("div",this.element),this.yearsCombo=div,div.className="combo",i=12;i>0;--i){var yr=Calendar.createElement("div");yr.className=Calendar.is_ie?"label-IEfix":"label",div.appendChild(yr)}this._init(this.firstDayOfWeek,this.date),parent.appendChild(this.element)},Calendar._keyEvent=function(ev){function setVars(){el=cal.currentDateEl;var p=el.pos;x=15&p,y=p>>4,ne=cal.ar_days[y][x]}function prevMonth(){var date=new Date(cal.date);date.setDate(date.getDate()-step),cal.setDate(date)}function nextMonth(){var date=new Date(cal.date);date.setDate(date.getDate()+step),cal.setDate(date)}var cal=window._dynarch_popupCalendar;if(!cal||cal.multiple)return!1;Calendar.is_ie&&(ev=window.event);var act=Calendar.is_ie||"keypress"==ev.type,K=ev.keyCode;if(ev.ctrlKey)switch(K){case 37:act&&Calendar.cellClick(cal._nav_pm);break;case 38:act&&Calendar.cellClick(cal._nav_py);break;case 39:act&&Calendar.cellClick(cal._nav_nm);break;case 40:act&&Calendar.cellClick(cal._nav_ny);break;default:return!1}else switch(K){case 32:Calendar.cellClick(cal._nav_now);break;case 27:act&&cal.callCloseHandler();break;case 37:case 38:case 39:case 40:if(act){var prev,x,y,ne,el,step;for(prev=37==K||38==K,step=37==K||39==K?1:7,setVars();;){switch(K){case 37:if(!(--x>=0)){x=6,K=38;continue}ne=cal.ar_days[y][x];break;case 38:--y>=0?ne=cal.ar_days[y][x]:(prevMonth(),setVars());break;case 39:if(!(++x<7)){x=0,K=40;continue}ne=cal.ar_days[y][x];break;case 40:++y<cal.ar_days.length?ne=cal.ar_days[y][x]:(nextMonth(),setVars())}break}ne&&(ne.disabled?prev?prevMonth():nextMonth():Calendar.cellClick(ne))}break;case 13:act&&Calendar.cellClick(cal.currentDateEl,ev);break;default:return!1}return Calendar.stopEvent(ev)},Calendar.prototype._init=function(firstDayOfWeek,date){var today=new Date,TY=today.getFullYear(),TM=today.getMonth(),TD=today.getDate();this.table.style.visibility="hidden";var year=date.getFullYear();year<this.minYear?(year=this.minYear,date.setFullYear(year)):year>this.maxYear&&(year=this.maxYear,date.setFullYear(year)),this.firstDayOfWeek=firstDayOfWeek,this.date=new Date(date);{var month=date.getMonth(),mday=date.getDate();date.getMonthDays()}date.setDate(1);var day1=(date.getDay()-this.firstDayOfWeek)%7;0>day1&&(day1+=7),date.setDate(-day1),date.setDate(date.getDate()+1);for(var row=this.tbody.firstChild,ar_days=(Calendar._SMN[month],this.ar_days=new Array),weekend=Calendar._TT.WEEKEND,dates=this.multiple?this.datesCells={}:null,i=0;6>i;++i,row=row.nextSibling){var cell=row.firstChild;this.weekNumbers&&(cell.className="day wn",cell.innerHTML=date.getWeekNumber(),cell=cell.nextSibling),row.className="daysrow";for(var iday,hasdays=!1,dpos=ar_days[i]=[],j=0;7>j;++j,cell=cell.nextSibling,date.setDate(iday+1)){iday=date.getDate();var wday=date.getDay();cell.className="day",cell.pos=i<<4|j,dpos[j]=cell;var current_month=date.getMonth()==month;if(current_month)cell.otherMonth=!1,hasdays=!0;else{if(!this.showsOtherMonths){cell.className="emptycell",cell.innerHTML=" ",cell.disabled=!0;continue}cell.className+=" othermonth",cell.otherMonth=!0}if(cell.disabled=!1,cell.innerHTML=this.getDateText?this.getDateText(date,iday):iday,dates&&(dates[date.print("%Y%m%d")]=cell),this.getDateStatus){var status=this.getDateStatus(date,year,month,iday);if(this.getDateToolTip){var toolTip=this.getDateToolTip(date,year,month,iday);toolTip&&(cell.title=toolTip)}status===!0?(cell.className+=" disabled",cell.disabled=!0):(/disabled/i.test(status)&&(cell.disabled=!0),cell.className+=" "+status)}cell.disabled||(cell.caldate=new Date(date),cell.ttip="_",!this.multiple&&current_month&&iday==mday&&this.hiliteToday&&(cell.className+=" selected",this.currentDateEl=cell),date.getFullYear()==TY&&date.getMonth()==TM&&iday==TD&&(cell.className+=" today",cell.ttip+=Calendar._TT.PART_TODAY),-1!=weekend.indexOf(wday.toString())&&(cell.className+=cell.otherMonth?" oweekend":" weekend"))}hasdays||this.showsOtherMonths||(row.className="emptyrow")}this.title.innerHTML=Calendar._MN[month]+", "+year,this.onSetTime(),this.table.style.visibility="visible",this._initMultipleDates()},Calendar.prototype._initMultipleDates=function(){if(this.multiple)for(var i in this.multiple){var cell=this.datesCells[i],d=this.multiple[i];d&&cell&&(cell.className+=" selected")}},Calendar.prototype._toggleMultipleDate=function(date){if(this.multiple){var ds=date.print("%Y%m%d"),cell=this.datesCells[ds];if(cell){var d=this.multiple[ds];d?(Calendar.removeClass(cell,"selected"),delete this.multiple[ds]):(Calendar.addClass(cell,"selected"),this.multiple[ds]=date)}}},Calendar.prototype.setDateToolTipHandler=function(unaryFunction){this.getDateToolTip=unaryFunction},Calendar.prototype.setDate=function(date){date.equalsTo(this.date)||this._init(this.firstDayOfWeek,date)},Calendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date)},Calendar.prototype.setFirstDayOfWeek=function(firstDayOfWeek){this._init(firstDayOfWeek,this.date),this._displayWeekdays()},Calendar.prototype.setDateStatusHandler=Calendar.prototype.setDisabledHandler=function(unaryFunction){this.getDateStatus=unaryFunction},Calendar.prototype.setRange=function(a,z){this.minYear=a,this.maxYear=z},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 el=this.element.parentNode;el.removeChild(this.element),Calendar._C=null,window._dynarch_popupCalendar=null},Calendar.prototype.reparent=function(new_parent){var el=this.element;el.parentNode.removeChild(el),new_parent.appendChild(el)},Calendar._checkCalendar=function(ev){var calendar=window._dynarch_popupCalendar;if(!calendar)return!1;for(var el=Calendar.is_ie?Calendar.getElement(ev):Calendar.getTargetElement(ev);null!=el&&el!=calendar.element;el=el.parentNode);return null==el?(window._dynarch_popupCalendar.callCloseHandler(),Calendar.stopEvent(ev)):void 0},Calendar.prototype.show=function(){for(var rows=this.table.getElementsByTagName("tr"),i=rows.length;i>0;){var row=rows[--i];Calendar.removeClass(row,"rowhilite");for(var cells=row.getElementsByTagName("td"),j=cells.length;j>0;){var cell=cells[--j];Calendar.removeClass(cell,"hilite"),Calendar.removeClass(cell,"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(x,y){var s=this.element.style;s.left=x+"px",s.top=y+"px",this.show()},Calendar.prototype.showAtElement=function(el,opts){function fixPosition(box){box.x<0&&(box.x=0),box.y<0&&(box.y=0);var cp=document.createElement("div"),s=cp.style;s.position="absolute",s.right=s.bottom=s.width=s.height="0px",document.body.appendChild(cp);var br=Calendar.getAbsolutePos(cp);document.body.removeChild(cp),Calendar.is_ie?(br.y+=document.body.scrollTop,br.x+=document.body.scrollLeft):(br.y+=window.scrollY,br.x+=window.scrollX);var tmp=box.x+box.width-br.x;tmp>0&&(box.x-=tmp),tmp=box.y+box.height-br.y,tmp>0&&(box.y-=tmp)}var self=this,p=Calendar.getAbsolutePos(el);return opts&&"string"==typeof opts?(this.element.style.display="block",Calendar.continuation_for_the_fucking_khtml_browser=function(){var w=self.element.offsetWidth,h=self.element.offsetHeight;self.element.style.display="none";var valign=opts.substr(0,1),halign="l";switch(opts.length>1&&(halign=opts.substr(1,1)),valign){case"T":p.y-=h;break;case"B":p.y+=el.offsetHeight;break;case"C":p.y+=(el.offsetHeight-h)/2;break;case"t":p.y+=el.offsetHeight-h;break;case"b":}switch(halign){case"L":p.x-=w;break;case"R":p.x+=el.offsetWidth;break;case"C":p.x+=(el.offsetWidth-w)/2;break;case"l":p.x+=el.offsetWidth-w;break;case"r":}p.width=w,p.height=h+40,self.monthsCombo.style.display="none",fixPosition(p),self.showAt(p.x,p.y)},void(Calendar.is_khtml?setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()",10):Calendar.continuation_for_the_fucking_khtml_browser())):(this.showAt(p.x,p.y+el.offsetHeight),!0)},Calendar.prototype.setDateFormat=function(str){this.dateFormat=str},Calendar.prototype.setTtDateFormat=function(str){this.ttDateFormat=str},Calendar.prototype.parseDate=function(str,fmt){fmt||(fmt=this.dateFormat),this.setDate(Date.parseDate(str,fmt))},Calendar.prototype.hideShowCovered=function(){function getVisib(obj){var value=obj.style.visibility;return value||(value=document.defaultView&&"function"==typeof document.defaultView.getComputedStyle?Calendar.is_khtml?"":document.defaultView.getComputedStyle(obj,"").getPropertyValue("visibility"):obj.currentStyle?obj.currentStyle.visibility:""),value}if(Calendar.is_ie||Calendar.is_opera)for(var tags=new Array("applet","iframe","select"),el=this.element,p=Calendar.getAbsolutePos(el),EX1=p.x,EX2=el.offsetWidth+EX1,EY1=p.y,EY2=el.offsetHeight+EY1,k=tags.length;k>0;)for(var ar=document.getElementsByTagName(tags[--k]),cc=null,i=ar.length;i>0;){cc=ar[--i],p=Calendar.getAbsolutePos(cc);var CX1=p.x,CX2=cc.offsetWidth+CX1,CY1=p.y,CY2=cc.offsetHeight+CY1;this.hidden||CX1>EX2||EX1>CX2||CY1>EY2||EY1>CY2?(cc.__msh_save_visibility||(cc.__msh_save_visibility=getVisib(cc)),cc.style.visibility=cc.__msh_save_visibility):(cc.__msh_save_visibility||(cc.__msh_save_visibility=getVisib(cc)),cc.style.visibility="hidden")}},Calendar.prototype._displayWeekdays=function(){for(var fdow=this.firstDayOfWeek,cell=this.firstdayname,weekend=Calendar._TT.WEEKEND,i=0;7>i;++i){cell.className="day name";var realday=(i+fdow)%7;i&&(cell.ttip=Calendar._TT.DAY_FIRST.replace("%s",Calendar._DN[realday]),cell.navtype=100,cell.calendar=this,cell.fdow=realday,Calendar._add_evs(cell)),-1!=weekend.indexOf(realday.toString())&&Calendar.addClass(cell,"weekend"),cell.innerHTML=Calendar._SDN[(i+fdow)%7],cell=cell.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?(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;with(this.xOffs=posX-parseInt(st.left),this.yOffs=posY-parseInt(st.top),Calendar)addEvent(document,"mousemove",calDragIt),addEvent(document,"mouseup",calDragEnd)}},Date._MD=new Array(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(str,fmt){var today=new Date,y=0,m=-1,d=0,a=str.split(/\W+/),b=fmt.match(/%./g),i=0,j=0,hr=0,min=0;for(i=0;i<a.length;++i)if(a[i])switch(b[i]){case"%d":case"%e":d=parseInt(a[i],10);break;case"%m":m=parseInt(a[i],10)-1;break;case"%Y":case"%y":y=parseInt(a[i],10),100>y&&(y+=y>29?1900:2e3);break;case"%b":case"%B":for(j=0;12>j;++j)if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){m=j;break}break;case"%H":case"%I":case"%k":case"%l":hr=parseInt(a[i],10);break;case"%P":case"%p":/pm/i.test(a[i])&&12>hr?hr+=12:/am/i.test(a[i])&&hr>=12&&(hr-=12);break;case"%M":min=parseInt(a[i],10)}if(isNaN(y)&&(y=today.getFullYear()),isNaN(m)&&(m=today.getMonth()),isNaN(d)&&(d=today.getDate()),isNaN(hr)&&(hr=today.getHours()),isNaN(min)&&(min=today.getMinutes()),0!=y&&-1!=m&&0!=d)return new Date(y,m,d,hr,min,0);for(y=0,m=-1,d=0,i=0;i<a.length;++i)if(-1!=a[i].search(/[a-zA-Z]+/)){var t=-1;for(j=0;12>j;++j)if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){t=j;break}-1!=t&&(-1!=m&&(d=m+1),m=t)}else parseInt(a[i],10)<=12&&-1==m?m=a[i]-1:parseInt(a[i],10)>31&&0==y?(y=parseInt(a[i],10),100>y&&(y+=y>29?1900:2e3)):0==d&&(d=a[i]);return 0==y&&(y=today.getFullYear()),-1!=m&&0!=d?new Date(y,m,d,hr,min,0):today},Date.prototype.getMonthDays=function(month){var year=this.getFullYear();return"undefined"==typeof month&&(month=this.getMonth()),0!=year%4||0==year%100&&0!=year%400||1!=month?Date._MD[month]:29},Date.prototype.getDayOfYear=function(){var now=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0),then=new Date(this.getFullYear(),0,0,0,0,0),time=now-then;return Math.floor(time/Date.DAY)},Date.prototype.getWeekNumber=function(){var d=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0),DoW=d.getDay();d.setDate(d.getDate()-(DoW+6)%7+3);var ms=d.valueOf();return d.setMonth(0),d.setDate(4),Math.round((ms-d.valueOf())/6048e5)+1},Date.prototype.equalsTo=function(date){return this.getFullYear()==date.getFullYear()&&this.getMonth()==date.getMonth()&&this.getDate()==date.getDate()&&this.getHours()==date.getHours()&&this.getMinutes()==date.getMinutes()},Date.prototype.setDateOnly=function(date){var tmp=new Date(date);this.setDate(1),this.setFullYear(tmp.getFullYear()),this.setMonth(tmp.getMonth()),this.setDate(tmp.getDate())},Date.prototype.print=function(str){var m=this.getMonth(),d=this.getDate(),y=this.getFullYear(),wn=this.getWeekNumber(),w=this.getDay(),s={},hr=this.getHours(),pm=hr>=12,ir=pm?hr-12:hr,dy=this.getDayOfYear();0==ir&&(ir=12);var min=this.getMinutes(),sec=this.getSeconds();s["%a"]=Calendar._SDN[w],s["%A"]=Calendar._DN[w],s["%b"]=Calendar._SMN[m],s["%B"]=Calendar._MN[m],s["%C"]=1+Math.floor(y/100),s["%d"]=10>d?"0"+d:d,s["%e"]=d,s["%H"]=10>hr?"0"+hr:hr,s["%I"]=10>ir?"0"+ir:ir,s["%j"]=100>dy?10>dy?"00"+dy:"0"+dy:dy,s["%k"]=hr,s["%l"]=ir,s["%m"]=9>m?"0"+(1+m):1+m,s["%M"]=10>min?"0"+min:min,s["%n"]="\n",s["%p"]=pm?"PM":"AM",s["%P"]=pm?"pm":"am",s["%s"]=Math.floor(this.getTime()/1e3),s["%S"]=10>sec?"0"+sec:sec,s["%t"]="	",s["%U"]=s["%W"]=s["%V"]=10>wn?"0"+wn:wn,s["%u"]=w+1,s["%w"]=w,s["%y"]=(""+y).substr(2,2),s["%Y"]=y,s["%%"]="%";var re=/%./g;if(!Calendar.is_ie5&&!Calendar.is_khtml)return str.replace(re,function(par){return s[par]||par});for(var a=str.match(re),i=0;i<a.length;i++){var tmp=s[a[i]];tmp&&(re=new RegExp(a[i],"g"),str=str.replace(re,tmp))}return str},Date.prototype.__msh_oldSetFullYear||(Date.prototype.__msh_oldSetFullYear=Date.prototype.setFullYear,Date.prototype.setFullYear=function(y){var d=new Date(this);d.__msh_oldSetFullYear(y),d.getMonth()!=this.getMonth()&&this.setDate(28),this.__msh_oldSetFullYear(y)}),window._dynarch_popupCalendar=null;
\ No newline at end of file

-----------------------------------------------------------------------

Summary of changes:
 httemplate/elements/calendar.js          |    2 ++
 httemplate/elements/calendar_stripped.js |   15 +--------------
 2 files changed, 3 insertions(+), 14 deletions(-)




More information about the freeside-commits mailing list