var CalendarEightysix=new Class({Implements:[Events,Options],options:{slideDuration:500,fadeDuration:200,toggleDuration:200,fadeTransition:Fx.Transitions.linear,slideTransition:Fx.Transitions.Quart.easeOut,prefill:true,defaultDate:null,linkWithInput:true,keyNavigation:false,theme:"default",defaultView:"month",startMonday:false,alwaysShow:false,injectInsideTarget:false,format:"%m/%d/%Y",alignX:"right",alignY:"ceiling",offsetX:0,offsetY:0,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.target.get("value"))){this.selectedDate=new Date().parse(this.target.get("value")).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.injectBottom(this.target);}else{this.element.injectBottom($(document.body));this.position();window.addEvent("resize",this.position.bind(this));}this.currentContainer=this.element.getElement(".c86-container.a").setStyle("z-index",999);this.tempContainer=this.element.getElement(".c86-container.b").setStyle("z-index",998);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}).injectAfter(this.target);}if(!this.options.disallowUserInput&&this.options.linkWithInput&&this.target.get("tag")=="input"){this.target.addEvent("keyup",function(){this.setDate(this.target.get("value"),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));}MooTools.lang.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();},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=MooTools.lang.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"}).injectBottom(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]}).injectBottom(f);b.set("html",b.get("html").substr(0,2));}f=new Element("div",{"class":"c86-row"}).injectBottom(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"}).injectBottom(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"}).injectBottom(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")}).injectBottom(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=MooTools.lang.get("Date").months;this.label.set("html",this.viewDate.format("%Y"));var c=new Element("div",{"class":"c86-row"}).injectBottom(this.currentContainer);for(var a=1;a<13;a++){var b=new Element("div",{html:d[a-1]}).injectBottom(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"}).injectBottom(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"}).injectBottom(this.currentContainer);for(var c=b;c<b+12;c++){var e=new Element("div",{html:c}).injectBottom(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"}).injectBottom(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,display:"block","z-index":999});this.tempContainer.setStyle("z-index",998);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;if(!Browser.Engine.trident){this.element.setStyles({opacity:0,display:"block"});if(!this.options.injectInsideTarget){this.position();}this.element.set("tween",{duration:this.options.toggleDuration,transition:this.options.fadeTransition}).fade("in");}else{this.element.setStyles({opacity:1,display:"block"});if(!this.options.injectInsideTarget){this.position();}}}},hide:function(){if(this.visible&!this.options.alwaysShow){this.visible=false;if(!Browser.Engine.trident){this.element.set("tween",{duration:this.options.toggleDuration,transition:this.options.fadeTransition,onComplete:function(){this.element.setStyle("display","none");}.bind(this)}).fade("out");}else{this.element.setStyle("display","none");}}},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.target.set("value",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($type(c)=="date"){var a=c.clearTime();}else{var a=$chk(c)?new Date().parse(this.target.get("value")).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;}});window.addEvent("domready",function(){MooTools.lang.set("fr-FR","Date",{months:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],days:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],dateOrder:["date","month","year","/"]});MooTools.lang.setLanguage("fr-FR");});
