
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")

	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");

		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(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()
}



