/**
 *                                                        ____   _____
 *  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:"%d/%m/%Y",
            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><div class='DynarchCalendar-weekNumber'>",am("wk"),"</div></td>")
            }while(P<7){
            var ao=(P+++D.fdow)%7;an.push("<td><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 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 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><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><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 class='mese_center' unselectable='on'>"+X(D.date,D.args.titleFormat)+"</div>"
        }function ag(P){
        var ap=["<table height='100%'",ad,"><tr><td><table style='margin-top: 1.5em'",ad,"><tr><td colspan='3'><input dyc-btn='year' class='DynarchCalendar-menu-year' size='6' value='",P.date.getFullYear(),"' /></td></tr><tr><td><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><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><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
    })();