var menu=new function(){var EFFECT_SLIDING='sliding';var EFFECT_ROLLING='rolling';var EFFECT_TOGGLE='toggle';var self=this;var menu_is_prepared=false;var menu_open_speed=50;var menu_close_speed=150;var menu_effect=EFFECT_SLIDING;var menu_hover_config={interval:50,sensitivity:20,timeout:300,over:function(e){self.slide_open.apply(this,[e]);},out:function(e){self.slide_close.apply(this,[e]);}};this.init=function()
{self.log('menu.init()');if(menu_is_prepared)return;menu_is_prepared=true;$("ul.subnav").parent().find("a[href='']").click(function(){return false;});$("ul.subnav").parent().removeClass('csshover');self.log('menu_effect:'+menu_effect);switch(menu_effect){case EFFECT_SLIDING:self.bind_hover_sliding();break;case EFFECT_ROLLING:self.bind_hover_rolling();break;case EFFECT_TOGGLE:self.bind_hover_toggle();break;}
$('ul.subnav a:current').addClass('current');if(jQuery.fn.bgiframe&&$.browser.msie&&parseInt($.browser.version,10)<7){$('ul.subnav').bgiframe();}};this.bind_touch_handler=function()
{$('ul.subnav').each(function(){var $this=$(this);var $trigger=$this.parent().find('h2 a');$trigger.click(function(){self.log('click');$('ul.subnav').hide();var $menu=$(this).parent().parent().find('ul:first');$menu.css('visibility','visible');$menu.show();});});};this.bind_hover_sliding=function()
{self.log('menu.bind_hover_drawer()');$(window).resize(self.recalculate_left);$('ul.subnav').each(function(){var $this=$(this);var $trigger=$this.parent();$trigger.hoverIntent(menu_hover_config);$trigger.find('h2 a').click(function(e){self.slide_open.apply($(this).parent().parent(),[e]);});$this.css('height',$this.height());$this.css('left',$trigger.offset().left);$this.data('openTop',$this.position().top);var closedTop=(0-($this.height()-$('#header').height()));$this.data('closedTop',closedTop);$this.css('top',closedTop+'px');$this.css('visibility','visible');$this.hide();});};this.recalculate_left=function(){$('ul.subnav').each(function(){var $this=$(this);var $trigger=$this.parent();$this.css('left',$trigger.offset().left);});};this.slide_open=function(e)
{var $this=$(this);if($this.hasClass('active'))return;var $menu=$this.find('ul:first');$('ul.subnav.exclude').removeClass('exclude');$('ul.subnav').parent().removeClass('active');$this.addClass('active');$menu.addClass('exclude');self.hide_others();$menu.show()
$('#header').before($menu);$menu.stop().animate({"top":$menu.data('openTop')+'px'},menu_open_speed,"swing",function(){$menu.removeClass('exclude');$this.append($menu);});return false;};this.slide_close=function(e)
{var $this=$(this);$this.removeClass('active');var $menu=$this.find('ul:first');$('#header').before($menu);$menu.stop().animate({"top":$menu.data('closedTop')+'px'},menu_close_speed,"swing",function(){$menu.hide();$this.append($menu);});};this.hide_others=function()
{$('ul.subnav:not(.exclude)').each(function(){var $other_menu=$(this);if($other_menu.position().top>0){$other_menu.hide();}});};this.bind_hover_rolling=function()
{self.log('menu.bind_hover_rolling()');$('ul.subnav').each(function(){var $this=$(this);var $trigger=$this.parent();menu_hover_config.over=self.roll_open;menu_hover_config.out=self.roll_close;$trigger.hoverIntent(menu_hover_config);$this.css('visibility','visible');$this.hide();});}
this.roll_open=function(){var $this=$(this);var $menu=$this.find('ul:first');$menu.slideDown('fast');};this.roll_close=function(){var $this=$(this);var $menu=$this.find('ul:first');$menu.slideUp('fast');};this.bind_hover_toggle=function()
{self.log('menu.bind_hover_toggle()');$('ul.subnav').each(function(){var $this=$(this);var $trigger=$this.parent();menu_hover_config.over=function(){$(this).find('ul:first').show();};menu_hover_config.out=function(){$(this).find('ul:first').hide();};$trigger.hoverIntent(menu_hover_config);$this.css('visibility','visible');$this.hide();});}
this.log=function(message){if(typeof(console)!='undefined'){console.log(message);}};};$(document).ready(function(){menu.init();});$(document).ready(function(){var config={predelay:400,delay:300,effect:'fade',position:'bottom left',tipClass:'tooltip'};function tooltip_config(settings){return $.extend({effect:config.effect,predelay:config.predelay,tipClass:config.tipClass,delay:config.delay,position:'bottom left',offset:[0,0],onBeforeShow:function(){var rel=this.getTrigger().attr('rel');if(rel.indexOf('http://')>-1||rel.substring(0,1)=='/'){this.getTip().load(rel);}else{this.getTip().html($(rel).html());}}},settings);}
$("#brand-discovery a").tooltip(tooltip_config({position:'bottom left'}));$("#brand-planeterra a").tooltip(tooltip_config());});$(document).ready(function(){var offline_string="Chat is offline.";if($('#imw_start').html()){if($('#imw_start').html().search(offline_string)>-1){$('#imwell').hide();}}});$(document).ready(function(){var $tracker=$('#id-testimonial-tracker');if($tracker.length){$("#id-testimonial-tracker").jCarouselLite({auto:8000,speed:1200,circular:true,visible:1,easing:'easeInOutBack',vertical:true});}});var overlay_mask={color:'#000',loadSpeed:100,opacity:0.6};function init_login_facebox()
{var is_login=$(document).getUrlParam('login');if(is_login==='true'){if($('#user_name').val()===undefined){$("#overlay").overlay({onBeforeLoad:function(){var wrap=this.getOverlay().find(".overlay_content");wrap.load('/accounts/login/');},mask:overlay_mask,load:true});}}}
function init_overlays()
{$("a[rel=#overlay]").overlay({mask:overlay_mask,closeOnClick:false,onBeforeLoad:function(){var wrap=this.getOverlay().find(".overlay_content");wrap.load(this.getTrigger().attr("href"));}});}
$(function(){$('a[rel*=facebox]').facebox();$('a').trackActivities();$('select').trackActivities({'events':['change'],'label_callback':function(){return $(this).find(':selected').text();}});$("#id_localization_country").change(function(){$("#country_localization_form").submit();});$('ul.tab-nav:not(.nojs)').tabs('div.tab-panes > div',{history:false});$('#dest-tab-nav').tabs('div.dest-tab-panes > div');ff2_inline_stack_fix();init_login_facebox();init_overlays();if(typeof(init_marketing_ads)!=='undefined'){init_marketing_ads();}
if(typeof(init_featured_trips)!=='undefined'){init_featured_trips();}
if(typeof(init_main_banner)!=='undefined'){init_main_banner();}
if(typeof(init_full_carousel)!=='undefined'){init_full_carousel();}
if(typeof(init_wir_carousel)!=='undefined'){init_wir_carousel();}
if(typeof(init_input_default_text)!=='undefined'){init_input_default_text();}
$(document).placeholder();$('.flowgrid3.round-images img:first-child').round_corners({'radius':'5px'});$('.flowgrid4.round-images img:first-child').round_corners({'radius':'5px'});$('.home-page .flowgrid2 img').round_corners({'radius':'5px'});});function init_autocomplete()
{var cache={};if($("#auto_q").length>0){$("#auto_q").autocomplete({source:function(request,response){var term=request.term;if(term in cache){response(cache[term]);return;}
lastXhr=$.getJSON("/trips/autocomplete/",{q:request.term},function(data,status,xhr){cache[term]=data;if(xhr===lastXhr){response(data);}});},minLength:2,select:function(event,ui){$("#auto_q").val(ui.item.label);if(ui.item.url){window.location=ui.item.url+(ui.item.url.indexOf('?')<0?"?":"&")+"ref=asearch";}else{$("#search form").submit();}},position:{my:"right top",at:"right bottom",collision:"none",offset:"35px 3px"}}).data("autocomplete")._renderItem=function(ul,item){ul.addClass('ui-search-menu');if(item.label=='Trips'){var trips=item.value;$("<li class='non-result'></li>").data("item.autocomplete",null).append(["Trips"].join('')).appendTo(ul);for(var i in trips){var trip=trips[i];$("<li></li>").data("item.autocomplete",trip).append(["<a>",trip.label,"<span>",trip.description,"</span></a>"].join('')).appendTo(ul);}
if(item.count){$("<li class='view-all'></li>").data("item.autocomplete",{label:item.keywords}).append(["<a>View all results</a>"].join('')).appendTo(ul);}}else if(item.label=='Countries'){var countries=item.value;$("<li class='non-result'></li>").data("item.autocomplete",null).append(["Related Destinations"].join('')).appendTo(ul);for(var i in countries){var country=countries[i];$("<li class='country'></li>").data("item.autocomplete",country).append(["<a>Trips to ",country.label," (",country.count,")</a>"].join('')).appendTo(ul);}}};}}
$(document).ready(function(){init_autocomplete();});$(function(){var $finder=$("#faceted_finder_form");if(!$finder.length)return;var $finder_submit=$("#finder_submit");function check_results(){var keywords=$("#finder_q");if(keywords.val()==keywords.attr('placeholder')){keywords.val('');}
var form_data=$finder.serialize();form_data+='&count=true';$.ajax({type:$finder.attr("method"),dataType:"html",url:$finder.attr('action'),data:form_data,success:function(data,code,xmlhttp){var count=parseInt(data,10);update_finder_button(count);}});}
function update_finder_button(count){$finder_submit.removeClass('disabled');if(count>1){$finder_submit.text("Show "+count+" trips");}else if(count==1){$finder_submit.text("Show trip");}else{$finder_submit.text("No matching trips");$finder_submit.addClass('disabled');}}
$finder[0].reset();$("select",$finder).change(function(){check_results();});$("#finder_q",$finder).change(function(){check_results();});check_results();});(function($){var supportsValidity;(function(){if(!$.prop||supportsValidity){return;}
var supportTest=function(){supportsValidity=!!$('<input />').prop('validity');};supportTest();$(supportTest);})();$.widget('ui.checkBox',{options:{hideInput:true,addVisualElement:true,addLabel:true},_create:function(){var that=this,opts=this.options;if(!this.element.is(':radio,:checkbox')){if(this.element[0].elements&&$.nodeName(this.element[0],'form')){$(this.element[0].elements).filter(':radio,:checkbox').checkBox(opts);}
return false;}
this._proxiedReflectUI=$.proxy(this,'reflectUI');this.labels=$([]);this.checkedStatus=false;this.disabledStatus=false;this.hoverStatus=false;this.inputType=this.element[0].type;this.radio=this.inputType=='radio';this.visualElement=$([]);if(opts.hideInput){this.element.addClass('ui-helper-hidden-accessible');if(opts.addVisualElement){this.visualElement=$('<span />').addClass('ui-'+this.inputType);this.element.after(this.visualElement[0]);}}
if(opts.addLabel){var id=this.element[0].id;if(id){this.labels=$('label[for="'+id+'"]',this.element[0].form||this.element[0].ownerDocument).add(this.element.parent('label'));}
if(!this.labels[0]){this.labels=this.element.closest('label',this.element[0].form);}
this.labels.addClass(this.radio?'ui-radio':'ui-checkbox');}
this.visualGroup=this.visualElement.add(this.labels);this._addEvents();this.initialized=true;this.reflectUI({type:'initialreflect'});return undefined;},_addEvents:function(){var that=this,opts=this.options,toggleHover=function(e){if(that.disabledStatus){return false;}
that.hover=(e.type=='focus'||e.type=='mouseenter');if(e.type=='focus'){that.visualGroup.addClass(that.inputType+'-focused');}else if(e.type=='blur'){that.visualGroup.removeClass(that.inputType+'-focused');}
that._changeStateClassChain();return undefined;};this.element.bind('click.checkBox invalid.checkBox',this._proxiedReflectUI).bind('focus.checkBox blur.checkBox',toggleHover);if(opts.hideInput){this.element.bind('usermode',function(e){(e.enabled&&that.destroy.call(that,true));});}
if(opts.addVisualElement){this.visualElement.bind('click.checkBox',function(e){that.element[0].click();return false;});}
this.visualGroup.bind('mouseenter.checkBox mouseleave.checkBox',toggleHover);},_changeStateClassChain:function(){var allElements=this.labels.add(this.visualElement),stateClass='',baseClass='ui-'+this.inputType;if(this.checkedStatus){stateClass+='-checked';allElements.addClass(baseClass+'-checked');}else{allElements.removeClass(baseClass+'-checked');}
if(this.disabledStatus){stateClass+='-disabled';allElements.addClass(baseClass+'-disabled');}else{allElements.removeClass(baseClass+'-disabled');}
if(this.hover){stateClass+='-hover';allElements.addClass(baseClass+'-hover');}else{allElements.removeClass(baseClass+'-hover');}
baseClass+='-state';if(stateClass){stateClass=baseClass+stateClass;}
function switchStateClass(){var classes=this.className.split(' '),found=false;$.each(classes,function(i,classN){if(classN.indexOf(baseClass)===0){found=true;classes[i]=stateClass;return false;}
return undefined;});if(!found){classes.push(stateClass);}
this.className=classes.join(' ');}
this.visualGroup.each(switchStateClass);},destroy:function(onlyCss){this.element.removeClass('ui-helper-hidden-accessible');this.visualElement.addClass('ui-helper-hidden');if(!onlyCss){var o=this.options;this.element.unbind('.checkBox');this.visualElement.remove();this.labels.unbind('.checkBox').removeClass('ui-state-hover ui-state-checked ui-state-disabled');}},disable:function(status){if(status===undefined){status=true;}
this.element[0].disabled=status;this.reflectUI({type:'manuallydisabled'});},enable:function(){this.element[0].disabled=false;this.reflectUI({type:'manuallyenabled'});},toggle:function(e){this.changeCheckStatus(!(this.element.is(':checked')),e);},changeCheckStatus:function(status,e){if(e&&e.type=='click'&&this.element[0].disabled){return false;}
this.element[0].checked=!!status;this.reflectUI(e||{type:'changecheckstatus'});return undefined;},propagate:function(n,e,_noGroupReflect){if(!e||e.type!='initialreflect'){if(this.radio&&!_noGroupReflect){var elem=this.element[0];$('[name="'+elem.name+'"]',elem.form||elem.ownerDocument).checkBox('reflectUI',e,true);}
return this._trigger(n,e,{options:this.options,checked:this.checkedStatus,labels:this.labels,disabled:this.disabledStatus});}
return undefined;},changeValidityState:function(){if(supportsValidity){this.visualGroup[!this.element.prop('willValidate')||(this.element.prop('validity')||{valid:true}).valid?'removeClass':'addClass'](this.inputType+'-invalid');}},reflectUI:function(e){var oldChecked=this.checkedStatus,oldDisabledStatus=this.disabledStatus;this.disabledStatus=this.element.is(':disabled');this.checkedStatus=this.element.is(':checked');if(!e||e.type!=='initialreflect'){this.changeValidityState();}
if(this.disabledStatus!=oldDisabledStatus||this.checkedStatus!==oldChecked){this._changeStateClassChain();(this.disabledStatus!=oldDisabledStatus&&this.propagate('disabledchange',e));(this.checkedStatus!==oldChecked&&this.propagate('change',e));}}});if($.propHooks){$.each({checked:'changeCheckStatus',disabled:'disable'},function(name,fn){if(!$.propHooks[name]){$.propHooks[name]={};}
var oldSetHook=$.propHooks[name].set;$.propHooks[name].set=function(elem,value){var widget=$.data(elem,'checkBox');if(widget){widget[fn](!!value);}
return oldSetHook&&oldSetHook(elem,value);};});}})(jQuery);
