function conferma ()
  {
	var agree = confirm ("Confermi l'operazione ?");
	if (agree) { return true; }
	else { return false; }
  }



function popup (page, name, w, h)
  {
	var param = 'resizable=yes,scrollbars=no,width=' + w + ',height=' + h;
	window.open (page, name, param);
  }



function caratterieuro (string)
  {
	var Chars = "0123456789.+-";
	if (!string) { return true; }
	for (var i = 0; i < string.length; i++)
	  {
		if (Chars.indexOf(string.charAt(i)) == -1)
		  { return false; }
	  }
	return true;
  }



function valutavalida (string)
  {
	// attenzione: la valuta è sempre nel formato [+-]0.0
	//    e la virgola viene sempre rifiutata
	//	  oppure solo numerica
	var err = "";
	if (isNaN (string))
	  { 
		if (!caratterieuro (string))
		  { err = err + '\nUsati caratteri non validi'; }
		  else if ((string.indexOf(".") == string.lastIndexOf(".")) && (string.indexOf(".") > 0) && (string.charAt[0] == '.'))
				 { err = err + '\nAmmesso solo un .'; }
				 else {
						var nuova = string;
						if ((string.charAt[0] == '+') || (string.charAt[0] == '-'))
						  { nuova = nuova.substring (1); }
						var nopunto = nuova.replace (/./, "");
						if (isNaN (nopunto))
						  { err = err + '\n+ e - solo iniziali'; }
						var pospunto = string.indexOf ('.');
						var intero = nuova.slice (0, pospunto);
						var decimale = nuova.slice (pospunto + 1);
						if (intero.length < 1)
						  { err = err + '\nFormato non corretto 1'; }
						if ((pospunto > 0) && (decimale.length < 1))
						  { err = err + '\nFormato non corretto 2'; }
					  }
	  }
	if (err == "") { return true; } else { return false; }
  }



function caratteridata (string)
  {
	var Chars = "0123456789/";
	if (!string) { return true; }
	for (var i = 0; i < string.length; i++)
	  {
		if (Chars.indexOf(string.charAt(i)) == -1)
		  { return false; }
	  }
	return true;
  }



function stringapulita (string)
  {
	var Chars = " 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	var Nuova = "";
	for (var i = 0; i < string.length; i++)
	  {
		if (Chars.indexOf(string.charAt(i)) == -1)
		  { Nuova = Nuova; } // non aggiungo il carattere
		  else { Nuova = Nuova + string.charAt(i); }
	  }
	return Nuova;
  }



function datavalida (data)
  {
	// attenzione: la data è sempre nel formato gg/mm/yyyy
	var err = "";
	if (!caratteridata (data)) { err = err + '\nUsati caratteri non numerici'; }
	 else {
			var arr = data.split ('/');
			var d = arr [0];
			var m = arr [1];
			var y = arr [2];
			var lim;

			if (d != '') { d = d - 0; } else { err = err + '\nGiorno: non numerico'; d = 0; }
			if (m != '') { m = m - 0; } else { err = err + '\nMese: non numerico'; m = 0; }
			if (y != '') { y = y - 0; } else { err = err + '\nAnno: non numerico'; y = 0; }

			if (isNaN (d) || isNaN (m) || isNaN (y)) { err = err + '\nData: non numerica'; }
			if ((m > 12) || (m < 1)) { err = err + '\nMese: sconosciuto'; }
			if (m == 2)
			  { lim = 28;
				if (y % 4 == 0) { lim = lim + 1; }
			  } else { lim = 31;
					   if ((m == 4) || (m == 6) || (m == 9) || (m == 11)) { lim = lim - 1; }
					 }
			if (d < 1) { err = err + '\nGiorno: sconosciuto'; }
			if (d > lim) { err = err + '\nGiorno: sconosciuto'; }

			if (y < 100) { y = 2000 + y; }
		  }

	if (err == "") { return true; } else { return false; }
  }



function CheckAutent ()
  {
	var msg = "";
	if (document.FormLogin.login.value == "") { msg = msg + "\n - Nome utente: vuoto"; }
	if (document.FormLogin.pwd.value == "") { msg = msg + "\n - Password: vuota"; }
	if (msg == "")
	  { return true; }
	  else { alert ("Sono stati riscontrati alcuni errori:\n" + msg + "\n\nPer favore correggere gli errori elencati prima di confermare nuovamente i dati"); return false; }
  }



function CheckRemPass ()
  {
	var msg = "";
	if (document.FormLogin.email.value == "") { msg = msg + "\n - Email: vuota"; }
	if (msg == "")
	  { return true; }
	  else { alert ("Sono stati riscontrati alcuni errori:\n" + msg + "\n\nPer favore correggere gli errori elencati prima di confermare nuovamente i dati"); return false; }
  }



function ValiditaPiva (pi)
  {
	var StampaAlert = false;
	if ( pi == 0 ) { return true; }
	if ( pi.length != 11 )
	  {	if (StampaAlert) { alert ( "La lunghezza della partita IVA non è\n" +
								   "corretta: la partita IVA dovrebbe essere lunga\n" +
								   "esattamente 11 caratteri.\n" ); }
		return false; }
	var validi = "0123456789";
	for (var i = 0; i < 11; i++ )
	  {
		if ( validi.indexOf( pi.charAt(i) ) == -1 )
		  { if (StampaAlert) { alert ( "La partita IVA contiene un carattere non valido `" +
									   pi.charAt(i) + "'.\nI caratteri validi sono le cifre.\n" ); }
			return false; }
	  }
	var s = 0;
	for ( i = 0; i <= 9; i += 2 )
	  { s += pi.charCodeAt(i) - '0'.charCodeAt(0); }
	var c = 0;
	for ( i = 1; i <= 9; i += 2 )
	  {
		c = 2 * ( pi.charCodeAt(i) - '0'.charCodeAt(0) );
		if ( c > 9 ) { c = c - 9; }
		s += c;
	  }
	if ( ( 10 - s % 10 ) % 10 != pi.charCodeAt(10) - '0'.charCodeAt(0) )
	  { if (StampaAlert) { alert ( "La partita IVA non è valida:\n" +
								   "il codice di controllo non corrisponde.\n" ); }
		return false; }

	// se non ha dato nessun errore fino qui, tutto ok
	return true;
  }



function ValiditaCodfisc (cf)
  {
	var StampaAlert = false;
	if ( cf == 0 ) { return true; }
	cf = cf.toUpperCase();
	if ( cf.length != 16 )
	  { if (StampaAlert) { alert ( "La lunghezza del codice fiscale non è\n" +
								   "corretta: il codice fiscale dovrebbe essere lungo\n" +
								   "esattamente 16 caratteri.\n" ); }
		return false; }
	var validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	for (var i = 0; i < 16; i++ )
	  {
		if ( validi.indexOf( cf.charAt(i) ) == -1 )
		  { if (StampaAlert) { alert ( "Il codice fiscale contiene un carattere non valido `" +
									   cf.charAt(i) + "'.\nI caratteri validi sono le lettere e le cifre.\n" ); }
			return false; }
	  }
	var set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
	var s = 0;
	for ( i = 1; i <= 13; i += 2 )
	  {	s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) ))); }
	for ( i = 0; i <= 14; i += 2 )
	  {	s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) ))); }
	if ( s % 26 != cf.charCodeAt(15)-'A'.charCodeAt(0) )
	  { if (StampaAlert) { alert ( "Il codice fiscale non è corretto:\n" +
								   "il codice di controllo non corrisponde.\n" ); }
		return false; }

	// se non ha dato nessun errore fino qui, tutto ok
	return true;
  }



// restituisce il codice ascii di un dato carattere
function chr (ascii)
  {
	return String.fromCharCode (ascii);
  }



function stringanostrani (string)
  {
/*
  if (!string) { return true; }
	for (var i = 0; i < string.length; i++)
	  {
		// windows non ammette:   \ / : ; * ? " < > |
		if ((string.charCodeAt(i) < 32) || ((string.charCodeAt(i) > 161) && (string.charCodeAt(i) < 166)) || (string.charCodeAt(i) == 92) || (string.charCodeAt(i) == 47) || (string.charCodeAt(i) == 58) || (string.charCodeAt(i) == 59) || (string.charCodeAt(i) == 42) || (string.charCodeAt(i) == 63) || (string.charCodeAt(i) == 34) || (string.charCodeAt(i) == 60) || (string.charCodeAt(i) == 62) || (string.charCodeAt(i) == 124)) // non (sotto al codice dello spazio oppure (cent, pound, valuta, yen) oppure uno di quelli non validi per windows)
		  { // alert ('trovato carattere non valido: ('+string.charCodeAt(i)+')'+string.charAt(i));
			return false; }
		if ((string.indexOf("\\") > 0) || (string.indexOf("/") > 0) || (string.indexOf(":") > 0) || (string.indexOf(";") > 0) || (string.indexOf("*") > 0) || (string.indexOf("?") > 0) || (string.indexOf('"') > 0) || (string.indexOf("<") > 0) || (string.indexOf(">") > 0) || (string.indexOf("|") > 0))
		  { // alert ('trovato carattere non valido: ('+string.charCodeAt(i)+')'+string.charAt(i));
			return false; }
		  // else alert ('carattere valido: ('+string.charCodeAt(i)+')'+string.charAt(i));
	  }
*/
	return true;
  }

