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

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;
	
};

function richiestaAjax(file, contenitore_risposta)
{
	//Creo l'oggetto XMLHttp
	var ajax = assegnaXMLHttpRequest();
	
	// Se l'oggetto viene creato con successo	
	if(ajax)
	{
		// Creo la connessione con il file PHP
		ajax.open("get", file, true);
		
		ajax.setRequestHeader("connection", "close");
		
		contenitore_risposta.innerHTML = "<center><img src=\"/img/updating.gif\" alt=\"Aggiornando i dati...\"/></center>";
		
		// Al cambio di stato
		ajax.onreadystatechange = function()
		{
			if(ajax.readyState === readyState.COMPLETATO)
			{
				// Verifico la risposta del Server
				if(statusText[ajax.status] === "OK")
				{
					// Riempio il DIV con l'output della pagina PHP
					contenitore_risposta.innerHTML = ajax.responseText;
					
					return true;
				}
				else
				{
					return false;
				}
			}
		}
	}
	
	ajax.send(null);
}

function normalizza(stringa)
{
	stringa = stringa.toLowerCase();
	
	stringa = stringa.str_replace("à", "a");
	stringa = stringa.str_replace("&agrave;", "a");
	stringa = stringa.str_replace("&aacute;", "a");
	stringa = stringa.str_replace("é", "e");
	stringa = stringa.str_replace("è", "e");
	stringa = stringa.str_replace("&egrave;", "e");
	stringa = stringa.str_replace("&eacute;", "e");
	stringa = stringa.str_replace("ì", "i");
	stringa = stringa.str_replace("&igrave;", "i");
	stringa = stringa.str_replace("&iacute;", "i");
	stringa = stringa.str_replace("ò", "o");
	stringa = stringa.str_replace("&ograve;", "o");
	stringa = stringa.str_replace("&oacute;", "o");
	stringa = stringa.str_replace("ù", "u");
	stringa = stringa.str_replace("&ugrave;", "u");
	stringa = stringa.str_replace("&uacute;", "u");
	
	stringa = stringa.str_replace("&lt;", "");
	stringa = stringa.str_replace("&gt;", "");
	stringa = stringa.str_replace("&quot;", "");
	stringa = stringa.str_replace("&quot;", "");
	
	stringa = stringa.str_replace(" ", "-");
	stringa = stringa.str_replace("/", "-");
	stringa = stringa.str_replace("\"", "");
	stringa = stringa.str_replace("'", "");
	stringa = stringa.str_replace(";", "");
	stringa = stringa.str_replace(":", "");
	stringa = stringa.str_replace(".", "");
	stringa = stringa.str_replace(",", "");
	stringa = stringa.str_replace("?", "");
	stringa = stringa.str_replace("!", "");
	
	stringa = stringa.str_replace("&amp", "-e-");
	stringa = stringa.str_replace("&", "-e-");
	stringa = stringa.str_replace("--", "-");
		
	return $stringa;
}

function cambiaRegione(nome_regione)
{
	document.location.href = "/index.php?regione=" + nome_regione + "";
}

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}