function searchIn (selection,value) {
	for (var i = 0; i < selection.length; i++)
		if (selection.options[i].value == value) {
			selection.selectedIndex = i
			return true
		}
	return false;
}
function isLiteral(s) {
	s = s.toLowerCase();
	for (var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (((c < 'a') || (c > 'z')) && (c != ' ') && (c != ',') && (c != '.') && (c != '\'') && (c != '/') && (c != '\(') && (c != '\)')) return false;
	}
	return true
}

function isNumeric(s) { 
	for (var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if ((c < '0') || (c > '9')) {return false;}
	}
	return true
}

function isAlphaNum(s) {
	for (var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if ((!isLiteral(c)) && (!isNumeric(c))) return false;
	}
	return true
}

function isMark(c) {
	if ((c != '\'') && (c != '\'') && (c != '?') && (c != '!') && (c != ';') && (c != ':') && (c != '-')) return false;
	return true; 
}

function isAccent(c) {
	if ((c != 'à') && (c != 'è') && (c != 'é') &&  (c != 'ì') && (c != 'ò') && (c != 'ù')) return false;
	return true;
}
function isText(s) {
	for (var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if ((!isAlphaNum(c)) && (!isMark(c)) && (!isAccent(c)) && (c.charCodeAt(0) != 13) && (c.charCodeAt(0) != 10)) return false;
	}
	return true
}
function isEmail(s) {
	if (s != '') {	
		var chiocciola,chiocciola2,punto;
		chiocciola = s.indexOf('@');
		chiocciola2 = s.lastIndexOf('@');
		punto = s.lastIndexOf('.'); 
		s = s.toLowerCase();
		if ((chiocciola < 2) || (chiocciola2 != chiocciola) || (punto < chiocciola+4) || (s.length-punto < 3)) 
			return false;
		for (var i = 0; i < s.length; i++) {
			var c = s.charAt(i);
			if ((!isAlphaNum(c)) && (c != '@') && (c != "_")) return false;
		}
		
	}
	return true;
}

function isCF(s) {
	if (s!= '') {	
		if (!sizeIs(s,16)) return false; 		
		if (!isLiteral(s.substr(0,6))) return false;
		if (!isNumeric(s.substr(6,2))) return false;
		if (!isLiteral(s.charAt(8))) return false;
		if (!isNumeric(s.substr(9,2))) return false;
		if (!isLiteral(s.charAt(11))) return false;
		if (!isNumeric(s.substr(12,3))) return false;
		if (!isLiteral(s.charAt(15))) return false;		
	}
	return true;
}

function isPIVA(s) {
	if((!sizeIs(s,11)) || (!isNumeric(s))) return false;
	return true
}
	
function isTag(s) {
	var apriTag=0;
	if((apriTag = s.indexOf("<") > 0) && (s.lastIndexOf(">") > apriTag)) return false; return true
}

function sizeIs(s,n) {
	if (s.length == n) return true; return false
}

function sizeIsLessThan(s,n) {
	if (s.length < n) return true; return false
}

function isNull(s) {
	if (sizeIs(s,0)) return true; return false
}

function isGGMMAAAA(s) {
	if (minAge == null) var minAge = 0;
	if (!isNumeric(s) || (!sizeIs(s,8))) return false;
	var GG = s.substr(0,2);
	var MM = s.substr(2,2);
	var AAAA = s.substr(4,4);
	var lRitorno=false;
	if (MM=="11" || MM=="04" || MM=="06" || MM=="09") lRitorno=(GG<"31");
	else 
		if (MM=="02") lRitorno = ((GG < "29") || ((GG == "29") && (AAAA % 4 == 0) && (AAAA % 400 == 0)));
		else
			lRitorno = (MM<"13" && GG<"32")
	return lRitorno;
}

function isGGMMAAAAbDay(s,minAge) {
// this function correctly checks DDMMYYYY birthdates for people older than minAge
	if (s != ''){	
		if (minAge == null) var minAge = 0;
		var AAAA = s.substr(4,4);
		var Now = new Date();
		if ((!isGGMMAAAA(s)) || (AAAA > Now.getYear()-minAge)) return false;
	}
	return true;

}

function searchIn (selection,value) {
	for (var i = 0; i < selection.length; i++)
		if (selection.options[i].value == value) {
			selection.selectedIndex = i
			return true
		}
	return false;
}

function showErr (fieldName) {
	alert("Il campo '"+fieldName+"' contiene caratteri non validi!");
}
