Cwo.RegisterNamespace("Cwo.AutoCompleteGeneric");Cwo.AutoCompleteGeneric=function(p,C,b,q,w,o,B,h,t,u,d,k,x){var G=this,D=h,v=t,y=$("#"+C),s=$("#"+b),i=$("#"+q),e=b,F=w,g=p,E=$("#"+g),j=$("#"+p+" span"),n=d,c=B,z=o,m=k,A=x;G.Visible=false;u.InstanceInformation.Textbox=y;u.InstanceInformation.Data=m;function H(){y.attr("tabindex",0);if(A){y.focus()}if(y.val()===""){if(D.length>0){y.removeClass().addClass(D)}}i.bind("click",function(){if(y.val().length>0){s.empty();u.OverrideSearchClick()}else{if(v.length>0){y.removeClass().addClass(v);y.addClass(v)}}})}function l(){var I=$("#"+e+" li.Selected");if(I.size()>0){I.next().addClass("Selected")}else{$("#"+e+" li:first").addClass("Selected")}I.removeClass("Selected")}function r(){var I=$("#"+e+" li.Selected");if(I.size()>0){I.prev().addClass("Selected")}else{$("#"+e+" li:last").addClass("Selected")}I.removeClass("Selected")}function a(){var I=$("#"+e+" li.Selected");if(I.size()>0){y.val(I.text());s.empty()}if(y.val().length>0){s.empty();u.OverrideItemSelect()}else{if(v.length>0){y.removeClass().addClass(v);y.addClass(v)}}}function f(){var I=y.val();if(I.length===0){s.empty();if(G.Visible){G.Visible=false;Cwo.Page.EventController.FireEvent("SearchPredictiveBox.VisibilityChange.Invisible")}y.removeClass().addClass(D);return}y.removeClass();I=G.RemoveIllegalCharacters(I);var J=G.ValidCharacterCheck(I,I.length);I=I.replace(/['']/g,"\\'");var L=Cwo.Page.AjajCalls.CreateRequest("GenrcSearchSuggestion");var K='{"FormValue":"'+I+'"}';new Cwo.AjaxCall(F,K,function(M){G.Updated(M,L)},null,null,true)}this.ForceUpdate=function(I){y.val($(I).text());a()};this.KeyPressed=function(I){var J=I.keyCode?I.keyCode:I.which?I.which:I.charCode;var K={UP:38,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34,BACKSPACE:8};switch(J){case K.UP:r();break;case K.DOWN:l();break;case K.TAB:l();break;case K.RETURN:a();break;case K.ESC:s.empty();break;default:f();break}return};this.Updated=function(J,O){if(Cwo.Page.AjajCalls.IsCurrentSequenceIndex("GenrcSearchSuggestion",O)){var L=J.d;var I=y.val().length;s.empty();for(var K in L){if(L.length!==0){var N=L[K];var P="<em>"+N.substr(0,I)+"</em>"+N.substr(I,N.length-I);var M="";if(z.toString().length>1&&c.toString().length===0){M=' href="'+z+N+'" '}else{if(z.toString().length>1&&c.toString().length>1){M=' href="'+z+N+c+'"'}else{if(z.toString().length===0&&c.toString().length>1){M=' href="'+N+c+'"'}else{M=' href="'+z+'#" '}}}s.append('<li><a onclick="'+n+'.ForceUpdate(this)"'+M+' title="'+N+' tabindex=0">'+P+"</a></li>")}}if(!G.Visible){G.Visible=true;Cwo.Page.EventController.FireEvent("SearchPredictiveBox.VisibilityChange.Visible")}$("#"+e+" li:last").addClass("Last")}};this.RemoveIllegalCharacters=function(I){var J=new RegExp("\\\\","g");I=I.replace(J,"");I=I.replace(/[#%*{}+@:<>""|?]/g,"");I=I.replace(/[&]/g,"and");return I};this.ValidCharacterCheck=function(I,K){var M="";var J=false;for(var L=0;L<K;L++){M=I.charAt(L);M=M.match("^[a-zA-Z0-9!()-,_;~]$")?J=true:J=false;if(J===true){return true}}return J};this.SetPlace=function(I){y.val(I);if(y.val()===""){j.removeClass().addClass(D)}};this.DemandEntry=function(){y.removeClass().addClass(v)};$(document).ready(function(){Cwo.AutoCompleteGeneric.OnStart=function(){if($.browser.opera){y.bind("keypress",function(J){G.KeyPressed(J)})}else{y.bind("keyup",function(J){G.KeyPressed(J)})}y.focus(function(){if(y.val()===""){j.removeClass(v).addClass(D)}}).blur(function(){if(y.val()===""){j.removeClass(v).addClass(D)}});H()};if(navigator.userAgent.indexOf("MSIE")>-1){Cwo.AutoCompleteGeneric.OnStart();return}try{Cwo.AutoCompleteGeneric.OnStart()}catch(I){Cwo.Error.TrackError(I)}})};Cwo.RegisterNamespace("Cwo.AutoCompleteGeneric.SelfStorage");Cwo.AutoCompleteGeneric.SelfStorage=new function(){var a=this;this.InstanceInformation={Textbox:Object,ResultsContainerId:"StorageResultsContainer",NoResultsContainerId:"NoResultsContainer",BrandImageFolderPath:"/images/affiliate/brands/",ButtonImageFolderPath:"/images/affiliate/buttons/",CurrentBranchID:0};$(document).ready(function(){$("#"+a.InstanceInformation.ResultsContainerId).css("display","none")});this.OverrideSearchClick=function(){Cwo.AutoCompleteGeneric.SelfStorage.QueryWebService()};this.OverrideItemSelect=function(){Cwo.AutoCompleteGeneric.SelfStorage.QueryWebService()};this.QueryWebService=function(){var c=Cwo.AutoCompleteGeneric.SelfStorage.InstanceInformation.Textbox.val();c=c.replace(/['']/g,"\\'");if(c.length>0){$("#Loading").css("display","block");var d=Cwo.Page.AjajCalls.CreateRequest("AffiliateStoreSearch"),b='{"FormValue":"'+c+'"}';new Cwo.AjaxCall("/webservices/selfstoragesearch.asmx/SearchStores",b,function(e){Cwo.AutoCompleteGeneric.SelfStorage.Updated(e,d)},null,null,true)}};this.Updated=function(b,g){if(Cwo.Page.AjajCalls.IsCurrentSequenceIndex("AffiliateStoreSearch",g)){$("#Loading").css("display","none");var h=$("#"+this.InstanceInformation.ResultsContainerId),d=b.d,e="";h.html("");if(d.length>0){$("#"+this.InstanceInformation.NoResultsContainerId).addClass("Hidden");$("#"+Cwo.AutoCompleteGeneric.SelfStorage.InstanceInformation.ResultsContainerId).css("display","block");e+='<script type="text/javascript" language="javascript">';e+="$(function() { ";for(var c in d){if(d.length!==0){var f="";var i=h.html();f+="<div>";f+='<img src="#ImageFilePath#" alt="#BrandName#" />';f+="<div>";f+="<h1>#BrandName# / </h1><h3>#BranchName#, #PostCode#</h3>";f+="<h2>#TelephoneNumber#</h2>";f+="</div>";f+='<button id="StorageContact'+d[c].BranchID.toString()+'">Contact Provider</button>';f+="</div>";f=f.replace("#BranchName#",d[c].BranchName);f=f.replace(/#BrandName#/g,d[c].BrandName);f=f.replace("#PostCode#",d[c].Postcode);f=f.replace("#TelephoneNumber#",d[c].TelephoneNumber);f=f.replace(/#ImageFilePath#/g,(this.InstanceInformation.BrandImageFolderPath+d[c].ImageFilePath));h.html(i+f);e+='new Cwo.Form("StorageContact'+d[c].BranchID.toString()+'", '+this.InstanceInformation.Data+', false, null, "BranchID:'+d[c].BranchID.toString()+'");'}}e+="    });";e+="</script>";h.html(h.html()+e);$("button").bind("click",function(){window.location=window.location+"#ContactAffiliate["+d[c].BranchID.toString()+"]"})}else{$("#"+this.InstanceInformation.NoResultsContainerId).removeClass()}}else{alert("AJAX call failed!")}}};
