(function(a){a.fn.enableAvailability=function(b){var c=a.extend(a.fn.enableAvailability.defaults,b);return this.each(function(){var ar=255;var E=false;var ap=a(this);var ay;var o=null;var K=null;var m={checkinOnly:"Checkin only",checkoutOnly:"Checkout only",available:"Available",unavailable:"Unavailable",unknown:"Unkown"};var T={beforeShowDay:function(aJ){return[!g(d(aJ)),x(aJ),aD(aJ)]},numberOfMonths:[c.availabilityCalendarDuration/c.calendarColumns,c.calendarColumns],minDate:"+"+c.minimumBookingLeadTime,maxDate:"+2Y",dateFormat:"m/d/yy"};var s=function(){return a("#PreferredArrive")};var ax=function(){return a("#PreferredDepart")};var V=function(){return c.syncEmailInquiryDates};var z=function(){return a("#arrive")};var e=function(){return a("#depart")};var at=function(){return o};var r=function(aJ){o=aJ;if(o===null){if(V()){calHelper.setArrive("");s().val("")}z().val("")}else{if(V()){calHelper.setArrive(y(o));s().val(y(o))}z().val(y(o))}};var aH=function(){return K};var al=function(aJ){K=aJ;if(K===null){e().val("");if(V()){calHelper.setDepart("");ax().val("")}}else{if(V()){calHelper.setDepart(y(K));ax().val(y(K))}e().val(y(K));i()}};var ai=function(aK,aJ){if(E){a("#infoDialog").dialog("option","title",aK);a("#infoDialog").html("<p>"+aJ+"</p>");a("#infoDialog").dialog("open")}};var F=function(){ai("Unable to Retrieve Availability","Sorry, but we encountered a problem and could not retrieve availability data for this unit. Please try again by reloading the page or contact us if the problem persists.")};var aG=function(){ai("Max Occupancy Exceeded","Sorry, but the max occupcancy for this vacation rental is "+c.sleepsMaximum)};var X=function(aJ,aK){ai("Invalid Booking",ao(aJ,aK)+"Please select consecutive available days.")};var A=function(aJ){ai("Requires Longer Stay","There is "+aJ+" night minimum length of stay requirement for the date you selected.")};var aq=function(aJ,aK){ai("Invalid Checkin",ao(aJ,aK))};var aw=function(aJ,aK){ai("Invalid Checkout",ao(aJ,aK))};var ak=function(aJ,aK){ai("Invalid Checkin","Sorry, but the first possible checkout date "+ao(aJ,aK))};var h=function(){return Number(a("#adults").val())+Number(a("#children").val())>c.sleepsMaximum};var i=function(){if(h()){aG();return}if(c.enableQuotes&&aA()){P()}};var n=function(){a("#gettingRate").fadeOut(1500,function(){a("#rateQuoteWrapper, #continueBookingButton, #continueBookingInline").css("visibility","visible");if(a("#gettingRate").css("display")==="block"){a("#gettingRate").css("display","none")}})};var P=function(){a("#availabilityForm").ajaxSubmit({dataType:"json",url:"/Unit.mvc/Rate/"+a("#UnitID").val(),beforeSubmit:function(){a("#rateQuoteWrapper, #continueBookingButton, #continueBookingInline").css("visibility","hidden");a("#gettingRate").fadeIn(250)},success:function(aJ){n();if(aJ.UnitQuote.PricingPlanFailedMessage===""){an(aJ);a("#arrive, #depart").removeClass("error")}else{v();ai("Oops, we couldn't get a rate.",aJ.UnitQuote.PricingPlanFailedMessage)}},error:function(aJ,aL,aK){n();ai("Unable to Get Rate","Sorry but there was a problem and we could not get a rate. Please try again.")}})};var an=function(aK){var aL=aK.UnitQuote;var aO=aL.Charges+aL.Tax;var aJ=aL.RentChargesTotal+aO;var aN=aL.RentChargesTotal;var aM=aL.ComparativeRentChargesTotalSavings;if(aM>0){a("#couponCodeDiscount").text("-$"+aM.toFixed(2));a("#couponCodeDescription").text(aK.CouponCodeDescription!==""?"("+aK.CouponCodeDescription+")":"");a("#discountedRent").text("$"+(aL.RentChargesTotal).toFixed(2));aN+=aM;a(".line-item-adjustment").show()}else{a(".line-item-adjustment").hide()}a("#baseRent").text("$"+aN.toFixed(2));a("#taxesAndFees").text("$"+aO.toFixed(2));a("#totalPrice").text("$"+aJ.toFixed(2))};var Q=function(){a("#couponCode").val("");i();return false};var aA=function(){return at()!==null&&aH()!==null};var av=function(){return at()===null&&aH()===null};var u=function(){return at()!==null&&aH()===null};var aE=function(){return at()!==null};var az=function(aJ){al(at());r(aJ)};var aC=function(){var aJ={startDate:a.datepicker.formatDate("mm/dd/yy",f()),endDate:a.datepicker.formatDate("mm/dd/yy",am(f(),2))};a.getJSON("/Unit.mvc/Availability/"+a("#UnitID").val(),aJ,C)};var C=function(aJ){if(aJ.IsValid!==undefined&&!aJ.IsValid){F()}else{ay=aJ;if(c.enableQuotes){p();a("#adults, #children, #pets").change(i)}ap.datepicker(T);w();E=true}};var w=function(){if(c.enableQuotes&&aA()){ap.datepicker("setDate",z().val())}};var ab=function(){a("#baseRent, #taxesAndFees, #totalPrice").text("");if(a("#couponCodeDiscount").length>0){a("#couponCodeDiscount, #discountedRent").text("")}};var v=function(){r(null);al(null);ap.find("."+S()).removeClass(S());ap.find("."+aF()).removeClass(aF());ap.find("."+ad()).removeClass(ad());ab();ap.find(".error").hide();return false};var ag=function(){a("#arrive, #depart").val("");if(V()){ax().datepicker("setDate",null);s().datepicker("setDate",null)}};var af=function(aJ){if(g(d(aJ))){return}else{if(J(aJ)){v()}else{if(q(aJ)){r(aJ)}else{if(Y(aJ)){al(aJ)}else{if(L(aJ)){v();af(aJ)}}}}}};var L=function(aJ){return aA()&&W(aJ)};var J=function(aJ){return u()&&B(aJ,at())};var Y=function(aJ){return u()&&aJ>at()&&l(at(),aJ)};var q=function(aJ){return(av()||(u()&&aJ<at()))&&W(aJ)};var W=function(aJ){if(!M(aJ)){return false}return aI(aJ,null)&&au(aJ,null)};var D=function(aK,aJ){return aI(aK,aJ)&&au(aK,aJ)};var l=function(aK,aJ){if(aJ===null){return W(aK)}return M(aK)&&D(aK,aJ)};var au=function(aM,aL){var aJ=Z(aM);var aN=null;var aO=d(aM);if(aO.M==ar){return true}if(aL===null){aN=Z(aM)+aO.M}else{aN=Z(aL)}for(var aK=aJ+1;aK<aN;aK++){if(!ae(ay[aK])){A(aO.M);return false}}return true};var M=function(aJ){return ah(aJ,aq)&&j(aJ)};var j=function(aK){var aJ=N(aK);var aL=d(aK);aB(aJ,aL.M);if(aL.M!=ar&&H(d(aJ))){A(aL.M);return false}return true};var aI=function(aL,aK){var aJ=Z(aL);var aN;var aM=d(aL);if(!aK){aN=aJ+aM.M}else{aN=Z(aK)}if(aM.M!=ar&&aM.M>aN-aJ){A(aM.M);return false}return true};var ah=function(aK,aJ){var aL=d(aK);if(I(d(aK))){aJ(aK,aL);return false}return true};var G=function(aJ,aL){var aK=d(aJ);if(H(d(aJ))){aL(aJ,aK);return false}return true};var p=function(){if(z().val()!==""&&e().val()!==""){var aJ=O(z().val());var aK=O(e().val());if(l(aJ,aK)){af(aJ);af(aK)}else{r(null);al(null)}}};var ad=function(){return"stay"};var S=function(){return"arrive-day"};var aF=function(){return"depart-day"};var ac=function(aJ){return aJ.S==="I"};var R=function(aJ){return aJ.S==="O"};var g=function(aJ){return aJ.S==="U"};var ae=function(aJ){return aJ.S==="A"};var H=function(aJ){return g(aJ)||ac(aJ)};var I=function(aJ){return g(aJ)||R(aJ)};var x=function(aK){if(aK<t(new Date())){return""}var aJ=d(aK).S;if(y(aK)===y(at())){return aJ+" "+S()}else{if(y(aK)===y(aH())){return aJ+" "+aF()}else{if(at()!==null&&aH()!==null&&aK>at()&&aK<aH()){return aJ+" "+ad()}}}return aJ};var U=function(aJ){if(g(aJ)){return m.unavailable}if(ae(aJ)){return m.available}if(ac(aJ)){return m.checkinOnly}if(R(aJ)){return m.checkoutOnly}return m.unkown};var ao=function(aJ,aK){return y(aJ)+" is "+U(aK).toLowerCase()+". "};var aD=function(aJ){var aK=d(aJ);if(a.isEmptyObject(aK)){return""}return U(aK)};var d=function(aK){var aJ=Z(aK);if(aJ>=0&&aJ<ay.length){return ay[aJ]}return{S:"U",M:0}};var Z=function(aJ){if(typeof(aJ)==="string"){return aj(f(),O(aJ))}return aj(f(),aJ)};var k=function(aJ){return aB(new Date(),aJ)};var t=function(aJ){aJ.setMinutes(0);aJ.setSeconds(0);aJ.setHours(0);aJ.setMilliseconds(0);return aJ};var N=function(aJ){return new Date(aJ.getFullYear(),aJ.getMonth(),aJ.getDate(),aJ.getMinutes(),aJ.getSeconds(),aJ.getMilliseconds())};var am=function(aJ,aK){aJ.setFullYear(aJ.getFullYear()+aK);return aJ};var aB=function(aJ,aK){aJ.setDate(aJ.getDate()+aK);return aJ};var aj=function(aL,aK){var aJ=1000*60*60*24;return Math.round(Math.abs(aK.getTime()-aL.getTime())/aJ)};var B=function(aK,aJ){return y(aK)===y(aJ)};var O=function(aK){try{return a.datepicker.parseDate(T.dateFormat,aK)}catch(aJ){ai("Unrecognized Date Format","Sorry, we didn't recognize that date:"+aK+". Please try again.")}return null};var y=function(aJ){return a.datepicker.formatDate(T.dateFormat,aJ)};var f=function(){return t(new Date())};var aa=function(){aC();if(c.enableQuotes){a(".clear-calendar").click(v);T.onSelect=function(aK,aJ){af(O(aK))}}if(a("#couponCode").length>0){a("#couponCodeDialog").dialog({autoOpen:false,modal:true,buttons:{Close:function(){a(this).dialog("close")}}});a("#openCouponCodeDialog").click(function(aJ){a("#couponCodeDialog").dialog("open")});a("#removeCouponCode").click(function(aJ){Q()});a("#applyCouponCode").click(function(aJ){if(aA()){i()}else{ai("Dates Required","Please select travel dates before applying your promo code.")}})}a("#arrive, #depart").change(function(aK){if(a(this).val()!==""){var aJ=O(a(this).val());af(aJ)}})};aa()})};a.fn.enableAvailability.defaults={minimumBookingLeadTime:0,sleepsMaximum:100,availabilityCalendarDuration:4,enableQuotes:false,calendarColumns:2,synchronizeEmailInquiryDates:false}})(jQuery);
