window.onload = function() {
  htmlobjcat = $('ricerca_linee_categorie');
  htmlobjsubcat = $('ricerca_linee_sottocategorie');
  htmlobjprod = $('ricerca_linee_prodotti');
  resetSearch();
  changeSearchType('linee');
}

// Cambia tipo di ricerca (Linee di prodotti / Indice alfabetico)
function changeSearchType(searchType) {
  var boxPrefix = "ricerca_";
  var menuPrefix = "pulsanti_";
  var searchTypes = ['linee','indice'];
  for (i = 0; i < searchTypes.length; i++) {
    $(boxPrefix+searchTypes[i]).style.display = 'none';
    $(menuPrefix+searchTypes[i]).className = '';
  }
  $(boxPrefix+searchType).style.display = 'block';
  $(menuPrefix+searchType).className = 'active';
}

// Reimposta le tre liste (categorie piene, sottocategorie e prodotti vuote)
function resetSearch() {
  // categorie
  var completecatcount = htmlobjcat.getElements('li').length;
  for (var i = 0; i < completecatcount; i++) {
    htmlobjcat.getElements('li')[i].className = '';
  }
  // sottocategorie
  var completesubcatcount = htmlobjsubcat.getElements('li').length;
  for (var i = 0; i < completesubcatcount; i++) {
    htmlobjsubcat.getElements('li')[i].style.display = 'none';
    htmlobjsubcat.getElements('li')[i].removeClass('active');
  }
  // prodotti
  var completeprodcount = htmlobjprod.getElements('li').length;
  for (var i = 0; i < completeprodcount; i++) {
    htmlobjprod.getElements('li')[i].style.display = 'none';
    htmlobjprod.getElements('li')[i].removeClass('active');
  }
}

// Scegli categoria
function chooseCategory(catid) {
  
  // disattiva tutto e attiva la selezionata
  resetSearch();
  htmlobjcat.getElements('li')[catid].addClass('active');

  // visualizza lista sottocategorie
  var completesubcatcount = htmlobjsubcat.getElements('li').length;
  var availablesubcatcount = htmlobjsubcat.getElements('.cat_'+catid).length;
  for (i = 0; i < completesubcatcount; i++) {
    htmlobjsubcat.getElements('li')[i].style.display = 'none';
  }
  for (i = 0; i < availablesubcatcount; i++) {
    htmlobjsubcat.getElements('.cat_'+catid)[i].style.display = 'list-item';
  }
}

// Scegli sottocategoria
function chooseSubCategory(catid, subcatid) {
  
  // disattiva tutto e attiva la selezionata
  var availablesubcatcount = htmlobjsubcat.getElements('.cat_'+catid).length;
  for (i = 0; i < availablesubcatcount; i++) {
    htmlobjsubcat.getElements('.cat_'+catid)[i].className = 'cat_'+catid;
  }
  htmlobjsubcat.getElements('.cat_'+catid)[subcatid].addClass('active');
  
  // visualizza lista prodotti
  var completeprodcount = htmlobjprod.getElements('li').length;
  var availableprodcount = htmlobjprod.getElements('.cat_'+catid+'_'+subcatid).length;
  
  for (i = 0; i < completeprodcount; i++) { htmlobjprod.getElements('li')[i].style.display = 'none'; }
  for (i = 0; i < availableprodcount; i++) { htmlobjprod.getElements('.cat_'+catid+'_'+subcatid)[i].style.display = 'list-item'; }
}

// Scegli prodotto
function chooseProduct(productname, catid, subcatid, productid) {
  
  // disattiva tutto e attiva il selezionato
  var availableprodcount = htmlobjprod.getElements('.cat_'+catid+'_'+subcatid).length;
  for (i = 0; i < availableprodcount; i++) {
    htmlobjprod.getElements('.cat_'+catid+'_'+subcatid)[i].className = 'cat_'+catid+'_'+subcatid;
  }
  htmlobjprod.getElements('.cat_'+catid+'_'+subcatid)[productid].addClass('active');
  
  // visualizza prodotto
  showProduct(productname);
}

// Visualizza prodotto
function showProduct(productname) {
  var updateProduct = new Fx.Style('prodotto', 'opacity');
  updateProduct.custom(1,0).chain(function(){
    new Ajax('prodotti_'+productname+'.html', {
      method: 'get',
      update: 'prodotto_innerbox',
      onComplete: function() {
        new Fx.Style('prodotto','height').start($('prodotto_innerbox').getSize().size.y);
      }
    }).request();
    updateProduct.callChain();
  }).chain(function(){
    updateProduct.custom(0,1);
  });
}
