// JavaScript Document
var idcats = null; //array di id delle categorie aperte nell'albero

$(document).ready( function() {
							
	var idcategorie = "";
	var qs = location.search; // al postback è valorizzata es. ?idcat=li_114,li_0&pippo=0
	if(qs.length > 1){
		qs = qs.substring(1);  // tolgo il ?
		var variabili = qs.split("&");
		for (var i=0; i<variabili.length; i++){
			var variabile = variabili[i].split("=");
			if(variabile[0] == "idcat"){
				idcategorie = variabile[1]; // idcategorie = li_114,li_0
			}
		}
	}
	if(idcategorie.length > 1){
		// idcategorie è valorizzata es. li_114,li_0
		idcats = idcategorie.split(",");
	}			
	
	if($("#li_0").length > 0) {
		carica("li_0");
	}
});


function carica(catId) {
	
	var liDiv = $("#" + catId);
	 
	if(liDiv.hasClass("collapsed") || catId=="li_0") {
		// se il divLi in questione è chiuso recupero i dati e le metto nel div contenitore
		//alert(catId + ' è chiuso e lo apro');

		//cerca il div id="contenitore" all'interno del tag "li_ ..." passato
		liDiv.find("#contenitore").load("/esprodotti/jqueryProdottiTree.asp", {cat : catId}, 
			function() {
				//carica al suo interno (del contenitore) l'html ritornato

				// nel tag contenitore, di tutte le cartelle chiuse, cerca tutti gli "a" e abbina loro il click
				$(this).find(".collapsed").find("a").click(function (){ 
  

					if($(this).attr("rel")=="home") {
						// se il tag "a" ha l'attributo rel valorizzato a "home"
						// significa che ha una home di categoria o pagina di prodotto quindi dobbiamo caricare la pagina 
						// (il menu verrà riaperto al caricamento della pagina)
						
						//buildTreePath crea una string formattata li_116,li_114,li_0
						location.href = "/esprodotti/prodotti.asp?idcat=" + buildTreePath($(this).parent()) + "&idcategoria=" + $(this).attr("idcategoria") ;
					} else {
						// altrimenti carichiamo il contenuto di questa categoria qui dentro
						
						// richiamo la carica passandogli il tag che contiene l'"a" in questione
						carica($(this).parent().attr("id")) 
						//location.href = "?idcat=" + buildTreePath($(this).parent()) + "&idcategoria=" + $(this).attr("idcategoria") ;  //aggiunto il 19 Gennaio 2010
					}
					
					
					
				});
				


				$(this).find(".prodotto").find("a").click(function (){ 
					// per un prodotto per prendere la sua categoria contenitore (li_) devo fare 4 parent
					// idprodotto="241" <- prodotto <- jqueryFileTree <- contenitore <- li_0
					location.href = "/esprodotti/prodotti.asp?idcat=" + buildTreePath($(this).parent().parent().parent().parent()) + "&idcategoria=" + $(this).attr("idcategoria") + "&idprodotto=" + $(this).attr("idprodotto");
				
				});
				
				// setto la classe expanded sulla cartella che ho appena aperto (cambio l'icona)
				$(this).parent().removeClass().addClass("directory").addClass("expanded");
				
				// --------> volevo provare ad aggiungere una classe alle sottocategorie.. (ndr)
				//$(this).addClass("pippo").addClass("pluto");
				
				
				// quando ha finito di caricare questa categoria, controllo se devo caricare una sua sotto categoria
				// subito (al post back della pagina per aprire il menu alla categoria scelta)
				if(idcats != null){
					//alert("ho appena caricato la categoria : " + $(this).parent().attr("id"));
					for (var i=idcats.length-1; i>=0; i--){
						if(idcats[i] == $(this).parent().attr("id")) {
							// se la categoria appena caricata è nell'array di id delle categorie aperte nell'albero
							// e se esiste una categoria successiva nell'array
							// carico la sottocategoria
							if(i>0){
								carica(idcats[i-1]);
								i = 0; // esco dal loop
							}
						}
					}
				}
			} );
			
			
	} else {
		//alert(catId + ' è aperto e lo chiudo');
		// se invece il divLi è aperto, elimino il suo contenuto e lo chiudo
		liDiv.find("#contenitore").html("");
		liDiv.removeClass().addClass("directory").addClass("collapsed");
	}
}


function buildTreePath(liDiv){
	//devo costruire una funzione ricorsiva che risale fino al li_0
	if (liDiv.attr("id") == "li_0") {
		return liDiv.attr("id");
	} else {
		// li_116 <- jqueryFileTree <- contenitore <- li_114
		var liDivParent = liDiv.parent().parent().parent();
		return liDiv.attr("id") + "," + buildTreePath(liDivParent);
	}
}