function checkMail(emailStr) {
	var emailPat=/^(.+)@(.+)$/;
	var specialChar = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChar = "\[^\\s" + specialChar + "\]";
	var quotedUser = "(\"[^\"]*\")";
	var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom = validChar + '+';
	var word ="(" + atom + "|" + quotedUser + ")";
	var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat = new RegExp("^" + atom + "(\\." + atom + ")*$");
	var matchArray = emailStr.match(emailPat);
	if (matchArray == null) { 
		window.alert('Attenzione! Valore del campo "E-mail privata" non valido.');
		return false;
	};
	
	var user = matchArray[1];
	var domain = matchArray[2];
	if (user.match(userPat)==null) {
		window.alert('Attenzione! Nel campo "E-mail privata" lo username sembra non essere valido.');
		return false;
	};
		
	var ipArray = domain.match(ipDomainPat);
	if (ipArray != null) {
		for (var i=1; i <= 4;i++) {
			if (ipArray[i]>255) {
				window.alert('Attenzione! Nel campo "E-mail privata", l\'indirizzo IP non sembra essere valido.');
				return false;
			};
		};
		return true;
	};

	var domainArray = domain.match(domainPat);
	if (domainArray == null) {
		window.alert('Attenzione! Nel campo "E-mail privata", il nome del dominio sembra non essere valido.');
		return false;
	};
	
	var atomPat = new RegExp(atom,"g");
	var domArr = domain.match(atomPat);
	var len = domArr.length;
	if (domArr[domArr.length-1].length < 2 || domArr[domArr.length-1].length > 3) {
		window.alert('Attenzione! Nel campo "E-mail privata", l\'ultimo punto deve delimitare due o tre lettere.');
		return false;
	};
	
	if (len < 2) {
		var staterr = 'Attenzione! Nel campo "E-mail privata", non sembra esserci un nome hostname valido.';
		window.alert(staterr);
		return false;
	};
	return true;

/*	var myString = document.form.EMAIL2_RES.value
	var newstring = myString.match(/\b(^\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\.it)|(\..{2,2}))$\b/gi);
	if (!newString) return false;
	else return true;*/
};

function trimStr(variable) {
	if (!variable || variable == null || variable.length == 0)
		return true;

	for (r=0;r<variable.length;r++)
		if (variable.substring(r,r+1) != ' ')
			break;

	return (r == variable.length);
};

function check(pippo) {   
	if (trimStr(pippo.NOME.value)) {
		window.alert('Attenzione! Valore del campo "Nome" non valido.');
		return false;
	};
	if (trimStr(pippo.COGNOME.value)) {
		window.alert('Attenzione! Valore del campo "Cognome" non valido.');
		return false;
	};
	if (trimStr(pippo.NICK.value)) {
		window.alert('Attenzione! Valore del campo "Nickname" non valido.');
		return false;
	};
        if (trimStr(pippo.TEL_RES.value)) {
                window.alert('Attenzione! Valore del campo "Telefono" non valido.');
                return false;
        };
	if (!checkMail(pippo.EMAIL2_RES.value)) return false;
	if (trimStr(pippo.LUOGO_RES.value)) {
		window.alert('Attenzione! Valore del campo "Cittā di residenza" non valido.');
		return false;
	};
	var campi = new Array();
	campi[0] = 'NOME';
	campi[1] = 'COGNOME';
	campi[2] = 'NICKNAME';
	campi[3] = 'ANNAS';
	campi[4] = 'VIA_RES';
	campi[5] = 'CAP_RES';
	campi[6] = 'LUOGO_RES';
	campi[7] = 'TEL_RES';
	campi[8] = 'HOMEPAGE';
	campi[9] = 'ALTRO';
	for (i=0;i<campi.length;++i) {
		for (j=0;j<campi[i].length;++j) {
			if (trimStr(document.form.campi[i].value) && document.form.campi[i].value.substring(j,j+4) != 'exec'){
				window.alert('Attenzione! Il valore di alcuni campi č potenzialmente pericoloso!');
				return false;
			};
		};
	return false;
	};
};

