/**
 *                                                        ____   _____
 *  Dynarch Calendar -- JSCal2, version 1.0               \  /_  /   /
 *  Built at 2009/05/18 08:52 GMT                          \  / /   /
 *                                                          \/ /_  /
 *  (c) Dynarch.com 2009                                     \  / /
 *  All rights reserved.                                       / /
 *  Visit www.dynarch.com/projects/calendar for details        \/
 *
 */
Calendar=(function(){function v(an){an=an||{};this.args=an=ah(an,{animation:!c,cont:null,bottomBar:true,date:new Date(),fdow:am("fdow"),min:null,max:null,reverseWheel:false,selection:[],selectionType:v.SEL_SINGLE,weekNumbers:false,align:"Bl/ / /T/r",inputField:null,trigger:null,dateFormat:"%Y-%m-%d",opacity:j?1:3,titleFormat:"%b %Y",disabled:Z,dateInfo:Z,onChange:Z,onSelect:Z});this.handlers={};var D=this;function ao(aq){var ap=an[aq];if(!(ap instanceof Array)){ap=[ap]}D.handlers[aq]=ap}an.min=U(an.min);an.max=U(an.max);this.date=U(an.date);this.fdow=an.fdow;ao("onSelect");ao("onChange");this.selection=new v.Selection(an.selection,an.selectionType,t(M,this));var P=H.call(this);if(an.cont){S(an.cont).appendChild(P)}if(an.trigger){o(S(an.trigger),"click",t(this.popup,this,an.trigger,null))}}var N=navigator.userAgent,q=/opera/i.test(N),ae=/Konqueror|Safari|KHTML/i.test(N),j=/msie/i.test(N)&&!q&&!(/mac_powerpc/i.test(N)),c=j&&/msie 6/i.test(N),u=/gecko/i.test(N)&&!ae&&!q&&!j,l=v.prototype;v.SEL_SINGLE=1;v.SEL_MULTIPLE=2;v.SEL_WEEK=3;v.dateToInt=R;v.intToDate=y;v.printDate=X;v.formatString=k;v.i18n=am;I18N=v.I18N={};v.LANG=function(P,D,an){I18N.__=I18N[P]={name:D,data:an}};v.setup=function(D){return new v(D)};l.moveTo=function(aC,az){aC=U(aC);var ay=ab(aC,this.date,true),ap,av=this.args,aD=av.min&&ab(aC,av.min),aE=av.max&&ab(aC,av.max);if(!av.animation){az=false}aa(aD!=null&&aD<=1,[this.els.navPrevMonth,this.els.navPrevYear],"DynarchCalendar-navDisabled");aa(aE!=null&&aE>=-1,[this.els.navNextMonth,this.els.navNextYear],"DynarchCalendar-navDisabled");if(aD<-1){aC=av.min;ap=1;ay=0}if(aE>1){aC=av.max;ap=2;ay=0}this.date=aC;this.refresh(!!az);this.callHooks("onChange",this,aC,az);if(az&&!(ay==0&&az==2)){if(this._bodyAnim){this._bodyAnim.stop()}var ar=this.els.body,at=C("div","DynarchCalendar-animBody-"+Q[ay],ar),aB=ar.firstChild,aq=ai(aB)||0.7,au=ap?V.brakes:ay==0?V.shake:V.accel_ab2,aA=ay*ay>4,an=aA?aB.offsetTop:aB.offsetLeft,ax=at.style,aw=aA?ar.offsetHeight:ar.offsetWidth;if(ay<0){aw+=an}else{if(ay>0){aw=an-aw}else{aw=Math.round(aw/7);if(ap==2){aw=-aw}}}if(!ap&&ay!=0){var P=at.cloneNode(true),D=P.style,ao=2*aw;P.appendChild(aB.cloneNode(true));D[aA?"marginTop":"marginLeft"]=aw+"px";ar.appendChild(P)}aB.style.visibility="hidden";at.innerHTML=Y(this);this._bodyAnim=al({onUpdate:t(function(aG,aI){var aH=au(aG);if(P){var aF=aI(aH,aw,ao)+"px"}if(ap){ax[aA?"marginTop":"marginLeft"]=aI(aH,aw,0)+"px"}else{if(aA||ay==0){ax.marginTop=aI(ay==0?au(aG*aG):aH,0,aw)+"px";if(ay!=0){D.marginTop=aF}}if(!aA||ay==0){ax.marginLeft=aI(aH,0,aw)+"px";if(ay!=0){D.marginLeft=aF}}}if(this.args.opacity>2&&P){ai(P,1-aH);ai(at,aH)}},this),onStop:t(function(aF){ar.innerHTML=Y(this,aC);this._bodyAnim=null},this)})}this._lastHoverDate=null;return aD>=-1&&aE<=1};l.isDisabled=function(D){var P=this.args;return(P.min&&ab(D,P.min)<0)||(P.max&&ab(D,P.max)>0)||P.disabled(D)};l.toggleMenu=function(){s(this,!this._menuVisible)};l.refresh=function(D){var P=this.els;if(!D){P.body.innerHTML=Y(this)}P.title.innerHTML=B(this);P.yearInput.value=this.date.getFullYear()};l.redraw=function(){var D=this.els;this.refresh();D.dayNames.innerHTML=h(this);D.menu.innerHTML=ag(this);if(D.bottomBar){D.bottomBar.innerHTML=E(this)}r(D.menu,t(function(P){if(P.className=="DynarchCalendar-menu-year"){o(P,this._focusEvents);D.yearInput=P}},this))};l.setLanguage=function(D){var P=v.setLanguage(D);if(P){this.fdow=P.data.fdow;this.redraw()}};v.setLanguage=function(D){var P=I18N[D];if(P){I18N.__=P}return P};l.focus=function(){try{this.els[this._menuVisible?"yearInput":"focusLink"].focus()}catch(D){}i.call(this)};l.blur=function(){this.els.focusLink.blur();this.els.yearInput.blur();w.call(this)};l.showAt=function(P,at,aq){if(this._showAnim){this._showAnim.stop()}aq=aq&&this.args.animation;var ar=this.els.topCont,an=this,D=this.els.body.firstChild,ap=D.offsetHeight,ao=ar.style;ao.position="absolute";ao.left=P+"px";ao.top=at+"px";ao.zIndex=10000;ao.display="";if(aq){D.style.marginTop=-ap+"px";this.args.opacity>1&&ai(ar,0);this._showAnim=al({onUpdate:function(au,av){D.style.marginTop=-av(V.accel_b(au),ap,0)+"px";an.args.opacity>1&&ai(ar,au)},onStop:function(){an.args.opacity>1&&ai(ar,"");an._showAnim=null}})}};l.hide=function(){var ao=this.els.topCont,P=this,D=this.els.body.firstChild,an=D.offsetHeight,ap=G(ao).y;if(this.args.animation){if(this._showAnim){this._showAnim.stop()}this._showAnim=al({onUpdate:function(aq,ar){P.args.opacity>1&&ai(ao,1-aq);D.style.marginTop=-ar(V.accel_b(aq),0,an)+"px";ao.style.top=ar(V.accel_ab(aq),ap,ap-10)+"px"},onStop:function(){ao.style.display="none";D.style.marginTop="";P.args.opacity>1&&ai(ao,"");P._showAnim=null}})}else{ao.style.display="none"}};l.popup=function(D,ao){D=S(D);if(!ao){ao=this.args.align}ao=ao.split(/\x2f/);var an=G(D),ar=this.els.topCont,au=ar.style,ap,at=T();au.visibility="hidden";au.display="";this.showAt(0,0);document.body.appendChild(ar);ap={x:ar.offsetWidth,y:ar.offsetHeight};function P(av){var aw={x:aq.x,y:aq.y};if(!av){return aw}if(/B/.test(av)){aw.y+=D.offsetHeight}if(/b/.test(av)){aw.y+=D.offsetHeight-ap.y}if(/T/.test(av)){aw.y-=ap.y}if(/l/.test(av)){aw.x-=ap.x-D.offsetWidth}if(/L/.test(av)){aw.x-=ap.x}if(/R/.test(av)){aw.x+=D.offsetWidth}if(/c/i.test(av)){aw.x+=(D.offsetWidth-ap.x)/2}if(/m/i.test(av)){aw.y+=(D.offsetHeight-ap.y)/2}return aw}var aq=an;aq=P(ao[0]);if(aq.y<at.y){aq.y=an.y;aq=P(ao[1])}if(aq.x+ap.x>at.x+at.w){aq.x=an.x;aq=P(ao[2])}if(aq.y+ap.y>at.y+at.h){aq.y=an.y;aq=P(ao[3])}if(aq.x<at.x){aq.x=an.x;aq=P(ao[4])}this.showAt(aq.x,aq.y,true);au.visibility="";this.focus()};l.callHooks=function(an){var ao=b(arguments,1),D=this.handlers[an],P=0;for(;P<D.length;++P){D[P].apply(this,ao)}};l.addEventListener=function(P,D){this.handlers[P].push(D)};l.removeEventListener=function(ao,an){var D=this.handlers[ao],P=D.length;while(--P>=0){if(D[P]===an){D.splice(P,1)}}};l._getInputYear=function(){var D=parseInt(this.els.yearInput.value,10);if(isNaN(D)){D=this.date.getFullYear()}return D};l._showTooltip=function(D){var P="",ao,an=this.els.tooltip;if(D){D=y(D);ao=this.args.dateInfo(D);if(ao&&ao.tooltip){P="<div class='DynarchCalendar-tooltipCont'>"+X(D,ao.tooltip)+"</div>"}}an.innerHTML=P};var ad=" align='center' cellspacing='0' cellpadding='0'";function h(D){var an=["<table",ad,"><tr>"],P=0;if(D.args.weekNumbers){an.push("<td align='center'><div class='DynarchCalendar-weekNumber'>",am("wk"),"</div></td>")}while(P<7){var ao=(P+++D.fdow)%7;an.push("<td align='center'><div",am("weekend").indexOf(ao)>=0?" class='DynarchCalendar-weekend'>":">",am("sdn")[ao],"</div></td>")}an.push("</tr></table>");return an.join("")}function Y(ar,aC,az){aC=aC||ar.date;az=az||ar.fdow;aC=new Date(aC);var aE=aC.getMonth(),aq=[],aw=0,D=ar.args.weekNumbers;aC.setDate(1);var av=(aC.getDay()-az)%7;if(av<0){av+=7}aC.setDate(-av);aC.setDate(aC.getDate()+1);var aA=new Date(),ao=aA.getDate(),P=aA.getMonth(),aF=aA.getFullYear();aq[aw++]="<table class='DynarchCalendar-bodyTable'"+ad+">";for(var ay=0;ay<6;++ay){aq[aw++]="<tr class='DynarchCalendar-week";if(ay==0){aq[aw++]=" DynarchCalendar-first-row"}if(ay==5){aq[aw++]=" DynarchCalendar-last-row"}aq[aw++]="'>";if(D){aq[aw++]="<td  align='center' class='DynarchCalendar-first-col'><div class='DynarchCalendar-weekNumber'>"+a(aC)+"</div></td>"}for(var ax=0;ax<7;++ax){var aB=aC.getDate(),au=aC.getMonth(),ap=aC.getFullYear(),an=10000*ap+100*(au+1)+aB,aD=ar.selection.isSelected(an),at=ar.isDisabled(aC);aq[aw++]="<td align='center' class='";if(ax==0&&!D){aq[aw++]=" DynarchCalendar-first-col"}if(ax==0&&ay==0){ar._firstDateVisible=an}if(ax==6){aq[aw++]=" DynarchCalendar-last-col";if(ay==5){ar._lastDateVisible=an}}if(aD){aq[aw++]=" DynarchCalendar-td-selected"}aq[aw++]="'><div dyc-type='date' unselectable='on' dyc-date='"+an+"' ";if(at){aq[aw++]="disabled='1' "}aq[aw++]="class='DynarchCalendar-day";if(am("weekend").indexOf(aC.getDay())>=0){aq[aw++]=" DynarchCalendar-weekend"}if(au!=aE){aq[aw++]=" DynarchCalendar-day-othermonth"}if(aB==ao&&au==P&&ap==aF){aq[aw++]=" DynarchCalendar-day-today"}if(at){aq[aw++]=" DynarchCalendar-day-disabled"}if(aD){aq[aw++]=" DynarchCalendar-day-selected"}at=ar.args.dateInfo(aC);if(at&&at.klass){aq[aw++]=" "+at.klass}aq[aw++]="'>"+aB+"</div></td>";aC.setDate(aB+1)}aq[aw++]="</tr>"}aq[aw++]="</table>";return aq.join("")}function m(D){var P=["<table class='DynarchCalendar-topCont'",ad,"><tr><td align='center'><div class='DynarchCalendar'>",!j?"<button class='DynarchCalendar-focusLink'></button>":"<a class='DynarchCalendar-focusLink' href='#'></a>","<div class='DynarchCalendar-topBar'><div dyc-type='nav' dyc-btn='-Y' dyc-cls='hover-navBtn,pressed-navBtn' class='DynarchCalendar-navBtn DynarchCalendar-prevYear'><div></div></div><div dyc-type='nav' dyc-btn='+Y' dyc-cls='hover-navBtn,pressed-navBtn' class='DynarchCalendar-navBtn DynarchCalendar-nextYear'><div></div></div><div dyc-type='nav' dyc-btn='-M' dyc-cls='hover-navBtn,pressed-navBtn' class='DynarchCalendar-navBtn DynarchCalendar-prevMonth'><div></div></div><div dyc-type='nav' dyc-btn='+M' dyc-cls='hover-navBtn,pressed-navBtn' class='DynarchCalendar-navBtn DynarchCalendar-nextMonth'><div></div></div><table class='DynarchCalendar-titleCont'",ad,"><tr><td align='center'><div dyc-type='title' dyc-btn='menu' dyc-cls='hover-title,pressed-title' class='DynarchCalendar-title'>",B(D),"</div></td></tr></table><div class='DynarchCalendar-dayNames'>",h(D),"</div></div><div class='DynarchCalendar-body'></div>"];if(D.args.bottomBar){P.push("<div class='DynarchCalendar-bottomBar'>",E(D),"</div>")}P.push("<div class='DynarchCalendar-menu' style='display: none'>",ag(D),"</div><div class='DynarchCalendar-tooltip'></div></div></td></tr></table>");return P.join("")}function B(D){return"<div unselectable='on'>"+X(D.date,D.args.titleFormat)+"</div>"}function ag(P){var ap=["<table height='100%'",ad,"><tr><td align='center'><table style='margin-top: 1.5em'",ad,"><tr><td align='center' colspan='3'><input dyc-btn='year' class='DynarchCalendar-menu-year' size='6' value='",P.date.getFullYear(),"' /></td></tr><tr><td align='center'><div dyc-type='menubtn' dyc-cls='hover-navBtn,pressed-navBtn' dyc-btn='today'>",am("goToday"),"</div></td></tr></table><p class='DynarchCalendar-menu-sep'>&nbsp;</p><table class='DynarchCalendar-menu-mtable'",ad,">"],aq=am("smn"),ao=0,D=ap.length,an;while(ao<12){ap[D++]="<tr>";for(an=4;--an>0;){ap[D++]="<td align='center'><div dyc-type='menubtn' dyc-cls='hover-navBtn,pressed-navBtn' dyc-btn='m"+ao+"' class='DynarchCalendar-menu-month'>"+aq[ao++]+"</div></td>"}ap[D++]="</tr>"}ap[D++]="</table></td></tr></table>";return ap.join("")}function E(D){return"<table"+ad+"><tr><td align='center'><div dyc-btn='today' dyc-cls='hover-bottomBar-today,pressed-bottomBar-today' dyc-type='bottomBar-today' class='DynarchCalendar-bottomBar-today'>"+am("today")+"</div></td></tr></table>"}var p={"DynarchCalendar-topCont":"topCont","DynarchCalendar-focusLink":"focusLink",DynarchCalendar:"main","DynarchCalendar-topBar":"topBar","DynarchCalendar-title":"title","DynarchCalendar-dayNames":"dayNames","DynarchCalendar-body":"body","DynarchCalendar-menu":"menu","DynarchCalendar-menu-year":"yearInput","DynarchCalendar-bottomBar":"bottomBar","DynarchCalendar-tooltip":"tooltip","DynarchCalendar-navBtn DynarchCalendar-prevYear":"navPrevYear","DynarchCalendar-navBtn DynarchCalendar-nextYear":"navNextYear","DynarchCalendar-navBtn DynarchCalendar-prevMonth":"navPrevMonth","DynarchCalendar-navBtn DynarchCalendar-nextMonth":"navNextMonth"};function H(){var an=C("div"),P=this.els={},D={mousedown:t(F,this,true),mouseup:t(F,this,false),mouseover:t(O,this,true),mouseout:t(O,this,false),keypress:t(I,this)};D[u?"DOMMouseScroll":"mousewheel"]=t(A,this);if(j){D.dblclick=D.mousedown;D.keydown=D.keypress}an.innerHTML=m(this);r(an.firstChild,function(ap){var ao=p[ap.className];if(ao){P[ao]=ap}if(j){ap.setAttribute("unselectable","on")}});o(P.main,D);o([P.focusLink,P.yearInput],this._focusEvents={focus:t(i,this),blur:t(e,this)});this.moveTo(this.date,false);return P.topCont}function i(){if(this._bluringTimeout){clearTimeout(this._bluringTimeout)}this.focused=true;J(this.els.main,"DynarchCalendar-focused")}function w(){this.focused=false;af(this.els.main,"DynarchCalendar-focused");if(this._menuVisible){s(this,false)}if(!this.args.cont){this.hide()}}function e(){this._bluringTimeout=setTimeout(t(w,this),50)}var Q={"-3":"backYear","-2":"back","0":"now","2":"fwd","3":"fwdYear"};function W(P,ao,D){if(this._bodyAnim){this._bodyAnim.stop()}var an;if(ao!=0){an=new Date(P.date);an.setDate(1);switch(ao){case"-Y":case -2:an.setFullYear(an.getFullYear()-1);break;case"+Y":case 2:an.setFullYear(an.getFullYear()+1);break;case"-M":case -1:an.setMonth(an.getMonth()-1);break;case"+M":case 1:an.setMonth(an.getMonth()+1);break}}else{an=new Date()}return P.moveTo(an,!D)}function s(an,P){an._menuVisible=P;aa(P,an.els.title,"DynarchCalendar-pressed-title");var ao=an.els.menu;if(c){ao.style.height=an.els.main.offsetHeight+"px"}if(!an.args.animation){K(ao,P);if(an.focused){an.focus()}}else{if(an._menuAnim){an._menuAnim.stop()}var D=an.els.main.offsetHeight;if(c){ao.style.width=an.els.topBar.offsetWidth+"px"}if(P){ao.firstChild.style.marginTop=-D+"px";an.args.opacity>0&&ai(ao,0);K(ao,true)}an._menuAnim=al({onUpdate:function(ap,aq){ao.firstChild.style.marginTop=aq(V.accel_b(ap),-D,0,!P)+"px";an.args.opacity>0&&ai(ao,aq(V.accel_b(ap),0,0.85,!P))},onStop:function(){an.args.opacity>0&&ai(ao,0.85);ao.firstChild.style.marginTop="";an._menuAnim=null;if(!P){K(ao,false);if(an.focused){an.focus()}}}})}}function F(au,at){at=at||window.event;var ap=n(at);if(ap&&!ap.getAttribute("disabled")){var D=ap.getAttribute("dyc-btn"),aq=ap.getAttribute("dyc-date"),ao=this.selection,P,an={mouseover:aj,mousemove:aj,mouseup:function(ax){var aw=ap.getAttribute("dyc-cls");if(aw){af(ap,ak(aw,1))}clearTimeout(P);d(document,an,true);an=null}};if(au){setTimeout(t(this.focus,this),1);var av=ap.getAttribute("dyc-cls");if(av){J(ap,ak(av,1))}if("menu"==D){this.toggleMenu()}else{if(ap&&/^[+-][MY]$/.test(D)){if(W(this,D)){var ar=t(function(){if(W(this,D,true)){P=setTimeout(ar,40)}else{an.mouseup();W(this,D)}},this);P=setTimeout(ar,350);o(document,an,true)}else{an.mouseup()}}else{if("year"==D){this.els.yearInput.focus();this.els.yearInput.select()}else{if(aq){if(ao.type==v.SEL_MULTIPLE){if(at.shiftKey&&this._selRangeStart){ao.selectRange(this._selRangeStart,aq)}else{if(!at.ctrlKey&&!ao.isSelected(aq)){ao.clear(true)}ao.set(aq,true);this._selRangeStart=aq}}else{ao.set(aq);this.moveTo(y(aq),2)}ap=this._getDateDiv(aq);O.call(this,true,{target:ap})}o(document,an,true)}}}if(j&&an&&/dbl/i.test(at.type)){an.mouseup()}if(/^(DynarchCalendar-(topBar|bottomBar|weekend|weekNumber|menu(-sep)?))?$/.test(ap.className)&&!this.args.cont){an.mousemove=t(g,this);this._mouseDiff=f(at,G(this.els.topCont));o(document,an,true)}}else{if("today"==D){if(!this._menuVisible&&ao.type==v.SEL_SINGLE){ao.set(new Date())}this.moveTo(new Date(),true);s(this,false)}else{if(/^m([0-9]+)/.test(D)){var aq=new Date(this.date);aq.setDate(1);aq.setMonth(RegExp.$1);aq.setFullYear(this._getInputYear());this.moveTo(aq,true);s(this,false)}}}if(!j){aj(at)}}}function g(P){P=P||window.event;var D=this.els.topCont.style,an=f(P,this._mouseDiff);D.left=an.x+"px";D.top=an.y+"px"}function n(P){var D=P.target||P.srcElement,an=D;while(D&&D.getAttribute&&!D.getAttribute("dyc-type")){D=D.parentNode}return D.getAttribute&&D||an}function ak(D,P){return"DynarchCalendar-"+D.split(/,/)[P]}function O(ap,ao){ao=ao||window.event;var an=n(ao);if(an){var P=an.getAttribute("dyc-type");if(P&&!an.getAttribute("disabled")){if(!ap||!this._bodyAnim||P!="date"){var D=an.getAttribute("dyc-cls");D=D?ak(D,0):"DynarchCalendar-hover-"+P;aa(ap,an,D);if(P=="date"){aa(ap,an.parentNode.parentNode,"DynarchCalendar-hover-week");this._showTooltip(an.getAttribute("dyc-date"))}af(this._getDateDiv(this._lastHoverDate),"DynarchCalendar-hover-date");this._lastHoverDate=null}}}if(!ap){this._showTooltip()}}function A(P){P=P||window.event;var D=n(P);if(D){var an=D.getAttribute("dyc-btn"),ao=P.wheelDelta?P.wheelDelta/120:-P.detail/3;ao=ao<0?-1:ao>0?1:0;if(this.args.reverseWheel){ao=-ao}if(/Y/i.test(an)){ao*=2}W(this,-ao);aj(P)}}function M(){this.refresh();var D=S(this.args.inputField),P=this.selection;if(D){var an=P.print(this.args.dateFormat);(/input|textarea/i.test(D.tagName))?D.value=an:D.innerHTML=an}this.callHooks("onSelect",this,P)}var ac={37:-1,38:-2,39:1,40:2},L={33:-1,34:1};function I(ax){if(this._menuAnim){return}ax=ax||window.event;var an=ax.target||ax.srcElement,ay=an.getAttribute("dyc-btn"),az=ax.keyCode,au=ax.charCode||az,D=ac[az];if("year"==ay&&az==13){var ap=new Date(this.date);ap.setDate(1);ap.setFullYear(this._getInputYear());this.moveTo(ap,true);s(this,false);return aj(ax)}if(this._menuVisible){if(az==27){s(this,false);return aj(ax)}}else{if(!ax.ctrlKey){D=null}if(D==null&&!ax.ctrlKey){D=L[az]}if(az==36){D=0}if(D!=null){W(this,D);return aj(ax)}au=String.fromCharCode(au).toLowerCase();var at=this.els.yearInput,P=this.selection;if(au==" "){s(this,true);this.focus();at.focus();at.select();return aj(ax)}if(au>="0"&&au<="9"){s(this,true);this.focus();at.value=au;at.focus();return aj(ax)}var aq=am("mn"),av=ax.shiftKey?-1:this.date.getMonth(),ar=0,ao;while(++ar<12){ao=aq[(av+ar)%12].toLowerCase();if(ao.indexOf(au)==0){var ap=new Date(this.date);ap.setDate(1);ap.setMonth((av+ar)%12);this.moveTo(ap,true);return aj(ax)}}if(az>=37&&az<=40){var ap=this._lastHoverDate;if(!ap&&!P.isEmpty()){ap=az<39?P.getFirstDate():P.getLastDate();if(ap<this._firstDateVisible||ap>this._lastDateVisible){ap=null}}if(!ap){ap=az<39?this._lastDateVisible:this._firstDateVisible}else{var aw=ap;ap=y(ap);var av=100;while(av-->0){switch(az){case 37:ap.setDate(ap.getDate()-1);break;case 38:ap.setDate(ap.getDate()-7);break;case 39:ap.setDate(ap.getDate()+1);break;case 40:ap.setDate(ap.getDate()+7);break}if(!this.isDisabled(ap)){break}}ap=R(ap);if(ap<this._firstDateVisible||ap>this._lastDateVisible){this.moveTo(ap)}}af(this._getDateDiv(aw),J(this._getDateDiv(ap),"DynarchCalendar-hover-date"));this._lastHoverDate=ap;return aj(ax)}if(az==13){if(this._lastHoverDate){if(P.type==v.SEL_MULTIPLE&&(ax.shiftKey||ax.ctrlKey)){if(ax.shiftKey&&this._selRangeStart){P.clear(true);P.selectRange(this._selRangeStart,this._lastHoverDate)}if(ax.ctrlKey){P.set(this._selRangeStart=this._lastHoverDate,true)}}else{P.reset(this._selRangeStart=this._lastHoverDate)}return aj(ax)}}if(az==27&&!this.args.cont){this.hide()}}}l._getDateDiv=function(D){var an=null;if(D){try{r(this.els.body,function(ao){if(ao.getAttribute("dyc-date")==D){throw an=ao}})}catch(P){}}return an};function k(D,P){return D.replace(/\$\{([^:\}]+)(:[^\}]+)?\}/g,function(aq,ap,ao){var ar=P[ap],an;if(ao){an=ao.substr(1).split(/\s*\|\s*/);ar=(ar>=an.length?an[an.length-1]:an[ar]).replace(/##?/g,function(at){return at.length==2?"#":ar})}return ar})}function am(an,P){var D=I18N.__.data[an];if(P&&typeof D=="string"){D=k(D,P)}return D}(v.Selection=function(an,P,D){this.type=P;this.sel=an instanceof Array?an:[an];this.onChange=D}).prototype={get:function(){return this.type==v.SEL_SINGLE?this.sel[0]:this.sel},isEmpty:function(){return this.sel.length==0},set:function(P,D){var an=this.type==v.SEL_SINGLE;if(P instanceof Array){this.sel=P;this.normalize();this.onChange(this)}else{P=R(P);if(an||!this.isSelected(P)){an?this.sel=[P]:this.sel.splice(this.findInsertPos(P),0,P);this.normalize();this.onChange(this)}else{if(D){this.unselect(P)}}}},reset:function(){this.sel=[];this.set.apply(this,arguments)},countDays:function(){var aq=0,D=this.sel,P=D.length,ao,ap,an;while(--P>=0){ao=D[P];if(ao instanceof Array){ap=y(ao[0]);an=y(ao[1]);aq+=Math.round(Math.abs(an.getTime()-ap.getTime())/86400000)}++aq}return aq},unselect:function(P){P=R(P);var at=false;for(var D=this.sel,ao=D.length,aq;--ao>=0;){aq=D[ao];if(aq instanceof Array){if(P>=aq[0]&&P<=aq[1]){var an=y(P),ar=an.getDate();if(P==aq[0]){an.setDate(ar+1);aq[0]=R(an);at=true}else{if(P==aq[1]){an.setDate(ar-1);aq[1]=R(an);at=true}else{var ap=new Date(an);ap.setDate(ar+1);an.setDate(ar-1);D.splice(ao+1,0,[R(ap),aq[1]]);aq[1]=R(an);at=true}}}}else{if(P==aq){D.splice(ao,1);at=true}}}if(at){this.normalize();this.onChange(this)}},normalize:function(){this.sel=this.sel.sort(function(au,at){if(au instanceof Array){au=au[0]}if(at instanceof Array){at=at[0]}return au-at});for(var P=this.sel,an=P.length,aq,ap;--an>=0;){aq=P[an];if(aq instanceof Array){if(aq[0]>aq[1]){P.splice(an,1);continue}if(aq[0]==aq[1]){aq=P[an]=aq[0]}}if(ap){var ao=ap,ar=aq instanceof Array?aq[1]:aq;ar=y(ar);ar.setDate(ar.getDate()+1);ar=R(ar);if(ar>=ao){var D=P[an+1];if(aq instanceof Array&&D instanceof Array){aq[1]=D[1];P.splice(an+1,1)}else{if(aq instanceof Array){aq[1]=ap;P.splice(an+1,1)}else{if(D instanceof Array){D[0]=aq;P.splice(an,1)}else{P[an]=[aq,D];P.splice(an+1,1)}}}}}ap=aq instanceof Array?aq[0]:aq}},findInsertPos:function(P){for(var D=this.sel,an=D.length,ao;--an>=0;){ao=D[an];if(ao instanceof Array){ao=ao[0]}if(ao<=P){break}}return an+1},clear:function(D){this.sel=[];if(!D){this.onChange(this)}},selectRange:function(an,P){an=R(an);P=R(P);if(an>P){var D=an;an=P;P=D}this.sel.push([an,P]);this.normalize();this.onChange(this)},isSelected:function(D){for(var P=this.sel.length,an;--P>=0;){an=this.sel[P];if(an instanceof Array&&D>=an[0]&&D<=an[1]||D==an){return true}}return false},getFirstDate:function(){var D=this.sel[0];if(D&&D instanceof Array){D=D[0]}return D},getLastDate:function(){if(this.sel.length>0){var D=this.sel[this.sel.length-1];if(D&&D instanceof Array){D=D[1]}return D}},print:function(P,an){var D=[],ao=0,ap;if(!an){an=" -> "}while(ao<this.sel.length){ap=this.sel[ao++];if(ap instanceof Array){D.push(X(y(ap[0]),P)+an+X(y(ap[1]),P))}else{D.push(X(y(ap),P))}}return D},getDates:function(P){var D=[],an=0,ap,ao;while(an<this.sel.length){ao=this.sel[an++];if(ao instanceof Array){ap=y(ao[0]);ao=ao[1];while(R(ap)<ao){D.push(P?X(ap,P):ap);ap.setDate(ap.getDate()+1)}}else{ap=y(ao)}D.push(P?X(ap,P):ap)}return D}};function a(P){P=new Date(P.getFullYear(),P.getMonth(),P.getDate(),12,0,0);var an=P.getDay();P.setDate(P.getDate()-(an+6)%7+3);var D=P.valueOf();P.setMonth(0);P.setDate(4);return Math.round((D-P.valueOf())/(7*86400000))+1}function z(D){D=new Date(D.getFullYear(),D.getMonth(),D.getDate(),0,0,0);var an=new Date(D.getFullYear(),0,1,12,0,0);var P=D-an;return Math.floor(P/86400000)}function R(D){if(D instanceof Date){return 10000*D.getFullYear()+100*(D.getMonth()+1)+D.getDate()}if(typeof D=="string"){return parseInt(D,10)}return D}function y(P){if(!(P instanceof Date)){P=parseInt(P);var an=Math.floor(P/10000);P=P%10000;var D=Math.floor(P/100);P=P%100;P=new Date(an,D-1,P,12,0,0,0)}return P}function ab(ar,ap,an){var aq=ar.getFullYear(),au=ar.getMonth(),P=ar.getDate(),ao=ap.getFullYear(),at=ap.getMonth(),D=ap.getDate();return aq<ao?-3:aq>ao?3:au<at?-2:au>at?2:an?0:P<D?-1:P>D?1:0}function X(D,at){var P=D.getMonth(),ar=D.getDate(),au=D.getFullYear(),av=a(D),aw=D.getDay(),ax=D.getHours(),an=(ax>=12),ap=(an)?(ax-12):ax,az=z(D),ao=D.getMinutes(),aq=D.getSeconds(),ay=/%./g,aA;if(ap===0){ap=12}aA={"%a":am("sdn")[aw],"%A":am("dn")[aw],"%b":am("smn")[P],"%B":am("mn")[P],"%C":1+Math.floor(au/100),"%d":ar<10?"0"+ar:ar,"%e":ar,"%H":ax<10?"0"+ax:ax,"%I":ap<10?"0"+ap:ap,"%j":az<10?"00"+az:az<100?"0"+az:az,"%k":ax,"%l":ap,"%m":P<9?"0"+(1+P):1+P,"%o":1+P,"%M":ao<10?"0"+ao:ao,"%n":"\n","%p":an?"PM":"AM","%P":an?"pm":"am","%s":Math.floor(D.getTime()/1000),"%S":aq<10?"0"+aq:aq,"%t":"\t","%U":av<10?"0"+av:av,"%W":av<10?"0"+av:av,"%V":av<10?"0"+av:av,"%u":aw+1,"%w":aw,"%y":(""+au).substr(2,2),"%Y":au,"%%":"%"};return at.replace(ay,function(aB){return aA.hasOwnProperty(aB)?aA[aB]:aB})}function U(P){if(P){if(typeof P=="number"){return y(P)}if(!(P instanceof Date)){var D=P.split(/-/);return new Date(parseInt(D[0],10),parseInt(D[1],10)-1,parseInt(D[2],10),12,0,0,0)}}return P}function x(an){an=an.toLowerCase();function P(ao){for(var ap=ao.length;--ap>=0;){if(ao[ap].toLowerCase().indexOf(an)==0){return ap}}}var D=P(am("smn"))||P(am("mn"));if(D!=null){D++}return D}v.parseDate=function(ap,D,ar){if(!/\S/.test(ap)){return""}ap=ap.replace(/^\s+/,"").replace(/\s+$/,"");ar=ar||new Date();var ax=null,P=null,az=null,aq=null,an=null,ay=null;var au=ap.match(/([0-9]{1,2}):([0-9]{1,2})(:[0-9]{1,2})?\s*(am|pm)?/i);if(au){aq=parseInt(au[1],10);an=parseInt(au[2],10);ay=au[3]?parseInt(au[3].substr(1),10):0;ap=ap.substring(0,au.index)+ap.substr(au.index+au[0].length);if(au[4]){if(au[4].toLowerCase()=="pm"&&aq<12){aq+=12}else{if(au[4].toLowerCase()=="am"&&aq>=12){aq-=12}}}}var av=ap.split(/\W+/);var at=[];for(var ao=0;ao<av.length;++ao){var aw=av[ao];if(/^[0-9]{4}$/.test(aw)){ax=parseInt(aw,10);if(!P&&!az){D=true}}else{if(/^[0-9]{1,2}$/.test(aw)){aw=parseInt(aw,10);if(aw>=60){ax=aw}else{if(aw>=0&&aw<=12){at.push(aw)}else{if(aw>=1&&aw<=31){az=aw}}}}else{P=x(aw)}}}if(at.length>=2){if(D){if(!P){P=at.shift()}if(!az){az=at.shift()}}else{if(!az){az=at.shift()}if(!P){P=at.shift()}}}else{if(at.length==1){if(!az){az=at.shift()}else{if(!P){P=at.shift()}}}}if(!ax){ax=at.length>0?at.shift():ar.getFullYear()}if(ax<30){ax+=2000}else{if(ax<99){ax+=1900}}if(!P){P=ar.getMonth()+1}return ax&&P&&az?new Date(ax,P-1,az,aq,an,ay):null};function ah(D,ao,P,an){an={};for(P in ao){if(ao.hasOwnProperty(P)){an[P]=ao[P]}}for(P in D){if(D.hasOwnProperty(P)){an[P]=D[P]}}return an}function o(an,ap,ao,D){if(an instanceof Array){for(var P=an.length;--P>=0;){o(an[P],ap,ao,D)}}else{if(typeof ap=="object"){for(var P in ap){if(ap.hasOwnProperty(P)){o(an,P,ap[P],ao)}}}else{if(an.addEventListener){an.addEventListener(ap,ao,j?true:!!D)}else{if(an.attachEvent){an.attachEvent("on"+ap,ao)}else{an["on"+ap]=ao}}}}}function d(an,ap,ao,D){if(an instanceof Array){for(var P=an.length;--P>=0;){d(an[P],ap,ao)}}else{if(typeof ap=="object"){for(var P in ap){if(ap.hasOwnProperty(P)){d(an,P,ap[P],ao)}}}else{if(an.removeEventListener){an.removeEventListener(ap,ao,j?true:!!D)}else{if(an.detachEvent){an.detachEvent("on"+ap,ao)}else{an["on"+ap]=null}}}}}function aj(D){D=D||window.event;if(j){D.cancelBubble=true;D.returnValue=false}else{D.preventDefault();D.stopPropagation()}return false}function af(ap,ao,aq){if(ap){var D=ap.className.replace(/^\s+|\s+$/,"").split(/\x20/),P=[],an;for(an=D.length;an>0;){if(D[--an]!=ao){P.push(D[an])}}if(aq){P.push(aq)}ap.className=P.join(" ")}return aq}function J(P,D){return af(P,D,D)}function aa(ao,an,P){if(an instanceof Array){for(var D=an.length;--D>=0;){aa(ao,an[D],P)}}else{af(an,P,ao?P:null)}return ao}function C(ao,D,an){var P=null;if(document.createElementNS){P=document.createElementNS("http://www.w3.org/1999/xhtml",ao)}else{P=document.createElement(ao)}if(D){P.className=D}if(an){an.appendChild(P)}return P}function b(ap,aq){if(aq==null){aq=0}var D,ao,P;try{D=Array.prototype.slice.call(ap,aq)}catch(an){D=new Array(ap.length-aq);for(ao=aq,P=0;ao<ap.length;++ao,++P){D[P]=ap[ao]}}return D}function t(P,an){var D=b(arguments,2);return(an==undefined?function(){return P.apply(this,D.concat(b(arguments)))}:function(){return P.apply(an,D.concat(b(arguments)))})}function r(P,an){if(!an(P)){for(var D=P.firstChild;D;D=D.nextSibling){if(D.nodeType==1){r(D,an)}}}}function al(D,ar,an){D=ah(D,{fps:50,len:15,onUpdate:Z,onStop:Z});if(j){D.len=Math.round(D.len/2)}function ao(aw,av,at,au){return au?at+aw*(av-at):av+aw*(at-av)}function aq(){if(ar){P()}an=0;ar=setInterval(ap,1000/D.fps)}function P(){if(ar){clearInterval(ar);ar=null}D.onStop(an/D.len,ao)}function ap(){var at=D.len;D.onUpdate(an/at,ao);if(an==at){P()}++an}aq();return{start:aq,stop:P,update:ap,args:D,map:ao}}var V={elastic_b:function(D){return 1-Math.cos(-D*5.5*Math.PI)/Math.pow(2,7*D)},magnetic:function(D){return 1-Math.cos(D*D*D*10.5*Math.PI)/Math.exp(4*D)},accel_b:function(D){D=1-D;return 1-D*D*D*D},accel_a:function(D){return D*D*D},accel_ab:function(D){D=1-D;return 1-Math.sin(D*D*Math.PI/2)},accel_ab2:function(D){return(D/=0.5)<1?1/2*D*D:-1/2*((--D)*(D-2)-1)},brakes:function(D){D=1-D;return 1-Math.sin(D*D*Math.PI)},shake:function(D){return D<0.5?-Math.cos(D*11*Math.PI)*D*D:(D=1-D,Math.cos(D*11*Math.PI)*D*D)}};function ai(D,P){if(P===""){j?D.style.filter="":D.style.opacity=""}else{if(P!=null){j?D.style.filter="alpha(opacity="+P*100+")":D.style.opacity=P}else{if(!j){P=parseFloat(D.style.opacity)}else{if(/alpha\(opacity=([0-9.])+\)/.test(D.style.opacity)){P=parseFloat(RegExp.$1)/100}}}}return P}function K(an,D){var P=an.style;if(D!=null){P.display=D?"":"none"}return P.display!="none"}function f(P,an){var D=j?P.clientX+document.body.scrollLeft:P.pageX;var ao=j?P.clientY+document.body.scrollTop:P.pageY;if(an){D-=an.x;ao-=an.y}return{x:D,y:ao}}function G(ap){var D=0,ao=0,an=/^div$/i.test(ap.tagName),aq,P;if(an&&ap.scrollLeft){D=ap.scrollLeft}if(an&&ap.scrollTop){ao=ap.scrollTop}aq={x:ap.offsetLeft-D,y:ap.offsetTop-ao};if(ap.offsetParent){P=G(ap.offsetParent);aq.x+=P.x;aq.y+=P.y}return aq}function T(){var P=document.documentElement,D=document.body;return{x:P.scrollLeft||D.scrollLeft,y:P.scrollTop||D.scrollTop,w:P.clientWidth||window.innerWidth||D.clientWidth,h:P.clientHeight||window.innerHeight||D.clientHeight}}var Z=new Function();function S(D){if(typeof D=="string"){D=document.getElementById(D)}return D}return v})();
