

// var ajaxControllerUrl = '';

// prida option do selectu
function addSelectOption(element,id,text) {
   var opt = document.createElement('option');
   opt.value = id;
   opt.text = text;
   element.options.add(opt);
}

// ajax nacte zeme
function getCountries() {
   new Ajax.Request(ajaxControllerUrl+'get-countries/?lang='+currentLang,
      {onSuccess: setCountries, asynchronous:false, method: 'get'});
}

// ajax zobrazi zeme
function setCountries(ar) {
   if (obj = ar.responseText.evalJSON()) {
      $('step1select').options.length = 0;
      obj.countries.each(function(item) {
            addSelectOption($('step1select'),item.id, item.country);
         }
      );
   }
}

// ziska data o zemi
function getCountryData(id) {
   new Ajax.Request(ajaxControllerUrl+'get-country-data/'+id+'/',{onSuccess: setCountryData});
}

// nastavi data zeme
function setCountryData(ar) {
   obj = ar.responseText.evalJSON(false);
   var  countryInfoTemplate = new Template('<h4>#{nameRefVal}</h4> #{editorial}');
   $('step1info').update(countryInfoTemplate.evaluate(obj.country));
}

// ziska udaje o druhu lodi
function getBoatKindData(id) {
   new Ajax.Request(ajaxControllerUrl+'get-boat-kind-data/'+id+'/',{onSuccess: setBoatKindData});
}

// zobrazi udaje o druhu lodi
function setBoatKindData(ar) {
   obj = ar.responseText.evalJSON(false);
   var  myTemplate = new Template('<h4>#{boatKind}</h4> #{description}');
   $('step2info').update(myTemplate.evaluate(obj.boatKind));
}

// zobrazi dalsi krok k nextTo, predchozi zobrazi, dalsi skreje
function showNextSteps(nextTo) {
   // ukazu aktualni
   if (undefined!=$(nextTo)) {
      name = $(nextTo).id;
      $(nextTo).show();
      $(nextTo).removeClassName('disabledWizardElement');
      $(nextTo).descendants().each(function(ele) {
         if (ele.disable) {
            ele.enable();
         }
      });
      // $(name+'info').show();
   // a vsechny predchozi
      if (undefined!=$(nextTo).previous(0)) {
         aStep = $(nextTo);
         while (prevStep = aStep.previous(0)) {
            name = prevStep.id;
            // prevStep.show();
            prevStep.removeClassName('disabledWizardElement');
            prevStep.descendants().each(function(ele) {
            if (ele.disable) {
               ele.enable();
            }});
            // $(name+'info').show();
            aStep = prevStep;
         }
      }
      aStep = $(nextTo);
      while (nextStep = aStep.next(0)) {
         // nextStep.hide();
         nextStep.addClassName('disabledWizardElement');
         nextStep.descendants().each(function(ele) {
            if (ele.disable) {
               ele.disable();
            }
         });
         // alert(nextStep.id+'hide');
         aStep = nextStep;
      }
   }
}


// ziska druhy lodi
function getBoatKinds() {
   new Ajax.Request(ajaxControllerUrl+'get-boat-kinds/?lang='+currentLang,{onSuccess: setBoatKinds, asynchronous:false, method: 'get'});
}

// zobrazi druhy lodi
function setBoatKinds(ar) {
   if (obj = ar.responseText.evalJSON()) {
      $('step2select').options.length = 0;
      obj.boatKinds.each(function(item) {
         addSelectOption($('step2select'),item.id, item.boatKind);
      });
   }
}

// pri zmene inputu
function selectChange(sel) {
   if (sel.id=='step4select') {
      sel.value=nextSaturday(sel.value);
   }
   setSearchParams();
   getSearchParams();
}

// nastavi parametry hledani do hashe v url
function setSearchParams() {
   // alert(Form.serialize($('searchParams').getInputs()));
   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);
   // alert(href);
   location.href = href;
   // alert();
}

// odesle formular
function submitForm() {
   setSearchParams();
   getSearchParams();
}

// updatuje lode
function updateBoats() {
   queryString = $('searchParams').serialize();
   boatsTabler(queryString);
}

// po updatu
function boatsUpdated() {
   $('wizard-ajax-loading').hide();
}

// pro tabler
function boatsTabler(queryString) {
   $('wizard-ajax-loading').show();
   new Ajax.Updater('searchResults', ajaxControllerUrl+'get-wizard-boats/',
      { method:'get', evalScripts: true, parameters: queryString, onSuccess: boatsUpdated });
   // alert(queryString);
}

// ziska z hashe vyhledavaci parametry, pokud jsou vsechny vyplnene, vypise lode
function getSearchParams() {
   obj = new Hash(String(location.hash.substring(1)).toQueryParams()); //.toQueryParams();
   var countParams = 0;
   var last = 0;
   obj.each(
      function(pair) {
         // alert(pair.key);
         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) {
      // loadValues('step1');
      showNextSteps('step1');
   } else {
      if (last>4) {
         last = 4;
      }
      showNextSteps('step'+last);
      // alert('next '+'step'+last);

   }
   // alert(countParams);
   if (countParams==4) {

      updateBoats();
   }
}

function loadValues(step) {
}

// nacte informace ke kroku
function loadInfo(step,val) {
   if (step=='step1') {
      getCountryData(val);
   }
   if (step=='step2') {
      getBoatKindData(val);
   }
}

// ze stringu stepXX vrati XX
function parseStep(step) {
   return (Number(step.substring(4))+1);
}

// nastavi vyber dle hodnoty, nacte hodnoty a informace
function setSelected(key,val) {
   if ($(key+'select')!=undefined) {
      $(key+'select').value = val;
      next = 'step'+parseStep(key);
      loadValues(next);
      loadInfo(key,val);
   }
}

// sleduje zmeny v url
function urlChangedWatch() {

   if (url != location.hash.substring(1)) {
      url = location.hash.substring(1);
      getSearchParams();
      setSearchParams();
   }


}



