// funzione per prendere un elemento con id univoco
function prendiElementoDaId(id_elemento) {
 	var elemento;
	// se esiste la funzione getElementById la uso
	// altrimenti uso il vecchio sistema
 	if(document.getElementById){
  		elemento = document.getElementById(id_elemento);
 	}else{
  		elemento = document.all[id_elemento];
	};
 	return elemento;
};

// invia form
function inviaForm(formName) { //v2.0
	var formName = prendiElementoDaId(formName);
  	formName.submit();
}

// apri nuova finestra
function nuovaFinestra(selObj,restore){ //v3.0
	var cnt = selObj.options[selObj.selectedIndex].value;
	window.open(cnt);
   if (restore) selObj.selectedIndex=0;
}

//anteprima immagini
function anteprima(mittente, destinatario){
	var fileInput = prendiElementoDaId(mittente);
	var layer = prendiElementoDaId(destinatario);
	if (navigator.appName == "Netscape"){
		var files = fileInput.files;
		var sorgente = files[0].getAsDataURL();
			layer.innerHTML =  "<img src=\"" +sorgente +"\" />";
	}else{
		var img = fileInput.value;
		layer.innerHTML =  "<img src=\"" +img +"\" />";
		//return true;
	};
}

// funzione per assegnare l'oggetto XMLHttpRequest
// compatibile con i browsers più recenti e diffusi
function assegnaXMLHttpRequest() {
	var XHR = null;
	var browserUtente = navigator.userAgent.toUpperCase();
	// browser standard con supporto nativo
	// non importa il tipo di browser
	if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object"){
  		XHR = new XMLHttpRequest();
		// browser Internet Explorer
 		// è necessario filtrare la versione 4
	}else if( window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0) {
		// la versione 6 di IE ha un nome differente
  		// per il tipo di oggetto ActiveX
  		if(browserUtente.indexOf("MSIE 5") < 0){
   			XHR = new ActiveXObject("Msxml2.XMLHTTP");}
		else{
  			// le versioni 5 e 5.5 invece sfruttano lo stesso nome
   			XHR = new ActiveXObject("Microsoft.XMLHTTP");
		}
 	}
 	return XHR;
};
function initValue(inputName){
 	var elemento = prendiElementoDaId(inputName);
	elemento.value = "";
};

// ================================================
// =============== VARIABILI E ARRAY ==============
// ================================================
// oggetto di verifica stato
var readyState = {
	INATTIVO:	  0,
	INIZIALIZZATO:1,
	RICHIESTA:	  2,
	RISPOSTA:	  3,
	COMPLETATO:	  4
};

// array descrittivo dei codici restituiti dal server
// la scelta dell' array é per evitare problemi con vecchi browsers
var statusText = new Array();
statusText[100] = "Continue";
statusText[101] = "Switching Protocols";
statusText[200] = "OK";
statusText[201] = "Created";
statusText[202] = "Accepted";
statusText[203] = "Non-Authoritative Information";
statusText[204] = "No Content";
statusText[205] = "Reset Content";
statusText[206] = "Partial Content";
statusText[300] = "Multiple Choices";
statusText[301] = "Moved Permanently";
statusText[302] = "Found";
statusText[303] = "See Other";
statusText[304] = "Not Modified";
statusText[305] = "Use Proxy";
statusText[306] = "(unused, but reserved)";
statusText[307] = "Temporary Redirect";
statusText[400] = "Bad Request";
statusText[401] = "Unauthorized";
statusText[402] = "Payment Required";
statusText[403] = "Forbidden";
statusText[404] = "Not Found";
statusText[405] = "Method Not Allowed";
statusText[406] = "Not Acceptable";
statusText[407] = "Proxy Authentication Required";
statusText[408] = "Request Timeout";
statusText[409] = "Conflict";
statusText[410] = "Gone";
statusText[411] = "Length Required";
statusText[412] = "Precondition Failed";
statusText[413] = "Request Entity Too Large";
statusText[414] = "Request-URI Too Long";
statusText[415] = "Unsupported Media Type";
statusText[416] = "Requested Range Not Satisfiable";
statusText[417] = "Expectation Failed";
statusText[500] = "Internal Server Error";
statusText[501] = "Not Implemented";
statusText[502] = "Bad Gateway";
statusText[503] = "Service Unavailable";
statusText[504] = "Gateway Timeout";
statusText[505] = "HTTP Version Not Supported";
statusText[509] = "Bandwidth Limit Exceeded";
