/*
' Routines x validate di una Form
'	Tutte le funzioni ritornano true in caso di valori corretti, false altrimenti. In caso di non validità viene mostrato un messaggio informativo al navigante e il focus passa direttamente al controllo incriminato.
'	Attualmente la validazione dei dati non è implementata in edgui.inc.asp, ma è demandata alla pagina chiamante (vedere modello pagina tipo).
'		FUNCTION ValidateRequired( ctrl, label )
'			Scopo:
'				Verifica che un controllo di tipo testuale non sia vuoto.
'			Return:
'				true se ctrl.value.length>0, false altrimenti.
'			Esempi:
'				if ( !ValidateRequired( elements['Codice'], "Codice Articolo" ) ) return false;
'		FUNCTION ValidateEmail( ctrl, label )
'			Scopo:
'				Verifica che un controllo di tipo testuale contenga un indirizzo email corretto.
'			Return:
'				true se ctrl.value è un indirizzo email corretto, false altrimenti.
'			Esempi:
'				if ( !ValidateEmail( elements['Email'], "Indirizzo E-mail" ) ) return false;
'		FUNCTION AuthenticateFilter( t )
'			Scopo:
'				Filtra i caratteri non validi x una Password (sono caratteri validi gli alfanumerici e _-.@). Viene utilizzato internamente da ValidatePassword().
'				N.B. eventuali modifiche a questa funzione andranno ripetute x l'omonima funzione VBS in "Authentication.inc.asp".
'			Return:
'				la sequenza di caratteri validi contenuti in t.
'		FUNCTION ValidatePassword( ctrl, label )
'			Scopo:
'				Verifica che un controllo di tipo testuale contenga una Password corretta (Attualmente controlla che la lunghezza sia compresa fra 6 e 30 e composta da caratteri alfanumerici e _-.@).
'			Return:
'				true se ctrl.value è una Password corretta , false altrimenti.
'			Esempi:
'				if ( !ValidatePassword( elements['Password'], "Password" ) ) return false;
'		FUNCTION ValidateData( ctrl, label )
'			Scopo:
'				Verifica che un controllo di tipo testuale contenga una data corretta nel formato g/m/a.
'			Return:
'				true se ctrl.value è una data corretta , false altrimenti.
'			Esempi:
'				if ( !ValidateData( elements['Nascita'], "Data di Nascita" ) ) return false;
'		function DateDiff( data1, data2 )
'			Scopo:
'				restituisce la differenza in giorni di due date
'			Return:
'				n. di giorni di differenza
'			Esempi:
'				Diff = DateDiff( '10/10/2005', '08/10/2005' );	==>	Diff = 2
*/
	function ValidateRequired( ctrl, label ){
		if ( ctrl.value.length == 0 ){
			alert("\'" + label + "\' non può essere omesso!");
			ctrl.focus();
			return false;
		}
		return true;
	}

	function ValidateEmail( ctrl, label ){
		if ( !ctrl.value.match(/^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/) ){
			alert("\'" + label + "\' non è un indirizzo email valido!");
			ctrl.focus();
			return false;
		}
		return true;
	}

	function AuthenticateFilter(t){
		var r = "";
		for( var i = 0; i<t.length; i++){
			var c = t.charAt(i);
			if( (c>="A" && c<="Z") || (c>="a" && c<="z") || (c>="0" && c<="9") || ("@_.-".indexOf(c)!=-1) ){
				r += c;
			}
		}
		return r;
	}
	function ValidatePassword( ctrl, label ){
		var vPassword = ctrl.value;
		if ( (vPassword.length<6) || (vPassword.length>30) || (vPassword != AuthenticateFilter(vPassword)) ){
			alert("\'" + label + "\' non è valida!\nInserire da 6 a 30 lettere, cifre, \'@\',\'_\',\'.\',\'-\'");
			ctrl.focus();
			return false;
		}
		return true;
	}

	function ValidateData( ctrl, label ){
		var p = ctrl.value.split("/");
		var ok = false;
		if (p.length==3){
			var d = new Date( p[2], p[1]-1, p[0] );
			ok = !( (d == NaN) || (d.getDate()!=p[0]) || ((d.getMonth()+1)!=p[1]) || (d.getFullYear()!=p[2]) );
		}
		if ( !ok ){
			alert("\'" + label + "\' non è un data valida nel formato g/m/a!");
			ctrl.focus();
		}
		return ok;
	}

	function DateDiff( data1, data2 ){
		var p = data1.split("/");
		var s1 = new Date(p[2], p[1], p[0]);
		p = data2.split("/");
		var s2 = new Date(p[2], p[1], p[0]);
		s1=s1 / 86400000;
		s2=s2 / 86400000;
		return s1-s2;
	}

	function ValidateValuta( ctrl, label ){
		if ( !ctrl.value.match(/^[0-9]+([\\,\\.]\d\d)?$/) ){
			alert("\'" + label + "\' non è valido!\nInserire un importo utilizzando eventualmente la , per separare le due cifre decimali");
			ctrl.focus();
			return false;
		}
		return true;
	}



















