/*-----DIPENDENTE DA JQUERY*/
function checkFields(form,noAlert){
	var doReturn =checkCampiObbligatori(form,noAlert);
	if(doReturn==true)doReturn = checkCampiEmail(form,noAlert);
	if(doReturn==true)doReturn = checkCampiNumerici(form,noAlert);
	if(doReturn==true)doReturn = checkCampiData(form,noAlert);	
	return doReturn;
}	
function checkCampiObbligatori(form,noAlert){return checkCampo(form,'fieldObbligatorio','Compila tutti i campi obbligatori',noAlert);}	
function checkCampiEmail(form,noAlert){return checkCampo(form,'email','Attenzione, il formato dell\'e-mail non e\' corretto',noAlert);}
function checkCampiNumerici(form,noAlert){return checkCampo(form,'digit','Attenzione, I valori devono essere numerici',noAlert);}	
function checkCampiData(form,noAlert){return checkCampo(form,'date','Per le date utilizzare il formato : gg/mm/aaaa',noAlert);}
function checkCampo(form,classe,frase,noAlert){
	var doReturn = true;
	var checkMandatory =false; 
	if(classe == 'fieldObbligatorio')checkMandatory = true;
	
	var check = false;
	var assertEmpty=false;
	if(classe == 'email'){
		check = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$/i;
		assertEmpty=true;
	}
	else if(classe=='date'){
		check = /^([0-9]{2})([\/]{1})([0-9]{2})([\/]{1})([0-9]{4})$/;
		assertEmpty=true;
		}
	else if(classe=='digit'){
		check = /^([0-9\.])*$/;
		assertEmpty=true;
	}
	
	$('#' + form + ' .' + classe + ':visible').each(
		function(i){
			var val = trim(this.value);
			if($(this).attr('type')=='radio'){
				val = $("input[@name='" + $(this).attr('name')  + "']:checked").val();
				if(!val)
					val='';
			}
			
			if($(this).attr('type')=='checkbox'){
				if(!$(this).is(':checked'))
					val='';
			}
			
			if(checkMandatory && this.disabled!=true && val.length < 1){
				if(!noAlert){
					alert(frase);
					$(this).addClass('error');
					$(this).focus();
					doReturn = false;
					return false;
				}
				else{
					$(this).addClass('evidenzia');
					doReturn = $(this);
					return $(this);
				}
			}
			if(checkMandatory == false && 
			(assertEmpty==false || assertEmpty==true && val.length >0) ) {
				if(check && !check.test(val)) {
					if(!noAlert){
						alert(frase);
						$(this).addClass('error');
						$(this).focus();
						doReturn = false;
						return false;
					}
					else{
						$(this).addClass('evidenzia');
						doReturn = $(this);
						return $(this);
					}
				}
			}
		}
	)
	return doReturn;
}	
function trim(stringa){
	while (stringa.substring(0,1) == ' '){stringa = stringa.substring(1, stringa.length);}
	while (stringa.substring(stringa.length-1, stringa.length) == ' '){stringa = stringa.substring(0,stringa.length-1);}
	return stringa;
}
