function CheckDoneLoading(){vm.IsLoadingComplete(!vm.IsLoading());vm.IsLoading()||$("#loadingText").hide()}function SelectedCountryChanged(n){(vm.InitComplete()||n)&&GetStates(vm.SelectedCountry()).then(function(){n===!0?(vm.SelectedState(vm.DefaultState()),SelectedStateChanged()):(GetSpecs(vm.SelectedCountry(),null,null,null,null),GetFirms(0,0,vm.SelectedCountry(),null,null,null,!0,0))})}function SelectedStateChanged(){GetSpecs(vm.SelectedCountry(),vm.SelectedState(),null,null,vm.SelectedFirm());GetFirms(0,0,vm.SelectedCountry(),vm.SelectedState(),null,null,!0,vm.SelectedSpec())}function SelectedSpecChanged(){GetFirms(0,0,vm.SelectedCountry(),vm.SelectedState(),null,null,!0,vm.SelectedSpec())}function SelectedFirmChanged(){GetSpecs(vm.SelectedCountry(),vm.SelectedState(),null,null,vm.SelectedFirm());GetCities(vm.SelectedCountry(),vm.SelectedState(),vm.SelectedFirm())}function SelectedCityChanged(){}function GetStates(n){return $("#loadingText").show(),vm.LoadingStates(!0),new Promise(function(t,i){$.ajax({url:"/Search/GetStates",type:"GET",data:{countrycode:n},success:function(n){vm.States(ko.mapping.fromJS(n)());t(n)},error:function(n){i(n)},complete:function(){vm.LoadingStates(!1);CheckDoneLoading()}})})}function GetSpecs(n,t,i,r,u){$("#loadingText").show();vm.LoadingSpecs(!0);$.ajax({url:"/Search/GetSpecs",type:"GET",data:{countrycode:n,stateCode:t,city:i,metro:r,firmID:u},success:function(n){vm.Specs(ko.mapping.fromJS(n)())},error:function(){},complete:function(){vm.LoadingSpecs(!1);CheckDoneLoading()}})}function GetFirms(n,t,i,r,u,f,e,o){vm.CanSelectFirm()&&($("#loadingText").show(),vm.LoadingFirms(!0),$.ajax({url:"/Search/GetFirms",type:"GET",data:{firmID:n,locID:t,countryCode:i,stateCode:r,city:u,metro:f,withLLs:e,specID:o},success:function(n){vm.Firms(ko.mapping.fromJS(n)())},error:function(){},complete:function(){vm.LoadingFirms(!1);CheckDoneLoading()}}))}function GetCities(n,t,i){vm.CanSelectCity()&&($("#loadingText").show(),vm.LoadingCities(!0),$.ajax({url:"/Search/GetCities",type:"GET",data:{countryCode:n,stateCode:t,firmID:i},success:function(n){vm.Cities(ko.mapping.fromJS(n)())},error:function(){},complete:function(){vm.LoadingCities(!1);CheckDoneLoading()}}))}function btnSearchClick(){if(validateSearchTerms()){var n=GetSearchUrl();vm.PopupResults()?window.open(n,"bestlawyers_search_results"):parent.location.href=n}}function GetSearchUrl(){var t=vm.SelectedCountry(),i=vm.SelectedState()?vm.SelectedState():"",s=vm.SelectedState_Name(),h=vm.SelectedSpec(),r=vm.SelectedSpec_Name().replace("/","").replace(":",""),u=vm.SelectedFirm(),f=vm.SelectedFirm_Name(),e=vm.SelectedCity_Name(),o=vm.PartnerName(),n="";return t&&(n+="&country="+encodeURIComponent(t)),i&&(n+="&state="+encodeURIComponent(i)),e&&(n+="&city="+encodeURIComponent(e)),r&&(n+="&query="+encodeURIComponent(r)),u&&(n+="&firmID="+encodeURIComponent(u)),f&&(n+="&firmName="+encodeURIComponent(f)),n+="&partner="+encodeURIComponent(o),vm.PostbackUrl(window.location.origin+"/search?"),vm.PostbackUrl()+n}function validateSearchTerms(){var n=0,i=2,t;return vm.SelectedCountry()&&n++,vm.SelectedState()&&n++,vm.SelectedCity()&&n++,vm.SelectedSpec()&&n++,vm.SelectedFirm()&&n++,n<i?(t=i-n,alert(t>1?String.format(vm.MsgSelectPlural(),t):vm.MsgSelectSingular()),!1):!0}PartnerSearchViewModel=function(n){var t=this;t.PartnerName=ko.observable(n.CurrentPartner.Name);t.AllCountries=ko.observable(n.AllCountries);t.DefaultCountry=ko.observable(n.CurrentPartner.DefaultCountry);t.DefaultState=ko.observable(n.CurrentPartner.DefaultState);t.SelectStateText=ko.observable(n.CurrentPartner.SelectStateText);t.SelectSpecText=ko.observable(n.CurrentPartner.SelectSpecText);t.SelectFirmText=ko.observable(n.CurrentPartner.SelectFirmText);t.SelectCityText=ko.observable(n.CurrentPartner.SelectCityText);t.SelectLoty=ko.observable(!1);t.LoadingText=ko.observable(n.CurrentPartner.LoadingText);t.SearchButtonText=ko.observable(n.CurrentPartner.SearchButtonText);t.MsgSelectSingular=ko.observable(n.CurrentPartner.MsgSelectSingular);t.MsgSelectPlural=ko.observable(n.CurrentPartner.MsgSelectPlural);t.PostbackUrl=ko.observable(root+n.CurrentPartner.PostbackUrl);t.PopupResults=ko.observable(n.CurrentPartner.PopupResults);t.iFrameWidth=ko.observable(n.CurrentPartner.iFrameWidth);t.iFrameHeight=ko.observable(n.CurrentPartner.iFrameHeight);t.Countries=ko.observableArray(n.AllCountries);t.SelectedCountry=ko.observable(null);t.SelectedCountry_Name=ko.computed(function(){var n=ko.utils.arrayFirst(t.Countries(),function(n){return n.Code==t.SelectedCountry()});return n?n.Name:""});t.States=ko.observableArray();t.SelectedState=ko.observable(null);t.SelectedState_Name=ko.computed(function(){var n=ko.utils.arrayFirst(t.States(),function(n){return n.Code()==t.SelectedState()});return n?n.Name():""});t.Specs=ko.observableArray();t.SelectedSpec=ko.observable(null);t.SelectedSpec_Name=ko.computed(function(){var n=ko.utils.arrayFirst(t.Specs(),function(n){return n.ID()==t.SelectedSpec()});return n?n.Name():""});t.Firms=ko.observableArray();t.SelectedFirm=ko.observable(null);t.SelectedFirm_Name=ko.computed(function(){var n=ko.utils.arrayFirst(t.Firms(),function(n){return n.ID()==t.SelectedFirm()});return n?n.Name():""});t.Cities=ko.observableArray();t.SelectedCity=ko.observable(null);t.SelectedCity_Name=ko.computed(function(){return t.SelectedCity()?t.SelectedCity():""});t.LoadingCountries=ko.observable(!1);t.LoadingStates=ko.observable(!1);t.LoadingSpecs=ko.observable(!1);t.LoadingFirms=ko.observable(!1);t.LoadingCities=ko.observable(!1);t.IsLoading=ko.computed(function(){return t.LoadingCountries()||t.LoadingStates()||t.LoadingSpecs()||t.LoadingFirms()||t.LoadingCities()});t.IsLoadingComplete=ko.observable(!1);t.CanSelectState=ko.computed(function(){return t.IsLoadingComplete()?t.States().length>0?!0:(t.SelectedState(null),!1):!1});t.CanSelectFirm=ko.computed(function(){return t.IsLoadingComplete()?t.SelectedCountry()!="US"||t.SelectedState()?!0:(t.SelectedFirm(null),!1):!1});t.CanSelectCity=ko.computed(function(){return t.IsLoadingComplete()?t.SelectedFirm()?!0:(t.SelectedCity(null),!1):!1});t.Results=ko.observableArray();t.GetSearchResults=function(){$.get("/search/GetPartnerSearchResults?country="+t.SelectedCountry()+"&state="+t.SelectedState()).done(function(n){t.Results(JSON.parse(n))})};t.InitComplete=ko.observable(!1);t.Init=function(){vm.SelectedCountry(vm.DefaultCountry());SelectedCountryChanged(!0);t.InitComplete(!0)}};var vm=new PartnerSearchViewModel(serverModel);$(function(){ko.applyBindings(vm);vm.Init()});String.prototype.format=function(){for(var i,t=this,n=0;n<arguments.length;n++)i="{"+n+"}",t=t.replace(i,arguments[n]);return t}