!function(e){"use strict";e(function(){e.support.transition=function(){var e=function(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},n;for(n in t)if(e.style[n]!==undefined)return t[n]}();return e&&{end:e}}()})}(window.jQuery),!function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.prototype.close=function(t){function s(){i.trigger("closed").remove()}var n=e(this),r=n.attr("data-target"),i;r||(r=n.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,"")),i=e(r),t&&t.preventDefault(),i.length||(i=n.hasClass("alert")?n:n.parent()),i.trigger(t=e.Event("close"));if(t.isDefaultPrevented())return;i.removeClass("in"),e.support.transition&&i.hasClass("fade")?i.on(e.support.transition.end,s):s()};var r=e.fn.alert;e.fn.alert=function(t){return this.each(function(){var r=e(this),i=r.data("alert");i||r.data("alert",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.alert.Constructor=n,e.fn.alert.noConflict=function(){return e.fn.alert=r,this},e(document).on("click.alert.data-api",t,n.prototype.close)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.button.defaults,n)};t.prototype.setState=function(e){var t="disabled",n=this.$element,r=n.data(),i=n.is("input")?"val":"html";e+="Text",r.resetText||n.data("resetText",n[i]()),n[i](r[e]||this.options[e]),setTimeout(function(){e=="loadingText"?n.addClass(t).attr(t,t):n.removeClass(t).removeAttr(t)},0)},t.prototype.toggle=function(){var e=this.$element.closest('[data-toggle="buttons-radio"]');e&&e.find(".active").removeClass("active"),this.$element.toggleClass("active")};var n=e.fn.button;e.fn.button=function(n){return this.each(function(){var r=e(this),i=r.data("button"),s=typeof n=="object"&&n;i||r.data("button",i=new t(this,s)),n=="toggle"?i.toggle():n&&i.setState(n)})},e.fn.button.defaults={loadingText:"loading..."},e.fn.button.Constructor=t,e.fn.button.noConflict=function(){return e.fn.button=n,this},e(document).on("click.button.data-api","[data-toggle^=button]",function(t){var n=e(t.target);n.hasClass("btn")||(n=n.closest(".btn")),n.button("toggle")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.options.pause=="hover"&&this.$element.on("mouseenter",e.proxy(this.pause,this)).on("mouseleave",e.proxy(this.cycle,this))};t.prototype={cycle:function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},getActiveIndex:function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},to:function(t){var n=this.getActiveIndex(),r=this;if(t>this.$items.length-1||t<0)return;return this.sliding?this.$element.one("slid",function(){r.to(t)}):n==t?this.pause().cycle():this.slide(t>n?"next":"prev",e(this.$items[t]))},pause:function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(t,n){var r=this.$element.find(".item.active"),i=n||r[t](),s=this.interval,o=t=="next"?"left":"right",u=t=="next"?"first":"last",a=this,f;this.sliding=!0,s&&this.pause(),i=i.length?i:this.$element.find(".item")[u](),f=e.Event("slide",{relatedTarget:i[0],direction:o});if(i.hasClass("active"))return;this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var t=e(a.$indicators.children()[a.getActiveIndex()]);t&&t.addClass("active")}));if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(f);if(f.isDefaultPrevented())return;i.addClass(t),i[0].offsetWidth,r.addClass(o),i.addClass(o),this.$element.one(e.support.transition.end,function(){i.removeClass([t,o].join(" ")).addClass("active"),r.removeClass(["active",o].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger("slid")},0)})}else{this.$element.trigger(f);if(f.isDefaultPrevented())return;r.removeClass("active"),i.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return s&&this.cycle(),this}};var n=e.fn.carousel;e.fn.carousel=function(n){return this.each(function(){var r=e(this),i=r.data("carousel"),s=e.extend({},e.fn.carousel.defaults,typeof n=="object"&&n),o=typeof n=="string"?n:s.slide;i||r.data("carousel",i=new t(this,s)),typeof n=="number"?i.to(n):o?i[o]():s.interval&&i.pause().cycle()})},e.fn.carousel.defaults={interval:5e3,pause:"hover"},e.fn.carousel.Constructor=t,e.fn.carousel.noConflict=function(){return e.fn.carousel=n,this},e(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(t){var n=e(this),r,i=e(n.attr("data-target")||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"")),s=e.extend({},i.data(),n.data()),o;i.carousel(s),(o=n.attr("data-slide-to"))&&i.data("carousel").pause().to(o).cycle(),t.preventDefault()})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.collapse.defaults,n),this.options.parent&&(this.$parent=e(this.options.parent)),this.options.toggle&&this.toggle()};t.prototype={constructor:t,dimension:function(){var e=this.$element.hasClass("width");return e?"width":"height"},show:function(){var t,n,r,i;if(this.transitioning||this.$element.hasClass("in"))return;t=this.dimension(),n=e.camelCase(["scroll",t].join("-")),r=this.$parent&&this.$parent.find("> .accordion-group > .in");if(r&&r.length){i=r.data("collapse");if(i&&i.transitioning)return;r.collapse("hide"),i||r.data("collapse",null)}this.$element[t](0),this.transition("addClass",e.Event("show"),"shown"),e.support.transition&&this.$element[t](this.$element[0][n])},hide:function(){var t;if(this.transitioning||!this.$element.hasClass("in"))return;t=this.dimension(),this.reset(this.$element[t]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[t](0)},reset:function(e){var t=this.dimension();return this.$element.removeClass("collapse")[t](e||"auto")[0].offsetWidth,this.$element[e!==null?"addClass":"removeClass"]("collapse"),this},transition:function(t,n,r){var i=this,s=function(){n.type=="show"&&i.reset(),i.transitioning=0,i.$element.trigger(r)};this.$element.trigger(n);if(n.isDefaultPrevented())return;this.transitioning=1,this.$element[t]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,s):s()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var n=e.fn.collapse;e.fn.collapse=function(n){return this.each(function(){var r=e(this),i=r.data("collapse"),s=e.extend({},e.fn.collapse.defaults,r.data(),typeof n=="object"&&n);i||r.data("collapse",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.collapse.defaults={toggle:!0},e.fn.collapse.Constructor=t,e.fn.collapse.noConflict=function(){return e.fn.collapse=n,this},e(document).on("click.collapse.data-api","[data-toggle=collapse]",function(t){var n=e(this),r,i=n.attr("data-target")||t.preventDefault()||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),s=e(i).data("collapse")?"toggle":n.data();n[e(i).hasClass("in")?"addClass":"removeClass"]("collapsed"),e(i).collapse(s)})}(window.jQuery),!function(e){"use strict";function r(){e(".dropdown-backdrop").remove(),e(t).each(function(){i(e(this)).removeClass("open")})}function i(t){var n=t.attr("data-target"),r;n||(n=t.attr("href"),n=n&&/#/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,"")),r=n&&e(n);if(!r||!r.length)r=t.parent();return r}var t="[data-toggle=dropdown]",n=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};n.prototype={constructor:n,toggle:function(t){var n=e(this),s,o;if(n.is(".disabled, :disabled"))return;return s=i(n),o=s.hasClass("open"),r(),o||("ontouchstart"in document.documentElement&&e('';jQuery("body").addClass("training");jQuery("body").append(training_div);jQuery(".trainingClose").on("click",function(){jQuery(".trainingWarning").hide()})}createCookie("ACTIVITYREZ3",WebBooker.bootstrap.nonce);WebBooker.Agent.last_key=WebBooker.bootstrap.nonce;jQuery("#wb_bootstrapper").remove();var boot=WebBooker.bootstrap;boot.crossDomain=true;boot.privacy=ko.observable(boot.privacy);WebBooker.searchUrl=boot.wb_url+"/#/Search";WebBooker.hasReseller(boot.user_id&&boot.user_id>0);WebBooker.About.content(boot.aboutus);WebBooker.Contact.content(boot.contact);if(boot.user_name){WebBooker.Agent.name(boot.user_name)}else if(boot.user_display_name){WebBooker.Agent.name(boot.user_display_name)}WebBooker.Agent.user_id(boot.user_id);__.load(boot.webBookerID,boot.i18n);var vouch=(boot.vouchers||[]).slice(0);boot.payment_types=[];for(ni=0;nib.name()){return 1}if(a.name()window.outerHeight&&pos.top-menu.outerHeight()>jQuery(window).scrollTop()){menu.css({top:0-menu[0].offsetHeight+25,left:0})}else{menu.css({top:pos.height,left:0})}});this.shown=true;return this};ko.bindingHandlers.collapseSidebarBox={init:function(element,valueAccessor){setTimeout(function(){if(!jQuery(element).siblings(".collapse-me").is(":hidden")){jQuery(element).children("i").removeClass("icon-chevron-down");jQuery(element).children("i").addClass("icon-chevron-up")}},2e3);jQuery(element).click(function(e){e.preventDefault();jQuery(this).siblings(".collapse-me").slideToggle();jQuery(this).children("i").toggleClass("icon-chevron-down icon-chevron-up");var title=jQuery(this).attr("title");title=title==__("Show")()?__("Hide")():__("Show")();jQuery(this).attr("title",title);return false})}};ko.bindingHandlers.hotelTypeahead={init:function(element,valueAccessor){var option=valueAccessor()["value"],saved_query="",elem=jQuery(element),no_results;if(WebBooker.bootstrap.agencyID==1260)return false;jQuery(element).typeahead({source:function(query,process){if(query.length<3||query==saved_query){if(!query.length){option(null)}return[]}saved_query=query;option(null);var searchArgs={object:"hotel",property:"post_title",query:query};if(WebBooker.Cart.items().length>0){searchArgs.activities=[];acts=WebBooker.Cart.items();for(var ne=0;ne'+'
  • No Results Found
  • '+"")}})},property:"name",items:8,updater:function(item){console.log("Checking hotels updater:",item);option(null);for(var r=0;r ')}else{var content=jQuery(element).html();content.replace(' ',"");jQuery(element).html(content)}}};ko.bindingHandlers.scrollTopOnClick={init:function(element,valueAccessor){jQuery(element).click(function(e){jQuery("html, body").animate({scrollTop:0},500);WebBooker.postMessage("scroll_to=0")})}};ko.bindingHandlers.scrollTo={init:function(element,scrollTo){jQuery(element).click(function(e){var offset=jQuery(scrollTo()).offset();jQuery("html, body").animate({scrollTop:offset.top},1e3);WebBooker.postMessage("scroll_to="+offset.top)})}};ko.bindingHandlers.fadeOpacity={init:function(element,valueAccessor){jQuery(element).css({opacity:.2})},update:function(element,valueAccessor){var shouldDisplay=ko.utils.unwrapObservable(valueAccessor());shouldDisplay?jQuery(element).fadeTo("slow",1):jQuery(element).fadeTo("slow",.2)}};ko.bindingHandlers.fadeVisible={init:function(element,valueAccessor){var shouldDisplay=ko.utils.unwrapObservable(valueAccessor());jQuery(element).toggle(shouldDisplay)},update:function(element,valueAccessor){var shouldDisplay=ko.utils.unwrapObservable(valueAccessor());shouldDisplay?jQuery(element).fadeIn():jQuery(element).fadeOut()}};function getDistance(lat1,lon1,lat2,lon2,unit){var radlat1=Math.PI*lat1/180,radlat2=Math.PI*lat2/180,radlon1=Math.PI*lon1/180,radlon2=Math.PI*lon2/180,theta=lon1-lon2,radtheta=Math.PI*theta/180,dist=Math.sin(radlat1)*Math.sin(radlat2)+Math.cos(radlat1)*Math.cos(radlat2)*Math.cos(radtheta);dist=Math.acos(dist);dist=dist*180/Math.PI;dist=dist*60*1.1515;if(unit=="K"){dist=dist*1.609344}if(unit=="N"){dist=dist*.8684}return+(Math.round(dist+"e+2")+"e-2")}function toRad(value){return value*Math.PI/180}function sortNearestDistance(a,b){return a.distance-b.distance}function formatTime(date){var d=new Date(date),hh=d.getHours(),m=d.getMinutes(),s=d.getSeconds(),dd=" am",h=hh;if(h>=12){h=hh-12;dd=" pm"}if(h==0){h=12}m=m<10?"0"+m:m;s=s<10?"0"+s:s;return h+":"+m+dd}function createTimestamp(now){var year=""+now.getFullYear();var month=""+(now.getMonth()+1);if(month.length==1){month="0"+month}var day=""+now.getDate();if(day.length==1){day="0"+day}var hour=""+now.getHours();if(hour.length==1){hour="0"+hour}var minute=""+now.getMinutes();if(minute.length==1){minute="0"+minute}var second=""+now.getSeconds();if(second.length==1){second="0"+second}return year+"/"+month+"/"+day+" "+hour+":"+minute+":"+second}function cleanTimestamp(stamp){return stamp.replace(/-/g,"/")}function getDateString(date){var month=""+(date.getMonth()+1);var day=""+date.getDate();if(month.length==1){month="0"+month}if(day.length==1){day="0"+day}return month+"/"+day+"/"+date.getFullYear()}function createCookie(name,value,days){var expires="",date=new Date;if(days){date.setTime(date.getTime()+days*24*60*60*1e3);expires="; expires="+date.toGMTString()}else{expires=""}document.cookie=name+"="+value+expires+"; path=/;domain="+window.location.host+"; secure"}function readCookie(name){var nameEQ=name+"=",ca=document.cookie.split(";");for(var i=0;i1){_params=Array.prototype.slice.call(arguments,1)}}})}(arguments)};ret.load=function(post_id,i18n){WebBooker.API.getPOFile({post_id:post_id,i18n:i18n},function(data){if(data.status!=1)return false;langFile(data.po);return true})};return ret}();var fn_format_money=function(){var val,elem,format;if(arguments.length<2){throw new Error("fn_format_money called with too few parameters")}if(arguments.length<3){val=arguments[0];format=arguments[1];elem={}}else{elem=arguments[0];val=arguments[1];format=arguments[2]}if(typeof val=="function")val=ko.utils.unwrapObservable(val());if(!val||isNaN(val))val=0;var pad=function(num,dec,toLeft){var str=""+num;while(str.lengthd[b.name]});if(out.length==7){return __("Every day")()}else{return out.join(", ")}});return that};$ar.Taxonomy=function(data){var that=$ar.Model({name:"",__name:"",slug:"",term_id:0},data);that.selected=ko.observable(false);that.__name=__(that.name);that.name=ko.observable(that.name);return that};$ar.Geocoder=function(){var that={geocoder:function(){return new google.maps.Geocoder},geocode:function(object,callback){that.geocoder().geocode(object,function(results,status){if(status==google.maps.GeocoderStatus.OK){callback(results)}else{WebBooker.errorMsg("ERROR: Can not geocode address.")}})}};return that}();jQuery(document).ready(function(){setTimeout(function(){jQuery('.collapse-me input[type="text"]').each(function(){if(jQuery(this).val())jQuery(this).closest(".collapse-me").show()});jQuery(".collapse-me select").each(function(){if(jQuery(this).val())jQuery(this).closest(".collapse-me").show()});jQuery(".collapse-me input:checked").each(function(){jQuery(this).closest(".collapse-me").show()})},2e3);jQuery("#search-keywords").keypress(function(event){if(event.keyCode==13){jQuery("#searchActivitiesButton").click()}})});WebBooker.API={raw:function(url,data,callback){var args={type:"POST",async:true,data:data};if(WebBooker.bootstrap.crossDomain){args.url=url;args.dataType="jsonp";args.crossDomain=true}else{args.url=url;args.dataType="json";args.crossDomain=false}jQuery.ajax(args).always(function(result){if(typeof callback=="function"){callback(result)}})},request:function(service,action,params,callback){WebBooker.API.raw(WebBooker.bootstrap.api_url,{service:service,action:action,nonce:WebBooker.bootstrap.nonce,data:params},callback)},queryCatalog:function(callback){var destination=WebBooker.Catalog.search_params.destination();if(WebBooker.bootstrap["search_destination"]&&WebBooker.bootstrap["search_destination"].length>0){destination={name:ko.observable(WebBooker.bootstrap["search_destination"])}}var keywords=WebBooker.Catalog.search_params.keywords(),tag=WebBooker.Catalog.search_params.tag_private()?WebBooker.Catalog.search_params.tag_private():WebBooker.Catalog.search_params.tag(),category=WebBooker.Catalog.search_params.category(),startDate=WebBooker.Catalog.search_params.date_start(),endDate=WebBooker.Catalog.search_params.date_end(),minPrice=WebBooker.Catalog.search_params.price_min(),maxPrice=WebBooker.Catalog.search_params.price_max(),moods=[];for(var i=0;i0){self.totalResults(self.searchResults().length)}else if(results.status==0&&results.total==0){self.searchResults([])}return}self.processResults(results);self.isSearching(false);self.backupParams()})}};self.processResults=function(results){self.totalResults(results.total);var data=results.data,ni;for(ni=0;ni1&&prev!=curr){ret=true;break}}return ret};self.backupParams=function(){var params=self.getParams();jQuery.each(params,function(key,value){self.backup_search_params[key]=typeof value=="undefined"?"":value})};self.getParams=function(){var params={destination:WebBooker.Catalog.search_params.destination(),category:WebBooker.Catalog.search_params.category(),keywords:WebBooker.Catalog.search_params.keywords(),tag:WebBooker.Catalog.search_params.tag_private()?WebBooker.Catalog.search_params.tag_private():WebBooker.Catalog.search_params.tag(),moods:WebBooker.Catalog.search_params.moods(),dstart:WebBooker.Catalog.search_params.date_start(),dend:WebBooker.Catalog.search_params.date_end()};return params};self.loadWithFilters=function(){if(window.location.href!=WebBooker.bootstrap.wb_url+"/#/Search"){window.location.href=WebBooker.bootstrap.wb_url+"/#/Search";return}if(window.location.hash!="#/Search"){window.location.hash="#/Search"}self.searchResults([]);if(self.pageIndex()!=1){self.pageIndex(1)}else{self.load()}};self.clearFilters=function(){self.search_params.keywords("");self.search_params.date_start("");self.search_params.date_end("");self.search_params.destination(null);self.search_params.sub_destination(null);self.search_params.category(null);self.search_params.tag(null);self.search_params.moods([]);self.search_params.price_min(0);self.search_params.price_max(1e4);jQuery("#price-range-slider").val([0,1e4])};self.init=function(){var cookie_grab=function(fdata,pdata,m,m_on){m_on=m_on||"id";m=WebBooker.Settings.get(m);if(!m)return;var no=self.search_filter_data[fdata](),ni;for(ni=0;ni]*>([\S\s]*?)<\/script>/gim,"");str=str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gim,"");element.innerHTML=str;str=element.innerHTML;element.innerHTML=""}return str}return decodeHTMLEntities}(),has_bootstrapped=false,min_price=WebBooker.Settings.get("SearchParams_MinPrice"),max_price=WebBooker.Settings.get("SearchParams_MaxPrice");self.search_params.date_start(WebBooker.Settings.get("SearchParams_StartDate")||null);self.search_params.date_end(WebBooker.Settings.get("SearchParams_EndDate")||null);self.search_params.keywords(WebBooker.Settings.get("SearchParams_Keywords")||null);self.search_params.price_min(min_price||0);self.search_params.price_max(max_price||1e4);jQuery("#price-range-slider").val([min_price||0,max_price||1e4]);for(var i=0;i48){self.items([]);self.cart.reset()}else if(items){var _items=[],ni;for(ni=0;nib){return 1}if(adefault_deadline?activity_deadline:default_deadline)*unit)}else{_date=new Date(_date.getTime()-default_deadline*unit)}return _date};self.guests=ko.computed(function(){if(!self.cartItem()||!Object.keys(self.cartItem().guests()).length){return[]}return self.cartItem().guests()});self.ticketsLeft=ko.computed(function(){if(!self.showTicketsLeft){return false}var inv=self.inventory(),cfa=self.cfa();if(!inv||cfa){return false}if(!inv.inventory||inv.inventory===0){return false}var max=inv.available||0,guests=self.guests(),ni;for(ni=0;ni0&&max>0){if(max<=5){return __("Only")()+" "+max+" "+__("tickets left!")()}if(max===1){return __("Only")()+" 1 "+__("ticket left!")()}else{return false}}else if(inv.inventory>0&&max<=0){return __("No more tickets left!")()}return false});self.canCheckout=ko.computed(function(){if(WebBooker.Cart.items().length>0){return true}if(self.cartItem()){var total=0,g=self.guests(),ni;for(ni=0;ni0){return true}}return false});self.availabilityStatus=ko.computed(function(){if(self.checkingInventory()){return __("Checking")()+"..."}if(self.date()){if(self.time()){if(self.canBook()){return __("Available")()}return __("Unavailable")()}return __("Select a time")()}return __("Select a date")()});self.isAvailable=function(nval,pid){function doNotification(){jQuery("#activity-subtotal").addClass("pulsate");setTimeout(function(){jQuery("#activity-subtotal").removeClass("pulsate")},1e3)}switch(true){case nval<0:return false;break;case parseInt(self.cfa(),10)===1:doNotification();return true;break;case self.inventory().inventory==0:doNotification();return true;break}var max=self.inventory().available,prices=self.cartItem().guests(),ni;for(ni=0;nimax){$ar.Notification(__("No more tickets left."),"error");return false}doNotification();return true};self.cartUpdateNotification=false;self.cartUpdateNotificationStart=function(){self.cartUpdateNotification=setTimeout(function(){$ar.Notification(__("Cart Updated"),"success")},500)};self.checkout=function(){if(!self.addToCart()){return false}jQuery("html, body").animate({scrollTop:0},500);window.location.href=WebBooker.bootstrap.wb_url+"/#/Checkout"};self.addToCart=function(){if(!self.cartItem())return true;var g=self.cartItem().guests(),qty=0,ni;for(ni=0;ni span").effect("pulsate",{times:2},500);self.checkingInventory(false);return}self.cartItem(null);WebBooker.API.checkAvailability({id:self.activity().id,datetime:createTimestamp(new Date(self.date()+" "+time))},function(data){self.checkingInventory(false);data.inventory=parseInt(data.inventory,10);data.available=parseInt(data.available,10);data.cfa=parseInt(data.cfa,10);if(data.status>0){self.inventory(data);self.cfa(data.cfa)}else if(data.status<0&&data.status!=-10){self.inventory(false);self.canBook(false);return false}var i=WebBooker.Cart.items(),deadline=self.getDeadline(),today=new Date,ni;switch(true){case data.inventory>0&&!data.cfa&&data.available<=0:self.canBook(false);self.inventory(false);console.log("failed at case #1");return false;break;case data.inventory<=0&&data.available<=0&&deadline>=today:if(data.cfa){}else{}self.canBook(true);self.unlBooking(true);console.log("passed at case #2");break;case data.inventory>0&&data.available>0&&deadline>=today:self.canBook(true);console.log("passed at case #3");break;case data.cfa&&data.inventory>0&&data.available<=0&&deadline>=today:self.canBook(true);console.log("passed at case #4");break;case data.inventory>0&&data.available>0&&deadline0&&!self.cartItem().inCart){self.cartItem().inCart=true;WebBooker.Cart.items.push(self.cartItem())}else if(nval+tickets<=0&&self.cartItem().inCart){WebBooker.Cart.items.remove(self.cartItem());self.cartItem().inCart=false}return true})};var _ci;for(ni=0;nidate&&diff!=0){return[false]}if(lifespanDateStart&&lifespanDateEnd){if(lifespanDateStart.getTime()>date.getTime()||lifespanDateEnd.getTime()date||end_dateday||end_dated[b.name]});return out};self.getTimestamp=ko.computed(function(){if(!self.date()||!self.time())return;var time=self.time().startTime=="Open"?"":self.time().startTime;return createTimestamp(new Date(self.date()+" "+time))});self.activity.subscribe(function(activity){var today=function(){var d=new Date;var month=("0"+(d.getMonth()+1)).slice(-2),day=("0"+d.getDate()).slice(-2);return month+"/"+day+"/"+d.getFullYear()};self.date(today());self.blackoutDays=[];self.cfa(activity.cfa);var blackouts=activity.blackouts||[],curr_date,end_date,ni;for(ni=0;ni=0){continue}self.times.push(time)}break}self.times.sort(function(a,b){return new Date("1970/01/01 "+a.startTime)-new Date("1970/01/01 "+b.startTime)});var o=-1;for(ni=0;ni=0){var _times=self.times.splice(o,1);self.times.unshift(_times[0])}if(self.times().length===1){self.time(self.times()[0])}});self.time.subscribe(function(newValue){if(newValue){self.checkInventory()}});return self}();WebBooker.ChildActivityView=function(data){var self={title:data.title,shortDesc:data.shortDesc,url:WebBooker.bootstrap.wb_url+"/"+data.slug+"/",display_price:false,low:null,high:null},ni;if(!data.prices)return self;for(ni=0;niself.high){self.high=data.prices[ni].amount}}self.prices=data.prices;return self};WebBooker.ActivityView=function(){var self={};self.fullScreenShow=ko.observable(false);self.show=ko.observable(false);self.invalidLanguage=ko.observable(false);self.activity=ko.observable();self.children=ko.observableArray([]);self.slideshow=ko.observableArray([]);self.i18n=function(val){WebBooker.API.changeI18N({i18n:val.i18n})};self.analyticsContinueShopping=function(item,evt){WebBooker.Analytics.trigger(evt.currentTarget,"action_continueShopping");return true};self.displayPrice=ko.computed(function(){if(!self.activity())return false;var kids=self.children(),prices=self.activity().prices||[],price=false,i;if(kids.length>0){for(i=0;i0){price=prices[i].amount}}}return price});self.days=ko.computed(function(){if(!self.activity())return;if(!(self.activity().times||[]).length)return;var times=self.activity().times,days={},d={Sunday:0,Monday:1,Tuesday:2,Wednesday:3,Thursday:4,Friday:5,Saturday:6},out=[],ni;for(ni=0;nid[b.name]});if(out.length==7){return __("Everyday")()}days=[];for(ni=0;ni0){var show=[];var columnWidth=jQuery("#webbooker-main").width();var makeurl=function(hash,height){return WebBooker.mediaServer+"/media/"+hash+"/thumbnail/height/"+height};for(ni in activity.media){if(activity.media[ni]&&activity.media[ni].type=="image"){if(activity.media[ni].url){show.push({standard:WebBooker.timthumb+"tth/400/"+basename(activity.media[ni].url),full:WebBooker.timthumb+"tth/"+WebBooker.galleryImageHeight+"/"+basename(activity.media[ni].url),orig:activity.media[ni]})}else if(activity.media[ni].hash){if(activity.media[ni].hasOwnProperty("featured")&&activity.media[ni].featured=="true"){if(show.length>0){show.unshift({full:makeurl(activity.media[ni].hash,700),standard:makeurl(activity.media[ni].hash,400)})}else{show.push({full:makeurl(activity.media[ni].hash,700),standard:makeurl(activity.media[ni].hash,400)})}}else{show.push({full:makeurl(activity.media[ni].hash,700),standard:makeurl(activity.media[ni].hash,400)})}}}}self.slideshow(show);jQuery(".carousel").carousel({pause:"hover"})}WebBooker.Analytics.trigger({id:activity.id,title:activity.title},"action_viewActivity");if(activity.address_lng&&activity.address_lat&&!isNaN(activity.address_lng)&&!isNaN(activity.address_lat)){jQuery(document).ready(function(){var map_canvas=document.getElementById("map_canvas");if(map_canvas){map_canvas.style.width="100%";if(window.innerWidth>640){var mapOptions={zoom:10,center:new google.maps.LatLng(activity.address_lat,activity.address_lng),mapTypeId:google.maps.MapTypeId.ROADMAP,scrollwheel:false}}else{var mapOptions={zoom:10,center:new google.maps.LatLng(activity.address_lat,activity.address_lng),mapTypeId:google.maps.MapTypeId.ROADMAP,scrollwheel:false,draggable:false}}map=new google.maps.Map(map_canvas,mapOptions);new google.maps.Marker({position:mapOptions.center,map:map,title:"Activity Location"})}})}WebBooker.showInitLoader(false);WebBooker.hideAllScreens();self.show(true);if(!window.isIE){$ar.load(wb_global_vars["plugin_url"]+"/js/lib/jquery.qrcode.min.js",function(){jQuery("#qrcode").qrcode(document.URL)})}});self.init=function(){if(!WebBooker.bootstrap.activity){return}if(WebBooker.bootstrap.activity.status==-1){WebBooker.Catalog.loadWithFilters();return}self.activity(WebBooker.bootstrap.activity);jQuery(".carousel").carousel({pause:"hover"})};return self}();$ar=$ar||{};WebBooker=WebBooker||{};$ar.CreditCardModel=function(data){var that=$ar.Model({number:"",year:"",month:"",code:""},$ar.data_mapper({cc_number:"number"},data));for(var ni in that){if(typeof that[ni]=="function")continue;that[ni]=ko.observable(that[ni])}var luhnCheck=function(s){var i,n,c,r;r=s.replace(/[^\d]/g,"").split("").reverse();if(r.length<=1)return false;n=0;for(i=0;i0&&n%10===0)return true;return false};that.errors=ko.observableArray([]);that.numberValidate=function(){that.errors([]);if(!that.number()){that.errors.push(__("Card number is required.")())}if(!luhnCheck(that.number())||!that.type()){that.errors.push(__("Invalid card number.")())}};that.validate=function(){that.numberValidate();if(!that.year()){that.errors.push(__("Card expiration year is required.")())}if(!that.month()){that.errors.push(__("Card expiration month is required.")()) }if(!that.code()){that.errors.push(__("Card security code is required.")())}return that.errors().length===0};that.type=ko.computed(function(){if(/^4[0-9]{12}(?:[0-9]{3})?$/.test(that.number())){return"visa"}if(/^5[1-5][0-9]{14}$/.test(that.number())){return"mastercard"}if(/^3[47][0-9]{13}$/.test(that.number())){return"amex"}if(/^6(?:011|5[0-9]{2})[0-9]{12}$/.test(that.number())||/^35(?:2[89]|[3-8]\d)([\ \-]?)\d{4}\1\d{4}\1\d{4}$/.test(that.number())){return"discover"}return false});that.number.subscribe(that.numberValidate);return that};$ar.CheckoutItemModel=function(data){var that=$ar.Model({activity:0,date:null,i18n_date:null,time:null,url:"",title:"",destination:"",directions_url:"",instructions:"",cfa:false,pending:false,inventory:0,tickets:[],options:[],fees:[],transportation:[],transport:null,row_id:String.fromCharCode(65+Math.floor(Math.random()*26))+Date.now()});that._json_callback=function(beans){if(!beans)return;beans.tickets=beans.tickets||[];beans.options=beans.options||[];beans.transportation=beans.transportation||[];beans.fees=beans.fees||[];if(beans.cfa&&!beans.inventory){beans.pending=1}var ni;for(ni=0;nidate_end){continue}}else if(date_start&&!date_end){if(act_datedate_end){continue}}out.push($ar.TransportationModel(nval[no].json()));outtix.push(nval[no].json())}that.transportView.transportation(out);for(no=0;no0&&that.transportView.selectTransport()=="empty"){valid=false}if(that.transportView.wantsTransport()){if(!that.transport()||!that.transportView.locationSelect()||that.transportView.locationSelect()=="hotel"&&!that.transportView.hotel()||that.transportView.locationSelect()=="address"&&!that.transportView.lat()){valid=false}}if(!valid)that.showOptions(true);return valid};that.toggleOptions=function(){that.showOptions(!that.showOptions())};that.save=function(guest,sale_id,_callback){var a_cfa=guest.cfa&&!guest.inventory;var ticket={aid:guest.activity,sid:sale_id,timestamp:createTimestamp(new Date(guest.date+(guest.time.startTime=="Open"?" ":" "+guest.time.startTime))),guest_type_id:that.id,guest_type:that.name,guest_hotel:(that.transportView.hotel()||{json:function(){return null}}).json(),guest_room:!that.transportView.room()||that.transportView.room()===""?"Not provided":that.transportView.room(),cfa:guest.cfa,cfa_name:"",cfa_number:"",firstName:that.first_name(),lastName:that.last_name()};WebBooker.API.saveTicket(ticket,function(result){if(result.status!=1){if(typeof _callback=="function")_callback();return}that.ticket_id=result.data.ID;if(result.data.cfa==1&&!a_cfa){guest.pending(1)}var opts=that.options(),ni;for(ni=0;ni0){searchArgs.activities=[];acts=WebBooker.Cart.items();for(var ne=0;ne0){pmts[ni].amount(total)}}};self.hotels=ko.observableArray([]);self.verifying=ko.observable(false);self.discountCode=ko.observable();self.codeGood=ko.observable(true);self.enableSubmit=ko.computed(function(){if(!self.paymentType()){return false}if(!self.termsAccepted()){return false}if(WebBooker.CheckoutNav.processing()){return false}var payments=self.sale.payments(),ni;for(ni=0;ni0&&payments[0].type_id==0)return false;return true});self.process=function(item,event){var voucher=true,payments=self.sale.payments(),ni;for(ni=0;ni0&&!self.showConfirmation()});return self}();jQuery(document).ready(function(){ko.applyBindings(WebBooker.bootstrap,jQuery("#reseller-privacy-policy .modal-body")[0])});WebBooker.Dashboard={show:ko.observable(false),showMain:ko.observable(true),showReports:ko.observable(false),showSignup:ko.observable(false),showPasswordReset:ko.observable(false),showPasswordResetConfirmation:ko.observable(false),signupSuccessMsg:ko.observable(false),agentCommissionsChart:ko.observable(),agentCommissionsData:ko.observable(),agentCommissionsStartDate:ko.observable(),agentCommissionsEndDate:ko.observable(),agentCommissionsTotal:ko.observable(),agentCommissionsReport:ko.observable(),populateAgentCommissionsData:function(){var date=new Date;if(!WebBooker.Dashboard.agentCommissionsStartDate()){WebBooker.Dashboard.agentCommissionsStartDate(getDateString(new Date(date.getFullYear(),date.getMonth(),1)))}if(!WebBooker.Dashboard.agentCommissionsEndDate()){WebBooker.Dashboard.agentCommissionsEndDate(getDateString(new Date(date.getFullYear(),date.getMonth()+1,0)))}var d=new Date,startDate=new Date(WebBooker.Dashboard.agentCommissionsStartDate()),endDate=new Date(WebBooker.Dashboard.agentCommissionsEndDate());endDate.setHours(23,59,59);WebBooker.Dashboard.agentCommissionsData(null);WebBooker.Dashboard.agentCommissionsReport(null);WebBooker.Dashboard.agentCommissionsTotal(0);WebBooker.API.getAgentCommissions({startDate:createTimestamp(startDate),endDate:createTimestamp(endDate),tz:d.getTimezoneOffset()},function(results){var dataset=[],obj={},_date,ni;for(ni=0;niend.getTime()){WebBooker.errorMsg("You can't select an end date that is before the start date.");WebBooker.Dashboard.agentCommissionsEndDate("")}}});WebBooker.Dashboard.show.subscribe(function(value){if(value){$ar.load(wb_global_vars["plugin_url"]+"/js/lib/highcharts.js",function(){setTimeout(function(){jQuery(".datepicker-dash").each(function(){jQuery(this).datepicker({numberOfMonths:2,dateFormat:"mm/dd/yy",beforeShow:function(a){if(a.id=="topgross-enddate"&&jQuery("#topgross-startdate").datepicker("getDate")){return{minDate:jQuery("#topgross-startdate").datepicker("getDate")}}}})})},500);if(!WebBooker.Dashboard.agentCommissionsData()){WebBooker.Dashboard.populateAgentCommissionsData()}})}if(!WebBooker.Dashboard.agentCommissionsData()){WebBooker.Dashboard.populateAgentCommissionsData()}});WebBooker.Itinerary=function(){var self={show:ko.observable(false),sale:$ar.SaleModel(),loading:ko.observable(false),loaded:ko.observable(false),errorMsg:ko.observable(false)};self.show.subscribe(function(value){if(value){WebBooker.Analytics.trigger({},"action_Itinerary")}});self.reset=function(){self.loading(false);self.errorMsg(false);self.loaded(false);self.sale.id("");self.sale.leadGuest.email("")};self.load=function(){if(!self.sale.leadGuest.email()&&!WebBooker.Agent.user_id()){self.errorMsg(__("E-mail address is missing.")());return false}if(!self.sale.id()){self.errorMsg(__("Reservation number is missing.")());return false}self.loaded(false);self.loading(true);self.errorMsg(false);self.sale.load(function(result){self.loading(false);if(result.status!=1){self.loaded(false);self.errorMsg(__(result.msg)());return}self.loaded(true);WebBooker.Analytics.trigger(result.data,"action_viewItinerary")})};self.popupError=ko.observable(false);self.popupErrorClose=function(){self.popupError(false)};self.printTickets=function(args){var params={saleID:args.id||self.sale.id(),output:"html",email:args.email||self.sale.leadGuest.email()};WebBooker.API.doItineraryAction(params,function(data){var itineraryWindow=window.open("");if(!itineraryWindow||itineraryWindow.closed||typeof itineraryWindow.closed=="undefined"){self.popupError(true)}if(itineraryWindow){itineraryWindow.document.write(data.data);itineraryWindow.focus()}})};return self}();WebBooker.Analytics={trigger:function(data,action){if(WebBooker.Analytics.hasOwnProperty(action)){WebBooker.Analytics[action](data)}},stored_data:{}};if(!Array.prototype.indexOf){Array.prototype.indexOf=function(searchElement){"use strict";if(this===null){throw new TypeError}var t=Object(this);var len=t.length>>>0;if(len===0){return-1}var n=0;if(arguments.length>0){n=Number(arguments[1]);if(n!=n){n=0}else if(n!==0&&n!=Infinity&&n!=-Infinity){n=(n>0||-1)*Math.floor(Math.abs(n))}}if(n>=len){return-1}var k=n>=0?n:Math.max(len-Math.abs(n),0);for(;k