function CheckMail(string, req) {
	if(!req && !string.length) return true;
	if(req && !string.length) return false;
	else {
		regexpCtrl = /^(\w+(?:\.\w+)*(?:\-\w+)*)@((?:\w\.)*\w[\w-]{0,66})\.(\w{2,66}(?:\.\w{2,6})?)$/i
		if(!regexpCtrl.test(string)) return false;
	}
	return true;
}

function CheckAlfaNum(string, req) {
	if(req && !string.length) return false;
	var charset = /[^A-Za-z0-9אטילעש _.?,'!-]/; //'
	if(charset.test(string)) return false;
	return true;
}

function CheckAlfa(string, req) {
	if(req && !string.length) return false;
	var charset = /\W/;
	if(charset.test(string)) return false;
	return true;
}

function CheckNum(string, req) {
	if(req && !string.length) return false;
	var charset = /[^0-9]/;
	if(charset.test(string)) return false;
	return true;
}

function CheckData(string, req) {
	if(req && !string.length) return true;
	else {
		var charset = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
		if(!charset.test(string)) return false;
		if (string.substring(0,2) > 31) return false;
		if (string.substring(3,5) > 12) return false;
		if (string.substring(6,10) < 1900) return false;
		//controllo giorno/mese 
		if ((string.substring(0,2) > 30) && ((string.substring(3,5) == "04") || (string.substring(3,5) == "06") || (string.substring(3,5) == "09") || (string.substring(3,5) == "11"))) {
			return false;
		}
		if (string.substring(6,10)%4) {
			//c'ט resto = NON bisestile
			if ((parseInt(string.substring(0,2),10) > 28) && (parseInt(string.substring(3,5),10) == 2)) {
				return false;
			}
		}else {
			//non c'ט resto = BISESTILE
			if ((parseInt(string.substring(0,2),10) > 29) && (parseInt(string.substring(3,5),10) == 2)) {
				return false;
			}
		}
		switch(parseInt(string.substring(3,5),10)) {
		  case 1:
		  case 3:
		  case 5:
		  case 7:
		  case 8:
		  case 10:
		  case 12:
		  	var maxgiorno = 31;
		  break;
		  default:
			var maxgiorno = 30;
		}
		if (parseInt(string.substring(0,2),10) > maxgiorno) {
			return false;			
		}
	}
	return true;
}

function CheckMaggiorenne(string, req) {
	if(req && !string.length) return true;
	else {
		var data = new Date();
		var anno = data.getFullYear();
		
		if (string.substring(6,10) == (anno - 18)) {
			if ((string.substring(3,5) > data.getMonth()+1) ) {
				return false;
			}
			else if ((data.getMonth()+1) == string.substring(3,5)) {
				if (string.substring(0,2) > data.getDate()) {
					return false;		
				}
			}
		}
	}
	return true;
}
