
function pulisci_img(img_nuova)
{
	//alert(immagine);
	//Recupero in maniera xbrowser il box dell'immagine
	if (document.all) cornice = document.all["immagine"]
	else if (document.layers) cornice = document.layers["immagine"]
	else if (document.getElementById) cornice = document.getElementById("immagine")
	//Recupero in maniera xbrowser il box dell'immagine
	if (document.all) maschera = document.all["maschera"]
	else if (document.layers) maschera = document.layers["maschera"]
	else if (document.getElementById) maschera = document.getElementById("maschera")
	//Recupero in maniera xbrowser il box dell'immagine
	if (document.all) img_vecchia = document.all["imgprodotto"]
	else if (document.layers) img_vecchia = document.layers["imgprodotto"]
	else if (document.getElementById) img_vecchia = document.getElementById("imgprodotto")
    cornice2 = $('#immagine');

	img_vecchia.src = img_nuova.src;
	//alert("Per rimuovere la maschera")
	if ( (cornice) && (maschera) )
	cornice.removeChild(maschera);

}

function rollback()
{
	img_nuova.src = "immagini/img_prodotti_01.jpg";
	//Recupero in maniera xbrowser il box dell'immagine
	if (document.all) cornice = document.all["immagine"]
	else if (document.layers) cornice = document.layers["immagine"]
	else if (document.getElementById) cornice = document.getElementById("immagine")
	//Se per qualche motivo c'è ancora una maschera visibile le elimino tutte
	for(i=0; i<cornice.childNodes.length; i++) {
		figlio = cornice.childNodes[i]
		//alert(figlio);
		if (figlio.nodeName.toLowerCase() == "div") {
			cornice.removeChild(figlio);
			//alert("Figlio rimosso.");
		}
	}

}

function cat_switch(nodo)
{
	//alert("L'elemento "+nodo.nodeName.toLowerCase()+" ha "+nodo.childNodes.length+" figli.");
	loading = new Image;
	loading.setAttribute("height", "20px");
	loading.setAttribute("width", "20px");
	loading.src = "immagini/loading.gif"


	//Recupero il nome del file immagine associato racchiuso nell'attributo id
	if (nodo.getAttribute("id")) {
		nomeimg = nodo.getAttribute("id")+".jpg";
		//alert(nomeimg);

		//Recupero in maniera xbrowser il box dell'immagine
		if (document.all) cornice = document.all["immagine"]
		else if (document.layers) cornice = document.layers["immagine"]
		else if (document.getElementById) cornice = document.getElementById("immagine")

		//Se per qualche motivo c'è ancora una maschera visibile le elimino tutte
		for(i=0; i<cornice.childNodes.length; i++) {
			figlio = cornice.childNodes[i]
			//alert(figlio);
			if (figlio.nodeName.toLowerCase() == "div") {
				cornice.removeChild(figlio);
				//alert("Figlio rimosso.");
			}
		}
		//Credo il div che andrà a sovrapporsi
		maschera = document.createElement('div');
		maschera.setAttribute("id", "maschera");
        //Creo l'oggetto img
		gif_attesa = document.createElement('img');
		gif_attesa.setAttribute("alt", "Attendi il caricamento");
		gif_attesa.setAttribute("id", "attendi");
		gif_attesa.setAttribute("height", "20px");
		gif_attesa.setAttribute("width", "20px");
		gif_attesa.src = loading.src;

		maschera.appendChild(gif_attesa);
		cornice.appendChild(maschera);

		img_nuova = new Image;
		img_nuova.onload = function() { pulisci_img(this) }
		img_nuova.onerror = function() { rollback() }
		img_nuova.src = "immagini/prodotti/"+nomeimg;

	}

	for (i=0; i<nodo.parentNode.childNodes.length; i++)
		{
		if (nodo.parentNode.childNodes[i].nodeName.toLowerCase() == "dl")
			{
			//alert("Proprietà display settata a: "+nodo.childNodes[i].style.display)
			display = nodo.parentNode.childNodes[i].style.display;
			if (display == "none")
				{
				nodo.parentNode.childNodes[i].style.display = "block";
				//All'apertura di un nodo tutti gli altri devono chiudersi

				//Recupero in maniera xbrowser l'elenco dei prodotti
				if (document.all) elenco = document.all["catalogo"]
				else if (document.layers) elenco = document.layers["catalogo"]
				else if (document.getElementById) elenco = document.getElementById("catalogo")

				//Per ogni nodo figlio di elenco
				for (j=0; j<elenco.childNodes.length; j++)
					{
					figlio = elenco.childNodes[j]
					//Se il figlio è un li inizio a ciclare i suoi figli
					if (figlio.nodeName.toLowerCase() == "li")
						{

						//Per ogni figlio del li
						for (k=0; k<figlio.childNodes.length; k++)
							{
							if ( (figlio.childNodes[k].nodeName.toLowerCase() == "dl") && (nodo.parentNode.childNodes[i] != figlio.childNodes[k]) )
								{
								//alert("Trovato dl");
								prodotto = figlio.childNodes[k];
								prodotto.style.display="none";

								for (l=0; l<prodotto.childNodes.length; l++)
									{
									if (prodotto.childNodes[l].nodeName.toLowerCase() == "dd")
										{
										//alert("Trovato dd")
										prodotto.childNodes[l].style.display = "none";
										}
									}

								}
							}
						}
					}

				}
			else nodo.parentNode.childNodes[i].style.display = "none";
			}
		}


}

function prod_switch(nodo)
{
	//alert("L'elemento "+nodo.nodeName.toLowerCase()+" ha "+nodo.childNodes.length+" figli.");

	//Recupero il nome del file immagine associato racchiuso nell'attributo id
	//if (nodo.getAttribute("class")) {
    if ($(nodo).attr('class')) {
        //alert('Inizio la sostituzione dell\'immagine');
        loading = new Image;
        loading.setAttribute("height", "20px");
        loading.setAttribute("width", "20px");
        loading.src = "immagini/loading.gif"

		nomeimg = $(nodo).attr('class')+".jpg";
		//alert(nomeimg);

		//Recupero in maniera xbrowser il box dell'immagine
		if (document.all) cornice = document.all["immagine"]
		else if (document.layers) cornice = document.layers["immagine"]
		else if (document.getElementById) cornice = document.getElementById("immagine")

		//Se per qualche motivo c'è ancora una maschera visibile le elimino tutte
		for(i=0; i<cornice.childNodes.length; i++) {
			figlio = cornice.childNodes[i]
			//alert(figlio);
			if (figlio.nodeName.toLowerCase() == "div") {
				cornice.removeChild(figlio);
				//alert("Figlio rimosso.");
			}
		}
		//Credo il div che andrà a sovrapporsi
		maschera = document.createElement('div');
		maschera.setAttribute("id", "maschera");
        //Creo l'oggetto img
		gif_attesa = document.createElement('img');
		gif_attesa.setAttribute("alt", "Attendi il caricamento");
		gif_attesa.setAttribute("id", "attendi");
		gif_attesa.setAttribute("height", "20px");
		gif_attesa.setAttribute("width", "20px");
		gif_attesa.src = loading.src;

		maschera.appendChild(gif_attesa);
		cornice.appendChild(maschera);

		img_nuova = new Image;
		img_nuova.onload = function() { pulisci_img(this) }
		img_nuova.onerror = function() { rollback() }
		img_nuova.src = "immagini/prodotti/"+nomeimg;

	}

	//alert(nodo.nodeName.toLowerCase());

	fratello = nodo.nextSibling;
	while ( (fratello != null) && (fratello.nodeName.toLowerCase() != "dt") ) {
		if (fratello.nodeName.toLowerCase() == "dd") {
			if (fratello.style.display == "none") fratello.style.display = "block";
			else fratello.style.display = "none";
			descrizione = fratello;
		}
		fratello = fratello.nextSibling;
	}
	genitore = nodo.parentNode;
	for (i=0; i<genitore.childNodes.length; i++) {
		if ( (genitore.childNodes[i] != descrizione) && (genitore.childNodes[i].nodeName.toLowerCase() == "dd") )
			genitore.childNodes[i].style.display = "none";
	}

}

function prep_list()
{
	//Recupero in maniera xbrowser l'elenco dei prodotti
	if (document.all) elenco = document.all["catalogo"]
	else if (document.layers) elenco = document.layers["catalogo"]
	else if (document.getElementById) elenco = document.getElementById("catalogo")
	//Per ogni nodo figlio di elenco
	for (i=0; i<elenco.childNodes.length; i++) {
		nodo = elenco.childNodes[i]
		//Se il figlio è un li inizio a ciclare i suoi figli
		if (nodo.nodeName.toLowerCase() == "li") {
			//Per ogni figlio del li
			for (j=0; j<nodo.childNodes.length; j++) {
				if (nodo.childNodes[j].nodeName.toLowerCase() == "a") {
					ancora = prodotto = nodo.childNodes[j]
					ancora.setAttribute('title', 'Clicca per avere l\'elenco dei prodotti');
					ancora.style.cursor = "pointer";
					ancora.onclick=function() { cat_switch(this) };
				}

				if (nodo.childNodes[j].nodeName.toLowerCase() == "dl") {
					//alert("Trovato dl");
					prodotto = nodo.childNodes[j];
					prodotto.style.display="none";
					for (k=0; k<prodotto.childNodes.length; k++) {
						if (prodotto.childNodes[k].nodeName.toLowerCase() == "dt") {
							//alert("Trovato dt")
							prodotto.childNodes[k].setAttribute('title', 'Clicca per avere più informazioni');
							prodotto.childNodes[k].style.cursor = "pointer";
							prodotto.childNodes[k].onclick=function() { prod_switch(this) };
						}
						if (prodotto.childNodes[k].nodeName.toLowerCase() == "dd") {
							//alert("Trovato dd")
							prodotto.childNodes[k].style.display = "none";
						}
					}

				}
			}
		}


	}

}

window.onload=function(){
 prep_list()
}




