// ===================================// BOF: MainFunctionCheckForm.js// ===================================	// ---------------------------------------------------------------	// Consente l'inserimento SOLO dei caratteri permessi	// ---------------------------------------------------------------	function CheckInput (obj, cStr, nTipo)	{		var ckStringa = " 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzàéèìòù<=>#@°'*/+.-_,!?^(&%$£)";		var ckNumber = "0123456789";		var ckTelefonNumber = " 0123456789./-";		var ckEMail = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.-_@";		var ckFiscale = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";		var ckFloat = "0123456789.";		var ckOK = "";		var ckStr = obj.value;		ckOK = ckStringa;		if (nTipo == 1) ckOK = ckStringa;			// Campo Tipo Stringa		if (nTipo == 2) ckOK = ckNumber;			// Campo Numero Generico		if (nTipo == 3) ckOK = ckTelefonNumber;		// Campo Numero Telefonico		if (nTipo == 4) ckOK = ckEMail;				// Campo E-mail		if (nTipo == 5) ckOK = ckFiscale;			// Campo Dati Fiscali		if (nTipo == 6) ckOK = ckFloat;				// Campo Numero Decimale		// alert(ckStr + '\n' + ckOK);		if (ckStr.length > 0) 		{			var ok = true;			for (i=0; i < ckStr.length;  i++)  			{				for (j=0; j < ckOK.length;  j++)				{					if (ckStr.charAt(i) == ckOK.charAt(j)) 					{						ok = true;						break;					}					else 					{						ok=false;					}				}				if (!ok)  break;			}			if (!ok)			{				alert ("E' stato inserito un carattere non valido nel campo: " + cStr + " !");				return (false);			}		}		return (true);	}	// ===============================================================	// ---------------------------------------------------------------	// Controlla che il contenuto del Campo specificato non sia vuoto	// ---------------------------------------------------------------	function IsEmpty(obj, cStr) {		if (obj.value == '') 		{			alert ("Specificare un Valore nel campo: " + cStr + " !");			obj.focus();			return true;		}		return false;	}	// ===============================================================	// ---------------------------------------------------------------	// Controlla il contenuto del Campo specificato prima di procedere	// ---------------------------------------------------------------	function FieldIsOK(obj, cStr, nTipo) {		if (!CheckInput (obj, cStr, nTipo))		{			obj.select();			obj.focus();		}		else if (obj.value == '')		{			alert ("Specificare un Valore nel campo: " + cStr + " !");			obj.focus();		}		else		{			return true;		}				return false;	}	// ===============================================================	// ---------------------------------------------------------------	// Controlla il Formato della Data Immessa	// ---------------------------------------------------------------	function CheckPIva(obj)	{		if (!IsPartitaIVA (obj))		{			alert("Attenzione: la Partita IVA potrebbe non essere corretta !");			return true;		}	}	function CheckCF(obj)	{		if (!IsCodiceFiscale (obj))		{			alert("Attenzione: il Codice Fiscale potrebbe non essere corretto !");			return true;		}	}	function CheckEmail(obj)	{		if (!IsEmail (obj))		{			alert("Attenzione: formato Email Errato !");			return true;		}	}	// ===============================================================	// ---------------------------------------------------------------	// Controlla il Formato della Data Immessa	// ---------------------------------------------------------------	function CheckDateFormat(obj, cStr)	{		var ok = true;		var UserInput = obj.value;		var RegExPattern = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;		var errorMessage = cStr + "\n\nLa data deve essere una data reale. " + obj.value + " non è valida.";		if (UserInput.length > 0) {			if (!obj.value.match(RegExPattern)) {				ok = false;				alert(errorMessage);			} 		}		return (ok);	}	// ===============================================================	// ---------------------------------------------------------------	// Restituisce gli Ultimi n Caratteri	// ---------------------------------------------------------------	function Right(str, n){		if (n <= 0)		   return "";		else if (n > String(str).length)		   return str;		else {		   var iLen = String(str).length;		   return String(str).substring(iLen, iLen - n);		}	}	// ---------------------------------------------------------------	// ---------------------------------------------------------------	// Trasforma i Caratteri in Maiuscolo	// ---------------------------------------------------------------	function Upper(TextField) 		{TextField.value = TextField.value.toUpperCase();}	// ===============================================================	// ---------------------------------------------------------------	// Verifica che il Valore sia un Numero	// ---------------------------------------------------------------	function IsInteger(cNumber)	{		var i = new RegExp("^[0-9]$");		return i.test(cNumber);	}	// ===============================================================	// ---------------------------------------------------------------	// Verifica CAP	// ---------------------------------------------------------------	function IsCAP(obj)	{		var i = new RegExp("^[0-9]{5}$");		if (obj.value != '')			if (!i.test(obj.value)) { return false; }				return true;	}	// ===============================================================	// ---------------------------------------------------------------	// Verifica Formato e Validità del Codice Fiscale	// ---------------------------------------------------------------	function IsCodiceFiscale(obj) 	{ 		var cf = (obj.value).toUpperCase(); 		var cfReg = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;		if (obj.value != '')		{			if (!cfReg.test(cf)) return false;		// Verifica Formato			var set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 			var set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ"; 			var setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 			var setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX"; 			var 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 false;		}		return true; 	}	// ===============================================================	// ---------------------------------------------------------------	// Verifica Formato e Validità della Partita IVA	// ---------------------------------------------------------------	function IsPartitaIVA(obj)	{		var i = new RegExp("[0-9]{11}");		var n_Val, n_Som1=0, n_Som2=0, lcv;		if (obj.value != '')		{			if (!i.test(obj.value)) return false;	// Verifica Formato			for (lcv=0; lcv<9; lcv+=2)			{				n_Val=parseInt((obj.value).charAt(lcv));				n_Som1+=n_Val;				n_Val=parseInt((obj.value).charAt(lcv+1));				n_Som1+=Math.floor(n_Val/5) + (n_Val<<1) % 10;			}			n_Som2 = 10 - (n_Som1 % 10);			n_Val=parseInt((obj.value).charAt(10));			if (n_Som2 == 10) n_Som2 = 0;			if (n_Som2 == n_Val) return true;			return false;		}		return true;	}	// ===============================================================	// ---------------------------------------------------------------	// Verifica Formato della EMAIL	// ---------------------------------------------------------------	function IsEmail(obj)	{		var i=new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.\\_]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");		if (obj.value != '')		{			if(!i.test(obj.value)) return false;			var email = obj.value;			var size = email.length;			var index = email.indexOf('@', 0);			address = email.substring(size + 1, index + 1);			userid =  email.substring(0, index);			// controlla: l'unicità del carattere "@";			// - la presenza del "." nella parte DX dell'indirizzo;			// - l'assenza di spazi e			// - che la stringa non sia del tipo userid@.address o userid.@address			if ((address.indexOf('@') != -1) || (userid.indexOf('@') != -1) ||				(address.indexOf('.') == -1) || (email.charAt(0) == '.') ||				(email.charAt(index - 1) == '.') || (email.charAt(index + 1) == '.'))			{				return false;			}		}		return true;	}	// ===============================================================// ===================================// EOF: MainFunctionCheckForm.js// ===================================
