// gestione input utente del form richiesta-side.inc
/*
Riferimenti:
form#id-form-richiesta
input#nome
input#cognome
input#email
input#telefono
select#provinciarichiedente
input#privacy
*/
/* -------------------------------------------------------------------------- */
/* FUNZIONE VALIDAZIONE FORM ------------------------------------------------ */
/* -------------------------------------------------------------------------- */

$.fn.CheckForm = function(){
	// variabile utilizzata per gestire l'invio: se qualche elemento non è valido allora cambio il valore in false
	var invia;
	var RegexEmail =/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	// recupero il valore del pulsante
	var btnTxtIniziale=$("input#btn_3").val();
	// funzione per comporre i dati nei campi input numerici -------------------
	var componiTel=function(numero){
		// imposto la variabile di base in base al valore numerico puro del campo
		// prendo >solo< i numeri e il +
		var num;
		num=numero.replace( /[^+0-9]/g , '');
		return num;
	};
	$("textarea#messaggio").css("color","#666").css("font-size","11px").html('Ad es. Giorno e Ora preferiti per il contatto telefonico').click(function(){$("textarea#messaggio").html('').css("font-size","12px").css("color","#000")});
	// funzione per il check di tutti i dati -----------------------------------
	function checkDati(){
		//
		if(
			$("input#nome").val().length >=2 &&
			$("input#cognome").val().length >=2 &&
			RegexEmail.test($("input#email").val()) &&
			$("input#telefono").val().length >=6 &&
			$("select#provinciarichiedente").val()!="" &&
			$("input#privacy").is(':checked')
		){
			// riattivo il pulsante
			$("input#btn_3").val(btnTxtIniziale).removeClass("disabled").addClass("red");
			invia=true;
		}else{
			// disattivo il pulsante e riscrivo il testo del pulsante stesso
			$("input#btn_3").val("INSERISCI I DATI").removeClass("red").addClass("disabled");
			invia=false;
		};
	};
	// intercetto gli eventi ---------------------------------------------------
	// nome
	$("input#nome").keyup(
		function(){
			this.value=this.value.replace(/[^a-z \xE0-\xFF\x27]/gi,'');
			if(this.value.length<2){
				$("#row_nome").addClass("alert");
			}else{
				$("#row_nome").removeClass("alert");
			}
			checkDati();
		}
	).focus(
		function(){
			// presento le sole lettere senza formattazione eliminando tutto il resto
			this.value=this.value.replace(/[^a-z \xE0-\xFF\x27]/gi, '');
		}
	);
	// cognome
	$("input#cognome").keyup(
		function(){
			this.value=this.value.replace(/[^a-z \xE0-\xFF\x27]/gi,'');
			if(this.value.length<2){
				$("#row_cognome").addClass("alert");
			}else{
				$("#row_cognome").removeClass("alert");
			}
			checkDati();
		}
	).focus(
		function(){
			// presento le sole lettere senza formattazione eliminando tutto il resto
			this.value=this.value.replace(/[^a-z \xE0-\xFF\x27]/gi, '');
		}
	);
	// email
	$("input#email").keyup(
		function(){
			// prendo i soli caratteri ammessi per un indirizzo email
			this.value=this.value.replace(/[^a-z0-9@\-_\.]/gi,'');
			//alert(!RegexEmail.test(this.value));
			if(!(RegexEmail.test(this.value))){
				$("#row_email").addClass("alert");
			}else{
				$("#row_email").removeClass("alert");
			}
			checkDati();
		}
	).focus(
		function(){
			// prendo i soli caratteri ammessi per un indirizzo email
			this.value=this.value.replace(/[^a-z0-9@\-_\.]/gi,'');
		}
	);
	// telefono
	$("input#telefono").keyup(
		function(){
			this.value=componiTel(this.value);
			if(this.value.length<6){
				$("#row_telefono").addClass("alert");
			}else{
				$("#row_telefono").removeClass("alert");
			}
			checkDati();
		}
	).focus(
		function(){
			// presento i numeri e il punto . senza formattazione eliminando tutto il resto
			this.value=this.value.replace(/[^0-9+]/g, '');
		}
	);
	// provincia richiedente
	$("select#provinciarichiedente").change(
		function(){
			if($("select#provinciarichiedente").val()==""){
				$("#row_provincia").addClass("alert");
			}else{
				$("#row_provincia").removeClass("alert");
			}
			checkDati();
		}
	);
	// privacy
	$("input:checkbox#privacy").click(
		function(){
			if($("input:checkbox#privacy").is(':checked')){
				$("#row_privacy").removeClass("alert");
			}else{
				$("#row_privacy").addClass("alert");
			}
			checkDati();
		}
	)
	//
	// -------------------------------------------------------------------------
	checkDati();
	// -------------------------------------------------------------------------
	this.submit(
		function(){
			if(invia){
				return true;
			}else{
				// se l'utente non modifica nulla devo comunque fare un controllo
				if($("input#nome").val().length<2){$("#row_nome").addClass("alert")};
				if($("input#cognome").val().length<2){$("#row_cognome").addClass("alert")};
				if(!(RegexEmail.test($("input#email").val()))){$("#row_email").addClass("alert")};
				if($("input#telefono").val().length<6){$("#row_telefono").addClass("alert")};
				if($("select#provinciarichiedente").val()==""){$("#row_provincia").addClass("alert")};
				if(!($("input#privacy").is(':checked'))){$("#row_privacy").addClass("alert")};
				//
				$("div#row_btn").append('<div class="msg_alert" id="msg_alert"><div class="msg_alert_inner">ATTENZIONE<br />Mancano dei dati</div></div>');
				$("div#msg_alert").fadeIn('slow').delay(1000).fadeOut('fast');
				//
				return false;
			};
		}
	);
};
/* -------------------------------------------------------------------------- */
/* FINE FUNZIONE VALIDAZIONE FORM ------------------------------------------- */
/* -------------------------------------------------------------------------- */
// ATTIVO IL CHECK A DOCUMENTO CARICATO
$(document).ready(function(){
	$('form#id-form-richiesta').CheckForm(); // Attivo il check del form
});
//

