var tuttiicaratteri			 = "";

// NUMERI
var tuttiinumeri				 			= "1234567890";

// LETTERE NORMALI
var tuttelelettereminuscole	= "qwertyuiopasdfghjklzxcvbnm";
var tutteleletteremaiuscole = tuttelelettereminuscole.toUpperCase();
var tuttelelettere					= tuttelelettereminuscole + tutteleletteremaiuscole

// LETTERE ACCENTATE
// var tuttelelettereaccentate	 = "àèìòù";
// tuttelelettereaccentate			+= tuttelelettereaccentate.toUpperCase();

// INTERPUNZIONI
var interpunzioni	= " .,/-";

// TUTTI I CARATTERI NORMALI
// var tuttiicaratterinormali = tuttiinumeri + tuttelelettere + tuttelelettereaccentate + interpunzioni;
var tuttiicaratterinormali = tuttiinumeri + tuttelelettere + interpunzioni;

var caratteritelefono		 = "0123456789";
var numerievirgole		 	 = ".,0123456789";

function swap_class(td,class_name){
	if(document.getElementById || (document.all && !(document.getElementById))) {
		td.className=class_name;
	}
}

function swap_class_id(id,class_name){
	if(document.getElementById || (document.all && !(document.getElementById))) {
		var oElement = document.getElementById(id);
		oElement.className=class_name;
	}
}

function openMenu(subMenuIndex) {
	var prevDisplay = document.getElementById('subMenu_opened_' + subMenuIndex + '_top').className;
	var newDisplay_opened = (prevDisplay == 'contentHidden') ? 'contentVisible' : 'contentHidden';
	var newDisplay_closed = (newDisplay_opened == 'contentHidden') ? 'contentVisible' : 'contentHidden';

	document.getElementById('subMenu_opened_' + subMenuIndex + '_top').className = newDisplay_opened;
	document.getElementById('subMenu_opened_' + subMenuIndex + '_bottom').className = newDisplay_opened;
	document.getElementById('subMenu_closed_' + subMenuIndex).className = newDisplay_closed;
}

function aprichiudiMenu(subMenuName,cClassName)
	{

	document.getElementById(subMenuName).className = cClassName;

	}
	
function uscitatesto(cField,nMin,nMax,cAllowedChars,nCase)
	{

	// nMin = 0;	// NUMERO MINIMO DI CARATTERI ACCETTABILI
								// 0 = NESSUN LIMITE, OVVERO CAMPO FACOLTATIVO

	// nMax = 30;	// NUMERO MASSIMO DI CARATTERI ACCETTABILI
								// DEVE SEMPRE ESSERE IMPOSTATO

	// cAllowedChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";	// STRINGA CONTENENTE I CARATTERI PERMESSI

	// nCase = 0		// 0 = LASCIA INVARIATO IL MAIUSCOLO/MINUSCOLO
									// 1 = TRASFORMA IN MAIUSCOLO
									// 2 = TRASFORMA IN MINUSCOLO

	// VARIABILE USATA PER MEMORIZZARE IL TIPO DELLE ALTRE VARIABILI
	// USATE NEL CORSO DELLA ELABORAZIONE PER VERIFICARE SE LE STESSE
	// SONO STATE PASSATE O MENO
	var cTipoVariabile = "";

	// SE NON E' STATO PASSATO IL NUMERO MINIMO DI CARATTERI DA GESTIRE
	// LI IMPOSTA DI DEFAULT A 0 ( = CAMPO FACOLTATIVO)
	cTipoVariabile = typeof(nMin);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nMin = 0;
		}

	// SE NON E' STATO PASSATO IL NUMERO MASSIMO DI CARATTERI DA GESTIRE
	// LI IMPOSTA DI DEFAULT A 30
	cTipoVariabile = typeof(nMax);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nMax = 30;
		}

	// SE NON E' STATO PASSATO IL FLAG PER LA GESTIONE DEL MAIUSCOLO/minuscolo
	// LO IMPOSTA DI DEFAULT A 1 (CAMBIA TUTTO IN MAIUSCOLO)
	cTipoVariabile = typeof(nCase);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nCase = 1;
		}

	// SE NON E' STATA PASSATA LA STRINGA CON I CARATTERI AMMESSI
	// LA IMPOSTA DI DEFAULT A "" ( = ACCETTA QUALSIASI CARATTERE)
	cTipoVariabile = typeof(cAllowedChars);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		cAllowedChars = "";
		}

	// INIZIALIZZA A VERO IL VALORE DA RITORNARE ALLO SCRIPT CHIAMANTE
	var lRet = true;

	// MEMORIZZA IL CONTENUTO DEL CAMPO PER LE SUCCESSIVE ELABORAZIONI
	var cValore = cField.value;

	if (nCase == 1)
		{
		cValore = cField.value.toUpperCase();
		}

	if (nCase == 2)
		{
		cValore = cField.value.toLowerCase();
		}

	// MEMORIZZA IL CONTENUTO DEL CAMPO PRIMA DI QUALSIASI ELABORAZIONE
	// PER POTERLO VISUALIZZARE NELL'ALERT IN CASO CHE NON SIA UN NUMERO VALIDO
	var cOldValore = cValore;

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// SE E' PRESENTE UNA STRINGA cAllowedChars
		if (cAllowedChars != "")
			{
			// PER OGNI CARATTERE CONTENUTO NEL CAMPO
			for (n=0;n<cValore.length;n++)
				{
				// SE LO STESSO NON E' PRESENTE NELLA STRINGA cAllowedChars
				if ( cAllowedChars.indexOf(cValore.charAt(n)) < 0 )
					{
					// VA IN ERRORE!
					alert ("Il carattere " + cValore.charAt(n).toUpperCase() + " non è ammesso");
					lRet = false;
					break;
					}
				}
			}
		}

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// SE NON E' STATO IMMESSO ALCUN VALORE E IL CAMPO E' OBBLIGATORIO...
		if ( (cValore == "") && (nMin > 0) )
			{
			// VA IN ERRORE!
			alert ("Il campo è obbligatorio!");
			lRet = false;
			}
		}

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// LUNGHEZZA MINIMA E MASSIMA DEL CAMPO UGUALI (CAMPO DI LUNGHEZZA FISSA)
		if ( (cValore.length > 0) && (cValore.length != nMin) && (nMin == nMax) )
			{
			// VA IN ERRORE!
			alert ("La lunghezza deve essere di " + nMin + " caratteri");
			lRet = false;
			}
		}
	
	if (lRet)
		{
		// LUNGHEZZA MINIMA DEL CAMPO
		if ( (cValore.length > 0) && (cValore.length < nMin) && (nMin > 0) )
			{
			// VA IN ERRORE!
			alert ("Lunghezza minima = " + nMin);
			lRet = false;
			}
		}

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// LUNGHEZZA MASSIMA DEL CAMPO
		if ( (cValore.length > 0) && (cValore.length > nMax) )
			{
			// VA IN ERRORE!
			alert ("Lunghezza massima = " + nMax);
			lRet = false;
			}
		}

	// INFINE, SE IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// VISUALIZZA IL NUMERO CORRETTAMENTE FORMATTATO
		cField.className = "input_form";
		cField.value = cValore;
		}
	else
		{
		// LASCIA INALTERATO IL VALORE DEL CAMPO
		// E LO EVIDENZIA CON SFONDO ROSSO
		cField.value = cOldValore;
		cField.className = "input_form_red";
		}

	// RITORNA IL RISULTATO ALLO SCRIPT CHIAMANTE
	return lRet;
	}

function controllaemailinvitati(cField,nMin,nMax,cAllowedChars,nCase)
	{

	// INIZIALIZZA IL VALORE DA RITORNARE ALLO SCRIPT CHIAMANTE, RICAVANDOLO DA USCITATESTO
	var lRet = uscitatesto(cField,nMin,nMax,cAllowedChars,nCase);

	if ( lRet )
		{

		var nomedelcamposucuimitrovo    = cField.name;
		var indirizzoemaildaconfrontare = cField.value;

		var primoseparatore    = 14;
		var secondoseparatore  = nomedelcamposucuimitrovo.indexOf("_",primoseparatore + 1)
		var campidaconfrontare = nomedelcamposucuimitrovo.substring(0,secondoseparatore + 1)
		var idpacchetto        = nomedelcamposucuimitrovo.substring(primoseparatore + 1,secondoseparatore)

		// PER OGNI ELEMENTO DEL FORM
		for (var n=0; n < this.document.form_avviaricerca.length ; n++)
			{

			// SE MI TROVO SU UNO DEI CAMPI EMAIL
			if ( this.document.form_avviaricerca[n].name.substring(0,campidaconfrontare.length) == campidaconfrontare)
				{

				// E SE NON E' QUELLO SU CUI MI TROVO
				if (this.document.form_avviaricerca[n].name != nomedelcamposucuimitrovo)
					{

					// SE L'INDIRIZZO EMAIL DIGITATO E' UGUALE A QUELLO CON CUI LO STIAMO CONFRONTANDO
					if ( (this.document.form_avviaricerca[n].value == indirizzoemaildaconfrontare) && (this.document.form_avviaricerca[n].value != "") )
						{

						// IMPOSTO A FALSE IL VALORE DA RITORNATE
						lRet = false;

						// E FACCIO UN ADEGUATO ALERT DI SPIEGAZIONE
						alert("ATTENZIONE: non puoi invitare lo stesso indirizzo email più volte per lo stesso corso/seminario!");
				
						}
				
					}
				
				}

			}
	
		}

	// INFINE, SE IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// VISUALIZZA IL NUMERO CORRETTAMENTE FORMATTATO
		cField.className = "input_form";
		}
	else
		{
		// LASCIA INALTERATO IL VALORE DEL CAMPO
		// E LO EVIDENZIA CON SFONDO ROSSO
		cField.className = "input_form_red";
		cField.value = "";
		}

	// RITORNA IL RISULTATO ALLO SCRIPT CHIAMANTE
	return lRet;
	
	}
	
// ROLLOVER ***INIZIO***

function MENU_swapImgRestore() {
  var i,x,a=document.MENU_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MENU_preloadImages() {
  var d=document; if(d.images){ if(!d.MENU_p) d.MENU_p=new Array();
    var i,j=d.MENU_p.length,a=MENU_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MENU_p[j]=new Image; d.MENU_p[j++].src=a[i];}}
}

function MENU_findObj(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MENU_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MENU_swapImage() {
  var i,j=0,x,a=MENU_swapImage.arguments; document.MENU_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MENU_findObj(a[i]))!=null){document.MENU_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
// ROLLOVER ***FINE***
// INIZIO FUNZIONE PER L'USCITA DECIMALE
function uscitadecimale(cField,nDecimals,nObbligatorio,nMin,nMax)
	{

	// DEBUG
	// nDecimals = 2;	// CAMBIARE IL VALORE NEL NUMERO DESIDERATO DI ECIMALI DA TESTARE
	// nObbligatorio = 1; 	// 1 = OBBLIGATORIO		0 = FACOLTATIVO
	// nMin = 0.00;		// COMMENTARE QUESTA RIGA PER NON IMPOSTARE UN VALORE MINIMO ACCETTABILE
	// nMax = 999999.99;	// COMMENTARE QUESTA RIGA PER NON IMPOSTARE UN VALORE MASSIMO ACCETTABILE

	// VARIABILE USATA PER MEMORIZZARE IL TIPO DELLE ALTRE VARIABILI
	// USATE NEL CORSO DELLA ELABORAZIONE PER VERIFICARE SE LE STESSE
	// SONO STATE PASSATE O MENO
	var cTipoVariabile = "";

	// SE NON E' STATO PASSATO IL NUMERO MINIMO ACCETTABILE
	cTipoVariabile = typeof(nMin);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nMin = 0.00;
		}

	// SE NON E' STATO PASSATO IL NUMERO MASSIMO ACCETTABILE
	cTipoVariabile = typeof(nMax);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nMax = 999999.99;
		}

	// SE NON E' STATO PASSATO IL NUMERO DI DECIMALI DA GESTIRE
	// LI IMPOSTA DI DEFAULT A 2
	cTipoVariabile = typeof(nDecimals);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nDecimals = 2;
		}

	// SE NON E' STATO PASSATO IL FLAG DI OBBLIGATORIETA' O MENO DEL CAMPO
	// LO IMPOSTA DI DEFAULT A OBBLIGATORIO
	cTipoVariabile = typeof(nObbligatorio);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nObbligatorio = 1;
		}

	// INIZIALIZZA LA VARIABILE CHE CONTERRA' IL RISULTATO DELLA ELABORAZIONE
	var nValore = 0.00;

	// INIZIALIZZA A VERO IL VALORE DA RITORNARE ALLO SCRIPT CHIAMANTE
	var lRet = true;

	// MEMORIZZA IL CONTENUTO DEL CAMPO PER LE SUCCESSIVE ELABORAZIONI
	var cValore = cField.value;

	// MEMORIZZA IL CONTENUTO DEL CAMPO PRIMA DI QUALSIASI ELABORAZIONE
	// PER POTERLO VISUALIZZARE NELL'ALERT IN CASO CHE NON SIA UN NUMERO VALIDO
	var cOldValore = cValore;

	// SOSTITUISCE EVENTUALI VIRGOLE CON IL CARATTERE "."
	cValore = cValore.replace(",",".");

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// SE NON E' STATO IMMESSO ALCUN VALORE E IL CAMPO E' OBBLIGATORIO...
		if ( (cValore == "") && (nObbligatorio == 1) )
			{
			// VA IN ERRORE!
			alert ("Il campo è obbligatorio!");
			lRet = false;
			}

		}

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// SE NON E' STATO IMMESSO ALCUN VALORE E IL CAMPO E' FACOLTATIVO...
		if ( (cValore == "") && (nObbligatorio == 0) )
			{
			// IMPOSTA IL VALORE A ZERO
			// cField.value = "0.00";
			nValore = 0.00;
			}
		}

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// SE IL VALORE NON E' UN NUMERO...
		if (isNaN(cValore))
			{
			// VA IN ERRORE!
			alert (cOldValore + " non è un numero");
			lRet = false;
			}
		}

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// RICAVA IL VALORE COME NUMERO IN VIRGOLA MOBILE
		nValore = parseFloat(cValore);

		// SE E' STATO PASSATO UN VALORE MINIMO ACCETTABILE
		// E IL VALORE IMMESSO E' MINORE DELLO STESSO...
		cTipoVariabile = typeof(nMin);

		if ( nValore < nMin )
			{
			// VA IN ERRORE!
			alert ("Il valore minimo accettabile è " + nMin + "!");
			lRet = false;
			}
		}

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// SE E' STATO PASSATO UN VALORE MASSIMO ACCETTABILE
		// E IL VALORE IMMESSO E' SUPERIORE ALLO STESSO...
		cTipoVariabile = typeof(nMax);
		if ( nValore > nMax )
			{
			// VA IN ERRORE!
			alert ("Il valore massimo accettabile è " + nMax + "!");
			lRet = false;
			}
		}

	// INFINE, SE IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// VISUALIZZA IL NUMERO CORRETTAMENTE FORMATTATO
		cField.className = "input_form";
		nValore = nValore.toFixed(nDecimals);
		cField.value = nValore;
		}
	else
		{
		// LASCIA INALTERATO IL VALORE DEL CAMPO
		// E LO EVIDENZIA CON SFONDO ROSSO
		cField.value = cOldValore;
		cField.className = "input_form_red";
		}

	// RITORNA IL RISULTATO ALLO SCRIPT CHIAMANTE
	return lRet;

	}
// FINE FUNZIONE PER L'USCITA DECIMALE


// FUNZIONE PER FARE IL TRIM DELLE STRINGHE
function trim(stringa)
	{
	while (stringa.substring(0,1) == ' ')
		{
		stringa = stringa.substring(1, stringa.length);
    }
	while (stringa.substring(stringa.length-1, stringa.length) == ' ')
		{
		stringa = stringa.substring(0,stringa.length-1);
    }
	return stringa;
	}
	
// 16/05/2008 INIZIO
// APPLICA IN RUNTIME ALL'ELEMENTO CON ID cElement LA CLASSE cClassName 
function applicastile(cElement,cClassName)
	{	
	document.getElementById(cElement).className = cClassName;
	}

// FUNZIONE CHE CREA GLI OGGETTI http PER LE RICHIESTE CON METODOLOGIA AJAX E FACENDO RIFERIMENTO ALLE SPECIFICHE XML
function getHTTPObject()
	{
  var xmlhttp;

	// IL CODICE SEGUENTE NON L'HO CAPITO MA SERVE PER USARE L'XML CON INTERNET EXPLORER!!!
	// SEMBRA COMMENTATO MA NON LO E'!!! LASCIARLO ASSOLUTAMENTE INALTERATO!!!
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/

  if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
  	{
    try
    	{
      xmlhttp = new XMLHttpRequest();
	  	xmlhttp.overrideMimeType("text/xml");
    	}
    catch (e)
    	{
      xmlhttp = false;
    	}
  	}
  	return xmlhttp;
	}

function inizioattesa()
	{

	// VISUALIZZO IL DIV TRASPARENTE...
	document.getElementById("div_coperta").className = "divCopertaVisibile";

	// VISUALIZZO L'IMMAGINE DI ATTESA...
	document.getElementById("div_attesa").className = "divWaitVisibile";

	}
	
function fineattesa()
	{
	// NASCONDO L'IMMAGINE DI ATTESA...
	document.getElementById("div_attesa").className = "zonaNascosta";
	
	// NASCONDO IL DIV TRASPARENTE...
	document.getElementById("div_coperta").className = "zonaNascosta";
	}
// 16/05/2008 FINE

// function personalizzaprodotto(cId,cQta)
function personalizzaprodotto(cCodiceInterno,cQta,cId,cScript)
	{	
	// alert("Personalizzo il prodotto con CODICE INTERNO " + cId);
	// popuppersonalizzaprodotto = window.open('personalizzaprodotto.php?codiceinternoprodotto=' + cId + '&quantitaprodotto=' + cQta,'popuppersonalizzaprodotto','toolbar=yes,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,copyhistory=no,width=640,height=570,screenX=0,screenY=0,top=0,left=0');
	document.location = cScript + '?id=' + cId;
	}

// RICONOSCIMENTO DEL BROWSER
var IE = false;
var NS=false;
var browser_version = parseInt(navigator.appVersion);
var browser_type = navigator.appName;
if (browser_type == "Microsoft Internet Explorer")
	{
	IE = true;
	}
else
	{
	NS = true;
	}

// INIZIO FUNZIONE PER L'USCITA DECIMALE SENZA STILE
function uscitadecimalesenzastile(cField,nDecimals,nObbligatorio,nMin,nMax,cOkStyle,cErrorStyle)
	{

	// DEBUG
	// nDecimals = 2;	// CAMBIARE IL VALORE NEL NUMERO DESIDERATO DI DECIMALI DA TESTARE
	// nObbligatorio = 1; 	// 1 = OBBLIGATORIO		0 = FACOLTATIVO
	// nMin = 0.00;		// COMMENTARE QUESTA RIGA PER NON IMPOSTARE UN VALORE MINIMO ACCETTABILE
	// nMax = 999999.99;	// COMMENTARE QUESTA RIGA PER NON IMPOSTARE UN VALORE MASSIMO ACCETTABILE

	// VARIABILE USATA PER MEMORIZZARE IL TIPO DELLE ALTRE VARIABILI
	// USATE NEL CORSO DELLA ELABORAZIONE PER VERIFICARE SE LE STESSE
	// SONO STATE PASSATE O MENO
	var cTipoVariabile = "";

	// SE NON E' STATO PASSATO IL NUMERO MINIMO ACCETTABILE
	cTipoVariabile = typeof(nMin);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nMin = 0.00;
		}

	// SE NON E' STATO PASSATO IL NUMERO MASSIMO ACCETTABILE
	cTipoVariabile = typeof(nMax);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nMax = 999999.99;
		}

	// SE NON E' STATO PASSATO IL NUMERO DI DECIMALI DA GESTIRE
	// LI IMPOSTA DI DEFAULT A 2
	cTipoVariabile = typeof(nDecimals);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nDecimals = 2;
		}

	// SE NON E' STATO PASSATO IL FLAG DI OBBLIGATORIETA' O MENO DEL CAMPO
	// LO IMPOSTA DI DEFAULT A OBBLIGATORIO
	cTipoVariabile = typeof(nObbligatorio);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nObbligatorio = 1;
		}

	// INIZIALIZZA LA VARIABILE CHE CONTERRA' IL RISULTATO DELLA ELABORAZIONE
	var nValore = 0.00;

	// INIZIALIZZA A VERO IL VALORE DA RITORNARE ALLO SCRIPT CHIAMANTE
	var lRet = true;

	// MEMORIZZA IL CONTENUTO DEL CAMPO PER LE SUCCESSIVE ELABORAZIONI
	var cValore = cField.value;

	// MEMORIZZA IL CONTENUTO DEL CAMPO PRIMA DI QUALSIASI ELABORAZIONE
	// PER POTERLO VISUALIZZARE NELL'ALERT IN CASO CHE NON SIA UN NUMERO VALIDO
	var cOldValore = cValore;

	// SOSTITUISCE EVENTUALI VIRGOLE CON IL CARATTERE "."
	cValore = cValore.replace(",",".");

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// SE NON E' STATO IMMESSO ALCUN VALORE E IL CAMPO E' OBBLIGATORIO...
		if ( (cValore == "") && (nObbligatorio == 1) )
			{
			// VA IN ERRORE!
			alert ("Il campo è obbligatorio!");
			lRet = false;
			}

		}

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// SE NON E' STATO IMMESSO ALCUN VALORE E IL CAMPO E' FACOLTATIVO...
		if ( (cValore == "") && (nObbligatorio == 0) )
			{
			// IMPOSTA IL VALORE A ZERO
			// cField.value = "0.00";
			nValore = 0.00;
			}
		}

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// SE IL VALORE NON E' UN NUMERO...
		if (isNaN(cValore))
			{
			// VA IN ERRORE!
			alert (cOldValore + " non è un numero");
			lRet = false;
			}
		}

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// RICAVA IL VALORE COME NUMERO IN VIRGOLA MOBILE
		nValore = parseFloat(cValore);

		// SE E' STATO PASSATO UN VALORE MINIMO ACCETTABILE
		// E IL VALORE IMMESSO E' MINORE DELLO STESSO...
		cTipoVariabile = typeof(nMin);

		if ( nValore < nMin )
			{
			// VA IN ERRORE!
			alert ("Il valore minimo accettabile è " + nMin + "!");
			lRet = false;
			}
		}

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// SE E' STATO PASSATO UN VALORE MASSIMO ACCETTABILE
		// E IL VALORE IMMESSO E' SUPERIORE ALLO STESSO...
		cTipoVariabile = typeof(nMax);
		if ( nValore > nMax )
			{
			// VA IN ERRORE!
			alert ("Il valore massimo accettabile è " + nMax + "!");
			lRet = false;
			}
		}

	// INFINE, SE IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// VISUALIZZA IL NUMERO CORRETTAMENTE FORMATTATO
		if (typeof(cOkStyle).toUpperCase() != "UNDEFINED")
			{
			cField.className = "input_form_componenti_numerico";
			}
		nValore = nValore.toFixed(nDecimals);
		cField.value = nValore;
		}
	else
		{
		// LASCIA INALTERATO IL VALORE DEL CAMPO
		// E LO EVIDENZIA CON SFONDO ROSSO
		if (typeof(cErrorStyle).toUpperCase() != "UNDEFINED")
			{
			cField.className = "input_form_red_componenti_numerico";
			}
		cField.value = cOldValore;
		
		}

	// RITORNA IL RISULTATO ALLO SCRIPT CHIAMANTE
	return lRet;

	}
// FINE FUNZIONE PER L'USCITA DECIMALE SENZA STILE

function uscitatestosenzastile(cField,nMin,nMax,cAllowedChars,nCase,cOkStyle,cErrorStyle)
	{

	// nMin = 0;	// NUMERO MINIMO DI CARATTERI ACCETTABILI
								// 0 = NESSUN LIMITE, OVVERO CAMPO FACOLTATIVO

	// nMax = 30;	// NUMERO MASSIMO DI CARATTERI ACCETTABILI
								// DEVE SEMPRE ESSERE IMPOSTATO

	// cAllowedChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";	// STRINGA CONTENENTE I CARATTERI PERMESSI

	// nCase = 0		// 0 = LASCIA INVARIATO IL MAIUSCOLO/MINUSCOLO
									// 1 = TRASFORMA IN MAIUSCOLO
									// 2 = TRASFORMA IN MINUSCOLO

	// VARIABILE USATA PER MEMORIZZARE IL TIPO DELLE ALTRE VARIABILI
	// USATE NEL CORSO DELLA ELABORAZIONE PER VERIFICARE SE LE STESSE
	// SONO STATE PASSATE O MENO
	var cTipoVariabile = "";

	// SE NON E' STATO PASSATO IL NUMERO MINIMO DI CARATTERI DA GESTIRE
	// LI IMPOSTA DI DEFAULT A 0 ( = CAMPO FACOLTATIVO)
	cTipoVariabile = typeof(nMin);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nMin = 0;
		}

	// SE NON E' STATO PASSATO IL NUMERO MASSIMO DI CARATTERI DA GESTIRE
	// LI IMPOSTA DI DEFAULT A 30
	cTipoVariabile = typeof(nMax);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nMax = 30;
		}

	// SE NON E' STATO PASSATO IL FLAG PER LA GESTIONE DEL MAIUSCOLO/minuscolo
	// LO IMPOSTA DI DEFAULT A 1 (CAMBIA TUTTO IN MAIUSCOLO)
	cTipoVariabile = typeof(nCase);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nCase = 1;
		}
		
	// SE NON E' STATA PASSATA LA STRINGA CON LA CLASSE OK
	// LA IMPOSTA DI DEFAULT A ""
	cTipoVariabile = typeof(cOkStyle);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		cOkStyle = "";
		}

	// SE NON E' STATA PASSATA LA STRINGA CON I CARATTERI AMMESSI
	// LA IMPOSTA DI DEFAULT A "" ( = ACCETTA QUALSIASI CARATTERE)
	cTipoVariabile = typeof(cAllowedChars);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		cAllowedChars = "";
		}

	// INIZIALIZZA A VERO IL VALORE DA RITORNARE ALLO SCRIPT CHIAMANTE
	var lRet = true;

	// MEMORIZZA IL CONTENUTO DEL CAMPO PER LE SUCCESSIVE ELABORAZIONI
	var cValore = cField.value;

	if (nCase == 1)
		{
		cValore = cField.value.toUpperCase();
		}

	if (nCase == 2)
		{
		cValore = cField.value.toLowerCase();
		}

	// MEMORIZZA IL CONTENUTO DEL CAMPO PRIMA DI QUALSIASI ELABORAZIONE
	// PER POTERLO VISUALIZZARE NELL'ALERT IN CASO CHE NON SIA UN NUMERO VALIDO
	var cOldValore = cValore;

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
					
		// SE E' PRESENTE UNA STRINGA cAllowedChars
		if (cAllowedChars != "")
			{
			// PER OGNI CARATTERE CONTENUTO NEL CAMPO
			for (n=0;n<cValore.length;n++)
				{
				// SE LO STESSO NON E' PRESENTE NELLA STRINGA cAllowedChars
				if ( cAllowedChars.indexOf(cValore.charAt(n)) < 0 )
					{
					// VA IN ERRORE!
					alert ("Il carattere " + cValore.charAt(n).toUpperCase() + " non è ammesso");
					lRet = false;
					break;
					}
				}
			}
		}

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// SE NON E' STATO IMMESSO ALCUN VALORE E IL CAMPO E' OBBLIGATORIO...
		if ( (cValore == "") && (nMin > 0) )
			{
			// VA IN ERRORE!
			alert ("Il campo è obbligatorio!");
			lRet = false;
			}
		}

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// LUNGHEZZA MINIMA E MASSIMA DEL CAMPO UGUALI (CAMPO DI LUNGHEZZA FISSA)
		if ( (cValore.length > 0) && (cValore.length != nMin) && (nMin == nMax) )
			{
			// VA IN ERRORE!
			alert ("La lunghezza deve essere di " + nMin + " caratteri");
			lRet = false;
			}
		}
	
	if (lRet)
		{
		// LUNGHEZZA MINIMA DEL CAMPO
		if ( (cValore.length > 0) && (cValore.length < nMin) && (nMin > 0) )
			{
			// VA IN ERRORE!
			alert ("Lunghezza minima = " + nMin);
			lRet = false;
			}
		}

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// LUNGHEZZA MASSIMA DEL CAMPO
		if ( (cValore.length > 0) && (cValore.length > nMax) )
			{
			// VA IN ERRORE!
			alert ("Lunghezza massima = " + nMax);
			lRet = false;
			}
		}

	// INFINE, SE IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// VISUALIZZA IL NUMERO CORRETTAMENTE FORMATTATO
		// E GLI APPLICA LO STILE PER CONTROLLO OK
		if (typeof(cOkStyle).toUpperCase() != "UNDEFINED")
			{
			cField.className = cOkStyle;
			}
		cField.value = cValore;
		}
	else
		{
		// LASCIA INALTERATO IL VALORE DEL CAMPO
		// E GLI APPLICA LO STILE PER EVIDENZIARE GLI ERRORI
		if (typeof(cErrorStyle).toUpperCase() != "UNDEFINED")
			{
			cField.className = cErrorStyle;
			}
		cField.value = cOldValore;
		}

	// RITORNA IL RISULTATO ALLO SCRIPT CHIAMANTE
	return lRet;
	}
	
function controllaselect(oSelect,cMessage,cOkStyle,cErrorStyle)
	{
		
	var lRet = true;
	
	if (oSelect.value == "")
		{
		lRet = false;
		alert("Valore selezionato non ammesso per\n" + cMessage);
		if (typeof(cErrorStyle).toUpperCase() != "UNDEFINED")
			{
			oSelect.className = cErrorStyle;
			}
		}
	else
		{
		if (typeof(cOkStyle).toUpperCase() != "UNDEFINED")
			{
			oSelect.className = cOkStyle;
			}
		}
	}
	
function deviordinare()
	{
	alert("Siamo spiacenti ma prima di effettuare\nmodifiche devi prima inserire l'articolo nel carrello ");	
	}
	
// INIZIO DATI E FUNZIONI UTILIZZATE PER LA METOLOGIA AJAX
var HttpEliminaTutto = getHTTPObject();
var HttpModificaQuantita = getHTTPObject();
var HttpGeneraPersonalizzaProdotto = getHTTPObject();
var MyHttp = getHTTPObject();

function eliminatuttoilprodotto(cId,cCarrello)
	{
	
	// SE NON E' GIA' IN CORSO UNA ELABORAZIONE SERVER-SIDE
	// E SE E' STATO DICHIARATO L'OGGETTO http IN CUI METTERE LA RISPOSTA DELLO SCRIPT SERVER-SIDE
	if (!AJAXisWorking && HttpEliminaTutto)
		{
		// VISUALIZZO L'IMMAGINE DI ATTESA...
		// inizioattesa();
		
		// INVIA FISICAMENTE LA RICHIESTA ALLO SCRIPT SERVER-SIDE
		// IL PARAMETRO "caso" CON VALORE RANDOM VIENE USATO PER NON USARE LA CACHE DEL BROWSER
		var randvalue = Math.random() * 100;
		HttpEliminaTutto.open("GET", "./ajax/eliminatuttoilprodotto.php?idprodotto=" + cId + "&tipocarrello=" + cCarrello + "&caso=" + randvalue.toString(), true);
			
		// AL CAMBIAMENTO DI STATO DELL'OGGETTO http AVVIA LA GESTIONE DELLO STESSO
		HttpEliminaTutto.onreadystatechange = handleEliminaTutto;
		    	
		// IMPOSTA IL FLAG IN MODO CHE TUTTO JAVASCRIPT SAPPIA CHE E' IN CORSO UNA ELABORAZIONE SERVER-SIDE
		// E CHE DEVE ATTENDERE LA SUA CONCLUSIONE PRIMA DI POTERNE AVVIARE UN'ALTRA
		AJAXisWorking = true;
			
		// QUESTA NON L'HO ANCORA CAPITA... :-( MA SERVE!!!
		HttpEliminaTutto.send(null);
		}
	}
	
function handleEliminaTutto()
	{
		
	// SE L'OGGETTO http E' IN UNA SITUAZIONE CHE NE CONSENTE L'ELABORAZIONE
  if (HttpEliminaTutto.readyState == 4)
  	{
	
  	// LA RISPOSTA FORNITA DALLO SCRIPT PHP SERVER SIDE SI TROVA IN http.responseText

		// DEBUG
		// alert(HttpEliminaTutto.responseText);

		var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;

    // USO XML DOM PER RICAVARE I DATI DI MIO INTERESSE DALLA RISPOSTA RICEVUTA DAL SERVER
    // CHE E' IN FORMATO XML ED E' CONTENUTA IN http.responseText
    var xmlDocument 			= HttpEliminaTutto.responseXML; 
		var stato							= xmlDocument.getElementsByTagName('stato').item(0).firstChild.data;
	
		if (stato == "0")
			{
		
			var descrizione				= xmlDocument.getElementsByTagName('descrizione').item(0).firstChild.data;
			var cId								= xmlDocument.getElementsByTagName('idprodotto').item(0).firstChild.data;
			var tipocarrello			= xmlDocument.getElementsByTagName('tipocarrello').item(0).firstChild.data;
			var modificabile			= xmlDocument.getElementsByTagName('prodottomodificabile').item(0).firstChild.data;
			var nomescheda				= xmlDocument.getElementsByTagName('nomescheda').item(0).firstChild.data;
			var riepilogocarrello	= xmlDocument.getElementsByTagName('riepilogocarrello').item(0).firstChild.data;
			var totalecarrello		= xmlDocument.getElementsByTagName('totalecarrello').item(0).firstChild.data;
		
			// TERMINATA L'ELABORAZIONE CLIENT SIDE DELLA RISPOSTA AVUTA DALLO SCRIPT SERVER-SIDE
	   	// IMPOSTO IL FLAG DI CONTROLLO
	   	AJAXisWorking = false;
	
			// NASCONDO L'IMMAGINE DI ATTESA...
			// fineattesa();
	
			document.form_avviaricerca["quantitaval" + cId].value = "0";
			document["quantitaimg" + cId].src = "./images/numeri/" + "0" + ".gif";
	
			// RICAVO L'ELEMENTO IN CUI INSERIRE IL RIEPILOGO DEL CARRELLO
			// NOTA: L'ELEMENTO VIENE DEFINITO IN verticalmenu1.php
			var cellariepilogo = document.getElementById("cella_riepilogocarrello");			
			var testoriepilogocarrello = "";	
			if (riepilogocarrello == "VUOTO")
				{
				testoriepilogocarrello = "<font class=\"testo_nero_peppe\">Il carrello &egrave; vuoto</font>\n";
				cellariepilogo.innerHTML = testoriepilogocarrello + "<br><br>\n";
				}
			else
				{
				
				testoriepilogocarrello = "<font class=\"testo_nero_peppe\">Hai nel carrello:</font>\n";
				testoriepilogocarrello += "<br><br>\n";

				riepilogocarrello = riepilogocarrello.substr(0,riepilogocarrello.length - 1);
					
				var aRiepilogoCarrello = riepilogocarrello.split("#");
				var rigacarrello = "";
				
				for(var r = 0; r < aRiepilogoCarrello.length; r++)
					{

					rigacarrello = aRiepilogoCarrello[r]; 

					aValoriRigaCarrello = rigacarrello.split("=");		
					// testoriepilogocarrello += "<font class=\"testo_nero_peppe\">" + aValoriRigaCarrello[0] + " (" + aValoriRigaCarrello[1] + ")</font>\n";
					testoriepilogocarrello += "<font class=\"testo_nero_peppe\"><a href=\"schedaprodotto_hallo.php?id=" + aValoriRigaCarrello[2] + "\">" + aValoriRigaCarrello[0] + "</a> (" + aValoriRigaCarrello[1] + ")</font>\n";
					testoriepilogocarrello += "<br>\n";

					}

				testoriepilogocarrello += "<br><font class=\"testo_nero_peppe\">Importo &euro; <b>" + totalecarrello + "</b></font>\n";	 
				// testoriepilogocarrello += "<br>\n";	 

				if (tipocarrello == "carrelloconcomponenti")		
					{
					testoriepilogocarrello += "<br><font class=\"testo_nero_peppe\"><a href=\"carrelloconcomponenti.php\">Vai al carrello</a></font>\n";	 
					}
				else
					{
					testoriepilogocarrello += "<br><font class=\"testo_nero_peppe\"><a href=\"carrello.php\">Vai al carrello</a></font>\n";	 
					}
					
				cellariepilogo.innerHTML = testoriepilogocarrello + "<br><br>\n";

				}
	
			if (tipocarrello == "carrelloconcomponenti")
				{
					
				// alert("se uso i componenti devo andare ad intervenire anche su pulstante applicamodifiche");	
				
				if (modificabile == "1")
					{                               
						
					if ((window.name == "selezioneprodotti")||(window.name == "carrelloconcomponenti"))		
						{
						document["img_variazioni_" + cId].src = "./images/non_ancora_ordinato.gif";
						// FUNZIONA: VERSIONE CON HREF + SET ATTRIBUTE
						var oAncora = document.getElementById("ancorapersonalizzaprodotto_" + cId);
						oAncora.setAttribute("href", "javascript:deviordinare()");
						}
					}
			
				}
		
			if (window.name == "schedaprodotto")			
				{
				// document.location = "schedaprodotto_hallo.php?id=" + cId;
				document.location = nomescheda + "?id=" + cId;
				}	
	
			if (window.name == "carrelloconcomponenti")			
				{
				document.location = "carrelloconcomponenti.php";
				}
			if (window.name == "carrello")			
				{
				document.location = "carrello.php";
				}
	
			}
		else
			{
			alert("Errore durante la modifica della quantità!");
			}		
	
		}
	
 	}
 	
function modificaquantita(cId,cQta,nInc,cCarrello,cModificabile,cCodiceInterno)
	{
						
	// SE NON E' GIA' IN CORSO UNA ELABORAZIONE SERVER-SIDE
	// E SE E' STATO DICHIARATO L'OGGETTO http IN CUI METTERE LA RISPOSTA DELLO SCRIPT SERVER-SIDE
	if (!AJAXisWorking && HttpModificaQuantita)
		{
			
		// CONTROLLO CHE NON SI SUPERINO LE 99 UNITA' (MASSIMO QUANTITATIVO ORDINABILE PER PRODOTTO
		// DA NOI ARBITRARIAMENTE DECISO. QUESTO VALORE ANDRA' PARAMETRIZZATO.
		var nQta = parseInt(cQta);
		nQta = nQta + nInc;				
		if (nQta > 99)
			{
			nQta = 99;
			}
		if (nQta < 0)
			{
			nQta = 0;
			}
			
		cQta = nQta.toString();
		
		// VISUALIZZO L'IMMAGINE DI ATTESA...
		// inizioattesa();
		
		// INVIA FISICAMENTE LA RICHIESTA ALLO SCRIPT SERVER-SIDE
		// IL PARAMETRO "caso" CON VALORE RANDOM VIENE USATO PER NON USARE LA CACHE DEL BROWSER
		var randvalue = Math.random() * 100;
		HttpModificaQuantita.open("GET", "./ajax/modificaquantita.php?idprodotto=" + cId + "&quantita" + cId + "=" + cQta + "&tipocarrello="+ cCarrello + "&caso=" + randvalue.toString(), true);
			
		// AL CAMBIAMENTO DI STATO DELL'OGGETTO http AVVIA LA GESTIONE DELLO STESSO
		HttpModificaQuantita.onreadystatechange = handleModificaQuantita;
		    	
		// IMPOSTA IL FLAG IN MODO CHE TUTTO JAVASCRIPT SAPPIA CHE E' IN CORSO UNA ELABORAZIONE SERVER-SIDE
		// E CHE DEVE ATTENDERE LA SUA CONCLUSIONE PRIMA DI POTERNE AVVIARE UN'ALTRA
		AJAXisWorking = true;
			
		// QUESTA NON L'HO ANCORA CAPITA... :-( MA SERVE!!!
		HttpModificaQuantita.send(null);
		}
	}

// FUNZIONE JAVASCRIPT CLIENT-SIDE CHE ELABORA LA RISPOSTA RESTITUITA DALLO SCRIPT PHP SERVER-SIDE
function handleModificaQuantita()
	{
		
	// SE L'OGGETTO http E' IN UNA SITUAZIONE CHE NE CONSENTE L'ELABORAZIONE
  if (HttpModificaQuantita.readyState == 4)
  	{
	
  	// LA RISPOSTA FORNITA DALLO SCRIPT PHP SERVER SIDE SI TROVA IN http.responseText

		// DEBUG
		// alert("RISPOSTA DI modificaquantita.php:\n" + HttpModificaQuantita.responseText);

		var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;

    // USO XML DOM PER RICAVARE I DATI DI MIO INTERESSE DALLA RISPOSTA RICEVUTA DAL SERVER
    // CHE E' IN FORMATO XML ED E' CONTENUTA IN http.responseText
    var xmlDocument 			= HttpModificaQuantita.responseXML; 

		var stato							= xmlDocument.getElementsByTagName('stato').item(0).firstChild.data;
		
		if (stato == "0")
			{
		
			var cId								= xmlDocument.getElementsByTagName('idprodotto').item(0).firstChild.data;
			var nuovaquantita			= xmlDocument.getElementsByTagName('nuovaquantita').item(0).firstChild.data;
			var descrizione				= xmlDocument.getElementsByTagName('descrizione').item(0).firstChild.data;
			var tipocarrello			= xmlDocument.getElementsByTagName('tipocarrello').item(0).firstChild.data;
			var modificabile			= xmlDocument.getElementsByTagName('prodottomodificabile').item(0).firstChild.data;
			
			var modifiche					= xmlDocument.getElementsByTagName('modifiche').item(0).firstChild.data;
			var nomescheda				= xmlDocument.getElementsByTagName('nomescheda').item(0).firstChild.data;
			var segno							= xmlDocument.getElementsByTagName('segno').item(0).firstChild.data;
			var riepilogocarrello = xmlDocument.getElementsByTagName('riepilogocarrello').item(0).firstChild.data;
			var totalecarrello		= xmlDocument.getElementsByTagName('totalecarrello').item(0).firstChild.data;
			
			// SE NON CI SONO STATE MODIFICHE 
			if (modifiche != "1")
				{
				var nNuovaQuantita = parseInt(nuovaquantita);
				if (nNuovaQuantita < 1)
					{
					nuovaquantita = "0";
					}
				
					// TERMINATA L'ELABORAZIONE CLIENT SIDE DELLA RISPOSTA AVUTA DALLO SCRIPT SERVER-SIDE
	   		// IMPOSTO IL FLAG DI CONTROLLO
	   		AJAXisWorking = false;
	    	
				// NASCONDO L'IMMAGINE DI ATTESA...
				// fineattesa();
				document.form_avviaricerca["quantitaval" + cId].value = nuovaquantita;
				document["quantitaimg" + cId].src = "./images/numeri/" + nuovaquantita + ".gif";
	    	
	    	
	    	
				if (tipocarrello == "carrelloconcomponenti")
					{
						
					// alert("se uso i componenti devo andare ad intervenire anche su pulstante applicamodifiche");	
					
					if ( (modificabile == "1") && (nuovaquantita > "0"))
						{
						if ((window.name == "selezioneprodotti")||(window.name == "carrelloconcomponenti"))
							{
							document["img_variazioni_" + cId].src = "./images/applica_modifiche.gif";
							// FUNZIONA: VERSIONE CON HREF + SET ATTRIBUTE
							var oAncora = document.getElementById("ancorapersonalizzaprodotto_" + cId);
							oAncora.setAttribute("href", "javascript:schedaprodotto('" + cId + "')" );
							}
						}
						
					if ( (modificabile == "1") && (nuovaquantita == "0"))
						{
						if ((window.name == "selezioneprodotti")||(window.name == "carrelloconcomponenti"))
							{
							document["img_variazioni_" + cId].src = "./images/non_ancora_ordinato.gif";
							// FUNZIONA: VERSIONE CON HREF + SET ATTRIBUTE
							var oAncora = document.getElementById("ancorapersonalizzaprodotto_" + cId);
							oAncora.setAttribute("href", "javascript:deviordinare()" );
							}
						}		
					}
				}
			else
				{
				if (segno == "-")
					{
					alert("Ci sono modifiche e quindi devi specificare manualmene quale vuoi eliminare");
					document.location = nomescheda + "?id=" + cId;
					return;
					}
				else
					{
					var nNuovaQuantita = parseInt(nuovaquantita);
					if (nNuovaQuantita < 1)
						{
						nuovaquantita = "0";
						}
					
						// TERMINATA L'ELABORAZIONE CLIENT SIDE DELLA RISPOSTA AVUTA DALLO SCRIPT SERVER-SIDE
		   		// IMPOSTO IL FLAG DI CONTROLLO
		   		AJAXisWorking = false;
		    	
					// NASCONDO L'IMMAGINE DI ATTESA...
					// fineattesa();
					document.form_avviaricerca["quantitaval" + cId].value = nuovaquantita;
					document["quantitaimg" + cId].src = "./images/numeri/" + nuovaquantita + ".gif";
		    	
					if (tipocarrello == "carrelloconcomponenti")
						{
							
						// alert("se uso i componenti devo andare ad intervenire anche su pulstante applicamodifiche");	
						
						if ( (modificabile == "1") && (nuovaquantita > "0"))
							{
							if ((window.name == "selezioneprodotti")||(window.name == "carrelloconcomponenti"))	
								{
								document["img_variazioni_" + cId].src = "./images/applica_modifiche.gif";
								// FUNZIONA: VERSIONE CON HREF + SET ATTRIBUTE
								var oAncora = document.getElementById("ancorapersonalizzaprodotto_" + cId);
								oAncora.setAttribute("href", "javascript:schedaprodotto('" + cId + "')" );
								}
							}
							
						if ( (modificabile == "1") && (nuovaquantita == "0"))
							{
							if ((window.name == "selezioneprodotti")||(window.name == "carrelloconcomponenti"))
								{
								document["img_variazioni_" + cId].src = "./images/non_ancora_ordinato.gif";
								// FUNZIONA: VERSIONE CON HREF + SET ATTRIBUTE
								var oAncora = document.getElementById("ancorapersonalizzaprodotto_" + cId);
								oAncora.setAttribute("href", "javascript:deviordinare()" );
								}
							}
						}
					}
				}	
				
			if (tipocarrello == "carrelloconcomponenti")		
				{
				if (window.name == "schedaprodotto")			
					{
							
					var element 	= document.getElementById("cellacontenitricecomponenti");

					while (element.firstChild)
						{
	  				element.removeChild(element.firstChild);
						}
	  	
					// alert("Sono in handleModificaQuantita\nOra chiamo generapersonalizzaprodotto");
					
					// generapersonalizzaprodotto(cId,'001');
					generapersonalizzaprodotto(cId);
					}
	
				if (window.name == "carrelloconcomponenti")			
					{
					document.location = "carrelloconcomponenti.php";
					}
	
				}

			// RICAVO L'ELEMENTO IN CUI INSERIRE IL RIEPILOGO DEL CARRELLO
			// NOTA: L'ELEMENTO VIENE DEFINITO IN verticalmenu1.php
			var cellariepilogo = document.getElementById("cella_riepilogocarrello");			
			var testoriepilogocarrello = "";	
			if (riepilogocarrello == "VUOTO")
				{
				testoriepilogocarrello = "<font class=\"testo_nero_peppe\">Il carrello &egrave; vuoto</font>\n";
				cellariepilogo.innerHTML = testoriepilogocarrello + "<br><br>\n";
				}
			else
				{
				
				testoriepilogocarrello = "<font class=\"testo_nero_peppe\">Hai nel carrello:</font>\n";
				testoriepilogocarrello += "<br><br>\n";

				riepilogocarrello = riepilogocarrello.substr(0,riepilogocarrello.length - 1);
					
				var aRiepilogoCarrello = riepilogocarrello.split("#");
				var rigacarrello = "";
				
				for(var r = 0; r < aRiepilogoCarrello.length; r++)
					{

					rigacarrello = aRiepilogoCarrello[r]; 

					aValoriRigaCarrello = rigacarrello.split("=");
					
					// testoriepilogocarrello += "<font class=\"testo_nero_peppe\">" + aValoriRigaCarrello[0] + " (" + aValoriRigaCarrello[1] + ")</font>\n";
					testoriepilogocarrello += "<font class=\"testo_nero_peppe\"><a href=\"schedaprodotto_hallo.php?id=" + aValoriRigaCarrello[2] + "\">" + aValoriRigaCarrello[0] + "</a> (" + aValoriRigaCarrello[1] + ")</font>\n";
					testoriepilogocarrello += "<br>\n";

					}

				testoriepilogocarrello += "<br><font class=\"testo_nero_peppe\">Importo &euro; <b>" + totalecarrello + "</b></font>\n";	 

				if (tipocarrello == "carrelloconcomponenti")		
					{
					testoriepilogocarrello += "<br><font class=\"testo_nero_peppe\"><a href=\"carrelloconcomponenti.php\">Vai al carrello</a></font>\n";	 
					}
				else
					{
					testoriepilogocarrello += "<br><font class=\"testo_nero_peppe\"><a href=\"carrello.php\">Vai al carrello</a></font>\n";	 
					}

					
				cellariepilogo.innerHTML = testoriepilogocarrello + "<br><br>\n";

				}

			}
		else
			{
			alert("Errore durante la modifica della quantità!");
			}		
			
		if ((window.name == "carrello")&&(tipocarrello == "carrello"))
			
			{
			document.location = "carrello.php";			
			}	
			
		}
		
 	}
 	
function generapersonalizzaprodotto(cIdProdotto)
	{
	
	// SE NON E' GIA' IN CORSO UNA ELABORAZIONE SERVER-SIDE
	// E SE E' STATO DICHIARATO L'OGGETTO http IN CUI METTERE LA RISPOSTA DELLO SCRIPT SERVER-SIDE
	if (!AJAXisWorking && HttpGeneraPersonalizzaProdotto)
		{
		// VISUALIZZO L'IMMAGINE DI ATTESA...
		// inizioattesa();
		
		// INVIA FISICAMENTE LA RICHIESTA ALLO SCRIPT SERVER-SIDE
		// IL PARAMETRO "caso" CON VALORE RANDOM VIENE USATO PER NON USARE LA CACHE DEL BROWSER
		var randvalue = Math.random() * 100;
		HttpGeneraPersonalizzaProdotto.open("GET", "./ajax/personalizzaprodotto_ajax.php?prodottoid=" + cIdProdotto + "&caso=" + randvalue.toString(), true);
			
		// AL CAMBIAMENTO DI STATO DELL'OGGETTO http AVVIA LA GESTIONE DELLO STESSO
		HttpGeneraPersonalizzaProdotto.onreadystatechange = handleGeneraPersonalizzaProdotto;
		    	
		// IMPOSTA IL FLAG IN MODO CHE TUTTO JAVASCRIPT SAPPIA CHE E' IN CORSO UNA ELABORAZIONE SERVER-SIDE
		// E CHE DEVE ATTENDERE LA SUA CONCLUSIONE PRIMA DI POTERNE AVVIARE UN'ALTRA
		AJAXisWorking = true;
			
		// QUESTA NON L'HO ANCORA CAPITA... :-( MA SERVE!!!
		HttpGeneraPersonalizzaProdotto.send(null);
		}
	}
	
function handleGeneraPersonalizzaProdotto()
	{
		
	// SE L'OGGETTO http E' IN UNA SITUAZIONE CHE NE CONSENTE L'ELABORAZIONE
  if (HttpGeneraPersonalizzaProdotto.readyState == 4)
  	{
	
  	// LA RISPOSTA FORNITA DALLO SCRIPT PHP SERVER SIDE SI TROVA IN http.responseText

		// DEBUG
		// alert(HttpGeneraPersonalizzaProdotto.responseText);

		var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;

    // USO XML DOM PER RICAVARE I DATI DI MIO INTERESSE DALLA RISPOSTA RICEVUTA DAL SERVER
    // CHE E' IN FORMATO XML ED E' CONTENUTA IN http.responseText
    var xmlDocument 			= HttpGeneraPersonalizzaProdotto.responseXML; 
		var risultato					= HttpGeneraPersonalizzaProdotto.responseText;
	
		// TERMINATA L'ELABORAZIONE CLIENT SIDE DELLA RISPOSTA AVUTA DALLO SCRIPT SERVER-SIDE
   	// IMPOSTO IL FLAG DI CONTROLLO
   	AJAXisWorking = false;

		// NASCONDO L'IMMAGINE DI ATTESA...
		// fineattesa();

		if (window.name == "schedaprodotto")			
			{
			// document.location = "schedaprodotto_hallo.php?id=" + cId;

			// alert("handleGeneraPersonalizzaProdotto\n" + HttpGeneraPersonalizzaProdotto.responseText);

			var element = document.getElementById("cellacontenitricecomponenti");
			
			element.innerHTML = HttpGeneraPersonalizzaProdotto.responseText;
			
			document.location = "#ancora_thumbs";

			}	
	
		}
	
 	}










// DICHIARO UN FLAG DI CONTROLLO CHE IMPOSTERO' A true O A false IN FUNZIONE DEL FATTO
// CHE UNA ELABORAZIONE SERVER SIDE E' IN CORSO OPPURE NO. INIZIALMENTE VALE OVVIAMENTE false
var AJAXisWorking = false;

// DICHIARO L'OGGETTO http CHE CONTERRA' LA RISPOSTA DELLO SCRIPT PHP CHE DEVE EFFETTUARE L'ELABORAZIONE SERVER-SIDE
var HttpComponentiDiBase 				= getHTTPObject();
var HttpComponentiAggiuntivi		= getHTTPObject();
var HttpEliminaProdotto					= getHTTPObject();
var HttpResettaComponenteDiBase	= getHTTPObject();
var HttpAssegnaProdottoAPersona	= getHTTPObject();
var HttpVisualizzaDestinazione	= getHTTPObject();

function chiudi()
	{
			
	if (!AJAXisWorking)
		{
		window.close();
		}
	}

function aggiornacomponentedibase(cIdProdotto,cProgressivo,cIdComponente,cQuantita,cIdSelect,cCarrello)
	{


	// SE NON E' GIA' IN CORSO UNA ELABORAZIONE SERVER-SIDE
	// E SE E' STATO DICHIARATO L'OGGETTO http IN CUI METTERE LA RISPOSTA DELLO SCRIPT SERVER-SIDE
  if (!AJAXisWorking && HttpComponentiDiBase)
  	{

		// VISUALIZZO L'IMMAGINE DI ATTESA...
		// inizioattesa();
    
		// INVIA FISICAMENTE LA RICHIESTA ALLO SCRIPT SERVER-SIDE
		// IL PARAMETRO "caso" CON VALORE RANDOM VIENE USATO PER NON USARE LA CACHE DEL BROWSER
		var randvalue = Math.random() * 100;
    HttpComponentiDiBase.open("GET", "./ajax/aggiornacomponentedibase.php?idprodotto=" + cIdProdotto + "&idcomponente=" + cIdComponente + "&quantita=" + cQuantita + "&progressivoprodotto=" + cProgressivo + "&idselect=" + cIdSelect + "&tipocarrello=" + cCarrello + "&caso=" + randvalue.toString(), true);

    // AL CAMBIAMENTO DI STATO DELL'OGGETTO http AVVIA LA GESTIONE DELLO STESSO
    HttpComponentiDiBase.onreadystatechange = handleEsitoComponentiDiBase;
	    	
    // IMPOSTA IL FLAG IN MODO CHE TUTTO JAVASCRIPT SAPPIA CHE E' IN CORSO UNA ELABORAZIONE SERVER-SIDE
    // E CHE DEVE ATTENDERE LA SUA CONCLUSIONE PRIMA DI POTERNE AVVIARE UN'ALTRA
    AJAXisWorking = true;
    	
    // QUESTA NON L'HO ANCORA CAPITA... :-( MA SERVE!!!
    HttpComponentiDiBase.send(null);
    
		}
	
	}


// FUNZIONE JAVASCRIPT CLIENT-SIDE CHE ELABORA LA RISPOSTA RESTITUITA DALLO SCRIPT PHP SERVER-SIDE
function handleEsitoComponentiDiBase()
	{

	// SE L'OGGETTO http E' IN UNA SITUAZIONE CHE NE CONSENTE L'ELABORAZIONE
  if (HttpComponentiDiBase.readyState == 4)
  	{
  		
  	// LA RISPOSTA FORNITA DALLO SCRIPT PHP SERVER SIDE SI TROVA IN http.responseText
		var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;
    // USO XML DOM PER RICAVARE I DATI DI MIO INTERESSE DALLA RISPOSTA RICEVUTA DAL SERVER
    // CHE E' IN FORMATO XML ED E' CONTENUTA IN http.responseText
    var xmlDocument = HttpComponentiDiBase.responseXML; 
    
    // DEBUG
    // alert("handleEsitoComponentiDiBase\n" + HttpComponentiDiBase.responseText);
    
		// VALORI RESTITUITI PER L'ESITO DELL'ELABORAZIONE
		var stato				= xmlDocument.getElementsByTagName('stato').item(0).firstChild.data;
		var descrizione	= xmlDocument.getElementsByTagName('descrizione').item(0).firstChild.data;
		var progressivo		= xmlDocument.getElementsByTagName('progressivo').item(0).firstChild.data
		var riepilogocarrello		= xmlDocument.getElementsByTagName('riepilogocarrello').item(0).firstChild.data
		var totalecarrello		= xmlDocument.getElementsByTagName('totalecarrello').item(0).firstChild.data
		var tipocarrello			= xmlDocument.getElementsByTagName('tipocarrello').item(0).firstChild.data;
		
		// QUESTA VARIABILE MI DICE QUANTE MODIFICHE PER COMPONENTI DI BASE CI SONO
		var cModifiche	= xmlDocument.getElementsByTagName('numeromodifiche').item(0).firstChild.data;
		var nModifiche	= parseInt(cModifiche);

		// SE LA RISPOSTA AJAX E' OK
		if (stato == "0")
			{
		
			// INIZIALIZZO UNA VARIABILE PER LE VARIE MODIFICHE
			var cModifica = "";
		
			// INIZIALIZZO IL TESTO HTML
			testoHTML = "";

			if (nModifiche > 0)
				{

				testoHTML += "<table border='0' cellspacing='2' width='100%'>\n";
				
				// PER OGNI MODIFICA AI COMPONENTI DI BASE
				for (var n=0; n < nModifiche; n++)
					{

					// RICAVO LA MODIFICA (HA QUANTITA, DESCRIZIONE, PREZZO, ID PRODOTTO E ID COMPONENTE SEPARATI DA *#*)
					cModifica	= xmlDocument.getElementsByTagName('modifica').item(n).firstChild.data;
	
					// RICAVO I SINGOLI ELEMENTI DELLA MODIFICA
					var aModifica = cModifica.split("*#*");
				
					// DEBUG
					// alert("handleEsitoComponentiDiBase\n"+aModifica);
				
					// COSTRUISCO LA RIGA
					testoHTML += "<tr>\n";
					testoHTML += "<td>\n";
					testoHTML += "<font class='testo_nero_peppe'>" + aModifica[0] + " " + aModifica[1] + "</font>\n";
					testoHTML += "</td>\n";
					testoHTML += "<td width='45' align='right'>\n";
					testoHTML += "<font class='testo_nero_peppe'>" + aModifica[2] + " &euro;</font>\n";
					testoHTML += "</td>\n";				
					testoHTML += "<td width='45' align='right'>\n";				
					// testoHTML += "<a href=javascript:resettacomponentedibase('" + aModifica[3] + "','" + progressivo + "','" + aModifica[4] + "','selectcomponentedibase_" + aModifica[6] + "_" + progressivo + "','" + aModifica[4] + "')>Annulla</a>\n";
					testoHTML += "<a class='link_rosso_peppe' href=javascript:resettacomponentedibase('" + aModifica[3] + "','" + progressivo + "','" + aModifica[4] + "','selectcomponentedibase_" + aModifica[6] + "_" + progressivo + "','carrelloconcomponenti.php')>Annulla</a>\n";
					testoHTML += "</td>\n";				
					testoHTML += "</tr>\n";
				
					}
					
				testoHTML += "</table>\n";
							
				}
			else
				{
				testoHTML += "&nbsp;";
				}
			
			// INSERISCO IL TESTO HTML NELLA CELLA
			var celladaaggiornare							= document.getElementById("cellacomponentidibasemodificatielenco" + progressivo);
			celladaaggiornare.innerHTML = testoHTML;

			// RICAVO L'ELEMENTO IN CUI INSERIRE IL RIEPILOGO DEL CARRELLO
			// NOTA: L'ELEMENTO VIENE DEFINITO IN verticalmenu1.php
			var cellariepilogo = document.getElementById("cella_riepilogocarrello");			
			var testoriepilogocarrello = "";	
			if (riepilogocarrello == "VUOTO")
				{
				testoriepilogocarrello = "<font class=\"testo_nero_peppe\">Il carrello &egrave; vuoto</font>\n";
				cellariepilogo.innerHTML = testoriepilogocarrello + "<br><br>\n";
				}
			else
				{
			
				testoriepilogocarrello = "<font class=\"testo_nero_peppe\">Hai nel carrello:</font>\n";
				testoriepilogocarrello += "<br><br>\n";

				riepilogocarrello = riepilogocarrello.substr(0,riepilogocarrello.length - 1);
					
				var aRiepilogoCarrello = riepilogocarrello.split("#");
				var rigacarrello = "";
				
				for(var r = 0; r < aRiepilogoCarrello.length; r++)
					{

					rigacarrello = aRiepilogoCarrello[r]; 

					aValoriRigaCarrello = rigacarrello.split("=");		
					// testoriepilogocarrello += "<font class=\"testo_nero_peppe\">" + aValoriRigaCarrello[0] + " (" + aValoriRigaCarrello[1] + ")</font>\n";
					testoriepilogocarrello += "<font class=\"testo_nero_peppe\"><a href=\"schedaprodotto_hallo.php?id=" + aValoriRigaCarrello[2] + "\">" + aValoriRigaCarrello[0] + "</a> (" + aValoriRigaCarrello[1] + ")</font>\n";
					testoriepilogocarrello += "<br>\n";

					}

				testoriepilogocarrello += "<br><font class=\"testo_nero_peppe\">Importo &euro; <b>" + totalecarrello + "</b></font>\n";	 
				
				testoriepilogocarrello += "<br>\n";
				testoriepilogocarrello += "<font class=\"testo_nero_peppe\"><a href=\"carrelloconcomponenti.php\">Vai al carrello</a></font>\n";

				
				cellariepilogo.innerHTML = testoriepilogocarrello + "<br><br>\n";

				}

			}
		else
			{
			alert("Operazione fallita!");
			}
		
		// TERMINATA L'ELABORAZIONE CLIENT SIDE DELLA RISPOSTA AVUTA DALLO SCRIPT SERVER-SIDE
   	// IMPOSTO IL FLAG DI CONTROLLO
   	AJAXisWorking = false;
 
		// NASCONDO L'IMMAGINE DI ATTESA...
		// fineattesa();
		
		}

 	}

	
function aggiungicomponenteaggiuntivo(cIdProdotto,cProgressivo,cIdComponente,cQuantita,cCarrello)
	{
	// SE E' STATO SELEZIONATO UN COMPONENTE DA AGGIUNGERE
	if (cIdComponente != "")
		{		
			
		// SE NON E' GIA' IN CORSO UNA ELABORAZIONE SERVER-SIDE
		// E SE E' STATO DICHIARATO L'OGGETTO http IN CUI METTERE LA RISPOSTA DELLO SCRIPT SERVER-SIDE
  	if (!AJAXisWorking && HttpComponentiAggiuntivi)
  		{
  	
			// VISUALIZZO L'IMMAGINE DI ATTESA...
			// inizioattesa();
  	  
			// INVIA FISICAMENTE LA RICHIESTA ALLO SCRIPT SERVER-SIDE
			// IL PARAMETRO "caso" CON VALORE RANDOM VIENE USATO PER NON USARE LA CACHE DEL BROWSER
			var randvalue = Math.random() * 100;
  	  HttpComponentiAggiuntivi.open("GET", "./ajax/aggiungicomponenteaggiuntivo.php?idprodotto=" + cIdProdotto + "&idcomponente=" + cIdComponente + "&quantita=" + cQuantita + "&progressivoprodotto=" + cProgressivo + "&tipocarrello="+ cCarrello + "&caso=" + randvalue.toString(), true);
  	
  	  // AL CAMBIAMENTO DI STATO DELL'OGGETTO http AVVIA LA GESTIONE DELLO STESSO
  	  HttpComponentiAggiuntivi.onreadystatechange = handleEsitoComponentiAggiuntivi;
		    	
  	  // IMPOSTA IL FLAG IN MODO CHE TUTTO JAVASCRIPT SAPPIA CHE E' IN CORSO UNA ELABORAZIONE SERVER-SIDE
  	  // E CHE DEVE ATTENDERE LA SUA CONCLUSIONE PRIMA DI POTERNE AVVIARE UN'ALTRA
  	  AJAXisWorking = true;
  	  	
  	  // QUESTA NON L'HO ANCORA CAPITA... :-( MA SERVE!!!
  	  HttpComponentiAggiuntivi.send(null);
			}
		}
	}


// FUNZIONE JAVASCRIPT CLIENT-SIDE CHE ELABORA LA RISPOSTA RESTITUITA DALLO SCRIPT PHP SERVER-SIDE
function handleEsitoComponentiAggiuntivi()
	{

	// SE L'OGGETTO http E' IN UNA SITUAZIONE CHE NE CONSENTE L'ELABORAZIONE
  if (HttpComponentiAggiuntivi.readyState == 4)
  	{
  	// LA RISPOSTA FORNITA DALLO SCRIPT PHP SERVER SIDE SI TROVA IN http.responseText
		var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;
    // USO XML DOM PER RICAVARE I DATI DI MIO INTERESSE DALLA RISPOSTA RICEVUTA DAL SERVER
    // CHE E' IN FORMATO XML ED E' CONTENUTA IN http.responseText
    var xmlDocument = HttpComponentiAggiuntivi.responseXML; 
    
    // DEBUG
    // alert("handleEsitoComponentiAggiuntivi\n" + HttpComponentiAggiuntivi.responseText);
    
		// VALORI RESTITUITI PER L'ESITO DELL'ELABORAZIONE
		var stato							= xmlDocument.getElementsByTagName('stato').item(0).firstChild.data;
		var descrizione				= xmlDocument.getElementsByTagName('descrizione').item(0).firstChild.data;
		var progressivo				= xmlDocument.getElementsByTagName('progressivo').item(0).firstChild.data;
		var numerocomponenti	= xmlDocument.getElementsByTagName('numerocomponenti').item(0).firstChild.data;
		var riepilogocarrello	= xmlDocument.getElementsByTagName('riepilogocarrello').item(0).firstChild.data;
		var totalecarrello		= xmlDocument.getElementsByTagName('totalecarrello').item(0).firstChild.data;

		// SE LA RISPOSTA AJAX E' OK
		if (stato == "0")
			{
			
			// AGGIORNA L'ELENCO DEI COMPONENTI AGGIUNTI AL PRODOTTO
			var celladaaggiornare							= document.getElementById("cellacomponentiaggiuntielenco" + progressivo);
			var descrizioneeprezzocomponente	= document.getElementById("selectcomponentiaggiungibili_" + progressivo).getElementsByTagName("option")[document.form_personalizzaprodotto["selectcomponentiaggiungibili_" + progressivo].selectedIndex].innerHTML;
			var carattere											= "";
			var primaparentesi								= -1;
			var euro													= -1;
			var prezzocomponente							= "";
			var descrizionecomponente					= "";
			var idcomponente									= "";
			var idedescrizionecomponente			= "";

			// TROVO LA POSIZIONE DEL CARATTERE "("
			for (var n = 0; n < descrizioneeprezzocomponente.length ; n++)
				{
				carattere = descrizioneeprezzocomponente.substr(n,1);
				if (carattere == "(")
					{
					primaparentesi = n;
					break;
					}
				}

			// TROVO LA POSIZIONE DEL CARATTERE "€"
			for (n = 0; n < descrizioneeprezzocomponente.length ; n++)
				{
				carattere = descrizioneeprezzocomponente.substr(n,1);
				if (carattere == "€")
					{
					euro = n;
					break;
					}
				}

			// DETERMINO LA SOTTOSTRINGA CONTENENTE IL PREZZO DEL COMPONENTE
			prezzocomponente = descrizioneeprezzocomponente.substr(primaparentesi + 1, euro - primaparentesi -2)

			var testoHTML = "";
			// testoHTML += "<table border='0' cellspacing='2' id='tabellacomponentiaggiunti" + progressivo + " width='100%'>\n";	
			testoHTML += "<table border='0' cellspacing='2' width='100%'>\n";	

			for (n = 0; n < numerocomponenti ; n++)
				{
				
				idedescrizionecomponente = xmlDocument.getElementsByTagName('componente').item(n).firstChild.data;
				
				aComponente = idedescrizionecomponente.split(";");
				descrizionecomponente 			= aComponente[1];
				idcomponente								= aComponente[0];
				prezzoaggiuntivocomponente	= aComponente[2];
				prodottocomponente					= aComponente[3];
				
				// testoHTML += "<tr id='rigacomponentiaggiunti" + prodottocomponente + "_" + progressivo + "_" + idcomponente + "'>\n";
				testoHTML += "<tr>\n";
				testoHTML += "<td>\n";
				testoHTML += "<font class='testo_nero_peppe'>" + descrizionecomponente + "</font>\n";
				testoHTML += "</td>\n";
				testoHTML += "<td width='45' align='right'>\n";
				testoHTML += "<font class='testo_nero_peppe'>+" + prezzoaggiuntivocomponente + " &euro;</font>\n";
				testoHTML += "</td>\n";
				testoHTML += "<td width='45' align='right'>\n";				
				testoHTML += "<a class='link_rosso_peppe' href=javascript:aggiungicomponenteaggiuntivo('" + prodottocomponente + "','" + progressivo + "'," + idcomponente + ",'0')>Annulla</a>\n";
				testoHTML += "</td>\n";
				testoHTML += "</tr>\n";

		
				}

			testoHTML += "</table>\n";
			
			celladaaggiornare.innerHTML = testoHTML;
			// celladaaggiornare.nodeValue = testoHTML;
			
			// RICAVO L'ELEMENTO IN CUI INSERIRE IL RIEPILOGO DEL CARRELLO
			// NOTA: L'ELEMENTO VIENE DEFINITO IN verticalmenu1.php
			var cellariepilogo = document.getElementById("cella_riepilogocarrello");			
			var testoriepilogocarrello = "";	
			if (riepilogocarrello == "VUOTO")
				{
				testoriepilogocarrello = "<font class=\"testo_nero_peppe\">Il carrello &egrave; vuoto</font>\n";
				cellariepilogo.innerHTML = testoriepilogocarrello + "<br><br>\n";
				}
			else
				{
				
				testoriepilogocarrello = "<font class=\"testo_nero_peppe\">Hai nel carrello:</font>\n";
				testoriepilogocarrello += "<br><br>\n";

				riepilogocarrello = riepilogocarrello.substr(0,riepilogocarrello.length - 1);
					
				var aRiepilogoCarrello = riepilogocarrello.split("#");
				var rigacarrello = "";
				
				for(var r = 0; r < aRiepilogoCarrello.length; r++)
					{

					rigacarrello = aRiepilogoCarrello[r]; 

					aValoriRigaCarrello = rigacarrello.split("=");		
					// testoriepilogocarrello += "<font class=\"testo_nero_peppe\">" + aValoriRigaCarrello[0] + " (" + aValoriRigaCarrello[1] + ")</font>\n";
					testoriepilogocarrello += "<font class=\"testo_nero_peppe\"><a href=\"schedaprodotto_hallo.php?id=" + aValoriRigaCarrello[2] + "\">" + aValoriRigaCarrello[0] + "</a> (" + aValoriRigaCarrello[1] + ")</font>\n";
					testoriepilogocarrello += "<br>\n";

					}

				testoriepilogocarrello += "<br><font class=\"testo_nero_peppe\">Importo &euro; <b>" + totalecarrello + "</b></font>\n";	 
				
				testoriepilogocarrello += "<br>\n";
				testoriepilogocarrello += "<font class=\"testo_nero_peppe\"><a href=\"carrelloconcomponenti.php\">Vai al carrello</a></font>\n";
				
				cellariepilogo.innerHTML = testoriepilogocarrello + "<br><br>\n";

				}			
			
			// RESETTA LA SELECT PER I COMPONENTIU AGGIUNTIVI
			document.form_personalizzaprodotto["selectcomponentiaggiungibili_" + progressivo].selectedIndex = '0';		
			
			// alert("Aggiunta riuscita!");
			// alert(descrizione);

			}
		else
			{
			alert("Operazione fallita!");
			}
		
		// TERMINATA L'ELABORAZIONE CLIENT SIDE DELLA RISPOSTA AVUTA DALLO SCRIPT SERVER-SIDE
   	// IMPOSTO IL FLAG DI CONTROLLO
   	AJAXisWorking = false;
 
		// NASCONDO L'IMMAGINE DI ATTESA...
		// fineattesa();
		}


 	}
 	
function eliminaprodottodaordine(cIdProdotto,cProgressivo)
	{
	// SE NON E' GIA' IN CORSO UNA ELABORAZIONE SERVER-SIDE
	// E SE E' STATO DICHIARATO L'OGGETTO http IN CUI METTERE LA RISPOSTA DELLO SCRIPT SERVER-SIDE
	if (!AJAXisWorking && HttpEliminaProdotto)
		{
	
		// VISUALIZZO L'IMMAGINE DI ATTESA...
		// inizioattesa();
	  
		// INVIA FISICAMENTE LA RICHIESTA ALLO SCRIPT SERVER-SIDE
		// IL PARAMETRO "caso" CON VALORE RANDOM VIENE USATO PER NON USARE LA CACHE DEL BROWSER
		var randvalue = Math.random() * 100;
	  HttpEliminaProdotto.open("GET", "./ajax/eliminaprodottodaordine.php?idprodotto=" + cIdProdotto + "&progressivoprodotto=" + cProgressivo + "&caso=" + randvalue.toString(), true);
	
	  // AL CAMBIAMENTO DI STATO DELL'OGGETTO http AVVIA LA GESTIONE DELLO STESSO
	  HttpEliminaProdotto.onreadystatechange = handleEliminaProdotto;
	    	
	  // IMPOSTA IL FLAG IN MODO CHE TUTTO JAVASCRIPT SAPPIA CHE E' IN CORSO UNA ELABORAZIONE SERVER-SIDE
	  // E CHE DEVE ATTENDERE LA SUA CONCLUSIONE PRIMA DI POTERNE AVVIARE UN'ALTRA
	  AJAXisWorking = true;
	  	
	  // QUESTA NON L'HO ANCORA CAPITA... :-( MA SERVE!!!
	  HttpEliminaProdotto.send(null);
		}
	} 	
	
// FUNZIONE JAVASCRIPT CLIENT-SIDE CHE ELABORA LA RISPOSTA RESTITUITA DALLO SCRIPT PHP SERVER-SIDE
function handleEliminaProdotto()
	{

	// SE L'OGGETTO http E' IN UNA SITUAZIONE CHE NE CONSENTE L'ELABORAZIONE
  if (HttpEliminaProdotto.readyState == 4)
  	{
  	// LA RISPOSTA FORNITA DALLO SCRIPT PHP SERVER SIDE SI TROVA IN http.responseText
		var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;
    // USO XML DOM PER RICAVARE I DATI DI MIO INTERESSE DALLA RISPOSTA RICEVUTA DAL SERVER
    // CHE E' IN FORMATO XML ED E' CONTENUTA IN http.responseText
    var xmlDocument = HttpEliminaProdotto.responseXML; 
    
    // DEBUG
    // alert("handleEliminaProdotto\n" + HttpEliminaProdotto.responseText);
    
		// VALORI RESTITUITI PER L'ESITO DELL'ELABORAZIONE

		var stato									= xmlDocument.getElementsByTagName('stato').item(0).firstChild.data;

		// SE LA RISPOSTA AJAX E' OK
		if (stato == "0")
			{

			var codiceinternoprodotto	= xmlDocument.getElementsByTagName('codiceinternoprodotto').item(0).firstChild.data;
			var quantitaprodotto			= xmlDocument.getElementsByTagName('quantitaprodotto').item(0).firstChild.data;
			var idprodotto						= xmlDocument.getElementsByTagName('idprodotto').item(0).firstChild.data;

			// RICARICO QUESTO SCRIPT
			window.location = "schedaprodotto_hallo.php?id=" + idprodotto;

			}
		else
			{
			alert("Eliminazione prodotto dall'ordine fallita!");
			}
		
		// TERMINATA L'ELABORAZIONE CLIENT SIDE DELLA RISPOSTA AVUTA DALLO SCRIPT SERVER-SIDE
   	// IMPOSTO IL FLAG DI CONTROLLO
   	AJAXisWorking = false;
 
		// NASCONDO L'IMMAGINE DI ATTESA...
		// fineattesa();
		}


 	}

function resettacomponentedibase(cIdProdotto,cProgressivo,cIdComponente,cIdSelect,cCarrello)
	{
	
	// alert(cIdProdotto +"\n" + cProgressivo + "\n" + cIdComponente + "\n" + cIdSelect);
	
	// SE E' STATO SELEZIONATO UN COMPONENTE DA RESETTARE
	if (cIdComponente != "")
		{		
			
		// SE NON E' GIA' IN CORSO UNA ELABORAZIONE SERVER-SIDE
		// E SE E' STATO DICHIARATO L'OGGETTO http IN CUI METTERE LA RISPOSTA DELLO SCRIPT SERVER-SIDE
  	if (!AJAXisWorking && HttpResettaComponenteDiBase)
  		{
  	
			// VISUALIZZO L'IMMAGINE DI ATTESA...
			// inizioattesa();
  	  
			// INVIA FISICAMENTE LA RICHIESTA ALLO SCRIPT SERVER-SIDE
			// IL PARAMETRO "caso" CON VALORE RANDOM VIENE USATO PER NON USARE LA CACHE DEL BROWSER
			var randvalue = Math.random() * 100;
  	  HttpResettaComponenteDiBase.open("GET", "./ajax/resettacomponentedibase.php?idprodotto=" + cIdProdotto + "&idcomponente=" + cIdComponente + "&progressivoprodotto=" + cProgressivo + "&idselect=" + cIdSelect + "&tipocarrello=" + cCarrello + "&caso=" + randvalue.toString(), true);
  	
  	  // AL CAMBIAMENTO DI STATO DELL'OGGETTO http AVVIA LA GESTIONE DELLO STESSO
  	  HttpResettaComponenteDiBase.onreadystatechange = handleResettaComponenteDiBase;
		    	
  	  // IMPOSTA IL FLAG IN MODO CHE TUTTO JAVASCRIPT SAPPIA CHE E' IN CORSO UNA ELABORAZIONE SERVER-SIDE
  	  // E CHE DEVE ATTENDERE LA SUA CONCLUSIONE PRIMA DI POTERNE AVVIARE UN'ALTRA
  	  AJAXisWorking = true;
  	  	
  	  // QUESTA NON L'HO ANCORA CAPITA... :-( MA SERVE!!!
  	  HttpResettaComponenteDiBase.send(null);
			}
		}
	else
		{
		alert("Attenzione: nessun ingrediente selezionato!");
		}

	
	}


// FUNZIONE JAVASCRIPT CLIENT-SIDE CHE ELABORA LA RISPOSTA RESTITUITA DALLO SCRIPT PHP SERVER-SIDE
function handleResettaComponenteDiBase()
	{
		

	// SE L'OGGETTO http E' IN UNA SITUAZIONE CHE NE CONSENTE L'ELABORAZIONE
  if (HttpResettaComponenteDiBase.readyState == 4)
  	{
  	// LA RISPOSTA FORNITA DALLO SCRIPT PHP SERVER SIDE SI TROVA IN http.responseText
		var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;
    // USO XML DOM PER RICAVARE I DATI DI MIO INTERESSE DALLA RISPOSTA RICEVUTA DAL SERVER
    // CHE E' IN FORMATO XML ED E' CONTENUTA IN http.responseText
    var xmlDocument = HttpResettaComponenteDiBase.responseXML; 
    
    // DEBUG
    // alert("handleResettaComponenteDiBase\n" + HttpResettaComponenteDiBase.responseText);
    
		// VALORI RESTITUITI PER L'ESITO DELL'ELABORAZIONE
		var stato							= xmlDocument.getElementsByTagName('stato').item(0).firstChild.data;
		var descrizione				= xmlDocument.getElementsByTagName('descrizione').item(0).firstChild.data;
		var idselect					= xmlDocument.getElementsByTagName('idselect').item(0).firstChild.data;
		var riepilogocarrello	= xmlDocument.getElementsByTagName('riepilogocarrello').item(0).firstChild.data;
		var totalecarrello		= xmlDocument.getElementsByTagName('totalecarrello').item(0).firstChild.data;
		var tipocarrello			= xmlDocument.getElementsByTagName('tipocarrello').item(0).firstChild.data;

		// SE LA RISPOSTA AJAX E' OK
		if (stato == "0")
			{

			var progressivo				= xmlDocument.getElementsByTagName('progressivo').item(0).firstChild.data;
			
			// INIZIALIZZO UNA VARIABILE PER LE VARIE MODIFICHE
			var cModifiche = xmlDocument.getElementsByTagName('numeromodifiche').item(0).firstChild.data;
			var nModifiche = parseInt(cModifiche);
		
			// INIZIALIZZO IL TESTO HTML
			testoHTML = "";

			if (nModifiche > 0)
				{

				testoHTML += "<table border='0' cellspacing='2' width='100%'>\n";
				
				// PER OGNI MODIFICA AI COMPONENTI DI BASE
				for (var n=0; n < nModifiche; n++)
					{

					// RICAVO LA MODIFICA (HA QUANTITA, DESCRIZIONE, PREZZO, ID PRODOTTO E ID COMPONENTE SEPARATI DA *#*)
					cModifica	= xmlDocument.getElementsByTagName('modifica').item(n).firstChild.data;
					// alert("PUNTO ROBERTO: \n" + cModifica);
	
					// RICAVO I SINGOLI ELEMENTI DELLA MODIFICA
					var aModifica = cModifica.split("*#*");
				
					// DEBUG
					// alert("aModifica in handleResettaComponenteDiBase\n" + aModifica);
				
					// COSTRUISCO LA RIGA
					testoHTML += "<tr>\n";
					testoHTML += "<td>\n";
					testoHTML += "<font class='testo_nero_peppe'>" + aModifica[0] + " " + aModifica[1] + "</font>\n";
					testoHTML += "</td>\n";
					testoHTML += "<td width='45' align='right'>\n";
					testoHTML += "<font class='testo_nero_peppe'>" + aModifica[2] + " &euro;</font>\n";
					testoHTML += "</td>\n";				
					testoHTML += "<td width='45' align='right'>\n";				
					// testoHTML += "<a href=javascript:resettacomponentedibase('" + aModifica[3] + "','" + progressivo + "','" + aModifica[4] + "','" + aModifica[5] + "_" + progressivo + "','" + aModifica[4] + "')>Annulla</a>\n";
					testoHTML += "<a class='link_rosso_peppe' href=javascript:resettacomponentedibase('" + aModifica[3] + "','" + progressivo + "','" + aModifica[4] + "','" + aModifica[5] + "','" + aModifica[4] + "')>Annulla</a>\n";
					testoHTML += "</td>\n";				
					testoHTML += "</tr>\n";
				
					}
					
				testoHTML += "</table>\n";
							
				}
			else
				{					
				testoHTML += "&nbsp;";
				}
			
			// INSERISCO IL TESTO HTML NELLA CELLA
			var celladaaggiornare							= document.getElementById("cellacomponentidibasemodificatielenco" + progressivo);
			celladaaggiornare.innerHTML = testoHTML;

			// RICAVO L'ELEMENTO IN CUI INSERIRE IL RIEPILOGO DEL CARRELLO
			// NOTA: L'ELEMENTO VIENE DEFINITO IN verticalmenu1.php
			var cellariepilogo = document.getElementById("cella_riepilogocarrello");			
			var testoriepilogocarrello = "";	
			if (riepilogocarrello == "VUOTO")
				{
				testoriepilogocarrello = "<font class=\"testo_nero_peppe\">Il carrello &egrave; vuoto</font>\n";
				cellariepilogo.innerHTML = testoriepilogocarrello + "<br><br>\n";
				}
			else
				{

			// DEBUG
			// alert("STO QUI: " + riepilogocarrello + " euro " + totalecarrello);
				
				testoriepilogocarrello = "<font class=\"testo_nero_peppe\">Hai nel carrello:</font>\n";
				testoriepilogocarrello += "<br><br>\n";

				riepilogocarrello = riepilogocarrello.substr(0,riepilogocarrello.length - 1);
					
				var aRiepilogoCarrello = riepilogocarrello.split("#");
				var rigacarrello = "";
				
				for(var r = 0; r < aRiepilogoCarrello.length; r++)
					{

					rigacarrello = aRiepilogoCarrello[r]; 

					aValoriRigaCarrello = rigacarrello.split("=");		
					// testoriepilogocarrello += "<font class=\"testo_nero_peppe\">" + aValoriRigaCarrello[0] + " (" + aValoriRigaCarrello[1] + ")</font>\n";
					testoriepilogocarrello += "<font class=\"testo_nero_peppe\"><a href=\"schedaprodotto_hallo.php?id=" + aValoriRigaCarrello[2] + "\">" + aValoriRigaCarrello[0] + "</a> (" + aValoriRigaCarrello[1] + ")</font>\n";
					testoriepilogocarrello += "<br>\n";

					}

				testoriepilogocarrello += "<br><font class=\"testo_nero_peppe\">Importo &euro; <b>" + totalecarrello + "</b></font>\n";	 
				
				if (tipocarrello == "carrelloconcomponenti")		
					{
					testoriepilogocarrello += "<br><font class=\"testo_nero_peppe\"><a href=\"carrelloconcomponenti.php\">Vai al carrello</a></font>\n";	 
					}
				else
					{
					testoriepilogocarrello += "<br><font class=\"testo_nero_peppe\"><a href=\"carrello.php\">Vai al carrello</a></font>\n";	 
					}			
				
				cellariepilogo.innerHTML = testoriepilogocarrello + "<br><br>\n";

				}

			// RESETTO LA SELECT RELATIVA AL COMPONENTE
			document.getElementById(idselect).selectedIndex = 0;
			
			}
		else
			{
			alert("Operazione fallita!");
			}
		
		// TERMINATA L'ELABORAZIONE CLIENT SIDE DELLA RISPOSTA AVUTA DALLO SCRIPT SERVER-SIDE
   	// IMPOSTO IL FLAG DI CONTROLLO
   	AJAXisWorking = false;
 
		// NASCONDO L'IMMAGINE DI ATTESA...
		// fineattesa();
		}

 	}

/* 	
 function assegnaprodottoapersona(cNomeVariabile,cValoreVariabile)
 	{
 	if (cValoreVariabile != "")
 		{
 		alert("assegnaprodottoapersona\n" + cNomeVariabile + "\n" + cValoreVariabile + "\nDevo assegnare questo prodotto a " + cValoreVariabile);
 		}
 	}
 */
 	
function assegnaprodottoapersona(cNomeVariabile,cValoreVariabile)
	{
	
	// alert(cIdProdotto +"\n" + cProgressivo + "\n" + cIdComponente + "\n" + cIdSelect);
	
			
		// SE NON E' GIA' IN CORSO UNA ELABORAZIONE SERVER-SIDE
		// E SE E' STATO DICHIARATO L'OGGETTO http IN CUI METTERE LA RISPOSTA DELLO SCRIPT SERVER-SIDE
  	if (!AJAXisWorking && HttpAssegnaProdottoAPersona)
  		{
  	
			// VISUALIZZO L'IMMAGINE DI ATTESA...
			// inizioattesa();
  	  
			// INVIA FISICAMENTE LA RICHIESTA ALLO SCRIPT SERVER-SIDE
			// IL PARAMETRO "caso" CON VALORE RANDOM VIENE USATO PER NON USARE LA CACHE DEL BROWSER
			var randvalue = Math.random() * 100;
  	  HttpAssegnaProdottoAPersona.open("GET", "./ajax/assegnaprodottoapersona.php?nomevariabile=" + cNomeVariabile + "&valorevariabile=" + cValoreVariabile.toUpperCase() + "&caso=" + randvalue.toString(), true);
  	
  	  // AL CAMBIAMENTO DI STATO DELL'OGGETTO http AVVIA LA GESTIONE DELLO STESSO
  	  HttpAssegnaProdottoAPersona.onreadystatechange = handleAssegnaProdottoAPersona;
		    	
  	  // IMPOSTA IL FLAG IN MODO CHE TUTTO JAVASCRIPT SAPPIA CHE E' IN CORSO UNA ELABORAZIONE SERVER-SIDE
  	  // E CHE DEVE ATTENDERE LA SUA CONCLUSIONE PRIMA DI POTERNE AVVIARE UN'ALTRA
  	  AJAXisWorking = true;
  	  	
  	  // QUESTA NON L'HO ANCORA CAPITA... :-( MA SERVE!!!
  	  HttpAssegnaProdottoAPersona.send(null);
			}
	
	}


// FUNZIONE JAVASCRIPT CLIENT-SIDE CHE ELABORA LA RISPOSTA RESTITUITA DALLO SCRIPT PHP SERVER-SIDE
function handleAssegnaProdottoAPersona()
	{
		

	// SE L'OGGETTO http E' IN UNA SITUAZIONE CHE NE CONSENTE L'ELABORAZIONE
  if (HttpAssegnaProdottoAPersona.readyState == 4)
  	{
  	// LA RISPOSTA FORNITA DALLO SCRIPT PHP SERVER SIDE SI TROVA IN http.responseText
		var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;
    // USO XML DOM PER RICAVARE I DATI DI MIO INTERESSE DALLA RISPOSTA RICEVUTA DAL SERVER
    // CHE E' IN FORMATO XML ED E' CONTENUTA IN http.responseText
    var xmlDocument = HttpAssegnaProdottoAPersona.responseXML; 
    
    // DEBUG
    // alert("handleAssegnaProdottoAPersona\n" + HttpAssegnaProdottoAPersona.responseText);
    
		// VALORI RESTITUITI PER L'ESITO DELL'ELABORAZIONE
		var stato							= xmlDocument.getElementsByTagName('stato').item(0).firstChild.data;
		var descrizione				= xmlDocument.getElementsByTagName('descrizione').item(0).firstChild.data;

		// SE LA RISPOSTA AJAX E' OK
		if (stato == "0")
			{

			var campo = xmlDocument.getElementsByTagName('nomecampo').item(0).firstChild.data;
			var vuoto  = xmlDocument.getElementsByTagName('campovuoto').item(0).firstChild.data;

			var valore = "";
			if (vuoto == "0")
				{
				valore = xmlDocument.getElementsByTagName('valorecampo').item(0).firstChild.data;
				}
			else
				{
				valore = "";
				}
				
			// alert("persona_idprodotto_9_progressivoprodotto_1\n" + campo);
			
			valore = valore.toUpperCase();
			
			document.form_personalizzaprodotto[campo].value = valore;
						
			}
		else
			{
			alert("Operazione fallita!");
			}
		
		// TERMINATA L'ELABORAZIONE CLIENT SIDE DELLA RISPOSTA AVUTA DALLO SCRIPT SERVER-SIDE
   	// IMPOSTO IL FLAG DI CONTROLLO
   	AJAXisWorking = false;
 
		// NASCONDO L'IMMAGINE DI ATTESA...
		// fineattesa();
		
		return;
		
		}

 	}

// INIZIO FUNZIONE PER L'USCITA DECIMALE CON STILE
function uscitadecimaleconstile(cField,nDecimals,nObbligatorio,nMin,nMax,cOkStyle,cErrorStyle)
	{
	
	// DEBUG
	// nDecimals = 2;	// CAMBIARE IL VALORE NEL NUMERO DESIDERATO DI DECIMALI DA TESTARE
	// nObbligatorio = 1; 	// 1 = OBBLIGATORIO		0 = FACOLTATIVO
	// nMin = 0.00;		// COMMENTARE QUESTA RIGA PER NON IMPOSTARE UN VALORE MINIMO ACCETTABILE
	// nMax = 999999.99;	// COMMENTARE QUESTA RIGA PER NON IMPOSTARE UN VALORE MASSIMO ACCETTABILE

	// VARIABILE USATA PER MEMORIZZARE IL TIPO DELLE ALTRE VARIABILI
	// USATE NEL CORSO DELLA ELABORAZIONE PER VERIFICARE SE LE STESSE
	// SONO STATE PASSATE O MENO
	var cTipoVariabile = "";

	// SE NON E' STATO PASSATO IL NUMERO MINIMO ACCETTABILE
	cTipoVariabile = typeof(nMin);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nMin = 0.00;
		}

	// SE NON E' STATO PASSATO IL NUMERO MASSIMO ACCETTABILE
	cTipoVariabile = typeof(nMax);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nMax = 999999.99;
		}

	// SE NON E' STATO PASSATO IL NUMERO DI DECIMALI DA GESTIRE
	// LI IMPOSTA DI DEFAULT A 2
	cTipoVariabile = typeof(nDecimals);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nDecimals = 2;
		}

	// SE NON E' STATO PASSATO IL FLAG DI OBBLIGATORIETA' O MENO DEL CAMPO
	// LO IMPOSTA DI DEFAULT A OBBLIGATORIO
	cTipoVariabile = typeof(nObbligatorio);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nObbligatorio = 1;
		}

	// INIZIALIZZA LA VARIABILE CHE CONTERRA' IL RISULTATO DELLA ELABORAZIONE
	var nValore = 0.00;

	// INIZIALIZZA A VERO IL VALORE DA RITORNARE ALLO SCRIPT CHIAMANTE
	var lRet = true;

	// MEMORIZZA IL CONTENUTO DEL CAMPO PER LE SUCCESSIVE ELABORAZIONI
	var cValore = cField.value;
	
	// MEMORIZZA IL CONTENUTO DEL CAMPO PRIMA DI QUALSIASI ELABORAZIONE
	// PER POTERLO VISUALIZZARE NELL'ALERT IN CASO CHE NON SIA UN NUMERO VALIDO
	var cOldValore = cValore;

	// SOSTITUISCE EVENTUALI VIRGOLE CON IL CARATTERE "."
	cValore = cValore.replace(",",".");

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// SE NON E' STATO IMMESSO ALCUN VALORE E IL CAMPO E' OBBLIGATORIO...
		if ( (cValore == "") && (nObbligatorio == 1) )
			{
			// VA IN ERRORE!
			alert ("Il campo è obbligatorio!");
			lRet = false;
			}

		}

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// SE NON E' STATO IMMESSO ALCUN VALORE E IL CAMPO E' FACOLTATIVO...
		if ( (cValore == "") && (nObbligatorio == 0) )
			{
			// IMPOSTA IL VALORE A ZERO
			// cField.value = "0.00";
			nValore = 0.00;
			}
		}

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// SE IL VALORE NON E' UN NUMERO...
		if (isNaN(cValore))
			{
			// VA IN ERRORE!
			alert (cOldValore + " non è un numero");
			lRet = false;
			}
		}

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// RICAVA IL VALORE COME NUMERO IN VIRGOLA MOBILE
		nValore = parseFloat(cValore);

		// SE E' STATO PASSATO UN VALORE MINIMO ACCETTABILE
		// E IL VALORE IMMESSO E' MINORE DELLO STESSO...
		cTipoVariabile = typeof(nMin);

		if ( nValore < nMin )
			{
			// VA IN ERRORE!
			alert ("Il valore minimo accettabile è " + nMin + "!");
			lRet = false;
			}
		}

	// SE FINORA IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// SE E' STATO PASSATO UN VALORE MASSIMO ACCETTABILE
		// E IL VALORE IMMESSO E' SUPERIORE ALLO STESSO...
		cTipoVariabile = typeof(nMax);
		if ( nValore > nMax )
			{
			// VA IN ERRORE!
			alert ("Il valore massimo accettabile è " + nMax + "!");
			lRet = false;
			}
		}

	// INFINE, SE IL CONTROLLO E' STATO OK...
	if (lRet)
		{
		// VISUALIZZA IL NUMERO CORRETTAMENTE FORMATTATO
		if (typeof(cOkStyle).toUpperCase() != "UNDEFINED")
			{
			cField.className = cOkStyle;
			}
		nValore = nValore.toFixed(nDecimals);	
		cField.value = nValore;
		}
	else
		{
		// LASCIA INALTERATO IL VALORE DEL CAMPO
		// E LO EVIDENZIA CON SFONDO ROSSO
		if (typeof(cErrorStyle).toUpperCase() != "UNDEFINED")
			{
			cField.className = cErrorStyle;
			}
		cField.value = cOldValore;
		
		}
	
	// RITORNA IL RISULTATO ALLO SCRIPT CHIAMANTE
	return lRet;

	}
// FINE FUNZIONE PER L'USCITA DECIMALE CON STILE

// cId è l'id del campo con la quantità digitata dall'utente
function mettinelcarrello(cId,nDecimals,nDisponibilita,nVarianti,cScriptOrigine,cForceQta,nReloadPage,cProdottoId,cJS)
	{

	// DEBUG
	// alert(cId + "\n" + nDecimals + "\n" + nDisponibilita + "\n" + nVarianti + "\n" + cScriptOrigine + "\n" + cForceQta + "\n" + nReloadPage + "\n" + cProdottoId + "\n" + cJS)

	// SE NON E' STATO PASSATO L'ESITO DI PRECEDENTI CONTROLLI JAVASCRIPT
	// LO IMPOSTA PER COMPATIBILITA A "JOK"
	cTipoVariabile = typeof(cJS);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		cJS = "JOK";
		}
	
	// SE NON E' STATO PASSATO L'ID DEL PRODOTTO AVVISA ED ESCE
	cTipoVariabile = typeof(cProdottoId);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		alert("Id prodotto non passato alla funzione mettinelcarrello!");
		return;
		}
	
	// SE NON E' STATA PASSATA LA QUANTITA DA FORZARE LA IMPOSTA A -1
	cTipoVariabile = typeof(cForceQta);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		cForceQta = "-1";
		}
		
	// SE NON E' STATO PASSATO IL PARAMETRO PER FORZARE IL RELOAD DELLA PAGINA LO IMPOSTA A false
	cTipoVariabile = typeof(nReloadPage);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		nReloadPage = 0;
		}
	
	var aCampo = cId.split(":");

	// SE LA QUANTITA' NON E' DA FORZARE
	if ( cForceQta == "-1")
		{
	
		// CONTROLLO IL VALORE DIGITATO DALL'UTENTE
		var e = document.getElementById(aCampo[0] + ":" + aCampo[1]);
		
		var cValue = e.value;

		// IL VALORE DIGITATO E' UN NUMERO ACCETTABILE?
		if ( isNaN(cValue) )
			{
			// VA IN ERRORE!
			alert (cValue + " non è un numero");
			return false;
			}
		}
	else
		{
		var cValue = cForceQta;
		}

	// PER SICUREZZA RIFORMATTO IL NUMERO
	nValue = parseFloat(cValue);
	nValue = nValue.toFixed(nDecimals);	
	cValue = nValue.toString();
	
	// DEBUG
	// alert( "Metto nel carrello " + cValue + " di " + cId + " con " + nDecimals.toString() + " decimali" );
	
	// SE NON E' GIA' IN CORSO UNA ELABORAZIONE SERVER-SIDE
	// (MyHttp lo dichiaro in scripts.js)
	if (!AJAXisWorking && MyHttp)
		{

		// VISUALIZZO L'IMMAGINE DI ATTESA...
		ThisInizioAttesa();

		// IL PARAMETRO "caso" CON VALORE RANDOM VIENE USATO PER NON USARE LA CACHE DEL BROWSER
		var randvalue = Math.random() * 100;

		// DEBUG
		// alert( "./ajax/mettinelcarrello.php?caso=" + randvalue.toString() + "&metti=" + cId + "&quantita=" + cValue + "&decimali=" + nDecimals.toString());
		
		// AVVIO LA TRANSAZIONE AJAX
		// MyHttp.open("GET", "./ajax/mettinelcarrello.php?caso=" + randvalue.toString() + "&metti=" + cId + "&quantita=" + cValue + "&decimali=" + nDecimals.toString() + "&usadisponibilita=" + nDisponibilita.toString() + "&varianti=" + nVarianti.toString() + "&scriptorigine=" + cScriptOrigine, true);
		MyHttp.open("GET", "./ajax/mettinelcarrello.php?caso=" + randvalue.toString() + "&metti=" + cId + "&quantita=" + cValue + "&decimali=" + nDecimals.toString() + "&usadisponibilita=" + nDisponibilita.toString() + "&varianti=" + nVarianti.toString() + "&scriptorigine=" + cScriptOrigine + "&rp=" + nReloadPage.toString() + "&idprodotto=" + cProdottoId + "&js=" + cJS, true);
			
		// AL CAMBIAMENTO DI STATO DELL'OGGETTO http AVVIA LA GESTIONE DELLO STESSO
		MyHttp.onreadystatechange = handleMyHttpMettiNelCarrello;
				
		// IMPOSTA IL FLAG IN MODO CHE TUTTO JAVASCRIPT SAPPIA CHE E' IN CORSO UNA ELABORAZIONE SERVER-SIDE
		// E CHE DEVE ATTENDERE LA SUA CONCLUSIONE PRIMA DI POTERNE AVVIARE UN'ALTRA
		AJAXisWorking = true;
			
		// TERMINA LA TRANSAZIONE AJAX
		MyHttp.send(null);
		
		}
	else
		{
		
		// NASCONDO L'IMMAGINE DI ATTESA...
		ThisFineAttesa();
		
		return false;
		}
	
	}

function handleMyHttpMettiNelCarrello()
	{

	// SE L'OGGETTO MyHttp E' IN UNA SITUAZIONE CHE NE CONSENTE L'ELABORAZIONE
	if (MyHttp.readyState == 4)
		{

		// LA RISPOSTA FORNITA DALLO SCRIPT PHP SERVER SIDE SI TROVA IN http.responseText
		var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;

		// USO XML DOM PER RICAVARE I DATI DI MIO INTERESSE DALLA RISPOSTA RICEVUTA DAL SERVER
		// CHE E' IN FORMATO XML ED E' CONTENUTA IN http.responseText
		var xmlDocument = MyHttp.responseXML; 
		
		// DEBUG
		// alert("handleMyHttpMettiNelCarrello\n" + MyHttp.responseText + "\n****");

		// CODICE NUMERICO PER L'ESITO DELL'ELABORAZIONE
		var stato = xmlDocument.getElementsByTagName('stato').item(0).firstChild.data;

		// DESCRIZIONE DELL'ESITO DELL'ELABORAZIONE
		var AjaxMessage = xmlDocument.getElementsByTagName('descrizione').item(0).firstChild.data;

		// PUNTO ALLA INPUT READONLY PER LA QUANTITA' TOTALE IN ORDINE PER IL PRODOTTO
		var e_quantita_totale			= document.getElementById("quantita_totale");
		
		// PUNTO ALLA INPUT READONLY PER L'IMPORTO TOTALE IN ORDINE PER IL PRODOTTO
		var e_quantita_totale_importo	= document.getElementById("quantita_totale_importo");

		// SE LA RISPOSTA AJAX E' OK
		if (stato == "0")
			{
			
			// AGGIORNO I NECESSARI CAMPI NEL FORM
			
			// DEBUG
			// alert("Operazione riuscita!\nOra aggiorno i campi\n" + AjaxMessage);

			// RICAVO LO SCRIPT DA CUI E' PARTITA L'OPERAZIONE
			var scriptorigine	= xmlDocument.getElementsByTagName('scriptorigine').item(0).firstChild.data;
			// alert("origine = " + scriptorigine);
			
			// RICAVO IL NUMERO DI VARIANTI ESISTENTI PER IL PRODOTTO
			var numerovarianti	= parseInt(xmlDocument.getElementsByTagName('varianti').item(0).firstChild.data);

			// RICAVO L'ID DEL PRODOTTO
			var idprodotto	= xmlDocument.getElementsByTagName('idprodotto').item(0).firstChild.data;
			
			// RICAVO IL PARAMETRO CHE MI DICE SE DEVO RICARICARE LA PAGINA
			var ricaricapagina	= parseInt(xmlDocument.getElementsByTagName('rp').item(0).firstChild.data);
			
			// RICAVO IL NUMERO DI DECIMALI DA USARE PER LE UMS
			var numerodecimali	= parseInt(xmlDocument.getElementsByTagName('decimali').item(0).firstChild.data);
			
			// NOME DELLA VARIABILE DI SESSIONE COMPOSTA DA codiceinterno:variante:prezzo
			var campo = xmlDocument.getElementsByTagName('campo').item(0).firstChild.data;
			// ESPLODO IL NOME DELLA VARIABILE
			var aCampo		= campo.split(":");
			var prodotto	= aCampo[0];
			var variante	= aCampo[1];
			var prezzo		= aCampo[2];

			// QUANTITA' DIPONIBILE PER IL PRODOTTO (RESTITUITA DALLA TRANSAZIONE AJAX)
			var usadisponibilita = xmlDocument.getElementsByTagName('usadisponibilita').item(0).firstChild.data;
			
			if ( parseInt(usadisponibilita) > 0 )
				{
				var disponibile = xmlDocument.getElementsByTagName('disponibile').item(0).firstChild.data;
				var nDisponibile	= parseFloat(disponibile);
				
				// gestire se ci sono varianti il giusto nome del campo!!!
				var eDisponibile	= document.getElementById("disponibile_" + aCampo[0] + "_" + aCampo[1]);
				
				eDisponibile.value	= nDisponibile.toString();
				}
			
			// QUANTITA' MESSA IN ORDINE PER IL PRODOTTO (RESTITUITA DALLA TRANSAZIONE AJAX)
			var quantita	= xmlDocument.getElementsByTagName('quantita').item(0).firstChild.data;
			var nQuantita	= parseFloat(quantita);
			
			// gestire se ci sono varianti il giusto nome del campo!!!			
			var eQuantita	= document.getElementById(aCampo[0] + ":" + aCampo[1]);
			
			eQuantita.value	= nQuantita.toString();

			// FACCIO UN CICLO SULLE RIGHE CHE CONTENGONO LE INPUT
			// CALCOLANDO PER OGNI RIGA
			// 1) IMPORTO DI RIGA	= il prezzo unitario per la quantita
			// 2) QUANTITA' TOTALE	= incremento una variabile inizializzata a zero
			// 3) IMPORTO TOTALE	= incremento una variabile inizializzata a zero
			var aRighe	= document.getElementsByTagName("tr");

			if (numerovarianti == 0)
				{
				var cRigaId	= "riga_" + prodotto; // + "_" + variante;
				}
			else
				{
				var cRigaId	= "riga_" + prodotto; //  + "_" + variante;
				}
			
			// INIZIALIZZO LA QUANTITA' TOTALE A ZERO
			var quantitatotale = 0.00;
			
			// INIZIALIZZO L'IMPORTO TOTALE A ZERO
			var importototale = 0.00;
						
			// INIZIALIZZO LA DISPONIBILITA' TOTALE A ZERO
			if ( parseInt(usadisponibilita) > 0 )
				{
				var disponibiletotale = 0.00;
				}
			
			var prezzounitario = 0.00;

			// TROVO TUTTE LE IMG IN QUESTIONE
			var aSpunte = document.getElementsByTagName("img");
			
			// PER OGNUNA CAMBIO LA PROPRIETA SRC CON QUELLA VUOTA
			for (var spunta = 0; spunta < aSpunte.length; spunta++)	
				{
				if ( aSpunte[spunta].id.substring(0,10) == "img_check_" )
					{
					aSpunte[spunta].src = "./images/check_vuoto.gif";
					}
				}
				
			// DEBUG
			// alert("variante = " + prodotto + "_" + variante);
				
			// PER IL SOLO PRODOTTO AGGIORNATO RIATTIVO IL SEGNO DI SPUNTA
			var js = xmlDocument.getElementsByTagName('js').item(0).firstChild.data;
			
			// DEBUG
			// alert(js);
			
			if (js == "JOK")
				{
				document.getElementById("img_check_" + prodotto + "_" + variante).src = "./images/check.gif";
				}
			else
				{
				document.getElementById("img_check_" + prodotto + "_" + variante).src = "./images/alert.gif";
				}
				
			for ( var n = 0; n < aRighe.length; n++)
				{
				
				if ( aRighe[n].id.substring(0,cRigaId.length) == cRigaId )
					{
					
					// RICAVO CODICE INTERNO E VARIANTE PER LA RIGA DA aRighe[n]
					aRiga = aRighe[n].id.split("_");

					// DEBUG
					// alert("ID RIGA = " + aRighe[n].id + "\nCAMPO PREZZO = " + "prezzo_" + aRighe[n].id.substring(5));
				
					if (numerovarianti == 0)
						{					
						// PUNTO LA INPUT CON IL PREZZO UNITARIO DI RIGA
						campoprezzounitario	= document.getElementById("prezzo_" + prodotto + "_" + aRiga[2]);
						}
					else
						{					
						// PUNTO LA INPUT CON IL PREZZO UNITARIO DI RIGA
						campoprezzounitario	= document.getElementById("prezzo_" + aRighe[n].id.substring(5));
						}

					// CI SONO PIU' VARIANTI PER IL PRODOTTO?
					if (numerovarianti == 0)
						{
						// PUNTO LA INPUT CON LA QUANTITA' DI RIGA
						campoquantita		= document.getElementById(prodotto + ":" + aRiga[2]);
						}
					else
						{
						// PUNTO LA INPUT CON LA QUANTITA' DI RIGA
						campoquantita		= document.getElementById(prodotto + ":" + aRighe[n].id.substring( 5 + prodotto.length + 1));
						}

					if ( numerodecimali > 0 )
						{

						// MOLTIPLICO IL PREZZO UNITARIO PER LA QUANTITA'
						prezzoriga = parseInt(campoquantita.value) * parseFloat(campoprezzounitario.value);

						// INCREMENTO LA QUANTITA' TOTALE
						quantitatotale += parseFloat(campoquantita.value);
						}
					else
						{
						
						// MOLTIPLICO IL PREZZO UNITARIO PER LA QUANTITA'
						prezzoriga = parseFloat(campoquantita.value) * parseFloat(campoprezzounitario.value);
						
						// INCREMENTO LA QUANTITA' TOTALE
						quantitatotale += parseInt(campoquantita.value);
						}
					
					// INCREMENTO L'IMPORTO TOTALE
					importototale += prezzoriga;

					if ( parseInt(usadisponibilita) > 0 )
						{
						// PUNTO LA INPUT CON LA DISPONIBILITA' DI RIGA ( id = "disponibile_" + codicepresodallariga + "_" + variantepresadallariga )
						campodisponibile	= document.getElementById("disponibile_" + prodotto + "_" + aRiga[2]);
						// INCREMENTO IL DISPONIBILE TOTALE (INCLUSIVO DI TUTTE LE VARIANTI)					
						disponibiletotale += parseFloat(campodisponibile.value);
						}
						
					// SE LO SCRIPT ORIGINE E' carrelloconvarianti
					// AGGIORNO LA RIGA RIEPILOGATIVA PER LA VARIANTE IN QUESTIONE!!!
					if ( (aRighe[n].id.substring(5) == prodotto + "_" + variante) && ( scriptorigine == "carrelloconvarianti" ) )
						{
						// DEBUG
						// alert("SONO NELLA RIGA " + aRighe[n].id.substring(5) + "\nlavoro su " + prodotto + "_" + variante);
						
						// POPOLO IL CAMPO QUANTITA' TOTALE RIEPILOGATIVO LA VARIANTE
						document.getElementById("quantita_totale_" + prodotto + "_" + variante).value = parseFloat(campoquantita.value).toFixed(numerodecimali).toString();
						
						// POPOLO IL CAMPO IMPORTO TOTALE RIEPILOGATIVO PER LA VARIANTE
						document.getElementById("quantita_totale_importo_" + prodotto + "_" + variante).value = prezzoriga.toFixed(2).toString();
											
						}

					// DEBUG		
					// alert("Campo " + campoquantita.id + " = " + campoquantita.value +"\nProdotto " + prodotto + "\nVariante " + variante);
						
					// if ( !isNaN(campoquantita.value) )
						// {
						
						if ( (campoquantita.value != "0") && (campoquantita.value != "0.00") )
							{

							// DEBUG
							// alert("abilito la cancellazione");
							
							// GESTISCO L'IMMAGINE PER L'ELIMINAZIONE DEL PRODOTTO DAL CARRELLO
							var eDeleteHref = document.getElementById( "href_elimina_" + campoquantita.id );
							var eDeleteImg = document.getElementById( "img_elimina_" + campoquantita.id );
							eDeleteImg.src = "./images/delete.gif";
							eDeleteImg.title = "Fai clic qui per eliminare il prodotto dal carrello";
							eDeleteImg.alt = "Fai clic qui per eliminare il prodotto dal carrello";
							
							// eDeleteImg.removeAttribute("onClick");
							// eDeleteImg.setAttribute("onClick", "javascript:mettinelcarrello('" + campoquantita.id + ":" + parseFloat(campoprezzounitario.value) + "'," + numerodecimali + ",0," + numerovarianti + ",'" + scriptorigine + "','0','" + ricaricapagina + "','" + idprodotto + "')");
							
							eDeleteHref.setAttribute("href", "javascript:mettinelcarrello('" + campoquantita.id + ":" + parseFloat(campoprezzounitario.value) + "'," + numerodecimali + ",0," + numerovarianti + ",'" + scriptorigine + "','0','" + ricaricapagina + "','" + idprodotto + "')");
							
							// DEBUG
							// eDeleteImg.setAttribute("onClick", "javascript:alert('pinco pallino')");

							}
						else
							{

							// DEBUG
							// alert("DISabilito la cancellazione");
							
							// GESTISCO L'IMMAGINE PER L'ELIMINAZIONE DEL PRODOTTO DAL CARRELLO
							var eDeleteHref = document.getElementById( "href_elimina_" + campoquantita.id );
							var eDeleteImg = document.getElementById( "img_elimina_" + campoquantita.id );
							eDeleteImg.src = "./images/delete_vuoto.gif";
							eDeleteImg.title = "";
							eDeleteImg.alt = "";
							
							// eDeleteImg.removeAttribute("onClick");
							eDeleteHref.removeAttribute("href");

							}

						// }
					
					// RIMUOVO TUTTE LE IMMAGINI CON IL SEGNO DI SPUNTA A CONFERMA DELL'AVVENUTA
					// VARIAZIONE DELLA QUANTITA' NEL CARRELLO IN QUANTO PER IL PRODOTTO EFFETTIVAMENTE VARIATO POI
					// LA METTO GIUSTA
						
					}
				}
		
			// SE LA ROUTINE E' PARTITA DALLA SCHEDA PRODOTTO
			if (scriptorigine == "schedaprodotto")
				{

				// DEBUG
				// alert("STO IN " + scriptorigine);
				
				// POPOLO IL CAMPO QUANTITA' TOTALE RIEPILOGATIVO PER TUTTE LE VARIANTI
				document.getElementById("quantita_totale").value = quantitatotale.toFixed(numerodecimali).toString();
				
				// POPOLO IL CAMPO IMPORTO TOTALE RIEPILOGATIVO PER TUTTE LE VARIANTI
				document.getElementById("quantita_totale_importo").value = importototale.toFixed(2).toString();
				
				// POPOLO IL CAMPO IMPORTO TOTALE RIEPILOGATIVO PER TUTTE LE VARIANTI
				if ( parseInt(usadisponibilita) > 0 )
					{
					document.getElementById("disponibile_totale").value = disponibiletotale.toFixed(numerodecimali).toString();
					}
				}


			// SVUOTO IL TBODY DEL RIEPILOGO
			var riepilogobody = document.getElementById("tbody_riepilogocarrello");			
			while( riepilogobody.hasChildNodes && riepilogobody.lastChild )
				{
				riepilogobody.removeChild(riepilogobody.lastChild);
				}
			
			var righeriepilogo = xmlDocument.getElementsByTagName('righeriepilogo').item(0).firstChild.data;
			
			var riepilogointestazione = document.getElementById("riepilogocarrello_intestazione");
			if ( righeriepilogo > 0)
				{
				riepilogointestazione.innerHTML = "<font class=\"testo_nero_peppe\">Hai nel carrello:</font>";
				}
			else
				{
				riepilogointestazione.innerHTML = "<font class='testo_nero_peppe'>Il carrello &egrave; vuoto</font>";
				}
			
			
			var urlsito = xmlDocument.getElementsByTagName('urlsito').item(0).firstChild.data;
			var schedaprodotto = xmlDocument.getElementsByTagName('schedaprodotto').item(0).firstChild.data;
			var htmlRiepilogo = "";
			for (var righe = 0; righe < righeriepilogo; righe++)
				{
				var riepilogoprodotto = xmlDocument.getElementsByTagName('riepilogoprodotto').item(righe).firstChild.data;
				
				// DEBUG
				// alert(riepilogoprodotto);
				
				// SPLITTO riepilogoprodotto AL CARATTERE ":"
				var aRiepilogoProdotto = riepilogoprodotto.split(":");
				
				// RICAVO I DATI NECESSARI PER L'AGGIORNAMENTO A VIDEO DEL RIEPILOGO
				var prodottoriepilogoid				= aRiepilogoProdotto[0];
				var prodottoriepilogocodiceinterno	= aRiepilogoProdotto[1];
				var prodottoriepilogotestoriga		= aRiepilogoProdotto[2];
			
				// DEBUG
				// alert(prodottoriepilogoid + "\n" + prodottoriepilogocodiceinterno + "\n" + prodottoriepilogotestoriga);			
			
				htmlRiepilogo  = "";
				htmlRiepilogo += "<tr id='tabella_riga_riepilogocarrello_" + prodottoriepilogocodiceinterno + "'>";
				htmlRiepilogo += "<tr id='tabella_cella_riepilogocarrello_" + prodottoriepilogocodiceinterno + "'>";
				htmlRiepilogo += "<font class='testo_nero_peppe'>";
				htmlRiepilogo += "<a href='" + urlsito + schedaprodotto + "?id=" + prodottoriepilogoid + "'>";
				htmlRiepilogo += prodottoriepilogotestoriga;
				htmlRiepilogo += "</a>";
				htmlRiepilogo += "</font>";
				htmlRiepilogo += "</td>";
				htmlRiepilogo += "</tr>";

				// AGGIUNGO UNA RIGA AL tbody
				var riepilogorow = document.createElement("tr");
				var riepilogocell = document.createElement("td");
				riepilogobody.appendChild(riepilogorow);
				riepilogorow.appendChild(riepilogocell);
				riepilogocell.innerHTML = htmlRiepilogo;
				
				/*
				
				print "<tr id=\"tabella_riga_riepilogocarrello_".$prodottoriepilogocodiceinterno."\">";
				print "<td id=\"tabella_cella_riepilogocarrello_".$prodottoriepilogocodiceinterno."\">";

				print "<font class=\"testo_nero_peppe\">";
				print "<a href=\"".$urlsito.$schedaprodotto."?id=".$prodottoriepilogoid."\">";
				$dummy = substr($prodottoriepilogodescrizione1,0,17);
				print $dummy;				
				print "</a>";
				print "... ";				
				print "(";
				print $prodottoriepilogoquantita;
				print ")";
				print "</font>";

				print "</td>";
				print "</tr>";
				
				*/
				
			
				}
			
			// CAMBIO IL CONTENUTO DELL'IMPORTO TOTALE DEL RIEPILOGO
			var importoriepilogo = xmlDocument.getElementsByTagName('importoriepilogo').item(0).firstChild.data;
			htmlRiepilogoImporto = "";
			if ( righeriepilogo > 0 )
				{
				htmlRiepilogoImporto += "<font class='testo_nero_peppe'>Importo &euro; <b>" + importoriepilogo  + "</b></font>";	
				}
			else
				{
				htmlRiepilogoImporto += "<font class='testo_nero_peppe'>&nbsp;</font>";	
				}
			var riepilogoimporto = document.getElementById("riepilogocarrello_importototale");			
			riepilogoimporto.innerHTML = htmlRiepilogoImporto;
				
			}
		else
			{
			// MOSTRO UN AVVISO A VIDEO
			alert("Operazione fallita!\n" + AjaxMessage);
			
			var IdCampo = xmlDocument.getElementsByTagName('campo').item(0).firstChild.data;
			var e = document.getElementById(IdCampo);
			e.className = "input_form_ordine_varianti_red";
			
			// POPOLO LA INPUT READONLY PER LA QUANTITA' TOTALE IN ORDINE PER IL PRODOTTO
			// CON LA NUOVA QUANTITA TOTALE IN ORDINE PER IL PRODOTTO
			e_quantita_totale.value = "ERRORE";

			// POPOLO LA INPUT READONLY PER L'IMPORTO TOTALE IN ORDINE PER IL PRODOTTO
			// CON IL NUOVO IMPORTO TOTALE IN ORDINE PER IL PRODOTTO
			e_quantita_totale_importo.value = "ERRORE";
			
			}
			
		// AJAX HA FINITO DI LAVORARE
		AJAXisWorking = false;
		
		// NASCONDO L'IMMAGINE DI ATTESA...
		ThisFineAttesa();

		return;
			
		}

	}

function scriviintestatario()
	{

	// DEVO LEGGERE TUTTI I CAMPI RELATIVI ALL'INTESTATARIO
	// PER COSTRUIRE LA QUERYSTRING DA PASSARE ALLO SCRIPT AJAX
	
	// IL PARAMETRO "caso" CON VALORE RANDOM VIENE USATO PER NON USARE LA CACHE DEL BROWSER
	var randvalue = Math.random() * 100;
	var queryajax = "?caso=" + randvalue.toString();
	
	// ID INTESTATARIO FATTURA
	var e = document.getElementById("intestatariofatturaid");
	queryajax += "&id=" + e.value;
	
	// UTENTE A CUI E' LEGATO L'INTESTATARIO FATTURA
	// LO RICAVERO' NELLO SCRIPT AJAX DALLA VARIABILE SETTATA NELL'INIT $utente_username
	queryajax += "&utente=";
	
	// DESCRIZIONE 1 INTESTATARIO FATTURA
	e = document.getElementById("intestatariofatturadescrizione1");
	queryajax += "&descrizione1=" + e.value;
	// e.setAttribute("readOnly",true);
	
	// DESCRIZIONE 2 INTESTATARIO FATTURA
	e = document.getElementById("intestatariofatturadescrizione2");
	queryajax += "&descrizione2=" + e.value;
	// e.setAttribute("readOnly",true);
	
	// INDIRIZZO 1 INTESTATARIO FATTURA
	e = document.getElementById("intestatariofatturaindirizzo1");
	queryajax += "&indirizzo1=" + e.value;
	// e.setAttribute("readOnly",true);
	
	// INDIRIZZO 2 INTESTATARIO FATTURA
	e = document.getElementById("intestatariofatturaindirizzo2");
	queryajax += "&indirizzo2=" + e.value;
	// e.setAttribute("readOnly",true);
	
	// CAP INTESTATARIO FATTURA
	e = document.getElementById("intestatariofatturacap");
	queryajax += "&cap=" + e.value;
	// e.setAttribute("readOnly",true);

	// CITTA' INTESTATARIO FATTURA
	e = document.getElementById("intestatariofatturacitta");
	queryajax += "&citta=" + e.value;
	// e.setAttribute("readOnly",true);
	
	// STATO (NAZIONE) INTESTATARIO FATTURA
	e = document.getElementById("intestatariofatturastato");
	queryajax += "&nazione=" + e.value;
	// e.setAttribute("readOnly",true);
	
	// PROVINCIA INTESTATARIO FATTURA
	e = document.getElementById("intestatariofatturaprovincia");
	queryajax += "&provincia=" + e.value;
	// e.setAttribute("readOnly",true);
	
	// PARTITA IVA INTESTATARIO FATTURA
	e = document.getElementById("intestatariofatturapartitaiva");
	queryajax += "&partitaiva=" + e.value;
	// e.setAttribute("readOnly",true);
	
	// CODICE FISCALE INTESTATARIO FATTURA
	e = document.getElementById("intestatariofatturacodicefiscale");
	queryajax += "&codicefiscale=" + e.value;
	// e.setAttribute("readOnly",true);
	
	// DEBUG
	// alert(queryajax);

	// DEBUG PROMEMORIA
	// alert("L'IMMAGINE E IL SUO LINK DEVONO TORNARE A SALVA-MODIFICA");

	// LINK "INSERISCI NUOVO"
	var l = document.getElementById("href_ins_nuovo_intestatario");
	// l.setAttribute("href", "javascript:clicnuovointestatariofattura()");			
	
	// IMMAGINE "INSERISCI NUOVO"
	var i = document.getElementById("img_ins_nuovo_intestatario");
	// i.src = "./images/ins_nuovo_intestatario.gif";

	// LINK "SALVA-MODIFICA"
	var l = document.getElementById("href_salva_modifica_intestatario");
	// l.setAttribute("href", "javascript:clicmodificaintestatario()");			
	
	// IMMAGINE "SALVA-MODIFICA"
	var i = document.getElementById("img_salva_modifica_intestatario");
	// i.src = "./images/modifica_nuovo_intestatario.gif";
	
	// LINK "PROSEGUI"
	var l = document.getElementById("href_prosegui_intestatario");
	// l.setAttribute("href", "javascript:visualizzadestinazione()");			
	
	// IMMAGINE "PROSEGUI"
	var i = document.getElementById("img_prosegui_intestatario");
	// i.src = "./images/1_prosegui.gif";
	
	// SE NON E' GIA' IN CORSO UNA ELABORAZIONE SERVER-SIDE
	// (MyHttp lo dichiaro in scripts.js)
	if (!AJAXisWorking && MyHttp)
		{

		// VISUALIZZO L'IMMAGINE DI ATTESA...
		ThisInizioAttesa();

		// AVVIO LA TRANSAZIONE AJAX
		MyHttp.open("GET", "./ajax/scriviintestatario.php" + queryajax, true);
			
		// AL CAMBIAMENTO DI STATO DELL'OGGETTO http AVVIA LA GESTIONE DELLO STESSO
		MyHttp.onreadystatechange = handleMyHttpScriviIntestatario;
				
		// IMPOSTA IL FLAG IN MODO CHE TUTTO JAVASCRIPT SAPPIA CHE E' IN CORSO UNA ELABORAZIONE SERVER-SIDE
		// E CHE DEVE ATTENDERE LA SUA CONCLUSIONE PRIMA DI POTERNE AVVIARE UN'ALTRA
		AJAXisWorking = true;
			
		// TERMINA LA TRANSAZIONE AJAX
		MyHttp.send(null);
		
		}
	else
		{
		
		// NASCONDO L'IMMAGINE DI ATTESA...
		ThisFineAttesa();
		
		return false;
		}
	
	}

function handleMyHttpScriviIntestatario()
	{

	// SE L'OGGETTO MyHttp E' IN UNA SITUAZIONE CHE NE CONSENTE L'ELABORAZIONE
	if (MyHttp.readyState == 4)
		{

		// LA RISPOSTA FORNITA DALLO SCRIPT PHP SERVER SIDE SI TROVA IN http.responseText
		var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;

		// USO XML DOM PER RICAVARE I DATI DI MIO INTERESSE DALLA RISPOSTA RICEVUTA DAL SERVER
		// CHE E' IN FORMATO XML ED E' CONTENUTA IN http.responseText
		var xmlDocument = MyHttp.responseXML; 
		
		// DEBUG
		alert("handleMyHttpScriviIntestatario\n" + MyHttp.responseText + "\n****");
	   
		// CODICE NUMERICO PER L'ESITO DELL'ELABORAZIONE
		var stato = xmlDocument.getElementsByTagName('stato').item(0).firstChild.data;

		// DESCRIZIONE DELL'ESITO DELL'ELABORAZIONE
		var AjaxMessage = xmlDocument.getElementsByTagName('descrizione').item(0).firstChild.data;
	
		// SE LA RISPOSTA AJAX E' OK
		if (stato == "0")
			{

			// MOSTRO UN AVVISO A VIDEO
			alert("Operazione riuscita!\n" + AjaxMessage);
			
			// CODICE NUMERICO PER L'ESITO DELL'ELABORAZIONE
			var operazione = xmlDocument.getElementsByTagName('operazione').item(0).firstChild.data;

			if ( operazione == "INSERT" )
				{
				// SE SI E' TRATTATO DI UN INSERIMENTO...				
				// POPOLO IL CAMPO HIDDEN PER L'ID CHE GLI E' STATO ASSEGNATO
				var nuovoid = xmlDocument.getElementsByTagName('nuovoid').item(0).firstChild.data;
				var e = document.getElementById("intestatariofatturaid");
				e.value = nuovoid;
				
				}
			else
				{
				// SE SI E' TRATTATO DI UN UPDATE...
				// POPOLO I CAMPI HIDDEN RELATIVI UTILIZZANDO L'ID SU CUI SI E' LAVORATO
				var id = xmlDocument.getElementsByTagName('id').item(0).firstChild.data;
				
				var e = document.getElementById("hidden_intestatariofatturadescrizione1_" + id);
				e.value = xmlDocument.getElementsByTagName('descrizione1').item(0).firstChild.data.substring(1);
				
				var e = document.getElementById("hidden_intestatariofatturadescrizione2_" + id);
				e.value = xmlDocument.getElementsByTagName('descrizione2').item(0).firstChild.data.substring(1);
				
				var e = document.getElementById("hidden_intestatariofatturaindirizzo1_" + id);
				e.value = xmlDocument.getElementsByTagName('indirizzo1').item(0).firstChild.data.substring(1);
				
				var e = document.getElementById("hidden_intestatariofatturaindirizzo2_" + id);
				e.value = xmlDocument.getElementsByTagName('indirizzo2').item(0).firstChild.data.substring(1);
				
				var e = document.getElementById("hidden_intestatariofatturacap_" + id);
				e.value = xmlDocument.getElementsByTagName('cap').item(0).firstChild.data.substring(1);
				
				var e = document.getElementById("hidden_intestatariofatturacitta_" + id);
				e.value = xmlDocument.getElementsByTagName('citta').item(0).firstChild.data.substring(1);

				var e = document.getElementById("hidden_intestatariofatturastato_" + id);
				e.value = xmlDocument.getElementsByTagName('nazione').item(0).firstChild.data.substring(1);
				
				var e = document.getElementById("hidden_intestatariofatturaprovincia_" + id);
				e.value = xmlDocument.getElementsByTagName('provincia').item(0).firstChild.data.substring(1);
				
				var e = document.getElementById("hidden_intestatariofatturapartitaiva_" + id);
				e.value = xmlDocument.getElementsByTagName('partitaiva').item(0).firstChild.data.substring(1);
				
				var e = document.getElementById("hidden_intestatariofatturacodicefiscale_" + id);
				e.value = xmlDocument.getElementsByTagName('codicefiscale').item(0).firstChild.data.substring(1);
				
				}
			
			// DEBUG
			alert("SE SI E' TRATTATO DI UN INSERIMENTO DEVO POPOLARE IL CAMPO CON L'ID ASSEGNATO AL RECORD\nE IN OGNI CASO DEVO RIPOPOLARE TUTTE LE INPUT NASCOSTE!!");
			
			// DEBUG
			alert("ADESSO RICARICO BRUTALMENTE, MA POSSO POPOLARE CON DOM I CAMPI");
			
			document.location = "carrelloconvarianti.php";
			
			}
		else
			{

			// RICAVO IL NUMERO DI CAMPI PER I QUALI IL CONTROLLO E' FALLITI
			var numerocampifalliti = xmlDocument.getElementsByTagName('numerocampifalliti').item(0).firstChild.data;

			for ( var countercampifalliti = 0; countercampifalliti < numerocampifalliti; countercampifalliti++)
				{
				// EVIDENZIO IL CAMPO IL CUI CONTROLLO E' FALLITO
				var campofallito = xmlDocument.getElementsByTagName('campofallito').item(countercampifalliti).firstChild.data;
				document.getElementById("intestatariofattura" + campofallito).className = "input_form_peppe_red";				
				}

			// DEBUG
			alert("IMG PROSEGUI DISABILITATA\nIMG SALVA DEVE RESTARE SALVA\nI CAMPI DEVONO RESTARE ABILITATI\nI CAMPI ERRATI DEVONO ESSERE ROSSI");
			
			// MOSTRO UN AVVISO A VIDEO
			alert("Operazione fallita!\n" + AjaxMessage);
			}
			
		// AJAX HA FINITO DI LAVORARE
		AJAXisWorking = false;
		
		// NASCONDO L'IMMAGINE DI ATTESA...
		ThisFineAttesa();
		
		return;
			
		}

	}
	
function scrividestinazione()
	{

	// DEVO LEGGERE TUTTI I CAMPI RELATIVI ALLA DESTINAZIONE
	// PER COSTRUIRE LA QUERYSTRING DA PASSARE ALLO SCRIPT AJAX
	
	// IL PARAMETRO "caso" CON VALORE RANDOM VIENE USATO PER NON USARE LA CACHE DEL BROWSER
	var randvalue = Math.random() * 100;
	var queryajax = "?caso=" + randvalue.toString();
	
	// ID DESTINAZIONE
	var e = document.getElementById("destinazioneid");
	queryajax += "&id=" + e.value;
	
	// UTENTE A CUI E' LEGATA LA DESTINAZIONE
	// LO RICAVERO' NELLO SCRIPT AJAX DALLA VARIABILE SETTATA NELL'INIT $utente_username
	queryajax += "&utente=";
	
	// DESCRIZIONE 1 DESTINAZIONE
	e = document.getElementById("destinazionedescrizione1");
	queryajax += "&descrizione1=" + e.value;
	// e.setAttribute("readOnly",true);
	
	// DESCRIZIONE 2 DESTINAZIONE
	e = document.getElementById("destinazionedescrizione2");
	queryajax += "&descrizione2=" + e.value;
	// e.setAttribute("readOnly",true);
	
	// INDIRIZZO 1 DESTINAZIONE
	e = document.getElementById("destinazioneindirizzo1");
	queryajax += "&indirizzo1=" + e.value;
	// e.setAttribute("readOnly",true);
	
	// INDIRIZZO 2 DESTINAZIONE
	e = document.getElementById("destinazioneindirizzo2");
	queryajax += "&indirizzo2=" + e.value;
	// e.setAttribute("readOnly",true);
	
	// CAP DESTINAZIONE
	e = document.getElementById("destinazionecap");
	queryajax += "&cap=" + e.value;
	// e.setAttribute("readOnly",true);

	// CITTA' DESTINAZIONE
	e = document.getElementById("destinazionecitta");
	queryajax += "&citta=" + e.value;
	// e.setAttribute("readOnly",true);
	
	// STATO (NAZIONE) DESTINAZIONE
	e = document.getElementById("destinazionestato");
	queryajax += "&nazione=" + e.value;
	// e.setAttribute("readOnly",true);
	
	// PROVINCIA DESTINAZIONE
	e = document.getElementById("destinazioneprovincia");
	queryajax += "&provincia=" + e.value;
	// e.setAttribute("readOnly",true);
	
	// DEBUG
	// alert(queryajax);

	// DEBUG PROMEMORIA
	// alert("DESTINAZIONE: L'IMMAGINE E IL SUO LINK DEVONO TORNARE A SALVA-MODIFICA");

	// LINK "INSERISCI NUOVA"
	var l = document.getElementById("href_ins_nuova_destinazione");
	// l.setAttribute("href", "javascript:clicnuovadestinazione()");			
	
	// IMMAGINE "INSERISCI NUOVA"
	var i = document.getElementById("img_ins_nuova_destinazione");
	// i.src = "./images/ins_nuova_destinazione.gif";

	// LINK "SALVA-MODIFICA"
	var l = document.getElementById("href_salva_modifica_destinazione");
	// l.setAttribute("href", "javascript:clicmodificadestinazione()");			
	
	// IMMAGINE "SALVA-MODIFICA"
	var i = document.getElementById("img_salva_modifica_destinazione");
	// i.src = "./images/modifica_nuova_destinazione.gif";
	
	// LINK "PROSEGUI"
	var l = document.getElementById("href_prosegui_destinazione");
	// l.setAttribute("href", "javascript:visualizzaconsegna()");			
	
	// IMMAGINE "PROSEGUI"
	var i = document.getElementById("img_prosegui_destinazione");
	// i.src = "./images/1_prosegui.gif";
	
	// SE NON E' GIA' IN CORSO UNA ELABORAZIONE SERVER-SIDE
	// (MyHttp lo dichiaro in scripts.js)
	if (!AJAXisWorking && MyHttp)
		{

		// VISUALIZZO L'IMMAGINE DI ATTESA...
		ThisInizioAttesa();

		// AVVIO LA TRANSAZIONE AJAX
		MyHttp.open("GET", "./ajax/scrividestinazione.php" + queryajax, true);
			
		// AL CAMBIAMENTO DI STATO DELL'OGGETTO http AVVIA LA GESTIONE DELLO STESSO
		MyHttp.onreadystatechange = handleMyHttpScriviDestinazione;
				
		// IMPOSTA IL FLAG IN MODO CHE TUTTO JAVASCRIPT SAPPIA CHE E' IN CORSO UNA ELABORAZIONE SERVER-SIDE
		// E CHE DEVE ATTENDERE LA SUA CONCLUSIONE PRIMA DI POTERNE AVVIARE UN'ALTRA
		AJAXisWorking = true;
			
		// TERMINA LA TRANSAZIONE AJAX
		MyHttp.send(null);
		
		}
	else
		{
		
		// NASCONDO L'IMMAGINE DI ATTESA...
		ThisFineAttesa();
		
		return false;
		}
	
	}

function handleMyHttpScriviDestinazione()
	{

	// SE L'OGGETTO MyHttp E' IN UNA SITUAZIONE CHE NE CONSENTE L'ELABORAZIONE
	if (MyHttp.readyState == 4)
		{

		// LA RISPOSTA FORNITA DALLO SCRIPT PHP SERVER SIDE SI TROVA IN http.responseText
		var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;

		// USO XML DOM PER RICAVARE I DATI DI MIO INTERESSE DALLA RISPOSTA RICEVUTA DAL SERVER
		// CHE E' IN FORMATO XML ED E' CONTENUTA IN http.responseText
		var xmlDocument = MyHttp.responseXML; 
		
		// DEBUG
		alert("handleMyHttpScriviDestinazione\n" + MyHttp.responseText + "\n****");
	   
		// CODICE NUMERICO PER L'ESITO DELL'ELABORAZIONE
		var stato = xmlDocument.getElementsByTagName('stato').item(0).firstChild.data;

		// DESCRIZIONE DELL'ESITO DELL'ELABORAZIONE
		var AjaxMessage = xmlDocument.getElementsByTagName('descrizione').item(0).firstChild.data;
	
		// SE LA RISPOSTA AJAX E' OK
		if (stato == "0")
			{

			// MOSTRO UN AVVISO A VIDEO
			alert("Operazione riuscita!\n" + AjaxMessage);
			
			// CODICE NUMERICO PER L'ESITO DELL'ELABORAZIONE
			var operazione = xmlDocument.getElementsByTagName('operazione').item(0).firstChild.data;

			if ( operazione == "INSERT" )
				{
				// SE SI E' TRATTATO DI UN INSERIMENTO...				
				// POPOLO IL CAMPO HIDDEN PER L'ID CHE GLI E' STATO ASSEGNATO
				var nuovoid = xmlDocument.getElementsByTagName('nuovoid').item(0).firstChild.data;
				var e = document.getElementById("destinazioneid");
				e.value = nuovoid;
				
				}
			else
				{
				// SE SI E' TRATTATO DI UN UPDATE...
				// POPOLO I CAMPI HIDDEN RELATIVI UTILIZZANDO L'ID SU CUI SI E' LAVORATO
				var id = xmlDocument.getElementsByTagName('id').item(0).firstChild.data;
				
				var e = document.getElementById("hidden_destinazionedescrizione1_" + id);
				e.value = xmlDocument.getElementsByTagName('descrizione1').item(0).firstChild.data.substring(1);
				
				var e = document.getElementById("hidden_destinazionedescrizione2_" + id);
				e.value = xmlDocument.getElementsByTagName('descrizione2').item(0).firstChild.data.substring(1);
				
				var e = document.getElementById("hidden_destinazioneindirizzo1_" + id);
				e.value = xmlDocument.getElementsByTagName('indirizzo1').item(0).firstChild.data.substring(1);
				
				var e = document.getElementById("hidden_destinazioneindirizzo2_" + id);
				e.value = xmlDocument.getElementsByTagName('indirizzo2').item(0).firstChild.data.substring(1);
				
				var e = document.getElementById("hidden_destinazionecap_" + id);
				e.value = xmlDocument.getElementsByTagName('cap').item(0).firstChild.data.substring(1);
				
				var e = document.getElementById("hidden_destinazionecitta_" + id);
				e.value = xmlDocument.getElementsByTagName('citta').item(0).firstChild.data.substring(1);

				var e = document.getElementById("hidden_destinazionestato_" + id);
				e.value = xmlDocument.getElementsByTagName('nazione').item(0).firstChild.data.substring(1);
				
				var e = document.getElementById("hidden_destinazioneprovincia_" + id);
				e.value = xmlDocument.getElementsByTagName('provincia').item(0).firstChild.data.substring(1);
				
				}
			
			// DEBUG
			alert("SE SI E' TRATTATO DI UN INSERIMENTO DEVO POPOLARE IL CAMPO CON L'ID ASSEGNATO AL RECORD\nE IN OGNI CASO DEVO RIPOPOLARE TUTTE LE INPUT NASCOSTE!!");
			
			// DEBUG
			alert("ADESSO RICARICO BRUTALMENTE, MA POSSO POPOLARE CON DOM I CAMPI");
			
			document.location = "carrelloconvarianti.php";
			
			}
		else
			{
			
			// RICAVO IL NUMERO DI CAMPI PER I QUALI IL CONTROLLO E' FALLITI
			var numerocampifalliti = xmlDocument.getElementsByTagName('numerocampifalliti').item(0).firstChild.data;

			for ( var countercampifalliti = 0; countercampifalliti < numerocampifalliti; countercampifalliti++)
				{
				// EVIDENZIO IL CAMPO IL CUI CONTROLLO E' FALLITO
				var campofallito = xmlDocument.getElementsByTagName('campofallito').item(countercampifalliti).firstChild.data;
				document.getElementById("destinazione" + campofallito).className = "input_form_peppe_red";				
				}

			// DEBUG
			alert("IMG PROSEGUI DISABILITATA\nIMG SALVA DEVE RESTARE SALVA\nI CAMPI DEVONO RESTARE ABILITATI\nI CAMPI ERRATI DEVONO ESSERE ROSSI");
			
			
			// MOSTRO UN AVVISO A VIDEO
			alert("Operazione fallita!\n" + AjaxMessage);
			}
			
		// AJAX HA FINITO DI LAVORARE
		AJAXisWorking = false;
		
		// NASCONDO L'IMMAGINE DI ATTESA...
		ThisFineAttesa();
		
		return;
			
		}

	}

// L'ID PASSATO E' QUELLO DEL VETTORE
// IL COSTO PASSATO E' QUELLO DI BASE DEL VETTORE
function clicvettore(cId,cCostoBase,cCostoMerceConsegna)
		{
		
		// VARIABILE PER I CICLI SUI RADIO DEI VETTORI
		var r = 0;
		
		// DEBUG
		// alert(cId + " " + cCostoBase);
		
		// RICAVO TUTTI I RADIO PER LA SELEZIONE VETTORE
		var aNascondere = document.getElementsByName("radio_vettore");
		
		// CONTROLLO OGNI RADIO PER LA SELEZIONE VETTORE
		for (var r = 0; r < aNascondere.length; r++)
			{
			
			// NASCONDO LA RELATIVA INPUT
			// document.getElementById("input_riepilogo_importo_vettore_" + aNascondere[r].value).type = "hidden";
			document.getElementById("input_riepilogo_importo_vettore_" + aNascondere[r].value).className = "input_form_ordine_riepilogo_bianco";
				

			}

		// VISUALIZZO QUELLA PER IL VETTORE CON L'ID PASSATO
		// E LA POPOLO CON IL VALORE cCostoBase
		// CONTROLLO OGNI RADIO PER LA SELEZIONE VETTORE
		for (var r = 0; r < aNascondere.length; r++)
			{
			if (aNascondere[r].value == cId)
				{
				
				// DEBUG
				// alert("Visualizzo input_riepilogo_importo_vettore_" + aNascondere[r].value);
				
				// SE IL RADIO E' RIFERITO AL VETTORE SELEZIONATO
				// VISUALIZZO LA RELATIVA INPUT READONLY
				// document.getElementById("input_riepilogo_importo_vettore_" + aNascondere[r].value).type = "text";
				document.getElementById("input_riepilogo_importo_vettore_" + aNascondere[r].value).className = "input_form_ordine_riepilogo";

				// POPOLO LA INPUT NASCOSTA PER IL COSTO VETTORE SELEZIONATO
				// CON cCostoBAse
				document.getElementById("input_riepilogo_importo_vettore_selezionato").value = cCostoBase;
				
				// POPOLO LA INPUT PER L'IMPORTO MERCE + IL COSTO VETTORE SELEZIONATO
				// CON cCostoMerceConsegna
				document.getElementById("input_riepilogo_importo_merce_consegna").value = cCostoMerceConsegna;

				// LEGGO LA INPUT NASCOSTA PER IL COSTO PAGAMENTO
				cCostoPagamentoSelezionato = document.getElementById("input_riepilogo_importo_pagamento_selezionato").value;
				
				// POPOLO LA INPUT PER L'IMPORTO MERCE + IL COSTO VETTORE SELEZIONATO + IL COSTO PAGAMENTO SELEZIONATO
				// CON cCostoMerceConsegna
				nCostoMerceConsegnaPagamento = parseFloat(cCostoPagamentoSelezionato) + parseFloat(cCostoMerceConsegna);
				nCostoMerceConsegnaPagamento = nCostoMerceConsegnaPagamento.toFixed(2);
				
				document.getElementById("input_riepilogo_importo_merce_consegna_pagamento").value = nCostoMerceConsegnaPagamento;
	
				}
			}
			
		controllavettorepagamento();
			
		}
		
// L'ID PASSATO E' QUELLO DEL VETTORE
// IL COSTO PASSATO E' QUELLO DI BASE DEL PAGAMENTO
function clicpagamento(cId,cCostoBase)
		{
		
		// VARIABILE PER I CICLI SUI RADIO DEI PAGAMENTI
		var r = 0;
		
		// DEBUG
		// alert(cId + " " + cCostoBase);
		
		// RICAVO TUTTI I RADIO PER LA SELEZIONE PAGAMENTO
		var aNascondere = document.getElementsByName("radio_pagamento");
		
		// CONTROLLO OGNI RADIO PER LA SELEZIONE PAGAMENTO
		for (var r = 0; r < aNascondere.length; r++)
			{

			// DEBUG
			// alert("Nascondo input_riepilogo_importo_pagamento_" + aNascondere[r].value);
				
			// NASCONDO LA RELATIVA INPUT READONLY
			// document.getElementById("input_riepilogo_importo_pagamento_" + aNascondere[r].value).type = "hidden";
			document.getElementById("input_riepilogo_importo_pagamento_" + aNascondere[r].value).className = "input_form_ordine_riepilogo_bianco";

			}

		// VISUALIZZO QUELLA PER IL PAGAMENTO CON L'ID PASSATO
		// E LA POPOLO CON IL VALORE cCostoBase
		// CONTROLLO OGNI RADIO PER LA SELEZIONE PAGAMENTO
		for (var r = 0; r < aNascondere.length; r++)
			{
			if (aNascondere[r].value == cId)
				{
				
				// DEBUG
				// alert("Visualizzo input_riepilogo_importo_pagamento_" + aNascondere[r].value);
				
				// SE IL RADIO E' RIFERITO AL PAGAMENTO SELEZIONATO
				// VISUALIZZO LA RELATIVA INPUT READONLY
				// document.getElementById("input_riepilogo_importo_pagamento_" + aNascondere[r].value).type = "text";
				document.getElementById("input_riepilogo_importo_pagamento_" + aNascondere[r].value).className = "input_form_ordine_riepilogo";
				

				// POPOLO LA INPUT NASCOSTA PER IL COSTO PAGAMENTO SELEZIONATO
				// CON cCostoBAse
				document.getElementById("input_riepilogo_importo_pagamento_selezionato").value = cCostoBase;
				cCostoMerceConsegna = document.getElementById("input_riepilogo_importo_merce_consegna").value;
				
				// POPOLO LA INPUT PER L'IMPORTO MERCE + IL COSTO VETTORE SELEZIONATO + IL COSTO PAGAMENTO SELEZIONATO
				// CON cCostoMerceConsegna
				nCostoMerceConsegnaPagamento = parseFloat(cCostoBase) + parseFloat(cCostoMerceConsegna);
				nCostoMerceConsegnaPagamento = nCostoMerceConsegnaPagamento.toFixed(2);
				
				document.getElementById("input_riepilogo_importo_merce_consegna_pagamento").value = nCostoMerceConsegnaPagamento;
				
				}
			}
			
		controllavettorepagamento();
			
		}
	
	
function controllavettorepagamento()
	{
	
	// FLAG PER SAPERE SE E' STATO SELEZIONATO UNO DEI PAGAMENTI POSSIBILI
	var flagpagamento = false;
	
	// FLAG PER SAPERE SE E' STATO SELEZIONATO UNO DEI VETTORI POSSIBILI
	var flagvettore = false;
	
	// RICAVO TUTTI I RADIO PER LA SELEZIONE PAGAMENTO
	var aRadioPagamenti = document.getElementsByName("radio_pagamento");
	
	// CONTROLLO OGNI RADIO PER LA SELEZIONE PAGAMENTO
	for (var r = 0; r < aRadioPagamenti.length; r++)
		{

		if (aRadioPagamenti[r].checked)
			{
			flagpagamento = true;
			break;
			}
		}
		
	// RICAVO TUTTI I RADIO PER LA SELEZIONE VETTORE
	var aRadioVettori = document.getElementsByName("radio_vettore");
	
	// CONTROLLO OGNI RADIO PER LA SELEZIONE VETTORE
	for (r = 0; r < aRadioVettori.length; r++)
		{

		if (aRadioVettori[r].checked)
			{
			flagvettore = true;			
			break;
			}
		}

	if ( flagpagamento && flagvettore)
		{
		
		// DEBUG
		// alert("Posso abilitare invio ordine!!!!!!");
		
		document.getElementById("img_prosegui_vettore").src = "./images/1_prosegui.gif";

		var hrefProsegui = document.getElementById("href_prosegui_vettore");
		// hrefProsegui.setAttribute("href", "javascript:alert('posso salvare e spedire ordine')");
		hrefProsegui.setAttribute("href", "javascript:salvaordinevarianti()");
		
		}
		
	}
	
function clictipodocumento()
	{
	
	// ARRAY CON I RADIO PER SI/NO FATTURA
	var a = document.getElementsByName("radio_tipodocumento");
	
	// RIGA CHE CONTIENE I DATI PER L'INTESTAZIONE DELL'EVENTUALE FATTURA
	var t_intestazione = document.getElementById("tabella_generale_intestatariodocumento");

	// RIGA CHE CONTIENE I DATI PER LA DESTINAZIONE MERCE
	var t_destinazione = document.getElementById("tabella_generale_destinazione");
	
	// RIGA CHE CONTIENE I DATI PER VETTORE PAGAMENTO
	var t_vettore = document.getElementById("tabella_generale_vettore");
	
	// CONTROLLO TUTTI I RADIO PER SI/NO FATTURA
	for ( var n = 0; n < a.length; n++)
		{

		// SE IL RADIO E' SELEZIONATO E VALE SI VOGLIO LA FATTURA...
		if ( (a[n].checked) && (a[n].value == "FATTURA") )
			{
			// VISUALIZZO LA TABELLA PER L'INTESTAZIONE DELLA FATTURA
			t_intestazione.className = "zonaVisibile";
			
			// NASCONDO LA TABELLA PER LA DESTINAZIONE
			t_destinazione.className = "zonaNascosta";
			
			// NASCONDO LA TABELLA PER VETTORE PAGAMENTO
			t_vettore.className = "zonaNascosta";
			
			// POSIZIONO CORRETTAMENTE LA SCHERMATA
			document.location = "#a_intestatariofattura";
			
			}
			
		// SE IL RADIO E' SELEZIONATO E VALE NO NON VOGLIO LA FATTURA...
		if ( (a[n].checked) && (a[n].value == "SCONTRINO") )
			{
			// NASCONDO LA TABELLA PER L'INTESTAZIONE DELLA FATTURA
			t_intestazione.className = "zonaNascosta";

			// VISUALIZZO LA TABELLA PER LA DESTINAZIONE
			t_destinazione.className = "zonaVisibile";
			
			// NASCONDO LA TABELLA PER VETTORE PAGAMENTO
			t_vettore.className = "zonaNascosta";
			
			}

		}
	}	

function clicintestatariofattura(cId)
	{

	// LINK "INSERISCI NUOVO"
	var l = document.getElementById("href_ins_nuovo_intestatario");
	l.setAttribute("href", "javascript:clicnuovointestatariofattura()");			
	
	// IMMAGINE "INSERISCI NUOVO"
	var i = document.getElementById("img_ins_nuovo_intestatario");
	i.src = "./images/ins_nuovo_intestatario.gif";
	
	// LINK "SALVA-MODIFICA"
	var l = document.getElementById("href_salva_modifica_intestatario");
	l.setAttribute("href", "javascript:clicmodificaintestatario()");			
	
	// IMMAGINE "SALVA-MODIFICA"
	var i = document.getElementById("img_salva_modifica_intestatario");
	i.src = "./images/modifica_nuovo_intestatario.gif";

	// LINK "PROSEGUI"
	var l = document.getElementById("href_prosegui_intestatario");
	l.setAttribute("href", "javascript:visualizzadestinazione()");			
	
	// IMMAGINE "PROSEGUI"
	var i = document.getElementById("img_prosegui_intestatario");
	i.src = "./images/1_prosegui.gif";

	// ***********************
	
	// CAMPO HIDDEN CHE CONTIENE L'ID DELL'INTESTATARIO SELEZIONATO
	var h = document.getElementById("hidden_intestatariofatturaid_" + cId);
	
	// CAMPO HIDDEN CHE CONTIENE L'ID DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	var v = document.getElementById("intestatariofatturaid");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;
	
	// ***********************

	// CAMPO HIDDEN CHE CONTIENE LA DESCRIZIONE 1 DELL'INTESTATARIO SELEZIONATO
	h = document.getElementById("hidden_intestatariofatturadescrizione1_" + cId);
	
	// CAMPO VISIBILE CHE CONTIENE LA DESCRIZIONE 1 DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturadescrizione1");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// IMPOSTO IL READONLY
	v.setAttribute("readOnly",true);
	
	// ***********************
	
	// CAMPO HIDDEN CHE CONTIENE LA DESCRIZIONE 2 DELL'INTESTATARIO SELEZIONATO
	h = document.getElementById("hidden_intestatariofatturadescrizione2_" + cId);
	
	// CAMPO VISIBILE CHE CONTIENE LA DESCRIZIONE 2 DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturadescrizione2");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;
	
	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// IMPOSTO IL READONLY
	v.setAttribute("readOnly",true);
	
	// ***********************
	
	// CAMPO HIDDEN CHE CONTIENE L'INDIRIZZO 1 DELL'INTESTATARIO SELEZIONATO
	h = document.getElementById("hidden_intestatariofatturaindirizzo1_" + cId);
	
	// CAMPO VISIBILE CHE CONTIENE L'INDIRIZZO 1 DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturaindirizzo1");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// IMPOSTO IL READONLY
	v.setAttribute("readOnly",true);
	
	// ***********************
	
	// CAMPO HIDDEN CHE CONTIENE L'INDIRIZZO 2 DELL'INTESTATARIO SELEZIONATO
	h = document.getElementById("hidden_intestatariofatturaindirizzo2_" + cId);
	
	// CAMPO VISIBILE CHE CONTIENE L'INDIRIZZO 2 DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturaindirizzo2");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;
	
	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// IMPOSTO IL READONLY
	v.setAttribute("readOnly",true);
	
	// ***********************
	
	// CAMPO HIDDEN CHE CONTIENE IL CAP DELL'INTESTATARIO SELEZIONATO
	h = document.getElementById("hidden_intestatariofatturacap_" + cId);
	
	// CAMPO VISIBILE CHE CONTIENE IL CAP DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturacap");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// IMPOSTO IL READONLY
	v.setAttribute("readOnly",true);
	
	// ***********************

	// CAMPO HIDDEN CHE CONTIENE LA CITTA' DELL'INTESTATARIO SELEZIONATO
	h = document.getElementById("hidden_intestatariofatturacitta_" + cId);
	
	// CAMPO VISIBILE CHE CONTIENE LA CITTA' DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturacitta");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// IMPOSTO IL READONLY
	v.setAttribute("readOnly",true);
	
	// ***********************
	
	// CAMPO HIDDEN CHE CONTIENE LO STATO DELL'INTESTATARIO SELEZIONATO
	h = document.getElementById("hidden_intestatariofatturastato_" + cId);
	
	// CAMPO VISIBILE CHE CONTIENE LO STATO DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturastato");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// IMPOSTO IL READONLY
	v.setAttribute("readOnly",true);
	
	// ***********************

	// CAMPO HIDDEN CHE CONTIENE LA PROVINCIA DELL'INTESTATARIO SELEZIONATO
	h = document.getElementById("hidden_intestatariofatturaprovincia_" + cId);
	
	// CAMPO VISIBILE CHE CONTIENE LA PROVINCIA DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturaprovincia");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// IMPOSTO IL READONLY
	v.setAttribute("readOnly",true);
	
	// ***********************
	
	// CAMPO HIDDEN CHE CONTIENE LA PARTITA IVA DELL'INTESTATARIO SELEZIONATO
	h = document.getElementById("hidden_intestatariofatturapartitaiva_" + cId);
	
	// CAMPO VISIBILE CHE CONTIENE LA PARTITA IVA DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturapartitaiva");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// IMPOSTO IL READONLY
	v.setAttribute("readOnly",true);
	
	// ***********************

	// CAMPO HIDDEN CHE CONTIENE IL CODICE FISCALE DELL'INTESTATARIO SELEZIONATO
	h = document.getElementById("hidden_intestatariofatturacodicefiscale_" + cId);
	
	// CAMPO VISIBILE CHE CONTIENE IL CODICE FISCALE DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturacodicefiscale");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// IMPOSTO IL READONLY
	v.setAttribute("readOnly",true);

	// ***********************
	
	// VISUALIZZO LA CELLA CONTENENTE LE INPUT PER I DATI DELL'INTESTATARIO
	var c = document.getElementById("tabella_generale_intestatariodocumento_cella_nuovo");
	c.className = "zonaVisibile";
	
	// POSIZIONO CORRETTAMENTE LA SCHERMATA
	document.location = "#a_intestatariofattura";
	
	// ***********************

	// NASCONDO LA TABELLA DESTINAZIONI
	var t = document.getElementById("tabella_generale_destinazione");
	t.className = "zonaNascosta";

	// RIGA CHE CONTIENE I DATI PER VETTORE PAGAMENTO
	var t = document.getElementById("tabella_generale_vettore");
	t.className = "zonaNascosta";
	
	}
	
function clicnuovointestatariofattura()
	{

	// LINK "INSERISCI NUOVO"
	var l = document.getElementById("href_ins_nuovo_intestatario");
	l.setAttribute("href", "#");			
	
	// IMMAGINE "INSERISCI NUOVO"
	var i = document.getElementById("img_ins_nuovo_intestatario");
	i.src = "./images/ins_nuovo_intestatario_f2.gif";

	// LINK "SALVA-MODIFICA"
	var l = document.getElementById("href_salva_modifica_intestatario");
	l.setAttribute("href", "javascript:scriviintestatario()");			
	
	// IMMAGINE "SALVA-MODIFICA"
	var i = document.getElementById("img_salva_modifica_intestatario");
	i.src = "./images/salva_intestatario.gif";
	
	// LINK "PROSEGUI"
	var l = document.getElementById("href_prosegui_intestatario");
	l.setAttribute("href", "#");			
	
	// IMMAGINE "PROSEGUI"
	var i = document.getElementById("img_prosegui_intestatario");
	i.src = "./images/1_prosegui_f2.gif";

	// ***********************
	
	// RENDO VISIBILE LA CELLA CON LE INPUT PER I DATI DELL'INTESTATARIO
	var c = document.getElementById("tabella_generale_intestatariodocumento_cella_nuovo");
	c.className = "zonaVisibile";
	
	// ***********************
	
	// CAMPO HIDDEN CHE CONTIENE L'ID DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	var v = document.getElementById("intestatariofatturaid");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE LA DESCRIZIONE 1 DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturadescrizione1");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");
	
	// ***********************
	
	// CAMPO VISIBILE CHE CONTIENE LA DESCRIZIONE 2 DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturadescrizione2");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE L'INDIRIZZO 1 DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturaindirizzo1");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE L'INDIRIZZO 2 DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturaindirizzo2");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE IL CAP DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturacap");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE LA CITTA' DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturacitta");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE LO STATO DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturastato");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE LA PROVINCIA DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturaprovincia");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE LA PARTITA IVA DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturapartitaiva");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE IL CODICE FISCALE DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturacodicefiscale");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ***********************
	
	// VISUALIZZO LA CELLA CONTENENTE LE INPUT PER I DATI DELL'INTESTATARIO
	var c = document.getElementById("tabella_generale_intestatariodocumento_cella_nuovo");
	c.className = "zonaVisibile";
	
	// POSIZIONO CORRETTAMENTE LA SCHERMATA
	document.location = "#a_intestatariofattura";
	
	// ***********************

	// NASCONDO LA TABELLA DESTINAZIONI
	var t = document.getElementById("tabella_generale_destinazione");
	t.className = "zonaNascosta";
	
	// ***********************

	// NASCONDO LA TABELLA VETTORI
	var t = document.getElementById("tabella_generale_vettore");
	t.className = "zonaNascosta";
	
	}	
	
function clicmodificaintestatario()
	{

	// LINK "INSERISCI NUOVO"
	var l = document.getElementById("href_ins_nuovo_intestatario");
	l.setAttribute("href", "#");			
	
	// IMMAGINE "INSERISCI NUOVO"
	var i = document.getElementById("img_ins_nuovo_intestatario");
	i.src = "./images/ins_nuovo_intestatario_f2.gif";
	
	// LINK "PROSEGUI"
	var l = document.getElementById("href_prosegui_intestatario");
	l.setAttribute("href", "#a_intestatariofattura");			
	
	// IMMAGINE "PROSEGUI"
	var i = document.getElementById("img_prosegui_intestatario");
	i.src = "./images/1_prosegui_f2.gif";

	// ***********************
	
	// TUTTI I CAMPI HIDDEN CHE CONTENGONO I DATI DELL'INTESTATARIO
	// EVENTUALMENTE SELEZIONATO NON LI TOCCO
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE LA DESCRIZIONE 1 DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturadescrizione1");
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// SPOSTO IL FOCUS SU QUESTO CAMPO
	v.focus();
	
	// ***********************
	
	// CAMPO VISIBILE CHE CONTIENE LA DESCRIZIONE 2 DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturadescrizione2");
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE L'INDIRIZZO 1 DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturaindirizzo1");
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// ***********************
	
	// CAMPO VISIBILE CHE CONTIENE L'INDIRIZZO 2 DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturaindirizzo2");
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// ***********************
	
	// CAMPO VISIBILE CHE CONTIENE IL CAP DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturacap");
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE LA CITTA' DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturacitta");
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE LO STATO DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturastato");
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE LA PROVINCIA DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturaprovincia");
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// ***********************
	
	// CAMPO VISIBILE CHE CONTIENE LA PARTITA IVA DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturapartitaiva");
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE IL CODICE FISCALE DELL'INTESTATARIO SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("intestatariofatturacodicefiscale");
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// ***********************
	
	// NASCONDO LA TABELLA DESTINAZIONI
	var t = document.getElementById("tabella_generale_destinazione");
	t.className = "zonaNascosta";
	
	// ***********************

	// NASCONDO LA TABELLA VETTORI
	var t = document.getElementById("tabella_generale_vettore");
	t.className = "zonaNascosta";
	
	// ***********************
	
	// LINK "SALVA-MODIFICA"
	var l = document.getElementById("href_salva_modifica_intestatario");
	l.setAttribute("href", "javascript:scriviintestatario()");			
	
	// IMMAGINE "SALVA-MODIFICA"
	var i = document.getElementById("img_salva_modifica_intestatario");
	i.src = "./images/salva_intestatario.gif";
	
	}
	
function clicnuovadestinazione()
	{

	// LINK "INSERISCI NUOVA"
	var l = document.getElementById("href_ins_nuova_destinazione");
	l.setAttribute("href", "#");			
	
	// IMMAGINE "INSERISCI NUOVA"
	var i = document.getElementById("img_ins_nuova_destinazione");
	i.src = "./images/ins_nuova_destinazione_f2.gif";

	// LINK "SALVA-MODIFICA"
	var l = document.getElementById("href_salva_modifica_destinazione");
	l.setAttribute("href", "javascript:scrividestinazione()");			
	
	// IMMAGINE "SALVA-MODIFICA"
	var i = document.getElementById("img_salva_modifica_destinazione");
	i.src = "./images/salva_destinazione.gif";
	
	// LINK "PROSEGUI"
	var l = document.getElementById("href_prosegui_destinazione");
	l.setAttribute("href", "#");			
	
	// IMMAGINE "PROSEGUI"
	var i = document.getElementById("img_prosegui_destinazione");
	i.src = "./images/1_prosegui_f2.gif";

	// ***********************
	
	// RENDO VISIBILE LA CELLA CON LE INPUT PER I DATI DELLA DESTINAZIONE
	var c = document.getElementById("tabella_generale_destinazione_cella_nuova");
	c.className = "zonaVisibile";
	
	// ***********************
	
	// CAMPO HIDDEN CHE CONTIENE L'ID DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	var v = document.getElementById("destinazioneid");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE LA DESCRIZIONE 1 DELLA DESTINAZIONE SELEZIONATO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazionedescrizione1");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");
	
	// ***********************
	
	// CAMPO VISIBILE CHE CONTIENE LA DESCRIZIONE 2 DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazionedescrizione2");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE L'INDIRIZZO 1 DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazioneindirizzo1");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE L'INDIRIZZO 2 DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazioneindirizzo2");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE IL CAP DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazionecap");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE LA CITTA' DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazionecitta");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE LO STATO DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazionestato");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE LA PROVINCIA DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazioneprovincia");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = "";

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");
	
	// ***********************

	// VISUALIZZO LA CELLA CONTENENTE LE INPUT PER I DATI DELLA DESTINAZIONE
	var c = document.getElementById("tabella_generale_destinazione_cella_nuova");
	c.className = "zonaVisibile";
	
	// POSIZIONO CORRETTAMENTE LA SCHERMATA
	document.location = "#a_destinazione";
	
	// ***********************

	// NASCONDO LA TABELLA VETTORI
	var t = document.getElementById("tabella_generale_vettore");
	t.className = "zonaNascosta";
	
	}
	
function CheckTextLength(nMaxLength,cTextAreaId,cChrCounterId)
	{
	
	// alert("Pippo");
	
	// RICAVO LA INPUT DA CONTROLLARE
	var e = document.getElementById(cTextAreaId);
	
	// TRASFORMO IL TESTO IN MAIUSCOLO
	// e.value = e.value.toUpperCase();
	
	// RICAVO LA INPUT DOVE VISUALIZZO IL NUMERO DI CARATTERI
	var c = document.getElementById(cChrCounterId);

	// CALCOLO LA LUNGHEZZA DEL TESTO ATTUALE DELLA INPUT DA CONTROLLARE
	var nLength = e.value.length;
	
	// SE LA LUNGHEZZA DEL TESTO ATTUALE DELLA INPUT DA CONTROLLARE E' MAGGIORE DEL LIMITE
	if (nLength > nMaxLength)
		{
		// TAGLIO IL TESTO ALLA MASSIMA LUNGHEZZA AMMESSA
		e.value = e.value.substr(0, nMaxLength);
		
		// TOLGO IL FOCUS DALLA INPUT DA CONTROLLARE
		// e.blur();
		}

	// IN OGNI CASO AGGIORNO LA INPUT DOVE VISUALIZZO IL NUMERO DI CARATTERI
	c.value = (nMaxLength - e.value.length).toString();
	
	// TRASFORMO IN MAIUSCOLO IL TESTO DELLA INPUT DA CONTROLLARE
	// e.value = e.value.toUpperCase();
	
	}
	
function salvaordinevarianti()
	{

	// DEVO LEGGERE TUTTI I CAMPI DELL'ORDINE
	// PER COSTRUIRE LA QUERYSTRING DA PASSARE ALLO SCRIPT AJAX

	// IL PARAMETRO "caso" CON VALORE RANDOM VIENE USATO PER NON USARE LA CACHE DEL BROWSER
	var randvalue = Math.random() * 100;
	var queryajax = "?caso=" + randvalue.toString();

	// UTENTE A CUI E' LEGATO L'ORDINE
	// LO RICAVERO' NELLO SCRIPT AJAX DALLA VARIABILE SETTATA NELL'INIT $utente_username
	queryajax += "&utente=";
	
	// TIPO DOCUMENTO
	// INIZIALIZZO UNA VARIABILE CHE CONTIELE IL TIPO DOCUMENTO SELEZIONATO
	var documentoscelto = "";
	var a = document.getElementsByName("radio_tipodocumento");
	for ( var counter = 0; counter < a.length; counter++ )
		{
		if (a[counter].checked)
			{
			documentoscelto = a[counter].value;
			break;
			}
		}
	queryajax += "&documento=" + documentoscelto;

	// DESTINAZIONE
	var destinazionescelta = "";
	a = document.getElementsByName("radio_destinazione");
	for ( counter = 0; counter < a.length; counter++ )
		{
		if (a[counter].checked)
			{
			destinazionescelta = a[counter].value;
			break;
			}
		}
	queryajax += "&destinazione=" + destinazionescelta;
	
	// INTESTATARIO FATTURA
	var intestatarioscelto = "";
	a = document.getElementsByName("radio_intestatariofattura");
	for ( counter = 0; counter < a.length; counter++ )
		{
		if (a[counter].checked)
			{
			intestatarioscelto = a[counter].value;
			break;
			}
		}
	queryajax += "&intestatario=" + intestatarioscelto;
	
	// VETTORE
	var vettorescelto = "";
	a = document.getElementsByName("radio_vettore");
	for ( counter = 0; counter < a.length; counter++ )
		{
		if (a[counter].checked)
			{
			vettorescelto = a[counter].value;
			break;
			}
		}
	queryajax += "&vettore=" + vettorescelto;
	
	// PAGAMENTO
	var pagamentoscelto = "";
	a = document.getElementsByName("radio_pagamento");
	for ( counter = 0; counter < a.length; counter++ )
		{
		if (a[counter].checked)
			{
			pagamentoscelto = a[counter].value;
			break;
			}
		}
	queryajax += "&pagamento=" + pagamentoscelto;
	
	// NOTE
	var nota = "";
	e = document.getElementById("noteordine");
	
	queryajax += "&nota=" + escape(e.value);
	
	alert(queryajax);

	// SE NON E' GIA' IN CORSO UNA ELABORAZIONE SERVER-SIDE
	// (MyHttp lo dichiaro in scripts.js)
	if (!AJAXisWorking && MyHttp)
		{

		// VISUALIZZO L'IMMAGINE DI ATTESA...
		ThisInizioAttesa();

		// AVVIO LA TRANSAZIONE AJAX
		MyHttp.open("GET", "./ajax/salvaordinevarianti.php" + queryajax, true);
			
		// AL CAMBIAMENTO DI STATO DELL'OGGETTO http AVVIA LA GESTIONE DELLO STESSO
		MyHttp.onreadystatechange = handleMyHttpSalvaOrdineVarianti;
				
		// IMPOSTA IL FLAG IN MODO CHE TUTTO JAVASCRIPT SAPPIA CHE E' IN CORSO UNA ELABORAZIONE SERVER-SIDE
		// E CHE DEVE ATTENDERE LA SUA CONCLUSIONE PRIMA DI POTERNE AVVIARE UN'ALTRA
		AJAXisWorking = true;
			
		// TERMINA LA TRANSAZIONE AJAX
		MyHttp.send(null);
		
		}
	else
		{
		
		// NASCONDO L'IMMAGINE DI ATTESA...
		ThisFineAttesa();
		
		return false;
		}
	
	}

function handleMyHttpSalvaOrdineVarianti()
	{

	// SE L'OGGETTO MyHttp E' IN UNA SITUAZIONE CHE NE CONSENTE L'ELABORAZIONE
	if (MyHttp.readyState == 4)
		{

		// LA RISPOSTA FORNITA DALLO SCRIPT PHP SERVER SIDE SI TROVA IN http.responseText
		var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;

		// USO XML DOM PER RICAVARE I DATI DI MIO INTERESSE DALLA RISPOSTA RICEVUTA DAL SERVER
		// CHE E' IN FORMATO XML ED E' CONTENUTA IN http.responseText
		var xmlDocument = MyHttp.responseXML; 
		
		// DEBUG
		alert("handleMyHttpSalvaOrdineVarianti\n" + MyHttp.responseText + "\n****");
	   
		// CODICE NUMERICO PER L'ESITO DELL'ELABORAZIONE
		var stato = xmlDocument.getElementsByTagName('stato').item(0).firstChild.data;

		// DESCRIZIONE DELL'ESITO DELL'ELABORAZIONE
		var AjaxMessage = xmlDocument.getElementsByTagName('descrizione').item(0).firstChild.data;
	
		// SE LA RISPOSTA AJAX E' OK
		if (stato == "0")
			{

			// CODICE ASSEGNATO ALL'ORDINE
			var codiceordine = xmlDocument.getElementsByTagName('codiceordine').item(0).firstChild.data;
			
			// EVENTUALE CIRCUITO A CUI APPOGGIARSI PER IL PAGAMENTO CON CARTA DI CREDITO
			var circuitocartedicredito = xmlDocument.getElementsByTagName('circuitocartedicredito').item(0).firstChild.data;
			
			// CHIAMO UNO SCRIPT PER GESTIRE LA CHIUSURA DELL'ORDINE
			// document.location = "selezioneordini.php";
			if (circuitocartedicredito == "NOCARTADICREDITO")
				{
				alert("L'ORDINE E' CORRETTAMENTE REGISTRATO,\nVADO AL SUO RIEPILOGO DA DOVE INOLTRE INVIO LE EMAIL");
				document.location = "riepilogoordineconvarianti.php?codiceordine=" + codiceordine;
				}
			else
				{
				alert("L'ORDINE E' CORRETTAMENTE REGISTRATO,\nVADO AL SUO\nRIEPILOGO DA DOVE INOLTRE INVIO DIRETTAMENTE LE EMAIL\nE GESTISCO IL PAGAMENTO SUL CIRCUITO " + circuitocartedicredito);
				}
			
			}
		else
			{
			
			// RICAVO IL NUMERO DI CAMPI PER I QUALI IL CONTROLLO E' FALLITI
			var numerocampifalliti = xmlDocument.getElementsByTagName('numerocampifalliti').item(0).firstChild.data;

			for ( var countercampifalliti = 0; countercampifalliti < numerocampifalliti; countercampifalliti++)
				{
				// EVIDENZIO IL CAMPO IL CUI CONTROLLO E' FALLITO
				var campofallito = xmlDocument.getElementsByTagName('campofallito').item(countercampifalliti).firstChild.data;
				document.getElementById("destinazione" + campofallito).className = "input_form_peppe_red";				
				}
		
			// MOSTRO UN AVVISO A VIDEO
			alert("Operazione fallita!\n" + AjaxMessage);

			}
			
		// AJAX HA FINITO DI LAVORARE
		AJAXisWorking = false;
		
		// NASCONDO L'IMMAGINE DI ATTESA...
		ThisFineAttesa();
		
		return;
			
		}

	}

function uscitaquantitavarianti(oField,nDecimals,nObbligatorio,nMin,nMax,cOkStyle,cErrorStyle,a,b,c,d,cScriptOrigine,cForceQta,nReloadPage,cProdottoId,cTipoClick)
	{

	// DEBUG
	// alert("Ci arrivo da " + cTipoClick);
	
	// SE NON E' IMPOSTATA LA VARIABILE GLOBALE fieldoldvalue
	// DEVE ANDARE IN ERRORE
	cTipoVariabile = typeof(vecchiaquantita);
	if (cTipoVariabile.toUpperCase() == "UNDEFINED" )
		{
		alert("2 - JS error: variable 'vecchiaquantita' MUST be declared in the head section!!!");
		return;
		}
		
	// PER EVITARE INUTILE LAVORO AL SERVER E RENDERE PIU' FLUIDO IL FUNZIONAMENTO PER L'UTENTE
	// SE LA QUANTITA' E' STATA INSERITA A MANO NEL CAMPO QUANTITA' CONTROLLO CHE LA STESSA SIA STATA EFFETTIVAMENTE
	// MODIFICATA; IN CASO NEGATIVO NON FACCIO PARTIRE LA TRANSAZIONE AJAX.
	// TALE CONTROLLO NON VA EFFETTUATO SE INVECE LA QUANTITA' E' STATA MODIFICATA FACENDO CLIC
	// SULLE FRECCE + e - IN QUANTO IL CONTROLLO STESSO NON HA SIGNIFICATO (LA QUANTITA' COMUNQUE CAMBIA!!!)
	// E SE EFFETTUATO PUO' DARE ESITI ERRATI
	
	var lChanged = false;
	if ( cTipoClick == "campo")
		{
		if ( vecchiaquantita != oField.value )
			{
			lChanged = true;
			}
		}
		
	if ( cTipoClick == "freccia")
		{
		lChanged = true;
		}
		
	// if ( vecchiaquantita != oField.value )
	if ( lChanged )
		{
		var lRet = uscitadecimaleconstile(oField,nDecimals,nObbligatorio,nMin,nMax,cOkStyle,cErrorStyle);

		// DEBUG
		// alert(a + "\n" + b + "\n" + c + "\n" + d + "\n" + cScriptOrigine + "\n" + cForceQta + "\n" + nReloadPage + "\n" + cProdottoId);
		
		if ( lRet )
			{
			// AGGIORNO LE VARIABILI DI SESSIONE PER IL CARRELLO
			mettinelcarrello(a,b,c,d,cScriptOrigine,cForceQta,nReloadPage,cProdottoId,"JOK");
			}
		else
			{ // pippo
			var nValue = 0;
			oField.className = cOkStyle;	
			oField.value = nValue.toFixed(nDecimals);
			// AGGIORNO LE VARIABILI DI SESSIONE PER IL CARRELLO
			mettinelcarrello(a,b,c,d,cScriptOrigine,cForceQta,nReloadPage,cProdottoId,"JFAIL");
			}
		}
			
	return;

	}
	
function clicmodificadestinazione()
	{

	// LINK "INSERISCI NUOVA"
	var l = document.getElementById("href_ins_nuova_destinazione");
	l.setAttribute("href", "#");			
	
	// IMMAGINE "INSERISCI NUOVA"
	var i = document.getElementById("img_ins_nuova_destinazione");
	i.src = "./images/ins_nuova_destinazione_f2.gif";
	
	// LINK "PROSEGUI"
	var l = document.getElementById("href_prosegui_destinazione");
	l.setAttribute("href", "#a_destinazione");			
	
	// IMMAGINE "PROSEGUI"
	var i = document.getElementById("img_prosegui_destinazione");
	i.src = "./images/1_prosegui_f2.gif";

	// ***********************
	
	// TUTTI I CAMPI HIDDEN CHE CONTENGONO I DATI DELLA DESTINAZIONE
	// EVENTUALMENTE SELEZIONATA NON LI TOCCO
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE LA DESCRIZIONE 1 DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazionedescrizione1");
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// SPOSTO IL FOCUS SU QUESTO CAMPO
	v.focus();
	
	// ***********************
	
	// CAMPO VISIBILE CHE CONTIENE LA DESCRIZIONE 2 DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazionedescrizione2");
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE L'INDIRIZZO 1 DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazioneindirizzo1");
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// ***********************
	
	// CAMPO VISIBILE CHE CONTIENE L'INDIRIZZO 2 DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazioneindirizzo2");
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// ***********************
	
	// CAMPO VISIBILE CHE CONTIENE IL CAP DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazionecap");
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE LA CITTA' DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazionecitta");
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE LO STATO DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazionestato");
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// ***********************

	// CAMPO VISIBILE CHE CONTIENE LA PROVINCIA DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazioneprovincia");
	
	// RIMUOVO IL READONLY
	v.removeAttribute("readOnly");

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// ***********************
	
	// NASCONDO LA TABELLA CONSEGNA
	var t = document.getElementById("tabella_generale_vettore");
	t.className = "zonaNascosta";
	
	// ***********************
	
	// LINK "SALVA-MODIFICA"
	var l = document.getElementById("href_salva_modifica_destinazione");
	l.setAttribute("href", "javascript:scrividestinazione()");			
	
	// IMMAGINE "SALVA-MODIFICA"
	var i = document.getElementById("img_salva_modifica_destinazione");
	i.src = "./images/salva_destinazione.gif";

	}

function visualizzadestinazione()
	{

	// RIGA CHE CONTIENE I DATI PER LA DESTINAZIONE MERCE
	var t_destinazione = document.getElementById("tabella_generale_destinazione");

	// VISUALIZZO LA TABELLA PER LE DESTINAZIONI
	t_destinazione.className = "zonaVisibile";

	document.location = "#href_prosegui_destinazione";
	
	}

function visualizzavettore()
	{

	// RIGA CHE CONTIENE I DATI PER LA DESTINAZIONE MERCE
	var t_destinazione = document.getElementById("tabella_generale_vettore");

	// VISUALIZZO LA TABELLA PER LE DESTINAZIONI
	t_destinazione.className = "zonaVisibile";

	document.location = "#href_prosegui_vettore";
	
	}
	
function clicdestinazione(cId)
	{

	// LINK "INSERISCI NUOVA"
	var l = document.getElementById("href_ins_nuova_destinazione");
	l.setAttribute("href", "javascript:clicnuovadestinazione()");			

	// IMMAGINE "INSERISCI NUOVA"
	var i = document.getElementById("img_ins_nuova_destinazione");
	i.src = "./images/ins_nuova_destinazione.gif";
	
	// LINK "SALVA-MODIFICA"
	var l = document.getElementById("href_salva_modifica_destinazione");
	l.setAttribute("href", "javascript:clicmodificadestinazione()");			
	
	// IMMAGINE "SALVA-MODIFICA"
	var i = document.getElementById("img_salva_modifica_destinazione");
	i.src = "./images/modifica_nuova_destinazione.gif";

	// LINK "PROSEGUI"
	var l = document.getElementById("href_prosegui_destinazione");
	l.setAttribute("href", "javascript:visualizzavettore()");			

	// IMMAGINE "PROSEGUI"
	var i = document.getElementById("img_prosegui_destinazione");
	i.src = "./images/1_prosegui.gif";
	
	// ***********************
	
	// CAMPO HIDDEN CHE CONTIENE L'ID DELLA DESTINAZIONE SELEZIONATA
	var h = document.getElementById("hidden_destinazioneselezionataid_" + cId);

	// CAMPO HIDDEN CHE CONTIENE L'ID DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	var v = document.getElementById("destinazioneid");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;
	
	// ***********************

	// CAMPO HIDDEN CHE CONTIENE LA DESCRIZIONE 1 DELLA DESTINAZIONE SELEZIONATA
	h = document.getElementById("hidden_destinazionedescrizione1_" + cId);
	
	// CAMPO VISIBILE CHE CONTIENE LA DESCRIZIONE 1 DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazionedescrizione1");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";
	
	// IMPOSTO IL READONLY
	v.setAttribute("readOnly",true);
	
	// ***********************
	
	// CAMPO HIDDEN CHE CONTIENE LA DESCRIZIONE 2 DELLA DESTINAZIONE SELEZIONATA
	h = document.getElementById("hidden_destinazionedescrizione2_" + cId);
	
	// CAMPO VISIBILE CHE CONTIENE LA DESCRIZIONE 2 DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazionedescrizione2");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;
	
	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// IMPOSTO IL READONLY
	v.setAttribute("readOnly",true);
	
	// ***********************
	
	// CAMPO HIDDEN CHE CONTIENE L'INDIRIZZO 1 DELLA DESTINAZIONE SELEZIONATA
	h = document.getElementById("hidden_destinazioneindirizzo1_" + cId);
	
	// CAMPO VISIBILE CHE CONTIENE L'INDIRIZZO 1 DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazioneindirizzo1");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// IMPOSTO IL READONLY
	v.setAttribute("readOnly",true);
	
	// ***********************
	
	// CAMPO HIDDEN CHE CONTIENE L'INDIRIZZO 2 DELLA DESTINAZIONE SELEZIONATA
	h = document.getElementById("hidden_destinazioneindirizzo2_" + cId);
	
	// CAMPO VISIBILE CHE CONTIENE L'INDIRIZZO 2 DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazioneindirizzo2");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;
	
	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// IMPOSTO IL READONLY
	v.setAttribute("readOnly",true);
	
	// ***********************
	
	// CAMPO HIDDEN CHE CONTIENE IL CAP DELLA DESTINAZIONE SELEZIONATA
	h = document.getElementById("hidden_destinazionecap_" + cId);
	
	// CAMPO VISIBILE CHE CONTIENE IL CAP DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazionecap");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// IMPOSTO IL READONLY
	v.setAttribute("readOnly",true);
	
	// ***********************

	// CAMPO HIDDEN CHE CONTIENE LA CITTA' DELLA DESTINAZIONE SELEZIONATA
	h = document.getElementById("hidden_destinazionecitta_" + cId);
	
	// CAMPO VISIBILE CHE CONTIENE LA CITTA' DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazionecitta");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// IMPOSTO IL READONLY
	v.setAttribute("readOnly",true);
	
	// ***********************
	
	// CAMPO HIDDEN CHE CONTIENE LO STATO DELLA DESTINAZIONE SELEZIONATA
	h = document.getElementById("hidden_destinazionestato_" + cId);
	
	// CAMPO VISIBILE CHE CONTIENE LO STATO DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazionestato");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// IMPOSTO IL READONLY
	v.setAttribute("readOnly",true);
	
	// ***********************

	// CAMPO HIDDEN CHE CONTIENE LA PROVINCIA DELLA DESTINAZIONE SELEZIONATA
	h = document.getElementById("hidden_destinazioneprovincia_" + cId);
	
	// CAMPO VISIBILE CHE CONTIENE LA PROVINCIA DELLA DESTINAZIONE SELEZIONATA DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v = document.getElementById("destinazioneprovincia");
	
	// POPOLO IL CAMPO DA PASSARE ALLE SUCCESSIVE ELABORAZIONI
	v.value = h.value;

	// ASSEGNO AL CAMPO LA CLASSE DI DEFAULT
	v.className = "input_form_peppe";

	// IMPOSTO IL READONLY
	v.setAttribute("readOnly",true);
	
	// ***********************
	
	// VISUALIZZO LA CELLA CONTENENTE LE INPUT PER I DATI DELLA DESTINAZIONE
	var c = document.getElementById("tabella_generale_destinazione_cella_nuova");
	c.className = "zonaVisibile";
	
	// POSIZIONO CORRETTAMENTE LA SCHERMATA
	document.location = "#a_destinazione";
	
	// ***********************

	// NASCONDO LA TABELLA VETTORI
	var t = document.getElementById("tabella_generale_vettore");
	t.className = "zonaNascosta";
	
	}
	
function salvavecchiaquantita(oField)
	{
	vecchiaquantita = oField.value;
	}
	
function dafrecciaauscitaquantitavarianti(cFieldId,nDecimals,nObbligatorio,nMin,nMax,cOkStyle,cErrorStyle,a,b,c,d,cScriptOrigine,cForceQta,nReloadPage,cProdottoId,cTipoClick,nIncremento)
	{

	// DEBUG
	// alert("DALLA FRECCIA\nId del campo =" + cFieldId + "\na = " + a);
	
	// RICAVO IL CAMPO QUANTITA' INTERESSATO DALLA ELABORAZIONE
	var oField = document.getElementById(cFieldId);
	
	// TRASFORMO IN NUMERO IL VALORE DEL CAMPO
	if (nDecimals > 0)
		{
		var nValore = parseFloat(oField.value);
		}
	else
		{
		var nValore = parseInt(oField.value);
		}

	// LO INCREMENTO/DECREMENTO DEL VALORE PASSATO CON IL PARAMETRO nIncremento
	nValore += nIncremento;
	
	// LO ARROTONDO/VISUALIZZO CON IL NUMERO DI DECIMALI PASSATI CON IL PARAMETRO nDecimals
	nValore = nValore.toFixed(nDecimals);
	
	// POPOLO IL CAMPO CON IL RISULTATO DELLA ELABORAZIONE
	oField.value = nValore;

	// CHIAMO LA ROUTINE DI AGGIORNAMENTO VARIABILI DI SESSIONE, CARRELLO, ETC.. ETC...
	// SENZA PASSARLE IL PARAMETRO nIncremento!!! IN QUANTO TUTTE LE ELABORAZIONI SARANNO EFFETTUATE
	// RILEGGENDO IL VALORE DEL CAMPO
	uscitaquantitavarianti(oField,nDecimals,nObbligatorio,nMin,nMax,cOkStyle,cErrorStyle,a,b,c,d,cScriptOrigine,cForceQta,nReloadPage,cProdottoId,cTipoClick)
	
	}
	
function confermaoperazione(cId,cNumeroConferme,cUrl,cTarget)
	{

	// cId è l'id dell'href, al momento non viene utilizzato in questo script
	
	// Quante volte devo chiedere conferma prima di eseguire l'operazione richiesta?
	var nConferme = parseInt(cNumeroConferme);
	
	// Inizializzo a true la risposta dell'utente alle richieste di conferma 
	var lReturn = true;
	
	// Se è stata richiesta almeno una conferma...
	if ( nConferme > 0 )
		{
		
		// Tante volte quante sono state richieste...
		for ( var n = 0; n < nConferme; n++)
			{
			
			// Chiedo conferma!
			if ( !confirm("Richiesta di conferma " + (n + 1).toString() + "\n\nConfermi l'operazione selezionata?") )
				{
				// Se l'utente annulla, torno immediatamente allo script chiamante!
				return;
				}
			else
				{
				// Altrimenti memorizzo che ha dato l'OK...
				lReturn = true;
				}
				
			}
		
		// QUESTO CONTROLLO FORSE E' PLEONASTICO
		// Se l'utente ha annullato...
		if ( !lReturn)
			{
			// Torno subito allo script chiamante!
			return;
			}
		}
	
	// Se l'utente ha confermato (o se non erano richieste conferme)...
	if ( lReturn )
		{

		// Eseguo l'operazione richiesta...
		if ( cTarget == "1")
			{
			// In una nuova finestra se così era stato richiesto
			window.open (cUrl);
			}
		else
			{
			// Nella stessa stessa finestra se così era stato richiesto
			document.location = cUrl;
			}
		}
		
	return;
	
	}
	
	
function nascondi(nome1,nome2,nome3,nome4)
	{
	if(nome1 != "")
		{	
		var t = document.getElementById(nome1);
		t.className = "zonaNascosta";	
		}
		
	if(nome2 != "")
		{	
		var r = document.getElementById(nome2);
		r.className = "zonaNascosta";	
		}

	if(nome3 != "")
		{
		var z = document.getElementById(nome3);
		z.className = "zonaNascosta";	
		}
		
	if(nome4 != "")
		{
		var w = document.getElementById(nome4);
		w.className = "zonaNascosta";	
		}	
	
	if(nome1 == "orario_consegna")
		{
		if(nome2 == "giorno_consegna")
			{
			alert("SE STAI RICHIEDENDO UN PREVENTIVO TI INVITIAMO AD INDICARE IL LUOGO DI CONSEGNA DELLA MERCE NEL CAMPO NOTE.");	
			}
		}
	
	}
	
function visualizza(nome1,nome2,nome3,nome4)
	{
	if(nome1 != "")
		{
		var t = document.getElementById(nome1);
		t.className = "zonaVisivbile";	
		}
	
	if(nome2 != "")
		{
		var r = document.getElementById(nome2);
		r.className = "zonaVisivbile";	
		}
	
	if(nome3 != "")
		{
		var z = document.getElementById(nome3);
		z.className = "zonaVisivbile";	
		}
		
	if(nome4 != "")
		{
		var w = document.getElementById(nome4);
		w.className = "zonaVisivbile";	
		}	
	}	