var BookingInterface=function(){this.bookingComplete=false;this.selectedRate=null;this.transactionId=null;this.rules=null;this.restart=function(){this.commonLayerSwitch();this.selectedRate=null;$("#summaryButtonContainer").show();$(".bookingInterfaceStageTab").removeClass("bookingInterfaceStageTabCompleted");
};this.commonLayerSwitch=function(){this.updateSummary();$(".bookingLayer").hide();$(".bookingInterfaceStageTab").removeClass("bookingInterfaceStageTabSelected");};this.submitReservationInformation=function(a,c){var b=[];if(b.length==0){this.restart();this.selectedRate=a;this.transactionId=c;$(".rateInformationContainer>p").text("");
$(".rateInformationContainer>.header").hide();this.activateRateInformationLayer();$("#reservationDetailsStageTab").addClass("bookingInterfaceStageTabCompleted");return;}hotpads.booking.handleErrors(b);};this.submitRateInformation=function(a){this.activatePersonalInformationLayer();$("#rateInformationStageTab").addClass("bookingInterfaceStageTabCompleted");
};this.submitPersonalInformation=function(){this.activateConfirmationLayer();$("#personalInformationStageTab").addClass("bookingInterfaceStageTabCompleted");return;};this.completeTransaction=function(a){this.activateReceiptLayer(a);$(".bookingInterfaceStageTab").removeClass("bookingInterfaceStageTabCompleted");
$("#receiptStageTab").addClass("bookingInterfaceStageTabCompleted");};this.showRules=function(b){hotpads.booking.bookingInterface.rules=b;$(".rateInformationContainer .unknownTaxesAndFeesMessage").hide();$(".rateInformationContainer .detailedFees").children().remove();$(".rateInformationContainer .unitRateAmounts").children().remove();
$(".rateInformationContainer>.header").show();$(".rateInformationContainer .cancellationPolicy").html(b.cancellationPolicy);$(".rateInformationContainer .rateRules").html(b.rules);if(b.rates.length!=0){for(var a=0;a<b.rates.length;a++){$(".rateInformationContainer .unitRateAmounts").append($("<div/>").text(b.rates[a].name+": "+b.rates[a].amount));
}}if(b.fees.length!=0){for(var a=0;a<b.fees.length;a++){$(".rateInformationContainer .detailedFees").append($("<div/>").text(b.fees[a].name+": "+b.fees[a].amount));}}else{$(".rateInformationContainer .detailedFees").append($("<div/>").text("The property has not reported any fees that apply at the time of booking. Other fees may be incurred during your stay."));
}$(".rateInformationContainer .subtotalAmount").html(b.subtotalPrintable);$(".rateInformationContainer .taxesAmount").html(b.taxesPrintable);if(b.hasUnknownTaxesAndFees){$(".rateInformationContainer .taxesAmount").html("");$(".unknownTaxesAndFeesMessage").show();}$(".totalRateAmount").html(b.totalPrintable);
$("#rateRulesLoader").hide();$(".rateRulesButtons").show();};this.placeOrder=function(){$("#bookingLoader").show();apiImplementation.doBooking(this.transactionId);return true;};this.handleValidationErrors=function(b){if(typeof(b)=="undefined"){return true;}for(var a in b){if(a=="______array"){continue;
}$("#"+b[a].target+"ErrorMessage").text(b[a].text).show();}};this.ratesPreviewContainerTransfer=function(a){if($("#ratesPreviewContainer").children(".rateContainer").length==1){$("#ratesPreviewContainer").children(".rateContainer").click();}$(a).effect("transfer",{to:"#ratesPreviewContainer"},1000);};
this.updateSummary=function(){$("#summaryCheckInDate").text(hotpads.booking.reservationDetails.checkInDate);$("#summaryCheckOutDate").text(hotpads.booking.reservationDetails.checkOutDate);$("#summaryNumAdults").text(hotpads.booking.reservationDetails.numAdults);$("#summaryNumChildren").text(hotpads.booking.reservationDetails.numChildren);
$("#summaryNumRooms").text(hotpads.booking.reservationDetails.numRooms);if(this.selectedRate!=null){$("#bookingInterfaceSummary").show();}if(this.bookingComplete){$("#summaryButtonContainer").hide();}};this.activateReservationDetailsLayer=function(){this.commonLayerSwitch();$("#reservationDetailsLayer").show();
$("#reservationDetailsStageTab").addClass("bookingInterfaceStageTabSelected");};this.activateRateInformationLayer=function(){this.commonLayerSwitch();apiImplementation.getRateRules(hotpads.booking.getReservationDetailsObject(listingId),this.selectedRate,this.transactionId);$("#rateInformationLayer").show();
$(".rateRulesButtons").hide();$("#rateInformationStageTab").addClass("bookingInterfaceStageTabSelected");};this.activatePersonalInformationLayer=function(){this.commonLayerSwitch();$("#personalInformationLayer").show();$("#personalInformationStageTab").addClass("bookingInterfaceStageTabSelected");};this.activateConfirmationLayer=function(){apiImplementation.populateConfirmationDetails();
this.commonLayerSwitch();$("#confirmationLayer").show();$("#confirmationStageTab").addClass("bookingInterfaceStageTabSelected");};this.activateReceiptLayer=function(a){apiImplementation.populateReceiptDetails(a);this.bookingComplete=true;this.commonLayerSwitch();$("#receiptLayer").show();};this.buildNewRateContainer=function(c,a,b){return $("<div/>").addClass("rateContainer").click(function(){hotpads.booking.bookingInterface.openBookingWindow(a.code,b);
}).append($("<table/>").append($("<tr/>").append($("<td/>").append($("<div/>").addClass("rateCostContainer").html(a.unitCost)).append($("<a/>").addClass("orangeOnWhite2").attr("href","javascript:void(0);").append($("<span/>").attr("style","font-size: 14px;").text("Book")))).append($("<td/>").append($("<div/>").addClass("rateDescriptionContainer").html(a.description)))));
};this.switchTab=function(a){if(this.bookingComplete){return false;}if($(a).hasClass("bookingInterfaceStageTabCompleted")){return true;}return false;};this.openBookingWindow=function(a,c){var b=window.open("/booking/secure/secureBookingFrame.htm?listingId="+listingId+"&rateCode="+a+"&tid="+c,"bookingWindow","scrollbars=yes,height=700,width=565");
b.focus();};this.encounterServerSideError=function(){$("#serverSideError").show();};this.showRates=function(a){$.each(a.rates,function(c,d){rateContainers=apiImplementation.rateContainers;var b=0;for(;b<rateContainers.length;b++){$("#"+rateContainers[b]).append(hotpads.booking.bookingInterface.buildNewRateContainer(c,d,a.transactionId));
}if(b!=0){$("#clickInstructions").show();}});hotpads.listing.resizeParentIframe();};this.clearAndShowRateContainers=function(){$(".bookingErrorMessage").text("").hide();if(typeof(apiImplementation)!="undefined"){for(var a=0;a<apiImplementation.rateContainers.length;a++){$("#"+apiImplementation.rateContainers[a]).html("").show();
}}$("#clickInstructions").hide();};this.hideRateLoaders=function(){if(typeof(apiImplementation)=="undefined"){return;}for(var a=0;a<apiImplementation.rateLoaders.length;a++){$("#"+apiImplementation.rateLoaders[a]).hide();}};this.showRateLoaders=function(){if(typeof(apiImplementation)=="undefined"){return;
}for(var a=0;a<apiImplementation.rateLoaders.length;a++){$("#"+apiImplementation.rateLoaders[a]).show();}};};hotpads.booking.bookingInterface=new BookingInterface();if(typeof(window.parent)!="undefined"){window.parent.hotpads.booking.bookingInterface=new BookingInterface();}