// JavaScript Document
/** FUNZIONI */

	//funzione per prendere un elemento con id univoco
	function prendiElementoDaId(id_elemento) {
		var elemento;
		if(document.getElementById)
			elemento = document.getElementById(id_elemento);
		else
			elemento = document.all[id_elemento];
		return elemento;
	};

	// funzione per assegnare un oggetto XMLHttpRequest
	function assegnaXMLHttpRequest() {
		var
			XHR = null,
			browserUtente = navigator.userAgent.toUpperCase();
		if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
			XHR = new XMLHttpRequest();
		else if(window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0) {
			if(browserUtente.indexOf("MSIE 5") < 0) {
				XHR = new ActiveXObject("Msxml2.XMLHTTP");
			} else {
				XHR = new ActiveXObject("Microsoft.XMLHTTP");
			}
		}
		return XHR;
	};

	/*
	Msxml2.XMLHTTP
	Properties
	onreadystatechange - Specifys the event handler to be called when the readyState property changes.
	readyState - represents the state of the request (ro)
	responseBody - represents the results of the response as an array of unsigned bytes (ro)
	responseStream - represents the results of the response as an IStream (ro)
	responseText - represents the results of the response as a string (ro)
	responseXML - represents the results of the response as parsed by the Microsoft XML Parser (ro)
	status - The HTTP Status code returned by request (ro)
	statusText - represents the HTTP response line status (ro)

	Methods
	abort
	getAllResponseHeaders
	getResponseHeader
	open (method, url, boolAsync, bstrUser, bstrPassword) - (method Get, Post, Put, Profind)
	send(varBody)
	setRequestHeader(bstrHeader, bstrValue)
	*/

	function aggiornaObj(objCurrent,otherobj,link) {
		var objOther = prendiElementoDaId(otherobj);
		var intCurrent = objCurrent.value;

		if(ajax && ajax.readyState === readyState.INATTIVO) {
			objOther.innerHTML =
			"<img src='images/loading.gif' width='16' height='16' alt='caricamento dati' />" +
			"   caricamento dati ...";
			ajax.open("get", 'responso_ajax.php?ajax=true'+link+intCurrent, true);
			ajax.setRequestHeader("connection", "close");
			ajax.onreadystatechange = function() {
				if(ajax.readyState === readyState.COMPLETATO) {
					if(statusText[ajax.status] === "OK") {
						objOther.innerHTML = ajax.responseText;
					} else
						objOther.innerHTML =
						"Impossibile effettuare l'operazione richiesta.<br />" +
						"Errore riscontrato: " + statusText[ajax.status];

					ajax = assegnaXMLHttpRequest();
				};
			};
			ajax.send(null);
		}
		return !ajax;
	};

	function aggiornaObjRicerca(otherobj,link) {
		//alert("aggiornaObjRicerca link: "+link);
		var objOther = prendiElementoDaId(otherobj);
		if(ajax && ajax.readyState === readyState.INATTIVO) {
			objOther.innerHTML =
			"<img src='images/loading.gif' width='16' height='16' alt='caricamento dati' />" +
			"   caricamento dati ...";
			ajax.open("get", 'responso_ajax.php?ajax=true'+link, true);
			ajax.setRequestHeader("connection", "close");
			ajax.onreadystatechange = function() {
				if(ajax.readyState === readyState.COMPLETATO) {
					if(statusText[ajax.status] === "OK") {
						objOther.innerHTML = ajax.responseText;
					} else
						objOther.innerHTML =
						"Impossibile effettuare l'operazione richiesta.<br />" +
						"Errore riscontrato: " + statusText[ajax.status];

					ajax = assegnaXMLHttpRequest();
				};
			};
			ajax.send(null);
		}
		return !ajax;
	};

	function importaVideo(objCurrent,otherobj,link) {
		var objOther = prendiElementoDaId(otherobj);
		var intCurrent = objCurrent.value;
		if(ajax && ajax.readyState === readyState.INATTIVO) {
			objOther.innerHTML =
			"<img src='images/loading.gif' width='16' height='16' alt='caricamento dati' />" +
			"   caricamento dati ...";
			ajax.open("get", 'responso_ajax.php?ajax=true'+link+intCurrent, true);
			ajax.setRequestHeader("connection", "close");
			ajax.onreadystatechange = function() {
				if(ajax.readyState === readyState.COMPLETATO) {
					if(statusText[ajax.status] === "OK") {
						objOther.innerHTML = ajax.responseText;
					} else
						objOther.innerHTML =
						"Impossibile effettuare l'operazione richiesta.<br />" +
						"Errore riscontrato: " + statusText[ajax.status];

					ajax = assegnaXMLHttpRequest();
				};
			};
			ajax.send(null);
		}
		return !ajax;
	};


	function checkObj(objCurrent,otherobj) {
		var objOther = prendiElementoDaId(otherobj);
		var intCurrent = objCurrent.value;
		if (objCurrent.checked == true) {
			objOther.disabled = false;
		} else {
			objOther.disabled = true;
		}
		
	};


	/** OGGETTI / 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";


	var ajax = assegnaXMLHttpRequest();

