/* basic filter handler functions */

var filterParams="";

var group1CheckBox=0;
var shoeCheckBox=0;
var apparelCheckBox=0;
var accesoriesCheckBox=0;

var totalProducts=0;

var duration=0.2;
var currentProduct;

var myInterval;

currentProduct=0;
totalProducts=0;

//hv.2007.02.23: declaring var ajaxURI moved to productoverview.jsp
//var ajaxURI="__ajax_filter_products.html?";

function setTotalProducts(nr)
{
  if(typeof nr !="undefined")
  {
    t=parseInt(nr);
    if(t>0)
    {
      totalProducts=t;
    }
  }
}

function updateFilterResults(init)
{
  totalProducts=0;

  hideAjaxContent();
  showPreloader();

  clearInterval(myInterval);
  //myAjax=new Ajax.Updater('ajax_content', ajaxURI + filterParams, { asynchronous:true,evalScripts:true,onComplete:doneLoadingAjaxContent,method:'get' });
  var strSep = "&";
  if (ajaxURI.indexOf("?") == -1)
  {
    strSep = "?";
  }
  initParam = "";
  if(init) {
    initParam = "&init=true";
  }
  myAjax=new Ajax.Updater('ajax_content', ajaxURI +strSep + filterParams + initParam, { asynchronous:true,evalScripts:true,onComplete:doneLoadingAjaxContent,method:'get' });

  //myAjax=new Ajax.Updater('ajax_content', ajaxURI + "?" + filterParams, { asynchronous:true,evalScripts:true,onComplete:doneLoadingAjaxContent,method:'get' });
}

function doneLoadingAjaxContent()
{
  hidePreloader();
  showAjaxContent();
  //window.location.hash="to_ajax_content";
}

function hideAjaxContent()
{
  if($("ajax_content"))
  {
    $("ajax_content").style.display="none";
  }
}

function showAjaxContent()
{
  if($("ajax_content"))
  {
    $("ajax_content").style.display="";
  }
}

function createFilterParams()
{
  filterParams="";

  filterParams=filterParams + "m=" + checkboxMen.getState() + "&";
  filterParams=filterParams + "w=" + checkboxWomen.getState() + "&";
  filterParams=filterParams + "k=" + checkboxKids.getState() + "&";

  filterParams=filterParams + "s=" + checkboxShoes.getState() + "&";
  filterParams=filterParams + "s_val=" + getValueFromSelectbox("select_shoe_segments") + "&";

  filterParams=filterParams + "ap=" + checkboxApparel.getState() + "&";
  filterParams=filterParams + "ap_val=" + getValueFromSelectbox("select_apparel_segments") + "&";

  filterParams=filterParams + "ac=" + checkboxAccesories.getState() + "&";


  //alert(filterParams);
}

function initFilterProducts()
{
  if($("select_shoe_segments")) $("select_shoe_segments").onchange=filterProductsSelectBoxHandler;
  if($("select_apparel_segments")) $("select_apparel_segments").onchange=filterProductsSelectBoxHandler;

  createFilterParams();
  updateFilterResults(true);
}

function filterProductsSelectBoxHandler()
{
  createFilterParams();
  updateFilterResults();
}

function getValueFromSelectbox(selectName)
{

  if(typeof selectName != "undefined")
  {
    if($(selectName))
    {
      selectedIndexNr=$(selectName).selectedIndex;
      if (selectedIndexNr != -1)
      {
        var obj=$(selectName);
        return obj[selectedIndexNr].value;
      }
      else
      {
        return -1;
      }
    }
  }

  return -1;
}





function hideSegment(segmentName)
{
  if(typeof segmentName != "undefined")
  {
    if($(segmentName)) $(segmentName).style.display="none";
  }
}

function showSegment(segmentName)
{
  if(typeof segmentName != "undefined")
  {
    if($(segmentName)) $(segmentName).style.display="";
  }
}



function showProducts()
{
  currentProduct=0;
  if(totalProducts>0)
  {
    var elStr='productCounter_1';

    currentProduct++;

    if(is_safari)
    {
      myInterval=setInterval("showNextProductSafari()","250");
    } else {
      hideProductPreloader();
      Effect.Appear(elStr, { afterFinish:showNextProduct,duration: 0.2 });
    }


  }
}

function showPreloader()
{
  if($("ajaxPreloader"))
  {
    $("ajaxPreloader").style.display="";
  }
}

function hidePreloader()
{
  if($("ajaxPreloader"))
  {
    $("ajaxPreloader").style.display="none";
  }
}

function hideProductPreloader()
{
  var productPreloaderStr="productPreloader_" + currentProduct;
  if($(productPreloaderStr)) $(productPreloaderStr).style.display="none";

}

function showNextProduct(obj)
{
  currentProduct++;
  if(currentProduct<=totalProducts)
  {
    var elStr='productCounter_' + currentProduct;

    hideProductPreloader();
    Effect.Appear(elStr, { afterFinish:showNextProduct,duration: 0.2 });
  }
}


function showNextProductSafari()
{
  if(currentProduct<=totalProducts){
    var elStr='productCounter_' + currentProduct;
    if($(elStr))
    {
      hideProductPreloader();
      $(elStr).style.display="";
      currentProduct++;
    }
  } else {
    clearInterval(myInterval);
  }
}



function resetGroup1()
{
  checkboxMen.setUnChecked();
  checkboxWomen.setUnChecked();
  checkboxKids.setUnChecked();
}

function resetGroup2()
{
  checkboxShoes.setUnChecked();
  checkboxApparel.setUnChecked();
  checkboxAccesories.setUnChecked();
}

function checkboxHandler()
{
  if(typeof this.id != "undefined")
  {
    var t=Array();
    t["check_men"]=checkboxMen;
    t["check_women"]=checkboxWomen;
    t["check_kids"]=checkboxKids;

    t["check_shoes"]=checkboxShoes;
    t["check_apparel"]=checkboxApparel;
    t["check_accesories"]=checkboxAccesories;

    if(this.id == "check_men" || this.id == "check_women" || this.id == "check_kids")
    {
      if(checkboxMen.getState()==2 || checkboxWomen.getState()==2 || checkboxKids.getState()==2) {
        resetGroup1();
        t[this.id].setChecked();
      } else {
        t[this.id].switchState();
      }
     //------------------------------------------------
     //HV.2007.04.23: 3707 Filters resetten
     if(checkboxMen.getState()==0 && checkboxWomen.getState()==0 && checkboxKids.getState()==0)
     {
       checkboxMen.setInitUnChecked();
       checkboxWomen.setInitUnChecked();
       checkboxKids.setInitUnChecked();
     }
     //------------------------------------------------
    }

    if(this.id == "check_shoes" || this.id == "check_apparel" || this.id == "check_accesories")
    {
      if(checkboxShoes.getState()==2 || checkboxApparel.getState()==2 || checkboxAccesories.getState()==2)
      {

        t[this.id].setChecked();


        switch(this.id)
        {
          case "check_shoes" :
          {
            checkboxApparel.setUnChecked();
            checkboxAccesories.setUnChecked();
            break;
          }

          case "check_apparel" :
          {
            checkboxShoes.setUnChecked();
            checkboxAccesories.setUnChecked();
            break;
          }

          case "check_accesories" :
          {
            checkboxShoes.setUnChecked();
            checkboxApparel.setUnChecked();
            break;
          }
        }


      } else {
        t[this.id].switchState();
      }

      if(checkboxShoes.getState()==1)
      {
          showSegment("filterShoesSegments");
      } else {
        if(checkboxShoes.getState()==0)
        {
          hideSegment("filterShoesSegments");
        }
      }

      if(checkboxApparel.getState()==1)
      {
        showSegment("filterApparelSegments");
      } else {
        if(checkboxApparel.getState()==0)
        {
          hideSegment("filterApparelSegments");
        }
      }

      //------------------------------------------------
      //HV.2007.04.23: 3707 Filters resetten
      if(checkboxShoes.getState()==0 && checkboxApparel.getState()==0 && checkboxAccesories.getState()==0)
      {
        checkboxShoes.setInitUnChecked();
         checkboxApparel.setInitUnChecked();
         checkboxAccesories.setInitUnChecked();

         showSegment("filterShoesSegments");
         showSegment("filterApparelSegments");
      }
      //------------------------------------------------
    }

    createFilterParams();
    updateFilterResults();
  }
}

