var vlaCalendar=new Class({slideDuration:500,fadeDuration:500,transition:Fx.Transitions.Quart.easeOut,startMonday:false,filePath:"/services/vlaCal/",defaultView:"month",style:"",initialize:function(C,A){if(!$(C)){return }if(A){$extend(this,A)}this.loading=false;this.container=C=$(C);var B=this;var D="defaultView="+this.defaultView;if(this.picker){if($type(this.prefillDate)=="object"&&this.getInputDate(this.prefillDate)){D+="&pickedDate="+this.getInputDate(this.prefillDate)}if(this.linkWithInput){D+="&gotoPickedDate=1"}}this.u("base",D,function(){B.mainLoader=C.getElement("div[class=loaderA]");B.tempLoader=C.getElement("div[class=loaderB]");B.label=C.getElement("span[class=label]");B.arrowLeft=C.getElement("div[class=arrowLeft]");B.arrowRight=C.getElement("div[class=arrowRight]");B.initializeCalendarFunctions();if(B.picker){if($type(B.prefillDate)=="object"&&B.getInputDate(B.prefillDate)){B.pick(B.prefillDate)}else{if(B.prefillDate==true){B.pick(JSON.decode(B.label.getProperty("date")))}}}},C)},initializeCalendarFunctions:function(){this.resetArrows();var C=JSON.decode(this.mainLoader.getElement("table").getProperty("summary"));var A=this;this.label.removeClass("noHover").set("html",C.label).onclick=C.parent?function(){A.u(C.parent,"ts="+C.ts+"&parent="+C.current,function(){A.fade()})}:null;if(C.hide_left_arrow){this.hideLeftArrow()}else{if(C.hide_right_arrow){this.hideRightArrow()}}this.arrowLeft.onclick=function(){A.u(C.current,"ts="+C.pr_ts,function(){A.slideLeft()})};this.arrowRight.onclick=function(){A.u(C.current,"ts="+C.nx_ts,function(){A.slideRight()})};var B=this.mainLoader.getElements("td");switch(C.current){case"month":if(this.picker){B.each(function(D){D.onclick=function(){A.pick(JSON.decode(D.getProperty("date")));A.mainLoader.getElements("td").each(function(E){E.removeClass("selected")});this.addClass("selected")}})}break;case"year":B.each(function(D){D.onclick=function(){A.u("month","ts="+D.getProperty("ts"),function(){A.fade()})}});break;case"decade":this.label.addClass("noHover");B.each(function(D){D.onclick=function(){A.u("year","ts="+D.getProperty("ts")+"&m_ts="+D.getProperty("m_ts"),function(){A.fade()})}});break}},u:function(F,B,E,D){if(!this.loading&&!this.transitioning){var A=this;this.loading=true;var C=$(D?D:this.tempLoader);B+="&picker="+(this.picker?1:0)+"&startMonday="+(this.startMonday?1:0)+"&style="+this.style;if(this.picker&&this.getInputDate()){B+="&pickedDate="+this.getInputDate()}new Request({method:"post",url:this.filePath+F+".php",onComplete:function(G){if(C){C.set("html",G)}E();A.loading=false}}).send(B)}},slideLeft:function(){var A=this;this.transitioning=true;this.tempLoader.setStyle("opacity",1).set("tween",{duration:this.slideDuration,transition:this.transition}).tween("margin-left",[-164,0]);this.mainLoader.setStyle("opacity",1).set("tween",{duration:this.slideDuration,transition:this.transition,onComplete:function(){A.transitioning=false}}).tween("margin-left",[0,164]);this.switchLoaders()},slideRight:function(){var A=this;this.transitioning=true;this.mainLoader.setStyle("opacity",1).set("tween",{duration:this.slideDuration,transition:this.transition}).tween("margin-left",[0,-164]);this.tempLoader.setStyle("opacity",1).set("tween",{duration:this.slideDuration,transition:this.transition,onComplete:function(){A.transitioning=false}}).tween("margin-left",[164,0]);this.switchLoaders()},fade:function(B){var A=this;this.transitioning=B?false:true;this.tempLoader.setStyles({opacity:0,"margin-left":0});this.mainLoader.set("tween",{duration:this.fadeDuration,transition:this.transition}).fade("out");this.tempLoader.set("tween",{duration:this.fadeDuration,transition:this.transition,onComplete:function(){A.tempLoader.setStyles({opacity:1,"margin-left":-999});A.transitioning=false}}).fade("in");this.switchLoaders()},switchLoaders:function(){this.mainLoader=this.mainLoader.className=="loaderA"?this.container.getElement("div[class=loaderB]"):this.container.getElement("div[class=loaderA]");this.tempLoader=this.tempLoader.className=="loaderA"?this.container.getElement("div[class=loaderB]"):this.container.getElement("div[class=loaderA]");this.initializeCalendarFunctions()},resetArrows:function(){this.arrowLeft.setStyle("visibility","visible");this.arrowRight.setStyle("visibility","visible")},hideLeftArrow:function(){this.arrowLeft.setStyle("visibility","hidden")},hideRightArrow:function(){this.arrowRight.setStyle("visibility","hidden")}});var vlaDatePicker=new Class({Extends:vlaCalendar,separateInput:false,prefillDate:true,linkWithInput:true,leadingZero:true,twoDigitYear:false,separator:"/",format:"d/m/y",openWith:null,alignX:"right",alignY:"inputTop",offset:{x:0,y:0},style:"",ieTransitionColor:"#ffffff",toggleDuration:350,initialize:function(B,A){if(A){$extend(this,A)}this.element=$(B);if(!this.element){throw"No (existing) element to create a datepicker for specified: new vlaDatePicker(ELEMENT, [options])"}if(this.separateInput){this.element.day=this.element.getElement("input[name="+this.separateInput.day+"]");this.element.month=this.element.getElement("input[name="+this.separateInput.month+"]");this.element.year=this.element.getElement("input[name="+this.separateInput.year+"]")}this.picker=new Element("div",{"class":"vlaCalendarPicker"+(this.style!=""?" "+this.style:"")}).injectTop($(document.body));this.pickerContent=new Element("div",{"class":"pickerBackground"}).injectTop(this.picker);this.parent(this.pickerContent);var C=this;(this.openWith?$(this.openWith):this.element).addEvent("focus",function(){C.show()}).addEvent("click",function(){C.openWith?C.toggle():C.show()}).addEvent("change",function(){C.hide()});document.addEvent("mousedown",function(D){if(C.outsideHide&&C.outsideClick(D,C.picker)){C.hide()}});if(this.linkWithInput){if(this.separateInput){this.element.day.addEvent("keyup",function(){C.linkedUpdate()});this.element.month.addEvent("keyup",function(){C.linkedUpdate()});this.element.year.addEvent("keyup",function(){C.linkedUpdate()})}else{this.element.addEvent("keyup",function(){C.linkedUpdate()})}}this.visible=false;this.outsideHide=false},position:function(){var C,B;switch(this.alignX){case"left":B=this.element.getLeft();break;case"center":var A=this.pickerContent.getStyle("width").toInt()/2;if(A==0){A=83}B=this.element.getLeft()+(this.element.getSize().x/2)-A-((parseInt(this.pickerContent.getStyle("padding-left"))+parseInt(this.pickerContent.getStyle("padding-right")))/2);break;case"right":default:B=this.element.getLeft()+this.element.getSize().x;break}switch(this.alignY){case"bottom":C=this.getPos(this.element).y+this.element.getSize().y;break;case"top":C=this.getPos(this.element).y-parseInt(this.pickerContent.getStyle("height"))-(parseInt(this.pickerContent.getStyle("padding-top"))+parseInt(this.pickerContent.getStyle("padding-bottom")));break;case"inputTop":default:C=this.getPos(this.element).y}if(this.isNumber(this.offset.x)){B+=this.offset.x}if(this.isNumber(this.offset.y)){C+=this.offset.y}this.picker.setStyles({top:C,left:B})},show:function(){this.position();if(!this.visible){this.visible=true;var A=this;this.picker.setStyles({opacity:0,display:"inline"});if(Browser.Engine.trident5){this.picker.setStyle("background-color",this.ieTransitionColor)}this.picker.set("tween",{onComplete:function(){if(Browser.Engine.trident5){A.picker.setStyle("background-color","transparent")}A.outsideHide=true},duration:this.toggleDuration}).fade("in")}},hide:function(){if(this.visible){this.visible=false;var A=this;if(Browser.Engine.trident5){this.picker.setStyle("background-color",this.ieTransitionColor)}this.picker.set("tween",{onComplete:function(){A.picker.setStyle("display","none");A.outsideHide=false},duration:this.toggleDuration}).fade("out")}},toggle:function(){if(this.visible){this.hide()}else{this.show()}},pick:function(A){if(this.leadingZero){if(A.day<10){A.day="0"+A.day}if(A.month<10){A.month="0"+A.month}}if(this.twoDigitYear){A.year=A.year.toString().substring(2,4)}if(this.separateInput){if(this.element.day){this.element.day.set("value",A.day)}if(this.element.month){this.element.month.set("value",A.month)}if(this.element.year){this.element.year.set("value",A.year)}this.hide()}else{switch(this.format){case"m/d/y":this.element.set("value",A.month+this.separator+A.day+this.separator+A.year);break;case"y/m/d":this.element.set("value",A.year+this.separator+A.month+this.separator+A.day);break;case"y/d/m":this.element.set("value",A.year+this.separator+A.day+this.separator+A.month);break;case"d/m/y":default:this.element.set("value",A.day+this.separator+A.month+this.separator+A.year)}this.hide()}},getInputDate:function(A){var B,E,D;if(A){B=A.day;E=A.month;D=A.year}else{if(this.separateInput){B=this.element.day.get("value").toInt();E=this.element.month.get("value").toInt();D=this.element.year.get("value").toInt()}else{var C=this.element.get("value").split(this.separator);if(C.length!=3){return null}switch(this.format){case"m/d/y":B=C[1];E=C[0];D=C[2];break;case"y/m/d":B=C[2];E=C[1];D=C[0];break;case"y/d/m":B=C[1];E=C[2];D=C[0];break;case"d/m/y":default:B=C[0];E=C[1];D=C[2]}}}if(!this.isNumber(B)||!this.isNumber(E)||!this.isNumber(D)||B==0||E==0||D=="0"||(this.twoDigitYear&&D>99)||(!this.twoDigitYear&&D<1979)||(!this.twoDigitYear&&D>2030)||E>12||B>31){return null}if(this.twoDigitYear&&this.isNumber(D)&&D<100){D=D.toInt();if(D<10){D="200"+D}else{if(D<70){D="20"+D}else{if(D>69){D="19"+D}else{D=new Date().getFullYear()}}}}return B+"/"+E+"/"+D},linkedUpdate:function(){var A=this;var B=this.getInputDate();if(B&&this.pickedDate!=B){this.u("month","gotoPickedDate=1",function(){A.fade(true)});this.pickedDate=B}},outsideClick:function(C,B){var A=this.getMousePos(C);var D=B.getCoordinates();return(A.x>D.left&&A.x<(D.left+D.width))&&(A.y>D.top&&A.y<(D.top+D.height))?false:true},getMousePos:function(A){if(document.all){return{x:window.event.clientX+window.getScrollLeft(),y:window.event.clientY+window.getScrollTop()}}else{return{x:A.page.x,y:A.page.y}}},isNumber:function(A){if(A==""){return false}return(A>=0)||(A<0)?true:false},getPos:function(B){var A,C=0;if(B.offsetParent){do{A+=B.offsetLeft;C+=B.offsetTop}while(B=B.offsetParent)}else{if(B.x){A+=B.x;C+=B.y}}return{x:A,y:C}}});