
function addSelectOption(element,id,text){var opt=document.createElement('option');opt.value=id;opt.text=text;element.options.add(opt);}
function getCountries(){new Ajax.Request(ajaxControllerUrl+'get-countries/',{onSuccess:setCountries,asynchronous:false,method:'get'});}
function setCountries(ar){if(obj=ar.responseText.evalJSON()){$('step1select').options.length=0;obj.countries.each(function(item){addSelectOption($('step1select'),item.id,item.country);});}}
function getCountryData(id){new Ajax.Request(ajaxControllerUrl+'get-country-data/'+id+'/',{onSuccess:setCountryData});}
function setCountryData(ar){obj=ar.responseText.evalJSON(false);var countryInfoTemplate=new Template('<h4>#{nameRefVal}</h4> #{editorial}');$('step1info').update(countryInfoTemplate.evaluate(obj.country));}
function getBoatKindData(id){new Ajax.Request(ajaxControllerUrl+'get-boat-kind-data/'+id+'/',{onSuccess:setBoatKindData});}
function setBoatKindData(ar){obj=ar.responseText.evalJSON(false);var myTemplate=new Template('<h4>#{boatKind}</h4> #{description}');$('step2info').update(myTemplate.evaluate(obj.boatKind));}
function showNextSteps(nextTo){if(undefined!=$(nextTo)){name=$(nextTo).id;$(nextTo).show();$(nextTo).removeClassName('disabledWizardElement');$(nextTo).descendants().each(function(ele){if(ele.disable){ele.enable();}});if(undefined!=$(nextTo).previous(0)){aStep=$(nextTo);while(prevStep=aStep.previous(0)){name=prevStep.id;prevStep.removeClassName('disabledWizardElement');prevStep.descendants().each(function(ele){if(ele.disable){ele.enable();}});aStep=prevStep;}}
aStep=$(nextTo);while(nextStep=aStep.next(0)){nextStep.addClassName('disabledWizardElement');nextStep.descendants().each(function(ele){if(ele.disable){ele.disable();}});aStep=nextStep;}}}
function getBoatKinds(){new Ajax.Request(ajaxControllerUrl+'get-boat-kinds/',{onSuccess:setBoatKinds,asynchronous:false,method:'get'});}
function setBoatKinds(ar){if(obj=ar.responseText.evalJSON()){$('step2select').options.length=0;obj.boatKinds.each(function(item){addSelectOption($('step2select'),item.id,item.boatKind);});}}
function selectChange(sel){if(sel.id=='step4select'){sel.value=nextSaturday(sel.value);}
setSearchParams();getSearchParams();}
function setSearchParams(){var obj=new Hash();var finish=false;$('steps').childElements().each(function(el){if(!finish&&undefined!=$(el.id+'select')&&$(el.id+'select').value!=0){obj.set(el.id,$(el.id+'select').value);}else{finish=true;}});href='#'+Object.toQueryString(obj);location.href=href;}
function submitForm(){setSearchParams();getSearchParams();}
function updateBoats(){queryString=$('searchParams').serialize();boatsTabler(queryString);}
function boatsUpdated(){$('wizard-ajax-loading').hide();}
function boatsTabler(queryString){$('wizard-ajax-loading').show();new Ajax.Updater('searchResults',ajaxControllerUrl+'get-wizard-boats/',{method:'get',evalScripts:true,parameters:queryString,onSuccess:boatsUpdated});}
function getSearchParams(){obj=new Hash(String(location.hash.substring(1)).toQueryParams());var countParams=0;var last=0;obj.each(function(pair){if($(pair.key+'select')!=undefined){if(last<parseStep(pair.key)){last=parseStep(pair.key);}
loadValues(pair.key);setSelected(pair.key,pair.value);countParams++;}});if(countParams<1){showNextSteps('step1');}else{if(last>4){last=4;}
showNextSteps('step'+last);}
if(countParams==4){updateBoats();}}
function loadValues(step){}
function loadInfo(step,val){if(step=='step1'){getCountryData(val);}
if(step=='step2'){getBoatKindData(val);}}
function parseStep(step){return(Number(step.substring(4))+1);}
function setSelected(key,val){if($(key+'select')!=undefined){$(key+'select').value=val;next='step'+parseStep(key);loadValues(next);loadInfo(key,val);}}
function urlChangedWatch(){if(url!=location.hash.substring(1)){url=location.hash.substring(1);getSearchParams();setSearchParams();}}