
var IAD=IAD||{};IAD.travel=IAD.travel||{};jQuery.fn.show_only_if=function(test){this.each(function(){if(test.apply(this)){jQuery(this).show();}else{jQuery(this).hide();}});return this;};jQuery.fn.count_number_of=function(test){var number=0;this.each(function(){if(test.apply(this)){number=number+1;}});return number;};jQuery.fn.has_any=function(test){var any=false;this.each(function(){any=any||test.apply(this);});return any;};jQuery.fn.exists=function(){return this.length>0;};jQuery.fn.abs_position=function(){var obj=$(this).get(0);var curleft=obj.offsetLeft||0;var curtop=obj.offsetTop||0;while(obj=obj.offsetParent){curleft+=obj.offsetLeft
curtop+=obj.offsetTop}
return{left:curleft,top:curtop};}
jQuery.fn.focus_next_input_field=function(){return this.each(function(){var fields=$(this).parents('form:eq(0),body').find(':input').not('[type=hidden]');var index=fields.index(this);if(index>-1&&(index+1)<fields.length){fields.eq(index+1).focus();}
return false;});};function departureCalendarOnSelect(calendar,date){if(calendar.dateClicked){var inputField=document.forms.flightticketsearch.formattedDepartureDate;inputField.value=date;document.forms.flightticketsearch.departureDateD.value=inputField.value.substring(8,10);document.forms.flightticketsearch.departureDateYM.value=inputField.value.substring(0,7);document.forms.flightticketsearch.departureDateD.onchange();calendar.callCloseHandler();}}
function returnCalendarOnSelect(calendar,date){if(calendar.dateClicked){var inputField=document.forms.flightticketsearch.formattedReturnDate;inputField.value=date;document.forms.flightticketsearch.returnDateD.value=inputField.value.substring(8,10);document.forms.flightticketsearch.returnDateYM.value=inputField.value.substring(0,7);updateDateWithWeekday('departureDateYM','departureDateD','formattedDepartureDate','returnDateYM','returnDateD','formattedReturnDate','','departureDateW','returnDateW');updateDateWithWeekday('returnDateYM','returnDateD','formattedReturnDate','','','','','returnDateW','departureDateW');calendar.callCloseHandler();}}
function toggleOneWay(){var e;if(document.forms.flightticketsearch.oneWay.checked){e=document.getElementById('returnDate');if(e!=null){e.style.display="none";}
e=document.getElementById('returnDateLabel');if(e!=null){e.style.display="none";}}else{e=document.getElementById('returnDate');if(e!=null){e.style.display="block";}
e=document.getElementById('returnDateLabel');if(e!=null){e.style.display="inline";}}}
function loadCookie(weekdays,dateFormat,formref){var expCookie=new Cookie(document,"reise",2400,"/");expCookie.remove();var cookie=new Cookie(document,"travel",2400,"/");var f=document.forms[formref];cookie.load();if(cookie.dt1){var flights=document.forms[formref];var d;if(!getParameter("depDate")){d=Date.parseString(cookie.dt1,dateFormat);}
else{d=Date.parseString(getParameter("depDate"),dateFormat);}
var today=new Date();if(d>today){if(formref=='carsearch'){if(!getParameter("areaId")){if(cookie.dN){f.locOriginName.value=cookie.dN;f.locOriginNameHidden.value=cookie.dN;}
if(cookie.dC){f.locOriginCodes.value=cookie.dC;}}
if(cookie.oN){f.locDestinationName.value=cookie.dN;f.locDestinationNameHidden.value=cookie.dN;}
if(cookie.oC){f.locDestinationCodes.value=cookie.dC;}}
else{if(!getParameter("originAreaId")){if(cookie.oN){document.forms[formref].locOriginName.value=cookie.oN;document.forms[formref].locOriginNameHidden.value=cookie.oN;}
if(cookie.oC){document.forms[formref].locOriginCodes.value=cookie.oC;}}
if(!document.forms[formref].locDestinationName.value){if(cookie.dN){document.forms[formref].locDestinationName.value=cookie.dN;document.forms[formref].locDestinationNameHidden.value=cookie.dN;}
if(cookie.dC){document.forms[formref].locDestinationCodes.value=cookie.dC;}}}
flights.depDate.value=d.format(dateFormat);var innerh=document.getElementById("departure-weekday");if(innerh){innerh.innerHTML=weekdays[d.getDay()];}
if(cookie.dt2){var d2;if(!getParameter("retDate")){d2=Date.parseString(cookie.dt2,dateFormat);}
else{d2=Date.parseString(getParameter("retDate"),dateFormat);}
flights.retDate.value=d2.format(dateFormat);var innerA=document.getElementById("return-weekday");if(innerA){innerA.innerHTML=weekdays[d2.getDay()];}}
if(cookie.nAd&&f.noOfAdults){document.forms[formref].noOfAdults.value=cookie.nAd;}
if(cookie.nCh&&f.noOfChildren){f.noOfChildren.value=cookie.nCh;if(cookie.aCh){var ageArray=cookie.aCh.split(',');if(ageArray[0])f.ageOfChild_0.value=ageArray[0];if(ageArray[1])f.ageOfChild_1.value=ageArray[1];if(ageArray[2])f.ageOfChild_2.value=ageArray[2];if(ageArray[3])f.ageOfChild_3.value=ageArray[3];if(ageArray[4])f.ageOfChild_4.value=ageArray[4];if(ageArray[5])f.ageOfChild_5.value=ageArray[5];if(ageArray[6])f.ageOfChild_6.value=ageArray[6];if(ageArray[7])f.ageOfChild_7.value=ageArray[7];if(ageArray[8])f.ageOfChild_8.value=ageArray[8];}}}}}
function disableAjaxIfOpera(form){if(window.opera){if(form.locOriginName.onkeypress){form.locOriginName.onkeypress=null;}
if(form.locOriginName.onkeydown){form.locOriginName.onkeydown=null;}
if(form.locOriginName.onkeyup){form.locOriginName.onkeyup=null;}
if(form.locDestinationName.onkeypress){form.locDestinationName.onkeypress=null;}
if(form.locDestinationName.onkeydown){form.locDestinationName.onkeydown=null;}
if(form.locDestinationName.onkeyup){form.locDestinationName.onkeyup=null;}
form.locOriginCodes.value="";form.locDestinationCodes.value="";}}
function getParameter(parameter){if(!window.location.search){return null;}
var list=window.location.search.substring(1).split("&");if(list){for(var i=0;i<list.length;i++){var pair=list[i].split("=");if(parameter==pair[0]){return pair[1];}}}
return null;}
function parseDate(d,format){return Date.parseString(d,format);}
function validateDates(elementId,d1,d2,dateFormat,dateText,equalInvalid,errMsgVal){var date1=d1;var date2=d2;var now=new Date();var today=new Date(now.getFullYear(),now.getMonth(),now.getDate());if(!(date1 instanceof Date)){date1=parseDate(d1,dateFormat);if(date1==null){showResponseMessage(elementId,dateText[0]+" "+errMsgVal[0],0);return false;}}
if(!(date2 instanceof Date)){date2=parseDate(d2,dateFormat);if(date2==null){showResponseMessage(elementId,dateText[1]+" "+errMsgVal[0],0);return false;}}
if(equalInvalid&&(date1.getTime()==date2.getTime())){showResponseMessage(elementId,dateText[0]+" "+errMsgVal[1]+" "+dateText[1].toLowerCase()+".",0);return false;}
if(date1>date2){showResponseMessage(elementId,dateText[1]+" "+errMsgVal[2]+" "+dateText[0].toLowerCase()+".",0);return false;}
if(date1<today){showResponseMessage(elementId,dateText[0]+" "+errMsgVal[3],0);return false;}
return true;}
function showResponseMessage(elementId,message,severity){if(message!=null){var e=document.getElementById(elementId);if(e!=null){e.innerHTML='<div class="responseseverity0"><div class="responsemessage"><table cellspacing="0"><tr><td class="signal"></td><td class="text">'+message+'</td></tr></table></div></div>';}else{alert(message);}}}
function updateDate(dateYM,dateD,date,linkedDateYM,linkedDateD,linkedDate,diff){var dropdownYM=document.getElementById(dateYM);if(dropdownYM==null){return;}
var dropdownD=document.getElementById(dateD);if(dropdownD==null){return;}
var dateField=document.getElementById(date);if(dateField==null){return;}
var day=dropdownD.value;dateField.value=dropdownYM.value+"-"+day;if(arguments.length>=6){var linkedDropdownYM=document.getElementById(linkedDateYM);if(linkedDropdownYM==null){return;}
var linkedDropdownD=document.getElementById(linkedDateD);if(linkedDropdownD==null){return;}
var linkedDateField=document.getElementById(linkedDate);if(linkedDateField==null){return;}
var d1=new Date(dateField.value.substring(0,4),dateField.value.substring(5,7)-1,dateField.value.substring(8,10));var d2=new Date(linkedDateField.value.substring(0,4),linkedDateField.value.substring(5,7)-1,linkedDateField.value.substring(8,10));if(d1>=d2){if(diff==null){diff=0;}
d2.setTime(d1.getTime()+diff*24*3600*1000);var d=d2.getDate();if(d<10){d="0"+d;}
var m=d2.getMonth()+1;if(m<10){m="0"+m;}
var y=d2.getFullYear();linkedDropdownYM.value=y+"-"+m;linkedDropdownD.value=d;linkedDateField.value=y+"-"+m+"-"+d;}}}
function updateDateWithWeekday(dateYM,dateD,date,linkedDateYM,linkedDateD,linkedDate,diff,weekdayField,linkedWeekdayField){var dropdownYM=document.getElementById(dateYM);if(dropdownYM==null){return;}
var dropdownD=document.getElementById(dateD);if(dropdownD==null){return;}
var dateField=document.getElementById(date);if(dateField==null){return;}
var day=dropdownD.value;dateField.value=dropdownYM.value+"-"+day;var d3=new Date(dateField.value.substring(0,4),dateField.value.substring(5,7)-1,dateField.value.substring(8,10));var weekdayValue=document.getElementById(weekdayField);if(weekdayValue){var weekdays;if(weekdayField){weekdays=jQuery(".weekday").map(function(index,weekday){return jQuery(weekday).html();});}
weekdayValue.innerHTML=weekdays[d3.getDay()];}
if(arguments.length>=6){var linkedDropdownYM=document.getElementById(linkedDateYM);if(linkedDropdownYM==null){return;}
var linkedDropdownD=document.getElementById(linkedDateD);if(linkedDropdownD==null){return;}
var linkedDateField=document.getElementById(linkedDate);if(linkedDateField==null){return;}
var d1=new Date(dateField.value.substring(0,4),dateField.value.substring(5,7)-1,dateField.value.substring(8,10));var d2=new Date(linkedDateField.value.substring(0,4),linkedDateField.value.substring(5,7)-1,linkedDateField.value.substring(8,10));if(d1>=d2){if(diff==null){diff=0;}
d2.setTime(d1.getTime()+diff*24*3600*1000);var d=d2.getDate();if(d<10){d="0"+d;}
var m=d2.getMonth()+1;if(m<10){m="0"+m;}
var y=d2.getFullYear();linkedDropdownYM.value=y+"-"+m;linkedDropdownD.value=d;linkedDateField.value=y+"-"+m+"-"+d;weekdayValue=document.getElementById(linkedWeekdayField);if(weekdayValue){weekdayValue.innerHTML=weekdays[d2.getDay()];}}}}
function disableDate(date){var now=new Date();var today=new Date(now.getFullYear(),now.getMonth(),now.getDate());if(date.getTime()<today.getTime()){return true;}
var maxMonth=today.getMonth()+1+11;var maxYear=today.getFullYear()
var rest=maxMonth%12;if(rest!=0){maxYear+=1;maxMonth=rest-1;}else{maxMonth=maxMonth+11-1;}
if(date.getFullYear()<maxYear){return false;}
if((date.getFullYear()==maxYear)&&(date.getMonth()<=maxMonth)){return false;}
return true;}
function updateField(formId,dropdownId,fieldId){var f=document.getElementById(formId);if(f!=null&&f[dropdownId]&&f[fieldId]){var dropdown=f[dropdownId];var field=f[fieldId];field.value=dropdown[dropdown.selectedIndex].text;}}
IAD.travel.hotel_admin=function($){var urls,text;function sethotelpassive(event){var id=$(this).parents("tr:first").attr("id");var passiveUrl=urls.set_passive+'json=true&hotelId='+id;$.getJSON(passiveUrl,function(data){if(data.status=="0"){$('#deleted'+id).remove();$('#'+id).children().show();event.preventDefault();return false;}
else if(data.status=="-1"){alert(text.msg_err_passive);}});}
function sethotelactive(event){var name=$(this).parents("tr:first").find("td.hotelname").html();var id=$(this).parents("tr:first").find("td.hotelid").html();var url=urls.set_active+'json=true&hotelId='+id;$("#updatemessage").fadeOut();$(this).parents("tr:first").find("td.activate").addClass("loading");$.getJSON(url,function(data){$("#"+id).parents().find("td.activate").removeClass("loading");if(data.status=="0"){$('#'+id).children().hide();$('#'+id).append("<td id=\"deleted"+id+"\" colspan=\"7\">"+name+" ("+id+") "+text.msg_active+"<a id=\"regret"+id+"\" href=\"#\">"+" "+text.regret+"</a></td>").find("a#regret"+id).click(sethotelpassive);}
else if(data.status=="-1"){alert(text.msg_err_active);}});event.preventDefault();return false;}
function hotelupdate(event){var name=$(this).parents("tr:first").find("td.hotelname").html();var id=$(this).parents("tr:first").find("td.hotelid").html();var url=urls.update+'json=true&hotelId='+id;$("#updatemessage").fadeOut();$(this).parents("tr:first").find("td.update").addClass("loading");$.getJSON(url,function(data){$("#"+id).parents("tr:first").find("td.update").removeClass("loading");if(data.status=="0"){$('#'+id).children().hide();$('#'+id).append("<td id=\"updated"+id+"\" colspan=\"7\">"+name+" ("+id+") "+text.msg_updated+" <a id=\"finishedupdate"+id+"\" href=\"#\">"+" "+text.ok+"</a></td>").find("a#finishedupdate"+id).click(finishedupdate);}
else if(data.status=="-1"){alert(text.msg_err_update);}});event.preventDefault();return false;}
function finishedupdate(event){var id=$(this).parents("tr:first").attr("id");$('#updated'+id).remove();$('#'+id).children().show();event.preventDefault();return false;}
return{initialize:function(data){urls=data.urls;text=data.text;$('#passive-hotels table').tablesorter({widthFixed:false,widgets:['zebra'],headers:{0:{sorter:"text"},1:{sorter:"text"},2:{sorter:"text"},3:{sorter:"date"},4:{sorter:"text"},5:{sorter:false},6:{sorter:false}},sortList:[[3,1]]});$("a.activate_link").click(sethotelactive);$("a.update_link").click(hotelupdate);}};}(jQuery);(function($){IAD.travel.form_validator=IAD.travel.form_validator||function(rules){var error_class="error-highlight-border",on_success;function invalid_rule(){return!this.is_valid();}
function form_is_valid(){return!rules.has_any(invalid_rule);}
function validation_errors(){return rules.filter(invalid_rule);}
function build_error_messages_html(){return $(validation_errors()).map(function(){return"<li>"+this.error_message+"</li>";}).get().join("\n");}
function build_error_messages_alert(){return $(validation_errors()).map(function(){return this.error_message;}).get().join("\n");}
function display_error_messages(){if($('#errorMsg-placeholder ul').length>0){$('#errorMsg-placeholder').show().addClass('errorMsg').find('ul').html(build_error_messages_html());}else{alert(build_error_messages_alert());}}
function highlight_if_invalid(){if(!this.is_valid()){this.elements_to_highlight().addClass(error_class);}}
function remove_current_highlights(){$("."+error_class).removeClass(error_class);}
function highlight_invalid_fields(){remove_current_highlights();rules.each(highlight_if_invalid);}
function display_validation_errors(){highlight_invalid_fields();display_error_messages();}
function remove_validation_errors(){remove_current_highlights();$('#errorMsg-placeholder').hide();}
function validate_form(event){if(form_is_valid()){remove_validation_errors();if(on_success){on_success();}
return true;}else{display_validation_errors();event.preventDefault();return false;}}
return{initialize:function(form){$(form).submit(validate_form);},on_success_do:function(callback){on_success=callback;}};};IAD.travel.datepickers=IAD.travel.datepickers||function(){var info,on_select_callbacks=[];function today(){return Date.parseString(new Date().format("dd.MM.yyyy"),"dd.MM.yyyy");}
function next_year(){return today().add("y",1);}
function from_date_fields(){return $('input.datepicker_field.from_date');}
function to_date_fields(){return $('input.datepicker_field.to_date');}
function master_from_date_field(){return from_date_fields().filter(":first");}
function master_to_date_field(){return to_date_fields().filter(":first");}
function selected_from_date(){return Date.parseString(master_from_date_field().val(),info.date_format);}
function selected_to_date(){return Date.parseString(master_to_date_field().val(),info.date_format);}
function from_date_is_set(){return master_from_date_field().val()!=="";}
function to_date_is_set(){return master_to_date_field().val()!=="";}
function set_from_date(date){from_date_fields().attr("value",date.format(info.date_format));}
function set_to_date(date){to_date_fields().attr("value",date.format(info.date_format));}
function both_dates_are_set(){return from_date_is_set()&&to_date_is_set();}
function dates_are_in_chronological_order(){return both_dates_are_set()&&selected_to_date().isAfter(selected_from_date());}
function dates_are_in_the_future(){return both_dates_are_set()&&selected_to_date()>=today()&&selected_from_date()>=today();}
function date_range_for_from_date(){return{minDate:today(),maxDate:next_year()};}
function date_range_for_to_date(){return{minDate:selected_from_date()||today(),maxDate:next_year()};}
function enforce_selectable_date_ranges(input){if($(input).is(".from_date")){return date_range_for_from_date();}
if($(input).is(".to_date")){return date_range_for_to_date();}
return{};}
function day_after_from_date(){return selected_from_date()&&selected_from_date().add("d",1);}
function day_before_to_date(){return selected_to_date()&&selected_to_date().add("d",-1);}
function autofill_the_other_date_box(){if(from_date_is_set()&&!to_date_is_set()){set_to_date(day_after_from_date());}
if(to_date_is_set()&&!from_date_is_set()){set_from_date(day_before_to_date());}}
function enforce_date_logic(){if(!dates_are_in_the_future()){set_from_date(today());}
if(!dates_are_in_chronological_order()){set_to_date(day_after_from_date());}}
function update_mirroring_fields(master){var new_value=master.val();if(master.is(".from_date")){from_date_fields().val(new_value);}else if(master.is(".to_date")){to_date_fields().val(new_value);}}
function dayname(date){return info.datepicker_settings.dayNames[date.getDay()];}
function update_day_names(){if(from_date_is_set()){$(".departure-weekday").html(dayname(selected_from_date()));}
if(to_date_is_set()){$(".return-weekday").html(dayname(selected_to_date()));}}
function handle_selected_date(){var changed_field=$(this);update_mirroring_fields(changed_field);autofill_the_other_date_box();if(changed_field.is(".from_date")){enforce_date_logic();}
update_day_names();$(on_select_callbacks).each(function(){this.apply(changed_field);});}
function datepicker_settings(){var settings=info.datepicker_settings;settings.firstDay=1;settings.changeFirstDay=false;settings.changeMonth=false;settings.changeYear=false;settings.closeAtTop=false;settings.showOtherMonths=false;settings.showOn='both';settings.mandatory=true;settings.buttonImageOnly=true;settings.speed=1;settings.autoPopUp='both';settings.onSelect=handle_selected_date;settings.beforeShow=enforce_selectable_date_ranges;settings.numberOfMonths=1;return settings;}
return{initialize:function(_info){info=_info;$(document).ready(function(){$('input[type=text].datepicker_field').datepicker(datepicker_settings());})
update_day_names();},on_select:function(callback){on_select_callbacks.push(callback);}};}();IAD.travel.ajax=IAD.travel.ajax||function(){var xmlhttp;function load_data(url,success_handler,error_handler,pre_actions){if(xmlhttp!==undefined){xmlhttp.abort();}
if(pre_actions!==undefined){pre_actions();}
xmlhttp=$.ajax({type:"GET",cache:false,url:url,data:{},success:success_handler,error:error_handler,timeout:5000,dataType:"html",contentType:"text/html;charset=ISO-8859-1"});}
function hide_update_message(){$('#ajax-update').hide();}
function show_update_message(){$('#ajax-update').show();}
return{load_data:load_data,hide_update_message:hide_update_message,show_update_message:show_update_message}}();IAD.travel.popup=IAD.travel.popup||function(){function hide(){if($("#popup").exists()){$("#popup").removeShadow();$("#popup").hide();}}
function show(){$("#popup").show(1,function(){$("#popup").dropShadow({opacity:0.4,blur:4});});}
function create_if_needed(){if(!$("#popup").exists()){$('<div id="popup" ></div>').appendTo("body").hide();}}
return{hide:hide,show:show,create_if_needed:create_if_needed}}();}(jQuery));
