
	//Wrapper per la valida data con utilizzo multilingua
	function validaData(Data) {
		if (Data==""){ return true}
		else {	return validaDataML(Data,"ITA") }
	}
	//Valida data multilingua
	function validaDataML(Data, sUserLang) {
		var bResult;
		bResult = true;
		arrayData = Data.split("/");
		if (arrayData.length == 3) {
			if (arrayData[2].length == 4) {
				bResult = true;
			}
			else	{
				bResult = false;
			}
		}
		else if (Data.length == 8)  {
			if (!(isNaN(Data))) {
				bResult = true;
			}
			else 	{	
				bResult = false;
			}
		}
		else	{
			bResult = false;
		}
		if (bResult == false) {
				if (sUserLang == "ENG") {
					alert("Allowed date formats are: ddmmyyyy or dd/mm/yyyy.");						
				}		
				else if (sUserLang == "FRA") {
					alert("Les formats de date permis sont: jjmmaaaa ou jj/mm/aaaa.");
				}
				else {
					alert("Inserire una data nel formato ggmmaaaa o nel formato gg/mm/aaaa.");
				}
		}
		return bResult;
	}


	//Wrapper per la valida ora con utilizzo multilingua
	function validaOra(Ora) {
		return validaOraML(Ora,"ITA")
	}
	//Valida ora multilingua
	function validaOraML(Ora,sUserLang) {
		var bResult;
		bResult = true;
		arrayOra = Ora.split(":")
		if (arrayOra.length == 2)  {
			bResult = true;
		}
		else {
			if (Ora.length == 4)  {
				if ((!isNaN(Ora))) {
					bResult = true;
				}
				else 	{
					bResult = false;
				}
			}
			else if (Ora.length == 3)  {
				if ((!isNaN(Ora))) {
					myS1 = new String("")
					myS1 = Ora.substring(0,1) + ":" + Ora.substring(1,3)
					Ora.value = myS1
					bResult = true;
				}
				else 	{
					bResult = false;
				}
			}
			else 	{	
				bResult = false;
			}
		}
		if (bResult == false) {
				if (sUserLang == "ENG") {
					alert("Allowed hour formats are: hhmm or hh:mm.");						
				}		
				else if (sUserLang == "FRA") {
					alert("Les formats de heure permis sont: hhmm ou hh:mm.");
				}
				else {
					alert("Inserire un'ora nel formato hhmm o nel formato hh:mm.");
				}
		}
		return bResult;		
	}

	function formattaData(Data) {
		var tmpStr=new String()
		var	myS = new String("")
		arrayData = Data.split("/")
		if (arrayData.length == 3)  {
			//se il giorno è composto da una sola cifra, aggiungo uno zero
			tmpStr=arrayData[0]
			if (tmpStr.length==1){
				tmpStr="0" + tmpStr
			}
			myS=tmpStr
			//aggiungo uno zero al mese
			tmpStr=arrayData[1]
			if (tmpStr.length==1){
				tmpStr="0" + tmpStr
			}
			myS+="/" + tmpStr + "/" + arrayData[2]	
			return myS
		}		
		if (Data.length == 8)  {
			myS = Data.substring(0,2) + "/" + Data.substring(2,4) + "/" + Data.substring(4,9)
			return myS
		}
		else {
			return ""
		}
	}

	function formattaOra(Ora) {
		arrayOra = Ora.split(":")
		if (arrayOra.length == 2)  {
			return Ora
		}		
		if (Ora.length == 4)  {
			myS = new String("")
			myS = Ora.substring(0,2) + ":" + Ora.substring(2,4)
			return myS
		}
		else if (Ora.length == 3)  {
			myS1 = new String("")
			myS1 = Ora.substring(0,1) + ":" + Ora.substring(1,3)
			return myS1
		}
		else {
			return ""
		}
	}

	//Wrapper per la valida email con utilizzo multilingua
	function validaEMail(eMail) {
		return validaEMailML(eMail,"ITA")
	}
	//Valida ora multilingua
	function validaEMailML(eMail,sUserLang) {
		if (!(eMail.length == 0)) {
			myInt = new Number
			myInt2 = new Number
			myStr = new String
			myInt = eMail.search("@")			
			myStr = eMail.substr(myInt+1)
			myInt2 = myStr.search("[.]")
			if (myInt > 1) {					
				if (myInt2 > 1){				
					if (myStr.length-myInt2 > 2) {
						return true
					}			
				}
			}
		}
		if (sUserLang == "ENG") {
			alert("Invalid email address.");						
		}		
		else if (sUserLang == "FRA") {
			alert("Le format de email n'est pas correct.");
		}
		else {
			alert("Indirizzo di email non corretto.");
		}	
		return false			
	}
	
	//funzione per verificare se in un campo testo è stato inserito un numero
	//Wrapper per la valida numero con utilizzo multilingua

	function validaNumero(textObj) {
		return validaNumeroML(textObj,"ITA")
	}
	function validaNumeroML(textObj,sUserLang){
		if (textObj.value=='') { return true }
		//associo alla variabile il valore contenuto nella text
		var newValue = textObj.value;
		//associo alla variabile la lunghezza della stringa
		var newLength = newValue.length;
		//ciclo su tutti gli elementi della stringa
		for(var i = 0; i != newLength; i++){
			//variabile a cui associare il valore del singolo elemento della stringa
			aChar = newValue.substring(i, i+1);
			//se l'elemento analizzato non è un numero, avviso!
			if (aChar < "0" || aChar > "9"){				
				if (sUserLang == "ENG") {
					alert("Please insert a valid integer number.");						
				}		
				else if (sUserLang == "FRA") {
					alert("Veuillez écrire une valeur numerique.");
				}
				else {
					alert("Devi obbligatoriamente immettere un numero intero.");
				}		
				textObj.select();
				return false;
			}
		}
		return true;
	}
		
	//funzione per verificare se il CAP è stato scritto correttamente
	//Wrapper per la valida CAP con utilizzo multilingua
	function verCap(textObj) {
		return verCapML(textObj,"ITA")
	}
	function verCapML(textObj,sUserLang){
		var objValue = textObj.value;
		var newLength = objValue.length ;
		if (newLength != 0){
			if (validaNumero(textObj) == true){		
				if (newLength < 5){
					if (sUserLang == "ENG") {
						alert("Please insert a valid zip code.");						
					}		
					else if (sUserLang == "FRA") {
						alert("Veuillez écrire un code postal valide.");
					}
					else {
						alert("Il campo CAP deve contenere almeno cinque cifre");
					}
					textObj.focus();
					textObj.select();
				}
			}
		}
	return
	}


	//funzione per verificare se in un campo testo è stata inserita una stringa
	//Wrapper per la valida testo con utilizzo multilingua
	function validaTesto(textObj) {
		return validaTestoML(textObj,"ITA")
	}
	function validaTestoML(textObj,sUserLang){
		//associo alla variabile il valore contenuto nella text
		var newValue = textObj.value;
		//associo alla variabile la lunghezza della stringa
		var newLength = newValue.length;
		//associo alla variabile le eccezioni sulla verifica(virgole, apostrofi, ecc..)
		var extraChars = ".-,'";
		var search;
		//ciclo su tutti gli elementi della stringa
		for(var i =0; i != newLength; i++){
			aChar = newValue.substring(i, i+1);
			//converto la stringa ad un campo stringa in maiuscolo
			aChar = aChar.toUpperCase();
			search = extraChars.indexOf(aChar);
			if (search == -1 && (aChar < "A" || aChar > "Z")){
				if (sUserLang == "ENG") {
					alert("Please insert only letters.");						
				}		
				else if (sUserLang == "FRA") {
					alert("Veuillez écrire seulement des lettres.");
				}
				else {
					alert("Formato non valido: inserire delle lettere");
				}
				textObj.focus();
				textObj.select();
				break;
			}
		}
		return;
	}
	//funzione per riconvertire un dato da "data" a "numerico"
	function formattaDataInv(Data) {
		arrayData = Data.split("/")
		if (arrayData.length == 3)  {
			myK = new String("")
			myK = Data.substring(6,10) + Data.substring(3,5) + Data.substring(0,2)
			return myK
		}		
		else {
			return ""
		}
	}
							 		
	//funzione per memorizzare l'elemento selezionato nella combo nella reload della pagina
	function caricaCombo(objCombo, Valore){
		i=new Number;	
		for(i=0;i<objCombo.length;i++){
			if (Valore == objCombo[i].value) {
				objCombo[i].selected="1"
				return true
			}		
		}
	}

	//funzione per "submittare" il pulsante sull'invio
	function defButton(btn, e){
		if (!e) var e = window.event
		if (e.keyCode) code = e.keyCode;
		else if (e.which) code = e.which;
		if((code) == 13){
			e.returnValue=false;
			e.cancel=true;
			btn.click();
		}
		return;
	}


function giornoMese(data){
var a= new Array();
a=data.split("/");
if (data=="") {return true}
switch (a){
	case 0:
		return false;
	break;
	case 2:
		if (parseInt(a[2])%4==0)
			{if (parseInt(a[0])<=29) 
			
				{return true}
			else alert("'" + data + "' non e' una data valida");
			     return false;	}
		else 	{if (parseInt(a[0])<=28) 
			
				{return true}
			else alert("'" + data + "' non e' una data valida");
			     return false;	}
			
	break;	
	case 4,6,9,11:
		if (parseInt(a[0])<31) 
			
			{return true}
		else alert("'" + data + "' non e' una data valida");
	break;
	default:
		if (parseInt(a[1])>12) 
			{ alert("'" + data + "' non e' una data valida");
			  return false;}
		if (parseInt(a[0])<=31) 
			{return true}
		else alert("'" + data + "' non e' una data valida");
	break;	
}
return false;

}

function cambiaStatoObj(obj,arg){
	switch (arg){
	case ('S'): //oggetto abilitato
		obj.disabled=false
		obj.style.backgroundColor="transparent"
	break;
	case ('N'): //oggetto disabilitato
		obj.disabled=true
		obj.style.backgroundColor="LightGrey"
	break;
	default:   //valuto lo stato precedente 	
		if(obj.disabled){
			obj.disabled=false
			obj.style.backgroundColor="transparent"		
		}else{
			obj.disabled=true
			obj.style.backgroundColor="LightGrey"
		}
	break;	
	}
	
}

function confrontaData(dataUno,dataDue){
	//funzione che confronta due date in formato dd/mm/yyyy e ritorna true se la seconda è posteriore alla prima
	var data=new String(dataUno)
	var data2=new String(dataDue)
	var arrData=new Array()
	var arrData2=new Array()
	arrData=data.split("/")
	arrData2=data2.split("/")
	if ((arrData[2]==arrData2[2])) { //stesso anno: confronto i mesi
		if (arrData[1]==arrData2[1]){ //stesso mese: confronto i giorni
			if (arrData[0]==arrData2[0]){ //stesso giorno: ok
				return true
			}else{
				if ((arrData[0]<arrData2[0])) { //giorno 2 > giorno1 : ok
					return true
				}else{
					return false
				}
			}
		}else{
			if ((arrData[1]<arrData2[1])) { //mese 2 > mese1 : ok
				return true
			}else{
				return false
			}
		}
	}else{
		if ((arrData[2]<arrData2[2])) { //anno 2 > anno1 : ok
			return true
		}else{
			return false
		}
	}
}




