var wizard = /* Object */
{
   initialized : false,
   sel1 : null,
   sel2 : null,
   sel3 : null,
   subm : null,
   init1 : 0,
   init2 : 0,
   init3 : 0,
   items : {},

   init : function()
   {
      if(!this.initialized)
      {
         this.initialized = true;
         this.sel1 = getElem('f-wiz1');
         this.sel2 = getElem('f-wiz2');
         this.sel3 = getElem('f-wiz3');
         this.subm = getElem('f-wiz-submit');
         if(!this.sel1 || !this.sel2 || !this.sel3 || !this.subm) return;
         this.load();
         this.disabled();
         this.preset(this.init1, this.init2, this.init3);
      }
   },

   load : function()
   {
      this.items["f-wiz1"] = this.fetchOptions(this.sel1);
      this.items["f-wiz2"] = this.fetchOptions(this.sel2);
      this.items["f-wiz3"] = this.fetchOptions(this.sel3);
   },

   preset : function(id1, id2, id3)
   {
      this.sel1.value=id1;
      if(this.sel1.selectedIndex < 0) this.sel1.value = 0;
      this.setValues(this.sel1);
      this.sel2.value=id2;
      if(this.sel2.selectedIndex < 0) this.sel2.value = 0;
      this.setValues(this.sel2);
      this.sel3.value=id3;
      if(this.sel3.selectedIndex < 0) this.sel3.value = 0;
      this.setValues(this.sel3);
   },
   
   fetchOptions : function( select_element )
   {
      var result = [];
      var opts = select_element.getElementsByTagName('option');
      for(var i=0;i<opts.length;i++) {
         result[i] = { "value":opts[i].value, "class":opts[i].className, "text":opts[i].innerHTML };
      }

      return result;
   },

   disabled : function()
   {
      this.sel1.selectedIndex = 0
      this.sel1.disabled = false;
      this.sel2.selectedIndex = 0
      this.sel2.disabled = true;
      this.sel3.selectedIndex = 0
      this.sel3.disabled = true;
      this.subm.disabled = true;
   },
   
   setValues : function(el)
   {
      if(this.sel1.selectedIndex == 0) return this.disabled();

      this.sel2.disabled = false;
      this.sel3.disabled = false;
      this.subm.disabled = false;
      
      var sv = new Array();
      sv[1] = this.sel1.value;
      sv[2] = this.sel2.value;
      sv[3] = this.sel3.value;
      
      for(var s=2; s<=3; s++)
      {
         var cur_sel = getElem('f-wiz'+s);
         if(el.id != cur_sel.id)
         {
            cur_sel.innerHTML = "";
      
            if(cur_sel.id == "f-wiz2" && this.sel3.selectedIndex > 0) var cur_val = this.sel1.value + "-" +this.sel3.value;
            else if(cur_sel.id == "f-wiz3" && this.sel2.selectedIndex > 0) var cur_val = this.sel1.value + "-" +this.sel2.value;
            else var cur_val = this.sel1.value;
            for (var i = 0; i < this.items[cur_sel.id].length; i++)
            {
               var cur = this.items[cur_sel.id][i];
               var opt = document.createElement("option");
               opt.value = cur["value"];
               opt.className = cur["class"];
               opt.innerHTML = cur["text"];
      
               if (hasClass(opt, cur_val) || opt.value == "0")
               {
                  cur_sel.appendChild(opt);
               }
            }
            cur_sel.value = sv[s]
            if(cur_sel.selectedIndex < 0) cur_sel.selectedIndex = 0;
         }
      }

      /*getElem(id).disabled = false;

      if (el.id == "f-wiz1")
      {
         if (el.value == "0")
         {
            this.sel2.selectedIndex = 0;
            this.sel2.disabled = true;
         }
         this.sel3.selectedIndex = 0
         this.sel3.disabled = true;
      }

      if (el.id == "f-wiz2" && el.value == "0")
      {
         this.sel3.selectedIndex = 0
         this.sel3.disabled = true;
      }
      
      this.subm.disabled = (this.sel1.value == 0 && this.sel2.value == 0 && this.sel3.value == 0);
      if (id == "f-wiz-submit") return;

      var sel = getElem(id);
      sel.innerHTML = "";

      if(id == "f-wiz3") var cur_val = this.sel1.value + "-" +this.sel2.value;
      else var cur_val = el.value;
      for (var i = 0; i < this.items[id].length; i++)
      {
         var cur = this.items[id][i];
         var opt = document.createElement("option");
         opt.value = cur["value"];
         opt.className = cur["class"];
         opt.innerHTML = cur["text"];

         if (hasClass(opt, cur_val) || opt.value == "0")
         {
            sel.appendChild(opt);
         }
      }*/
   },
   
   onSubmit : function(f)
   {
      if(this.sel1.value == 0 && this.sel2.value == 0 && this.sel3.value == 0) return false; // nemame nic vybrano
      if(this.sel2.value == 0 && this.sel3.value == 0) f.action = "/obchod/kategorie/";      // mame jen skupinu
      else  f.action = "/obchod/produkty/";                                                  // mame vic nez jen skupinu
      return true;
   }
}