// 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];
            }
        }
    }
    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


		//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 = "/esprodotti/prodotti.asp?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 apero (cambio l'icona)
			    $(this).parent().removeClass().addClass("directory").addClass("expanded");




			    // 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 {
		// 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);
	}
}
