/** * ____ _____ * Dynarch Calendar -- JSCal2, version 1.9 \ /_ / / * Built at 2011/03/13 10:28 GMT \ / / / * \/ /_ / * (c) Dynarch.com 2009 \ / / * All rights reserved. / / * Visit www.dynarch.com/projects/calendar for details \/ * */ Calendar=function(){ function bm(a){ typeof a=="string"&&(a=document.getElementById(a)); return a } function bk(a,b,c){ for(c=0;c=0;)$(a,b[d],c);else Y(b,c,a?c:null); return a } function Z(a,b){ return Y(a,b,b) } function Y(a,b,c){ if(a){ var d=a.className.replace(/^\s+|\s+$/,"").split(/\x20/),e=[],f; for(f=d.length;f>0;)d[--f]!=b&&e.push(d[f]); c&&e.push(c),a.className=e.join(" ") } return c } function X(a){ a=a||window.event,e?(a.cancelBubble=!0,a.returnValue=!1):(a.preventDefault(),a.stopPropagation()); return!1 } function W(a,b,c,d){ if(a instanceof Array)for(var f=a.length;--f>=0;)W(a[f],b,c); else if(typeof b=="object")for(var f in b)b.hasOwnProperty(f)&&W(a,f,b[f],c);else a.removeEventListener?a.removeEventListener(b,c,e?!0:!!d):a.detachEvent?a.detachEvent("on"+b,c):a["on"+b]=null } function V(a,b,c,d){ if(a instanceof Array)for(var f=a.length;--f>=0;)V(a[f],b,c,d); else if(typeof b=="object")for(var f in b)b.hasOwnProperty(f)&&V(a,f,b[f],c);else a.addEventListener?a.addEventListener(b,c,e?!0:!!d):a.attachEvent?a.attachEvent("on"+b,c):a["on"+b]=c } function U(a,b,c,d){ d={}; for(c in b)b.hasOwnProperty(c)&&(d[c]=b[c]);for(c in a)a.hasOwnProperty(c)&&(d[c]=a[c]);return d } function T(a){ if(/\S/.test(a)){ a=a.toLowerCase(); function b(b){ for(var c=b.length;--c>=0;)if(b[c].toLowerCase().indexOf(a)==0)return c+1 } return b(L("smn"))||b(L("mn")) } } function S(a){ if(a){ if(typeof a=="number")return P(a); if(!(a instanceof Date)){ var b=a.split(/-/); return new Date(parseInt(b[0],10),parseInt(b[1],10)-1,parseInt(b[2],10),12,0,0,0) } } return a } function R(a,b){ var c=a.getMonth(),d=a.getDate(),e=a.getFullYear(),f=M(a),g=a.getDay(),h=a.getHours(),i=h>=12,j=i?h-12:h,k=N(a),l=a.getMinutes(),m=a.getSeconds(),n=/%./g,o; j===0&&(j=12),o={ "%a":L("sdn")[g], "%A":L("dn")[g], "%b":L("smn")[c], "%B":L("mn")[c], "%C":1+Math.floor(e/100), "%d":d<10?"0"+d:d, "%e":d, "%H":h<10?"0"+h:h, "%I":j<10?"0"+j:j, "%j":k<10?"00"+k:k<100?"0"+k:k, "%k":h, "%l":j, "%m":c<9?"0"+(1+c):1+c, "%o":1+c, "%M":l<10?"0"+l:l, "%n":"\n", "%p":i?"PM":"AM", "%P":i?"pm":"am", "%s":Math.floor(a.getTime()/1e3), "%S":m<10?"0"+m:m, "%t":"\t", "%U":f<10?"0"+f:f, "%W":f<10?"0"+f:f, "%V":f<10?"0"+f:f, "%u":g+1, "%w":g, "%y":(""+e).substr(2,2), "%Y":e, "%%":"%" }; return b.replace(n,function(a){ return o.hasOwnProperty(a)?o[a]:a }) } function Q(a,b,c){ var d=a.getFullYear(),e=a.getMonth(),f=a.getDate(),g=b.getFullYear(),h=b.getMonth(),i=b.getDate(); return dg?3:eh?2:c?0:fi?1:0 } function P(a,b,c,d,e){ if(!(a instanceof Date)){ a=parseInt(a,10); var f=Math.floor(a/1e4); a=a%1e4; var g=Math.floor(a/100); a=a%100,a=new Date(f,g-1,a,b==null?12:b,c==null?0:c,d==null?0:d,e==null?0:e) } return a } function O(a){ if(a instanceof Date)return 1e4*a.getFullYear()+100*(a.getMonth()+1)+a.getDate(); if(typeof a=="string")return parseInt(a,10); return a } function N(a){ a=new Date(a.getFullYear(),a.getMonth(),a.getDate(),12,0,0); var b=new Date(a.getFullYear(),0,1,12,0,0),c=a-b; return Math.floor(c/864e5) } function M(a){ a=new Date(a.getFullYear(),a.getMonth(),a.getDate(),12,0,0); var b=a.getDay(); a.setDate(a.getDate()-(b+6)%7+3); var c=a.valueOf(); a.setMonth(0),a.setDate(4); return Math.round((c-a.valueOf())/6048e5)+1 } function L(a,b){ var c=i.__.data[a]; b&&typeof c=="string"&&(c=K(c,b)); return c } function K(a,b){ return a.replace(/\$\{([^:\}]+)(:[^\}]+)?\}/g,function(a,c,d){ var e=b[c],f; d&&(f=d.substr(1).split(/\s*\|\s*/),e=(e>=f.length?f[f.length-1]:f[e]).replace(/##?/g,function(a){ return a.length==2?"#":e })); return e }) } function J(b){ if(!this._menuAnim){ b=b||window.event; var c=b.target||b.srcElement,d=c.getAttribute("dyc-btn"),e=b.keyCode,f=b.charCode||e,g=H[e]; if("year"==d&&e==13){ var h=new Date(this.date); h.setDate(1),h.setFullYear(this._getInputYear()),this.moveTo(h,!0),z(this,!1); return X(b) } if(this._menuVisible){ if(e==27){ z(this,!1); return X(b) } }else{ b.ctrlKey||(g=null),g==null&&!b.ctrlKey&&(g=I[e]),e==36&&(g=0); if(g!=null){ y(this,g); return X(b) } f=String.fromCharCode(f).toLowerCase(); var i=this.els.yearInput,j=this.selection; if(f==" "){ z(this,!0),this.focus(),i.focus(),i.select(); return X(b) } if(f>="0"&&f<="9"){ z(this,!0),this.focus(),i.value=f,i.focus(); return X(b) } var k=L("mn"),l=b.shiftKey?-1:this.date.getMonth(),m=0,n; while(++m<12){ n=k[(l+m)%12].toLowerCase(); if(n.indexOf(f)==0){ var h=new Date(this.date); h.setDate(1),h.setMonth((l+m)%12),this.moveTo(h,!0); return X(b) } } if(e>=37&&e<=40){ var h=this._lastHoverDate; if(!h&&!j.isEmpty()){ h=e<39?j.getFirstDate():j.getLastDate(); if(hthis._lastDateVisible)h=null } if(!h)h=e<39?this._lastDateVisible:this._firstDateVisible; else{ var o=h; h=P(h); var l=100; while(l-->0){ switch(e){ case 37: h.setDate(h.getDate()-1); break; case 38: h.setDate(h.getDate()-7); break; case 39: h.setDate(h.getDate()+1); break; case 40: h.setDate(h.getDate()+7) } if(!this.isDisabled(h))break } h=O(h),(hthis._lastDateVisible)&&this.moveTo(h) } Y(this._getDateDiv(o),Z(this._getDateDiv(h),"DynarchCalendar-hover-date")),this._lastHoverDate=h; return X(b) } if(e==13&&this._lastHoverDate){ j.type==a.SEL_MULTIPLE&&(b.shiftKey||b.ctrlKey)?(b.shiftKey&&this._selRangeStart&&(j.clear(!0),j.selectRange(this._selRangeStart,this._lastHoverDate)),b.ctrlKey&&j.set(this._selRangeStart=this._lastHoverDate,!0)):j.reset(this._selRangeStart=this._lastHoverDate); return X(b) } e==27&&!this.args.cont&&this.hide() } } } function G(){ this.refresh(); var a=this.inputField,b=this.selection; if(a){ var c=b.print(this.dateFormat); /input|textarea/i.test(a.tagName)?a.value=c:a.innerHTML=c } this.callHooks("onSelect",this,b) } function F(a){ a=a||window.event; var b=C(a); if(b){ var c=b.getAttribute("dyc-btn"),d=b.getAttribute("dyc-type"),e=a.wheelDelta?a.wheelDelta/120:-a.detail/3; e=e<0?-1:e>0?1:0,this.args.reverseWheel&&(e=-e); if(/^(time-(hour|min))/.test(d)){ switch(RegExp.$1){ case"time-hour": this.setHours(this.getHours()+e); break; case"time-min": this.setMinutes(this.getMinutes()+this.args.minuteStep*e) } X(a) }else/Y/i.test(c)&&(e*=2),y(this,-e),X(a) } } function E(a,b){ b=b||window.event; var c=C(b); if(c){ var d=c.getAttribute("dyc-type"); if(d&&!c.getAttribute("disabled"))if(!a||!this._bodyAnim||d!="date"){ var e=c.getAttribute("dyc-cls"); e=e?D(e,0):"DynarchCalendar-hover-"+d,(d!="date"||this.selection.type)&&$(a,c,e),d=="date"&&($(a,c.parentNode.parentNode,"DynarchCalendar-hover-week"),this._showTooltip(c.getAttribute("dyc-date"))),/^time-hour/.test(d)&&$(a,this.els.timeHour,"DynarchCalendar-hover-time"),/^time-min/.test(d)&&$(a,this.els.timeMinute,"DynarchCalendar-hover-time"),Y(this._getDateDiv(this._lastHoverDate),"DynarchCalendar-hover-date"),this._lastHoverDate=null } } a||this._showTooltip() } function D(a,b){ return"DynarchCalendar-"+a.split(/,/)[b] } function C(a){ var b=a.target||a.srcElement,c=b; while(b&&b.getAttribute&&!b.getAttribute("dyc-type"))b=b.parentNode; return b.getAttribute&&b||c } function B(a){ a=a||window.event; var b=this.els.topCont.style,c=bh(a,this._mouseDiff); b.left=c.x+"px",b.top=c.y+"px" } function A(b,c){ c=c||window.event; var d=C(c); if(d&&!d.getAttribute("disabled")){ var f=d.getAttribute("dyc-btn"),g=d.getAttribute("dyc-type"),h=d.getAttribute("dyc-date"),i=this.selection,j,k={ mouseover:X, mousemove:X, mouseup:function(a){ var b=d.getAttribute("dyc-cls"); b&&Y(d,D(b,1)),clearTimeout(j),W(document,k,!0),k=null } }; if(b){ setTimeout(bb(this.focus,this),1); var l=d.getAttribute("dyc-cls"); l&&Z(d,D(l,1)); if("menu"==f)this.toggleMenu(); else if(d&&/^[+-][MY]$/.test(f))if(y(this,f)){ var m=bb(function(){ y(this,f,!0)?j=setTimeout(m,40):(k.mouseup(),y(this,f)) },this); j=setTimeout(m,350),V(document,k,!0) }else k.mouseup(); else if("year"==f)this.els.yearInput.focus(),this.els.yearInput.select(); else if(g=="time-am")V(document,k,!0); else if(/^time/.test(g)){ var m=bb(function(a){ w.call(this,a),j=setTimeout(m,100) },this,g); w.call(this,g),j=setTimeout(m,350),V(document,k,!0) }else h&&i.type&&(i.type==a.SEL_MULTIPLE?c.shiftKey&&this._selRangeStart?i.selectRange(this._selRangeStart,h):(!c.ctrlKey&&!i.isSelected(h)&&i.clear(!0),i.set(h,!0),this._selRangeStart=h):(i.set(h),this.moveTo(P(h),2)),d=this._getDateDiv(h),E.call(this,!0,{ target:d })),V(document,k,!0); e&&k&&/dbl/i.test(c.type)&&k.mouseup(),!this.args.fixed&&/^(DynarchCalendar-(topBar|bottomBar|weekend|weekNumber|menu(-sep)?))?$/.test(d.className)&&!this.args.cont&&(k.mousemove=bb(B,this),this._mouseDiff=bh(c,bi(this.els.topCont)),V(document,k,!0)) }else if("today"==f)!this._menuVisible&&i.type==a.SEL_SINGLE&&i.set(new Date),this.moveTo(new Date,!0),z(this,!1); else if(/^m([0-9]+)/.test(f)){ var h=new Date(this.date); h.setDate(1),h.setMonth(RegExp.$1),h.setFullYear(this._getInputYear()),this.moveTo(h,!0),z(this,!1) }else g=="time-am"&&this.setHours(this.getHours()+12); e||X(c) } } function z(a,b){ a._menuVisible=b,$(b,a.els.title,"DynarchCalendar-pressed-title"); var c=a.els.menu; f&&(c.style.height=a.els.main.offsetHeight+"px"); if(!a.args.animation)bg(c,b),a.focused&&a.focus(); else{ a._menuAnim&&a._menuAnim.stop(); var d=a.els.main.offsetHeight; f&&(c.style.width=a.els.topBar.offsetWidth+"px"),b&&(c.firstChild.style.marginTop=-d+"px",a.args.opacity>0&&bf(c,0),bg(c,!0)),a._menuAnim=bd({ onUpdate:function(e,f){ c.firstChild.style.marginTop=f(be.accel_b(e),-d,0,!b)+"px",a.args.opacity>0&&bf(c,f(be.accel_b(e),0,.85,!b)) }, onStop:function(){ a.args.opacity>0&&bf(c,.85),c.firstChild.style.marginTop="",a._menuAnim=null,b||(bg(c,!1),a.focused&&a.focus()) } }) } } function y(a,b,c){ this._bodyAnim&&this._bodyAnim.stop(); var d; if(b!=0){ d=new Date(a.date),d.setDate(1); switch(b){ case"-Y":case-2: d.setFullYear(d.getFullYear()-1); break; case"+Y":case 2: d.setFullYear(d.getFullYear()+1); break; case"-M":case-1: d.setMonth(d.getMonth()-1); break; case"+M":case 1: d.setMonth(d.getMonth()+1) } }else d=new Date; return a.moveTo(d,!c) } function w(a){ switch(a){ case"time-hour+": this.setHours(this.getHours()+1); break; case"time-hour-": this.setHours(this.getHours()-1); break; case"time-min+": this.setMinutes(this.getMinutes()+this.args.minuteStep); break; case"time-min-": this.setMinutes(this.getMinutes()-this.args.minuteStep); break; default: return } } function v(){ this._bluringTimeout=setTimeout(bb(u,this),50) } function u(){ this.focused=!1,Y(this.els.main,"DynarchCalendar-focused"),this._menuVisible&&z(this,!1),this.args.cont||this.hide(),this.callHooks("onBlur",this) } function t(){ this._bluringTimeout&&clearTimeout(this._bluringTimeout),this.focused=!0,Z(this.els.main,"DynarchCalendar-focused"),this.callHooks("onFocus",this) } function s(a){ var b=_("div"),c=a.els={},d={ mousedown:bb(A,a,!0), mouseup:bb(A,a,!1), mouseover:bb(E,a,!0), mouseout:bb(E,a,!1), keypress:bb(J,a) }; a.args.noScroll||(d[g?"DOMMouseScroll":"mousewheel"]=bb(F,a)),e&&(d.dblclick=d.mousedown,d.keydown=d.keypress),b.innerHTML=m(a),bc(b.firstChild,function(a){ var b=r[a.className]; b&&(c[b]=a),e&&a.setAttribute("unselectable","on") }),V(c.main,d),V([c.focusLink,c.yearInput],a._focusEvents={ focus:bb(t,a), blur:bb(v,a) }),a.moveTo(a.date,!1),a.setTime(null,!0); return c.topCont } function q(a){ function d(){ c.showTime&&(b.push(""),p(a,b),b.push("")) } var b=[],c=a.args; b.push(""),c.timePos=="left"&&d(),c.bottomBar&&(b.push(""),b.push("","
",L("today"),"
",""),b.push("")),c.timePos=="right"&&d(),b.push(""); return b.join("") } function p(a,b){ b.push("","","","","",""),a.args.showTime==12&&b.push("",""),b.push("","","","
") } function o(a){ var b=["
","","","","
",L("goToday"),"
","

 

",""],c=L("smn"),d=0,e=b.length,f; while(d<12){ b[e++]=""; for(f=4;--f>0;)b[e++]=""; b[e++]="" } b[e++]="
"+c[d++]+"
"; return b.join("") } function n(a){ return"
"+R(a.date,a.args.titleFormat)+"
" } function m(a){ var b=["
","
",e?"":"","
","
","
","
","
","
","
",n(a),"
","
",k(a),"
","
","
"]; (a.args.bottomBar||a.args.showTime)&&b.push("
",q(a),"
"),b.push("","
","
","
"); return b.join("") } function l(a,b,c){ b=b||a.date,c=c||a.fdow,b=new Date(b.getFullYear(),b.getMonth(),b.getDate(),12,0,0,0); var d=b.getMonth(),e=[],f=0,g=a.args.weekNumbers; b.setDate(1); var h=(b.getDay()-c)%7; h<0&&(h+=7),b.setDate(0-h),b.setDate(b.getDate()+1); var i=new Date,k=i.getDate(),l=i.getMonth(),m=i.getFullYear(); e[f++]=""; for(var n=0;n<6;++n){ e[f++]="",g&&(e[f++]=""); for(var o=0;o<7;++o){ var p=b.getDate(),q=b.getMonth(),r=b.getFullYear(),s=1e4*r+100*(q+1)+p,t=a.selection.isSelected(s),u=a.isDisabled(b); e[f++]="",b=new Date(r,q,p+1,12,0,0,0) } e[f++]="" } e[f++]="
"+M(b)+"
=0&&(e[f++]=" DynarchCalendar-weekend"),q!=d&&(e[f++]=" DynarchCalendar-day-othermonth"),p==k&&q==l&&r==m&&(e[f++]=" DynarchCalendar-day-today"),u&&(e[f++]=" DynarchCalendar-day-disabled"),t&&(e[f++]=" DynarchCalendar-day-selected"),u=a.args.dateInfo(b),u&&u.klass&&(e[f++]=" "+u.klass),e[f++]="'>"+p+"
"; return e.join("") } function k(a){ var b=[""],c=0; a.args.weekNumbers&&b.push("
",L("wk"),"
"); while(c<7){ var d=(c++ +a.fdow)%7; b.push("=0?" class='DynarchCalendar-weekend'>":">",L("sdn")[d],"") } b.push(""); return b.join("") } function a(b){ b=b||{},this.args=b=U(b,{ animation:!f, cont:null, bottomBar:!0, date:!0, fdow:L("fdow"), min:null, max:null, reverseWheel:!1, selection:[], selectionType:a.SEL_SINGLE, weekNumbers:!1, align:"Bl/ / /T/r", inputField:null, trigger:null, dateFormat:"%Y-%m-%d", fixed:!1, opacity:e?1:3, titleFormat:"%b %Y", showTime:!1, timePos:"right", time:!0, minuteStep:5, noScroll:!1, disabled:bl, checkRange:!1, dateInfo:bl, onChange:bl, onSelect:bl, onTimeChange:bl, onFocus:bl, onBlur:bl }),this.handlers={}; var c=this,d=new Date; b.min=S(b.min),b.max=S(b.max),b.date===!0&&(b.date=d),b.time===!0&&(b.time=d.getHours()*100+Math.floor(d.getMinutes()/b.minuteStep)*b.minuteStep),this.date=S(b.date),this.time=b.time,this.fdow=b.fdow,bk("onChange onSelect onTimeChange onFocus onBlur".split(/\s+/),function(a){ var d=b[a]; d instanceof Array||(d=[d]),c.handlers[a]=d }),this.selection=new a.Selection(b.selection,b.selectionType,G,this); var g=s(this); b.cont&&bm(b.cont).appendChild(g),b.trigger&&this.manageFields(b.trigger,b.inputField,b.dateFormat) } var b=navigator.userAgent,c=/opera/i.test(b),d=/Konqueror|Safari|KHTML/i.test(b),e=/msie/i.test(b)&&!c&&!/mac_powerpc/i.test(b),f=e&&/msie 6/i.test(b),g=/gecko/i.test(b)&&!d&&!c&&!e,h=a.prototype,i=a.I18N={}; a.SEL_NONE=0,a.SEL_SINGLE=1,a.SEL_MULTIPLE=2,a.SEL_WEEK=3,a.dateToInt=O,a.intToDate=P,a.printDate=R,a.formatString=K,a.i18n=L,a.LANG=function(a,b,c){ i.__=i[a]={ name:b, data:c } },a.setup=function(b){ return new a(b) },h.moveTo=function(a,b){ var c=this; a=S(a); var d=Q(a,c.date,!0),e,f=c.args,g=f.min&&Q(a,f.min),h=f.max&&Q(a,f.max); f.animation||(b=!1),$(g!=null&&g<=1,[c.els.navPrevMonth,c.els.navPrevYear],"DynarchCalendar-navDisabled"),$(h!=null&&h>=-1,[c.els.navNextMonth,c.els.navNextYear],"DynarchCalendar-navDisabled"),g<-1&&(a=f.min,e=1,d=0),h>1&&(a=f.max,e=2,d=0),c.date=a,c.refresh(!!b),c.callHooks("onChange",c,a,b); if(b&&(d!=0||b!=2)){ c._bodyAnim&&c._bodyAnim.stop(); var i=c.els.body,j=_("div","DynarchCalendar-animBody-"+x[d],i),k=i.firstChild,m=bf(k)||.7,n=e?be.brakes:d==0?be.shake:be.accel_ab2,o=d*d>4,p=o?k.offsetTop:k.offsetLeft,q=j.style,r=o?i.offsetHeight:i.offsetWidth; d<0?r+=p:d>0?r=p-r:(r=Math.round(r/7),e==2&&(r=-r)); if(!e&&d!=0){ var s=j.cloneNode(!0),t=s.style,u=2*r; s.appendChild(k.cloneNode(!0)),t[o?"marginTop":"marginLeft"]=r+"px",i.appendChild(s) } k.style.visibility="hidden",j.innerHTML=l(c),c._bodyAnim=bd({ onUpdate:function(a,b){ var f=n(a); if(s)var g=b(f,r,u)+"px"; if(e)q[o?"marginTop":"marginLeft"]=b(f,r,0)+"px"; else{ if(o||d==0)q.marginTop=b(d==0?n(a*a):f,0,r)+"px",d!=0&&(t.marginTop=g); if(!o||d==0)q.marginLeft=b(f,0,r)+"px",d!=0&&(t.marginLeft=g) } c.args.opacity>2&&s&&(bf(s,1-f),bf(j,f)) }, onStop:function(b){ i.innerHTML=l(c,a),c._bodyAnim=null } }) } c._lastHoverDate=null; return g>=-1&&h<=1 },h.isDisabled=function(a){ var b=this.args; return b.min&&Q(a,b.min)<0||b.max&&Q(a,b.max)>0||b.disabled(a) },h.toggleMenu=function(){ z(this,!this._menuVisible) },h.refresh=function(a){ var b=this.els; a||(b.body.innerHTML=l(this)),b.title.innerHTML=n(this),b.yearInput.value=this.date.getFullYear() },h.redraw=function(){ var a=this,b=a.els; a.refresh(),b.dayNames.innerHTML=k(a),b.menu.innerHTML=o(a),b.bottomBar&&(b.bottomBar.innerHTML=q(a)),bc(b.topCont,function(c){ var d=r[c.className]; d&&(b[d]=c),c.className=="DynarchCalendar-menu-year"?(V(c,a._focusEvents),b.yearInput=c):e&&c.setAttribute("unselectable","on") }),a.setTime(null,!0) },h.setLanguage=function(b){ var c=a.setLanguage(b); c&&(this.fdow=c.data.fdow,this.redraw()) },a.setLanguage=function(a){ var b=i[a]; b&&(i.__=b); return b },h.focus=function(){ try{ this.els[this._menuVisible?"yearInput":"focusLink"].focus() }catch(a){} t.call(this) },h.blur=function(){ this.els.focusLink.blur(),this.els.yearInput.blur(),u.call(this) },h.showAt=function(a,b,c){ this._showAnim&&this._showAnim.stop(),c=c&&this.args.animation; var d=this.els.topCont,e=this,f=this.els.body.firstChild,g=f.offsetHeight,h=d.style; h.position="absolute",h.left=a+"px",h.top=b+"px",h.zIndex=1e4,h.display="",c&&(f.style.marginTop=-g+"px",this.args.opacity>1&&bf(d,0),this._showAnim=bd({ onUpdate:function(a,b){ f.style.marginTop=-b(be.accel_b(a),g,0)+"px",e.args.opacity>1&&bf(d,a) }, onStop:function(){ e.args.opacity>1&&bf(d,""),e._showAnim=null } })) },h.hide=function(){ var a=this.els.topCont,b=this,c=this.els.body.firstChild,d=c.offsetHeight,e=bi(a).y; this.args.animation?(this._showAnim&&this._showAnim.stop(),this._showAnim=bd({ onUpdate:function(f,g){ b.args.opacity>1&&bf(a,1-f),c.style.marginTop=-g(be.accel_b(f),0,d)+"px",a.style.top=g(be.accel_ab(f),e,e-10)+"px" }, onStop:function(){ a.style.display="none",c.style.marginTop="",b.args.opacity>1&&bf(a,""),b._showAnim=null } })):a.style.display="none",this.inputField=null },h.popup=function(a,b){ function h(b){ var c={ x:i.x, y:i.y }; if(!b)return c; /B/.test(b)&&(c.y+=a.offsetHeight),/b/.test(b)&&(c.y+=a.offsetHeight-f.y),/T/.test(b)&&(c.y-=f.y),/l/.test(b)&&(c.x-=f.x-a.offsetWidth),/L/.test(b)&&(c.x-=f.x),/R/.test(b)&&(c.x+=a.offsetWidth),/c/i.test(b)&&(c.x+=(a.offsetWidth-f.x)/2),/m/i.test(b)&&(c.y+=(a.offsetHeight-f.y)/2); return c } a=bm(a),b||(b=this.args.align),b=b.split(/\x2f/); var c=bi(a),d=this.els.topCont,e=d.style,f,g=bj(); e.visibility="hidden",e.display="",this.showAt(0,0),document.body.appendChild(d),f={ x:d.offsetWidth, y:d.offsetHeight }; var i=c; i=h(b[0]),i.yg.x+g.w&&(i.x=c.x,i=h(b[2])),i.y+f.y>g.y+g.h&&(i.y=c.y,i=h(b[3])),i.x=0)c[d]===b&&c.splice(d,1) },h.getTime=function(){ return this.time },h.setTime=function(a,b){ if(this.args.showTime){ a=a!=null?a:this.time,this.time=a; var c=this.getHours(),d=this.getMinutes(),e=c<12; this.args.showTime==12&&(c==0&&(c=12),c>12&&(c-=12),this.els.timeAM.innerHTML=L(e?"AM":"PM")),c<10&&(c="0"+c),d<10&&(d="0"+d),this.els.timeHour.innerHTML=c,this.els.timeMinute.innerHTML=d,b||this.callHooks("onTimeChange",this,a) } },h.getHours=function(){ return Math.floor(this.time/100) },h.getMinutes=function(){ return this.time%100 },h.setHours=function(a){ a<0&&(a+=24),this.setTime(100*(a%24)+this.time%100) },h.setMinutes=function(a){ a<0&&(a+=60),a=Math.floor(a/this.args.minuteStep)*this.args.minuteStep,this.setTime(100*this.getHours()+a%60) },h._getInputYear=function(){ var a=parseInt(this.els.yearInput.value,10); isNaN(a)&&(a=this.date.getFullYear()); return a },h._showTooltip=function(a){ var b="",c,d=this.els.tooltip; a&&(a=P(a),c=this.args.dateInfo(a),c&&c.tooltip&&(b="
"+R(a,c.tooltip)+"
")),d.innerHTML=b }; var j=" align='center' cellspacing='0' cellpadding='0'",r={ "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-time-hour":"timeHour", "DynarchCalendar-time-minute":"timeMinute", "DynarchCalendar-time-am":"timeAM", "DynarchCalendar-navBtn DynarchCalendar-prevYear":"navPrevYear", "DynarchCalendar-navBtn DynarchCalendar-nextYear":"navNextYear", "DynarchCalendar-navBtn DynarchCalendar-prevMonth":"navPrevMonth", "DynarchCalendar-navBtn DynarchCalendar-nextMonth":"navNextMonth" },x={ "-3":"backYear", "-2":"back", 0:"now", 2:"fwd", 3:"fwdYear" },H={ 37:-1, 38:-2, 39:1, 40:2 },I={ 33:-1, 34:1 }; h._getDateDiv=function(a){ var b=null; if(a)try{ bc(this.els.body,function(c){ if(c.getAttribute("dyc-date")==a)throw b=c }) }catch(c){} return b },(a.Selection=function(a,b,c,d){ this.type=b,this.sel=a instanceof Array?a:[a],this.onChange=bb(c,d),this.cal=d }).prototype={ get:function(){ return this.type==a.SEL_SINGLE?this.sel[0]:this.sel }, isEmpty:function(){ return this.sel.length==0 }, set:function(b,c,d){ var e=this.type==a.SEL_SINGLE; b instanceof Array?(this.sel=b,this.normalize(),d||this.onChange(this)):(b=O(b),e||!this.isSelected(b)?(e?this.sel=[b]:this.sel.splice(this.findInsertPos(b),0,b),this.normalize(),d||this.onChange(this)):c&&this.unselect(b,d)) }, reset:function(){ this.sel=[],this.set.apply(this,arguments) }, countDays:function(){ var a=0,b=this.sel,c=b.length,d,e,f; while(--c>=0)d=b[c],d instanceof Array&&(e=P(d[0]),f=P(d[1]),a+=Math.round(Math.abs(f.getTime()-e.getTime())/864e5)),++a; return a }, unselect:function(a,b){ a=O(a); var c=!1; for(var d=this.sel,e=d.length,f;--e>=0;){ f=d[e]; if(f instanceof Array){ if(a>=f[0]&&a<=f[1]){ var g=P(a),h=g.getDate(); if(a==f[0])g.setDate(h+1),f[0]=O(g),c=!0; else if(a==f[1])g.setDate(h-1),f[1]=O(g),c=!0; else{ var i=new Date(g); i.setDate(h+1),g.setDate(h-1),d.splice(e+1,0,[O(i),f[1]]),f[1]=O(g),c=!0 } } }else a==f&&(d.splice(e,1),c=!0) } c&&(this.normalize(),b||this.onChange(this)) }, normalize:function(){ this.sel=this.sel.sort(function(a,b){ a instanceof Array&&(a=a[0]),b instanceof Array&&(b=b[0]); return a-b }); for(var a=this.sel,b=a.length,c,d;--b>=0;){ c=a[b]; if(c instanceof Array){ if(c[0]>c[1]){ a.splice(b,1); continue } c[0]==c[1]&&(c=a[b]=c[0]) } if(d){ var e=d,f=c instanceof Array?c[1]:c; f=P(f),f.setDate(f.getDate()+1),f=O(f); if(f>=e){ var g=a[b+1]; c instanceof Array&&g instanceof Array?(c[1]=g[1],a.splice(b+1,1)):c instanceof Array?(c[1]=d,a.splice(b+1,1)):g instanceof Array?(g[0]=c,a.splice(b,1)):(a[b]=[c,g],a.splice(b+1,1)) } } d=c instanceof Array?c[0]:c } }, findInsertPos:function(a){ for(var b=this.sel,c=b.length,d;--c>=0;){ d=b[c],d instanceof Array&&(d=d[0]); if(d<=a)break } return c+1 }, clear:function(a){ this.sel=[],a||this.onChange(this) }, selectRange:function(b,c){ b=O(b),c=O(c); if(b>c){ var d=b; b=c,c=d } var e=this.cal.args.checkRange; if(!e)return this._do_selectRange(b,c); try{ bk((new a.Selection([[b,c]],a.SEL_MULTIPLE,bl)).getDates(),bb(function(a){ if(this.isDisabled(a)){ e instanceof Function&&e(a,this); throw"OUT" } },this.cal)),this._do_selectRange(b,c) }catch(f){} }, _do_selectRange:function(a,b){ this.sel.push([a,b]),this.normalize(),this.onChange(this) }, isSelected:function(a){ for(var b=this.sel.length,c;--b>=0;){ c=this.sel[b]; if(c instanceof Array&&a>=c[0]&&a<=c[1]||a==c)return!0 } return!1 }, getFirstDate:function(){ var a=this.sel[0]; a&&a instanceof Array&&(a=a[0]); return a }, getLastDate:function(){ if(this.sel.length>0){ var a=this.sel[this.sel.length-1]; a&&a instanceof Array&&(a=a[1]); return a } }, print:function(a,b){ var c=[],d=0,e,f=this.cal.getHours(),g=this.cal.getMinutes(); b||(b=" -> "); while(d=12&&(h-=12))); var l=function(){ function k(a){ d.push(a) } function j(){ var a=""; while(g()&&/[0-9]/.test(g()))a+=f(); if(h(g()))return i(a); return parseInt(a,10) } function i(a){ while(g()&&h(g()))a+=f(); return a } function g(){ return b.charAt(c) } function f(){ return b.charAt(c++) } var c=0,d=[],e,h=a.isUnicodeLetter; while(c12?o>=1&&o<=31&&(g=o):m.push(o):e=o):f==null&&(f=T(o)) } m.length<2?m.length==1&&(g==null?g=m.shift():f==null&&(f=m.shift())):c?(f==null&&(f=m.shift()),g==null&&(g=m.shift())):(g==null&&(g=m.shift()),f==null&&(f=m.shift())),e==null&&(e=m.length>0?m.shift():d.getFullYear()),e<30?e+=2e3:e<99&&(e+=1900),f==null&&(f=d.getMonth()+1); return e!=null&&f!=null&&g!=null?new Date(e,f-1,g,h,i,j):null }; var be={ elastic_b:function(a){ return 1-Math.cos(-a*5.5*Math.PI)/Math.pow(2,7*a) }, magnetic:function(a){ return 1-Math.cos(a*a*a*10.5*Math.PI)/Math.exp(4*a) }, accel_b:function(a){ a=1-a; return 1-a*a*a*a }, accel_a:function(a){ return a*a*a }, accel_ab:function(a){ a=1-a; return 1-Math.sin(a*a*Math.PI/2) }, accel_ab2:function(a){ return(a/=.5)<1?.5*a*a:-0.5*(--a*(a-2)-1) }, brakes:function(a){ a=1-a; return 1-Math.sin(a*a*Math.PI) }, shake:function(a){ return a<.5?-Math.cos(a*11*Math.PI)*a*a:(a=1-a,Math.cos(a*11*Math.PI)*a*a) } },bl=new Function; return a }()