var $chk=function(a){return !!(a||a===0)};var $defined=function(a){return(a!=undefined)};var CalendarEightysix=new Class({Implements:[Events,Options],options:{slideDuration:500,fadeDuration:200,toggleDuration:200,fadeTransition:Fx.Transitions.linear,slideTransition:Fx.Transitions.Quart.easeOut,prefill:false,defaultDate:null,linkWithInput:true,keyNavigation:false,theme:"vista",defaultView:"month",startMonday:true,alwaysShow:false,injectInsideTarget:false,format:"%d/%m/%Y",alignX:"right",alignY:"ceiling",offsetX:0,offsetY:0,maxZIndex:999,draggable:false,pickable:true,toggler:null,disallowUserInput:false,minDate:null,maxDate:null,excludedWeekdays:null,excludedDates:null,createHiddenInput:false,hiddenInputName:"date",hiddenInputFormat:"%t"},initialize:function(d,c){this.setOptions(c);this.target=$(d);this.transitioning=false;this.today=new Date().clearTime();Date.defineParser({re:/^[0-9]{10}$/,handler:function(e){return new Date.parse("Jan 01 1970").set("seconds",e[0])}});Date.defineParser({re:/\-/,handler:function(e){return new Date.parse(e.input.replace(/\-/,"."))}});if($defined(this.options.defaultDate)){this.selectedDate=new Date().parse(this.options.defaultDate).clearTime()}else{if(this.options.linkWithInput&&$chk(this.targetGetValue())){this.selectedDate=new Date().parse(this.targetGetValue()).clearTime()}}if(!$defined(this.selectedDate)||!this.selectedDate.isValid()){this.selectedDate=this.today.clone()}var a='<div class="c86-wrapper"><div class="c86-header"><div class="c86-arrow-left"></div><div class="c86-arrow-right"></div><div class="c86-label c86-clickable"></div></div><div class="c86-body"><div class="c86-inner"><div class="c86-container a"></div><div class="c86-container b"></div></div></div><div class="c86-footer"></div></div>';this.element=new Element("div",{"class":"calendar-eightysix",html:a,style:"display: "+(this.options.alwaysShow?"block":"none")}).addClass(this.options.theme);if(this.options.injectInsideTarget){this.element.inject(this.target)}else{this.element.inject($(document.body));this.position();window.addEvent("resize",this.position.bind(this))}this.currentContainer=this.element.getElement(".c86-container.a").setStyle("z-index",this.options.maxZIndex);this.tempContainer=this.element.getElement(".c86-container.b").setStyle("z-index",this.options.maxZIndex-1);this.header=this.element.getElement(".c86-header");this.label=this.header.getElement(".c86-label");this.arrowLeft=this.header.getElement(".c86-arrow-left");this.arrowRight=this.header.getElement(".c86-arrow-right");this.label.addEvent("click",this.levelUp.bind(this));this.arrowLeft.addEvent("click",this.slideLeft.bind(this));this.arrowRight.addEvent("click",this.slideRight.bind(this));if($defined(this.options.minDate)){this.options.minDate=Date.parse(this.options.minDate).clearTime();if(!this.options.minDate.isValid()){this.options.minDate=null}}if($defined(this.options.maxDate)){this.options.maxDate=Date.parse(this.options.maxDate).clearTime();if(!this.options.maxDate.isValid()){this.options.maxDate=null}}if($defined(this.options.excludedDates)){var b=[];this.options.excludedDates.each(function(e){b.include(this.format(new Date().parse(e).clearTime(),"%t"))}.bind(this));this.options.excludedDates=b}if(this.options.draggable&&!this.options.injectInsideTarget){this.header.addClass("c86-dragger");this.label.setStyle("width","auto");new Drag(this.element,{handle:this.header})}if(this.options.createHiddenInput){this.hiddenInput=new Element("input",{type:"hidden",name:this.options.hiddenInputName}).inject(this.target,"after")}if(!this.options.disallowUserInput&&this.options.linkWithInput&&this.target.get("tag")=="input"){this.setZIndex(9999);this.target.addEvent("keyup",function(){this.setDate(this.targetGetValue(),false)}.bind(this))}if($defined(this.options.toggler)){this.options.toggler=$(this.options.toggler)}($defined(this.options.toggler)?this.options.toggler:this.target).addEvents({focus:this.show.bind(this),click:this.show.bind(this)});if(!this.options.alwaysShow){document.addEvent("mousedown",this.outsideClick.bind(this))}Locale.addEvent("langChange",function(){this.render();this.pick()}.bind(this));if(this.target.get("tag")=="input"){this.target.addEvent("keydown",this.onKeyDown.bind(this));if(this.options.disallowUserInput){this.target.addEvent("contextmenu",($lambda(false)))}}this.selectedDate=this.correctDate(this.selectedDate);if(this.options.prefill){this.pick()}this.viewDate=this.selectedDate.clone().set("date",1).clearTime();this.view=this.options.defaultView;this.render()},targetGetValue:function(){$val=this.target.get("value");if($val){return $val.substr(0,10)}return $val},targetSetValue:function(a){if(this.target.get("value").length>10){a=a+this.target.get("value").substr(10)}this.target.set("value",a)},setZIndex:function(a){this.element.setStyle("z-index",a)},render:function(){this.currentContainer.empty();switch(this.view){case"decade":this.renderDecade();break;case"year":this.renderYear();break;default:this.renderMonth()}return this},renderMonth:function(){this.view="month";this.currentContainer.empty().addClass("c86-month");if(this.options.pickable){this.currentContainer.addClass("c86-pickable")}var g=Locale.get("Date"),d=this.viewDate.format("%w")-(this.options.startMonday?1:0);if(d==-1){d=6}this.label.set("html",g.months[this.viewDate.get("month")]+" "+this.viewDate.format("%Y"));var f=new Element("div",{"class":"c86-row"}).inject(this.currentContainer);for(var c=(this.options.startMonday?1:0);c<(this.options.startMonday?8:7);c++){var b=new Element("div",{html:g.days[this.options.startMonday&&c==7?0:c]}).inject(f);b.set("html",b.get("html").substr(0,2))}f=new Element("div",{"class":"c86-row"}).inject(this.currentContainer);h=this.viewDate.clone().decrement("month").getLastDayOfMonth();for(var c=0;c<d;c++){this.injectDay(f,this.viewDate.clone().decrement("month").set("date",h-(d-c)+1),true)}for(var c=1;c<=this.viewDate.getLastDayOfMonth();c++){this.injectDay(f,this.viewDate.clone().set("date",c));if(f.getChildren().length==7){f=new Element("div",{"class":"c86-row"}).inject(this.currentContainer)}}var h=8-f.getChildren().length,a=this.viewDate.clone().increment("month").set("date",1);for(var c=1;c<h;c++){this.injectDay(f,a.clone().set("date",c),true)}for(var h=this.currentContainer.getElements(".c86-row").length;h<7;h++){f=new Element("div",{"class":"c86-row"}).inject(this.currentContainer);for(var e=0;e<7;e++){this.injectDay(f,a.clone().set("date",c),true);c++}}this.renderAfter()},injectDay:function(d,b,c){var a=new Element("div",{html:b.get("date")}).inject(d);a.store("date",b);if(c){a.addClass("c86-outside")}if(($defined(this.options.minDate)&&this.format(this.options.minDate,"%t")>this.format(b,"%t"))||($defined(this.options.maxDate)&&this.format(this.options.maxDate,"%t")<this.format(b,"%t"))||($defined(this.options.excludedWeekdays)&&this.options.excludedWeekdays.contains(b.format("%w").toInt()))||($defined(this.options.excludedDates)&&this.options.excludedDates.contains(this.format(b,"%t")))){a.addClass("c86-non-selectable")}else{if(this.options.pickable){a.addEvent("click",this.pick.bind(this))}}if(b.format("%x")==this.today.format("%x")){a.addClass("c86-today")}if(b.format("%x")==this.selectedDate.format("%x")){a.addClass("c86-selected")}},renderYear:function(){this.view="year";this.currentContainer.addClass("c86-year-decade");var d=Locale.get("Date").months;this.label.set("html",this.viewDate.format("%Y"));var c=new Element("div",{"class":"c86-row"}).inject(this.currentContainer);for(var a=1;a<13;a++){var b=new Element("div",{html:d[a-1]}).inject(c);b.set("html",b.get("html").substr(0,3));var e=this.viewDate.clone().set("month",a-1);b.store("date",e);if(($defined(this.options.minDate)&&this.format(this.options.minDate.clone().set("date",1),"%t")>this.format(e,"%t"))||($defined(this.options.maxDate)&&this.format(this.options.maxDate.clone().set("date",1),"%t")<this.format(e,"%t"))){b.addClass("c86-non-selectable")}else{b.addEvent("click",this.levelDown.bind(this))}if(a-1==this.today.get("month")&&this.viewDate.get("year")==this.today.get("year")){b.addClass("c86-today")}if(a-1==this.selectedDate.get("month")&&this.viewDate.get("year")==this.selectedDate.get("year")){b.addClass("c86-selected")}if(!(a%4)&&a!=12){c=new Element("div",{"class":"c86-row"}).inject(this.currentContainer)}}this.renderAfter()},renderDecade:function(){this.label.removeClass("c86-clickable");this.view="decade";this.currentContainer.addClass("c86-year-decade");var a,b;a=b=this.viewDate.format("%Y").toInt();while(b%12){b--}this.label.set("html",b+" &#150; "+(b+11));var f=new Element("div",{"class":"c86-row"}).inject(this.currentContainer);for(var c=b;c<b+12;c++){var e=new Element("div",{html:c}).inject(f);var d=this.viewDate.clone().set("year",c);e.store("date",d);if(($defined(this.options.minDate)&&this.options.minDate.get("year")>c)||($defined(this.options.maxDate)&&this.options.maxDate.get("year")<c)){e.addClass("c86-non-selectable")}else{e.addEvent("click",this.levelDown.bind(this))}if(c==this.today.get("year")){e.addClass("c86-today")}if(c==this.selectedDate.get("year")){e.addClass("c86-selected")}if(!((c+1)%4)&&c!=b+11){f=new Element("div",{"class":"c86-row"}).inject(this.currentContainer)}}this.renderAfter()},renderAfter:function(){var c=this.currentContainer.getElements(".c86-row");for(var a=0;a<c.length;a++){c[a].set("class","c86-row "+["a","b","c","d","e","f","g"][a]+" "+(a%2?"c86-even":"c86-odd")).getFirst().addClass("c86-first");c[a].getLast().addClass("c86-last");if((this.view=="month"&&a==1&&$defined(this.options.minDate)&&this.options.minDate.diff(this.viewDate)<=0)||(this.view!="month"&&a==0&&$defined(this.options.minDate)&&this.format(this.options.minDate,"%t")>=this.format(c[a].getFirst().retrieve("date"),"%t"))){this.arrowLeft.setStyle("visibility","hidden")}if(a==c.length-1&&$defined(this.options.maxDate)){if((this.view=="month"&&this.options.maxDate.diff(this.viewDate.clone().increment("month").decrement())>=0)||(this.view=="year"&&this.format(this.options.maxDate,"%t")<=this.format(c[a].getLast().retrieve("date").clone().increment("month"),"%t"))||(this.view=="decade"&&this.format(this.options.maxDate,"%t")<=this.format(c[a].getLast().retrieve("date").clone().increment("year"),"%t"))){this.arrowRight.setStyle("visibility","hidden")}}}if($defined(this.$events["render"+this.view])){var b=this.currentContainer.getElements("div[class~=c86-row] > div");if(this.view=="month"){for(var a=0;a<7;a++){b[a]=null}b=b.clean()}this.fireEvent("render"+this.view,{view:this.view,elements:b})}},slideLeft:function(){this.switchContainers();switch(this.view){case"month":this.viewDate.decrement("month");break;case"year":this.viewDate.decrement("year");break;case"decade":this.viewDate.set("year",this.viewDate.get("year")-12);break}this.render();this.currentContainer.set("tween",{duration:this.options.slideDuration,transition:this.options.slideTransition}).tween("left",[-this.currentContainer.getWidth(),0]);this.tempContainer.set("tween",{duration:this.options.slideDuration,transition:this.options.slideTransition}).tween("left",[0,this.tempContainer.getWidth()])},slideRight:function(){this.switchContainers();switch(this.view){case"month":this.viewDate.increment("month");break;case"year":this.viewDate.increment("year");break;case"decade":this.viewDate.set("year",this.viewDate.get("year")+12);break}this.render();this.currentContainer.set("tween",{duration:this.options.slideDuration,transition:this.options.slideTransition}).tween("left",[this.currentContainer.getWidth(),0]);this.tempContainer.set("tween",{duration:this.options.slideDuration,transition:this.options.slideTransition}).tween("left",[0,-this.currentContainer.getWidth()])},levelDown:function(a){if(this.transitioning){return}this.switchContainers();this.viewDate=$(a.target).retrieve("date");switch(this.view){case"year":this.renderMonth();break;case"decade":this.renderYear();break}this.transitioning=true;this.currentContainer.set("tween",{duration:this.options.fadeDuration,transition:this.options.fadeTransition,onComplete:function(){this.transitioning=false}.bind(this)}).setStyles({opacity:0,left:0}).fade("in");this.tempContainer.set("tween",{duration:this.options.fadeDuration,transition:this.options.fadeTransition}).fade("out")},levelUp:function(){if(this.view=="decade"||this.transitioning){return}this.switchContainers();switch(this.view){case"month":this.renderYear();break;case"year":this.renderDecade();break}this.transitioning=true;this.currentContainer.set("tween",{duration:this.options.fadeDuration,transition:this.options.fadeTransition,onComplete:function(){this.transitioning=false}.bind(this)}).setStyles({opacity:0,left:0}).fade("in");this.tempContainer.set("tween",{duration:this.options.fadeDuration,transition:this.options.fadeTransition}).fade("out")},switchContainers:function(){this.currentContainer=this.currentContainer.hasClass("a")?this.element.getElement(".c86-container.b"):this.element.getElement(".c86-container.a");this.tempContainer=this.tempContainer.hasClass("a")?this.element.getElement(".c86-container.b"):this.element.getElement(".c86-container.a");this.currentContainer.empty().removeClass("c86-month").removeClass("c86-year-decade").setStyles({opacity:1,visibility:"visible",display:"block","z-index":this.options.maxZIndex});this.tempContainer.setStyle("z-index",this.options.maxZIndex-1);this.label.addClass("c86-clickable");this.arrowLeft.setStyle("visibility","visible");this.arrowRight.setStyle("visibility","visible")},position:function(){var b,a;var c=this.target.getCoordinates();switch(this.options.alignX){case"left":a=c.left;break;case"middle":a=c.left+(c.width/2)-(this.element.getWidth()/2);break;case"right":default:a=c.left+c.width}switch(this.options.alignY){case"bottom":b=c.top+c.height;break;case"top":b=c.top-this.element.getHeight();break;case"ceiling":default:b=c.top}a+=this.options.offsetX.toInt();b+=this.options.offsetY.toInt();this.element.setStyles({top:b,left:a})},show:function(){if(!this.visible&!this.options.alwaysShow){this.visible=true;this.element.setStyles({display:"block"});if(!this.options.injectInsideTarget){this.position()}this.element.fade("hide");this.element.fade("in")}},hide:function(){if(this.visible&!this.options.alwaysShow){this.visible=false;this.element.fade("show");this.element.fade("out")}},toggle:function(){if(this.visible){this.hide()}else{this.show()}},outsideClick:function(c){if(this.visible){var a=this.element.getCoordinates();var b=this.target.getCoordinates();if(((c.page.x<a.left||c.page.x>(a.left+a.width))||(c.page.y<a.top||c.page.y>(a.top+a.height)))&&((c.page.x<b.left||c.page.x>(b.left+b.width))||(c.page.y<b.top||c.page.y>(b.top+b.height)))){this.hide()}}},pick:function(b){if($defined(b)){this.selectedDate=$(b.target).retrieve("date");this.element.getElements(".c86-selected").removeClass("c86-selected");$(b.target).addClass("c86-selected");(this.hide.bind(this)).delay(150);if($(b.target).hasClass("c86-outside")){if(this.options.alwaysShow){if(this.selectedDate.diff(this.viewDate)>0){this.slideLeft()}else{this.slideRight()}}else{this.viewDate=this.selectedDate.clone().set("date",1);(this.render.bind(this)).delay(300)}}}var a=this.format(this.selectedDate);if(!this.options.injectInsideTarget){switch(this.target.get("tag")){case"input":this.targetSetValue(a);break;default:this.target.set("html",a)}}if($defined(this.hiddenInput)){this.hiddenInput.set("value",this.format(this.selectedDate,this.options.hiddenInputFormat))}this.fireEvent("change",this.selectedDate);return this},format:function(a,b){if(!$defined(b)){b=this.options.format}if(!$defined(a)){return}b=b.replace(/%([a-z%])/gi,function(c,d){switch(d){case"D":return a.get("date");case"n":return a.get("mo")+1;case"t":return(a.getTime()/1000).toInt()}return"%"+d});return a.format(b)},onKeyDown:function(d){if(this.options.keyNavigation){var a=this.selectedDate.clone();var b=true;var c=false;switch(d.code){case 37:a.decrement();c=true;b=false;break;case 39:a.increment();c=true;break;case 38:a.decrement("month");c=true;b=false;break;case 40:a.increment("month");c=true;break}if(c){a=this.correctDate(a,b);if(this.selectedDate.diff(a)!=0){this.setDate(a)}}}if(this.options.disallowUserInput){return false}},correctDate:function(a,c){if(!$defined(c)){c=true}if($defined(this.options.minDate)&&a.diff(this.options.minDate)>0){a=this.options.minDate.clone()}else{if($defined(this.options.maxDate)&&a.diff(this.options.maxDate)<0){a=this.options.maxDate.clone()}}var b=0;while(($defined(this.options.excludedWeekdays)&&this.options.excludedWeekdays.contains(a.format("%w").toInt()))||(($defined(this.options.minDate)&&a.diff(this.options.minDate)>0)||($defined(this.options.maxDate)&&a.diff(this.options.maxDate)<0))||($defined(this.options.excludedDates)&&this.options.excludedDates.contains(this.format(a,"%t")))){if(b==31){c=!c}else{if(b==62){a=this.options.minDate.clone();break}}if(c){a.increment()}else{a.decrement()}b++}return a},setDate:function(c,b){if(!$defined(b)){b=true}if(typeOf(c)=="date"){var a=c.clearTime()}else{var a=$chk(c)?new Date().parse(this.targetGetValue()).clearTime():new Date().clearTime()}if(a.isValid()){this.selectedDate=this.correctDate(a);this.viewDate=this.selectedDate.clone().set("date",1);this.render();if(b){this.pick()}}return this},getDate:function(){return this.selectedDate}});
