/* FUNZIONI DI VALIDAZIONE */

// validateText	- validazione di campi testuali
function validateText(field, validationType, validationData) {
	if((field == null)||(validationType == null)){
		return false;
	}
	switch(validationType){
		case "notEmpty":
				return (field.value!="");
			break;
		case "email":
				return checkRegular('^(.+)@(.+)\.([a-z]{2,4})$',field.value);
			break;
		case "alphanum":
			return checkRegular('^[_A-Za-z0-9]+$',field.value);
		case "regExpr":
			if((validationData!=null)&& (validationData!='')){
				return checkRegular(validationData,field.value);
			} else {
				return true;
			}
		case "alphabetical":
				return checkRegular('^[A-Za-z]+$',field.value);
			break;
		case "numerical":
				return checkRegular('^[0-9]+$',field.value);
			break;
		case "inRange":
				var num = field.value;
				var isNum = checkRegular('^[0-9]+$',num);
				
				if((validationData==null)||validationData==''){
					return isNum;
				}
				/* DA GESTIRE INTERVALLO (per ora il confronto e' come il numerico )*/
				if(isNum){
					return true;
				}else{
					return false;
				}
			break;
		default:
			alert('validateText:\nValidazione sconosciuta: ' + validationType + '\nField: ' + field.name);
			return false;
	}
}

//	validateSelect - validazione select
function validateSelect(field, validationType, validationData) {
	if((field == null)||(validationType == null)){
		return false;
	}
	switch(validationType){
		case "isSelected":
				if (field.options[field.selectedIndex].value == validationData) {
					return false;
				}else{
					return true;
				}
			break;
		default:
			alert('validateText:\nValidazione sconosciuta: ' + validationType + '\nField: ' + field.name);
			return false;
	}
}

// validateRadioCheckbox - valida checkbox e radio
function validateRadioCheckbox(field, validationType, validationData) {
	if((field == null)||(validationType == null)){
		return false;
	}
	switch(validationType){
		case "isChecked":
				isSelected = false;
			
				if(field.length!=null){
					for (var i=0; i < field.length; i++) {
						if (field[i].checked) {
							isSelected = true;
						}
					}
				} else {
					isSelected=field.checked;
				}
				return isSelected;
			break;
		default:
			alert('validateText:\nValidazione sconosciuta: ' + validationType + '\nField: ' + field.name);
			return false;
	}

}


// checkRegular - utilizzata per verificare il match con una regular expression
function checkRegular(regS,value){
	var re=new RegExp(regS);
	return re.test(value)
}

/*************************************/
/* FUNZIONI PER I MESSAGGI DI ERRORE */
/*                                   */
function ShowError(str){
	alert(str);
}

function throwErrorMessageITA(fieldName,validationType) {
	var sRet;
	
		switch(validationType){
			case "notEmpty":
				sRet = fieldName + ":\nNon puo' essere vuoto.";
				break;
			case "email":
				sRet = fieldName + ":\nEmail non valida.";
				break;
			case "alphanum":
				sRet = fieldName + ":\nIl campo deve essere alfanumerico.";
				break;
			case "regExpr":
				sRet = fieldName + ":\nCaratteri non consentiti.";
				break;
			case "alphabetical":
				sRet = fieldName + ":\nIl campo deve essere alfabetico.";
				break;
			case "numerical":
				sRet = fieldName + ":\nIl campo deve essere numerico.";
				break;
			case "inRange":
				sRet = fieldName + ":\nIl valore inserito non rientra nell'intervallo ammesso.";
				break;
			case "isSelected":
				sRet = fieldName + ":\nSelezionare un valore.";
				break;
			case "isChecked":
				sRet = fieldName + ":\nSelezionare un valore.";
				break;
			default:
				sRet = 'messaggio errore mancante\nValidazione: ' + validationType + '\nField: ' + fieldName;
		}
	alert(sRet);
}

function throwErrorMessageENG(fieldName,validationType) {
	var sRet;
	
		switch(validationType){
			case "notEmpty":
				sRet = fieldName + ":\nNon puo' essere vuoto.";
				break;
			case "email":
				sRet = fieldName + ":\nEmail non valida.";
				break;
			case "alphanum":
				sRet = fieldName + ":\nIl campo deve essere alfanumerico.";
				break;
			case "regExpr":
				sRet = fieldName + ":\nCaratteri non consentiti.";
				break;
			case "alphabetical":
				sRet = fieldName + ":\nIl campo deve essere alfabetico.";
				break;
			case "numerical":
				sRet = fieldName + ":\nIl campo deve essere numerico.";
				break;
			case "inRange":
				sRet = fieldName + ":\nIl valore inserito non rientra nell'intervallo ammesso.";
				break;
			case "isSelected":
				sRet = fieldName + ":\nSelezionare un valore.";
				break;
				case "isChecked":
				sRet = fieldName + ":\nSelezionare un valore.";
				break;
		default:
				sRet = 'messaggio errore mancante\nValidazione: ' + validationType + '\nField: ' + fieldName;
		}
	alert('ENG: ' + sRet);
}
