document.write('<script type="text/javascript" src="/inc/BrowserDetect.js"></script>'); 

// =============================================
	function FormatDate(sElemento){
// =============================================
		var checkstr = "0123456789";
		var DateField = sElemento;
		var Datevalue = "";
		var DateTemp = "";
		var seperator = "/";
		var day;
		var month;
		var year;
		var leap = 0;
		var err = 0;
		var i;
		   err = 0;
		   
		   
		   DateValue = DateField.value;
		   /* Delete all chars except 0..9 */
		   for (i = 0; i < DateValue.length; i++) {
			  if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
				 DateTemp = DateTemp + DateValue.substr(i,1);
			  }
		   }
		   DateValue = DateTemp;
		   /* Always change date to 8 digits - string*/
		   /* if year is entered as 2-digit / always assume 20xx */
		   if (DateValue.length == 6) {
			  DateValue = DateValue.substr(0,4) + '19' + DateValue.substr(4,2); }
		   if (DateValue.length != 8) {
			  err = 19;}
		   /* year is wrong if year = 0000 */
		   year = DateValue.substr(4,4);
		   if (year == 0) {
			  err = 20;
		   }
		   /* Validation of month*/
		   month = DateValue.substr(2,2);
		   if ((month < 1) || (month > 12)) {
			  err = 21;
		   }
		   /* Validation of day*/
		   day = DateValue.substr(0,2);
		   if (day < 1) {
			 err = 22;
		   }
		   /* Validation leap-year / february / day */
		   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
			  leap = 1;
		   }
		   if ((month == 2) && (leap == 1) && (day > 29)) {
			  err = 23;
		   }
		   if ((month == 2) && (leap != 1) && (day > 28)) {
			  err = 24;
		   }
		   /* Validation of other months */
		   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
			  err = 25;
		   }
		   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
			  err = 26;
		   }
		   /* if 00 ist entered, no error, deleting the entry */
		   if ((day == 0) && (month == 0) && (year == 00)) {
			  err = 0; day = ""; month = ""; year = ""; seperator = "";
		   }
		   /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
		   if (err == 0) {
			  DateField.value = day + seperator + month + seperator + year;
		   }
		   /* Error-message if err != 0 */
		   else {
			  alert("Data non corretta!");
			  DateField.style.background='#f8d6d6';
			  DateField.select();
			  DateField.focus();
		   }
	}
	

// =============================================
	function GetValue(sElemento,sNomeForm){
// =============================================

		sTypeElement = eval("document.getElementById('"+sElemento+"').type");
		nMode        = true;

		switch(sTypeElement){
			case 'text':
				//alert("passo Testo")
				nReturn = eval("document.getElementById('"+sElemento+"').value");
				break;
			case 'password':
				//alert("passo Testo")
				nReturn = eval("document.getElementById('"+sElemento+"').value");
				break;
			case 'textarea':
				nReturn = eval("document."+sNomeForm+"."+sElemento+".value")
				break;
			case 'checkbox':
				//alert("passo Checkbox")
				nReturn = eval("document."+sNomeForm+"."+sElemento+".checked");
				break;
			case 'radio':
				nReturn = eval("document."+sNomeForm+"."+sElemento+".checked");
				break;
			
			
			case 'file':
				nReturn = eval("document."+sNomeForm+"."+sElemento+".value")
				break;
				
			case 'select-one':
				//alert("passo DropDown")

				nReturn = eval("document.getElementById('"+sElemento+"').value");
				nMode = false;
				if (nReturn =="0"){
					nReturn =""
				}
				break;
			default:
				sTypeElement = eval("document."+sNomeForm+"."+sElemento+"[0].type");
				switch(sTypeElement){
					case 'radio':
						radioLength = eval("document."+sNomeForm+"."+sElemento+".length;");
						nReturn = false;
						for(var i = 0; i < radioLength; i++){
							//alert("document."+sNomeForm+"."+sElemento+"[i].checked")
							if(eval("document."+sNomeForm+"."+sElemento+"[i].checked")){
								nReturn = true;
								}
							}
						break;
					}
				
		}
		vReturn = new Array(2)
		vReturn[0]=nReturn
		vReturn[1]=nMode
		return vReturn
	}

// =============================================
	function SetErrore(sElemento,sNomeForm,sMessage,nMode){
// =============================================
		try {			
			eval("document."+sNomeForm+"."+sElemento+".style.background='#f8d6d6';")
			eval("document."+sNomeForm+"."+sElemento+".focus();")
			if (nMode){
				eval("document."+sNomeForm+"."+sElemento+".select();")
			}
		}

		catch(nTest){
			eval("document."+sNomeForm+"."+sElemento+"[0].style.background='#f8d6d6';")
			eval("document."+sNomeForm+"."+sElemento+"[0].focus();")
			if (nMode){
				eval("document."+sNomeForm+"."+sElemento+"[0].select();")
			}
		}
		alert (sMessage)
		return false;
	}
	
// =============================================
	function CheckInt(sElemento,sNomeForm){
// =============================================
		nReturn = true;
		vReturn = GetValue(sElemento,sNomeForm);
		nValue  = vReturn[0];
		nMode   = vReturn[1];

		if (isNaN(nValue)&& (nValue !="") ){
			SetErrore(sElemento,sNomeForm,"Attenzione! il Valore deve essere un Numero Intero",nMode);
			nReturn = false;

		}else{
			nReturn = true;
		}

		return nReturn
	}

// =============================================
	function CheckEmail(sElemento,sNomeForm){
// =============================================
		var nReturn = true;
		var vReturn = GetValue(sElemento,sNomeForm)
		var nValue  = vReturn[0]
		var nMode   = vReturn[1]
		
		if (nValue !=""){
			var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
			if (!filter.test(nValue)){
				
				SetErrore(sElemento,sNomeForm,"Attenzione! L'indirizzo email deve essere valido",nMode)
				nReturn = false;
				
			}
		}

		return nReturn
	}

// =============================================
	function CheckFloat(sElemento,sNomeForm){
// =============================================
		var nReturn = true;
		var vReturn = GetValue(sElemento,sNomeForm)
		var	nValue  = vReturn[0]
		var	nMode   = vReturn[1]
		
		if (nValue !=""){
			var sCampo = eval("document."+sNomeForm+"."+sElemento)

			sCampo.value = sCampo.value.replace(",",".")
			nValue = sCampo.value
			if (isNaN(nValue) || nValue.indexOf(".")==-1){
				SetErrore(sElemento,sNomeForm,"Attenzione! il Valore deve essere un Numero Decimale",nMode)
				nReturn = false;
			}
		}
	
		return nReturn
		
	}
	
// =============================================
	function CheckDate(sElemento,sNomeForm){
// =============================================
		var nReturn =  true;
		var checkstr = "0123456789";
		
		var Datevalue = "";
		var DateTemp = "";
		var seperator = "/";
		var day;
		var month;
		var year;
		var leap = 0;
		var err = 0;
		var i;
		err = 0;
		vReturn = GetValue(sElemento,sNomeForm)
		nValue  = vReturn[0]
		nMode   = vReturn[1]
		DateValue = nValue;

		/* Delete all chars except 0..9 */
		for (i = 0; i < DateValue.length; i++) {
			if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
				DateTemp = DateTemp + DateValue.substr(i,1);
			}
		}
		
		DateValue = DateTemp;

	   	/* Always change date to 8 digits - string*/
	   	/* if year is entered as 2-digit / always assume 20xx */
	   	if (DateValue.length == 6){
			DateValue = DateValue.substr(0,4) + '19' + DateValue.substr(4,2);
		}
		
		if (DateValue.length != 8){
			err = 19;
		}
		/* year is wrong if year = 0000 */
		year = DateValue.substr(4,4);
		if (year == 0) {
		  err = 20;
		}
		/* Validation of month*/
		month = DateValue.substr(2,2);
		if ((month < 1) || (month > 12)) {
		  err = 21;
		}
		/* Validation of day*/
		day = DateValue.substr(0,2);
		if (day < 1) {
		 err = 22;
		}
		/* Validation leap-year / february / day */
		if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
		  leap = 1;
		}
		if ((month == 2) && (leap == 1) && (day > 29)) {
		  err = 23;
		}
		if ((month == 2) && (leap != 1) && (day > 28)) {
		  err = 24;
		}
		/* Validation of other months */
		if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
			err = 25;
		}
		if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
		  err = 26;
		}
		/* if 00 ist entered, no error, deleting the entry 
		if ((day == 0) && (month == 0) && (year == 00)) {
		  err = 0; day = ""; month = ""; year = ""; seperator = "";
		}*/
		/* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
		if (err == 0){

			return true;
		}
		/* Error-message if err != 0 */
		else{

			SetErrore(sElemento,sNomeForm,"Attenzione! il Valore deve essere una Data")
			nReturn =  false;
		}return nReturn
	}
	



// =============================================
	function CheckNotNull(sElemento,sNomeForm){
// =============================================
		nReturn = true;
		vReturn = GetValue(sElemento,sNomeForm)
		nValue  = vReturn[0]
		nMode   = vReturn[1]
		
		if (nValue ==""){
			SetErrore(sElemento,sNomeForm,"Attenzione! il Campo deve essere Compilato",nMode)
			nReturn = false;
			
		}

		return nReturn
	}
// =============================================
	function CheckLength(sElemento,sNomeForm,sChar){
// =============================================
		nReturn = true;
		vReturn = GetValue(sElemento,sNomeForm)
		nValue  = vReturn[0]
		nMode   = vReturn[1]
		
		if (parseInt(sChar) > parseInt(vReturn.length)){
			SetErrore(sElemento,sNomeForm,"Attenzione! il Campo deve contenere almeno "+sChar +" caratteri",nMode)
			nReturn = false;

		}

		return nReturn
	}
// =============================================
	function SwitchCase(sChar,sElemento,sNomeForm){
// =============================================
		nReturn  = true;
		
		switch(sChar){
			
			case 'o':
				//alert("passo null")
				nReturn = CheckNotNull(sElemento,sNomeForm)
				break;
			case 'd':
				//alert("passo date")
				nReturn = CheckDate(sElemento,sNomeForm)
				break;    
			case 'i':
				//alert("passo int")
				nReturn = CheckInt(sElemento,sNomeForm)
				break;
			case 'f':
				//alert("passo float")
				nReturn = CheckFloat(sElemento,sNomeForm)
				break;
			case 'e':
				//alert("passo email")
				nReturn = CheckEmail(sElemento,sNomeForm)
				break;
			default:
				alert("Formattazione non riconosciuta per il valore:"+sChar)
				nReturn=false
		}
		return nReturn
	}
	
// =============================================
	function ValidateElement(sPrefix,sElemento,sNomeForm){
// =============================================
		
		var sChar;
		var nLen;
		
		nReturn = true;
		nLen = sPrefix.length;
		
		var vCheck  =  new Array(nLen);

		for (i=0;i<nLen;i++){
			vCheck[i] = sPrefix.substring(i,i+1);
		}
		

		for (i=0;i<vCheck.length;i++){
			
			sChar = vCheck[i]
			
			nReturn = SwitchCase(sChar,sElemento,sNomeForm)
			
			if (!nReturn){
				return nReturn
			}
		}
	return nReturn
	}

// =============================================
	function CheckElement(sElemento,nPos,sNomeForm){
// =============================================
		nReturn = true;
		sPrefix = sElemento.slice(0,nPos);
		
		return ValidateElement(sPrefix,sElemento,sNomeForm)
	}
	
// =============================================
	function FormatElementName(sNomeForm){
// =============================================

		nLen = eval("document."+sNomeForm+".elements.length")

		for (var i=0;i<nLen;i++){
		
			sElemento = eval("document."+sNomeForm+".elements[i].name")
			
			nPos      = sElemento.indexOf("$")
	
			if (nPos !=-1){
				sNewName = sElemento.substr(nPos+1)
				eval("document."+sNomeForm+".elements[i].name=sNewName")
				
			}
		}
	}

// =============================================
	function ResetBgColor(sNomeForm){
// =============================================

		
		for (var i=0;i<eval("document."+sNomeForm+".elements.length");i++){
		
			sElemento = eval("document."+sNomeForm+".elements[i].name")
			
			eval("document."+sNomeForm+"."+sElemento+".style.background='#f0f0ff';")
		}

	}


// =============================================
	function CheckForm(sNomeForm){
// =============================================
		nReturn = true
		
		//ResetBgColor(sNomeForm)
		
		for (var i=0;i<eval("document."+sNomeForm+".elements.length");i++){
			//alert(eval("document."+sNomeForm+".elements[i].id"))
			sElemento = eval("document."+sNomeForm+".elements[i].id")
			
			nPos      = sElemento.indexOf("$")
			if (nPos !=-1){
				nReturn = CheckElement(sElemento,nPos,sNomeForm)
				
			}
			if (!nReturn){

				return nReturn
				
			}
			
		}
		
		try{
			nDebug = eval("document."+sNomeForm+".debug.value")
		}
		catch(nError){
			nDebug = 0
		}

		if (nDebug ==1){
			alert("Form compilato correttamente ma in debug")
			nReturn = false;
		}else{
			//FormatElementName(sNomeForm)	
		}
		
		return nReturn
	}

// ========================================
function ControllaCF(cf){
// ========================================
    var validi, i, s, set1, set2, setpari, setdisp;
    if( cf == '' )  return '';
    cf = cf.toUpperCase();
    if( cf.length != 16 )
        return "La lunghezza del codice fiscale non \n"
        +"corretta: il codice fiscale dovrebbe essere lungo\n"
        +"esattamente 16 caratteri.\n";
    validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    for( i = 0; i < 16; i++ ){
        if( validi.indexOf( cf.charAt(i) ) == -1 )
            return "Il codice fiscale contiene un carattere non valido `" +
                cf.charAt(i) +
                "'.\nI caratteri validi sono le lettere e le cifre.\n";
    }
    set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
    setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
    s = 0;
    for( i = 1; i <= 13; i += 2 )
        s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
    for( i = 0; i <= 14; i += 2 )
        s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
    if( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) )
        return "Il codice fiscale non  corretto:\n"+
            "il codice di controllo non corrisponde.\n";
    return "";
}

// ========================================
function ControllaPIVA(pi){
// ========================================
    if( pi == '' )  return '';
    if( pi.length != 11 )
        return "La lunghezza della partita IVA non \n" +
            "corretta: la partita IVA dovrebbe essere lunga\n" +
            "esattamente 11 caratteri.\n";
    validi = "0123456789";
    for( i = 0; i < 11; i++ ){
        if( validi.indexOf( pi.charAt(i) ) == -1 )
            return "La partita IVA contiene un carattere non valido `" +
                pi.charAt(i) + "'.\nI caratteri validi sono le cifre.\n";
    }
    s = 0;
    for( i = 0; i <= 9; i += 2 )
        s += pi.charCodeAt(i) - '0'.charCodeAt(0);
    for( i = 1; i <= 9; i += 2 ){
        c = 2*( pi.charCodeAt(i) - '0'.charCodeAt(0) );
        if( c > 9 )  c = c - 9;
        s += c;
    }
    if( ( 10 - s%10 )%10 != pi.charCodeAt(10) - '0'.charCodeAt(0) )
        return "La partita IVA non  valida:\n" +
            "il codice di controllo non corrisponde.\n";
    return '';
}

// ========================================
function FNum(sNumber,nMode){
// ========================================
	try{
		
		if (nMode==","){
			sNumber = sNumber.replace(".",",")
		}
		else{
			sNumber = sNumber.replace(",",".")
		}
		//alert(sNumber)
	}
	catch(err){
	sError = "Errore della funzione FNum: " + err.description + "\n"
	alert(sError)
	
	}
}

//
//##############ESEMPIO############################
//
//<input type="button"  onclick="FNum(null,',')"/>
//<input type="button"  onclick="FNum('12,2','.')"/>

	