(function(n){function t(t,i){n.fn.base.PluginBase.call(this,r,t,u,i)}var r="autocomplete",u={searchMethod:"search",minimumChars:2,searchDelay:350,daysToSavePreviousSearches:100,cookieName:"travelsearches",maxNoCharacters:0,maxNoOfSavedItems:4,usePreviousSearches:!1,contentType:"application/json",requestUrl:"/handlers/LocationSearch.ashx",containerSelector:"~ .search-result",targetPointTypeElementCssClassName:"frompointtype",targetPointIdElementCssClassName:"frompointid",targetPointNameElementCssClassName:"frompointname",targetPointXPosElementCssClassName:"",targetPointYPosElementCssClassName:"",translation:{}},i={UP:38,DOWN:40,ENTER:13,ESC:27,TAB:9};t.prototype=Object.create(n.fn.base.PluginBase.prototype);t.prototype.constructor=t;n.extend(t.prototype,{jqXhr:null,jqXhrData:null,jqXhrQsTimeoutId:-1,resultContainer:null,hasSelected:!1,mouseInsideAutoComplete:!1,init:function(){var n=this;n.resultContainer=n.$element.find(n.settings.containerSelector);n.resultContainer.mouseover(function(){n.mouseInsideAutoComplete=!0});n.resultContainer.mouseout(function(){n.mouseInsideAutoComplete=!1});this.$element.keyup(function(t){switch(t.which){case i.UP:n.AutocompleteResultStep("prev");break;case i.DOWN:n.AutocompleteResultStep("next");break;case i.ENTER:n.AutocompleteResultEnterKey(t);break;case i.ESC:n.AutocompleteResultClear();break;case i.TAB:n.AutocompleteResultEnterKey(t);break;default:n.BeginSearch()}});this.$element.focusout(function(){n.mouseInsideAutoComplete||(n.resultContainer.html(""),n.resultContainer.css("display","none"),n.resultContainer.parent().removeClass("active-q"))});this.$element.focusin(function(){n.hasSelected?n.hasSelected=!1:n.BeginSearch(!0)})},BeginSearch:function(n){var t=this,i=t.$element.val().trim()||"";i.length>=t.settings.minimumChars?(t.jqXhrData={action:t.settings.searchMethod,q:i},n?(t.ClearAjaxDelay(),t.DoAjaxRequest()):t.ThrowAjaxDelay.call(t,t.DoAjaxRequest,t.settings.searchDelay)):(t.ClearAjaxDelay(),t.resultContainer.html("").css("display","none"),t.resultContainer.parent().removeClass("active-q"),(t.mouseInsideAutoComplete&&t.settings.usePreviousSearches||t.settings.usePreviousSearches&&i.length==0)&&t.ShowValuesFromCookie())},DoAjaxRequest:function(){this.jqXhr=n.ajax({url:this.settings.requestUrl,contentType:this.settings.contentType,data:this.jqXhrData});var t=this;this.jqXhr.success(function(i){var r,o,u;if(t.resultContainer.html(""),i!=null&&i.length!=0){t.resultContainer.css("display","block");t.resultContainer.parent().addClass("active-q");for(r in i)if(o=t.settings.translation[r],i[r]!=null)for(u=0;u<i[r].length;u++){var f=n("<li />"),s=n("<span><\/span>"),e=n("<i><\/i>");f.attr("role","presentation");f.attr("data-travel-id",i[r][u].Id);f.attr("data-travel-text",i[r][u].Name);f.attr("data-travel-xpos",i[r][u].X);f.attr("data-travel-ypos",i[r][u].Y);s.html(i[r][u].Name);r=="StartEndPoint"?e.html(t.settings.translation[i[r][u].Type]):e.html(o);s.appendTo(f);e.appendTo(f);f.appendTo(t.resultContainer);f.click(function(){t.SetResultContainerValue(n(this))})}t.AutocompleteResultStep("next")}})},ThrowAjaxDelay:function(n,t){if(this.ClearAjaxDelay(),typeof n=="function"){var i=this;this.jqXhrQsTimeoutId=setTimeout(function(){n.call(i)},t)}},ClearAjaxDelay:function(){this.jqXhrQsTimeoutId>-1&&(clearTimeout(this.jqXhrQsTimeoutId),this.jqXhrQsTimeoutId=-1)},AutocompleteResultStep:function(n){var i=this,t=i.resultContainer.find(".ac-selected"),r;if(t.size()==0){t=n==="next"?i.resultContainer.children("li:first-child").addClass("ac-selected"):i.resultContainer.children("li:last-child").addClass("ac-selected");return}r=n==="next"?t.next().size()>0?t.next():i.resultContainer.children("li:first-child"):t.prev().size()>0?t.prev():i.resultContainer.children("li:last-child");t.removeClass("ac-selected");r.addClass("ac-selected")},AutocompleteResultEnterKey:function(){var n=this,t=n.resultContainer.find("li.ac-selected");t.size()>0&&n.SetResultContainerValue(t)},AutocompleteResultClear:function(){var n=this;n.$element.val("");n.resultContainer.html("");n.resultContainer.css("display","none")},ShowValuesFromCookie:function(){var u=this,t=u.GetSavedSearches(),i;if(t.data!=null&&t.data!==undefined&&t.data.filter(function(n){return n!=null&&n.direction===u.element.id}).length>0)for(u.resultContainer.css("display","block"),u.resultContainer.parent().addClass("active-q"),i=0;i<t.data.length;i++)if(t.data[i]!=null&&t.data[i].direction===u.element.id){var r=n("<li />"),f=n("<span><\/span>"),e=n("<i><\/i>");r.attr("role","presentation");r.attr("data-travel-id",t.data[i].id);r.attr("data-travel-text",t.data[i].text);r.attr("data-travel-xpos",t.data[i].xpos);r.attr("data-travel-ypos",t.data[i].ypos);f.html(t.data[i].text);e.html(t.data[i].type);f.appendTo(r);e.appendTo(r);r.appendTo(u.resultContainer);r.click(function(){u.SetResultContainerValue(n(this))})}u.AutocompleteResultStep("next")},SetCookie:function(n,t,i){var r=new Date,u;r.setTime(r.getTime()+i*864e5);u="expires="+r.toUTCString();document.cookie=n+"="+t+"; "+u+"; path=/;"},GetCookie:function(n,t){for(var u=n+"=",f=document.cookie.split(";"),i,r=0;r<f.length;r++){for(i=f[r];i.charAt(0)==" ";)i=i.substring(1);if(i.indexOf(u)!=-1)return decodeURI(i.substring(u.length,i.length))}return t},GetSavedSearches:function(){var n=this;return JSON.parse(n.GetCookie(n.settings.cookieName,"[]"))},ItemAlreadyExists:function(n,t,i){return t.data!=null&&t.data!==undefined?t.data.filter(function(t){return t!=null&&t.direction===i&&n.id===t.id}).length>0:!1},SaveSearch:function(n){var t=this,i=t.GetSavedSearches(),s=t.element.id,u=[],f,e,r,o;if(n==null||t.ItemAlreadyExists(n,i,s)||u.push(n),i.data!=null&&i.data!==undefined){for(f=u.length,e=i.data.filter(function(n){return n!=null&&n.direction===t.element.id})||[];f<t.settings.maxNoOfSavedItems&&e.length>0;)u.push(e.shift()),f++;for(r=0;r<i.data.length;r++)i.data[r]!=null&&i.data[r].direction!==s&&u.push(i.data[r])}o={};o.data=u;t.SetCookie(t.settings.cookieName,encodeURI(JSON.stringify(o)),t.settings.daysToSavePreviousSearches)},SetResultContainerValue:function(t){var i=this,u=t.children("span").text(),f=t.attr("data-travel-id"),e=t.attr("data-travel-xpos"),o=t.attr("data-travel-ypos"),s=t.find("i").text()||"",r={id:f,text:u,type:s,xpos:e,ypos:o,direction:i.element.id};i.hasSelected=!0;i.$element.val(r.text);i.resultContainer.html("");i.resultContainer.css("display","none");i.resultContainer.parent().removeClass("active-q");n("."+i.settings.targetPointIdElementCssClassName).val(r.id).trigger("change");n("."+i.settings.targetPointNameElementCssClassName).val(r.text);i.settings.targetPointTypeElementCssClassName.length>0&&n("."+i.settings.targetPointTypeElementCssClassName).val(r.type);i.settings.targetPointXPosElementCssClassName.length>0&&n("."+i.settings.targetPointXPosElementCssClassName).val(r.xpos);i.settings.targetPointYPosElementCssClassName.length>0&&n("."+i.settings.targetPointYPosElementCssClassName).val(r.ypos);i.settings.usePreviousSearches&&i.SaveSearch(r)}});n.fn[r]=function(n){t.prototype.applyPlugin(this,t,n)}})(jQuery),function(n){function t(t,i){n.fn.base.PluginBase.call(this,r,t,u,i)}var r="autocompletefind",u={minimumChars:3,searchDelay:350,contentType:"application/json",requestUrl:"/find/rest/autocomplete/get/",containerSelector:"",size:3,translation:{}},i={UP:38,DOWN:40,ENTER:13,ESC:27};t.prototype=Object.create(n.fn.base.PluginBase.prototype);t.prototype.constructor=t;n.extend(t.prototype,{jqXhr:null,jqXhrData:null,jqXhrQsTimeoutId:-1,resultContainer:null,hasSelected:!1,mouseInsideAutoComplete:!1,init:function(){var n=this;n.resultContainer=n.$element.find(n.settings.containerSelector);n.resultContainer.mouseover(function(){n.mouseInsideAutoComplete=!0});n.resultContainer.mouseout(function(){n.mouseInsideAutoComplete=!1});this.$element.keyup(function(t){switch(t.which){case i.UP:n.AutocompleteResultStep("prev");break;case i.DOWN:n.AutocompleteResultStep("next");break;case i.ENTER:n.AutocompleteResultEnterKey(t);break;case i.ESC:n.AutocompleteResultClear();break;default:n.BeginSearch()}});this.$element.focusout(function(){n.mouseInsideAutoComplete||(n.resultContainer.html(""),n.resultContainer.css("display","none"),n.resultContainer.parent().removeClass("active-q"))});this.$element.focusin(function(){n.hasSelected?n.hasSelected=!1:n.BeginSearch(!0)})},BeginSearch:function(n){var t=this,i=t.$element.val()||"";i.length>=t.settings.minimumChars?(t.jqXhrData={action:t.settings.searchMethod,q:i},n?(t.ClearAjaxDelay(),t.DoAjaxRequest()):t.ThrowAjaxDelay.call(t,t.DoAjaxRequest,t.settings.searchDelay)):(t.ClearAjaxDelay(),t.resultContainer.html("").css("display","none"),t.resultContainer.parent().removeClass("active-q"))},DoAjaxRequest:function(){this.jqXhr=n.ajax({url:this.settings.requestUrl+this.jqXhrData.q,size:this.settings.size,contentType:this.settings.contentType,data:this.jqXhrData});var t=this;this.jqXhr.success(function(i){(t.resultContainer.html(""),i!=null&&i.length!=0)&&(t.resultContainer.css("display","block"),t.resultContainer.parent().addClass("active-q"),n.each(i.Hits,function(i,r){var u=n("<li />"),f=n("<a>",{text:r.Query,title:r.Query,href:"/sok/?searchQuery="+r.Query});f.appendTo(u);u.appendTo(t.resultContainer);f.click(function(){return t.SetResultContainerValue(n(this)),!1});u.click(function(){t.SetResultContainerValue(n(this))})}),t.AutocompleteResultStep("next"))})},ThrowAjaxDelay:function(n,t){if(this.ClearAjaxDelay(),typeof n=="function"){var i=this;this.jqXhrQsTimeoutId=setTimeout(function(){n.call(i)},t)}},ClearAjaxDelay:function(){this.jqXhrQsTimeoutId>-1&&(clearTimeout(this.jqXhrQsTimeoutId),this.jqXhrQsTimeoutId=-1)},AutocompleteResultStep:function(n){var i=this,t=i.resultContainer.find(".ac-selected"),r;if(t.size()==0){t=n==="next"?i.resultContainer.children("li:first-child").addClass("ac-selected"):i.resultContainer.children("li:last-child").addClass("ac-selected");return}r=n==="next"?t.next().size()>0?t.next():i.resultContainer.children("li:first-child"):t.prev().size()>0?t.prev():i.resultContainer.children("li:last-child");t.removeClass("ac-selected");r.addClass("ac-selected")},AutocompleteResultEnterKey:function(){var n=this,t=n.resultContainer.find("li.ac-selected");t.size()>0&&n.SetResultContainerValue(t)},AutocompleteResultClear:function(){var n=this;n.$element.val("");n.resultContainer.html("");n.resultContainer.css("display","none")},SetResultContainerValue:function(t){var i=this,r=t.text();i.hasSelected=!0;i.$element.val(r);i.resultContainer.html("");i.resultContainer.css("display","none");i.resultContainer.parent().removeClass("active-q");n("#searchQuery").val(r)}});n.fn[r]=function(n){t.prototype.applyPlugin(this,t,n)}}(jQuery),function(n){"use strict";function h(t,i,r){var f=this,o,s,u;return(i=i||{},u=n.extend(!0,{async:!0,overwriteCache:!1,complete:null,success:null,error:function(){n(this).each(function(){n(this).html(u.errorMessage)})},errorMessage:"There was an error loading the template.",paged:!1,pageNo:1,elemPerPage:10,append:!1,prepend:!1,beforeInsert:null,afterInsert:null,bindingOptions:{ignoreUndefined:!1,ignoreNull:!1,ignoreEmptyString:!1}},r),n.type(i)==="array")?y.call(this,t,i,u):(v(t)||(o=n(t),typeof t=="string"&&t.indexOf("#")===0&&(u.isFile=!1)),s=u.isFile||typeof u.isFile=="undefined"&&(typeof o=="undefined"||o.length===0),s&&!u.overwriteCache&&e[t]?w(t,f,i,u):s&&!u.overwriteCache&&e.hasOwnProperty(t)?p(t,f,i,u):s?k(t,f,i,u):d(o,f,i,u),this)}function c(t,i){i?u[t]=i:u=n.extend(u,t)}function v(n){return typeof n=="string"&&n.indexOf("/")>-1}function y(t,i,r){var e;r=r||{};var u=this,o=i.length,s=r.prepend&&!r.append,c=0,l=0,f=!1,a;return r.paged&&(e=(r.pageNo-1)*r.elemPerPage,i=i.slice(e,e+r.elemPerPage),o=i.length),a=n.extend({},r,{complete:function(){this.html&&(s?u.prepend(this.html()):u.append(this.html()));c++;(c===o||f)&&(f&&r&&typeof r.error=="function"&&r.error.call(u),r&&typeof r.complete=="function"&&r.complete())},success:function(){l++;l===o&&r&&typeof r.success=="function"&&r.success()},error:function(){f=!0}}),r.append||r.prepend||u.html(""),s&&i.reverse(),n(i).each(function(){var i=n("<div/>");return h.call(i,t,this,a),f?!1:void 0}),this}function p(n,t,i,u){r[n]?r[n].push({data:i,selection:t,settings:u}):r[n]=[{data:i,selection:t,settings:u}]}function w(n,t,i,r){var u=e[n].clone();o.call(t,u,i,r);typeof r.success=="function"&&r.success()}function l(){return(new Date).getTime()}function b(n){return n.indexOf("?")!==-1?n+"&_="+l():n+"?_="+l()}function k(t,i,r,u){var o=n("<div/>"),f;e[t]=null;f=t;u.overwriteCache&&(f=b(f));n.ajax({url:f,async:u.async,success:function(n){o.html(n);nt(o,t,i,r,u)},error:function(){g(t,i,r,u)}})}function d(t,i,r,u){var f=n("<div/>");(t.is("script")||t.is("template"))&&(t=n.parseHTML(n.trim(t.html())));f.html(t);o.call(i,f,r,u);typeof u.success=="function"&&u.success()}function o(t,i,r){tt(t,i,r);n(this).each(function(){var i=n(t.html());r.beforeInsert&&r.beforeInsert(i);r.append?n(this).append(i):r.prepend?n(this).prepend(i):n(this).html(i);r.afterInsert&&r.afterInsert(i)});typeof r.complete=="function"&&r.complete.call(n(this))}function g(t,i,u,f){var e;for(typeof f.error=="function"&&f.error.call(i),n(r[t]).each(function(n,t){typeof t.settings.error=="function"&&t.settings.error.call(t.selection)}),typeof f.complete=="function"&&f.complete.call(i);r[t]&&(e=r[t].shift());)typeof e.settings.complete=="function"&&e.settings.complete.call(e.selection);typeof r[t]!="undefined"&&r[t].length>0&&(r[t]=[])}function nt(n,t,i,u,f){var s;for(e[t]=n.clone(),o.call(i,n,u,f),typeof f.success=="function"&&f.success.call(i);r[t]&&(s=r[t].shift());)o.call(s.selection,e[t].clone(),s.data,s.settings),typeof s.settings.success=="function"&&s.settings.success.call(s.selection)}function tt(r,u,f){u=u||{};t("data-content",r,u,f,function(n,t){n.html(i(n,t,"content",f))});t("data-content-append",r,u,f,function(n,t){n.append(i(n,t,"content",f))});t("data-content-prepend",r,u,f,function(n,t){n.prepend(i(n,t,"content",f))});t("data-content-text",r,u,f,function(n,t){n.text(i(n,t,"content",f))});t("data-src",r,u,f,function(n,t){n.attr("src",i(n,t,"src",f))},function(n){n.remove()});t("data-href",r,u,f,function(n,t){n.attr("href",i(n,t,"href",f))},function(n){n.remove()});t("data-alt",r,u,f,function(n,t){n.attr("alt",i(n,t,"alt",f))});t("data-id",r,u,f,function(n,t){n.attr("id",i(n,t,"id",f))});t("data-value",r,u,f,function(n,t){n.attr("value",i(n,t,"value",f))});t("data-link",r,u,f,function(t,r){var u=n("<a/>");u.attr("href",i(t,r,"link",f));u.html(t.html());t.html(u)});t("data-link-wrap",r,u,f,function(t,r){var u=n("<a/>");u.attr("href",i(t,r,"link-wrap",f));t.wrap(u)});t("data-options",r,u,f,function(t,i){n(i).each(function(){var i=n("<option/>");i.attr("value",this).text(this).appendTo(t)})});rt(r,u,f)}function t(t,i,r,u,f,e){n("["+t+"]",i).each(function(){var i=n(this),h=i.attr(t),o=s(r,h);if(!a(i,o,u)){i.remove();return}i.removeAttr(t);typeof o!="undefined"&&f?f(i,o):e&&e(i)});return}function a(n,t,i){var r=it(n,i);return r.ignoreUndefined&&typeof t=="undefined"?!1:r.ignoreNull&&t===null?!1:r.ignoreEmptyString&&t===""?!1:!0}function it(t,i){var r={};return t instanceof jQuery&&t.attr("data-binding-options")?(r=n.parseJSON(t.attr("data-binding-options")),t.removeAttr("data-binding-options")):typeof t=="object"&&t.hasOwnProperty("bindingOptions")&&(r=t.bindingOptions),n.extend({},i.bindingOptions,r)}function rt(t,i,r){n("[data-template-bind]",t).each(function(){var t=n(this),u=n.parseJSON(t.attr("data-template-bind"));t.removeAttr("data-template-bind");n(u).each(function(){var u,e;if(u=typeof this.value=="object"?s(i,this.value.data):s(i,this.value),this.attribute){if(!a(this,u,r)){t.remove();return}switch(this.attribute){case"content":t.html(f(t,u,this));break;case"contentAppend":t.append(f(t,u,this));break;case"contentPrepend":t.prepend(f(t,u,this));break;case"contentText":t.text(f(t,u,this));break;case"options":e=this;n(u).each(function(){var i=n("<option/>");i.attr("value",this[e.value.value]).text(f(t,this[e.value.content],e)).attr("selected",typeof this[e.value.selected]==undefined?!1:this[e.value.selected]).appendTo(t)});break;default:t.attr(this.attribute,f(t,u,this))}}})})}function f(n,t,i,r){return i.formatter&&u[i.formatter]?function(r){return u[i.formatter].call(n,t,i.formatOptions,r)}(r):t}function s(n,t){if(t==="this")return n;for(var u=t.split("."),r,i=n;(r=u.shift())&&typeof i!="undefined"&&i!=null;)i=i[r];return i}function i(t,i,r,f){var o=t.attr("data-format-target"),e,s;return(o===r||!o&&r==="content")&&(e=t.attr("data-format"),e&&typeof u[e]=="function")?(s=t.attr("data-format-options"),function(r){return u[e].call(t[0],i,s,n.extend({},r))}(f)):i}var e={},r={},u={};c("nestedTemplateFormatter",function(t,i,r){if(i){typeof i=="string"&&i[0]==="{"&&(i=n.parseJSON(i));var u=i.parentElement||"div",f=i.template||i;return i.parentElement?n("<"+u+"/>").loadTemplate(f,t,r):n("<"+u+"/>").loadTemplate(f,t,r).children()}});n.fn.loadTemplate=h;n.addTemplateFormatter=c}(jQuery)