function combo(selection,value) {
	for (var i = 0; i < selection.length; i++)
		if (selection.options[i].value == value) {
			selection.selectedIndex = i
			return true
		}
	return false;
}
function alfabetico(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 != '\(') && (c != '\)')) return false;
	}
	return true
}

function numerico(s) { 
	for (var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if ((c < '0') || (c > '9')) {return false;}
	}
	return true
}

function alfanumerico(s) {
	for (var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if ((!alfabetico(c)) && (!numerico(c))) return false;
	}
	return true
}

function float(val) {
	for (var i = 0; i < val.length; i++) {
		var c = val.charAt(i);
		if ((!numerico(c)) && (c != ',') && (c != '.')) return false
	} return true
}

function mark(c) {
	if ((c != '\'') && (c != '\'') && (c != '?') && (c != '!') && (c != ';') && (c != ':') && (c != '-')) return false;
	return true; 
}

function accento(c) {
	if ((c != 'à') && (c != 'è') && (c != 'é') &&  (c != 'ì') && (c != 'ò') && (c != 'ù')) return false;
	return true;
}
function testo(s) {
	for (var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if ((!alfanumerico(c)) && (!mark(c)) && (!accento(c)) && (c.charCodeAt(0) != 13) && (c.charCodeAt(0) != 10)) return false;
	}
	return true
}
function email(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 ((!alfanumerico(c)) && (c != '@') && (c != "_")) return false;
		}
		
	}
	return true;
}

function codfisc(s) {
	if (s!= '') {	
		if (!dimensione(s,16)) return false; 		
		if (!alfabetico(s.substr(0,6))) return false;
		if (!numerico(s.substr(6,2))) return false;
		if (!alfabetico(s.charAt(8))) return false;
		if (!numerico(s.substr(9,2))) return false;
		if (!alfabetico(s.charAt(11))) return false;
		if (!numerico(s.substr(12,3))) return false;
		if (!alfabetico(s.charAt(15))) return false;		
	}
	return true;
}

function iva(s) {
	if((!dimensione(s,11)) || (!numerico(s))) return false;
	return true
}
	
function tag(s) {
	var apriTag=0;
	if((apriTag = s.indexOf("<") > 0) && (s.lastIndexOf(">") > apriTag)) return false; return true
}

function dimensione(s,n) {
	if (s.length == n) return true; return false
}

function dimensioneminore(s,n) {
	if (s.length < n) return true; return false
}

function nullo(s) {
	if (dimensione(s,0)) return true; return false
}

function data(s) {
	if (minAge == null) var minAge = 0;
	if (!numerico(s) || (!dimensione(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 datanascita(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 ((!data(s)) || (AAAA > Now.getYear()-minAge)) return false;
	}
	return true;

}

function radio (selection,value) {
	if (selection.length) {
		for (var i = 0; i < selection.length; i++)
			if (selection[i].value == value) {
				selection[i].checked = true;
				return true
			}
	}
	else {
		selection.checked = true;
	}
	return false;
}

function errore (fieldName) {
	alert("Il campo '"+fieldName+"' contiene caratteri non validi!");
}
function copia(el)
{
	var varianti = el.length;
	var values = new Array();
	for (var i=0;i<varianti;i++) {
		values[i] = el[i].value;
		for (var j=0;j<i;j++)
			if ((values[i] == values[j]) && (values[j])) return true 
	}
	return false
}

