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



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

/*********************************************************************************/


function setText(textbox,chooser){
	var choice     = document.getElementById(chooser);
	var textwrite  = document.getElementById(textbox);
	var textselect = choice.options[choice.selectedIndex];
	
	if(textselect.value == 0){		
		textwrite.value="";
	}else{
		textwrite.value=textselect.value;
	}
	return true;	
}
	

function checkMinValue(value,minChar){
	if(value.length < minChar)
		return false
	else
		return true
}

function mySubmit(form){
	with(form){
		for(var x=0; x < elements.length;x++){
			elements[x].style.border="1px solid #663333";
			var validation = elements[x].alt;
			if(elements[x].type == "select-one"){
				validation =elements[x].title;
				}
			if(validation){
				var validator = validation.split('|');
				switch (validator[0]){
					case '*':						
						if (elements[x].value == "") {														
							elements[x].style.border="1px solid red";
							alert(validator[1]);
							elements[x].focus();
						return;
						}
						if(!checkMinValue(elements[x].value,2)){
							elements[x].style.border="1px solid red";
							alert("Attenzione devono essere inseriti minimo 2 caratteri");
							elements[x].focus();
							return;								
						}
						if((validator[2] != "") && (elements[x].value == validator[2])){											
							elements[x].style.border="1px solid red";
							alert(validator[1]);
							elements[x].focus();
							return;
						}
					break;
					case '#':
						if (elements[x].value == "") {							
							elements[x].style.border="1px solid red";
							alert(validator[1]);
							elements[x].focus();
						return;
						}else{
							var number =elements[x].value.replace(/[\,\.]/g,"");
							if(isNaN(number)){												
								alert("Inserire un numero")
								if(elements[x].type != "hidden"){
									elements[x].style.border="1px solid red";
									elements[x].focus();
									elements[x].value="";
									}
							return;						
							}
						}					
					break;
					case 'compare':
						var first  = elements[x].value;
						var sel    = elements[validator[1]];
						var second = elements[sel.name].options[sel.selectedIndex].value;
						if(first == ""){											
							elements[x].style.border="1px solid red";
							alert(validator[2]);
							elements[x].focus();
							return;						
							}
							var number =first.replace(/[\,\.]/g,"");
							if(isNaN(number)){
								elements[x].style.border="1px solid red";
								alert("Il campo deve essere un numero");
								elements[x].focus();
							return;						
							}

						if(second < first){							
							
							elements[x].style.border="1px solid red";
							alert("Attenzione l'importo è più grande della classifica selezionata");
							elements[x].focus();
							return;
						}
						
					break;
					case 'select':
						var result = elements[x].options[elements[x].selectedIndex].value;
						if(result==validator[1]){
							elements[x].style.border="1px solid red";
							alert(validator[2]);
							elements[x].focus();							
							return;
							}
					break;
					case 'radio':
						var result = elements[x].checked;
						if(result != true){						
							elements[x].style.border="1px solid red";
							alert(validator[1]);
							elements[x].focus();
							return;
							}
						
					break;
					case 'email':
						var string = elements[x].value;
						if(string ==""){
							elements[x].style.border="1px solid red";
							alert(validator[1]);	
							elements[x].focus();
							return;
							}
						if (string.search(/^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$/) == -1){							
							elements[x].style.border="1px solid red";
							alert("Attenzione email non valida");
							elements[x].focus();
							return;
							}
					break;
					case 'dataInPast':
						var time = elements[x].value.split('/');
						var day  = elements[time[0]].value;
						var mon  = elements[time[1]].value;
						var yea  = elements[time[2]].value;
						
						var today = new Date();
						var check = new Date();
						
						check.setFullYear(yea,mon-1,day);
						
						if(today.getTime() > check.getTime()){
							alert(validator[1]);		
							return;
						}
						
						if(check.getDate() != day){
							alert(validator[2]);		
							return;						
						}
					break;
					case 'dataCompare':
						var time     = elements[x].value.split('|');
						var arrivo   = time[0].split('/');
						var data1 = new Date();
							data1.setFullYear(elements[arrivo[2]].value,elements[arrivo[1]].value-1,elements[arrivo[0]].value); 
						var partenza = time[1].split('/');
						var data2 = new Date();
							data2.setFullYear(elements[partenza[2]].value,elements[partenza[1]].value-1,elements[partenza[0]].value); 
						if(data2.getTime() < data1.getTime()){
							alert(validator[1]);		
							return;								
						}
					break;
        }				
		}
	}
		
	form.submit();
	}
}

function gotoUrl(message){
	
	if(confirm(message)){
		/*window.location.href = website;*/
		return true;
	}else{
		return false;
		}
		
}

// Invia il form
function send(thisform){
	var form = window.document.forms[thisform];
	mySubmit(form);
}

// Ripristina il form
function ripristina(thisform){
	var form = window.document.forms[thisform];
	form.reset();
}







