var useBSNns;var _bsn;var bsn;var ajaxErrorReporting=false;if(useBSNns){if(typeof(bsn)=="undefined"){bsn={}}_bsn=bsn}else{_bsn=this} if(typeof(_bsn.Autosuggest)=="undefined"){_bsn.Autosuggest={}} _bsn.AutoSuggest=function(C,B){if(!document.getElementById){return false}this.fld=_bsn.DOM.getElement(C);this.id=C;if(!this.fld){return false}this.sInput="";this.nInputChars=0;this.aSuggestions=[];this.iHighlighted=0;this.oP=(B)?B:{};this.idAs="as_"+this.fld.id;if(!this.oP.minchars){this.oP.minchars=1}if(!this.oP.method){this.oP.meth="get"}if(!this.oP.varname){this.oP.varname="input"}if(!this.oP.className){this.oP.className="autosuggest"}if(!this.oP.timeout){this.oP.timeout=2500}if(!this.oP.delay){this.oP.delay=500}if(!this.oP.offsety){this.oP.offsety=-5}if(!this.oP.shownoresults){this.oP.shownoresults=true}if(!this.oP.noresults){this.oP.noresults="No results!"}if(!this.oP.maxheight&&this.oP.maxheight!==0){this.oP.maxheight=250}if(!this.oP.cache&&this.oP.cache!==false){this.oP.cache=true}var A=this;this.fld.onkeypress=function(D){return A.onKeyPress(D)};this.fld.onkeyup=function(D){return A.onKeyUp(D)};this.fld.onkeydown=function(D){return A.onKeyDown(D)};this.fld.onfocus=function(D){return A.onFocus(A)};var F=_bsn.DOM.getPos(this.fld);if(document.getElementById(this.idAs)==null){this.createdDiv=_bsn.DOM.createElement("div",{id:this.idAs,className:this.oP.className});if(this.oP.position=="absolute"){this.createdDiv.style.position="absolute";var style=this.fld.currentStyle||window.getComputedStyle(this.fld);this.createdDiv.style.top=style.height+"px";this.createdDiv.style.left=F.x+"px";this.fld.parentNode.style.position="relative";}else{this.createdDiv.style.position="relative";this.createdDiv.style.top="0px";if(this.oP.dir==='rtl'){this.createdDiv.style.right="0px";}else{this.createdDiv.style.left="0px";}} this.createdDiv.style.minWidth=this.fld.offsetWidth+"px";this.createdDiv.style.float=(this.oP.dir==='rtl'?'right':'left');this.createdDiv.style.visibility="hidden";this.createdDiv.style.display="none";this.createdDiv.style.zIndex=200;this.fld.parentNode.insertBefore(this.createdDiv,this.fld.nextSibling);} this.fld.setAttribute("autocomplete","off")};_bsn.AutoSuggest.prototype.onKeyPress=function(E){var D=(window.event)?window.event.keyCode:E.keyCode;if(typeof(event)!="undefined"){D=event.keyCode} var C=13,B=9,F=27,A=true;switch(D){case 13:if(this.createdDiv.style.display!=='none'){A=false;} this.setHighlightedValue();break;case 27:this.clearSuggestions();break} return A};_bsn.AutoSuggest.prototype.onFocus=function(E){if(typeof(rwd_isWidth)=="function"&&rwd_isWidth(460)){setTimeout(function(){E.scrollTo();},0);}} _bsn.AutoSuggest.prototype.scrollTo=function(E){rwd_saveScroll(this.fld);} _bsn.AutoSuggest.prototype.onKeyDown=function(B){var A=(window.event)?window.event.keyCode:B.keyCode;if(A==9){if(document.getElementById(this.idAs)!==null){if(!this.iHighlighted&&this.aSuggestions.length){this.iHighlighted=1}this.setHighlightedValue();this.removeStuff(this.idAs);this.resetTimeout();bubble=false}}};_bsn.AutoSuggest.prototype.onKeyUp=function(E){var C=(window.event)?window.event.keyCode:E.keyCode;var B=38;var D=40;var A=true;switch(C){case B:this.changeHighlight(C);A=false;break;case D:this.changeHighlight(C);A=false;break;default:this.getSuggestions(this.fld.value)}return A};_bsn.AutoSuggest.prototype.getSuggestions=function(D){if(D==this.sInput){return false}if(D.lengththis.nInputChars&&this.aSuggestions.length&&this.oP.cache){var A=[];for(var B=0;B"+Y.substring(0,N)+""+Y.substring(N,N+this.sInput.length)+""+Y.substring(N+this.sInput.length)+"";var R=_bsn.DOM.createElement("span",{},I,true);if(A[T].info!==""){var W=_bsn.DOM.createElement("br",{});R.appendChild(W);var sL='';if(A[T].parentname&&A[T].parentname!=A[T].info)sL+=A[T].parentname+', ';if(A[T].state&&A[T].parenttype!="State")sL+=A[T].state+', ';if(A[T].type=="Country"){sL=sL.substring(0,sL.length-2);}else{sL+=A[T].info;};var H=_bsn.DOM.createElement("small",{});H.innerHTML=sL;R.appendChild(H)}var V=_bsn.DOM.createElement("a",{href:"#",tabIndex:"-1"});var E=_bsn.DOM.createElement("span",{className:"tl"}," ");var B=_bsn.DOM.createElement("span",{className:"tr"}," ");V.appendChild(E);V.appendChild(B);V.appendChild(R);V.name=T+1;V.onclick=function(){O.setHighlightedValue();return false};V.onmouseover=function(){O.setHighlight(this.name)};J=_bsn.DOM.createElement("li",{},V);K.appendChild(J)}if(A.length===0){J=_bsn.DOM.createElement("li",{className:"as_warning"},this.oP.noresults);K.appendChild(J)}_bsn.DOM.getElement(this.idAs).appendChild(K);var U=_bsn.DOM.createElement("div",{className:"as_corner"});var X=_bsn.DOM.createElement("div",{className:"as_bar"});var M=_bsn.DOM.createElement("div",{className:"as_footer"});M.appendChild(U);M.appendChild(X);_bsn.DOM.getElement(this.idAs).appendChild(M);var F=_bsn.DOM.getPos(this.fld);this.iHighlighted=0;O=this;this.toID=setTimeout(function(){O.clearSuggestions()},this.oP.timeout) _bsn.DOM.getElement(this.idAs).style.display="block";_bsn.DOM.getElement(this.idAs).style.visibility="visible";if(_bsn.DOM.getElement(this.idAs).filters){try{_bsn.DOM.getElement(this.idAs).filters.item("DXImageTransform.Microsoft.Alpha").opacity=100}catch(B){_bsn.DOM.getElement(this.idAs).style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity=100)"}}else{_bsn.DOM.getElement(this.idAs).style.opacity=1.0} createdDiv.style.marginBottom=-createdDiv.offsetHeight+"px";};_bsn.AutoSuggest.prototype.changeHighlight=function(A){var B=_bsn.DOM.getElement("as_ul");if(!B){return false}var C;if(A==40){C=this.iHighlighted+1}else{if(A==38){C=this.iHighlighted-1}}if(C>B.childNodes.length){C=B.childNodes.length}if(C<1){C=1}this.setHighlight(C)};_bsn.AutoSuggest.prototype.setHighlight=function(B){var A=_bsn.DOM.getElement("as_ul");if(!A){return false}if(this.iHighlighted>0){this.clearHighlight()}this.iHighlighted=Number(B);A.childNodes[this.iHighlighted-1].className="as_highlight";this.killTimeout()};_bsn.AutoSuggest.prototype.clearHighlight=function(){var A=_bsn.DOM.getElement("as_ul");if(!A){return false}if(this.iHighlighted>0){A.childNodes[this.iHighlighted-1].className="";this.iHighlighted=0}};_bsn.AutoSuggest.prototype.setHighlightedValue=function(){if(this.iHighlighted){this.sInput=this.fld.value=this.aSuggestions[this.iHighlighted-1].value;if(typeof $=='function'){$(this.fld).trigger('change');} this.fld.focus();if(this.fld.selectionStart){this.fld.setSelectionRange(this.sInput.length,this.sInput.length)}this.clearSuggestions();if(typeof(this.oP.callback)=="function"){this.oP.callback(this.aSuggestions[this.iHighlighted-1],this.fld)}}};_bsn.AutoSuggest.prototype.killTimeout=function(){clearTimeout(this.toID)};_bsn.AutoSuggest.prototype.resetTimeout=function(){clearTimeout(this.toID);var A=this;this.toID=setTimeout(function(){A.clearSuggestions()},1000)};_bsn.AutoSuggest.prototype.clearSuggestions=function(){this.killTimeout();var A=_bsn.DOM.getElement(this.idAs);var C=this;if(A){var B=new _bsn.Fader(A,1,0,250,this.removeStuff(C.idAs))}};if(typeof(_bsn.Ajax)=="undefined"){_bsn.Ajax={}}_bsn.Ajax=function(){this.req={};this.isIE=false};_bsn.Ajax.prototype.makeRequest=function(C,B,A,D){if(B!="POST"){B="GET"}this.onComplete=A;this.onError=D;var E=this;if(window.XMLHttpRequest){this.req=new XMLHttpRequest();this.req.onreadystatechange=function(){E.processReqChange()};this.req.open("index.html",C,true);this.req.send(null)}else{if(window.ActiveXObject){this.req=new ActiveXObject("Microsoft.XMLHTTP");if(this.req){this.req.onreadystatechange=function(){E.processReqChange()};this.req.open(B,C,true);this.req.send()}}}};_bsn.Ajax.prototype.processReqChange=function(){if(this.req.readyState==4){if(this.req.status==200){this.onComplete(this.req)}else{this.onError(this.req.status)}}};if(typeof(_bsn.DOM)=="undefined"){_bsn.DOM={}}_bsn.DOM.createElement=function(E,B,A,D){var F=document.createElement(E);if(!F){return false}for(var C in B){F[C]=B[C]}if(typeof(A)=="string"&&!D){F.appendChild(document.createTextNode(A))}else{if(typeof(A)=="string"&&D){F.innerHTML=A}else{if(typeof(A)=="object"){F.appendChild(A)}}}return F};_bsn.DOM.clearElement=function(B){var A=this.getElement(B);if(!A){return false}while(A.childNodes.length){A.removeChild(A.childNodes[0])}return true};_bsn.AutoSuggest.prototype.removeStuff=function(F){var E=[];var D=0;for(D=0;D0;i--){F.removeChild(F.childNodes[i-1]);} F.style.visibility="hidden";F.style.display="none";}else{_bsn.DOM.removeElement(F)};} _bsn.DOM.removeElement=function(A){var B=this.getElement(A);if(!B){return false}else{if(B.parentNode.removeChild(B)){return true}else{return false}}};_bsn.DOM.replaceContent=function(D,A,B){var C=this.getElement(D);if(!C){return false}this.clearElement(C);if(typeof(A)=="string"&&!B){C.appendChild(document.createTextNode(A))}else{if(typeof(A)=="string"&&B){C.innerHTML=A}else{if(typeof(A)=="object"){C.appendChild(A)}}}};_bsn.DOM.getElement=function(B){if(typeof(B)=="undefined"){return false}else{if(typeof(B)=="string"){var A=document.getElementById(B);if(!A){return false}else{if(typeof(A.appendChild)!="undefined"){return A}else{return false}}}else{if(typeof(B.appendChild)!="undefined"){return B}else{return false}}}};_bsn.DOM.appendChildren=function(E,B){var D=this.getElement(E);if(!D){return false}if(typeof(B)!="object"){return false}for(var C=0;C');$(window).on("resize",function(){nbf_responsive();});nbf_responsive();$(document).on("click","div.nbf_printbox",function(){$content=$("#nbf_lightbox_container").clone();$content.find("#nbf_lightbox_close").remove();$content.find("div.nbf_printbox").remove();$content.find("button.nbf_button").remove();$content.find("#nbf_legmap").remove();$content.find("span.nbf_iolog").remove();$content.find("div.nbf_advdata").remove();nbf_printcontent("Flight Details",$content.html());});$(document).on("click","div.nbf_addprod_moreopts",function(){$(this).parent().find("div.hidden").css({'display':'none'}).removeClass('hidden').addClass('nbf_hideable').slideDown(200,function(){$(this).parent().find("div.hidden").removeClass('hidden').addClass('nbf_hideable').show();});$(this).hide();$(this).parent().find("div.nbf_addprod_hideopts").css({"display":"inline-block"});$(document).trigger('showmore.nbf');});$(document).on("click","div.nbf_addprod_hideopts",function(){$(this).parent().find("div.nbf_hideable").slideUp(200,function(){$(this).parent().find("div.nbf_hideable").removeClass('nbf_hideable').addClass('hidden').hide();});$(this).hide();$(this).parent().find("div.nbf_addprod_moreopts").css({"display":"inline-block"});$('body').animate({scrollTop:$(this).parent().offset().top});$('#nbf_resultsright').height('auto');$(document).trigger('hidemore.nbf');});if(typeof bf_showsection_handler==="undefined"){var bf_showsection_handler=function(e){e.preventDefault();var sectiontoshow=$('#'+$(this).attr('data-sectiontoshow'));if(sectiontoshow.length){sectiontoshow.removeClass('nbf_hidden');$(this).addClass('nbf_hidden');}};$(document).on('click','.js-bf_showsection',bf_showsection_handler);} $(document).on('click',".nbf_showmore,div.nbf_addprod_hotelcontainer div.nbf_addprod_moreopts",function(){var elem=$(this),hid=elem.attr("data-hid");elem.hide().attr('aria-hidden','true');$(".nbf_hidemore[data-hid='"+hid+"'],div.nbf_addprod_hideopts[data-hid='"+hid+"']").css({"display":"inline-block","*display":"inline","zoom":1}).attr('aria-hidden','false');$("div.nbf_hotelresult[data-hid='"+hid+"'] div.nbf_roomprices .nbf_roomrow").not('.selected').css({'display':'none'}).removeClass('hidden').slideDown(300);$(document).trigger('showmore.nbf',[elem]);});$(document).on('click',".nbf_hidemore,div.nbf_addprod_hotelcontainer div.nbf_addprod_hideopts",function(){var elem=$(this),hid=elem.attr("data-hid");elem.hide().attr('aria-hidden','true');if(!$("div.nbf_hotelresult[data-hid='"+hid+"'] div.nbf_roomprices .nbf_roomrow.selected").length){$("div.nbf_hotelresult[data-hid='"+hid+"'] div.nbf_roomprices .nbf_roomrow:not(:first)").slideUp(100,function(){$(this).addClass('hidden');});}else{$("div.nbf_hotelresult[data-hid='"+hid+"'] div.nbf_roomprices .nbf_roomrow").not('.selected').slideUp(100,function(){$(this).addClass('hidden');});} $(".nbf_showmore[data-hid='"+hid+"'],div.nbf_addprod_moreopts[data-hid='"+hid+"']").css({"display":"inline-block","*display":"inline","zoom":1}).attr('aria-hidden','false');$(document).trigger('hidemore.nbf',[elem]);});$('.nbf_hotelresult').each(function(){$(this).children('.nbf_directions').css('min-height',$(this).find('.nbf_resultspriceelements').height()+10);});$('.nbf_flightresult').each(function(){$(this).children('.nbf_directions').css('min-height',$(this).find('.nbf_resultspriceelements').height()+10);});$('.nbf_ferryresult').each(function(){$(this).children('.nbf_directions').css('min-height',$(this).find('.nbf_resultspriceelements').height()+10);});$(document).on("change simclick",".nbf_hotelroomsarea input.nbf_roomopt",function(e){var thisroom=$(this);var roomstable=thisroom.parents("div.nbf_roomprices");var roomNum=roomstable.attr('data-roomnum');var travelrequestid=roomstable.attr("data-tid");var hotelhash=roomstable.attr("data-hid");var hotelroomcostdata=nbf_hotelcostings[travelrequestid][hotelhash];var travelresultid=thisroom.val();var thisroomcostdata=$.extend(true,{},hotelroomcostdata[travelresultid]);thisroomcostdata.cost=thisroomcostdata.cost[roomNum];thisroomcostdata.discount=thisroomcostdata.discount[roomNum];thisroomcostdata.points=thisroomcostdata.points[roomNum];thisroomcostdata.pointsvalue=thisroomcostdata.pointsvalue[roomNum];var noHighlight=thisroom.parents('.nbf_roomrow').hasClass('noHighlight');if(!noHighlight){roomstable.parents("div.nbf_hotelresult").find("div.nbf_hotel_avgprpn").html("");roomstable.parents("div.nbf_hotelresult").find("div.nbf_hotel_avgpp").html("");roomstable.parents("div.nbf_hotelresult").find("div.nbf_product_discount").html("");roomstable.parents("div.nbf_hotelresult").find("div.nbf_hotel_hotelonly_cost").html("");roomstable.parents("div.nbf_hotelresult").find("div.nbf_product_total").html("");roomstable.find('.nbf_roomrow').removeClass("selected");thisroom.parents('.nbf_roomrow').addClass("selected");roomstable.find(".nbf_roomoption_price").each(function(index,elem){var currroom=$(elem).parent().find("input.nbf_roomopt");if(currroom.length){if(currroom.attr("id")===thisroom.attr("id")){$(elem).html(trjs_selected);}else{var currroompricedata=$.extend(true,{},hotelroomcostdata[currroom.val()]);currroompricedata.cost=currroompricedata.cost[roomNum];currroompricedata.discount=currroompricedata.discount[roomNum];currroompricedata.points=currroompricedata.points[roomNum];currroompricedata.pointsvalue=currroompricedata.pointsvalue[roomNum];$(elem).html(RewardPoints.displayDifference(thisroomcostdata,currroompricedata));}}});var hotelcost=0.0;var hoteldiscount=0.0;var hotelpoints=0;var hotelpointsvalue=0.0;var assoccost=null;var assocdiscount=null;var assocpoints=null;var assocpointsvalue=null;var allselectedroomoptions=roomstable.parents("div.nbf_hotelresult").find(".selected input.nbf_roomopt");allselectedroomoptions.each(function(){var travelresultid=$(this).val();var thisRoomNum=parseInt($(this).parents('.nbf_roomprices').attr('data-roomnum'),10);var thisroomcostdata=$.extend(true,{},hotelroomcostdata[travelresultid]);hotelcost+=parseFloat(thisroomcostdata.cost[thisRoomNum]);hoteldiscount+=parseFloat(thisroomcostdata.discount[thisRoomNum]);hotelpoints+=parseFloat(thisroomcostdata.points[thisRoomNum]);hotelpointsvalue+=parseFloat(thisroomcostdata.pointsvalue[thisRoomNum]);});var firstroom=allselectedroomoptions.get(0);var firstroomcostdata=hotelroomcostdata[$(firstroom).val()];if(!firstroomcostdata.opaque){if(assoccost===null){assoccost=parseFloat(firstroomcostdata.assoccost);} if(assocdiscount===null){assocdiscount=parseFloat(firstroomcostdata.assocdiscount);} if(assocpoints===null){assocpoints=parseFloat(firstroomcostdata.assocpoints);} if(assocpointsvalue===null){assocpointsvalue=parseFloat(firstroomcostdata.assocpointsvalue);}} var hotelarea=roomstable.parents('.nbf_hotelroomsarea');clearTimeout(hotelarea.data('hotelcosthtmlbuffer'));hotelarea.data('hotelcosthtmlbuffer',setTimeout(function(){if(hotelroomcostdata.selected.cost===0){var attr={"a":"nbf","type":"hotelcosthtml","discount":hoteldiscount?(hotelcost+hoteldiscount+(assoccost+assocdiscount)):0,"total":hotelcost,"points":hotelpoints,"pointsvalue":hotelpointsvalue,"numrooms":nbf_numrooms,"numnights":nbf_numnights,"numpeople":nbf_numpeople,"assoccost":assoccost,"assocdiscount":assocdiscount,"assocpoints":assocpoints,"assocpointsvalue":assocpointsvalue};$.getJSON("index.html",attr,function(data){roomstable.parents("div.nbf_hotelresult").find("div.nbf_hotel_avgprpn").html(data.prpncost);roomstable.parents("div.nbf_hotelresult").find("div.nbf_hotel_avgpp").html(data.ppcost);if(data.discount){roomstable.parents("div.nbf_hotelresult").find("div.nbf_product_discountline").show() roomstable.parents("div.nbf_hotelresult").find("div.nbf_product_discount").html(data.discount).show();roomstable.parents("div.nbf_hotelresult").find("div.nbf_product_discounted").show() roomstable.parents("div.nbf_hotelresult").find("div.nbf_product_not_discounted").hide()}else{roomstable.parents("div.nbf_hotelresult").find("div.nbf_product_discountline").hide();roomstable.parents("div.nbf_hotelresult").find("div.nbf_product_discount").hide();roomstable.parents("div.nbf_hotelresult").find("div.nbf_product_discounted").hide() roomstable.parents("div.nbf_hotelresult").find("div.nbf_product_not_discounted").show()} roomstable.parents("div.nbf_hotelresult").find("div.nbf_product_total").html(data.total);roomstable.parents("div.nbf_hotelresult").find("div.nbf_hotel_hotelonly_cost").html(data.hotelonlycost);if($('.nbf_product_monthly').length){roomstable.parents("div.nbf_hotelresult").find("div.nbf_product_monthly").html(data.monthly);}});}else{var attr={};var diff=(hotelcost-hotelroomcostdata.selected.cost);attr.a="nbf";attr.type="hoteldiffhtml";attr.selectedhotel=hotelroomcostdata.selected;attr.discount=(hotelcost+hoteldiscount);attr.total=hotelcost;attr.points=hotelpoints;attr.pointsvalue=hotelpointsvalue;attr.numpeople=nbf_numpeople;$.getJSON("index.html",attr,function(data){roomstable.parents("div.nbf_hotelresult").find("div.nbf_product_total").html(data.total);roomstable.parents("div.nbf_hotelresult").find("div.nbf_fancy_product_results_ppcost").html(data.diffpp);if(diff===0){roomstable.parents("div.nbf_hotelresult").find("div.nbf_hotel_avgpp_text").html("");}else{roomstable.parents("div.nbf_hotelresult").find("div.nbf_hotel_avgpp_text").html(trjs_avgppp);}});}},100));} if(e.type!=='simclick'){$(document).trigger('selectroom.nbf',[thisroom,roomstable]);}});$(document).on('click','.nbf_resultsareasorting_tab [data-sorttype]',function(e){e.preventDefault();$('#nbf_sortby').val($(this).attr('data-sorttype')).trigger('updatesorttabs');if($('#nbf_container.flight').length)nbf_flight_applyfilters(1);if($('#nbf_container.hotel').length)nbf_hotel_applyfilters(1);if($('#nbf_container.ferry').length)nbf_ferry_applyfilters(1);});$(document).on('updatesorttabs','#nbf_sortby',function(e){var resultsareasorting=$('#nbf_resultsareasorting');resultsareasorting.find('.nbf_resultsareasorting_tabselected').removeClass('nbf_resultsareasorting_tabselected');resultsareasorting.find('a[data-sorttype="'+$(this).val()+'"]').parents('.nbf_resultsareasorting_tab').first().addClass('nbf_resultsareasorting_tabselected');$('.nbf_resultsarea_sortingdescription').addClass('hidden');$('.nbf_resultsarea_sortingdescription[data-sorttype="'+$(this).val()+'"]').removeClass('hidden');});$(document).on("click","img.nbf_hotelimg_mediumsquare",function(){var newSrc=$(this).attr("data-img");var image=new Image();image.src=newSrc;image.onload=function(){$("div.nbf_hotelmainimg_default img").attr("src",newSrc).fadeIn(200);};$("div.nbf_hotelmainimg_default img").fadeOut(100);});$(document).on("click","div.nbf_hoteltab, div.nbf_flighttab",function(){$(this).siblings("div.nbf_hoteltab, div.nbf_flighttab").removeClass("nbf_tabactive");$(this).addClass("nbf_tabactive");$elem=$("#"+$(this).attr("rel"));var tabpanes=$("div.nbf_tabcontents");var visibletabpanes=tabpanes.filter(":visible");if(!visibletabpanes.length){visibletabpanes=tabpanes;} visibletabpanes.fadeOut(200,function(){$elem.fadeIn(300);});});$(document).on("click","div.nbf_flightinfo_icon,div.nbf_flightupgrade_moreinfo",function(){var e=$(this);$.get("index.html",{"a":"nbf","type":"flightdetails","tr":$(this).attr("data-tr"),"out":$(this).attr("data-out"),"ret":$(this).attr("data-ret")},function(data){nbf_productdetail_lightbox(data,e);});});$(document).on('click',"div.nbf_hotelinfo_icon",function(){nbf_lightbox("",$(this));$.get("index.html",{"a":"nbf","tr":$(this).attr("data-tr"),"type":"hoteldetails","hotelid":$(this).attr("data-hid")},function(data){$("div#nbf_lightbox_content").html(data);});return false;});$(document).on('click','.nbf_addprod_hotelinfo_icon',function(){nbf_lightbox("",$(this));$.get("index.html",{"a":"nbf","tr":"NONE","type":"hoteldetails","hotelid":$(this).attr("data-hid")},function(data){$("div#nbf_lightbox_content").html(data);});return false;});$(document).on('click',"div.nbf_hotelimgarea,div.nbf_hoteldetailsarea,div.nbf_hotelmainimg img,div.nbf_hotelsubimgs img,a.nbf_moredetails,div.nbf_hotelresult div.nbf_hotelname",function(e){var targetElem=$(e.target);if(targetElem.prop('tagName')==='A'){if(!targetElem.hasClass('nbf_moredetails')){return true;}} var containerElem=targetElem.parents('div').first();var boards=[];$("#nbf_filters_boards input:checked").each(function(){boards[boards.length]=$(this).val();});if(boards.length===0){boards[0]="NONE";} nbf_lightbox("
",$(this));var attr={"a":"nbf","type":"hoteldetails","tr":$(this).parents("div.nbf_hotelresult").attr("data-tr"),"hotelid":$(this).parents("div.nbf_hotelresult").attr("data-hid"),"filter_board":boards,"defaultimage":$(this).attr("data-img"),"selectedtab":containerElem.attr('data-selectedtab')};if($(this).parents("div.nbf_hotelresult.nbf_addprod_hotelopt").length>0){attr.tr="NONE";} $.get("index.html",attr,function(data){$("div#nbf_lightbox_content").html(data);});return false;});var paneSearchAgain=$('#pane-searchagain').on("click",function(e){var elem=$(e.target);if(elem.is('.btn-close')){e.preventDefault();nbf_toggle_changesearch(null,null,$(this));return;} return;});$('#nbf_container').on("click",function(e){var elem=$(e.target),changesearchelem=elem.closest('.nbf_button_changesearch');if(changesearchelem.length>0){e.preventDefault();if(typeof nbf_changelink!='undefined'){if(typeof nbf_changelink_postfields!='undefined'){var html="
";$.each(nbf_changelink_postfields,function(k,v){html+=""});html+="
";var form=$(html);$('body').append(form);form.submit();}else{document.location.href=nbf_changelink;}}else{var forcechangesearch=(changesearchelem.attr('data-forcechangesearch')!=='false');nbf_toggle_changesearch(forcechangesearch);} return;} if(elem.is('.nbf_button_filters')||elem.parent().is('.nbf_button_filters')){e.preventDefault();nbf_show_filters();return;} if(elem.is('.nbf_button_basket')||elem.parent().is('.nbf_button_basket')){e.preventDefault();nbf_show_basket();return;} return;});$(document).on("change","#nbf_insurance_sort",function(){if(nbf_applyfilters_timeout!=null){clearTimeout(nbf_applyfilters_timeout);} if(parseInt($('.responsive_state').css("zIndex"),10)<=0)nbf_applyfilters_timeout=window.setTimeout(function(){nbf_insurance_applyfilters(1);},1500);});$(document).on("change","#nbf_filtersection.nbf_flightfilters input,#nbf_filtersection.nbf_flightfilters select",function(){if(nbf_lastResponsiveMode=="mobile")return;if(nbf_applyfilters_timeout!=null){clearTimeout(nbf_applyfilters_timeout);} if(parseInt($('.responsive_state').css("zIndex"),10)<=0)nbf_applyfilters_timeout=window.setTimeout(function(){nbf_flight_applyfilters(1);},1500);});$('#nbf_filtersection').on('change','#nbf_filters_airlines :input[type=checkbox]',function(){$("#filter_deeplinkedresults").prop("checked",false);});$(document).on("change","#nbf_filtersection.nbf_ferryfilters input,#nbf_filtersection.nbf_ferryfilters select",function(){if(nbf_lastResponsiveMode=="mobile")return;if(nbf_applyfilters_timeout!=null){clearTimeout(nbf_applyfilters_timeout);} if(parseInt($('.responsive_state').css("zIndex"),10)<=0)nbf_applyfilters_timeout=window.setTimeout(function(){nbf_ferry_applyfilters(1);},1500);});$(document).on("click","#nbf_filters_boards,#nbf_filters_rate_type,#nbf_filters_ratings,#nbf_filters_tags,#nbf_filter_offer",function(){if(nbf_applyfilters_timeout!=null){clearTimeout(nbf_applyfilters_timeout);} if(parseInt($('.responsive_state').css("zIndex"),10)<=0)nbf_applyfilters_timeout=window.setTimeout(function(){nbf_hotel_applyfilters(1);},1500);});$(document).on("change","#nbf_filter_hotelsupplier,#nbf_hotel_sort,#nbf_filter_location,#nbf_filter_hotel_chain",function(){if(nbf_applyfilters_timeout!=null){clearTimeout(nbf_applyfilters_timeout);} if(parseInt($('.responsive_state').css("zIndex"),10)<=0)nbf_applyfilters_timeout=window.setTimeout(function(){nbf_hotel_applyfilters(1);},1500);});$(document).on("keyup","#nbf_filter_hotelname",function(e){if(e.keyCode>0&&nbf_applyfilters_timeout!=null){clearTimeout(nbf_applyfilters_timeout);} if(parseInt($('.responsive_state').css("zIndex"),10)<=0)nbf_applyfilters_timeout=window.setTimeout(function(){nbf_hotel_applyfilters(1);},1500);});$(document).on("click","#nbf_cheapflights_showmore",function(){$("#nbf_cheapflights_tbl tr:hidden").not('.nbf_otherDay').show();$(this).hide();});$(document).on("click","div.nbf_dateschange_opt",function(){$("div.nbf_dateschange_container div.nbf_dateschange_opt").removeClass("selected").removeClass('nbf_dateschange_prev').removeClass('nbf_dateschange_next');$(this).addClass("selected");$(this).prev().addClass('nbf_dateschange_prev');$(this).next().addClass('nbf_dateschange_next');nbf_flight_applyfilters(1);});$("#nbf_filters_showmap div.nbf_image_hotel_minimap").click(function(){nbf_hotelresultsmap();});$("#nbf_close_map").click(function(){$("#nbf_hotelresultsmapcntr").hide();$("#nbf_hotelresultsmap").html("");$("#nbf_hotelresultsmap_container").html("");});$(document).on('click','div.nbf_roomprices div.nbf_roomrow',function(e){if($(e.target).prop('tagName')!=='INPUT'){$(this).find("input[type=radio]").click();}});$(document).on("click",".nbf_attractionoptionarea label",function(){$(this).parent().find("label").removeClass("selected");$(this).addClass("selected");$(this).closest(".nbf_attraction_result").find('.nbf_attraction_avgpp').html(IBE_NumberFormatter.formatCurrency($(this).attr("data-ppcost")));$(this).closest(".nbf_attraction_result").find('.nbf_product_total > div').html(IBE_NumberFormatter.formatCurrency($(this).attr("data-totalcost")));});$(document).on("click","div.nbf_showmore_attractions",function(){$(this).hide();$("div.nbf_hidemore_attractions[data-hid='"+$(this).attr("data-hid")+"']").css({"display":"inline-block","*display":"inline","zoom":1});$("div.nbf_attraction_result[data-hid='"+$(this).attr("data-hid")+"'] label.nbf_attractionoptionrow.hidden").css({"display":"block","*display":"inline","zoom":1});;});$(document).on("click","div.nbf_hidemore_attractions",function(){$(this).hide();$("div.nbf_attraction_result[data-hid="+$(this).attr("data-hid")+"] label.nbf_attractionoptionrow.hidden").fadeOut(100);$("div.nbf_showmore_attractions[data-hid="+$(this).attr("data-hid")+"],div.nbf_addprod_moreopts[data-hid="+$(this).attr("data-hid")+"]").css({"display":"inline-block","*display":"inline","zoom":1});});$(document).on("click",".nbf_attractionimgarea, nbf_attractiondescarea, a.nbf_attraction_moredetails",function(){nbf_lightbox("",$(this));attr={a:"nbf",type:"attractiondetails",tr:travelrequestid,hash:$(this).parents("div.nbf_attraction_result").attr("data-hid")};$.get("index.html",attr,function(data){$("div#nbf_lightbox_content").html(data);});return false;});$(document).on("click",".nbf_lightbox img.nbf_attractionimg_mediumsquare",function(){var newSrc=$(this).attr("data-img");var image=new Image();image.src=newSrc;image.onload=function(){$(".nbf_lightbox div.nbf_attractionmainimg img").attr("src",newSrc).fadeIn(200);};$(".nbf_lightbox div.nbf_attractionmainimg img").fadeOut(200);});if($("#nbf_hotelresultsmapcntr").is(":visible")){nbf_hotelresultsmap();} var favBtn=null;$(document).on('click','.nbf_journey_favourite.add',function(){favBtn=this;var treq=$(favBtn).attr('data-treq');var hotelhash=$(favBtn).attr('data-hotelhash');$.get("index.html?a=nbf&type=favourite_journey&treq="+treq+"&hotelhash="+hotelhash,function(html){nbf_lightbox(html);});});$(document).on('click','.nbf_journey_favourite.remove',function(){var btn=this;var treq=$(btn).attr('data-treq');var hotelhash=$(btn).attr('data-hotelhash');$.get("index.html?a=nbf&type=favourite_journey_remove&treq="+treq+"&hotelhash="+hotelhash,function(html){$(btn).parent().find('.nbf_journey_favourite, .bf_favourite').toggle();});});$(document).on('submit','#nbf_lightbox_container #nbf_favourite_journey_form',function(e){e.preventDefault();$('#nbf_lightbox_content .errors').remove();var treq=$('input[name="treq"]',this).val();var name=$('input[name="favourite"]',this).val();var hotelhash=$('input[name="hotelhash"]',this).val();if(hotelhash==='undefined'){hotelhash="";} var who=$('input[name="who"]',this).filter(':checked').val();var profileuserid=$('input[name="profileuserid"]',this).val();$.getJSON("index.html",{a:'nbf',type:"favourite_journey_submit",treq:treq,name:name,hotelhash:hotelhash,who:who,profileuserid:profileuserid},function(data){if(data.status===1){$('#nbf_lightbox_content').html(data.html);$(favBtn).parent().find('.nbf_journey_favourite, .bf_favourite').toggle();}else{$('#nbf_lightbox_content h2').after(data.html);}});});$(document).on('click','.contentboxcollapser > h3',function(e){if($(this).parent().hasClass("collapsed")){$(this).parent().removeClass("collapsed").addClass("expanded");}else{$(this).parent().removeClass("expanded").addClass("collapsed");}});});$(function(){var tooltips=$('.tooltip');if(typeof tooltips.tooltip==='function'){tooltips.tooltip();}});function nbf_insurancePolicy(id){$.get("index.html?"+id+"&brief=1",function(content){nbf_lightbox(content);});} function nbf_insuranceProductDocument(id){$.get("index.html?"+id+"&ipd=1",function(content){nbf_lightbox(content);});} function nbf_attraction_applyfilters(page,force){if(!force&&nbf_applyfilters_timeout!=null){clearTimeout(nbf_applyfilters_timeout);} if(!force){nbf_applyfilters_timeout=window.setTimeout(function(){nbf_attraction_applyfilters(page,true);},1500);return;} var filter_name=$('#nbf_filter_name').val();var filter_sort=$('#nbf_filter_sort').val();var filter_supp=$('#nbf_filter_supplier').val();var filter_quote=$('#nbf_filter_quote').val();var filter_lowprice=$('#lowestfilterprice').html();var filter_highprice=$('#highestfilterprice').html();var filter_date=[];$("input[name='filter_date']:checked").each(function(){filter_date[filter_date.length]=$(this).val();});attr={a:"nbf",type:"attractionresults",filter_name:filter_name,filter_date:filter_date,filter_sort:filter_sort,filter_supp:filter_supp,filter_quote:filter_quote,filter_lowprice:filter_lowprice,filter_highprice:filter_highprice,tr:travelrequestid,page:page};$("#nbf_filters_loading").show();$("#nbf_resultscontainer").hide();if(typeof(Storage)!=undefined){try{sessionStorage.setItem(travelrequest_id+"-filters",JSON.stringify(attr));}catch(domException){}} $.get("index.html",attr,function(response){$("#nbf_resultscontainer").html(response);$("#nbf_filters_loading").hide();$("#nbf_resultscontainer").show();});} function nbf_attraction_clearfilters(page){$('#nbf_filter_name').val("");$('#nbf_filter_sort').val("");$('#nbf_filter_supplier').val("");$('#nbf_filter_quote').val("");$("input[name='filter_date']:checked").click();if($('#nbf_filter_price').length){$('#nbf_filter_price').val([nbf_init_lowestCost,nbf_init_highestCost]);} if(nbf_applyfilters_timeout!=null){clearTimeout(nbf_applyfilters_timeout);} nbf_attraction_applyfilters(page,true);} function nbf_rail_applyfilters(single,first,all){attr={a:"nbf",type:"railresults",filter_single:(single?1:0),filter_first:(first?1:0),filter_all:(all?1:0),tr:travelrequestid};$("#nbf_filters_loading").show();$("#nbf_resultscontainer").hide();if(typeof(Storage)!=undefined){try{sessionStorage.setItem(travelrequest_id+"-filters",JSON.stringify(attr));}catch(domException){}} $.get("index.html",attr,function(response){$("#nbf_resultscontainer").html(response);$("#nbf_filters_loading").hide();$("#nbf_resultscontainer").show();});nbf_show_main();} function nbf_hotelresultsmap(travelrequestid){if(typeof travelrequestid==='undefined'&&typeof travelrequest_id!=='undefined'){travelrequestid=travelrequest_id;} boards=[];$("#nbf_filters_boards input:checked").each(function(){boards[boards.length]=$(this).val();});if(boards.length==0)boards[0]="NONE";ratings=[];$("#nbf_filters_ratings input:checked").each(function(){ratings[ratings.length]=$(this).val();});if(ratings.length==0)ratings[0]="NONE";tags=[];$("#nbf_filters_tags input.nbf_hotel_tag:checked").each(function(){tags[tags.length]=$(this).val();});if(tags.length==0)tags[0]="NONE";if($("#nbf_filter_offer").is(":checked")){filter_offer=1;} else{filter_offer=0;} attr={"a":"nbf","type":"hotelresultsmap","tr":travelrequestid,"filter_board":boards,"filter_rating":ratings,"filter_tags":tags,"filter_specialoffers":$("#nbf_filter_specialoffers:checked").val(),"filter_location":$("#nbf_filter_location").val(),"filter_name":$("#nbf_filter_hotelname").val(),"filter_offers":filter_offer,"filter_hotelnames":$("#nbf_filter_hotelnames").val(),"filter_hotelsupplier":$("#nbf_filter_hotelsupplier").val(),"filter_mincost":nbf_lowestCost,"filter_maxcost":nbf_highestCost,"sort":$("#nbf_hotel_sort").val(),"currpage":nbf_currpage};if(parseInt($('.responsive_state').css("zIndex"),10)>0){nbf_hotel_applyfilters(1);} $("#nbf_hotelresultsmapcntr").hide();$("#nbf_hotelresultsmap").html("");$("#nbf_hotelresultsmap_container").html("");$("#nbf_map_loading").show();$("#nbf_hotelresultsmapcntr,#nbf_hotelresultsmap").show();$.get("index.html",attr,function(response){$("#nbf_hotelresultsmap_container").html(response);$("#nbf_map_loading").hide();});if(parseInt($('.responsive_state').css("zIndex"),10)>0){$(document).scrollTop($("#nbf_hotelresultsmapcntr").offset().top);}} function nbf_hotel_applyfilters(page,attr){if(typeof attr=='undefined')attr={};nbf_currpage=page;$(window).scrollTop(0);boards=[];$("#nbf_filters_boards input:checked").each(function(){boards[boards.length]=$(this).val();});if(boards.length==0)boards[0]="NONE";ratetypes=[];$("#nbf_filters_rate_type input:checked").each(function(){ratetypes[ratetypes.length]=$(this).val();});if(ratetypes.length==0)ratetypes[0]="NONE";ratings=[];$("#nbf_filters_ratings input:checked").each(function(){ratings[ratings.length]=$(this).val();});if(ratings.length==0)ratings[0]="NONE";tags=[];$("#nbf_filters_tags input.nbf_hotel_tag:checked").each(function(){tags[tags.length]=$(this).val();});if(tags.length==0)tags[0]="NONE";if($("#nbf_filter_offer").is(":checked")){filter_offer=1;} else{filter_offer=0;} attr["a"]="nbf";attr["type"]="hotelresults";attr["tr"]=travelrequest_id;attr["filter_board"]=boards;attr["filter_ratetype"]=ratetypes;attr["filter_rating"]=ratings;attr["filter_tags"]=tags;attr['filter_specialoffers']=$("#nbf_filter_specialoffers:checked").val();attr["filter_location"]=$("#nbf_filter_location").val();attr["filter_name"]=$("#nbf_filter_hotelname").val();attr["filter_offers"]=filter_offer;attr["filter_hotelnames"]=$("#nbf_filter_hotelnames").val();attr["filter_hotelsupplier"]=$("#nbf_filter_hotelsupplier").val();attr["filter_mincost"]=nbf_lowestCost;attr["filter_maxcost"]=nbf_highestCost;attr["filter_roomcode"]=$("#nbf_filter_roomcode").val();attr["filter_hotelchain"]=$("#nbf_filter_hotel_chain").val();attr["sort"]=$("#nbf_hotel_sort").val();attr["page"]=page;$("#nbf_resultsarea").html('
');$("#nbf_filters_loading").show();if(typeof(Storage)!=undefined){try{sessionStorage.setItem(travelrequest_id+"-filters",JSON.stringify(attr));}catch(domException){}} $.get("index.html",attr,function(response){$("#nbf_resultscontainer").html(response);window.setTimeout(function(){$('.nbf_hotelresult').each(function(){$(this).children('.nbf_directions').css('min-height',$(this).find('.nbf_resultspriceelements').height()+10);});},500);$('.preselectedroom').click();nbf_responsive(true);$(document).trigger('applyfiltersfinished.nbf',[page,attr]);});if($("#nbf_hotelresultsmapcntr").is(":visible")){nbf_hotelresultsmap();} nbf_show_main();} function nbf_hotel_clearfilters(page){$("#nbf_filters_boards input:checked").click();$("#nbf_filters_rate_type input:checked").click();$("#nbf_filters_ratings input:checked").click();$("#nbf_filters_tags input.nbf_hotel_tag:checked").click();$("#nbf_filter_offer:checked").click();$("#nbf_filter_hotelname").val("");$("#nbf_filter_specialoffers:checked").val("");$("#nbf_filter_location").val();$("#nbf_filter_hotelsupplier").val("");$("#nbf_filter_hotel_chain").val("");$("#nbf_hotel_sort").val("");if(nbf_applyfilters_timeout!=null){clearTimeout(nbf_applyfilters_timeout);} nbf_hotel_applyfilters(page);} function nbf_flight_applyfilters(page){if(typeof travelrequest_id=='undefined')return;airlines=[];$("#nbf_filters_airlines input:checked").each(function(){airlines[airlines.length]=$(this).val();});if(airlines.length==0)airlines[0]="NONE";depairports=[];$("#nbf_filter_depairport input:checked").each(function(){depairports[depairports.length]=$(this).val();});destairports=[];$("#nbf_filter_destairport input:checked").each(function(){destairports[destairports.length]=$(this).val();});if(destairports.length==0)destairports[0]="NONE";retairports=[];$("#nbf_filter_retairport input:checked").each(function(){retairports[retairports.length]=$(this).val();});if(retairports.length==0)retairports[0]="NONE";cnxairports=[];$("#nbf_filter_cnxairport input:checked").each(function(){cnxairports[cnxairports.length]=$(this).val();});if(cnxairports.length==0)cnxairports[0]="NONE";connections=[];$("#nbf_filter_connections input:checked").each(function(){connections[connections.length]=$(this).val();});if(connections.length==0)connections[0]="NONE";fareclasses=[];$("#nbf_filter_fareclasses input:checked").each(function(){fareclasses[fareclasses.length]=$(this).val();});if(fareclasses.length==0)fareclasses[0]="NONE";faretypes=[];$("#nbf_filter_faretypes input:checked").each(function(){faretypes[faretypes.length]=$(this).val();});if(faretypes.length==0)faretypes[0]="NONE";baggage=[];$("#nbf_filter_baggage input:checked").each(function(){baggage[baggage.length]=$(this).val();});if(baggage.length==0)baggage[0]="NONE";faregroups=[];$("#nbf_filter_faregroups input:checked").each(function(){faregroups[faregroups.length]=$(this).val();});if(faregroups.length==0)faregroups[0]="NONE";var attr={"a":"nbf","type":"flightresults","tr":travelrequest_id,"filter_airlines":airlines,"filter_depairport":depairports,"filter_destairport":destairports,"filter_cnxairport":cnxairports,"filter_retairport":retairports,"filter_connections":connections,"filter_outboundhour_from":parseInt(nbf_lowestoutboundhour,10),"filter_outboundhour_to":parseInt(nbf_highestoutboundhour,10),"filter_returnhour_from":parseInt(nbf_lowestreturnhour,10),"filter_returnhour_to":parseInt(nbf_highestreturnhour,10),"filter_mincost":nbf_lowestCost,"filter_maxcost":nbf_highestCost,"filter_minfarecost":nbf_lowestfare,"filter_maxfarecost":nbf_highestfare,"filter_mintaxcost":nbf_lowesttax,"filter_maxtaxcost":nbf_highesttax,"filter_minduration":parseInt(nbf_lowestduration,10),"filter_maxduration":parseInt(nbf_highestduration,10),"filter_mincnxtime":parseInt(nbf_lowestcnxtime,10),"filter_maxcnxtime":parseInt(nbf_highestcnxtime,10),"filter_faretypes":faretypes,"filter_baggage":baggage,"filter_fareclasses":fareclasses,"filter_faregroups":faregroups,"filter_flightsupplier":$("#filter_flightsupplier").val(),"filter_dateout_override":$('#filter_dateout_override').val(),"filter_dateret_override":$('#filter_dateret_override').val(),"filter_deeplinkedresults":$('#filter_deeplinkedresults:checked').length,"filter_quote":$('#filter_quote:checked').val(),"sort":$("#nbf_sortby").val(),"page":page};if($("div.nbf_dateschange_opt.selected").attr("data-out")>0){attr.filter_dateout_override=$("div.nbf_dateschange_opt.selected").attr("data-out");} if($("div.nbf_dateschange_opt.selected").attr("data-ret")>0){attr.filter_dateret_override=$("div.nbf_dateschange_opt.selected").attr("data-ret");} $("#nbf_resultsarea").html('
');$("#nbf_filters_loading").show();if(typeof(Storage)!=undefined){try{sessionStorage.setItem(travelrequest_id+"-filters",JSON.stringify(attr));}catch(domException){}} $.get("index.html",attr,function(response){$("#nbf_resultscontainer").html(response);window.setTimeout(function(){$('.nbf_flightresult').each(function(){$(this).children('.nbf_directions').css('min-height',$(this).find('.nbf_resultspriceelements').height()+10);});},500);$(document).trigger('applyfiltersfinished.nbf',[page,attr]);});nbf_show_main();} function nbf_flight_clearfilters(page){if(typeof travelrequest_id=='undefined')return;$("#nbf_filters_airlines input:checked").click();$("#nbf_filter_depairport input:checked").click();$("#nbf_filter_destairport input:checked").click();$("#nbf_filter_retairport input:checked").click();$("#nbf_filter_cnxairport input:checked").click();$("#nbf_filter_connections input:checked").click();$("#nbf_filter_fareclasses input:checked").click();$("#nbf_filter_faretypes input:checked").click();$("#nbf_filter_baggage input:checked").click();$("#nbf_filter_faregroups input:checked").click();$("#nbf_filter_quote input:checked").click();if($("#nbf_filter_supplier select").length){$("#nbf_filter_supplier select > option").first().prop("selected",true);} if($("#nbf_filter_sortby select").length){$("#nbf_filter_sortby select > option").first().prop("selected",true);} if($('#nbf_filter_outboundhour_range').length){$('#nbf_filter_outboundhour_range').val([0,24]);} if($('#nbf_filter_returnhour_range').length){$('#nbf_filter_returnhour_range').val([0,24]);} if($('#nbf_filter_fare_range').length){$('#nbf_filter_fare_range').val([nbf_init_lowestfare,nbf_init_highestfare]);} if($('#nbf_filter_tax_range').length){$('#nbf_filter_tax_range').val([nbf_init_lowesttax,nbf_init_highesttax]);} if($('#nbf_filter_duration_range').length){$('#nbf_filter_duration_range').val([nbf_init_lowestduration,nbf_init_highestduration]);} if($('#nbf_filter_cnxtime_range').length){$('#nbf_filter_cnxtime_range').val([nbf_init_lowestcnxtime,nbf_init_highestcnxtime]);} if($('#nbf_filter_price_range').length){$('#nbf_filter_price_range').val([nbf_init_lowestCost,nbf_init_highestCost]);} if(nbf_applyfilters_timeout!=null){clearTimeout(nbf_applyfilters_timeout);} nbf_flight_applyfilters(page,true);} function nbf_transfer_applyfilters(page){$(window).scrollTop(0);var attr={"a":"nbf","type":"transferresults","tr":travelrequest_id,"page":page};if(typeof(Storage)!=undefined){try{sessionStorage.setItem(travelrequest_id+"-filters",JSON.stringify(attr));}catch(domException){}} $("#nbf_resultsarea").hide();$("#nbf_filters_loading").show();$.get("index.html",attr,function(response){$("#nbf_resultscontainer").html(response);$(document).trigger('applyfiltersfinished.nbf',[page,attr]);});nbf_show_main();} function nbf_transfer_clearfilters(){} function nbf_carparking_applyfilters(page){$(window).scrollTop(0);var attr={"a":"nbf","type":"carparkingresults","tr":travelrequest_id,"page":page};if(typeof(Storage)!=undefined){try{sessionStorage.setItem(travelrequest_id+"-filters",JSON.stringify(attr));}catch(domException){}} $("#nbf_resultsarea").hide();$("#nbf_filters_loading").show();$.get("index.html",attr,function(response){$("#nbf_resultscontainer").html(response);$(document).trigger('applyfiltersfinished.nbf',[page,attr]);});nbf_show_main();} function nbf_ferry_applyfilters(page){if(typeof travelrequest_id==='undefined')return;var depairports=[];$("#nbf_filter_depairport input:checked").each(function(){depairports[depairports.length]=$(this).val();});var destairports=[];$("#nbf_filter_destairport input:checked").each(function(){destairports[destairports.length]=$(this).val();});if(destairports.length===0)destairports[0]="NONE";var retdepports=[];$("#nbf_filter_retdepport input:checked").each(function(){retdepports[retdepports.length]=$(this).val();});if(retdepports.length===0)retdepports[0]="NONE";var retdestports=[];$("#nbf_filter_retdestport input:checked").each(function(){retdestports[retdestports.length]=$(this).val();});if(retdestports.length===0)retdestports[0]="NONE";var attr={"a":"nbf","type":"ferryresults","tr":travelrequest_id,"filter_depairport":depairports,"filter_destairport":destairports,"filter_retdepport":retdepports,"filter_retdestport":retdestports,"filter_outboundhour_from":parseInt(nbf_lowestoutboundhour,10),"filter_outboundhour_to":parseInt(nbf_highestoutboundhour,10),"filter_returnhour_from":parseInt(nbf_lowestreturnhour,10),"filter_returnhour_to":parseInt(nbf_highestreturnhour,10),"filter_mincost":nbf_lowestCost,"filter_maxcost":nbf_highestCost,"filter_ferrysupplier":$("#filter_ferrysupplier").val(),"filter_dateout_override":$('#filter_dateout_override').val(),"filter_dateret_override":$('#filter_dateret_override').val(),"filter_bysearchedroute":nbf_filterBySearchedRoute,"sort":$("#nbf_sortby").val(),"page":page};if($("div.nbf_dateschange_opt.selected").attr("data-out")>0){attr.filter_dateout_override=$("div.nbf_dateschange_opt.selected").attr("data-out");} if($("div.nbf_dateschange_opt.selected").attr("data-ret")>0){attr.filter_dateret_override=$("div.nbf_dateschange_opt.selected").attr("data-ret");} $("#nbf_resultsarea").html('
');$("#nbf_filters_loading").show();if(typeof(Storage)!=undefined){try{sessionStorage.setItem(travelrequest_id+"-filters",JSON.stringify(attr));}catch(domException){}} $.get("index.html",attr,function(response){$("#nbf_resultscontainer").html(response);window.setTimeout(function(){$('.nbf_ferryresult').each(function(){$(this).children('.nbf_directions').css('min-height',$(this).find('.nbf_resultspriceelements').height()+10);});},500);$(document).trigger('applyfiltersfinished.nbf',[page,attr]);if(!nbf_filterBySearchedRoute){$('#nbf_showaltroutes_clearfilters').hide();} nbf_filterBySearchedRoute=false;});nbf_show_main();} function nbf_ferry_clearfilters(page){if(typeof travelrequest_id=='undefined')return;$("#nbf_filter_depairport input:checked").click();$("#nbf_filter_destairport input:checked").click();$("#nbf_filter_retdepport input:checked").click();$("#nbf_filter_retdestport input:checked").click();if($("#filter_ferrysupplier select").length){$("#filter_ferrysupplier select > option").first().prop("selected",true);} if($("#nbf_filter_sortby select").length){$("#nbf_filter_sortby select > option").first().prop("selected",true);} if($('#nbf_filter_outboundhour_range').length){$('#nbf_filter_outboundhour_range').val([0,24]);} if($('#nbf_filter_returnhour_range').length){$('#nbf_filter_returnhour_range').val([0,24]);} if($('#nbf_filter_price_range').length){$('#nbf_filter_price_range').val([nbf_init_lowestCost,nbf_init_highestCost]);} if(nbf_applyfilters_timeout!=null){clearTimeout(nbf_applyfilters_timeout);} nbf_ferry_applyfilters(page,true);} function nbf_printcontent(title,content){$('#printingiframe').remove();$("body").prepend('');var printframe=window.frames["printingiframe"];var printdoc=printframe.document;linkstyles=$("
").append($("link[type=text\\/css][rel=stylesheet]").clone());pagestyles=$("
").append($("style").clone());printdoc.open();printdoc.write(''+title+'');printdoc.write(linkstyles.html());printdoc.write(pagestyles.html());printdoc.write(content);printdoc.write('');printdoc.close();} function nbf_mobile_closelightbox(){$(document).trigger('lightboxclose:nbf',[$('#nbf_lightbox_mobile_container')]);$("#nbf_lightbox_mobile_container").remove();$('#nbf_pagepanes_main').show();nbf_restoreScroll();$(document).trigger('NBF_Lightbox_Close');} function nbf_closelightbox(callback){if(parseInt($('.responsive_state').css("zIndex"),10)>0){nbf_mobile_closelightbox();}else{$('#nbf_lightbox_container').stop().fadeOut(200,function(){$('#nbf_lightbox_bg').stop().fadeOut(200,function(){$(document).trigger('lightboxclose:nbf',[$('#nbf_lightbox_container')]);$("#nbf_lightbox_container,#nbf_lightbox_bg").remove();if(typeof callback=='function'){callback.call(this);}});});$(document).trigger('NBF_Lightbox_Close');}} function nbf_lightbox_switch_plain(){$bl=$("td.nbf_lightbox.nbf_cost_bl");$b=$("td.nbf_lightbox.nbf_cost_b");$br=$("td.nbf_lightbox.nbf_cost_br");$bl.addClass("nbf_bl");$bl.removeClass("nbf_cost_bl");$b.addClass("nbf_b");$b.removeClass("nbf_cost_b");$br.addClass("nbf_br");$br.removeClass("nbf_cost_br");} function nbf_lightbox_switch_productdetail(){$bl=$("td.nbf_lightbox.nbf_bl");$b=$("td.nbf_lightbox.nbf_b");$br=$("td.nbf_lightbox.nbf_br");$bl.addClass("nbf_cost_bl");$bl.removeClass("nbf_bl");$b.addClass("nbf_cost_b");$b.removeClass("nbf_b");$br.addClass("nbf_cost_br");$br.removeClass("nbf_br");} function nbf_modal_box(content){if($("div#nbf_lightbox_container:visible").length!=0){nbf_closelightbox();} $("body").prepend('
');$("body").prepend('
'+content+'
');var win=$(window);var lightboxcontainer=$('#nbf_lightbox_container');lightboxcontainer.css({"top":(win.scrollTop()+100),"left":((win.width()-lightboxcontainer.outerWidth())/2),"padding-bottom":100});$('#nbf_lightbox_bg').fadeIn(100,function(){$('#nbf_lightbox_bg').css({"-ms-filter":"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)","filter":"alpha(opacity=50)"});lightboxcontainer.fadeIn(200);});lightboxcontainer.on('click','#nbf_lightbox_close, #nbf_lightbox_bg, .nbfjs_lightbox_close',function(){nbf_closelightbox();});$(document).trigger('NBF_Lightbox_Open',[lightboxcontainer]);} function nbf_lightbox(content,element,fullwidth){if(content==null){content='
';} if(parseInt($('.responsive_state').css("zIndex"),10)>0){if($("div#nbf_lightbox_mobile_container").length==0){nbf_wrapBody();nbf_saveScroll();$('.nbf_pagepanes').hide();if(typeof content==='object'){$("body").prepend('
');$('#nbf_lightbox_content').append(content);}else{$("body").prepend('
'+content+'
');} $('#nbf_lightbox_mobile_container').on('click','#nbf_lightbox_close, .nbfjs_lightbox_close',function(e){e.stopPropagation();nbf_mobile_closelightbox();});$(document).trigger('NBF_Lightbox_Open',[$('#nbf_lightbox_mobile_container')]);}}else{if($("div#nbf_lightbox_container:visible").length==0){$("body").prepend('
');if(fullwidth===true){if(typeof content==='object'){$("body").prepend('
');$('#nbf_lightbox_content').append(content);}else{$("body").prepend('
'+content+'
');}} else{if(typeof content==='object'){$("body").prepend('
');$('#nbf_lightbox_content').append(content);}else{$("body").prepend('
'+content+'
');}} var win=$(window);var lightboxcontainer=$('#nbf_lightbox_container');if(window!=window.top&&typeof element!='undefined'){lightboxcontainer.css({"top":(element.offset().top),"left":((win.width()-lightboxcontainer.outerWidth(false))/2),"padding-bottom":100});}else{lightboxcontainer.css({"top":(win.scrollTop()+100),"left":((win.width()-lightboxcontainer.outerWidth(false))/2),"padding-bottom":100});} $('#nbf_lightbox_bg').fadeIn(200,function(){$('#nbf_lightbox_bg').css({"-ms-filter":"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)","filter":"alpha(opacity=50)"});lightboxcontainer.fadeIn(400);});lightboxcontainer.on('click','#nbf_lightbox_close, #nbf_lightbox_bg, .nbfjs_lightbox_close',function(e){e.stopPropagation();nbf_closelightbox();});$(document).trigger('NBF_Lightbox_Open',[lightboxcontainer]);}}} function nbf_updatelightbox(content) {$('#nbf_lightbox_content').html(content);var win=$(window);var lightboxcontainer=$('#nbf_lightbox_container');if(window!=window.top&&typeof element!='undefined'){lightboxcontainer.css({"top":(element.offset().top),"left":((win.width()-lightboxcontainer.outerWidth(false))/2),"padding-bottom":100});}else{lightboxcontainer.css({"top":(win.scrollTop()+100),"left":((win.width()-lightboxcontainer.outerWidth(false))/2),"padding-bottom":100});} $(document).trigger('NBF_Lightbox_UpdateContent');} function nbf_lightbox_isopen() {return($('#nbf_lightbox_content').length>0);} function openCMSLightbox(name,additionalinfo){if(typeof additionalinfo==='undefined'){additionalinfo={};} nbf_lightbox(null);$.ajax({url:"cms.php",data:{a:"ajax",mode:"content",name:name,additionalinfo:additionalinfo},dataType:"json",success:function(html){$('#nbf_lightbox_content').html(html.content);},});} function nbf_productdetail_lightbox(content,element){if(content==null){content='
';} if(parseInt($('.responsive_state').css("zIndex"),10)>0){if($("div#nbf_lightbox_mobile_container").length==0){nbf_wrapBody();nbf_saveScroll();$('.nbf_pagepanes').hide();$("body").prepend('
'+content+'
');$('#nbf_lightbox_close').on("click",function(e){e.stopPropagation();nbf_mobile_closelightbox();});if(element&&element.length){var showtab=element.attr('data-showtab');if(showtab){$('#nbf_lightbox_container').find('.nbf_hoteltab, .nbf_flighttab').filter('[rel="'+showtab+'"]').trigger('click');}}}}else{if($("div#nbf_lightbox_container:visible").length==0){$("body").prepend('
');$("body").prepend('
'+content+'
');if(window!=window.top&&typeof element!='undefined'){$('#nbf_lightbox_container').css({"top":(element.offset().top),"left":(($(window).width()-$('#nbf_lightbox_container').outerWidth(false))/2),"padding-bottom":100});}else{$('#nbf_lightbox_container').css({"top":($(window).scrollTop()+100),"left":(($(window).width()-$('#nbf_lightbox_container').outerWidth(false))/2),"padding-bottom":100});} $('#nbf_lightbox_bg').fadeIn(200,function(){$('#nbf_lightbox_bg').css({"-ms-filter":"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)","filter":"alpha(opacity=50)"});$('#nbf_lightbox_container').fadeIn(400);});$('#nbf_lightbox_close,#nbf_lightbox_bg').on("click",function(e){e.stopPropagation();nbf_closelightbox();});}} if(element&&element.length){var showtab=element.attr('data-showtab');if(showtab){$('#nbf_lightbox_container').promise().done(function(){$('#nbf_lightbox_container').find('.nbf_hoteltab, .nbf_flighttab').filter('[rel="'+showtab+'"]').trigger('click');});}}} function number_format(number,decimals,dec_point,thousands_sep){var n=!isFinite(+number)?0:+number,prec=!isFinite(+decimals)?0:Math.abs(decimals),sep=(typeof thousands_sep==='undefined')?',':thousands_sep,dec=(typeof dec_point==='undefined')?'.':dec_point,s='',toFixedFix=function(n,prec){var k=Math.pow(10,prec);return''+Math.round(n*k)/k;};s=(prec?toFixedFix(n,prec):''+Math.round(n)).split('.');if(s[0].length>3){s[0]=s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,sep);} if((s[1]||'').length0){rwd_carhireShowImpInfo(id);return;} document.getElementById('show-'+id).style.display='none';document.getElementById('hide-'+id).style.display='block';document.getElementById('info-'+id).style.display='block';} function carhireHideImpInfo(id){document.getElementById('show-'+id).style.display='block';document.getElementById('hide-'+id).style.display='none';document.getElementById('info-'+id).style.display='none';} function rwd_carhireShowImpInfo(reqid){nbf_saveScroll();if($('#nbf_pagepanes_impinfo').length){$('#nbf_pagepanes_impcont').html($('#info-'+reqid).html());$('.nbf_pagepanes').hide();$('#nbf_pagepanes_impinfo').show();}else{nbf_wrapBody();$('body').append('
');$('#nbf_impinfo_close').on("click",function(){nbf_close_lightbox_mobile();});$('#nbf_pagepanes_impcont').html($('#info-'+reqid).html());$('.nbf_pagepanes').hide();$('#nbf_pagepanes_impinfo').show();}} function parkingShowImpInfo(id){document.getElementById('show-'+id).style.display='none';document.getElementById('hide-'+id).style.display='block';document.getElementById('info-'+id).style.display='block';} function parkingHideImpInfo(id){document.getElementById('show-'+id).style.display='block';document.getElementById('hide-'+id).style.display='none';document.getElementById('info-'+id).style.display='none';} function insuranceUpdatePrice(id,objectId){if(typeof insuranceDisabledFields=='undefined'){insuranceDisabledFields=new Array();} var selects=document.getElementsByTagName('select');var inputs=document.getElementsByTagName('input');var i;var params='objectId='+objectId+'|';var oldIndex='';for(i=0;i-1){params+=selects[i].name+'='+selects[i].options[selects[i].selectedIndex].value+'|';selects[i].disabled=true;insuranceDisabledFields[insuranceDisabledFields.length]=selects[i];if(selects[i].id==objectId){oldIndex=document.getElementById('hidden_'+objectId).value;document.getElementById('hidden_'+objectId).value=selects[i].selectedIndex;}}} for(i=0;i-1){if(inputs[i].checked){params+=inputs[i].name+'='+inputs[i].value+'|';} inputs[i].disabled=true;insuranceDisabledFields[insuranceDisabledFields.length]=inputs[i];}}} $('#loading_'+id).show();$.ajax({url:'travelreq.php',method:'POST',dataType:'json',data:{a:'ajax_updateInsurance',id:id,params:params,objectId:objectId,oldIndex:oldIndex}}).done(insuranceDataFetched);} function insuranceDataFetched(text){if(Array.isArray(text)){data=text;}else{data=$.parseJSON(text);} var id=data[0];var price=data[1];$('#loading_'+id).hide();for(var i=0;i0){nbf_close_lightbox_mobile();}else{changesearchsection.slideUp('slow',complete);}}}else{if(parseInt($('.responsive_state').css("zIndex"),10)>0){nbf_open_changesearch_mobile();}else{changesearchsection.slideDown('slow',complete);}}} function nbf_close_lightbox_mobile(){$('.nbf_pagepanes').hide();$('#nbf_pagepanes_main').show();nbf_restoreScroll();$(document).trigger('NBF_Lightbox_Close');} function nbf_show_main(){$('.nbf_pagepanes').hide();$('#nbf_pagepanes_main').show();nbf_restoreScroll();} function nbf_open_changesearch_mobile(){nbf_saveScroll();if($('#nbf_pagepanes_sb2').length){$('.nbf_pagepanes').hide();$('#nbf_pagepanes_sb2').show();}else{nbf_wrapBody();$('body').append('
');$('.nbf_pagepanes').hide();$('#nbf_pagepanes_sb2').show();$('#pane-searchagain .btn-close').replaceWith('
');$('#nbf_searchagain_close').on("click",function(){nbf_show_main();});$('#pane-searchagain').css('height','100%').appendTo('#nbf_pagepanes_sb2').show();}} function nbf_show_filters(){nbf_saveScroll();if($('#nbf_pagepanes_filters').length){$('.nbf_pagepanes').hide();$('#nbf_pagepanes_filters').show();}else{nbf_wrapBody();$('body').append('
');$('#nbf_filters_close, .nbf_mobile_apply_filters').on("click",function(){if($('#nbf_container.flight').length)nbf_flight_applyfilters(1);if($('#nbf_container.hotel').length)nbf_hotel_applyfilters(1);if($('#nbf_container.carhire').length)nbf_carhire_applyfilters(1);if($('#nbf_container.rail').length)nbf_show_main();if($('#nbf_container.ferry').length)nbf_ferry_applyfilters(1);});$('#nbf_filters').appendTo($('#nbf_pagepanes_filters'));$('.nbf_pagepanes').hide();$('#nbf_pagepanes_filters').show();}} function nbf_show_basket(){if(typeof hideInterval!='undefined'){clearInterval(hideInterval);} nbf_saveScroll();if($('#nbf_pagepanes_basket').length){$('.nbf_pagepanes').hide();$('#nbf_pagepanes_basket').show();}else{nbf_wrapBody();$('body').append('
');$('#nbf_basket_close').on("click",function(){nbf_show_main();});$('#nbf_cheapestflightscontainer').appendTo($('#nbf_pagepanes_basket'));$('#nbf_basket').appendTo($('#nbf_pagepanes_basket'));$('.nbf_pagepanes').hide();$('#nbf_pagepanes_basket').show();}} jQuery.fn.sort=function(){return this.pushStack([].sort.apply(this,arguments),[]);};function nbf_sortOrder(a,b){return a.getAttribute('data-sort')>b.getAttribute('data-sort')?1:-1;};function nbf_wrapBody(){if(!$('#nbf_pagepanes_main').length){$('body').find("script").remove().end().wrapInner('
');$('#ui-datepicker-div').appendTo($('body'));}} function nbf_saveScroll(){$('body').attr('data-nbf_scroll',$(window).scrollTop());$(window).scrollTop(0);} function nbf_restoreScroll(){$(window).scrollTop($('body').attr('data-nbf_scroll'));} function nbf_register_responsive_callback(callback){if($.inArray(callback,nbf_responsive_callbacks)==-1){nbf_responsive_callbacks[nbf_responsive_callbacks.length]=callback;}} var nbf_lastResponsiveMode=false;function nbf_responsive(force){var responsiveMode='desktop';if(parseInt($('.responsive_state').css('zIndex'),10)>0)responsiveMode='mobile';if((responsiveMode!=nbf_lastResponsiveMode)||force){if(responsiveMode=='mobile'){$('.nbf_hotelsubimgs img').each(function(){this.src=this.src.replace('nbf=squaresmall','nbf=fullsmall');});$('.nbf_hotelsubimgs').addClass('mobile');$("#nbf_cheapflights_tbl tr:hidden").show();$("#nbf_cheapflights_tbl .nbf_otherDay").hide();$('#nbf_cheapflights_showmore').hide();$('body').addClass("mobile");}else{$('.nbf_hotelsubimgs img').each(function(){this.src=this.src.replace('nbf=fullsmall','nbf=squaresmall');});$('.nbf_hotelsubimgs').removeClass('mobile');$('body').removeClass("mobile");} nbf_lastResponsiveMode=responsiveMode;$.each(nbf_responsive_callbacks,function(i,callback){var fn=window[callback];if(typeof fn==='function')fn(responsiveMode);});}} function nbf_sb2_replace_select(){} function nbf_insurance_applyfilters(page){$(window).scrollTop(0);attr={"a":"nbf","type":"insuranceresults","filter_mincost":nbf_lowestCost,"filter_maxcost":nbf_highestCost,"tr":travelrequest_id,"page":page};if(typeof(Storage)!=undefined){try{sessionStorage.setItem(travelrequest_id+"-filters",JSON.stringify(attr));}catch(domException){}} $("#nbf_resultsarea").hide();$("#nbf_filters_loading").show();$.get("index.html",attr,function(response){$("#nbf_resultscontainer").html(response);});nbf_show_main();} function nbf_insurance_clearfilters(){} function nbf_airlinesearch(airline){var searchform=$('#frm-flight, .sb3_flight_form');if(!searchform.length){searchform=$('#frm-flightopenjaw, .sb3_flightopenjaw_form');} if(!searchform.length){searchform=$('#frm-flighthotel, .sb3_flighthotel_form');} if(searchform.length){$('.sb2_airlines:gt(1), .sb3_airline_field_js:gt(1)').remove();if($('.sb2_airlines:last, .sb3_airline_field_js:last').length){$('.sb2_airlines:last, .sb3_airline_field_js:last').val('');$('.sb2_airlines:first, .sb3_airline_field_js:first').val(airline);}else{searchform.append("");} searchform.submit();}} function nbf_airlinefilter(airline,cnx,ignoreApply){var days=$('#nbf_airlinelogo-'+airline).attr('data-days');if(typeof days=="string"){var validDays=days.split(',');var selDay=$('.nbf_dateschange_opt.selected').attr('data-out');if(selDay&&validDays.length>0){var match=false;for(var i in validDays)if(validDays[i]==selDay)match=true;if(!match){$('.nbf_otherDay').css('display','none');$('#nbf_otherDay_'+airline+'_both').css('display','table-row');return;}}} $('.nbf_otherDay').css('display','none');$("#filter_deeplinkedresults").prop("checked",false);$("#nbf_filters_airlines input").prop("checked",false);$("#nbf_filters_airlines input[value="+airline+"]").prop("checked",true);$("#nbf_filter_connections input").prop("checked",false);if(cnx=="direct"){$("#nbf_filter_connections input[value=0]").prop("checked",true);}else if(cnx=="indirect"){$("#nbf_filter_connections input").prop("checked",true);$("#nbf_filter_connections input[value=0]").prop("checked",false);} if(!ignoreApply)nbf_flight_applyfilters(1);} var stopover={selectnights:function(i){var stopoverOption=$('#stopover-'+i);var nights=$('[name="stopoverNights"]',stopoverOption).val();$('.stopover_step1',stopoverOption).hide();$('.stopover_step2',stopoverOption).show();$('.added_nights',stopoverOption).html(nights);},goback:function(i){var stopoverOption=$('#stopover-'+i);$('.stopover_step1',stopoverOption).show();$('.stopover_step2',stopoverOption).hide();}};function fetchHotelGuests(id){var nRooms=$('#sb2_product_rooms').val();$('#resultform'+id).append("");for(var i=1;i<=nRooms;i++){var nAdults=$('#sb2_product_numadults'+i).val();var nChildren=$('#sb2_product_numchildren'+i).val();var nInfants=$('#sb2_product_numinfants'+i).val();if(typeof nAdults!='undefined')$('#resultform'+id).append("");if(typeof nChildren!='undefined')$('#resultform'+id).append("");if(typeof nInfants!='undefined')$('#resultform'+id).append("");} return false;} function changeNumberOfRooms(roomid){var num=$('#numRooms-'+roomid).val();$('#rooms-'+roomid).fadeOut();var room=$('.nbf_roomrow[data-optionid='+roomid+']');var hotel=room.parents('.nbf_hotelresult');updateHotelCosting(hotel);$('#rooms-'+roomid).promise().done(function(){var room=$('.nbf_roomrow[data-optionid='+roomid+']');var hotel=room.parents('.nbf_hotelresult');$('#rooms-'+roomid+' .nbf_roomselection_pax').hide();var pax={'adult':'Adults','child':'Children','infant':'Infants'};var occupancy=[];var paxAlreadyAssignedToRooms=0;$.each(pax,function(k,v){if(typeof occupancy[$('#rooms-'+roomid+' select.num'+v+'Selector').attr('data-roomNum')]=='undefined')occupancy[$('#rooms-'+roomid+' select.num'+v+'Selector').attr('data-roomNum')]={};occupancy[$('#rooms-'+roomid+' select.num'+v+'Selector').attr('data-roomNum')][$('#rooms-'+roomid+' select.num'+v+'Selector').attr('data-paxType')]=$('#rooms-'+roomid+' select.num'+v+'Selector').val();if(typeof $('#rooms-'+roomid+' select.num'+v+'Selector').val()!=='undefined'){paxAlreadyAssignedToRooms+=parseInt($('#rooms-'+roomid+' select.num'+v+'Selector').val());}});if(num!=0){if(!paxAlreadyAssignedToRooms){$.each(pax,function(k,v){var numPax=parseInt(hotel.find(':input[name=num'+v+']').val());var roomNum=1;while(numPax>0){if(typeof occupancy[roomNum]=='undefined')occupancy[roomNum]={};if(typeof occupancy[roomNum][v]=='undefined')occupancy[roomNum][v]=0;if(occupancy[roomNum][v]room.attr('data-maxquantity')||roomNum>num){roomNum=1;}}});} for(var i=1;i<=num;i++){$.each(pax,function(k,v){if(typeof occupancy[i]!='undefined'&&typeof occupancy[i][v]!='undefined'){$('#rooms-'+roomid+'-'+i+' select.num'+v+'Selector').val(occupancy[i][v]);}});$('#rooms-'+roomid+'-'+i).show();} room.addClass('selected');$('#rooms-'+roomid).fadeIn();}else{room.removeClass('selected');} updateHotelCosting(hotel);});} function updateHotelCosting(hotel){if(typeof hotel!='object'){hotel=$('.nbf_hotelresult[data-hid='+hotel+']');} var costing=0;var totalNumPax=0;var pax={'adult':'Adults','child':'Children','infant':'Infants'};hotel.find(".nbf_roomrow").each(function(){var numRooms=$(this).find(':input[class=roomSelector]').first().val();if(numRooms){var room=$(this);var hiddenRoom=$('.nbf_hiddenroomrow[data-optionid='+room.attr('data-optionid')+']');if(typeof room.attr('data-basePrice')!='undefined'){costing+=parseFloat(room.attr('data-basePrice'))*numRooms;} $.each(pax,function(k,v){var numPax=hiddenRoom.find(':input[class=num'+v+'Selector]');if(numPax.length){numPax.each(function(){totalNumPax+=parseInt($(this).val());if(typeof room.attr('data-per'+k)!='undefined'){costing+=parseFloat(room.attr('data-per'+k))*$(this).val();}});}});}});if(totalNumPax){var pp=hotel.find('.nbf_hotel_avgpp .nbf_fancy_product_results_ppcost');if(pp.length){hotel.find('.nbf_hotel_avgprice').show();var cost=parseFloat(costing)/parseFloat(totalNumPax);pp.html(IBE_NumberFormatter.formatCurrency(cost));} var pp=hotel.find('.nbf_product_total .nbf_fancy_product_results_totalcost');if(pp.length){hotel.find('.nbf_product_totalprice').show();var cost=parseFloat(costing);pp.html(IBE_NumberFormatter.formatCurrency(cost));}}else{hotel.find('.nbf_hotel_avgprice').hide();hotel.find('.nbf_product_totalprice').hide();}} function selectRoomsInFlow(hotelcode){var totalRoomsSelected=0;var hotel=$('.nbf_hotelresult[data-hid='+hotelcode+']');var totalAdults=0;var totalChildren=0;var totalInfants=0;var totalNumOccupants=0;var requiredOccupancy=0;var numAdults=parseInt(hotel.find(':input[name=numAdults]').val());var numChildren=parseInt(hotel.find(':input[name=numChildren]').val());var numInfants=parseInt(hotel.find(':input[name=numInfants]').val());requiredOccupancy+=numAdults;requiredOccupancy+=numChildren;fail=false;hotel.find('.nbf_roomrow').each(function(){var numRooms=$(this).find('.roomSelector').val();if(!numRooms)return;totalRoomsSelected+=numRooms;var roomNum=1;var room=$(this);$('#rooms-'+$(this).attr('data-optionid')+' div').each(function(){if(roomNum>numRooms)return;var roomTotal=0;elem=$(this).find(':input.numAdultsSelector').first();if(elem.length){totalAdults+=parseInt(elem.val());roomTotal+=parseInt(elem.val());totalNumOccupants+=parseInt(elem.val());} elem=$(this).find(':input.numChildrenSelector').first();if(elem.length){totalChildren+=parseInt(elem.val());if(room.attr('data-includeChildren')){roomTotal+=parseInt(elem.val());totalNumOccupants+=parseInt(elem.val());}else{if(parseInt(elem.val())>room.attr('data-maxExtraChildren')){alert("You have selected too many children for "+room.find('.nbf_roomname').html()+", room "+roomNum+" ("+parseInt(elem.val())+" selected). The maximum is "+room.attr('data-maxExtraChildren')+".");fail=true;}}} elem=$(this).find(':input.numInfantsSelector').first();if(elem.length){totalInfants+=parseInt(elem.val());} if(roomTotal>room.attr('data-maxOccupancy')){alert("You have selected too many occupants for "+room.find('.nbf_roomname').html()+", room "+roomNum+" ("+roomTotal+" selected). The maximum is "+room.attr('data-maxoccupancy')+".");fail=true;}else if(roomTotal&&roomTotalrequiredOccupancy){alert("You have selected enough accommodation for "+totalNumOccupants+" but have "+requiredOccupancy+" travelling. Please check your room selection.");return false;}else if(totalAdults!=numAdults){alert("You have selected accommodation for "+totalAdults+" adults, but have "+numAdults+" adults travelling. Please check your room selection.");return false;}else if(totalChildren!=numChildren){alert("You have selected accommodation for "+totalChildren+" children, but have "+numChildren+" children travelling. Please check your room selection.");return false;}else if(totalInfants!=numInfants){alert("You have selected accommodation for "+totalInfants+" infants, but have "+numInfants+" infants travelling. Please check your room selection.");return false;}else if(fail){return false;}else{return true;} return false;} function nbf_callback(type,elem){var element=$('#'+elem);var values={};$('#'+elem+' :input').each(function(){if($(this).attr('type')=='radio'){if($(this).prop('checked')){values[$(this).attr('name')]=$(this).val();}}else{values[$(this).attr('name')]=$(this).val();}});var results=[];if(type==='flight'){if(values['outFlight'])results[results.length]=values['outFlight'];if(values['retFlight'])results[results.length]=values['retFlight'];}else if(type==='hotel'){if(values['hotelChoiceRoom1'])results[results.length]=values['hotelChoiceRoom1'];if(values['hotelChoiceRoom2'])results[results.length]=values['hotelChoiceRoom2'];if(values['hotelChoiceRoom3'])results[results.length]=values['hotelChoiceRoom3'];} $.ajax({url:"ajax.php",data:{a:"nbf_callback_form",request:values['travelrequestid'],results:results,tracking_name:type},dataType:"text",success:function(html){nbf_lightbox(html,element);}});} function nbf_submit_callback_form(element){var values={};$.each($(element).serializeArray(),function(i,field){values[field.name]=field.value;});errors=0;if($(element).find("input[name=callback_name].required").length>0&&!values['callback_name']){alert('Please enter your name');errors++;} if($(element).find("input[name=callback_email].required").length>0&&!values['callback_email'].match(/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/)){alert('Please enter a valid email address');errors++;} if($(element).find("input[name=callback_telephone].required").length>0&&!values['callback_telephone']){alert('Please enter your telephone number');errors++;} consentneeded=false;$("input[data-ftype='consent'][data-required='1']").each(function(i,item){if(!$(item).prop("checked")){errors++;consentneeded=true;}});if(consentneeded){alert("All required data processing consents have not been provided.");} if(!errors){$.ajax({url:"ajax.php",data:{a:"nbf_submit_callback_form",values:values},dataType:"text",success:function(html){$('#nbf_callback_form').html(html);}});} return false;} function nbf_getResultsFromGroup(group,type){var selected=[];if(type==="Flight"){var out=$('form#nbf_flightset_'+group+' input[name="outFlight"]').filter(':checked');if(out.length){selected.push($(out[0]).val());} var ret=$('form#nbf_flightset_'+group+' input[name="retFlight"]').filter(':checked');if(ret.length){selected.push($(ret[0]).val());}} else if(type==="Hotel"){var room1=$('form#'+group+' input[name="hotelChoiceRoom1"]').filter(':checked');if(room1.length){selected.push($(room1[0]).val());} var room2=$('form#'+group+' input[name="hotelChoiceRoom2"]').filter(':checked');if(room2.length){selected.push($(room2[0]).val());} var room3=$('form#'+group+' input[name="hotelChoiceRoom3"]').filter(':checked');if(room3.length){selected.push($(room3[0]).val());}} else if(type==="CarHire"){var inputs=$('form#'+group+' input[name="selectedCarHire"]');if(inputs.length===1){var car=$('form#'+group+' input[name="selectedCarHire"]');}else{var car=$('form#'+group+' input[name="selectedCarHire"]').filter(':checked');} if(car.length){selected.push($(car[0]).val());}} else if(type==="Transfer"){var transfer=$('form#'+group+' input[name="selectedTransfer"]');if(transfer.length){selected.push($(transfer[0]).val());}} else if(type==="CarParking"){var parking=$('form#'+group+' input[name="selectedCarParking"]');if(parking.length){selected.push($(parking[0]).val());}} else if(type==="Insurance"){var insurance=$('form#'+group+' input[name="selectedInsurance"]');if(insurance.length){selected.push($(insurance[0]).val());}} else if(type==="Ferry"){var out=$('form#nbf_ferryset_'+group+' input[name="outFerry"]');if(out.length){selected.push($(out[0]).val());} var ret=$('form#nbf_ferryset_'+group+' input[name="retFerry"]');if(ret.length){selected.push($(ret[0]).val());}} else if(type==="Attraction"){var attraction=$('form#'+group+' input[name="attraction"]').filter(':checked');if(attraction.length){selected.push($(attraction[0]).val());}} else if(type==="Rail"){var out=$('form#'+group+' input[name="out"]').filter(':checked');if(out.length){selected.push($(out[0]).val());} var ret=$('form#'+group+' input[name="ret"]').filter(':checked');if(ret.length){selected.push($(ret[0]).val());}} return selected;} var quotelbtimer=undefined;$(function(){$('html body').on('click','.nbf_tpl_pagesection_lightbox, .nbf_tpl_pagesection_lightbox_norwd',function(){var isembedded=$(this).attr("data-lightbox-embedded");if(isembedded){var embeddedcontent=$(this).find('.'+$(this).attr("data-lightbox-embedded-content")).detach().data('lightbox_originalcontainer',$(this));nbf_lightbox(embeddedcontent.css('display','block'));if($(this).attr("data-classes")){$("#nbf_lightbox_container").addClass($(this).attr("data-classes"));}}else{var component=$(this).attr("data-lightbox-component");var hash=$(this).attr("data-lightbox-component-hash");var self=$(this);if(component){$.ajax({url:"ajax.php",data:{a:"nbf",type:'nbf_tpl_lightbox',component:component,hash:hash},dataType:"text",crossDomain:true,success:function(html){nbf_lightbox(html);if(self.attr("data-classes")){$("#nbf_lightbox_container").addClass(self.attr("data-classes"));}}});}}});$(document).on('lightboxclose:nbf',function(e,lightboxcontainer){var embeddedcontent=$('#nbf_lightbox_content').children().first();var originalcontainer=embeddedcontent.data('lightbox_originalcontainer');if(originalcontainer){originalcontainer.append(embeddedcontent.detach().hide());}});$('html body').on('click','.nbf_toggles_quote',function(){var group=$(this).attr('data-group');var type=$(this).attr('data-type');var selected=nbf_getResultsFromGroup(group,type);if(quotelbtimer!==undefined){clearTimeout(quotelbtimer);quotelbtimer=undefined;} nbf_lightbox();$.ajax({url:"ajax.php",data:{a:'nbf_email_quote_load',results:selected},dataType:"text",success:function(html){$('div#nbf_lightbox_content').html(html);}});});});function nbf_validateInsuranceResult(resultid){var field=$('[name='+"prodInsurance-disclaimer-"+resultid+']');if(field.length&&!field[0].checked){alert(tr_js_insuranceDisclaimerErrorText);return false;} return true;} function nbf_quote_fetchCustomFields(posterid){if(posterid>0){$("#emailquote div.postertitle,#emailquote .posterdownload").show();$("#emailquote div.customfields").html('');$.ajax({url:"ajax.php",data:{"a":"poster_customfields","posterid":posterid},success:function(html){$("#emailquote div.customfields").html(html);}});} else{$("#emailquote div.postertitle,#emailquote .posterdownload").hide();$("#emailquote div.customfields").empty()}} function nbf_quote_performPosterDownload(){if($("#emailquote select[name='poster_id']").val()>0){var newform=$('
');$(newform).append('');$(newform).append('');$(newform).append('');$(newform).append('');$(newform).append('');$("#emailquote input.poster_customfield").each(function(i,item){$(newform).append('');});if($("#emailquote input[name='posterpreview']").is(":checked")){$(newform).append('');} $(newform).css("display","none");$("body").append($(newform));$("body form#renderposter").trigger("submit");$(".status",$("#emailquote")).prepend('
Poster Generated
');if(quotelbtimer!==undefined){clearTimeout(quotelbtimer);} quotelbtimer=setTimeout(function(){nbf_closelightbox();quotelbtimer=undefined;},10000);} return false;} function nbf_email_quote_load(){nbf_lightbox();$.ajax({url:"ajax.php",data:{a:"nbf_email_quote_load",requests:emailquote_requests,bookingfees:emailquote_bookingfees},dataType:"text",success:function(html){$('div#nbf_lightbox_content').html(html);}});} function nbf_crossposter_load(mainreq,xreq,xresults){if(xresults===undefined){alert("You must select a room before generating a poster for this hotel result");return false;} if(xresults.constructor!==Array){tmp=xresults;xresults=[];xresults.push(tmp);} nbf_lightbox();postdata={a:"poster_selection",format:"html",type:"bookingflow",travelrequestid:mainreq,xreq:xreq,xresults:xresults,};$.ajax({url:"ajax.php",data:postdata,dataType:"text",success:function(html){$('div#nbf_lightbox_content').html(html);}});} function nbf_poster_load(treq,group,type){nbf_lightbox();postdata={a:"poster_selection",format:"html",type:"bookingflow",travelrequestid:treq,};if(group&&type){results=nbf_getResultsFromGroup(group,type);postdata.results=results;} $.ajax({url:"ajax.php",data:postdata,dataType:"text",success:function(html){$('div#nbf_lightbox_content').html(html);}});} function nbf_poster_fetchCustomFields(posterid){if(posterid>0){$("div.customfields").html('');$.getJSON("index.html",{"a":"poster_customfields","type":"json","posterid":posterid},function(data){html="";if(data){$.each(data,function(k,v){html+='
';});} $("div.nbf_lightbox div.customfields").html(html);});} else{$("div.nbf_lightbox div.customfields").empty()}} function nbf_email_quote_submit(btn,addmoreoptions){var quotefrm=$(btn).closest('form');var marketing=0;$('.bigerror, .bignotice',quotefrm).remove();var emailAddress=$('[name=quoteemail]',quotefrm).val();if(!emailAddress.match(/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/)){$(".status",quotefrm).prepend('
'+IBETranslate.translate('emailquote_invalidData')+'
');return false;} if($('[name=marketing]',quotefrm).is(':radio')){if(!$('[name=marketing]',quotefrm).is(':checked')){$(".status",quotefrm).prepend('
'+IBETranslate.translate('emailquote_marketingIncomplete')+'
');return false;}else{marketing=$('[name=marketing]:checked',quotefrm).val();}}else{marketing=$('[name=marketing]',quotefrm).is(':checked')?1:0;} formdata={requests:$('[name=requests]',quotefrm).val(),bookingfees:$('[name=bookingfees]',quotefrm).val(),quoteemail:emailAddress,quotepauseemail:$('[name=quotepauseemail]:checked',quotefrm).val(),csrftoken:$('[name=csrftoken]',quotefrm).val(),marketing:marketing,preventretrieve:$('[name=preventretrieve]',quotefrm).is(':checked')?1:0,hideprice:$('input.hideprice',quotefrm).map(function(){return $(this).is(':checked')?$(this).val():'';}).get().filter(function(val){return val;}).join(','),addmoreoptions:addmoreoptions?1:0};if($("[name='quotename']",quotefrm)){formdata.quotename=$("[name='quotename']",quotefrm).val();formdata.quotephone=$("[name='quotephone']",quotefrm).val();} if($("[name='quotebcc']",quotefrm)){formdata.quotebcc=$("[name='quotebcc']",quotefrm).val();} if($("[name='quotemessage']",quotefrm)){formdata.quotemessage=$("[name='quotemessage']",quotefrm).val();} if($("select[name='poster_id']",quotefrm)){formdata.poster_title=$("input[name='poster_title']").val();formdata.poster_id=$("select[name='poster_id']").val();formdata.poster_customfield=[];$("input.poster_customfield").each(function(i,item){formdata.poster_customfield.push({"name":$(item).attr("data-name"),"value":$(item).val()});});} if($("input[data-ftype='consent']",quotefrm)){$("input[data-ftype='consent']:checked").each(function(i,item){formdata[$(item).attr("name")]=$(item).val();});} $.ajax({type:"POST",url:"ajax.php?a=nbf_email_quote_submit",dataType:'json',data:formdata,success:function(response){if(response.status==="success"&&addmoreoptions){if((typeof bf_shareSlidepanel)=="object"){bf_shareSlidepanel.destroy();}else{nbf_closelightbox();}}else if(response.status==="success"){$(".status",quotefrm).prepend('
'+response.content+'
');$('[name=emailaddress]',quotefrm).val("");if(quotelbtimer!==undefined){clearTimeout(quotelbtimer);}}else{$(response.errors).each(function(key,error){$(".status",quotefrm).prepend('
'+error+'
');});}}});return false;} function nbf_email_quote_clear(){$.ajax({type:"POST",url:"ajax.php?a=nbf_email_quote_clear",dataType:'json',data:{},success:function(response){if((typeof bf_shareSlidepanel)=="object"){bf_shareSlidepanel.destroy();}else{nbf_closelightbox();}}});} function nbf_hournumbertotimestring(hournumber){return parseInt(hournumber,10);} function nbf_showCheapestPolicyOption(req,type,profile,status){nbf_lightbox();$.ajax({url:"ajax.php",data:{a:"nbf_showCheapestPolicyOption","req":req,"type":type,"profile":profile,"status":status},dataType:"text",success:function(html){$('div#nbf_lightbox_content').html(html);}});} function nbf_fetchmodulecontent(type,tresults){nbf_lightbox();$.ajax({url:"ajax.php",data:{a:"nbf_getModuleContent","type":type,"results":tresults},dataType:"text",success:function(html){$('body > div.nbf_lightbox div#nbf_lightbox_content').html(html);}});};(function($){if(typeof nbf_lightbox!='function'){function nbf_lightbox(content,element,fullwidth) {if(content==null){content='
';} if(parseInt($('.responsive_state').css("zIndex"),10)>0){if($("div#nbf_lightbox_mobile_container").length==0){nbf_wrapBody();nbf_saveScroll();$('.nbf_pagepanes').hide();if(typeof content==='object'){$("body").prepend('
');$('#nbf_lightbox_content').append(content);}else{$("body").prepend('
'+content+'
');} $('#nbf_lightbox_mobile_container').on('click','#nbf_lightbox_close, .nbfjs_lightbox_close',function(e){e.stopPropagation();nbf_mobile_closelightbox();});$(document).trigger('NBF_Lightbox_Open',[$('#nbf_lightbox_mobile_container')]);}}else{if($("div#nbf_lightbox_container:visible").length==0){$("body").prepend('
');if(fullwidth===true){if(typeof content==='object'){$("body").prepend('
');$('#nbf_lightbox_content').append(content);}else{$("body").prepend('
'+content+'
');}} else{if(typeof content==='object'){$("body").prepend('
');$('#nbf_lightbox_content').append(content);}else{$("body").prepend('
'+content+'
');}} var win=$(window);var lightboxcontainer=$('#nbf_lightbox_container');if(window!=window.top&&typeof element!='undefined'){lightboxcontainer.css({"top":(element.offset().top),"left":((win.width()-lightboxcontainer.outerWidth(false))/2),"padding-bottom":100});}else{lightboxcontainer.css({"top":(win.scrollTop()+100),"left":((win.width()-lightboxcontainer.outerWidth(false))/2),"padding-bottom":100});} $('#nbf_lightbox_bg').fadeIn(200,function(){$('#nbf_lightbox_bg').css({"-ms-filter":"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)","filter":"alpha(opacity=50)"});lightboxcontainer.fadeIn(400);});lightboxcontainer.on('click','#nbf_lightbox_close, #nbf_lightbox_bg, .nbfjs_lightbox_close',function(e){e.stopPropagation();nbf_closelightbox();});$(document).trigger('NBF_Lightbox_Open',[lightboxcontainer]);}}}} if(typeof nbf_modal_box!='function'){function nbf_modal_box(content){if($("div#nbf_lightbox_container:visible").length!=0){nbf_closelightbox();} $("body").prepend('
');$("body").prepend('
'+content+'
');var win=$(window);var lightboxcontainer=$('#nbf_lightbox_container');lightboxcontainer.css({"top":(win.scrollTop()+100),"left":((win.width()-lightboxcontainer.outerWidth())/2),"padding-bottom":100});$('#nbf_lightbox_bg').fadeIn(100,function(){$('#nbf_lightbox_bg').css({"-ms-filter":"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)","filter":"alpha(opacity=50)"});lightboxcontainer.fadeIn(200);});lightboxcontainer.on('click','#nbf_lightbox_close, #nbf_lightbox_bg, .nbfjs_lightbox_close',function(){nbf_closelightbox();});$(document).trigger('NBF_Lightbox_Open',[lightboxcontainer]);}} if(typeof nbf_updatelightbox!='function'){function nbf_updatelightbox(content) {$('#nbf_lightbox_content').html(content);var win=$(window);var lightboxcontainer=$('#nbf_lightbox_container');if(window!=window.top&&typeof element!='undefined'){lightboxcontainer.css({"top":(element.offset().top),"left":((win.width()-lightboxcontainer.outerWidth(false))/2),"padding-bottom":100});}else{lightboxcontainer.css({"top":(win.scrollTop()+100),"left":((win.width()-lightboxcontainer.outerWidth(false))/2),"padding-bottom":100});} $(document).trigger('NBF_Lightbox_UpdateContent');}} if(typeof nbf_lightbox_isopen!='function'){function nbf_lightbox_isopen() {return($('#nbf_lightbox_content').length>0);}} if(typeof nbf_mobile_closelightbox!='function'){function nbf_mobile_closelightbox(){$(document).trigger('lightboxclose:nbf',[$('#nbf_lightbox_mobile_container')]);$("#nbf_lightbox_mobile_container").remove();$('#nbf_pagepanes_main').show();nbf_restoreScroll();$(document).trigger('NBF_Lightbox_Close');}} if(typeof nbf_close_lightbox_mobile!='function'){function nbf_close_lightbox_mobile(){$('.nbf_pagepanes').hide();$('#nbf_pagepanes_main').show();nbf_restoreScroll();$(document).trigger('NBF_Lightbox_Close');}} if(typeof nbf_closelightbox!='function'){function nbf_closelightbox(callback){if(parseInt($('.responsive_state').css("zIndex"),10)>0){nbf_mobile_closelightbox();}else{$('#nbf_lightbox_container').stop().fadeOut(200,function(){$('#nbf_lightbox_bg').stop().fadeOut(200,function(){$(document).trigger('lightboxclose:nbf',[$('#nbf_lightbox_container')]);$("#nbf_lightbox_container,#nbf_lightbox_bg").remove();if(typeof callback=='function'){callback.call(this);}});});$(document).trigger('NBF_Lightbox_Close');}}} if(typeof nbf_lightbox_switch_plain!='function'){function nbf_lightbox_switch_plain(){$bl=$("td.nbf_lightbox.nbf_cost_bl");$b=$("td.nbf_lightbox.nbf_cost_b");$br=$("td.nbf_lightbox.nbf_cost_br");$bl.addClass("nbf_bl");$bl.removeClass("nbf_cost_bl");$b.addClass("nbf_b");$b.removeClass("nbf_cost_b");$br.addClass("nbf_br");$br.removeClass("nbf_cost_br");}} if(typeof nbf_lightbox_switch_productdetail!='function'){function nbf_lightbox_switch_productdetail(){$bl=$("td.nbf_lightbox.nbf_bl");$b=$("td.nbf_lightbox.nbf_b");$br=$("td.nbf_lightbox.nbf_br");$bl.addClass("nbf_cost_bl");$bl.removeClass("nbf_bl");$b.addClass("nbf_cost_b");$b.removeClass("nbf_b");$br.addClass("nbf_cost_br");$br.removeClass("nbf_br");}} if(typeof nbf_productdetail_lightbox!='function'){function nbf_productdetail_lightbox(content,element){if(content==null){content='
';} if(parseInt($('.responsive_state').css("zIndex"),10)>0){if($("div#nbf_lightbox_mobile_container").length==0){nbf_wrapBody();nbf_saveScroll();$('.nbf_pagepanes').hide();$("body").prepend('
'+content+'
');$('#nbf_lightbox_close').click(function(){nbf_mobile_closelightbox();});}}else{if($("div#nbf_lightbox_container:visible").length==0){$("body").prepend('
');$("body").prepend('
'+content+'
');if(window!=window.top&&typeof element!='undefined'){$('#nbf_lightbox_container').css({"top":(element.offset().top),"left":(($(window).width()-$('#nbf_lightbox_container').outerWidth(false))/2),"padding-bottom":100});}else{$('#nbf_lightbox_container').css({"top":($(window).scrollTop()+100),"left":(($(window).width()-$('#nbf_lightbox_container').outerWidth(false))/2),"padding-bottom":100});} $('#nbf_lightbox_bg').fadeIn(200,function(){$('#nbf_lightbox_bg').css({"-ms-filter":"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)","filter":"alpha(opacity=50)"});$('#nbf_lightbox_container').fadeIn(400);});$('#nbf_lightbox_close,#nbf_lightbox_bg').click(function(){nbf_closelightbox();});}}}} if(typeof nbf_wrapBody!='function'){function nbf_wrapBody(){if(!$('#nbf_pagepanes_main').length){$('body').find("script").remove().end().wrapInner('
');$('#ui-datepicker-div').appendTo($('body'));}}} if(typeof nbf_saveScroll!='function'){function nbf_saveScroll(){$('body').attr('data-nbf_scroll',$(window).scrollTop());$(window).scrollTop(0);}} if(typeof nbf_restoreScroll!='function'){function nbf_restoreScroll(){$(window).scrollTop($('body').attr('data-nbf_scroll'));}}})(jQuery);;if(pb===undefined){var pb={init:{},config:{},instances:{}};} function pb_init(){$("script.pb_data[type='application/json']").each(function(i,item){dtype=$(item).attr("data-type");configtext=$(item).text();if(configtext===""){configtext=item.text;} config=JSON.parse(configtext);if(pb.config[dtype]===undefined){pb.config[dtype]=[];} found=false;$(pb.config[dtype]).each(function(i,item){if(item.id===config.id){found=true;}});if(found===false){pb.config[dtype].push(config);if(typeof pb.init[dtype]==="function"){pb.init[dtype](config);}}});} function pb_instance(config,instance){if(config.id&&pb.instances[config.id]===undefined&&instance instanceof Object){pb.instances[config.id]=instance;}} $(function(){pb_init();});$(document).on('click','.pbcpt-copy',function(){var container=$(this).parents('#nbf_pagebuilder_editcomponent');var settingsArr={};$('input[type=text],input[type=radio],input[type=checkbox],select,textarea',container).each(function(index,elem){elem=$(elem);if(elem.attr('name')!==''){if(elem.attr('type')==='radio'){if(elem.is(':checked')){settingsArr[elem.attr('name')]=elem.val();}}else if(elem.attr('type')==='checkbox'){settingsArr[elem.attr('name')]=(elem.is(':checked')?true:false);}else{settingsArr[elem.attr('name')]=elem.val();}}});var text=JSON.stringify(settingsArr);container.find('.pbcpt-copy-results').show().find('textarea').html(text).select();});$(document).on('click','.pbcpt-paste',function(){var elem=$(this);var container=$(this).parents('#nbf_pagebuilder_editcomponent');if(elem.html()!=='Import Settings'){container.find('.pbcpt-paste-results').show();$(this).html('Import Settings');}else{try{$.each(JSON.parse(container.find('.pbcpt-paste-results').find('textarea').val()),function(key,val){var elem=$('[name="'+key+'"]');if(elem.length){if(elem.prop('tagName')==='SELECT'){elem.val(val);}else if(elem.prop('tagName')==='INPUT'){if(elem.attr('type')==='radio'){elem.filter('[value="'+val+'"]').click();}else if(elem.attr('type')==='checkbox'){if(val===true){if(!elem.is(':checked'))elem.click();}else if(val===false){if(elem.is(':checked'))elem.click();}}else{elem.val(val);}}else if(elem.prop('tagName')==='TEXTAREA'){if(typeof CKEDITOR!=='undefined'&&CKEDITOR!==undefined&&typeof CKEDITOR.instances[elem.attr('id')]!==undefined&&CKEDITOR.instances[elem.attr('id')]!==undefined){CKEDITOR.instances[elem.attr('id')].setData(val);}else{elem.html(val);}}}});}catch(e){alert('Invalid JSON string provided. Did you copy it all?');}}});function pb_selectText(node){if(document.body.createTextRange){const range=document.body.createTextRange();range.moveToElementText(node);range.select();}else if(window.getSelection){const selection=window.getSelection();const range=document.createRange();range.selectNodeContents(node);selection.removeAllRanges();selection.addRange(range);}else{console.warn("Could not select text in node: Unsupported browser.");}} $(document).on('click','.selectable',function(){pb_selectText(this);});;(function($){$(function(){function imageselector_getLocationFromUrl(url){var l=document.createElement("a");l.href=url;return l;} function imageselector_getParams(queryparams){var result={};if(!queryparams){return result;} var query=queryparams.substr(1);query.split("&").forEach(function(part){var item=part.split("=");result[item[0]]=decodeURIComponent(item[1]);});return result;} function imageselector_getFontAwesome(url){var fontawesome={icon:'',weight:''};if(!url){return fontawesome;} var fontawesomeurl=imageselector_getLocationFromUrl(url);if(fontawesomeurl.protocol==='fontawesome:'){fontawesome.icon=fontawesomeurl.href.replace(/fontawesome:\/\//,'');var queryparamsoffset=fontawesome.icon.indexOf('?');var queryparams='';if(queryparamsoffset!==-1){queryparams=fontawesome.icon.substr(queryparamsoffset);fontawesome.icon=fontawesome.icon.substr(0,queryparamsoffset);} var fontawesomeurlparams=imageselector_getParams(queryparams);if(fontawesomeurlparams.hasOwnProperty("weight")){fontawesome.weight=fontawesomeurlparams.weight;}} return fontawesome;} function updateImage(imgcontainer,imgurl){var img=imgcontainer.find('img,svg,i');var fontawesome=imageselector_getFontAwesome(imgurl);if(fontawesome.icon){if(img.prop('tagName').toLowerCase()==="svg"){$('').insertAfter(img);img.remove();imgcontainer.contents().filter(function(){return this.nodeType===8;}).each(function(k,v){$(v).remove();});}else if(img.prop('tagName')==="I"){img.attr('class','img '+escape(fontawesome.weight)+' fa-'+escape(fontawesome.icon));img.attr('class','img '+escape(fontawesome.weight)+' fa-'+escape(fontawesome.icon));}else{$('').insertAfter(img);img.remove();}}else{if(img.prop('tagName')==="IMG"){img.attr('src',imgurl);}else{$('').insertAfter(img);img.remove();}}} function setup(tabscontainer){if(!tabscontainer||!tabscontainer.length)return;if(tabscontainer.length>1){tabscontainer.each(function(){setup($(this));});return;} tabscontainer.addClass('nbf_initjs');var converttocollapsibletabs=tabscontainer.attr('data-converttocollapsibletabs');if(converttocollapsibletabs){var viewportWidth=parseInt($(window).width(),10);if(viewportWidth .nbf_tpl_pagesection_tabs li[role="tab"]',e.delegateTarget).filter('.nbf_tpl_pagesection_tab').not(elem).attr('aria-selected','false').removeClass('nbf_tpl_pagesection_tabselected').trigger('mouseleave');elem.attr('aria-selected','true').addClass('nbf_tpl_pagesection_tabselected').trigger('mouseleave');var tabpaneid=elem.attr('aria-controls');var tabpane=$('#'+tabpaneid);$('> div[role="tabpanel"]',e.delegateTarget).filter('.nbf_tpl_pagesection_tabpane').attr('aria-hidden','true').addClass('nbf_hidden');tabpane.attr('aria-hidden','false').removeClass('nbf_hidden');$(document).trigger("PB_Tabs:tabChanged",[elem,tabpane]);}).on('focus.nbfpb','li[role="tab"],li[role="link"]',function(e){$(this).css('outline','none');}).on('mouseenter.nbfpb mouseleave.nbfpb','li[role="tab"],li[role="link"]',function(e){var elem=$(this);if(!elem.parent().hasClass('nbf_tpl_pagesection_tabs')){return;} if(e.type==='mouseenter'){if(elem.attr('aria-selected')==='true'){if(elem.attr('data-selectedhoverimage')){updateImage(elem,elem.attr('data-selectedhoverimage'));}}else{if(elem.attr('data-hoverimage')){updateImage(elem,elem.attr('data-hoverimage'));}}}else{if(elem.attr('aria-selected')==='true'){if(elem.attr('data-selectedimage')){updateImage(elem,elem.attr('data-selectedimage'));}else if(elem.attr('data-image')){updateImage(elem,elem.attr('data-image'));}}else{if(elem.attr('data-image')){updateImage(elem,elem.attr('data-image'));}}}});$('li[role="tab"],li[role="link"]',tabscontainer).on('keydown.nbfpb',function(e){var elem=$(this);if(e.which===13){elem.click().trigger('mouseleave');} if((e.which===39)||(e.which===37)||(e.which===38)||(e.which===40)){if(elem.attr('aria-selected')==='true'){e.preventDefault();if(e.which===37||e.which===38){if(!elem.prev().length){elem.parent().children().last().click().focus().trigger('mouseenter');}else{elem.prev().click().focus().trigger('mouseenter');}}else{if(!elem.next().length){elem.parent().children().first().click().focus().trigger('mouseenter');}else{elem.next().click().focus().trigger('mouseenter');}}}}}).on('keyup.nbfpb',function(e){if(e.which===9){$(this).css('outline','');}});tabscontainer.on('click.nbfpb keydown.nbfpb','li[role="link"]',function(e){var elem=$(this);if(!elem.parent().hasClass('nbf_tpl_pagesection_tabs')){return;} if(e.type==='click'||32===e.keyCode||13===e.keyCode){if(elem.attr('target')==='_blank'){window.open(elem.attr('href'),"_blank");}else{window.location=elem.attr('href');}}});} var tabscontainer=$('.nbf_tpl_pagesection_tabscontainer').not('.nbf_initjs');setup(tabscontainer);$(document).ajaxComplete(function(){setup($('.nbf_tpl_pagesection_tabscontainer').not('.nbf_initjs'));});$(document).on('nbfrefresh nbfsetuptabs',function(){setup($('.nbf_tpl_pagesection_tabscontainer').not('.nbf_initjs'));});});})(jQuery);;(function($){$.datepicker.regional['en-GB']={closeText:'Done',prevText:'Prev',nextText:'Next',currentText:'Today',monthNames:['January','February','March','April','May','June','July','August','September','October','November','December'],monthNamesShort:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],dayNames:['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],dayNamesShort:['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],dayNamesMin:['Su','Mo','Tu','We','Th','Fr','Sa'],weekHeader:'Wk',dateFormat:'d M yy',firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:''};$.datepicker.setDefaults($.datepicker.regional['en-GB']);})(jQuery);;if(window.ibeBaseURL===undefined){window.ibeBaseURL='';}else if((typeof window.ibeBaseURL==='string')&&(window.ibeBaseURL.length>0)&&(window.ibeBaseURL[window.ibeBaseURL.length-1]!=='../../index.html')){window.ibeBaseURL+='../../index.html';} sb2_as2_values={};sb2_as2_timers={};sb2_as2_requests=[];sb3_tabindex=0;if(typeof travelPolicies==='undefined'){travelPolicies={};} if(!Array.prototype.indexOf){Array.prototype.indexOf=function(elt){var len=this.length>>>0;var from=Number(arguments[1])||0;from=(from<0)?Math.ceil(from):Math.floor(from);if(from<0){from+=len;} for(;from
').addClass('sb2_as2 sb3_location_field_results').attr('id',id+'_results').data('inputid',id);elem.attr('autocomplete','off').data('buffer',0).data('as2_init',true).data('extraparams',{prodtype:type}).after(elem_results).on("click",function(){var elem=$(this);if(elem.hasClass('sb2_as2off')){if(!elem_locationkey.val()&&typeof elem.data('originallocationkey')!=="undefined"&&elem.data('originallocationkey')){sb2_as2(elem,elem.data('originallocationkey'));}else{sb2_as2(elem,elem_locationkey.val());}}}).on("keyup",function(e){if(e.which==27){return;} var elem=$(this),itemval=elem.val();if(itemval!=sb2_as2_values[id]){sb2_as2_values[id]=itemval;$(this).data('originalvalue',itemval);$(this).data('originallocationkey','');elem_locationkey.val('').trigger('as2:update');clearTimeout(elem.data('buffer'));elem.data('buffer',setTimeout(function(){sb2_as2(elem);},300));}}).on("keydown",function(e){var elem=$(this),elem_results=$('#'+elem.attr('id')+'_results');if(!elem.hasClass('sb2_as2on')){if(e.which==40){sb2_as2_open(elem);} return true;} var id=$(this).attr('id');if(sb2_as2_timers[id])clearTimeout(sb2_as2_timers[id]);sb2_as2_timers[id]=false;if(e.which==9||e.which==13){var selectedElement=$('.sel',elem_results);if(selectedElement.length){selectedElement.click();if(elem.hasClass('sb2_as2on')||e.which==13){e.stopPropagation();return false;}}} if(e.which==38||e.which==40){var selectedElement=$('.sel',elem_results);if(e.which==40){if(selectedElement.length){var nextList=selectedElement.nextAll('.loc');if(nextList.length>0){selectedElement=nextList.first();}else{selectedElement=selectedElement.parent().nextAll('.loclist').first().children().first();}}else{selectedElement=$('.loc',elem_results).first();}}else{if(selectedElement.length){var prevList=selectedElement.prevAll('.loc');if(prevList.length>0){selectedElement=prevList.first();}else{selectedElement=selectedElement.parent().prevAll('.loclist').first().children().first();}}else{selectedElement=$('.loc',elem_results).last();}} selectedElement.trigger('mousemove');var list=selectedElement.parent();if(list.length){var diff=selectedElement.offset().top-list.offset().top;if(diff<0)list.scrollTop(list.scrollTop()+diff);if(diff+selectedElement.outerHeight()>list.height())list.scrollTop(diff+selectedElement.outerHeight()-list.height()+list.scrollTop());} e.stopPropagation();return false;} if(e.which==27){sb2_as2_close(elem);form.trigger('vibe:validate');e.stopPropagation();return false;}}).on("focus",function(e,extradata){if(extradata&&extradata.skipcustomfocus===true){return;} if(rwd_isWidth(460)){var elem=$(this);setTimeout(function(){rwd_saveScroll(elem);},0);} var id=$(this).attr('id');if(sb2_as2_timers[id])clearTimeout(sb2_as2_timers[id]);sb2_as2_timers[id]=false;if(typeof $(this).data('originalvalue')!=="undefined"&&$(this).val()===$(this).data('originalvalue')){$(this).val('');elem_locationkey.val('');}else{$(this).data('originalvalue',$(this).val());$(this).data('originallocationkey',elem_locationkey.val());sb2_as2_values[id]=$(this).val();$(this).val('');elem_locationkey.val('');}}).on("blur",function(e){var id=$(this).attr('id');sb2_as2_timers[id]=setTimeout(function(){sb2_as2_close(elem);},300);if($(this).data('originalvalue')||$(this).data('originallocationkey')){$(this).val($(this).data('originalvalue'));elem_locationkey.val($(this).data('originallocationkey'));sb2_as2_values[id]=undefined;}});elem_results.on("mouseenter",function(){var id=$(this).data('inputid');if(sb2_as2_timers[id])clearTimeout(sb2_as2_timers[id]);sb2_as2_timers[id]=false;}).on("mouseleave",function(e){var id=$(this).data('inputid');var elem_results=$(this),elem=$('#'+elem_results.data('inputid'));if(elem_results.is(':visible')){if(sb2_as2_timers[id])clearTimeout(sb2_as2_timers[id]);sb2_as2_timers[id]=setTimeout(function(){sb2_as2_close(elem);},2000);}}).on('click','.loc',function(e){var id=$(e.delegateTarget).data('inputid');var elem_results=$(this);if(elem_results.hasClass('more')){if(sb2_as2_timers[id])clearTimeout(sb2_as2_timers[id]);e.preventDefault();return;} var name=elem_results.attr('data-name'),key=elem_results.attr('data-key'),hotelcount=elem_results.attr('data-hotelcount'),children=elem_results.attr('data-children');var elem=$('#'+id),elem_locationkey=elem.parent().find('.sb3_locationkey_field_js');if(hotelcount>0){elem.val(name);elem_locationkey.val(key).trigger('as2:update');sb2_as2_values[id]=name;elem.data('originalvalue','');elem.data('originallocationkey','');} if(children>0){if(sb2_as2_timers[id])clearTimeout(sb2_as2_timers[id]);sb2_as2(elem,key);elem.trigger('focus',{skipcustomfocus:true});e.preventDefault();}else{elem.val(name);elem_locationkey.val(key).trigger('as2:update');sb2_as2_values[id]=name;sb2_as2_close(elem);form.trigger('vibe:validate');}});};form.data('locationAutosuggestFactory',locationAutosuggestFactory);var selectizeLocationAutosuggestFactory=function(elem){if(elem.prop('tagName')==='SELECT')return;Selectize.define('as3_navigatetree',function(options){var self=this;self.head="";self.filterbylockey="";self.$empty_results_container=null;options=$.extend({render:{contentheader:function(data,escape){return'
'+escape(data)+'
';}},noResultsFoundMessage:"No Matching Locations",},options);self.onOptionSelect=(function(){var original=self.onOptionSelect;return function(e){var value,$target,self=this;if(e.preventDefault){e.preventDefault();e.stopPropagation();} $target=$(e.currentTarget);if($target.hasClass('haschildren')){value=$target.attr('data-value');self.filterbylockey=value;self.loadedSearches={};self.onSearchChange('');return;}else{self.filterbylockey='';self.loadedSearches={};self.onSearchChange('');} return original.apply(this,arguments);};})();self.refreshOptions=(function(){var original=self.refreshOptions;return function(triggerDropdown){var self=this;var $dropdown_content=self.$dropdown_content;original.apply(this,arguments);if(self.head){var escape_html=function(str){return(str+'').replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"');};var wasSelectedOptgroup=$dropdown_content.find('.optgroup[data-group="wasSelected"]');if(wasSelectedOptgroup.length){wasSelectedOptgroup.after(options.render.contentheader.call(self,self.head,escape_html));}else{$dropdown_content.prepend(options.render.contentheader.call(self,self.head,escape_html));}}};})();self.displayNoResultsFoundMessage=function(message){message=message||options.noResultsFoundMessage;if(!this.$empty_results_container){this.$empty_results_container=$('');this.$empty_results_container.insertBefore(self.$dropdown);this.$empty_results_container.hide();}else{this.$empty_results_container.find('.selectize-dropdown-content').html(message);} this.$empty_results_container.css('top',this.$control.outerHeight());this.$empty_results_container.show();};self.onKeyUp=function(e){var self=this;if(self.isLocked)return e&&e.preventDefault();var value=self.$control_input.val()||'';if(self.lastValue!==value){self.filterbylockey='';self.lastValue=value;self.onSearchChange(value);self.trigger('type',value);}} self.onKeyDown=(function(){var original=self.onKeyDown;return function(e){switch(e.keyCode){case KEY_ESC:if(self.isOpen){self.filterbylockey='';} break;} var result=original.apply(this,arguments);if(this.$empty_results_container){this.$empty_results_container.hide();} return result;};})();self.onBlur=(function(){var original=self.onBlur;return function(){original.apply(this,arguments);if(this.$empty_results_container){this.$empty_results_container.hide();}};})();self.setActiveOption=(function(){return function($option,scroll,animate){var height_menu,height_item,height_optgroup,y;var scroll_top,scroll_bottom;var self=this;if(self.$activeOption){self.$activeOption.removeClass('active');self.trigger('dropdown_item_deactivate',self.$activeOption.attr('data-value'));} self.$activeOption=null;$option=$($option);if(!$option.length)return;var $optgroup=$option.parents('.optgroup');var $optgroupheader=$optgroup.find('.as3_header');self.$activeOption=$option.addClass('active');if(self.isOpen)self.trigger('dropdown_item_activate',self.$activeOption.attr('data-value'));if(scroll||!isset(scroll)){height_menu=$optgroup.height();height_item=self.$activeOption.outerHeight(true);height_optgroup=Math.round($optgroupheader.outerHeight(true));scroll=$optgroup.scrollTop()||0;y=Math.round(self.$activeOption.offset().top-$optgroup.offset().top+scroll);scroll_top=y-height_optgroup;scroll_bottom=y-height_menu+height_item;if(y+height_item>height_menu+scroll){$optgroup.stop().animate({scrollTop:Math.round(scroll_bottom)},animate?self.settings.scrollDuration:0);}else if(y-height_optgroup=0&&index<$options.length?$options.eq(index):$();};self.refreshOptions=(function(){var original=self.refreshOptions;return function(triggerDropdown){original.apply(this,arguments);if(!options.optionClass)return;var $dropdown_content=self.$dropdown_content;var value=self.$control_input.val()||'';var doShowMoreOption=(self.filterbylockey||value);$dropdown_content.find('.optgroup').each(function(){var $optgroup=$(this);var $options=$('.'+options.optionClass,$optgroup);if(doShowMoreOption&&$options.length>options.minOptions){$($options.splice(options.minOptions)).addClass('selectize-hidden');$optgroup.append('
'+options.showMoreText+'
')}});};})();});var expandableoptgroupsSettings=(elem.attr('data-selectizeexpandable')?JSON.parse(elem.attr('data-selectizeexpandable')):{});elem.selectize({plugins:{'as3_navigatetree':{render:{contentheader:function(data,escape){return'
'+escape(data)+'
';}},},'expandableoptgroups':{minOptions:expandableoptgroupsSettings.minOptions||10,showMoreText:tr_autosuggest_showMore,showMoreClass:'as3_showmore',optionClass:'as3_option',},'remove_button':{},'restore_on_backspace':{}},delimiter:',',maxItems:3,preload:'focus',closeAfterSelect:false,inputClass:'selectize-input sb3_field sb3_textbox sb3_selectizetextbox sb3_location_field',optgroupValueField:'name',optgroupLabelField:'name',optgroupField:'type',valueField:'key',labelField:'name',searchField:['name','query'],items:(elem.attr('data-selectizeitems')?JSON.parse(elem.attr('data-selectizeitems')):[]),options:(elem.attr('data-selectizeoptions')?JSON.parse(elem.attr('data-selectizeoptions')):[]),showoptgroupheadings:(elem.attr('data-selectizeshowoptgroupheadings')!=='false'),optgroups:[{name:'wasSelected',title:"Previously Selected"},{name:'parent',title:''},{name:'loc',title:"Location"},],lockOptgroupOrder:true,create:false,onInitialize:function(){this.$wrapper.removeClass('sb3_field sb3_textbox');this.$dropdown.removeClass('sb3_field sb3_textbox');},render:{optgroup_header:function(item,escape){if(!item.title.length)return'
';return'
'+item.title+'
';},option:function(item,escape){var counthtml='';if(form.attr('data-type')==='attraction'){}else{if(item.loctype=="Hotel"||item.hotelcount==-1){}else if(item.hotelcount>0){counthtml+='
'+escape(tr_autosuggest_hotelsNumber(item.hotelcount))+'
';}else{counthtml+='
'+escape(tr_autosuggest_noHotelsNumber)+'
';}} var html='';if(item.type==="loc"||item.type==="wasSelected"||item.group){var subparts=[];if(item.parentname&&item.loctype!=='Continent'&&item.parentname!==item.name){subparts.push(item.parentname);} if(item.state){subparts.push(item.state);} if(item.country&&item.country!==item.name){subparts.push(item.country);} html+='
';if(item.me){if(form.attr('data-type')==='attraction'){html+=escape(tr_autosuggest_allSpecificLocationAttractions.replace('$location',item.name));}else{html+=escape(tr_autosuggest_allSpecificLocationHotels.replace('$location',item.name));}}else{html+=escape(item.name);} html+='
';html+='
'+escape(subparts.join(', '))+'
';html+='
';html+=counthtml;}else if(item.type==="parent"){html+='
';html+=escape(tr_autosuggest_backToParentLocation.replace('$parentlocation',item.name));html+='
';}else if(item.type==="err"){html+='
';html+=item.name;html+='
';}else if(item.type==="text"){html+='
';html+=item.name;html+='
';} return'
'+html+'
';}},loadThrottle:300,load:function(query,callback){var self=this;if(self.isFull())return callback();self.$dropdown_content.addClass('selectize-loading');var selectedoptions=[];for(var k in self.items){selectedoptions.push(self.options[self.items[k]]);} var options=self.options;$.each(self.options,function(key,value){if(self.items.indexOf(key)==-1){delete options[key];}});self.options=self.sifter.items=options;self.clearCache('option');for(var k in self.loadedSearches){if(k!==""&&k!==query){delete self.loadedSearches[k];}} var lockey=self.filterbylockey.replace('parent-','');var extraparams='';if(elem.data('extraparams')){$.each(elem.data('extraparams'),function(key,val){extraparams+='&'+key+'='+encodeURIComponent(val);});} var airportsonly=(elem.attr('data-airportsonly')==='true');var showairportcodes=(elem.attr('data-showairportcodes')==='true');var corpid=$('input[name=adminBookCorporateProfileId],select[name=adminBookCorporateProfileId]',form).val();if(!corpid)corpid=$('select[name=adminBookCorporateProfile] option:selected',form).attr('data-id');self.head="";this.ajaxRequest&&this.ajaxRequest.abort();this.ajaxRequest=$.ajax({url:ibeBaseURL+"ajax.php",type:"GET",data:"a=autosuggest2&key="+lockey+"&typed="+encodeURIComponent(query)+(airportsonly?"&airportsonly=1":'')+(showairportcodes?"&showairportcodes=1":'')+(corpid?"&corpid="+corpid:'')+extraparams,crossDomain:true,error:function(){callback();},success:function(data){var query=(self.$control_input.val()).trim();$.each(data,function(index,item){data[index].query=query;if(item.type==='parent'){data[index].key='parent-'+item.key;} if(item.type==='err'){self.displayNoResultsFoundMessage(item.name);}else if(item.type==='head'){self.head=item.name;if(self.options.showoptgroupheadings){self.addOptionGroup('loc',{title:item.name});}else{self.addOptionGroup('loc',{title:""});}}else if(item.type==='track'){if(typeof tracking_event!="undefined"){tracking_event(['AutoSuggest v3',item.action,item.label,true]);}}else if(item.group){self.addOptionGroup(item.group,{title:' '+tr_autosuggest_group[item.group],class:'as3_header--smaller',});data[index].type=item.group;}});if(selectedoptions.length){for(var k in selectedoptions){selectedoptions[k].wasSelected=true;selectedoptions[k].type='wasSelected';data.push(selectedoptions[k]);}} callback(data);if(selectedoptions.length){for(var k in selectedoptions){self.addItem(selectedoptions[k].key,true);}} self.refreshOptions(true);}}).always(function(){self.$dropdown_content.removeClass('selectize-loading');});},onBlur:function(){},onFocus:function(){}});};var carhirelocationAutosuggestFactory=function(elem){if(elem.prop('tagName')==='SELECT')return;var altfield=elem.siblings('.sb3_carhirelocation_field_alt').first();new AutoSuggest(elem.prop('id'),{script:ibeBaseURL+'ajax.php?a=carhirelocations&b=c&',varname:'input',minchars:2,delay:500,cache:false,timeout:5000,json:true,callback:function(obj){if(obj.ids){altfield.val(obj.ids);} var othercarhirelocationfields=form.find('.sb3_carhirelocation_field_js').not(elem);$.each(othercarhirelocationfields,function(key,otherElem){otherElem=$(otherElem);if(otherElem.is(':visible')&&(otherElem.val()==='')){otherElem.val(elem.val());otherElem.siblings('.sb3_carhirelocation_field_alt').first().val(altfield.val());}});},noresults:tr_autosuggest_noResultsFound,dir:textdir});elem.on('keyup keydown',function(){altfield.val('');});};var stationAutosuggestFactory=function(elem,type){if(!type)type='rail';var elem_stationkey=elem.parent().find('.sb3_stationkey_field_js');var id=elem.attr('id');if(elem.prop('tagName')==='SELECT'){return;} if(elem.data('as2_init'))return;elem.addClass('sb2_as2off');elem_stationkey.show();var elem_results=$('
').addClass('sb2_as2 sb3_station_field_results').attr('id',id+'_results').data('inputid',id);elem.attr('autocomplete','off').data('buffer',0).data('as2_init',true).data('extraparams',{prodtype:type}).after(elem_results).on("click",function(){var elem=$(this);if(elem.hasClass('sb2_as2off')){if(!elem_stationkey.val()&&typeof elem.data('originalstationkey')!=="undefined"&&elem.data('originalstationkey')){sb2_rail_as2(elem,elem.data('originalstationkey'));}else{sb2_rail_as2(elem,elem_stationkey.val());}}}).on("keyup",function(e){if(e.which==27){return;} var elem=$(this),itemval=elem.val();if(itemval!=sb2_as2_values[id]){sb2_as2_values[id]=itemval;$(this).data('originalvalue',itemval);$(this).data('originalstationkey','');elem_stationkey.val('').trigger('as2:update');clearTimeout(elem.data('buffer'));elem.data('buffer',setTimeout(function(){sb2_rail_as2(elem);},300));}}).on("keydown",function(e){var elem=$(this),elem_results=$('#'+elem.attr('id')+'_results');if(!elem.hasClass('sb2_as2on')){if(e.which==40){sb2_as2_open(elem);} return true;} var id=$(this).attr('id');if(sb2_as2_timers[id])clearTimeout(sb2_as2_timers[id]);sb2_as2_timers[id]=false;if(e.which==9||e.which==13){var selectedElement=$('.sel',elem_results);if(selectedElement.length){selectedElement.click();if(elem.hasClass('sb2_as2on')||e.which==13){$(this).data('originalvalue',$(this).val());$(this).data('originalstationkey',elem_stationkey.val());e.stopPropagation();return false;}}} if(e.which==38||e.which==40){var selectedElement=$('.sel',elem_results);if(e.which==40){if(selectedElement.length){var nextList=selectedElement.nextAll('.loc');if(nextList.length>0){selectedElement=nextList.first();}else{selectedElement=selectedElement.parent().nextAll('.loclist').first().children().first();}}else{selectedElement=$('.loc',elem_results).first();}}else{if(selectedElement.length){var prevList=selectedElement.prevAll('.loc');if(prevList.length>0){selectedElement=prevList.first();}else{selectedElement=selectedElement.parent().prevAll('.loclist').first().children().first();}}else{selectedElement=$('.loc',elem_results).last();}} selectedElement.trigger('mousemove');var list=selectedElement.parent();if(list.length){var diff=selectedElement.offset().top-list.offset().top;if(diff<0)list.scrollTop(list.scrollTop()+diff);if(diff+selectedElement.outerHeight()>list.height())list.scrollTop(diff+selectedElement.outerHeight()-list.height()+list.scrollTop());} e.stopPropagation();return false;} if(e.which==27){sb2_as2_close(elem);form.trigger('vibe:validate');e.stopPropagation();return false;}}).on("focus",function(e){if(rwd_isWidth(460)){var elem=$(this);setTimeout(function(){rwd_saveScroll(elem);},0);} var id=$(this).attr('id');if(sb2_as2_timers[id])clearTimeout(sb2_as2_timers[id]);sb2_as2_timers[id]=false;if(typeof $(this).data('originalvalue')!=="undefined"&&$(this).val()===$(this).data('originalvalue')){$(this).val('');elem_stationkey.val('');}else{$(this).data('originalvalue',$(this).val());$(this).data('originalstationkey',elem_stationkey.val());sb2_as2_values[id]=$(this).val();$(this).val('');elem_stationkey.val('');}}).on("blur",function(e){var id=$(this).attr('id');sb2_as2_timers[id]=setTimeout(function(){sb2_as2_close(elem);},300);if($(this).data('originalvalue')||$(this).data('originalstationkey')){$(this).val($(this).data('originalvalue'));elem_stationkey.val($(this).data('originalstationkey'));sb2_as2_values[id]=undefined;}});elem_results.on("mouseenter",function(){var id=$(this).data('inputid');if(sb2_as2_timers[id])clearTimeout(sb2_as2_timers[id]);sb2_as2_timers[id]=false;}).on("mouseleave",function(e){var id=$(this).data('inputid');var elem_results=$(this),elem=$('#'+elem_results.data('inputid'));if(elem_results.is(':visible')){if(sb2_as2_timers[id])clearTimeout(sb2_as2_timers[id]);sb2_as2_timers[id]=setTimeout(function(){sb2_as2_close(elem);},2000);}}).on('click','.loc',function(e){var id=$(e.delegateTarget).data('inputid');var elem_results=$(this);if(elem_results.hasClass('more')){if(sb2_as2_timers[id])clearTimeout(sb2_as2_timers[id]);e.preventDefault();return;} var name=elem_results.attr('data-name'),key=elem_results.attr('data-key'),company=elem_results.attr('data-com');var elem=$('#'+id),elem_stationkey=elem.parent().find('.sb3_stationkey_field_js');elem.val(name);elem_stationkey.val(company).trigger('as2:update');sb2_as2_values[id]=name;sb2_as2_close(elem);form.trigger('vibe:validate');});};var datePickerFactory=function(elem,opts){if(elem.prop('tagName')==='SELECT')return;var altfield=elem.siblings('.sb3_date_field_alt').first();var datefrom=altfield.attr('data-datefrom'),dateto=altfield.attr('data-dateto');if(datefrom){datefrom=new Date(parseInt(datefrom,10)*1000);datefrom=convertDatetoUTCDate(datefrom);} if(dateto){dateto=new Date(parseInt(dateto,10)*1000);dateto=convertDatetoUTCDate(dateto);} opts=$.extend({prevText:'',nextText:'',minDate:(datefrom?datefrom:0),maxDate:(dateto?dateto:'+'+(elem.attr('data-datetomonths')?parseInt(elem.attr('data-datetomonths'),10):'12')+'m'),beforeShow:rwd_calendars,altField:'#'+altfield.prop('id'),altFormat:'mm/dd/yy',defaultDate:dateStrToDateObj(altfield.val()),numberOfMonths:2,changeMonth:true,changeYear:true,onClose:function(selectedDate,inst){var elem=$(this);var partCheckin=form.find('.sb3_date_field_js.sb3_field_flighthotel_parthotel_checkInDate');var partCheckout=form.find('.sb3_date_field_js.sb3_field_flighthotel_parthotel_checkOutDate');selectedDate=new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay,12,0,0,0);var numberOfNights=form.find('.sb3_numnights_field_js');if(numberOfNights.length){numberOfNights=parseInt(numberOfNights.val(),10);}else{numberOfNights=0;} if(!elem.hasClass('sb3_date_field_return')){var returnDate=form.find('.sb3_date_field_js.sb3_date_field_return').not(partCheckout);var returnDateAltfield=returnDate.siblings('.sb3_date_field_alt').first();var datefrom=returnDateAltfield.attr('data-datefrom'),dateto=returnDateAltfield.attr('data-dateto');if(datefrom){datefrom=new Date(parseInt(datefrom,10)*1000);datefrom=convertDatetoUTCDate(datefrom);} if(dateto){dateto=new Date(parseInt(dateto,10)*1000);dateto=convertDatetoUTCDate(dateto);} var returnDateTimestamp=selectedDate;if(["hotel","flighthotel","ferryhotel"].indexOf(elem.parents('.sb3_form').attr('data-type'))!==-1){var tmpOutboundDate=new Date(selectedDate.getTime());returnDateTimestamp=new Date(tmpOutboundDate.setTime(tmpOutboundDate.getTime()+(1*86400000)));returnDateTimestamp=convertDatetoUTCDate(returnDateTimestamp);} if(datefrom){returnDate.datepicker('option','minDate',datefrom>returnDateTimestamp?datefrom:returnDateTimestamp);partCheckin.datepicker('option','minDate',datefrom>selectedDate?datefrom:selectedDate);partCheckout.datepicker('option','minDate',datefrom>selectedDate?datefrom:selectedDate);}else{returnDate.datepicker('option','minDate',returnDateTimestamp);partCheckin.datepicker('option','minDate',selectedDate);partCheckout.datepicker('option','minDate',selectedDate);} if(numberOfNights>0){var tmpOutboundDate=new Date(selectedDate.getTime());returnDate=new Date(tmpOutboundDate.setTime(tmpOutboundDate.getTime()+(numberOfNights*86400000)));partCheckin.datepicker('option','maxDate',returnDate);partCheckout.datepicker('option','maxDate',returnDate);partCheckin.datepicker('setDate',selectedDate);partCheckout.datepicker('setDate',returnDate);} if(rwd_restoreScroll){rwd_restoreScroll();}} else if(elem.hasClass('sb3_date_field_return')){if(dateto){partCheckin.datepicker('option','maxDate',dateto'+tr_datepicker_nonPreferredDateMessage+'
');preferredmsg=elem.siblings('.sb3_preferreddatemsg');} if(elem.hasClass('sb3_date_field_return')){var ispreferred=($.inArray(year+'-'+month+'-'+day,preferreddates.inbound)!==-1);}else{var ispreferred=($.inArray(year+'-'+month+'-'+day,preferreddates.outbound)!==-1);} if(!ispreferred){preferredmsg.show();}else{preferredmsg.hide();}}else{preferredmsg.hide();}}}},opts);if(altfield.attr('data-dateFormat')){opts.dateFormat=altfield.attr('data-dateFormat');} if(elem.attr("data-leaddaysconf")){var ld_conf=JSON.parse(elem.attr("data-leaddaysconf"));var beforeShowDayCallbacks=elem.data('beforeShowDayCallbacks')?elem.data('beforeShowDayCallbacks'):[];beforeShowDayCallbacks.push(function(date){dt=(date.getTime()/1000);if(dt>=ld_conf.from&&dt<=ld_conf.to){if(ld_conf.selectable===1){return[true,'leadday_info',ld_conf.txt];} else{return[true,'leadday_info ui-datepicker-unselectable',ld_conf.txt];}} else{return[true,'',''];}});elem.data('beforeShowDayCallbacks',beforeShowDayCallbacks);} if(opts.beforeShowDay){var beforeShowDayCallbacks=elem.data('beforeShowDayCallbacks')?elem.data('beforeShowDayCallbacks'):[];beforeShowDayCallbacks.push(opts.beforeShowDay);elem.data('beforeShowDayCallbacks',beforeShowDayCallbacks);} opts.beforeShowDay=function(date){var dateElem=$(this);var callbacks=[];if(dateElem.data('beforeShowDayCallbacks')){callbacks=dateElem.data('beforeShowDayCallbacks');} var result;for(var i=0;inumNights){options.remove(i);i--;len--;}else if(!options[i]){options.add(new Option(tr_nightNumber(i),i),i);}} if(numNights '+v+'';css+='.sb3_preferreddate_'+k.toString().toUpperCase()+', .sb3_preferreddate_'+k.toString().toUpperCase()+' > a.ui-state-default {';css+=' background-color: #'+k.toString().toUpperCase()+';';css+='}';});html+='';css+='';$('head').append(css);if(preferredDatesTimeout){clearTimeout(preferredDatesTimeout);} preferredDatesTimeout=setTimeout(function(){$('#ui-datepicker-div').append(html);},50);}};datepickeropts.beforeShow=function(input,inst){rwd_calendars(input,inst);var elem=$(this);if(!elem.hasClass('sb3_date_field_js'))return[true,"",""];preferredDatesLegend(elem);return null;};datepickeropts.onChangeMonthYear=function(year,month,inst){var elem=$(this);preferredDatesLegend(elem);};} form.find('.sb3_airport_field_js').each(function(key,elem){elem=$(elem);airportAutosuggestFactory(elem);if(enablepreferreddates){elem.on('keyup change',function(){var buffer=$(this).data('preferreddatesbuffer');if(buffer)clearTimeout(buffer);buffer=setTimeout(function(){updatePreferredDates();},300);});} elem.on('change',function(){if($(this).hasClass('sb3_field_iataTo')){$('.sb3_field_openjaw_returnFrom').attr('placeholder',$(this).val());} if($(this).hasClass('sb3_field_iataFrom')){$('.sb3_field_openjaw_returnTo').attr('placeholder',$(this).val());}});});form.find('.sb3_station_field_js').each(function(key,elem){elem=$(elem);if(elem.prop('tagName')==='SELECT')return;stationAutosuggestFactory(elem,elem.attr('data-prodtype'));});form.find('.sb3_booker_field_js').each(function(key,elem){elem=$(elem);bookerAutosuggestFactory(elem,function(obj){form.find('[name=bookerprofile]').val(obj.id);});$(this).on('change',function(){var text=$(this).val();if(!text){$(this).parent().find('[name=bookerprofile]').val(0);}});});form.find('.sb3_location_field_js').each(function(key,elem){elem=$(elem);locationAutosuggestFactory(elem,elem.attr('data-prodtype'));});form.find('.sb3_locationselectize_field_js').each(function(key,elem){selectizeLocationAutosuggestFactory($(elem));});form.find('.sb3_carhirelocation_field_js').each(function(key,elem){elem=$(elem);carhirelocationAutosuggestFactory(elem);});form.find('.sb3_transferlocation_field_js').each(function(key,elem){elem=$(elem);if(elem.prop('tagName')==='SELECT')return;new AutoSuggest(elem.prop('id'),{script:ibeBaseURL+'ajax.php?a=transferlocations&',varname:'input',minchars:2,delay:500,cache:false,timeout:5000,json:true,callback:function(obj){if(obj.ids){$('#'+elem.attr('id')+'_ids').val(obj.ids);}},noresults:tr_autosuggest_noResultsFound,dir:textdir});elem.on('keyup keydown',function(){$('#'+elem.attr('id')+'_ids').val('');});});form.find('.sb3_transferstartpoint_field_js').each(function(key,elem){elem=$(elem);if(elem.prop('tagName')==='SELECT')return;new AutoSuggest(elem.prop('id'),{script:function(input){return ibeBaseURL+'ajax.php?a=transferpoint&b=from&endPointId='+form.find('input[name="trEndPointId"]').val()+'&input='+input;},varname:'input',minchars:2,delay:500,cache:false,timeout:5000,json:true,callback:function(obj){if(obj.id){$('#'+elem.attr('id')+'_ids').val(obj.id);}},noresults:tr_autosuggest_noResultsFound,dir:textdir});elem.on('keyup keydown',function(){$('#'+elem.attr('id')+'_ids').val('');});});form.find('.sb3_transferendpoint_field_js').each(function(key,elem){elem=$(elem);if(elem.prop('tagName')==='SELECT')return;new AutoSuggest(elem.prop('id'),{script:function(input){return ibeBaseURL+'ajax.php?a=transferpoint&b=to&startPointId='+form.find('input[name="trStartPointId"]').val()+'&input='+input;},varname:'input',minchars:2,delay:500,cache:false,timeout:5000,json:true,callback:function(obj){if(obj.id){$('#'+elem.attr('id')+'_ids').val(obj.id);}},noresults:tr_autosuggest_noResultsFound,dir:textdir});elem.on('keyup keydown',function(){$('#'+elem.attr('id')+'_ids').val('');});});form.find('.sb3_date_field_js').each(function(key,elem){elem=$(elem);var opts=$.extend({beforeShow:rwd_calendars},datepickeropts);if(elem.hasClass('sb3_flighthotel_hotelCheckInDate')||elem.hasClass('sb3_flighthotel_hotelCheckOutDate')){var altfield=elem.siblings('.sb3_date_field_alt').first();var datefrom=altfield.attr('data-datefrom'),dateto=altfield.attr('data-dateto');if(datefrom){datefrom=new Date(parseInt(datefrom,10)*1000);datefrom=convertDatetoUTCDate(datefrom);} if(dateto){dateto=new Date(parseInt(dateto,10)*1000);dateto=convertDatetoUTCDate(dateto);} opts.onClose=function(selectedDate,inst){selectedDate=new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay,0,0,0,0);if(!$(this).hasClass('sb3_date_field_return')){var returnDate=form.find('.sb3_date_field_js.sb3_flighthotel_hotelCheckOutDate');if(datefrom){returnDate.datepicker('option','minDate',datefrom>selectedDate?datefrom:selectedDate);}else{returnDate.datepicker('option','minDate',selectedDate);} if(rwd_restoreScroll){rwd_restoreScroll();}}};} if(['flightopenjaw'].indexOf(formtype)!==-1){opts.onClose=function(selectedDate,inst){selectedDate=new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay,0,0,0,0);var altfield=$(inst.settings.altField);var numlegpane=altfield.parents('.sb3_numlegs_pane_js');numlegpane.nextAll('.sb3_numlegs_pane_js').each(function(){var nextdate=$(this).find('.sb3_date_field_js');nextdate.datepicker('option','minDate',selectedDate);});if(rwd_restoreScroll){rwd_restoreScroll();}};opts.beforeShowDay=function(date){let minDate=$(this).datepicker("option","minDate");if(typeof minDate==='number'){let days=minDate;minDate=new Date();minDate.setDate(minDate.getDate()+days);} if(minDate&&minDate.toString().substr(0,15)==date.toString().substr(0,15)){return[true,"ui-first-selectable-date"];} return[true,""];};} datePickerFactory(elem,opts);if(['ferry','ferryhotel'].indexOf(formtype)!==-1){elem.datepicker('option','beforeShowDay',function(date){var validdates=$(this).data('validdates');if(!validdates)validdates={};var routeelem=form.find('.sb3_ferryroute_field_js');var selectedroute;if($(this).hasClass('sb3_date_field_return')){routeelem=routeelem.filter('[data-dir=ret]');if(!routeelem){routeelem=routeelem.filter('[data-dir=out]');selectedroute=routeelem.find('option:selected').attr('data-returnroute');}else{selectedroute=routeelem.val();}}else{routeelem=routeelem.filter('[data-dir=out]');selectedroute=routeelem.val();} if(validdates.hasOwnProperty(selectedroute)&&validdates[selectedroute].length){var y=date.getFullYear(),m=(date.getMonth()+1),d=date.getDate();if(validdates[selectedroute].indexOf(''+y+(m<10?'0':'')+m+(d<10?'0':'')+d)!==-1){return[true];} return[false];} return[true];});}});form.find('.sb3_datereturnformat_field_js').each(function(key,elem){elem=$(elem);elem.on('change simchange',function(e){var returndatefield=$('.sb3_date_field_return',form);var returndatefieldcontainer=returndatefield.parent();if((parseInt(elem.val(),10)===1)||(parseInt(elem.val(),10)===-1)||(parseInt(elem.val(),10)===-2)){if(elem.attr('data-returndatedisplay')==='replacevalue'){var replacevaluetext=elem.attr('data-replacevalue');returndatefield.data('oldvalue',returndatefield.val());returndatefield.val(replacevaluetext).attr('placeholder',replacevaluetext);returndatefieldcontainer.addClass('sb3_field_container_disabled').find('input[type=text]').attr('disabled','disabled');$('.sb3_field_return, .sb3_time_field_return',form).parent().addClass('sb3_field_container_disabled').find('select').attr('disabled','disabled');$('.sb3_ferryroute_field_js[data-dir=ret]',form).parent().addClass('sb3_field_container_disabled').find('input[type=text]').attr('disabled','disabled');$('.sb3_flight_returnFrom, .sb3_flight_returnTo',form).parent().addClass('sb3_field_container_disabled').find('input[type=text]').attr('disabled','disabled');}else if(elem.attr('data-returndatedisplay')==='disable'){returndatefieldcontainer.addClass('sb3_field_container_disabled').find('input[type=text]').attr('disabled','disabled');$('.sb3_field_return, .sb3_time_field_return',form).parent().addClass('sb3_field_container_disabled').find('select').attr('disabled','disabled');$('.sb3_ferryroute_field_js[data-dir=ret]',form).parent().addClass('sb3_field_container_disabled').find('input[type=text]').attr('disabled','disabled');$('.sb3_flight_returnFrom, .sb3_flight_returnTo',form).parent().addClass('sb3_field_container_disabled').find('input[type=text]').attr('disabled','disabled');}else{$('.sb3_field_return,.sb3_date_field_return,.sb3_time_field_return,.sb3_ferryroute_field_js[data-dir=ret],.sb3_flight_returnFrom,.sb3_flight_returnTo',form).each(function(){$(this).closest('div:not(.sb3_multiplefields,.sb3_selectwrap)').fadeOut();});}}else{if(elem.attr('data-returndatedisplay')==='replacevalue'){if(returndatefield.data('oldvalue')!==undefined){returndatefield.val(returndatefield.data('oldvalue')).removeAttr('placeholder');} returndatefieldcontainer.removeClass('sb3_field_container_disabled').find('input[type=text]').removeAttr('disabled');$('.sb3_field_return, .sb3_time_field_return',form).parent().removeClass('sb3_field_container_disabled').find('select').removeAttr('disabled');$('.sb3_ferryroute_field_js[data-dir=ret]',form).parent().removeClass('sb3_field_container_disabled').find('input[type=text]').removeAttr('disabled');$('.sb3_flight_returnFrom, .sb3_flight_returnTo',form).parent().removeClass('sb3_field_container_disabled').find('input[type=text]').removeAttr('disabled');}else if(elem.attr('data-returndatedisplay')==='disable'){returndatefieldcontainer.removeClass('sb3_field_container_disabled').find('input[type=text]').removeAttr('disabled');$('.sb3_field_return, .sb3_time_field_return',form).parent().removeClass('sb3_field_container_disabled').find('select').removeAttr('disabled');$('.sb3_ferryroute_field_js[data-dir=ret]',form).parent().removeClass('sb3_field_container_disabled').find('input[type=text]').removeAttr('disabled');$('.sb3_flight_returnFrom, .sb3_flight_returnTo',form).parent().removeClass('sb3_field_container_disabled').find('input[type=text]').removeAttr('disabled');}else{$('.sb3_field_return,.sb3_date_field_return,.sb3_time_field_return,.sb3_ferryroute_field_js[data-dir=ret],.sb3_flight_returnFrom,.sb3_flight_returnTo',form).each(function(){$(this).closest('div:not(.sb3_multiplefields,.sb3_selectwrap)').fadeIn();});}}});}).filter(':checked').trigger('simchange');form.find('.sb3_radio_insType_js').each(function(key,elem){elem=$(elem);elem.on('change simchange',function(e){var outboundLabel=$('.sb3_date_field',form).not('.sb3_date_field_return').siblings('.sb3_label');if(elem.val()==='annual'){$('.sb3_date_field_return',form).parent().stop(true,true).fadeOut();outboundLabel.data('defaultlabel',outboundLabel.html());outboundLabel.html("Insurance Start Date:");}else{$('.sb3_date_field_return',form).parent().stop(true,true).fadeIn();outboundLabel.html(outboundLabel.data('defaultlabel'));}}).filter(':checked').trigger('simchange');});form.find('.sb3_flightvsearchsearchtype_field_js').each(function(key,elem){elem=$(elem);elem.on('change simchange',function(e){if($(this).val()==='scheduled'){var classofservicefields=$('.sb3_classofservice_field_js',form);var classofservicefieldparents=findParentContainer(classofservicefields);classofservicefieldparents.removeClass('sb3_hidden').find('input[type=radio]').removeAttr('disabled');}else{var classofservicefields=$('.sb3_classofservice_field_js',form);var classofservicefieldparents=findParentContainer(classofservicefields);classofservicefieldparents.addClass('sb3_hidden').find('input[type=radio]').attr('disabled','disabled');}});}).filter(':checked').trigger('simchange');form.find('.sb3_parthotel_field_js').each(function(key,elem){elem=$(elem);elem.on('change simchange',function(e){var checkInDate=$('.sb3_input_checkInDate',form),checkInDateParent=checkInDate.parent(),checkOutDate=$('.sb3_input_checkOutDate',form),checkOutDateParent=checkOutDate.parent();if(this.checked){checkInDateParent.show();checkOutDateParent.show();var flightOutDate=form.find('.sb3_date_field_js.sb3_field_flighthotel_outboundDate');var flightRetDate=form.find('.sb3_date_field_js.sb3_field_flighthotel_returnDate');if(!flightRetDate.length){var numberOfNights=form.find('.sb3_numnights_field_js');numberOfNights=parseInt(numberOfNights.val(),10);flightRetDate=null;} var checkInDateField=checkInDateParent.find('.hasDatepicker');var checkOutDateField=checkOutDateParent.find('.hasDatepicker');var outboundDate=flightOutDate.datepicker('getDate');checkInDateField.datepicker('setDate',outboundDate);var returnDate;if(flightRetDate){returnDate=flightRetDate.datepicker('getDate');}else{var tmpOutboundDate=new Date(outboundDate.getTime());returnDate=new Date(tmpOutboundDate.setTime(tmpOutboundDate.getTime()+(numberOfNights*86400000)));checkInDateField.datepicker('option','minDate',outboundDate);checkInDateField.datepicker('option','maxDate',returnDate);checkOutDateField.datepicker('option','minDate',outboundDate);checkOutDateField.datepicker('option','maxDate',returnDate);} checkOutDateField.datepicker('setDate',returnDate);}else{checkInDateParent.hide();checkOutDateParent.hide();}});if(!elem.is(':checked')){elem.trigger('simchange');}});form.find('.sb3_numrooms_field_js').each(function(key,elem){elem=$(elem);elem.on('change simchange',function(e){var selectedRoomNum=parseInt($(this).val(),10);var panes=$(this).parents('.sb3_form').find('.sb3_numrooms_pane_js');for(var roomNum=1;roomNum<=3;++roomNum){if(selectedRoomNum>=roomNum){var numroomspane=panes.filter('.sb3_numrooms_pane'+roomNum);numroomspane.show();if(!numroomspane.find(':input').filter('[type=text],select').length){numroomspane.hide();}}else{panes.filter('.sb3_numrooms_pane'+roomNum).hide();}}}).trigger('simchange');});form.find('.sb3_numroomslinks_js').on('click','.sb3_addroom_js',function(e){var roomNum=parseInt($(e.delegateTarget).attr('data-roomnum'),10);var form=$(this).parents('.sb3_form').first();var numRoomsField=form.find('.sb3_numrooms_field_js').last();var maxrooms=parseInt(numRoomsField.attr('data-maxrooms'),10);if(isNaN(maxrooms))maxrooms=3;if((roomNum+1)<=maxrooms){$(this).hide();numRoomsField.val((roomNum+1)).trigger('simchange');}}).on('click','.sb3_removeroom_js',function(e){var roomNum=parseInt($(e.delegateTarget).attr('data-roomnum'),10);var form=$(this).parents('.sb3_form').first();var numRoomsField=form.find('.sb3_numrooms_field_js').last();var maxrooms=parseInt(numRoomsField.attr('data-maxrooms'),10);if(isNaN(maxrooms))maxrooms=3;if((roomNum-1)>=1){if(roomNum=legNum){if(!pane.length){container=panes.parent('.sb3_numlegs_panecontainer_js');if(!panetmpl){panetmpl=container.find('.sb3_numlegs_tmplpane_js').first().html();} var newpane=panetmpl;newpane=newpane.replace(/\%LEGNUM\%/g,legNum);container.append(newpane);pane=$(this).parents('.sb3_form').find('.sb3_numlegs_pane_js').filter('.sb3_numlegs_pane_js[data-legnum="'+legNum+'"]').hide();if(legNum>=maxLegs){pane.find('.sb3_numlegslinks_js .sb3_addleg_js').hide();} if(legNum>minLegs){pane.find('.sb3_numlegslinks_js .sb3_removeleg_js').show();} pane.find('.sb3_airport_field_js').each(function(key,elem){airportAutosuggestFactory($(elem));});pane.find('.sb3_location_field_js').each(function(key,elem){locationAutosuggestFactory($(elem));});pane.find('.sb3_date_field_js').each(function(key,elem){opts={'beforeShowDay':function(date){let minDate=$(this).datepicker("option","minDate");if(typeof minDate==='number'){let days=minDate;minDate=new Date();minDate.setDate(minDate.getDate()+days);} if(minDate&&minDate.toString().substr(0,15)==date.toString().substr(0,15)){return[true,"ui-first-selectable-date"];} return[true,""];}};datePickerFactory($(elem),opts);});pane.find('.sb3_flightojmc_limithotelstay').each(function(key,elem){limithotelstayCheckboxFactory($(elem));});} if(pane.css('display')==='none'){var prevDepartureDateField=pane.prev().find('.sb3_date_field_js').first();if(prevDepartureDateField.datepicker('widget').length){pane.find('.sb3_date_field_js').datepicker('option','minDate',prevDepartureDateField.datepicker('getDate')).datepicker('setDate',prevDepartureDateField.datepicker('getDate'));}} pane.show();}else{pane.hide();pane.find(':input').val('');}}}).trigger('simchange');});form.on('click keypress','.sb3_numlegslinks_js .sb3_addleg_js',function(e){var legNum=parseInt($(this).parents('.sb3_numlegslinks_js').attr('data-legnum'),10);var form=$(this).parents('.sb3_form').first();var numLegsField=form.find('.sb3_numlegs_field_js').last();var minLegs=parseInt(numLegsField.attr('data-minLegs'),10);var maxLegs=parseInt(numLegsField.attr('data-maxLegs'),10);if((legNum+1)<=maxLegs){$(this).hide();numLegsField.val((legNum+1)).trigger('simchange');}}).on('click keypress','.sb3_numlegslinks_js .sb3_removeleg_js',function(e){var panes=$('.sb3_numlegs_pane_js');var legNum=parseInt($(this).parents('.sb3_numlegslinks_js').attr('data-legnum'),10);var form=$(this).parents('.sb3_form').first();var numLegsField=form.find('.sb3_numlegs_field_js').last();var numLegs=parseInt(numLegsField.val(),10);var minLegs=parseInt(numLegsField.attr('data-minLegs'),10);var maxLegs=parseInt(numLegsField.attr('data-maxLegs'),10);if((legNum-1)>=minLegs){if(legNum0){var clonedElem=elem.clone(true).unbind('keydown'),idprefix=clonedElem.attr('id').replace(/(.+_)[0-9]+$/,'$1');clonedElem.val('');clonedElem.data('counter',parseInt(clonedElem.data('counter'),10)-1);clonedElem.attr('id',idprefix+(parseInt(clonedElem.attr('id').replace(/.+_([0-9]+)/,'$1'),10)+1));clonedElem.attr('aria-labelledby',idprefix+'0');clonedCtr=$('
');clonedCtr.append(clonedElem);clonedCtr.insertAfter(elem.parent().parent().children(':last'));if(clonedElem.attr('id')){new AutoSuggest(clonedElem.get(0),{script:ibeBaseURL+'ajax.php?a=ajax_airline&',varname:'input',minchars:2,cache:false,timeout:10000,json:true,noresults:tr_autosuggest_noResultsFound,dir:textdir});}}}});});airlines.on("focus",rwd_scrollToAutoSuggest);form.find('.sb3_corporateprofile_field').on('change',function(){$('.sb3_choosepassengers_autosuggestfield_js',form).attr('data-corpid',$("option:selected",this).attr('data-id'));});form.find('.sb3_choosepassengers_autosuggestfield_js').each(function(key,elem){elem=$(elem);if(elem.prop('tagName')==='SELECT')return;new AutoSuggest(elem.prop('id'),{script:function(val){return ibeBaseURL+'ajax.php?a=ajax_corporateprofileuserprofile_name&corpid='+elem.attr('data-corpid')+'&input='+val;},position:'absolute',minchars:3,cache:false,timeout:10000,json:true,callback:function(obj){if(obj.id){if(obj.policies){travelPolicies[obj.id]=obj.policies;} if(elem.attr('data-corpid')==0&&obj.pid){$('.sb3_corporateprofile_field',form).each(function(){$(this).val(obj.pname);$('#'+$(this).attr('id')+'_corpid').val(obj.pid);$('.sb3_choosepassengers_autosuggestfield_js',form).attr('data-corpid',obj.pid);});} $('#'+elem.attr('id')+'_val').val(obj.id).trigger('simchange');}},noresults:tr_autosuggest_noResultsFound,dir:textdir});elem.on('change simchange',function(){var elem=$(this);if(!elem.val()){$('#'+elem.attr('id')+'_val').val('').trigger('simchange');}}).trigger('simchange');elem.on('keyup',function(e){if(e.which!=13)$('#'+$(this).attr('id')+'_val').val('').trigger('simchange');});elem.on('blur',function(){var elem=$(this);setTimeout(function(){var idelem=$('#'+elem.attr('id')+'_val');if(idelem.val()!==''){return;} $.get(ibeBaseURL+'ajax.php',{a:'ajax_corporateprofileuserprofile_name',corpid:elem.attr('data-corpid'),input:elem.val()},function(data){if(data.results.length===1){idelem.val(data.results[0].id).trigger('simchange');}else{idelem.val('').trigger('simchange');}},'json');},500);});});form.find('.sb3_numpax_field_js').each(function(key,elem){elem=$(elem);elem.on('change simchange',function(){var elem=$(this),thispaxtotal=parseInt(elem.val(),10),paxtype=elem.attr('data-paxtype');let containers=elem.parents('.sb3_pane').first();if(!containers.length){containers=elem.parents('.sb3_form').first();} if(containers.hasClass('sb3_numrooms_pane_js')){containers=elem.parents('.sb3_form').first().find('.sb3_numrooms_pane_js[data-roomnum="'+containers.data('roomnum')+'"]');} if(!elem.data('prevpaxtotal')){elem.data('prevpaxtotal',parseInt(elem.find('option').first().val(),10));} let totalpax=0;containers.find('.sb3_numpax_field_js').first().each(function(key,elem){totalpax+=parseInt($(elem).val(),10);});if(elem.data('prevpaxtotal')!==thispaxtotal){const numpaxelems=containers.find('.sb3_numpax_field_js');numpaxelems.each(function(key,otherelem){otherelem=$(otherelem);let othertotalpax=0;numpaxelems.each(function(key,otherelem2){otherelem2=$(otherelem2);if(otherelem.get(0)===otherelem2.get(0)){}else{othertotalpax+=parseInt(otherelem2.val(),10);}});const numpaxoptions=otherelem.find('option');let maxoptionlength=numpaxoptions.length-othertotalpax;numpaxoptions.each(function(key,option){option=$(option);if(option.val()<=maxoptionlength){if(!option.is(':visible')){option.removeAttr('disabled').show();}}else{if(option.is(':visible')){option.attr('disabled','disabled').hide();}}});});elem.data('prevpaxtotal',thispaxtotal);} containers.find('.sb3_choosepassengers_container_js').each(function(key,container){container=$(container);var paxid=parseInt(container.attr('data-paxid'),10);if(paxid<=totalpax){container.show().attr('aria-hidden','false');$('input.sb3_choosepassengers_field_js[type=hidden]',container).each(function(){if($(this).attr('data-userid')){$(this).val($(this).attr('data-userid')).trigger('simchange');}});}else{container.hide().attr('aria-hidden','true');$('input.sb3_choosepassengers_field_js[type=hidden]',container).each(function(){$(this).val(0);});}});var paxagecontainerclass;if(paxtype){paxagecontainerclass='.sb3_'+paxtype+'paxage_container_js';}else{paxagecontainerclass='.sb3_paxage_container_js';} containers.find(paxagecontainerclass).each(function(key,container){container=$(container);var paxid=parseInt(container.attr('data-paxid'),10);if(paxid<=thispaxtotal){if(!container.is(':visible')){container.show().attr('aria-hidden','false');}}else{container.hide().attr('aria-hidden','true');}});var nationalitycontainerclass;if(paxtype){nationalitycontainerclass='.sb3_'+paxtype+'nationality_container_js';}else{nationalitycontainerclass='.sb3_nationality_container_js';} containers.find(nationalitycontainerclass).each(function(key,container){container=$(container);var paxid=parseInt(container.attr('data-paxid'),10);if(paxid<=thispaxtotal){if(!container.is(':visible')){container.show().attr('aria-hidden','false');}}else{container.hide().attr('aria-hidden','true');}});form.find('.sb3_selectbox_travelcard_field_js').each(function(key,elem){elem=$(elem);elem.trigger('simchange');});}).trigger('simchange');});var isCorporateProfile=form.find('.sb3_choosepassengers_container_js').length>0;form.find('.sb3_selectbox_travelcard_field_js').each(function(key,elem){elem=$(elem);elem.on('change simchange',function(){let numPax=0;let numpaxFields=form.find('.sb3_numpax_field_js');if(!numpaxFields.length)return;numpaxFields.first().each(function(key,elem){numPax+=parseInt($(elem).val(),10);});var values=new Array();form.find('.sb3_selectbox_travelcard_field_js').each(function(key,select){select=$(select);var thisVal=select.val();if(thisVal){values.push(thisVal);} select.val('');});var showNew=!isCorporateProfile&&(values.length1){if(travelPolicyElem.attr('data-force-selection')){policyoption=document.createElement('option');policyoption.value='';policyoption.text="(Select travel policy)";if(typeof(travelPolicyElem.attr('data-selected'))=="undefined"||!travelPolicyElem.attr('data-selected')){policyoption.selected="selected";} travelPolicyElem.prepend(policyoption);if(typeof(travelPolicyElem.attr('data-selected'))=="undefined"||!travelPolicyElem.attr('data-selected')){travelPolicyElem.val('');}} travelPolicyElemParent.show().attr('aria-hidden','false');}else{travelPolicyElemParent.hide().attr('aria-hidden','true');}}else{travelPolicyElemParent.hide().attr('aria-hidden','true');}}}).trigger('simchange');});form.find('.sb3_numpaxlinks_js').on('click','.sb3_addpax_js',function(e){var form=$(this).parents('.sb3_form').first();var numPaxField=form.find('.sb3_numpax_field_js').last();var numPax=parseInt(numPaxField.val(),10);if(numPaxField.find('option[value='+(numPax+1)+']').length){$('.sb3_removepax_js',form).show();numPaxField.val((numPax+1)).trigger('simchange');} if(!numPaxField.find('option[value='+(numPax+2)+']').length){$(this).hide();}}).on('click','.sb3_removepax_js',function(e){var form=$(this).parents('.sb3_form').first();var numPaxField=form.find('.sb3_numpax_field_js').last();var numPax=parseInt(numPaxField.val(),10);if(numPaxField.find('option[value='+(numPax-1)+']').length){$('.sb3_addpax_js',form).show();numPaxField.val((numPax-1)).trigger('simchange');} if(!numPaxField.find('option[value='+(numPax-2)+']').length){$(this).hide();}}).find('.sb3_removepax_js').trigger('click');form.find('.sb3_flightojmc_limithotelstay').each(function(key,elem){limithotelstayCheckboxFactory($(elem));});form.find('.sb3_ferryroute_field_js').each(function(key,elem){elem=$(elem);elem.on('change simchange',function(){var routeelem=$(this),routestr=routeelem.val(),returnroutestr=routeelem.find('option:selected').attr('data-returnroute'),methodoftravelelem=form.find('.sb3_ferrymethodoftravel_field_js').first();if(routestr!==''){var dateFields=form.find('.sb3_date_field_js');$.get(ibeBaseURL+'ajax.php?a=ferryValidDates&route='+routestr,function(datesstr){datesstr=$.parseJSON(datesstr);dateFields.each(function(key,dateelem){dateelem=$(dateelem);var validdates=dateelem.data('validdates');if(!validdates)validdates={};validdates[routestr]=datesstr['outbound'];validdates[returnroutestr]=datesstr['return'];dateelem.data('validdates',validdates);});});} if(routeelem.attr('data-dir')!=='out'){return;} if(!methodoftravelelem.attr('data-hascustomoptions')){if(routestr){var area=routestr.split('-'),area=area[area.length-1];var ferryresortdestinationelem;$.getJSON(ibeBaseURL+'ajax.php',{'a':'ferryDestinations','area':area},function(data){ferryresortdestinationelem=form.find('.sb3_ferryresortdestination_field_js');if(data.length>0){if(ferryresortdestinationelem.prop('tagName')!=='SELECT'){ferryresortdestinationelem.remove();ferryresortdestinationelem=[];} if(!ferryresortdestinationelem.length){ferryresortdestinationelem=$('');ferryresortelem.insertAfter(destinationelem);ferryresortelem.on('change',function(){$.getJSON(ibeBaseURL+'ajax.php',{'a':'ferryMethodsResort','dest':destinationelem.val(),'orig':routestr},function(data){if(data.length>0){routeelem.data('ferryMethods',data);var methodsoftravelelem=form.find('.sb3_ferrymethodoftravel_field_js');if(methodsoftravelelem.attr('data-populatedvalue')&&!routeelem.data('selectedmethodoftravel')){routeelem.data('selectedmethodoftravel',methodsoftravelelem.attr('data-populatedvalue'));} var optionsHTML='';optionsHTML+='';for(var i=0;i';} methodsoftravelelem.html(optionsHTML);if(routeelem.data('selectedmethodoftravel')){methodsoftravelelem.val(routeelem.data('selectedmethodoftravel')).trigger('change');}}});});} var optionsHTML='';optionsHTML+='';for(var i=0;i'+data[i]['name']+'';} ferryresortelem.html(optionsHTML);}else{$.getJSON(ibeBaseURL+'ajax.php',{'a':'ferryMethodsDestination','dest':destinationelem.val(),'orig':routestr},function(data){if(data.length>0){routeelem.data('ferryMethods',data);var methodsoftravelelem=form.find('.sb3_ferrymethodoftravel_field_js');if(methodsoftravelelem.attr('data-populatedvalue')&&!routeelem.data('selectedmethodoftravel')){routeelem.data('selectedmethodoftravel',methodsoftravelelem.attr('data-populatedvalue'));} var optionsHTML='';optionsHTML+='';for(var i=0;i';} methodsoftravelelem.html(optionsHTML);if(routeelem.data('selectedmethodoftravel')){methodsoftravelelem.val(routeelem.data('selectedmethodoftravel')).trigger('change');}}});}});});} var optionsHTML='';optionsHTML+='';for(var i=0;i'+data[i]['name']+'';} ferryresortdestinationelem.empty().html(optionsHTML);if(data.length===1){ferryresortdestinationelem.val(data[0]['id']).hide().trigger('change');}else{ferryresortdestinationelem.show();}}else{ferryresortdestinationelem.empty().hide();$.getJSON(ibeBaseURL+'ajax.php',{'a':'ferryMethods','route':routestr},function(data){if(data.length>0){routeelem.data('ferryMethods',data);var methodsoftravelelem=form.find('.sb3_ferrymethodoftravel_field_js');if(methodsoftravelelem.attr('data-populatedvalue')&&!routeelem.data('selectedmethodoftravel')){routeelem.data('selectedmethodoftravel',methodsoftravelelem.attr('data-populatedvalue'));} var optionsHTML='';optionsHTML+='';for(var i=0;i';if(data[i].alertmsg){(function(value,alertmsg){methodsoftravelelem.off('change.sb3alertmsg').on('change.sb3alertmsg',function(){if($(this).val()===value&&$(this).attr('prevval')!==value){alert(alertmsg);} $(this).attr('prevval',$(this).val());});})(value,data[i].alertmsg);}} methodsoftravelelem.html(optionsHTML);if(routeelem.data('selectedmethodoftravel')){methodsoftravelelem.val(routeelem.data('selectedmethodoftravel')).trigger('change');if(methodsoftravelelem.val()===null){methodsoftravelelem.val(-1).trigger('change');}}}});}});} form.find('.sb3_ferryresort_field_js').remove();}else{if(!methodoftravelelem.attr('data-hascustomoptions')){form.find('.sb3_ferryvehicledimension_field_js').each(function(){findParentContainer($(this)).parent().remove();});} var methodsoftravelelem=form.find('.sb3_ferrymethodoftravel_field_js');methodsoftravelelem.trigger('simchange');} var otherRouteElem=form.find('.sb3_ferryroute_field_js[data-dir="'+(routeelem.attr('data-dir')==='out'?'ret':'out')+'"]').first();if(otherRouteElem.length&&!otherRouteElem.val()){otherRouteElem.val(routeelem.find('option:selected').attr('data-returnroute'));}});var fieldstoshow=[];form.find('.sb3_ferryvehicledimension_field_js').each(function(key,dimensionelem){dimensionelem=$(dimensionelem);if((parseInt(dimensionelem.val(),10)<1)||(dimensionelem.val().length<1)){findParentContainer(dimensionelem).hide().parent().hide();}else{fieldstoshow.push(dimensionelem);}});$.each(fieldstoshow,function(key,field){findParentContainer($(field)).show().parent().show();});fieldstoshow=[];form.find('.sb3_ferrynumvehicles_field_js').each(function(key,numvehicleselem){numvehicleselem=$(numvehicleselem);if(!elem.val()){findParentContainer(numvehicleselem).hide();}else{fieldstoshow.push(numvehicleselem);}});$.each(fieldstoshow,function(key,field){findParentContainer($(field)).show();});});var ferryBackupDimensionOptions=function(dimensionElem){var opts=[];dimensionElem.find('option').each(function(){opts.push({value:$(this).val(),text:$(this).text()});});dimensionElem.data('backupopts',opts);};var ferryGetBackupDimensionOptions=function(dimensionElem){return dimensionElem.data('backupopts');};var ferryPopulateDimensionOptions=function(dimensionElem,opts){var selectedValue=dimensionElem.val();for(var i=0,options=dimensionElem.get(0).options,len=Math.max(options.length,opts.length);i=opts.length){options.remove(i);i--;len--;}else if(!options[i]){options.add(new Option(opts[i].text,opts[i].value),i);}else{options[i].value=opts[i].value;options[i].text=opts[i].text;}} dimensionElem.val(selectedValue);if(!dimensionElem.val()){dimensionElem.val(dimensionElem.find('option:first').val());}};form.find('.sb3_ferrymethodoftravel_field_js').each(function(key,elem){elem=$(elem);elem.on('change simchange',function(){var elem=$(this),selectedoption=elem.find(':selected'),routeelem=form.find('.sb3_ferryroute_field_js');routeelem.data('selectedmethodoftravel',selectedoption.val());var vehiclelengthelem=form.find('.sb3_ferryvehicledimension_field_js[name=vehicleLength]');if(!vehiclelengthelem.length){vehiclelengthelem=$('');vehiclelengthelem.insertAfter(elem);} if(!vehiclelengthelem.data('selectedvalue')&&vehiclelengthelem.attr('data-populatedvalue')){vehiclelengthelem.data('selectedvalue',vehiclelengthelem.attr('data-populatedvalue')).removeAttr('data-populatedvalue');} if(selectedoption.attr('data-vehiclelength')){vehiclelengthelem.val(selectedoption.attr('data-vehiclelength'));}else if(elem.attr('data-hascustomoptions')){vehiclelengthelem.val('');}else if(vehiclelengthelem.data('selectedvalue')){vehiclelengthelem.val(vehiclelengthelem.data('selectedvalue'));}else{vehiclelengthelem.val('-1');} var vehicleheightelem=form.find('.sb3_ferryvehicledimension_field_js[name=vehicleHeight]');if(!vehicleheightelem.length){vehicleheightelem=$('');vehicleheightelem.insertAfter(elem);} if(!vehicleheightelem.data('selectedvalue')&&vehicleheightelem.attr('data-populatedvalue')){vehicleheightelem.data('selectedvalue',vehicleheightelem.attr('data-populatedvalue')).removeAttr('data-populatedvalue');} if(selectedoption.attr('data-vehicleheight')){vehicleheightelem.val(selectedoption.attr('data-vehicleheight'));}else if(elem.attr('data-hascustomoptions')){vehicleheightelem.val('');}else if(vehicleheightelem.data('selectedvalue')){vehicleheightelem.val(vehicleheightelem.data('selectedvalue'));}else{vehicleheightelem.val('-1');} var trailerlengthelem=form.find('.sb3_ferryvehicledimension_field_js[name=trailerLength]');if(!trailerlengthelem.length){trailerlengthelem=$('');trailerlengthelem.insertAfter(elem);} if(!trailerlengthelem.data('selectedvalue')&&trailerlengthelem.attr('data-populatedvalue')){trailerlengthelem.data('selectedvalue',trailerlengthelem.attr('data-populatedvalue')).removeAttr('data-populatedvalue');} if(selectedoption.attr('data-trailerlength')){trailerlengthelem.val(selectedoption.attr('data-trailerlength'));}else if(elem.attr('data-hascustomoptions')){trailerlengthelem.val(trailerlengthelem.find('option:first').val());}else if(trailerlengthelem.data('selectedvalue')){trailerlengthelem.val(trailerlengthelem.data('selectedvalue'));}else{trailerlengthelem.val(trailerlengthelem.find('option:first').val());} var trailerheightelem=form.find('.sb3_ferryvehicledimension_field_js[name=trailerHeight]');if(!trailerheightelem.length){trailerheightelem=$('');trailerheightelem.insertAfter(elem);} if(!trailerheightelem.data('selectedvalue')&&trailerheightelem.attr('data-populatedvalue')){trailerheightelem.data('selectedvalue',trailerheightelem.attr('data-populatedvalue')).removeAttr('data-populatedvalue');} if(selectedoption.attr('data-trailerheight')){trailerheightelem.val(selectedoption.attr('data-trailerheight'));}else if(elem.attr('data-hascustomoptions')){trailerheightelem.val(trailerheightelem.find('option:first').val());}else if(trailerheightelem.data('selectedvalue')){trailerheightelem.val(trailerheightelem.data('selectedvalue'));}else{trailerheightelem.val(trailerheightelem.find('option:first').val());} var numvehiclesparentelem=findParentContainer(form.find('.sb3_ferrynumvehicles_field_js'));if(selectedoption.attr('data-multiple')==='true'){numvehiclesparentelem.show();}else{numvehiclesparentelem.hide();} if(selectedoption.val()!==''){var updateSearchForm=function(data){var petsparentelem=findParentContainer(form.find('.sb3_ferrynumpets_field_js'));if(data.allowPets){petsparentelem.show();}else{petsparentelem.hide();} var farecodeelem=form.find('.sb3_ferryfarecode_field_js'),farecodeparentelem=findParentContainer(farecodeelem);if(data.allowFareCode){farecodeparentelem.show();}else if(farecodeelem.attr('data-overridehide')!=='true'){farecodeparentelem.hide();} var trailerlengthelem=form.find('.sb3_ferryvehicledimension_field_js').filter('[name=trailerLength]'),trailerlengthparentelem=findParentContainer(trailerlengthelem);if(data.trailerLengthLabel){var labelelem=trailerlengthparentelem.find('.sb3_label');trailerlengthelem.data('originallabel',labelelem.html());if(!labelelem.attr('data-customlabel')){labelelem.html(data.trailerLengthLabel);}}else if(trailerlengthelem.data('originallabel')){trailerlengthparentelem.find('.sb3_label').html(trailerlengthelem.data('originallabel'));}};if(!selectedoption.data('ferrySearchFormConfig')){$.getJSON(ibeBaseURL+'ajax.php',{a:'ferrySearchFormConfig',route:routeelem.val(),methodoftravel:selectedoption.val()},function(data){selectedoption.data('ferrySearchFormConfig',data);updateSearchForm(data);});}else{updateSearchForm(selectedoption.data('ferrySearchFormConfig'));}} var ferryMethods=routeelem.data('ferryMethods');if(ferryMethods){var fieldstoshow=[];findParentContainer(form.find('.sb3_ferrynumvehicles_field_js')).hide();$.each(ferryMethods,function(key,method){var dimensionelem,numvehicleselem;if(elem.val()===key+'|'+method['vehicle']['code']+'|'+(!!method['trailer']?method['trailer']['code']:'')){if(method['vehicle']['length']==='true'){dimensionelem=form.find('.sb3_ferryvehicledimension_field_js[name=vehicleLength]');fieldstoshow.push(dimensionelem);ferryBackupDimensionOptions(dimensionelem);if(!!method['vehicle']['lengths']){ferryPopulateDimensionOptions(dimensionelem,method['vehicle']['lengths']);dimensionelem.find('option').show();}else{ferryPopulateDimensionOptions(dimensionelem,ferryGetBackupDimensionOptions(dimensionelem));$.each(dimensionelem.find('option').show(),function(key,optionelem){var optionval=parseInt($(optionelem).val(),10),showoption=true;if(method['vehicle']['minLength']&&method['vehicle']['minLength']>optionval){showoption=false;} if(method['vehicle']['maxLength']&&method['vehicle']['maxLength']optionval){showoption=false;} if(method['vehicle']['maxHeight']&&method['vehicle']['maxHeight']optionval){showoption=false;} if(method['trailer']['maxLength']&&method['trailer']['maxLength']optionval){showoption=false;} if(method['trailer']['maxHeight']&&method['trailer']['maxHeight']0){nbf_lightbox(tr_searchform_ferryPetsSelectedText);}}).trigger('simchange');});} form.find('.sb3_ferryroute_field_js').trigger('simchange');form.on('focus','.flightojmcv2_iataTo',function(){if(!$(this).val()){$(this).data('hasfocus',true);}});form.on('keyup change focus','.flightojmcv2_iataTo',function(){var elem=$(this),buffer=elem.data('buffer');if(buffer){clearTimeout(buffer);} buffer=setTimeout(function(){var returningFrom=form.find('.flightojmcv2_returningFrom');if(elem.data('hasfocus')){returningFrom.val(elem.val());}},300);elem.data('buffer',buffer);});form.on('blur','.flightojmcv2_iataTo',function(){var elem=$(this),focusbuffer=elem.data('focusbuffer');if(focusbuffer){clearTimeout(focusbuffer);} focusbuffer=setTimeout(function(){elem.data('hasfocus',false);},500);elem.data('focusbuffer',focusbuffer);});form.on('click','.sb3_multicity_addproduct_js',function(e){e.preventDefault();var addproductctr=$(this).parents('.sb3_multicity_addproductlinks_js').first();var tmplname=$(this).attr('data-template');var template=form.find('.sb3_jstemplate_js[data-name="'+tmplname+'"]').first().html();var target=form.find('.sb3_pagesection_jstarget_js[data-name="'+addproductctr.attr('data-target')+'"]').first();target.append('
'+template+'
');var addedproducts=target.find('.sb3_addedproduct_js');var addedproduct=addedproducts.last();var counter=$(this).data('counter');if(!counter){counter=0;} form.find('.flightojmcv2_showon_'+tmplname).removeClass('hidden');addedproduct.find('.sb3_airport_field_js').each(function(key,elem){elem=$(elem);elem.attr('id',elem.attr('id')+'_'+counter);airportAutosuggestFactory(elem);});addedproduct.find('.sb3_location_field_js').each(function(key,elem){elem=$(elem);elem.attr('id',elem.attr('id')+'_'+counter);locationAutosuggestFactory(elem);});addedproduct.find('.sb3_date_field_js').each(function(key,elem){elem=$(elem);elem.attr('id',elem.attr('id')+'_'+counter);var alt=elem.siblings('.sb3_date_field_alt').first();alt.attr('id',alt.attr('id')+'_'+counter);datePickerFactory(elem);});addedproduct.find('.sb3_carhirelocation_field_js').each(function(key,elem){elem=$(elem);elem.attr('id',elem.attr('id')+'_'+counter);var alt=elem.siblings('.sb3_carhirelocation_field_alt').first();alt.attr('id',alt.attr('id')+'_'+counter);carhirelocationAutosuggestFactory(elem);});$(this).data('counter',counter+1);var prevproduct=addedproduct.prev('.sb3_addedproduct_js');var previousdate;if(prevproduct.length){previousdate=prevproduct.find('.sb3_date_field_js').last().datepicker('getDate');}else{previousdate=form.find('.sb3_field_flightojmcv2_outboundDate').first().datepicker('getDate');} var addedproductfirstdate=addedproduct.find('.sb3_date_field_js').first();addedproductfirstdate.datepicker('setDate',previousdate);var nextdate=form.find('.sb3_field_flightojmcv2_returnDate').first().datepicker('getDate');var addedproductlastdate=addedproduct.find('.sb3_date_field_js').last();addedproductlastdate.datepicker('setDate',nextdate);target.trigger('updateupdownarrowui',[addedproducts]);});form.on('click','.sb3_multicity_removeproduct_js',function(e){e.preventDefault();var target=$(this).parents('.sb3_pagesection_jstarget_js').first();$(this).parents('.sb3_addedproduct_js').remove();var addedproducts=target.find('.sb3_addedproduct_js');target.trigger('updateupdownarrowui',[addedproducts]);});form.on('click','.sb3_updownarrows_up_js',function(e){var target=$(this).parents('.sb3_pagesection_jstarget_js').first();var product=$(this).parents('.sb3_addedproduct_js').first();var previousproduct=product.prev();if(previousproduct.length){product.insertBefore(previousproduct);} var addedproducts=target.find('.sb3_addedproduct_js');target.trigger('updateupdownarrowui',[addedproducts]);});form.on('click','.sb3_updownarrows_down_js',function(e){var target=$(this).parents('.sb3_pagesection_jstarget_js').first();var product=$(this).parents('.sb3_addedproduct_js').first();var nextproduct=product.next();if(nextproduct.length){product.insertAfter(nextproduct);} var addedproducts=target.find('.sb3_addedproduct_js');target.trigger('updateupdownarrowui',[addedproducts]);});form.on('updateupdownarrowui','.sb3_pagesection_jstarget_js',function(e,addedproducts){var counter=0;var showup,showdown,totaladdedproducts=addedproducts.length;addedproducts.each(function(key,elem){showup=true;showdown=true;if(counter===0){showup=false;showdown=true;if(counter===totaladdedproducts-1){showdown=false;}}else if(counter===totaladdedproducts-1){showup=true;showdown=false;} var uparrow=$(elem).find('.sb3_updownarrows_up_js');if(showup){uparrow.show();}else{uparrow.hide();} var downarrow=$(elem).find('.sb3_updownarrows_down_js');if(showdown){downarrow.show();}else{downarrow.hide();} counter++;});});form.find('.sb3_corporateprofileautosuggest_field_js').each(function(key,elem){elem=$(elem);if(elem.prop('tagName')==='SELECT')return;new AutoSuggest(elem.prop('id'),{script:ibeBaseURL+'ajax.php?a=ajax_corporateprofile_name&b=a&yesuser=1&',varname:'input',minchars:3,cache:false,timeout:10000,json:true,noresults:tr_autosuggest_noResultsFound,dir:textdir,callback:function(a){$('#'+elem.prop('id')+'_corpid').val(a.id);$('.sb3_choosepassengers_autosuggestfield_js',form).attr('data-corpid',a.id);}});});var updateFareTypes=function(faretypeElem){var iataFrom=form.find('.sb3_input_iataFrom').first().val(),iataTo=form.find('.sb3_input_iataTo,.sb3_overrideiatato_field_js').first().val();if(!iataTo){iataTo=form.find('.sb3_location_field_js, .sb3_locationselectize_field_js').first().val();} if(iataFrom&&iataTo){if(iataFrom.length>3){iataFrom=iataFrom.substr(-4,3);} if(iataTo.length>3&&iataTo.indexOf("(")!==-1&&iataTo.indexOf(")")!==-1){iataTo=iataTo.substr(-4,3);}else if(iataTo.length>32&&iataTo.indexOf(",")!==-1){} var routes=faretypeElem.data('routes');var matches=false;for(var i in routes){if((routes[i][0]==="*"||iataFrom===routes[i][0])&&(routes[i][1]==="*"||iataTo.indexOf(routes[i][1])!==-1)){matches=true;break;}} if(matches){findParentContainer(faretypeElem).removeClass('sb3_hidden');}else{findParentContainer(faretypeElem).addClass('sb3_hidden');}}};form.find('.sb3_faretypes_js').each(function(key,elem){elem=$(elem);if(elem.attr('data-routes')){elem.data('routes',JSON.parse(elem.attr('data-routes')));findParentContainer(elem).addClass('sb3_hidden');$(document).on('airportas:update',function(e,selectedasresult,inputelem){updateFareTypes(elem);});$(document).on('as2:update','.sb3_locationkey_field_js, .sb3_locationselectize_field_js',function(e){updateFareTypes(elem);});updateFareTypes(elem);}});$('input,textarea,select',form).on("focusin",function(){$(this).parents('div').not('.sb3_multiplefields, .sb3_selectwrap').first().addClass('sb3_focussed');}).on("focusout",function(){$(this).parents('div').not('.sb3_multiplefields, .sb3_selectwrap').first().removeClass('sb3_focussed');});$('[aria-required="true"]',form).each(function(key,elem){$(elem).on('change',function(){setTimeout(function(){form.trigger('vibe:validate');},250);});});form.on('vibe:validate',function(e){if(!$(this).data('hasbeensubmit')){return;} var errors=[],label;if(['fare','flight','flightopenjawmulticentre','flydrive','packages','multicentre'].indexOf(formtype)!==-1){var iataFrom=$(this).find('.sb3_input_iataFrom').first(),iataTo=$(this).find('.sb3_input_iataTo').first();if(iataFrom.length&&iataTo.length){if(iataFrom.val()===''&&iataTo.val()===''){iataFrom.data('validated',true);iataTo.data('validated',true);errors.push([[iataFrom,iataTo],tr_sb2ErrorMissingDepartureDestinationAirport]);}else{if(iataFrom.val()===''){iataFrom.data('validated',true);errors.push([iataFrom,(iataFrom.attr('data-error')?iataFrom.attr('data-error'):tr_sb2ErrorMissingDepartureAirport)]);}else{iataFrom.data('validated',false);iataFrom.removeClass('sb3_error').parent().removeClass('sb3_error');} if(iataTo.val()===''){iataTo.data('validated',true);errors.push([iataTo,(iataTo.attr('data-error')?iataTo.attr('data-error'):tr_sb2ErrorMissingDestinationAirport)]);}else if(['flightopenjawmulticentre'].indexOf(formtype)===-1&&iataFrom.val()===iataTo.val()){iataFrom.data('validated',true);iataTo.data('validated',true);errors.push([iataTo,tr_sb2ErrorSameAirports]);}else{iataFrom.data('validated',false);iataTo.data('validated',false);iataFrom.removeClass('sb3_error').parent().removeClass('sb3_error');iataTo.removeClass('sb3_error').parent().removeClass('sb3_error');}}}} if(['hotel'].indexOf(formtype)!==-1){var city=$(this).find('.sb3_input_city').first();if(city.length){var locationkey=city.parent().find('.sb3_locationkey_field_js');if(locationkey.val()===''){city.data('validated',true);errors.push([city,(city.attr('data-error')?city.attr('data-error'):tr_sb2ErrorMissingDestinationPoint)]);}else{city.data('validated',false);city.removeClass('sb3_error').parent().removeClass('sb3_error');}}} if(['multicentre'].indexOf(formtype)!==-1){var city=$(this).find('.sb3_input_products_hotel_city');if(city.length){city.each(function(index){var locationkey=$(this).parent().find('.sb3_locationkey_field_js');if(locationkey.val()===''){$(this).data('validated',true);errors.push([$(this),($(this).attr('data-error')?$(this).attr('data-error'):tr_sb2ErrorMissingDestinationPoint)]);}else{$(this).data('validated',false);$(this).removeClass('sb3_error').parent().removeClass('sb3_error');}});}} if(['flighthotel'].indexOf(formtype)!==-1){var iataFrom=$(this).find('.sb3_input_iataFrom').first(),iataTo=$(this).find('.sb3_input_city').first();if(iataFrom.length&&iataTo.length){if(iataFrom.val()===''){iataFrom.data('validated',true);errors.push([iataFrom,(iataFrom.attr('data-error')?iataFrom.attr('data-error'):tr_sb2ErrorMissingDeparturePoint)]);}else{iataFrom.data('validated',false);iataFrom.removeClass('sb3_error').parent().removeClass('sb3_error');} var locationkey=iataTo.parent().find('.sb3_locationkey_field_js');if(locationkey.val()===''){iataTo.data('validated',true);errors.push([iataTo,(iataTo.attr('data-error')?iataTo.attr('data-error'):tr_sb2ErrorMissingDestinationPoint)]);}else if(iataFrom.val()===iataTo.val()){iataFrom.data('validated',true);iataTo.data('validated',true);errors.push([iataTo,tr_sb2ErrorSameLocation]);}else{iataFrom.data('validated',false);iataTo.data('validated',false);iataFrom.removeClass('sb3_error').parent().removeClass('sb3_error');iataTo.removeClass('sb3_error').parent().removeClass('sb3_error');}}} if(['ferry','ferryhotel'].indexOf(formtype)!==-1){var outRoute=$(this).find('.sb3_ferryroute_field_js').first();if(outRoute.length){if(outRoute.val()===''||outRoute.val()==='-1'){outRoute.data('validated',true);errors.push([outRoute,tr_sb2FerryDepartingFromErrorInvalidRoute]);}else{outRoute.data('validated',false);outRoute.removeClass('sb3_error').parent().removeClass('sb3_error');}} var methodOfTravel=$(this).find('.sb3_ferrymethodoftravel_field_js').first();if(methodOfTravel.length){if((methodOfTravel.val()===null)||(methodOfTravel.val()==='')||(methodOfTravel.val()==='-1')||(methodOfTravel.val().substring(methodOfTravel.val().length-4)==='|-|-')){methodOfTravel.data('validated',true);errors.push([methodOfTravel,tr_sb2FerryMethodOfTravelErrorInvalidMethod]);}else{methodOfTravel.data('validated',false);methodOfTravel.removeClass('sb3_error').parent().removeClass('sb3_error');}} $.each($(this).find('.sb3_ferryvehicledimension_field_js'),function(key,dimension){dimension=$(dimension);if(dimension.length&&dimension.is(':visible')){if(dimension.val()===''||dimension.val()==='-1'){dimension.data('validated',true);if(dimension.hasClass('sb3_input_vehicleLength')||dimension.hasClass('sb3_input_trailerLength')){errors.push([dimension,tr_sb2FerryLengthErrorInvalidLength]);}else if(dimension.hasClass('sb3_input_vehicleMake')||dimension.hasClass('sb3_input_trailerMake')){errors.push([dimension,tr_sb2FerryHeightErrorInvalidMake]);}else if(dimension.hasClass('sb3_input_vehicleModel')||dimension.hasClass('sb3_input_trailerModel')){errors.push([dimension,tr_sb2FerryHeightErrorInvalidModel]);}else{errors.push([dimension,tr_sb2FerryHeightErrorInvalidHeight]);}}else{dimension.data('validated',false);dimension.removeClass('sb3_error').parent().removeClass('sb3_error');}}});} if(['hotel','flighthotel','ferryhotel'].indexOf(formtype)!==-1){var numNights=$(this).find('.sb3_numnights_field_js').first();if(numNights.length){if(numNights.val()===''||isNaN(parseInt(numNights.val(),10))||numNights.val().length>3){numNights.data('validated',true);errors.push([numNights,tr_sb2ErrorInvalidNumNights]);}else{numNights.data('validated',false);numNights.removeClass('sb3_error').parent().removeClass('sb3_error');}}} if(['multicentre'].indexOf(formtype)!==-1){var numNightsFields=$(this).find('.sb3_numnights_field_js');numNightsFields.each(function(){let numNights=$(this);var maxNights=numNights.attr('max');var minNights=numNights.attr('min');maxNights=typeof maxNights==='undefined'?999:parseInt(maxNights,10);minNights=typeof minNights==='undefined'?1:parseInt(minNights,10);if(numNights.length){let num=parseInt(numNights.val(),10);if(numNights.val()===''||isNaN(num)||numNights.val().length>3){numNights.data('validated',true);errors.push([numNights,tr_sb2ErrorInvalidNumNights]);}else if(num>maxNights){numNights.data('validated',true);errors.push([numNights,tr_sb2ErrorMaximumNumNights.replace('$num',maxNights+1)]);}else if(numdateto){dateObj=new Date(dateto*1000);dateObj=convertDatetoUTCDate(dateObj);outboundDate.data('validated',true);returnDate.data('validated',true);errors.push([outboundDate.siblings('.sb3_date_field_js').first(),tr_sb2OutboundDateErrorCannotSearchAfter.replace('$date',dateObj.getDate()+' '+trarray_monthnames[dateObj.getMonth()]+' '+dateObj.getFullYear())]);} if(returnDate.val()===''){returnDate.data('validated',true);errors.push([returnDate,tr_sb2ReturnDateErrorMissingDate]);}else{var datefrom=parseInt(returnDate.attr('data-datefrom'),10);var dateto=parseInt(returnDate.attr('data-dateto'),10);if(datefrom!==0&&datetounixtime(returnDateSplit[2],parseInt(returnDateSplit[0],10)-1,returnDateSplit[1],0,0,0)dateto){dateObj=new Date(dateto*1000);dateObj=convertDatetoUTCDate(dateObj);returnDate.data('validated',true);errors.push([returnDate.siblings('.sb3_date_field_js').first(),tr_sb2ReturnDateErrorCannotSearchAfter.replace('$date',dateObj.getDate()+' '+trarray_monthnames[dateObj.getMonth()])]);}else if(datetounixtime(returnDateSplit[2],parseInt(returnDateSplit[0],10)-1,returnDateSplit[1])-datetounixtime(outboundDateSplit[2],parseInt(outboundDateSplit[0],10)-1,outboundDateSplit[1])=18){numadt++;}});}else{$(visibleadultinputs).each(function(i,numadts){numadt+=$(numadts).val();});$(visibleinfantinputs).each(function(i,numinfs){numinf+=$(numinfs).val();});} if(numinf>numadt){errors.push([[visibleageinputs,visibleinfantinputs],tr_sb2ErrorOneInfantPerAdult]);}}} if(['flighthotel'].indexOf(formtype)!==-1){var numpax=0;var numpaxfields=$(this).find('select.sb3_numpax_field_js:visible').each(function(){numpax+=parseInt($(this).val(),10);});if(numpax>9){errors.push([[numpaxfields],tr_sb2ErrorFlightHotelMaxGuests]);}else{numpaxfields.parent().removeClass('sb3_error');}} if(['rail'].indexOf(formtype)!==-1){var dateObj;var outboundDate=$(this).find('.sb3_input_outboundDate,.sb3_input_ferryOutDate').first();if(outboundDate.length){var outboundDateSplit=outboundDate.val().split('../../index.html');var outboundTime=$(this).find('.sb3_time_field_js').first();var storefrontDateTime=new Date().toLocaleString('en-US',{timeZone:outboundTime.data('timezone')});var storefrontSplit=storefrontDateTime.split(',');var storefrontDateSplit=storefrontSplit[0].split('../../index.html');var storefrontDate=('0'+(storefrontDateSplit[0])).slice(-2)+'/'+('0'+storefrontDateSplit[1]).slice(-2)+'/'+storefrontDateSplit[2];var storefrontTimeSplit=storefrontSplit[1].split(':');var storefrontHour=parseInt(storefrontTimeSplit[0],10);var storefrontMinute=parseInt(storefrontTimeSplit[1],10);var outboundDateTimeTimestamp;var outboundHour=0;var outboundMinute=0;if(outboundTime.length){var outboundTimeSplit=outboundTime.val().split(':');outboundHour=parseInt(outboundTimeSplit[0],10);outboundMinute=parseInt(outboundTimeSplit[1],10);outboundDateTimeTimestamp=datetounixtime(outboundDateSplit[2],parseInt(outboundDateSplit[0],10)-1,outboundDateSplit[1],parseInt(outboundTimeSplit[0],10),parseInt(outboundTimeSplit[1],10),0);}else{outboundDateTimeTimestamp=datetounixtime(outboundDateSplit[2],parseInt(outboundDateSplit[0],10)-1,outboundDateSplit[1],0,0,0);} var datefrom=parseInt(outboundDate.attr('data-datefrom'),10);if(datefrom!==0&&outboundDateTimeTimestampdateto){dateObj=new Date(dateto*1000);dateObj=convertDatetoUTCDate(dateObj);outboundDate.data('validated',true);returnDate.data('validated',true);errors.push([outboundDate.siblings('.sb3_date_field_js').first(),tr_sb2OutboundDateErrorCannotSearchAfter.replace('$date',dateObj.getDate()+' '+trarray_monthnames[dateObj.getMonth()]+' '+dateObj.getFullYear())]);} if(returnDate.val()===''){returnDate.data('validated',true);errors.push([returnDate,tr_sb2ReturnDateErrorMissingDate]);}else{var datefrom=parseInt(returnDate.attr('data-datefrom'),10);var dateto=parseInt(returnDate.attr('data-dateto'),10);if(datefrom!==0&&datetounixtime(returnDateSplit[2],parseInt(returnDateSplit[0],10)-1,returnDateSplit[1],0,0,0)dateto){dateObj=new Date(dateto*1000);dateObj=convertDatetoUTCDate(dateObj);returnDate.data('validated',true);errors.push([returnDate.siblings('.sb3_date_field_js').first(),tr_sb2ReturnDateErrorCannotSearchAfter.replace('$date',dateObj.getDate()+' '+trarray_monthnames[dateObj.getMonth()])]);}else if(datetounixtime(outboundDateSplit[2],parseInt(outboundDateSplit[0],10)-1,outboundDateSplit[1],0,0,0)===datetounixtime(returnDateSplit[2],parseInt(returnDateSplit[0],10)-1,returnDateSplit[1],0,0,0)&&outboundDateTimeTimestamp>returnDateTimeTimestamp){outboundDate.data('validated',true);returnDate.data('validated',true);var timefields=outboundDate.parents('.sb3_form').first().find('.sb3_time_field_js');errors.push([[timefields.not('.sb3_time_field_return').first(),timefields.filter('.sb3_time_field_return').first()],tr_sbOutboundTimeErrorDepartureBeforeReturn]);}else if(outboundDateTimeTimestamp>returnDateTimeTimestamp){outboundDate.data('validated',true);returnDate.data('validated',true);errors.push([[outboundDate.siblings('.sb3_date_field_js').first(),returnDate.siblings('.sb3_date_field_js').first()],tr_sb2OutboundDateErrorDepartureBeforeReturn]);}else{outboundDate.data('validated',false);returnDate.data('validated',false);outboundDate.siblings('.sb3_date_field_js').first().removeClass('sb3_error').parent().removeClass('sb3_error');var timefields=outboundDate.parents('.sb3_form').first().find('.sb3_time_field_js');timefields.not('.sb3_time_field_return').first().removeClass('sb3_error').parent().removeClass('sb3_error');timefields.filter('.sb3_time_field_return').first().removeClass('sb3_error').parent().removeClass('sb3_error');returnDate.removeClass('sb3_error').parent().removeClass('sb3_error');}}}else{outboundDate.data('validated',false);outboundDate.siblings('.sb3_date_field_js').first().removeClass('sb3_error').parent().removeClass('sb3_error');}}} if(['carhire'].indexOf(formtype)!==-1){var pickupLocation=$(this).find('.sb3_input_chPickupLocation').first(),dropoffLocation=$(this).find('.sb3_input_chDropoffLocation').first();var pickupLocationIds=$(this).find('#cc_sb3_carhire_search_sb3_carhire_pickupLocation_ids').first(),dropoffLocationIds=$(this).find('#cc_sb3_carhire_search_sb3_carhire_dropoffLocation_ids').first();if(pickupLocation.length&&dropoffLocation.length){if(pickupLocation.is(':visible')&&(pickupLocation.val()===''||pickupLocationIds.val()==='')){pickupLocation.data('validated',true);errors.push([pickupLocation,tr_sb2CarHireErrorNoPickup]);}else{pickupLocation.data('validated',false);pickupLocation.removeClass('sb3_error').parent().removeClass('sb3_error');} if(dropoffLocation.is(':visible')&&(dropoffLocation.val()===''||dropoffLocationIds.val()==='')){dropoffLocation.data('validated',true);errors.push([dropoffLocation,tr_sb2CarHireErrorNoDropoff]);}else{dropoffLocation.data('validated',false);dropoffLocation.removeClass('sb3_error').parent().removeClass('sb3_error');}} var toValidate=['chPickupLocation_house','chPickupLocation_address1','chPickupLocation_city','chPickupLocation_postcode','chDropoffLocation_house','chDropoffLocation_address1','chDropoffLocation_city','chDropoffLocation_postcode'];var pattern=/^[0-9a-zA-Z\s]+$/;for(i=0;i1&&chk.attr('value')==-2){numPax.data('validated',true);errors.push([numPax,"Carnet ticket passenger number cannot exceed 1"]);}else{numPax.data('validated',false);numPax.removeClass('sb3_error').parent().removeClass('sb3_error');}}} if(['flightopenjawmulticentre'].indexOf(formtype)!==-1){var otherLegsLocations=$(this).find('.sb3_location_field_js');otherLegsLocations.each(function(key,elem){var locationKeyField=$(elem).parent().find('.sb3_locationkey_field_js');if($(elem).val()!==""&&locationKeyField.val()===""){$(elem).data('validated',true);errors.push([$(elem),"You must select a destination from the list provided."]);}else{$(elem).data('validated',false);$(elem).removeClass('sb3_error').parent().removeClass('sb3_error');}});} if(['flight','ferry','attraction','carparking','transfer','rail'].indexOf(formtype)!==-1){var numPassengers=$(this).find('.sb3_numpax_field_js').first();if(numPassengers.length){var numPassengersVal=parseInt(numPassengers.val(),10);if(isNaN(numPassengersVal)||numPassengersVal<1){numPassengers.data('validated',true);errors.push([numPassengers,(numPassengers.attr('data-error')?numPassengers.attr('data-error'):tr_sb2ErrorMissingNumPax)]);}else{numPassengers.data('validated',false);numPassengers.removeClass('sb3_error').parent().removeClass('sb3_error');}}} if(['hotel','flighthotel','ferryhotel'].indexOf(formtype)!==-1){var numRooms=$(this).find('.sb3_numrooms_field_js').first();if(numRooms.length){var numRoomsVal=parseInt(numRooms.val(),10);if(isNaN(numRoomsVal)||numRoomsVal<1){numRooms.data('validated',true);errors.push([numRooms,(numRooms.attr('data-error')?numRooms.attr('data-error'):tr_sb2ErrorMissingNumRooms)]);}else{numRooms.data('validated',false);numRooms.removeClass('sb3_error').parent().removeClass('sb3_error');}}} var corporateProfile=$(this).find('.sb3_corporateprofile_field_js, .sb3_corporateprofileautosuggest_field_js');if(corporateProfile.length){if(corporateProfile.attr('data-error')){corporateProfile.data('validated',true);errors.push([corporateProfile,corporateProfile.attr('data-error')]);corporateProfile.removeAttr('data-error');}else{corporateProfile.data('validated',false);corporateProfile.removeClass('sb3_error').parent().removeClass('sb3_error');} var userprofilepassword=$(this).find('.sb3_userprofilepassword_field_js');if(corporateProfile.val()!==''){if(userprofilepassword.attr('data-error')){userprofilepassword.data('validated',true);errors.push([userprofilepassword,userprofilepassword.attr('data-error')]);userprofilepassword.removeAttr('data-error');}else{userprofilepassword.data('validated',false);userprofilepassword.removeClass('sb3_error').parent().removeClass('sb3_error');}}else{userprofilepassword.data('validated',true);userprofilepassword.removeClass('sb3_error').parent().removeClass('sb3_error');}} var profileSelectBoxPax=$(this).find('.sb3_choosepassengers_field_js').filter(':visible');if(profileSelectBoxPax.length>0&&($('body.is-admin').length==0||$('body.is-profile').length>0)){profileSelectBoxPax.each(function(){var elem=$(this),userid=parseInt(elem.val(),10);if(isNaN(userid)||userid==0||userid<-1||elem.attr('data-error')){elem.data('validated',true);errors.push([elem,(elem.attr('data-error')?elem.attr('data-error'):tr_choosepassengers_selectPassengerIDError.replace('$passengerID',elem.attr('data-passengerid')))]);elem.removeAttr('data-error');}else{elem.data('validated',false);elem.removeClass('sb3_error').parent().removeClass('sb3_error');}});} var profileAutosuggestPax=$(this).find('.sb3_choosepassengers_autosuggestfield_js').filter(':visible');if(profileAutosuggestPax.length>0&&($('body.is-admin').length==0||$('body.is-profile').length>0)){profileAutosuggestPax.each(function(){var elem=$(this),idelem=$('#'+elem.attr('id')+'_val'),userid=parseInt(idelem.val(),10);if(isNaN(userid)||userid==0||userid<-1||elem.attr('data-error')){elem.data('validated',true);errors.push([elem,(elem.attr('data-error')?elem.attr('data-error'):tr_choosepassengers_selectPassengerIDError.replace('$passengerID',elem.attr('data-passengerid')))]);elem.removeAttr('data-error');}else{elem.data('validated',false);elem.removeClass('sb3_error').parent().removeClass('sb3_error');}});} var travelpolicySelectBoxPax=$(this).find('.sb3_choosepassengerstravelpolicies_js').filter(':visible');if(travelpolicySelectBoxPax.length>0){travelpolicySelectBoxPax.each(function(){var elem=$(this),policyid=parseInt(elem.val(),10);if(isNaN(policyid)||policyid==0||policyid<-1||elem.attr('data-error')){elem.data('validated',true);errors.push([elem,(elem.attr('data-error')?elem.attr('data-error'):tr_choosetravelpolicy_selectPolicyIDError.replace('$passengerID',elem.attr('data-passengerid')))]);elem.removeAttr('data-error');}else{elem.data('validated',false);elem.removeClass('sb3_error').parent().removeClass('sb3_error');}});} var paxAgeSelectBox=$(this).find('.sb3_searchbyage_field_js').filter(':visible');if(paxAgeSelectBox.length>0){var hasAdult=new Map();paxAgeSelectBox.each(function(){var elem=$(this);var age=parseInt(elem.val(),10);if(age>=18){hasAdult.set(elem.attr('name'),true);}else if(!hasAdult.has(elem.attr('name'))){hasAdult.set(elem.attr('name'),false);}});paxAgeSelectBox.each(function(){var elem=$(this);if(!hasAdult.get(elem.attr('name'))||elem.attr('data-error')){elem.data('validated',true);errors.push([elem,(elem.attr('data-error')?elem.attr('data-error'):tr_paxages_noAdultError)]);elem.removeAttr('data-error');}else{elem.data('validated',false);elem.removeClass('sb3_error').parent().removeClass('sb3_error');}});} $('[aria-required="true"]',this).each(function(key,elem){elem=$(elem);if(elem.data('validated')||!elem.is(':visible')||elem.prop('disabled')){return true;} if(elem.val()===''||elem.val()==='-1'||elem.attr('data-error')){if(elem.attr('data-error')){errors.push([elem,elem.attr('data-error')]);elem.removeAttr('data-error');}else{if(elem.attr('aria-label')){errors.push([elem,tr_searchform_errors_fieldIsRequired.replace('$label',elem.attr('aria-label'))]);}else{label=elem.siblings('label');errors.push([elem,tr_searchform_errors_fieldIsRequired.replace('$label',label.html())]);}}}else{if(elem.hasClass('sb3_error')){elem.removeClass('sb3_error');} if(elem.parent().hasClass('sb3_error')){elem.parent().removeClass('sb3_error');}}});var errorlist;if(errors.length>0){$(this).data('valid',false);var errorHTML='
  • '+tr_searchform_errorsIntroText+'
  • ';var errorSeen=[];$.each(errors,function(key,errorArr){$.each(errorArr[0],function(key,elem){$(elem).addClass('sb3_error').parent().addClass('sb3_error');});if(-1===errorSeen.indexOf(errorArr[1])){errorSeen.push(errorArr[1]);errorHTML+="
  • "+errorArr[1]+"
  • \n";}});errorlist=form.find('ul.sb3_errorlist');if(!errorlist.length){errorlist=$('
      ').addClass('sb3_errorlist');errorlist.prependTo(form);} errorlist.html(errorHTML).show();}else{$(this).data('valid',true);errorlist=form.find('ul.sb3_errorlist');if(errorlist.length){errorlist.hide();}}});form.on('submit',function(e){$(this).data('hasbeensubmit',true).trigger('vibe:validate');if(!$(this).data('valid')){e.preventDefault();}});for(var o=0;o<=10;o++){$('.sb2_flex_o'+o+' :input',form).each(function(){$(this).attr('tabindex',sb3_tabindex++);});} form.on('change','.sb3_favourites',function(){var frm=$(this).closest('form');var id=$('option:selected',this).val();var token=$('option:selected',this).attr('data-token');$.getJSON("index.html?a=nbf&type=favourite_journey_query&id="+id+"&token="+token,function(data){switch(data.type){case"flight":{$('.sb3_field_iataFrom').val(data.iataFrom);$('.sb3_field_iataTo').val(data.iataTo);$('.sb3_directflights_field').prop('checked',(data.direct===1));$('.sb3_classofservice_field').val(data.classOfService);break;} case"hotel":{$('.sb3_input_city').val(data.city);$('.sb3_locationkey_field_js').val(data.locationId);$('[name="hotelcode[]"]',form).remove();if('hotelhash'in data){$(form).append('');} break;} case"flighthotel":{$('.sb3_field_iataFrom').val(data.iataFrom);$('.sb3_directflights_field').prop('checked',(data.direct===1));$('.sb3_classofservice_field').val(data.classOfService);$('.sb3_input_city').val(data.city);$('.sb3_locationkey_field_js').val(data.locationId);$('[name="hotelcode[]"]',form).remove();if('hotelhash'in data){$(form).append('');}} case"rail":{$('.sb3_input_railStationFrom').val(data.stationFrom);$('.sb3_input_railStationTo').val(data.stationTo);$('.sb3_selectbox_travelcard_field',form).val(data.travelcard);if(data.roundTrip===true){$('.sb3_datereturnformat_field',form).find('[value="1"]').prop('checked',true);$('.sb3_datereturnformat_field',form).find('[value="0"]').prop('checked',false);}else{$('.sb3_datereturnformat_field',form).find('[value="1"]').prop('checked',false);$('.sb3_datereturnformat_field',form).find('[value="0"]').prop('checked',true);} if(data.stationAvoid!==null){$('.sb3_selectbox_railStationPreferenceType_field',form).val("avoid");$('.sb3_input_railStationPreference',form).val(data.stationAvoid);}else if(data.stationVia!==null){$('sb3_selectbox_railStationPreferenceType_field',form).val("via");$('.sb3_input_railStationPreference',form).val(data.stationVia);} if(data.datetimeOut){var outDateTime=new Date(data.datetimeOut*1000);$('.sb3_field_rail_outboundTime',form).val(String(outDateTime.getHours()).padStart(2,"0")+":"+String(outDateTime.getMinutes()).padStart(2,"0"));$('[name="railOutWhen"]',form).val(data.datetimeOutWhen);} if(data.datetimeRet){var retDateTime=new Date(data.datetimeRet*1000);$('.sb3_field_rail_returnTime',form).val(String(retDateTime.getHours()).padStart(2,"0")+":"+String(retDateTime.getMinutes()).padStart(2,"0"));$('[name="railRetWhen"]',form).val(data.datetimeRetWhen);} break;}}});});$('.sb3_locationkey_field_js').on('as2:update',function(){$('[name="hotelcode[]"]',form).remove();});if(form.hasClass('bf_capturebfv3attrs')){var sbp=[];var breakpoints=[320,420,480,576,680,768,850,1000,1024,1280,1450];breakpoints.sort(function(a,b){return a-b;});var pageElem=$('#nbf_page_container');var pageWidth=pageElem.width();if(pageWidth<=breakpoints[(breakpoints.length-1)]){breakpoints.forEach(function(bpi){if(bpi>=pageWidth){sbp.push("bf_"+bpi);}});} if(pageWidth<$(window).width()){sbp.push("bf_flow--withoutpadding");} form.append('');} if(form.hasClass('sb3_select_on_focus')){$("input[type='text']",form).each(function(i,elem){$(elem).on('focus',function(){$(this).select();})});} if(form.is('[data-type=flightopenjaw]')){$(form).on('change',".sb3_airport_field",function(e){if(e.originalEvent)return;var airportFields=$(".sb3_airport_field",form);var i=$(airportFields).index($(this));if(i%2){if(!$(airportFields[i+1]).val()){$(airportFields[i+1]).val($(this).val());}}});} form.removeData('delayinit').removeAttr('data-delayinit');form.addClass('sb3_initialised');} if(action==='teardown'){form.find('.sb3_date_field_js').each(function(key,elem){$(elem).datepicker('destroy');});form.find('.sb3_datereturnformat_field_js').each(function(key,elem){$(elem).unbind('change');});form.find('.sb3_numrooms_field_js').each(function(key,elem){$(elem).unbind('change');});form.find('.sb3_airline_field_js').each(function(key,elem){$(elem).unbind('keydown').unbind('keyup').unbind('mouseup');});form.find('.sb3_choosepassengers_field_js').each(function(key,elem){$(elem).unbind('change');});form.find('.sb3_numpax_field_js').each(function(key,elem){$(elem).unbind('change');});form.find('.sb3_ferryroute_field_js').each(function(key,elem){$(elem).unbind('change');});form.find('.sb3_ferrymethodoftravel_field_js').each(function(key,elem){$(elem).unbind('change');});} return form;};var forms=$('.sb3_form');forms.each(function(key,form){if(!$(form).data('delayinit')){$(form).sb3('setup');}});$(document).on('BF_Slidepanel_Open',function(e,slidepanel){if(slidepanel.hasClass('bf_changesearchslidebox')){slidepanel.find('.sb3_form[data-delayinit="true"]').each(function(){$(this).sb3('setup');});}});});function sb2_as2(elem,lockey){elem=$(elem);var form=elem.parents('.sb3_form').first();var id=elem.attr('id'),elem_results=$('#'+id+'_results');var groupcount=0;var lastgroup=false;var elem_locationkey=elem.parent().find('sb3_locationkey_field_js');if(!lockey)lockey=elem_locationkey.val();elem.addClass('sb2_as2on').removeClass('sb2_as2off').css('position','relative').css('z-index',10);var pos=elem.position();elem_results.css({position:'absolute',top:pos.top+elem.outerHeight(true),left:pos.left,width:elem.outerWidth()});var map={"&":"&","'":"'",'"':""","<":"<",">":">"};function replaceEntity(chr){return map[chr];} var extraparams='';if(elem.data('extraparams')){$.each(elem.data('extraparams'),function(key,val){extraparams+='&'+key+'='+encodeURIComponent(val);});} if(sb2_as2_requests.length){sb2_as2_requests.forEach(function(val,r){if(sb2_as2_requests[r]){if(sb2_as2_requests[r].readyState!=4){sb2_as2_requests[r].abort();} sb2_as2_requests[r]=null;}});} var typed=elem.val();if(!typed&&elem.data('originalvalue')){typed=elem.data('originalvalue');} var airportsonly=(elem.attr('data-airportsonly')==='true');var showairportcodes=(elem.attr('data-showairportcodes')==='true');var corpid=$('input[name=adminBookCorporateProfileId],select[name=adminBookCorporateProfileId]',form).val();if(!corpid)corpid=$('select[name=adminBookCorporateProfile] option:selected',form).attr('data-id');var thisRequest=$.ajax({url:ibeBaseURL+"ajax.php",type:"GET",data:"a=autosuggest2&key="+lockey+"&typed="+encodeURIComponent(typed)+(airportsonly?"&airportsonly=1":'')+(showairportcodes?"&showairportcodes=1":'')+(corpid?"&corpid="+corpid:'')+extraparams,crossDomain:true,success:function(data){var html='';var loclist=false;var mousemoveSelect='onmousemove="if (!$(this).hasClass(\'sel\')) { $(\'#'+id+'_results .sel\').removeClass(\'sel\');$(this).addClass(\'sel\');}"';for(var i=0;i";loclist=false;} if(row.type==="track"&&typeof tracking_event!="undefined"){tracking_event(['AutoSuggest v2',row.action,row.label,true]);} if(row.type==="head"){html+='
      '+row.name+'
      ';}else if(row.type==="loc"){if(!loclist){html+="
      ";loclist=true;} if(row.group){if(row.group!=lastgroup){html+='
      '+tr_autosuggest_group[row.group]+'
      ';groupcount=0;} groupcount++;if(groupcount==4){html+='
      '+tr_autosuggest_showMore+'
      ';}} html+='
      ]/g,replaceEntity)+'" data-id="'+id+'" data-key="'+row.key+'" data-hotelcount="'+(row.hotelcount?parseInt(row.hotelcount,10):0)+'" data-children="'+(row.children?parseInt(row.children,10):0)+'">';if(row.me){if(form.attr('data-type')==='attraction'){html+=tr_autosuggest_allSpecificLocationAttractions.replace('$location',row.name.replace(new RegExp('('+typed.replace(/\s/g,"|")+')',"gi"),'$1'));}else{html+=tr_autosuggest_allSpecificLocationHotels.replace('$location',row.name.replace(new RegExp('('+typed.replace(/\s/g,"|")+')',"gi"),'$1'));}}else{if(typed){html+=row.name.replace(new RegExp('('+typed.replace(/\s/g,"|")+')',"gi"),'$1');}else{html+=row.name;}} if(form.attr('data-type')==='attraction'){}else{if(row.loctype=="Hotel"||row.hotelcount==-1){html+='';}else if(row.hotelcount>0){html+=''+tr_autosuggest_hotelsNumber(row.hotelcount)+'';}else{html+=''+tr_autosuggest_noHotelsNumber+'';}} var subparts=[];if(row.parentname&&row.loctype!=='Continent'&&row.parentname!==row.name){subparts.push(row.parentname);} if(row.state){subparts.push(row.state);} if(row.country&&row.country!==row.name){subparts.push(row.country);} html+=""+subparts.join(', ').replace(new RegExp('('+typed.replace(/\s/g,'|')+')','gi'),'$1')+"";html+='
      ';lastgroup=row.group;}else if(row.type==="parent"){html+="
      ";html+='
      ]/g,replaceEntity)+'" data-id="'+id+'" data-key="'+row.key+'" data-hotelcount="'+(row.hotelcount?parseInt(row.hotelcount,10):0)+'" data-children="'+(row.children?parseInt(row.children,10):0)+'">';html+=tr_autosuggest_backToParentLocation.replace('$parentlocation',row.name).replace(/[&"'\<\>]/g,replaceEntity);html+='
      ';html+='
      ';}else if(row.type==="err"){html+='
      ';html+=row.name;html+='
      ';}else if(row.type==="text"){html+='
      ';html+=row.name;html+='
      ';}} if(loclist){html+="
      ";} elem_results.html(html);$('.reallocs',elem_results).children().first().trigger('mousemove');elem_results.css('display','block');}});sb2_as2_requests.push(thisRequest);} function sb2_rail_as2(elem,stkey){elem=$(elem);var form=elem.parents('.sb3_rail_form').first();var id=elem.attr('id'),elem_results=$('#'+id+'_results');var groupcount=0;var lastgroup=false;var elem_stationkey=elem.parent().find('sb3_station_field_js');if(!stkey)stkey=elem_stationkey.val();elem.addClass('sb2_as2on').removeClass('sb2_as2off').css('position','relative').css('z-index',10);var pos=elem.position();elem_results.css({position:'absolute',top:pos.top+elem.outerHeight(true),left:pos.left,width:elem.outerWidth()});var map={"&":"&","'":"'",'"':""","<":"<",">":">"};function replaceEntity(chr){return map[chr];} if(sb2_as2_requests.length){sb2_as2_requests.forEach(function(val,r){if(sb2_as2_requests[r]){if(sb2_as2_requests[r].readyState!=4){sb2_as2_requests[r].abort();} sb2_as2_requests[r]=null;}});} var typed=elem.val();if(!typed&&elem.data('originalvalue')){typed=elem.data('originalvalue');} if(typed.length>1){var elemid=elem.attr('id')+'_stationKeyField';var company=$('.sb3_stationkey_field_js').not('#'+elemid).val();var corpid=$('input[name=adminBookCorporateProfileId],select[name=adminBookCorporateProfileId]',form).val();if(!corpid)corpid=$('select[name=adminBookCorporateProfile] option:selected',form).attr('data-id');var thisRequest=$.ajax({url:ibeBaseURL+"ajax.php",type:"GET",data:"a=raillookup&input="+encodeURIComponent(typed)+(corpid?"&corpid="+corpid:'')+(company?"&company="+company:''),crossDomain:true,success:function(data){var html='';var stationlist=false;var totalgroup=0;var groupcountsection=4;var totalrows=data.length-2;if(totalrows>12){totalrows=12;} var mousemoveSelect='onmousemove="if (!$(this).hasClass(\'sel\')) { $(\'#'+id+'_results .sel\').removeClass(\'sel\');$(this).addClass(\'sel\');}"';var len=data.reduce((acc,o)=>(acc[o.group]=(acc[o.group]||0)+1,acc),{});$.each(len,function(index,value){if(index!='undefined'){totalgroup++;}});var totalsectionrows=totalrows/totalgroup;if(totalsectionrows>groupcountsection){groupcountsection=totalsectionrows+1;} for(var i=0;i";stationlist=false;} if(row.type==="track"&&typeof tracking_event!="undefined"){tracking_event(['AutoSuggest',row.action,row.label,true]);} if(row.type==="head"&&row.name){html+='
      '+row.name+'
      ';}else if(row.type==="rail"){if(!stationlist){html+="
      ";stationlist=true;} if(row.group){if(row.group!=lastgroup){for(var j=0;j1){html+='
      '+groupname+'
      ';} groupcount=0;} groupcount++;if(groupcount==groupcountsection){html+='
      '+tr_autosuggest_showMore+'
      ';}} html+='
      ]/g,replaceEntity)+'" data-id="'+id+'" data-key="'+row.id+'" data-com="'+row.group+'">';if(typed){html+=row.value.replace(new RegExp('('+typed.replace(/\s/g,"|")+')',"gi"),'$1');}else{html+=row.value;} html+='
      ';lastgroup=row.group;} else if(row.type==="err"){html+='
      ';html+=row.value;html+='
      ';}else if(row.type==="text"){html+='
      ';html+=row.value;html+='
      ';}} if(stationlist){html+="
      ";} elem_results.html(html);$('.realstations',elem_results).children().first().trigger('mousemove');elem_results.css('display','block');}});} sb2_as2_requests.push(thisRequest);} function sb2_as2_close(elem){elem=$(elem);var id=elem.attr('id'),elem_results=$('#'+id+'_results');if(sb2_as2_timers[id])clearTimeout(sb2_as2_timers[id]);sb2_as2_timers[id]=false;elem_results.hide();elem.removeClass('sb2_as2on').addClass('sb2_as2off');} function sb2_as2_open(elem){elem=$(elem);if(elem.hasClass('sb2_as2on'))return;var id=elem.attr('id'),elem_results=$('#'+id+'_results');if(sb2_as2_timers[id])clearTimeout(sb2_as2_timers[id]);sb2_as2_timers[id]=false;elem_results.show();elem.addClass('sb2_as2on').removeClass('sb2_as2off');} function rwd_calendars(input,inst){if(rwd_isWidth(460)){rwd_saveScroll(input);$.extend($.datepicker,{_checkOffset:function(inst,offset,isFixed){var slidebox=inst.input.parents().filter(function(key,elem){return(elem.classList.contains('bf_slidebox')||$(this).css('position')=='fixed');});if(slidebox.length){if(isFixed){setTimeout(function(){inst.dpDiv.css('position','absolute');},100);isFixed=false;}} var dpWidth=inst.dpDiv.outerWidth(),dpHeight=inst.dpDiv.outerHeight(),inputWidth=inst.input?inst.input.outerWidth():0,inputHeight=inst.input?inst.input.outerHeight():0,viewWidth=document.documentElement.clientWidth+(isFixed?0:$(document).scrollLeft()),viewHeight=document.documentElement.clientHeight+(isFixed?0:$(document).scrollTop());offset.left-=(this._get(inst,"isRTL")?(dpWidth-inputWidth):0);offset.left-=(isFixed&&offset.left===inst.input.offset().left)?$(document).scrollLeft():0;offset.top-=(isFixed&&offset.top===(inst.input.offset().top+inputHeight))?$(document).scrollTop():0;if(slidebox.length){offset.left-=Math.min(offset.left,(offset.left+dpWidth>viewWidth&&viewWidth>dpWidth)?Math.abs(offset.left+dpWidth-viewWidth):0);offset.top-=Math.min(offset.top,(offset.top+dpHeight>viewHeight&&viewHeight>dpHeight)?Math.abs(dpHeight+inputHeight):0);} return offset;}});$(input).attr('readonly',true).blur().datepicker("option",{showButtonPanel:true,numberOfMonths:1,});}} function rwd_isWidth(width){var w=parseInt($(window).width(),10);return(w>0&&w<=width);} var rwd_scrollPos=0;var rwd_scrollContainer;function rwd_saveScroll(e){if(e){const sb3field=$(e).parentsUntil('.sb3_field').first();const allparents=$(e).parents();let scrollContainer=window;let foundfixedparent=-1;let foundscrollableparent=-1;allparents.each(function(){if($(this).css('overflowY')!=='hidden'&&$(this).css('overflowY')!=='visible'&&this.scrollHeight>this.clientHeight){foundscrollableparent=this;} if($(this).css('position')=='fixed'){foundfixedparent=this;return false;}});if(foundfixedparent!==-1){scrollContainer=foundscrollableparent!==-1?foundscrollableparent:foundfixedparent;} rwd_scrollContainer=scrollContainer;rwd_scrollPos=$(scrollContainer).scrollTop();var rwd_topoffset=0;if(window===scrollContainer){var nbfpageheader=$('#nbf_pageheader');if(nbfpageheader.length&&nbfpageheader.css('position')==='fixed'){rwd_topoffset=parseInt(nbfpageheader.outerHeight(),10);}} $(scrollContainer).scrollTop(sb3field.offset().top-rwd_topoffset);}} function rwd_restoreScroll(){if(rwd_isWidth(460)){$(rwd_scrollContainer).scrollTop(rwd_scrollPos);}} function rwd_scrollToAutoSuggest(){var e=this;if(!$(e).data('init')&&typeof(rwd_isWidth)=="function"&&rwd_isWidth(460)){setTimeout(function(){rwd_saveScroll(e);},0);}} function datetounixtime(passedYear,passedMonth,passedDay,passedHours,passedMinutes,passedSeconds){if(typeof passedHours=='undefined')passedHours=0;if(typeof passedMinutes=='undefined')passedMinutes=0;if(typeof passedSeconds=='undefined')passedSeconds=0;var humDate=new Date(Date.UTC(parseInt(passedYear,10),parseInt(passedMonth,10),parseInt(passedDay,10),parseInt(passedHours,10),parseInt(passedMinutes,10),parseInt(passedSeconds,10)));return(parseInt(humDate.getTime()/1000.0,10));} function dateStrToDateObj(dateStr){if(!dateStr){return new Date();} var dateParts=dateStr.split('/');return new Date(Date.UTC(parseInt(dateParts[2],10),parseInt(dateParts[0],10)-1,parseInt(dateParts[1],10),12,0,0));} function convertDatetoUTCDate(date){return new Date(date.getUTCFullYear(),date.getUTCMonth(),date.getUTCDate(),date.getUTCHours(),date.getUTCMinutes(),date.getUTCSeconds());}})(jQuery);;(function($){$(function(){$(document).unbind('.nbfcollapsible').on('click.nbfcollapsible simclick.nbfcollapsible','.nbf_tpl_pagesection_collapsible_hdl button',function(e,dontcheckgroups){var elem=$(this),state=elem.attr('aria-expanded')==='false'?true:false,group=elem.attr('data-group');elem.attr('aria-expanded',state);if(state&&elem.attr('data-expandedtext')){elem.html(elem.attr('data-expandedtext'));} if(state){if(elem.attr('data-collapseonoutsideclicks')==='true'){$(document).one('click',function(e){if($(e.target).hasClass('nbf_tpl_pagesection_collapsible'))return;if($(e.target).closest('.nbf_tpl_pagesection_collapsible').length)return;elem.trigger('simclick',[true]);});}} if(!state&&elem.attr('data-collapsedtext')){elem.html(elem.attr('data-collapsedtext'));} $('#'+elem.attr('aria-controls')).attr('aria-hidden',!state);if(!dontcheckgroups&&group){var allbuttons=$('.nbf_tpl_pagesection_collapsible_hdl > button').filter('[data-group="'+group+'"]').not(elem);allbuttons.filter('[aria-expanded=true]').trigger('simclick',[true]);}});function updateVisibility(){var screenWidth=$(window).width();var groupsdone=[];$('.nbf_tpl_pagesection_collapsible').each(function(){if($(this).data('collapsibledone')){return;} var hideonloadWidth=parseInt($(this).attr('hideonload'),10);var showonloadWidth=parseInt($(this).attr('showonload'),10);var checkorder='show';var button=$(this).find('.nbf_tpl_pagesection_collapsible_hdl > button'),newAriaExpanded=button.attr('aria-expanded'),clickbutton=false;var group=button.attr('data-group');if(!isNaN(hideonloadWidth)&&!isNaN(showonloadWidth)){if(hideonloadWidth>showonloadWidth){checkorder='hide';}} if(checkorder==='hide'&&!isNaN(hideonloadWidth)){if(screenWidth<=hideonloadWidth&&newAriaExpanded==='true'){newAriaExpanded='false';clickbutton=!clickbutton;}} if(!isNaN(showonloadWidth)){if(screenWidth<=showonloadWidth&&newAriaExpanded==='false'){newAriaExpanded='true';clickbutton=!clickbutton;}} if(checkorder==='show'&&!isNaN(hideonloadWidth)){if(screenWidth<=hideonloadWidth&&newAriaExpanded==='true'){newAriaExpanded='false';clickbutton=!clickbutton;}} if(clickbutton){if(!group||(group&&groupsdone.indexOf(group)===-1)){button.trigger('simclick');}}else if(group&&groupsdone.indexOf(group)===-1){var expandedcontainersingroup=$('.nbf_tpl_pagesection_collapsible_hdl > button').filter('[data-group="'+group+'"][aria-expanded=true]');if(expandedcontainersingroup.length>0){var starthiding=false;expandedcontainersingroup.each(function(){if(starthiding&&$(this).attr('aria-expanded')==='true'){$(this).trigger('simclick',[true]);} starthiding=true;});}} $(this).data('collapsibledone',true);});} updateVisibility();$(document).ajaxComplete(function(){updateVisibility();});});})(jQuery);;var PB_Map=function(domid,config){this.domid=domid;this.self=this;this.markers=[];this.infoboxes=[];this.polygons=[];this.polylines=[];this.circles=[];this.config=config;};PB_Map.prototype.init=function(){console.log("Map initialisation function not implemented");};PB_Map.prototype.addMarker=function(marker){if(marker instanceof PB_Map_Marker){this.markers.push(marker);}};PB_Map.prototype.addInfobox=function(infobox){if(infobox instanceof PB_Map_Infobox){this.infoboxes.push(infobox);}};PB_Map.prototype.addPolygon=function(polygon){if(polygon instanceof PB_Map_Polygon){this.polygons.push(polygon);}};PB_Map.prototype.addPolyline=function(polyline){if(polyline instanceof PB_Map_Polyline){this.polylines.push(polyline);}};PB_Map.prototype.addCircle=function(circle){if(circle instanceof PB_Map_Circle){this.circles.push(circle);}};var PB_Map_Marker=function(lat,lon,options){this.latitude=lat;this.longitude=lon;this.options=options;};var PB_Map_Infobox=function(lat,lon,content){var open=function(marker){};};var PB_Map_Polygon=function(paths,options){this.paths=paths;this.options=options;};var PB_Map_Polyline=function(coordinates,options){this.coordinates=coordinates;this.options=options;};var PB_Map_Circle=function(centre,radius,options){this.centre=centre;this.radius=radius;this.options=options;};;function PB_GoogleMap(domid,config){PB_Map.call(this,domid,config);var gmap=undefined;} PB_GoogleMap.prototype=Object.create(PB_Map.prototype);PB_GoogleMap.prototype.init=function(){var bounds=new google.maps.LatLngBounds();var mapopts={mapTypeControl:true,mapTypeControlOptions:{style:google.maps.MapTypeControlStyle.DROPDOWN_MENU},zoom:7,zoomControl:true,zoomControlOptions:{style:google.maps.ZoomControlStyle.SMALL},panControl:false,};if(this.config.gmapstyles){mapopts["styles"]=this.config.gmapstyles;} if(this.config.zoomlevel){mapopts['zoom']=parseInt(this.config.zoomlevel,10);} if(this.config.maptype==="ROADMAP"){mapopts["mapTypeId"]=google.maps.MapTypeId.ROADMAP;} else if(this.config.maptype==="SATELLITE"){mapopts["mapTypeId"]=google.maps.MapTypeId.SATELLITE;} if(this.config.mapcenter){mapopts["center"]=new google.maps.LatLng(this.config.mapcenter.lat,this.config.mapcenter.lon);if(this.config.mapcenter.lat!=0&&this.config.mapcenter.lon!=0){bounds.extend(mapopts["center"]);}} var mapconfig=this.config;gmap=new google.maps.Map(document.getElementById(this.domid),mapopts);$.each(this.markers,function(posn,marker){gposition=new google.maps.LatLng(marker.latitude,marker.longitude);markeropts={};markeropts.position=gposition;markeropts.map=gmap;if(marker.options.title){markeropts.title=marker.options.title;} if(marker.options.icon){markeropts.icon={"url":marker.options.icon};} if(marker.options.zindex){markeropts.zIndex=marker.options.zindex;} else{markeropts.zIndex=2;} if(marker.options.replacemarker===true&&marker.options.content){gmarker=new PB_GoogleMaps_CustomMarker(gposition,gmap,marker.options.content,marker.options.lbcontent);google.maps.event.addDomListener(gmap,'zoom_changed',function(){gmarker.draw();});} else{gmarker=new google.maps.Marker(markeropts);if(marker.options.autostart&&marker.options.content){infowindow=new google.maps.InfoWindow({anchor:gmarker,content:marker.options.content});} if(marker.options.content){google.maps.event.addListener(gmarker,'click',function(){infowindow=new google.maps.InfoWindow({anchor:this,content:marker.options.content});});}} bounds.extend(gposition);});$.each(this.circles,function(posn,circle){circleopts={center:{}} circleopts.center.lat=circle.centre.lat;circleopts.center.lng=circle.centre.lon;bounds.extend(new google.maps.LatLng(circle.centre.lat,circle.centre.lng));circleopts.radius=circle.radius;if(circle.options.colour){circleopts.strokeColor=circleopts.fillColor=circle.options.colour;circleopts.fillOpacity=0.35;} gcirc=new google.maps.Circle(circleopts);gcirc.setMap(gmap);});$.each(this.polygons,function(posn,polygon){var gpolypaths=[];var gpolypath=[];$.each(polygon.paths,function(p,path){$.each(path.coordinates,function(pn,pcoords){gpolypath.push({'lat':pcoords.lat,'lng':pcoords.lon});bounds.extend(new google.maps.LatLng(pcoords.lat,pcoords.lon));});gpolypaths.push(gpolypath);gpolypath=[];});polyopts={paths:gpolypaths,zIndex:2};if(polygon.options.colour){polyopts.strokeColor=polyopts.fillColor=polygon.options.colour;polyopts.fillOpacity=0.35;} else if(mapconfig){polyopts.strokeColor=polyopts.fillColor=mapconfig.polygoncolor;polyopts.fillOpacity=0.35;} if(polygon.options.geodesic){polyopts.geodesic=true;} gpoly=new google.maps.Polygon(polyopts);gpoly.setMap(gmap);});$.each(this.polylines,function(posn,polyline){var gpolypaths=[];$.each(polyline.coordinates,function(p,pcoords){gpolypaths.push({'lat':pcoords.lat,'lng':pcoords.lon});bounds.extend(new google.maps.LatLng(pcoords.lat,pcoords.lon));});polyopts={path:gpolypaths,zIndex:2};if(polyline.options.colour){polyopts.strokeColor=polyopts.fillColor=polyline.options.colour;polyopts.fillOpacity=0.35;} else if(mapconfig.linecolour){polyopts.strokeColor=polyopts.fillColor=mapconfig.linecolour;polyopts.fillOpacity=0.35;} if(polyline.options.geodesic){polyopts.geodesic=true;} gpoly=new google.maps.Polyline(polyopts);gpoly.setMap(gmap);});if(this.markers.length>1||this.polygons.length>1){gmap.fitBounds(bounds);}};function PB_GoogleMaps_CustomMarker(latlng,map,content,lbcontent){this.latlng=latlng;this.content=content;this.lbcontent=lbcontent;this.setMap(map);this.added=false;this.markerdimensions={};this.div=undefined;} PB_GoogleMaps_CustomMarker.prototype=new google.maps.OverlayView();PB_GoogleMaps_CustomMarker.prototype.onAdd=function(){this.added=true;if(!this.div){lbcontent=$.trim(this.lbcontent);var self=this;markerdom=$.parseHTML($.trim(this.content))[0];this.div=this.div=document.createElement('div');if(self.lbcontent){$(markerdom).click(function(){nbf_lightbox(self.lbcontent);});} this.div.appendChild(markerdom);this.div.style.position='absolute';var panes=this.getPanes();panes.overlayMouseTarget.appendChild(this.div);this.markerdimensions={width:$(markerdom).outerWidth(),height:$(markerdom).outerHeight()};}};PB_GoogleMaps_CustomMarker.prototype.draw=function(){if(this.added){var point=this.getProjection().fromLatLngToDivPixel(this.latlng);if(point){this.div.style.left=(point.x-Math.ceil(this.markerdimensions.width/2))+'px';this.div.style.top=(point.y-Math.ceil(this.markerdimensions.height/2))+'px';}}};PB_GoogleMaps_CustomMarker.prototype.getPosition=function(){return this.latlng;}; ;/*! Waypoints - 4.0.0 Copyright © 2011-2015 Caleb Troughton Licensed under the MIT license. https://github.com/imakewebthings/waypoints/blog/master/licenses.txt */ !function(){"use strict";function t(o){if(!o)throw new Error("No options passed to Waypoint constructor");if(!o.element)throw new Error("No element option passed to Waypoint constructor");if(!o.handler)throw new Error("No handler option passed to Waypoint constructor");this.key="waypoint-"+e,this.options=t.Adapter.extend({},t.defaults,o),this.element=this.options.element,this.adapter=new t.Adapter(this.element),this.callback=o.handler,this.axis=this.options.horizontal?"horizontal":"vertical",this.enabled=this.options.enabled,this.triggerPoint=null,this.group=t.Group.findOrCreate({name:this.options.group,axis:this.axis}),this.context=t.Context.findOrCreateByElement(this.options.context),t.offsetAliases[this.options.offset]&&(this.options.offset=t.offsetAliases[this.options.offset]),this.group.add(this),this.context.add(this),i[this.key]=this,e+=1}var e=0,i={};t.prototype.queueTrigger=function(t){this.group.queueTrigger(this,t)},t.prototype.trigger=function(t){this.enabled&&this.callback&&this.callback.apply(this,t)},t.prototype.destroy=function(){this.context.remove(this),this.group.remove(this),delete i[this.key]},t.prototype.disable=function(){return this.enabled=!1,this},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0,this},t.prototype.next=function(){return this.group.next(this)},t.prototype.previous=function(){return this.group.previous(this)},t.invokeAll=function(t){var e=[];for(var o in i)e.push(i[o]);for(var n=0,r=e.length;r>n;n++)e[n][t]()},t.destroyAll=function(){t.invokeAll("destroy")},t.disableAll=function(){t.invokeAll("disable")},t.enableAll=function(){t.invokeAll("enable")},t.refreshAll=function(){t.Context.refreshAll()},t.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},t.viewportWidth=function(){return document.documentElement.clientWidth},t.adapters=[],t.defaults={context:window,continuous:!0,enabled:!0,group:"default",horizontal:!1,offset:0},t.offsetAliases={"bottom-in-view":function(){return this.context.innerHeight()-this.adapter.outerHeight()},"right-in-view":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=t}(),function(){"use strict";function t(t){window.setTimeout(t,1e3/60)}function e(t){this.element=t,this.Adapter=n.Adapter,this.adapter=new this.Adapter(t),this.key="waypoint-context-"+i,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},t.waypointContextKey=this.key,o[t.waypointContextKey]=this,i+=1,this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var i=0,o={},n=window.Waypoint,r=window.onload;e.prototype.add=function(t){var e=t.options.horizontal?"horizontal":"vertical";this.waypoints[e][t.key]=t,this.refresh()},e.prototype.checkEmpty=function(){var t=this.Adapter.isEmptyObject(this.waypoints.horizontal),e=this.Adapter.isEmptyObject(this.waypoints.vertical);t&&e&&(this.adapter.off(".waypoints"),delete o[this.key])},e.prototype.createThrottledResizeHandler=function(){function t(){e.handleResize(),e.didResize=!1}var e=this;this.adapter.on("resize.waypoints",function(){e.didResize||(e.didResize=!0,n.requestAnimationFrame(t))})},e.prototype.createThrottledScrollHandler=function(){function t(){e.handleScroll(),e.didScroll=!1}var e=this;this.adapter.on("scroll.waypoints",function(){(!e.didScroll||n.isTouch)&&(e.didScroll=!0,n.requestAnimationFrame(t))})},e.prototype.handleResize=function(){n.Context.refreshAll()},e.prototype.handleScroll=function(){var t={},e={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};for(var i in e){var o=e[i],n=o.newScroll>o.oldScroll,r=n?o.forward:o.backward;for(var s in this.waypoints[i]){var a=this.waypoints[i][s],l=o.oldScroll=a.triggerPoint,p=l&&h,u=!l&&!h;(p||u)&&(a.queueTrigger(r),t[a.group.id]=a.group)}}for(var c in t)t[c].flushTriggers();this.oldScroll={x:e.horizontal.newScroll,y:e.vertical.newScroll}},e.prototype.innerHeight=function(){return this.element==this.element.window?n.viewportHeight():this.adapter.innerHeight()},e.prototype.remove=function(t){delete this.waypoints[t.axis][t.key],this.checkEmpty()},e.prototype.innerWidth=function(){return this.element==this.element.window?n.viewportWidth():this.adapter.innerWidth()},e.prototype.destroy=function(){var t=[];for(var e in this.waypoints)for(var i in this.waypoints[e])t.push(this.waypoints[e][i]);for(var o=0,n=t.length;n>o;o++)t[o].destroy()},e.prototype.refresh=function(){var t,e=this.element==this.element.window,i=e?void 0:this.adapter.offset(),o={};this.handleScroll(),t={horizontal:{contextOffset:e?0:i.left,contextScroll:e?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:e?0:i.top,contextScroll:e?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};for(var r in t){var s=t[r];for(var a in this.waypoints[r]){var l,h,p,u,c,d=this.waypoints[r][a],f=d.options.offset,w=d.triggerPoint,y=0,g=null==w;d.element!==d.element.window&&(y=d.adapter.offset()[s.offsetProp]),"function"==typeof f?f=f.apply(d):"string"==typeof f&&(f=parseFloat(f),d.options.offset.indexOf("%")>-1&&(f=Math.ceil(s.contextDimension*f/100))),l=s.contextScroll-s.contextOffset,d.triggerPoint=y+l-f,h=w=s.oldScroll,u=h&&p,c=!h&&!p,!g&&u?(d.queueTrigger(s.backward),o[d.group.id]=d.group):!g&&c?(d.queueTrigger(s.forward),o[d.group.id]=d.group):g&&s.oldScroll>=d.triggerPoint&&(d.queueTrigger(s.forward),o[d.group.id]=d.group)}}return n.requestAnimationFrame(function(){for(var t in o)o[t].flushTriggers()}),this},e.findOrCreateByElement=function(t){return e.findByElement(t)||new e(t)},e.refreshAll=function(){for(var t in o)o[t].refresh()},e.findByElement=function(t){return o[t.waypointContextKey]},window.onload=function(){r&&r(),e.refreshAll()},n.requestAnimationFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t;i.call(window,e)},n.Context=e}(),function(){"use strict";function t(t,e){return t.triggerPoint-e.triggerPoint}function e(t,e){return e.triggerPoint-t.triggerPoint}function i(t){this.name=t.name,this.axis=t.axis,this.id=this.name+"-"+this.axis,this.waypoints=[],this.clearTriggerQueues(),o[this.axis][this.name]=this}var o={vertical:{},horizontal:{}},n=window.Waypoint;i.prototype.add=function(t){this.waypoints.push(t)},i.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],right:[]}},i.prototype.flushTriggers=function(){for(var i in this.triggerQueues){var o=this.triggerQueues[i],n="up"===i||"left"===i;o.sort(n?e:t);for(var r=0,s=o.length;s>r;r+=1){var a=o[r];(a.options.continuous||r===o.length-1)&&a.trigger([i])}}this.clearTriggerQueues()},i.prototype.next=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints),o=i===this.waypoints.length-1;return o?null:this.waypoints[i+1]},i.prototype.previous=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints);return i?this.waypoints[i-1]:null},i.prototype.queueTrigger=function(t,e){this.triggerQueues[e].push(t)},i.prototype.remove=function(t){var e=n.Adapter.inArray(t,this.waypoints);e>-1&&this.waypoints.splice(e,1)},i.prototype.first=function(){return this.waypoints[0]},i.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},i.findOrCreate=function(t){return o[t.axis][t.name]||new i(t)},n.Group=i}(),function(){"use strict";function t(t){this.$element=e(t)}var e=window.jQuery,i=window.Waypoint;e.each(["innerHeight","innerWidth","off","offset","on","outerHeight","outerWidth","scrollLeft","scrollTop"],function(e,i){t.prototype[i]=function(){var t=Array.prototype.slice.call(arguments);return this.$element[i].apply(this.$element,t)}}),e.each(["extend","inArray","isEmptyObject"],function(i,o){t[o]=e[o]}),i.adapters.push({name:"jquery",Adapter:t}),i.Adapter=t}(),function(){"use strict";function t(t){return function(){var i=[],o=arguments[0];return t.isFunction(arguments[0])&&(o=t.extend({},arguments[1]),o.handler=arguments[0]),this.each(function(){var n=t.extend({},o,{element:this});"string"==typeof n.context&&(n.context=t(this).closest(n.context)[0]),i.push(new e(n))}),i}}var e=window.Waypoint;window.jQuery&&(window.jQuery.fn.waypoint=t(window.jQuery)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}(); ;/*! Waypoints Sticky Element Shortcut - 4.0.0 Copyright © 2011-2015 Caleb Troughton Licensed under the MIT license. https://github.com/imakewebthings/waypoints/blog/master/licenses.txt */ !function(){"use strict";function t(s){this.options=e.extend({},i.defaults,t.defaults,s),this.element=this.options.element,this.$element=e(this.element),this.createWrapper(),this.createWaypoint()}var e=window.jQuery,i=window.Waypoint;t.prototype.createWaypoint=function(){var t=this.options.handler;this.waypoint=new i(e.extend({},this.options,{element:this.wrapper,handler:e.proxy(function(e){var i=this.options.direction.indexOf(e)>-1,s=i?this.$element.outerHeight(!0):"";this.$wrapper.height(s),this.$element.toggleClass(this.options.stuckClass,i),t&&t.call(this,e)},this)}))},t.prototype.createWrapper=function(){this.options.wrapper&&this.$element.wrap(this.options.wrapper),this.$wrapper=this.$element.parent(),this.wrapper=this.$wrapper[0]},t.prototype.destroy=function(){this.$element.parent()[0]===this.wrapper&&(this.waypoint.destroy(),this.$element.removeClass(this.options.stuckClass),this.options.wrapper&&this.$element.unwrap())},t.defaults={wrapper:'
      ',stuckClass:"stuck",direction:"down right"},i.Sticky=t}(); ;(function($){$.fn.nbfmenu=function(options){var hasTouch=false;if(("ontouchstart"in window)){hasTouch=true;} return this.each(function(){var menuElem=$(this);var thismenuoptions=options;if(menuElem.attr('data-options')){thismenuoptions=JSON.parse(menuElem.attr('data-options'));} var opts=$.extend({},$.fn.nbfmenu.defaults,thismenuoptions);menuElem.data('opts',opts);menuElem.data('timer',-1);menuElem.data('visiblesubmenu','');function showmenu(menuElem,item){var opts=menuElem.data('opts');item=$(item);if(menuElem.data('visiblesubmenu')===item.attr('rel')){return;} menuElem.data('visiblesubmenu',item.attr('rel'));$("li[rel='"+item.attr("rel")+"'] ",menuElem).addClass("hovered");var submenu=$("div.submenu_item[rel='"+item.attr('rel')+"']",menuElem);if(opts.direction==='horizontal'&&opts.submenu_type==='vertical'){submenu.css("left",Math.min($(document).width()-submenu.width(),item.find("a").position().left));submenu.css("top",item.find("a").position().top+item.outerHeight(true));}else if(opts.direction==='horizontal'&&opts.submenu_type==='horizontal'){submenu.css("left",0);}else if(opts.direction==='vertical'&&opts.submenu_type==='horizontal'){submenu.css("left",item.find("a").position().left+item.find("a").outerWidth(true));submenu.css("top",item.position().top);}else if(opts.direction==='vertical'&&opts.submenu_type==='vertical'){submenu.css("left",item.find("a").position().left+item.find("a").outerWidth(true));submenu.css("top",0);} if(opts.submenu_animstyle==='fadein'){submenu.fadeIn(opts.animduration);}else if(opts.submenu_animstyle==='slideout'){submenu.slideDown(opts.animduration);}else if(opts.submenu_animstyle==='css3transition'){submenu.removeClass('hidden').addClass('visible');}else{submenu.show();}} function hidemenu(menuElem){var opts=menuElem.data('opts');var submenu=$("div.submenu_item",menuElem);if(opts.submenu_animstyle==='css3transition'){submenu.addClass('hidden').removeClass('visible');}else{submenu.hide();} menu_clearTimer(menuElem);$("li",menuElem).removeClass('hovered');menuElem.data('visiblesubmenu','');} function menu_clearTimer(menuElem){var timer=menuElem.data('timer');clearTimeout(timer);menuElem.data('timer',-1);} if(!menuElem.data('init')){menuElem.data('init',true);var menuitems=$("li[rel]",menuElem).not($("li[rel='']",menuElem));menuitems.on('click',function(e){var menuElem=$(this).parents('.nbf_tpl_menu').first();if(menuElem.data('visiblesubmenu')!==$(this).attr('rel')){e.preventDefault();e.stopImmediatePropagation();if(hasTouch){var opts=menuElem.data('opts');var visiblesubmenuitems;if(opts.submenu_animstyle==='css3transition'){visiblesubmenuitems=$("div.submenu_item.visible[rel='"+$(this).attr('rel')+"']",menuElem);}else{visiblesubmenuitems=$("div.submenu_item[rel='"+$(this).attr('rel')+"']:visible",menuElem);} if(visiblesubmenuitems.length===0){hidemenu(menuElem);showmenu(menuElem,this);}else{menu_clearTimer(menuElem);}}}});menuitems.on('mouseenter',function(e){var menuElem=$(this).parents('.nbf_tpl_menu').first();var opts=menuElem.data('opts');var visiblesubmenuitems;if(opts.submenu_animstyle==='css3transition'){visiblesubmenuitems=$("div.submenu_item.visible[rel='"+$(this).attr('rel')+"']",menuElem);}else{visiblesubmenuitems=$("div.submenu_item[rel='"+$(this).attr('rel')+"']:visible",menuElem);} if(visiblesubmenuitems.length===0){hidemenu(menuElem);showmenu(menuElem,this);}else{menu_clearTimer(menuElem);}});menuitems.on('mouseleave',function(){var menuElem=$(this).parents('.nbf_tpl_menu').first();var opts=menuElem.data('opts');menuElem.data('timer',setTimeout(function(){hidemenu(menuElem);},Math.max(200,opts.hidedelay)));});$("div.submenu_item",menuElem).on('mouseenter',function(){var menuElem=$(this).parents('.nbf_tpl_menu').first();menu_clearTimer(menuElem);}).on('mouseleave',function(){var menuElem=$(this).parents('.nbf_tpl_menu').first();var opts=menuElem.data('opts');menuElem.data('timer',setTimeout(function(){hidemenu(menuElem);},Math.max(200,opts.hidedelay)));});}});};$.fn.nbfmenu.defaults={direction:'horizontal',submenu_type:'vertical',submenu_animstyle:'show',animduration:200,hidedelay:200};if(navigator.userAgent.match(/(iPad|iPhone|iPod)/g)){$.fn.nbfmenu.defaults.hidedelay=Math.max(350,$.fn.nbfmenu.defaults.hidedelay);} $(function(){$('.nbf_tpl_menu').nbfmenu();setTimeout(function(){$('.nbf_tpl_menu').nbfmenu();},1000);});})(jQuery);