        function numbersonly(myfield, e, dec){
            var key;
            var keychar;
        
            if (window.event){
                key = window.event.keyCode;
            } else if (e){
                key = e.which;
            } else {
                return true;
            }
            
            keychar = String.fromCharCode(key);
        
            if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ) { // control keys
                return true;
            } else if ((("0123456789").indexOf(keychar) > -1)){ // numbers
                return true;
			} else if (dec && (keychar == ".")){ // decimal point jump	   
				myfield.form.elements[dec].focus();
				return false;
			} else {
				return false;
			}
        }
		
        function currencyonly(myfield, e){
            var key;
            var keychar;
        
            if (window.event){
                key = window.event.keyCode;
            } else if (e){
                key = e.which;
            } else {
                return true;
            }
            
            keychar = String.fromCharCode(key);
        
            if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ) { // control keys
                return true;
            } else if ((("0123456789,.").indexOf(keychar) > -1)){ // numbers
                return true;
			} else {
				return false;
			}
        }
		
        function phoneonly(myfield, e){
            var key;
            var keychar;
        
            if (window.event){
                key = window.event.keyCode;
            } else if (e){
                key = e.which;
            } else {
                return true;
            }
            
            keychar = String.fromCharCode(key);
        
            if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ) { // control keys
                return true;
            } else if ((("+0123456789").indexOf(keychar) > -1)){ // numbers
                return true;
			} else {
				return false;
			}
        }
		
        function timeonly(myfield, e){
            var key;
            var keychar;
        
            if (window.event){
                key = window.event.keyCode;
            } else if (e){
                key = e.which;
            } else {
                return true;
            }
            
            keychar = String.fromCharCode(key);
        
            if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ) { // control keys
                return true;
            } else if (((":0123456789").indexOf(keychar) > -1)){ // numbers
                return true;
			} else {
				return false;
			}
        }
		
        function dateonly(myfield, e){
            var key;
            var keychar;
        
            if (window.event){
                key = window.event.keyCode;
            } else if (e){
                key = e.which;
            } else {
                return true;
            }
            
            keychar = String.fromCharCode(key);
        
            if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ) { // control keys
                return true;
            } else if ((("/0123456789").indexOf(keychar) > -1)){ // numbers
                return true;
			} else {
				return false;
			}
        }								
		
		/*
		*  using by function ThausandSeperator!!
		*/
		function removeCharacter(v, ch){
			var tempValue = v+"";
			var becontinue = true;
			while(becontinue == true){
				var point = tempValue.indexOf(ch);
				if( point >= 0 ){
					var myLen = tempValue.length;
					tempValue = tempValue.substr(0,point)+tempValue.substr(point+1,myLen);
					becontinue = true;
				} else {
					becontinue = false;
				}
			}
			return tempValue;
		}
 
		/*
		*  using by function ThausandSeperator!!
		*/
		function characterControl(value){
			var tempValue = "";
			var len = value.length;
			for(i=0; i<len; i++){
				var chr = value.substr(i,1);
				if( (chr < '0' || chr > '9') && chr != '.' && chr != ',' ){
					chr = '';
				}		
				tempValue = tempValue + chr;
			}
			return tempValue;
		}
 
		/*
		* Automaticly converts the value in the textbox in a currency format with
		* thousands seperator and decimal point
		*
		* @param value : the input text
		* @param digit : decimal number after comma
		*/
		function ThausandSeperator(value, digit){
			var thausandSepCh = ".";
			var decimalSepCh = ",";
		
			var tempValue = "";
			var realValue = value+"";
			var devValue = "";
			realValue = characterControl(realValue);
			var comma = realValue.indexOf(decimalSepCh);
			if(comma != -1 ){
				tempValue = realValue.substr(0,comma);
				devValue = realValue.substr(comma);
				devValue = removeCharacter(devValue,thausandSepCh);
				devValue = removeCharacter(devValue,decimalSepCh);
				devValue = decimalSepCh+devValue;
				if( devValue.length > 3){
					devValue = devValue.substr(0,3);
				}
			} else {
				tempValue = realValue;
			}
		
			tempValue = removeCharacter(tempValue,thausandSepCh);
		
			var result = "";
			var len = tempValue.length;
			while (len > 3){
				result = thausandSepCh+tempValue.substr(len-3,3)+result;
				len -=3;
			}
			result = tempValue.substr(0,len)+result;
			return result+devValue;
		}

function strpos( haystack, needle, offset){
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: strpos('Kevin van Zonneveld', 'e', 5);
    // *     returns 1: 14
 
    var i = haystack.indexOf( needle, offset ); // returns -1
    return i >= 0 ? i : false;
}


function selectCheckBox(check_name, coma_separeted_value){
	var checks = document.getElementsByName(check_name);
	for ( var i = 0; i<checks.length; i++){
		if ( strpos( coma_separeted_value, checks[i].value, 0 ) === false ){
		} else {
			checks[i].checked=true;
		}
	}
}

function deselectCheckBox(check_name, coma_separeted_value){
	var checks = document.getElementsByName(check_name);
	for ( var i = 0; i<checks.length; i++){
		if ( strpos( coma_separeted_value, checks[i].value, 0 ) === false ){
		} else {
			checks[i].checked=false;
		}
	}
}



function requiredFields(){
	var boolVuoto=false;
	var msg="I seguenti campi sono obbligatori:\n";
	
	for (var i=0; i<arguments.length; i+=2){
		if ( field = document.getElementById( arguments[i] ) ){
			field = document.getElementById(arguments[i]);
			if (field.value=="") {
				msg += "\t" + arguments[i+1] + "\n";
				boolVuoto = true;
			}
		}
	}
	
	if (boolVuoto==true){
		msg += "Premere su 'ok' per continuare ed inserire i campi mancanti";
		alert(msg);
		return false;
	} else return true;
}

function isNumberField(campoTesto){
	isCorrect = true;
	field = document.getElementById(campoTesto);
		if (field.value!=""){
			fieldCount = field.value.length;
			for (var i=0; i<fieldCount; i++){
				if (!isNumber(field.value.charAt(i))) isCorrect = false;
			}
		}
	return isCorrect;
}

function isNumber(value){
	switch(value){
		case "1": return true; break; case 1: return true; break;
		case "2": return true; break; case 2: return true; break;
		case "3": return true; break; case 3: return true; break;
		case "4": return true; break; case 4: return true; break;
		case "5": return true; break; case 5: return true; break;
		case "6": return true; break; case 6: return true; break;
		case "7": return true; break; case 7: return true; break;
		case "8": return true; break; case 8: return true; break;
		case "9": return true; break; case 9: return true; break;
		case "0": return true; break; case 0: return true; break;
		default: return false; break;
		}
}

function isCurrencyField(campoTesto){
	isCorrect = true;
	field = document.getElementById(campoTesto);
		if (field.value!=""){
			fieldCount = field.value.length;
			for (var i=0; i<fieldCount; i++){
				if (!isCurrency(field.value.charAt(i))) isCorrect = false;
			}
		}
	return isCorrect;
}

function isCurrency(value){
	switch(value){
		case "1": return true; break; case 1: return true; break;
		case "2": return true; break; case 2: return true; break;
		case "3": return true; break; case 3: return true; break;
		case "4": return true; break; case 4: return true; break;
		case "5": return true; break; case 5: return true; break;
		case "6": return true; break; case 6: return true; break;
		case "7": return true; break; case 7: return true; break;
		case "8": return true; break; case 8: return true; break;
		case "9": return true; break; case 9: return true; break;
		case "0": return true; break; case 0: return true; break;
		case ".": return true; break; case '.': return true; break;
		default: return false; break;
		}
}

function indirizzoEmailValido(indirizzo) {
	if (window.RegExp) {
		var nonvalido = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
		var valido = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
		var regnv = new RegExp(nonvalido);
		var regv = new RegExp(valido);
		if (!regnv.test(indirizzo) && regv.test(indirizzo))
			return true;
		return false;
	} else {
		if(indirizzo.indexOf("@") >= 0)
			return true;
		return false;
	}
};
	
function controllaEmail(campoemail) {
	campoemail = document.getElementById(campoemail);
	if (!indirizzoEmailValido(campoemail.value)) {
		campoemail.select();
		alert("Si prega di inserire un indirizzo email valido");
		return false;
	} else	return true;
};

function checkEmail(fieldemail) {
	if (window.RegExp) {
		var notValid = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
		var valid = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
		var regnv = new RegExp(notValid);
		var regv = new RegExp(valid);
		if (!regnv.test(fieldemail) && regv.test(fieldemail))
			return true;
		return false;
	} else {
		if(fieldemail.indexOf("@") >= 0)
			return true;
		return false;
	}
};


function emailValidator(fieldemail, msg) {
	fieldemail = document.getElementById(fieldemail);
	if (!checkEmail(fieldemail.value)) {
		fieldemail.select();
		alert(msg);
		return false;
	} else	return true;
};



function controllaCF(codice_fiscale)
{
    cf = codice_fiscale;
	controllo = true;
	var validi, i, s, set1, set2, setpari, setdisp;
    if( cf == '' )  controllo = false;
    cf = cf.toUpperCase();
    if( cf.length != 16 ){
        alert( "La lunghezza del codice fiscale non è\n"
        +"corretta: il codice fiscale dovrebbe essere lungo\n"
        +"esattamente 16 caratteri.\n" );
		controllo = false;
	}
    validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    for( i = 0; i < 16; i++ ){
        if( validi.indexOf( cf.charAt(i) ) == -1 ){
        	alert( "Il codice fiscale contiene un carattere non valido `" +
                cf.charAt(i) +
                "'.\nI caratteri validi sono le lettere e le cifre.\n" );
			controllo = false;
		}
    }
    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) ){
        alert ( "Il codice fiscale non è corretto:\n"+
            "il codice di controllo non corrisponde.\n" );
		controllo = false;
	}
    return controllo;
}



function controllaPIVA(partita_iva)
{
	pi = partita_iva;
	controllo = true;
    if( pi == '' )  controllo = false;
    if( pi.length != 11 ){
        alert ( "La lunghezza della partita IVA non è\n" +
            "corretta: la partita IVA dovrebbe essere lunga\n" +
            "esattamente 11 caratteri.\n" );
		controllo = false
	}
    validi = "0123456789";
    for( i = 0; i < 11; i++ ){
        if( validi.indexOf( pi.charAt(i) ) == -1 ){
            alert ( "La partita IVA contiene un carattere non valido `" + pi.charAt(i) + "'.\nI caratteri validi sono le cifre.\n" );
			controllo = false;
		}
    }
    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) ) {
        alert( "La partita IVA non è valida:\n" +
            "il codice di controllo non corrisponde.\n" );
		controllo = false;
	}
	return controllo;
}



