var Calendar=new Class({initialize:function(){if($("date_pick")!=null){$("date_pick").slide("hide")}if($(this.infoField)!=null){$(this.infoField).slide("hide")}if($("calendar_message")!=null){$("calendar_message").slide("hide")}$$("#new_entry input[type=submit]").addEvent("click",function(a){a.stop();calendar.save(this.name,this.value)});if($("general_settings_message")!=null){$("general_settings_message").slide("hide")}if($("arrivaldate")!=null){$("arrivaldate").addEvents({keyup:function(){calendar.checkDate()}})}if($("general_settings")!=null){$("general_settings").set("slide",{onComplete:function(){if($("general_settings_link").get("src")=="/images/button_pfeil_down.gif"){$("general_settings_link").set("src","/images/button_pfeil_up.gif")}else{$("general_settings_link").set("src","/images/button_pfeil_down.gif")}}})}if($("edit_calendar_options")!=null){$("edit_calendar_options").addEvent("submit",function(a){calendar.saveOptions();a.stop()})}if($("year_backward")!=null){$("year_backward").addClass("opaque")}if($("request_price")!=null){$("request_price").addEvent("click",function(a){calendar.requestPrice();a.stop()})}},infoField:"calendarMessage",isValidVaction:true,startDate:new Object(),endDate:new Object(),year:0,uri_base:"",vacationer:false,generateId:function(c,a,b){var d="day_";if(c.length==1){c="0"+c}if(a.length==1){a="0"+a}if(b.length==1){b="0"+b}return d+b+c+a},choose:function(g,i,h){var f=this.generateId(g,i,h);if(!$chk(this.startDate.year)&&!$chk(this.endDate.year)){$("date_pick").set("html",i+"."+g+"."+h+" - ");$("date_pick").slide("in");this.startDate.year=h;this.startDate.month=g;this.startDate.day=i;this.endDate=new Object();$(f).addClass("calandar_first_selected_day");$(f).setStyle("background-image","none");$("second_step").setStyle("color","");$("first_step").setStyle("color","gray")}else{if(!$chk(this.endDate.year)){this.endDate.year=h;this.endDate.month=g;this.endDate.day=i;var e=new Date(h,g-1,i);var a=new Date(this.startDate.year,this.startDate.month-1,this.startDate.day);if(e.getTime()<a.getTime()){var d=this.startDate.day;var b=this.startDate.month;var c=this.startDate.year;this.startDate.year=h;this.startDate.month=g;this.startDate.day=i;this.endDate.day=d;this.endDate.month=b;this.endDate.year=c}this.fillBetween();$("date_pick").set("html",this.startDate.day+"."+this.startDate.month+"."+this.startDate.year+" - "+this.endDate.day+"."+this.endDate.month+"."+this.endDate.year);$("third_step").setStyle("color","");$("second_step").setStyle("color","gray");$("submit_avaible").setStyle("color","");$("submit_avaible").set("disabled",false);$("submit_occupied").setStyle("color","");$("submit_occupied").set("disabled",false);$("submit_unknown").setStyle("color","");$("submit_unknown").set("disabled",false);this.fillForm()}else{this.cleanup(true);this.choose(g,i,h)}}},cleanup:function(){this.fillBetween(true);var a=this.generateId(this.startDate.month,this.startDate.day,this.startDate.year);if($(a)!=null){$(a).removeClass("calandar_first_selected_day")}this.endDate=new Object();this.startDate=new Object();$("first_step").setStyle("color","");$("second_step").setStyle("color","gray");$("third_step").setStyle("color","gray");$("submit_avaible").setStyle("color","gray");$("submit_avaible").set("disabled",true);$("submit_occupied").setStyle("color","gray");$("submit_occupied").set("disabled",true);$("submit_unknown").setStyle("color","gray");$("submit_unknown").set("disabled",true);$("date_pick").set("html","")},fillBetween:function(f){f=f||false;if(!$chk(this.startDate.year)||!$chk(this.endDate.year)){return 0}var d=null;var g;var h;var c;var b;var e;var a;for(g=parseInt(this.startDate.year,10);g<=parseInt(this.endDate.year,10);g+=1){if(this.startDate.year!=this.endDate.year&&g==parseInt(this.endDate.year,10)){e=1;a=parseInt(this.endDate.month,10)}else{if(this.startDate.year!=this.endDate.year&&g==parseInt(this.startDate.year,10)){a=12;e=parseInt(this.startDate.month,10)}else{e=parseInt(this.startDate.month,10);a=parseInt(this.endDate.month,10)}}for(h=e;h<=a;h+=1){if(this.startDate.year!=this.endDate.year&&g==parseInt(this.endDate.year,10)){c=1;if(h==parseInt(this.endDate.month,10)){b=parseInt(this.endDate.day,10)}else{b=31}}else{if(this.startDate.year!=this.endDate.year&&g==parseInt(this.startDate.year,10)){if(h==parseInt(this.startDate.month,10)){c=parseInt(this.startDate.day,10);b=31}else{c=1;b=31}}else{if(this.startDate.month==this.endDate.month){c=parseInt(this.startDate.day,10);b=parseInt(this.endDate.day,10)}else{if(h==parseInt(this.startDate.month,10)){c=parseInt(this.startDate.day,10);b=31}else{if(h==parseInt(this.endDate.month,10)){c=1;b=parseInt(this.endDate.day,10)}else{c=1;b=31}}}}}for(;c<=b;c+=1){d="day_"+g;if(h<10){d=d+"0"+h}else{d=d+h}if(c<10){d=d+"0"+c}else{d=d+c}if($(d)!=null){if(f){$(d).removeClass("calendar_selected");$(d).removeClass("calandar_first_selected_day");$(d).setStyle("background-image","");$(d).setStyle("background-color","")}else{$(d).addClass("calendar_selected");$(d).setStyle("background-image","none");if(this.vacationer){this.vacationerCheck(d)}}}}}}},vacationerCheck:function(a){var b="";if(this.isValidVaction){if($(a).hasClass("calendarOccupiedArrival")||$(a).hasClass("calendarOccupied")){b="Sie haben bereits belegte Tage ausgew&auml;hlt."}if($(a).hasClass("calandar_first_selected_day")){var c=$(a).getElement("span");if(c==null||(c!=null&&!c.hasClass("traveldays"))){if(b.length!=0){b=b+"<br />"}b=b+"Der ausgew&auml;hlte Anreisetermin ist ung&uuml;ltig."}}if(b.length!=0){$(this.infoField).set("html",b);$(this.infoField).slide("in");this.isValidVaction=false}}},fillForm:function(){if(!$chk(this.startDate.year)||!$chk(this.endDate.year)){return 0}var a=this.startDate.day+"."+this.startDate.month+"."+this.startDate.year;var b=this.endDate.day+"."+this.endDate.month+"."+this.endDate.year;$("startDate").set("value",a);$("endDate").set("value",b)},startMarker:function(i,f,g,h){var b=h||false;var e=this.generateId(f,i,g);if($(e)==null){return false}if(!$chk(this.startDate.year)&&!$chk(this.endDate.year)){this.startDate.year=g;this.startDate.month=f;this.startDate.day=i;this.endDate=new Object();$(e).addClass("calandar_first_selected_day");$(e).setStyle("background-image","none");if(h){$("arrivaldate").set("value",i+"."+f+"."+g)}var d=parseInt($("calendar_duration").get("value"),10);d=24*60*60*1000*(d);var a=new Date(this.startDate.year,this.startDate.month-1,this.startDate.day);var c=new Date();c.setTime(a.getTime()+d);this.endDate.month=c.getMonth()+1;this.endDate.day=c.getDate();this.endDate.year=c.getFullYear();this.isValidVaction=true;$(this.infoField).set("html","");$(this.infoField).slide("out");this.fillBetween()}else{this.isValidVaction=true;$(this.infoField).set("html","");$(this.infoField).slide("out");this.fillBetween(true);this.startDate=new Object();this.endDate=new Object();this.startMarker(i,f,g,b)}return false},changeDuration:function(d){if($chk(this.startDate.year)){var c=this.startDate.day;var b=this.startDate.month;var a=this.startDate.year;this.fillBetween(true);this.startDate=new Object();this.endDate=new Object();this.startMarker(c,b,a,false)}},checkDate:function(){if($("arrivaldate")==null){return false}var c=$("arrivaldate").get("value");if(c==this.text){return false}var a=c.split(".");if(a.length==3){var b=new Date(a[2],a[1],a[0]);if(b instanceof Date&&isFinite(b)){this.startMarker(a[0],a[1],a[2],false);return true}}this.text=c;return false},setVacationer:function(a){a=a||false;this.vacationer=a},setYear:function(b){if(!b){var a=new Date();this.year=parseInt(a.getFullYear(),10)}else{this.year=b}return true},setUriBase:function(a){this.uri_base=a},requestNextYear:function(){var a=new Date();if(!$chk(this.year)){this.year=parseInt(a.getFullYear(),10)}if(parseInt(a.getFullYear())+2<=this.year){$("calendar_message").set("html","Sie k&ouml;nnen nicht weiter als 3 Jahre in der Zukunft planen.");$("calendar_message").slide("in");(function(){$("calendarMessage").slide("out")}).delay(3000);$("year_forward").addClass("opaque")}else{this.year=this.year+1;this.setYearNavigation();this.runRequest();$("year_backward").removeClass("opaque")}return false},requestPreviousYear:function(){var a=new Date();if(!$chk(this.year)){this.year=parseInt(a.getFullYear(),10)}if(parseInt(a.getFullYear(),10)>=this.year){$("calendar_message").set("html","Der Belegungskalender ist nur f&uuml;r zuk&uuml;nftige Daten verf&uuml;gbar.");$("calendar_message").slide("in");(function(){$("calendar_message").slide("out")}).delay(3000);$("year_backward").addClass("opaque")}else{$("year_forward").removeClass("opaque");this.year=this.year-1;this.setYearNavigation();this.runRequest()}return false},setYearNavigation:function(){if(this.year!=null&&this.year!=0){$("nextYear").set("html","Jahr "+(this.year+1));$("previousYear").set("html","Jahr "+(this.year-1))}var a=new Date();if(this.year==parseInt(a.getFullYear(),10)){$("year_backward").addClass("opaque");$("year_forward").removeClass("opaque")}else{if(this.year>=(parseInt(a.getFullYear(),10)+2)){$("year_forward").addClass("opaque");$("year_backward").removeClass("opaque")}else{$("year_forward").removeClass("opaque");$("year_backward").removeClass("opaque")}}if($("year_head")!=null){$("year_head").set("html",this.year)}},runRequest:function(){var a=new Request.HTML({evalScripts:false,update:$("world_calendar"),onRequest:function(){calendar.ajaxShow()},onSuccess:function(b,c){if($("calendar_message")!=null&&$("calendar_message").get("html").indexOf("Jahr")!=-1){$("calendar_message").set("html","Jahr wurde erfolgreich aktualisiert.");$("calendar_message").slide("in");(function(){$("calendar_message").slide("out")}).delay(1500)}},onComplete:function(){calendar.ajaxHide();calendar.setYearNavigation()}}).get(this.uri_base+"/"+this.year+"/calendar_year.html")},viewPrevious:function(){var a=new Date();if(!$chk(this.year)){this.year=parseInt(a.getFullYear(),10)}if(parseInt(a.getFullYear(),10)>=this.year){$(this.infoField).set("html","Der Belegungskalender ist nur f&uuml;r zuk&uuml;nftige Daten verf&uuml;gbar.");$(this.infoField).slide("in");(function(){$(calendar.infoField).slide("out")}).delay(3000)}else{this.year=parseInt(this.year)-1;this.setYearNavigation();new Request.HTML({evalScripts:false,update:$("world_calendar"),onRequest:function(){calendar.ajaxShow()},onSuccess:function(){calendar.ajaxHide()}}).get(this.uri_base+"/"+this.year+"/"+object_id+"/calendar_public_year.html")}},viewNext:function(){var a=new Date();if(!$chk(this.year)){this.year=parseInt(a.getFullYear(),10)}if(parseInt(a.getFullYear(),10)+2<=this.year){$(this.infoField).set("html","Der Belegungskalender ist maximal f&uuml;r die n&auml;chsten 2 Jahre verf&uuml;gbar.");$(this.infoField).slide("in");(function(){$(calendar.infoField).slide("out")}).delay(3000)}else{this.year=parseInt(this.year)+1;this.setYearNavigation();new Request.HTML({evalScripts:false,update:$("world_calendar"),onRequest:function(){calendar.ajaxShow()},onSuccess:function(){calendar.ajaxHide()}}).get(this.uri_base+"/"+this.year+"/"+object_id+"/calendar_public_year.html")}},save:function(a,c){var b=new Request.HTML({evalScripts:false,update:$("calendar_message"),method:"post",data:$("new_entry").toQueryString()+"&"+a+"="+c,url:this.uri_base+"/calendar_save.html",onRequest:function(){calendar.ajaxShow()},onSuccess:function(d,e){$("calendar_message").slide("in");(function(){$("calendar_message").slide("hide")}).delay(1500);calendar.runRequest();(function(){calendar.cleanup()}).delay(1000)}}).send();return false},saveOptions:function(){$("submit_settings").set("disabled",true);$("submit_settings").set("value","Speichern ...");var a=new Request.HTML({evalScripts:false,method:"post",data:$("edit_calendar_options").toQueryString()+"&submit_settings=true",update:$("general_settings_message"),url:this.uri_base+"/calendar_save.html",onSuccess:function(b,c){$("submit_settings").setStyle("display","none");$("general_settings_message").slide("in");(function(){$("general_settings_message").slide("out");$("general_settings").slide("out")}).delay(2000);(function(){$("submit_settings").set("disabled",false);$("submit_settings").setStyle("display","block");$("submit_settings").set("value","Speichern")}).delay(2500)},onError:function(){alert("Fehler im Speichervorgang")}}).send();return false},ajaxShow:function(){if($("ajax-loader")!=null){$("ajax-loader").setStyle("visibility","visible")}},ajaxHide:function(){var a=$("ajax-loader");if(a!=null){(function(){$("ajax-loader").setStyle("visibility","hidden")}).delay(700)}},requestPrice:function(){$("request_price").set("disabled",true);$("request_price").set("value","Berechne...");var a="";a="fid="+$("calendar_fid").get("value");a+="&calendar_duration="+$("calendar_duration").get("value");a+="&arrivaldate="+$("arrivaldate").get("value");try{new Request.JSON({method:"post",url:this.uri_base+"/requestPrice.html",onSuccess:function(c){if($chk(c.status)&&c.status){calendar.buildBookingForm(c)}else{$("calendarMessage").innerHTML=c.result;$("calendarMessage").slide("in")}},onError:function(){},onComplete:function(){(function(){$("request_price").set("disabled",false);$("request_price").set("value","Preis abfragen")}).delay(2500)}}).send(a)}catch(b){alert(b)}return false},buildBookingForm:function(c){var b=new Element("div");b.adopt(new Element("p",{html:"Das Objekt kostet f&uuml;r diesen Zeitraum  <b>"+c.result+" Euro</b> ("+c.arrivaldate+" - "+c.departuredate+")",styles:{"text-align":"center","float":"left"}}));var d="urlauber/booking.html";if(this.uri_base.indexOf("beta")!=-1){d="beta/"+d}var a=new Element("form",{method:"post",action:d});b.adopt(a);a.adopt(new Element("input",{type:"hidden",name:"fid",value:$("calendar_fid").value}));a.adopt(new Element("input",{type:"hidden",name:"arrivaldate",value:c.arrivaldate}));a.adopt(new Element("input",{type:"hidden",name:"departuredate",value:c.departuredate}));a.adopt(new Element("input",{type:"submit",name:"booking",value:"Buchen","class":"textfeld2",styles:{width:"95px",margin:"10px 0 0 20px","float":"left"}}));b.adopt(new Element("div",{styles:{clear:"both"}}));$("calendarPriceRequest").getChildren().each(function(f,e){f.dispose()});$("calendarPriceRequest").adopt(b)}});
