//* controlla che la stringa ricevuta sia una email
function isEmail(sText, sNomeCampo) {

	// controllo esistenza
    var intMinLen = 5;
    if(sText.length < intMinLen) 
    {
        alert("Inserire nel campo " + sNomeCampo + " un indirizzo email valido");
        return (false);
     }


	// inserito controllo con le espressioni regolari (veloce)
	// are regular expressions supported?
	var supported = 0;
	if (window.RegExp) 
	{
		var tempStr = "a";
		var tempReg = new RegExp(tempStr);
		if (tempReg.test(tempStr)) supported = 1;
	}
	
	if (supported) 
	{
		var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
		var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
		var res = (!r1.test(sText) && r2.test(sText)); 
		if (!res) alert(sNomeCampo + " scritta in modo errato");
		return (res);
	//else
	//	  return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
	}
	
	// controllo alla vecchia maniera senza espressioni regolari
	//anche lo spazio non è consentito
    var iChars = "*|,\":<>[]{}`\';()&$#% ";	
    for (var i = 0; i < sText.length; i++) 	
    {
    	if (iChars.indexOf(sText.charAt(i)) != -1)
		{
         	alert("Attenzione! Il campo " + sNomeCampo + " contiene caratteri non consentiti");
         	return (false);
		}
	}

	var txtAmpersand = "/@/i";
    if( sText.search(txtAmpersand) < 0 ) 
    {
        alert("Attenzione! Nel campo " + sNomeCampo + " manca il separatore (@) tra account e dominio");
        return (false);
    }

    var txtDot = "/(\.)/i";
    if( sText.search(txtDot) < 0 ) 
    {
       alert("Attenzione! Nel campo " + sNomeCampo + " manca il separatore (.) di dominio");
       return (false);
    }

   return true;
}              


//* Bohhh!
function isProper(string) {
	/*
   if (!string) return false;
   var iChars = "*|,\":<>[]{}`\';()@&$#%";

   for (var i = 0; i < string.length; i++) {
      if (iChars.indexOf(string.charAt(i)) != -1)
         return false;
   }
   return true;
   */
} 


//* controllo testo di tipo provincia (due caratteri)
//* IN: testo, NomeCampo per messaggio di errore, flag se il campo necessario

function isProv(sText, sNomeCampo, fBold) { 
	
    var intMinLen = 2;
    if (fBold && sText.length != intMinLen) 
    {
        alert('Attenzione! Il campo ' + sNomeCampo + ' deve essere necessariamente compilato');
        return (false);
    }
        
	var sCharOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ";
	var fAllValid = true;
	for (i = 0;  i < sText.length;  i++)
	{
	  ch = sText.charAt(i);
	  for (j = 0;  j < sCharOK.length;  j++)
	    if (ch == sCharOK.charAt(j))
	      break;
	  if (j == sCharOK.length)
	  {
	    fAllValid = false;
	    break;
	  }
	}
	if (!fAllValid)
	{
	  alert("Il campo " + sNomeCampo + " deve essere compilato con sole lettere");
	  return (false);
	}

	return (true); 
} 

//* controllo testo di tipo CAP (5 caratteri minimo)
//* IN: testo, NomeCampo per messaggio di errore, flag se il campo necessario
function isCAP(sText, sNomeCampo, fBold) {

    var intMinLen = 5;
   
    if (fBold && sText.length < intMinLen) 
    {
      alert("Attenzione! Il campo " + sNomeCampo + " deve essere necessariamente compilato");
      return (false);
    }
       
	var sCheckOK = "0123456789-";
	var fAllValid = true;
	var decPoints = 0;
	//var sAllNum = "";
	for (i = 0;  i < sText.length;  i++)
	{
	  ch = sText.charAt(i);
	  for (j = 0;  j < sCheckOK.length;  j++)
	    if (ch == sCheckOK.charAt(j))
	      break;
	  if (j == sCheckOK.length)
	  {
	    fAllValid = false;
	    break;
	  }
	  //allNum += ch;
	}
	if (!fAllValid) 
	{
	  alert("Il campo " + sNomeCampo + " può contenere solo numeri");
	  return (false);
	}
	return (true);
} 


function isTel(sText, sNomeCampo, fBold) {
	
	var intMinLen = 5;
	if (fBold && sText.length < intMinLen) 
    {
      alert('Attenzione! Il campo ' + sNomeCampo + ' deve essere necessariamente compilato');
      return (false);
    }

	var sCheckOK = "0123456789-/+ ";
	var fAllValid = true;
	//var decPoints = 0;
	//var allNum = "";
	for (i = 0;  i < sText.length;  i++)
	{
	  ch = sText.charAt(i);
	  for (j = 0;  j < sCheckOK.length;  j++)
	    if (ch == sCheckOK.charAt(j))
	      break;
	  if (j == sCheckOK.length)
	  {
	    fAllValid = false;
	    break;
	  }
	  //allNum += ch;
	}
	if (!fAllValid)
	{
	  alert("Il campo " + sNomeCampo + " può contenere solo numeri ed i caretteri / + -");
	  return (false);
	}

	return (true);
} 


function isPIVA(sText, sNomeCampo, fBold) {
	var intMinLen = 10;
    if (fBold && sText.length < intMinLen) 
    {
      alert('Attenzione! Compilare il campo ' + sNomeCampo);
      return (false);
    }

/*	
	var sCheckOK = "0123456789";
	var fAllValid = true;
	//var decPoints = 0;
	//var allNum = "";
	for (i = 0;  i < sText.length;  i++)
	{
	  ch = sText.charAt(i);
	  for (j = 0;  j < sCheckOK.length;  j++)
	    if (ch == sCheckOK.charAt(j))
	      break;
	  if (j == sCheckOK.length)
	  {
	    fAllValid = false;
	    break;
	  }
	  //allNum += ch;
	}
	if (!fAllValid)
	{
	  alert("Il campo " + sNomeCampo + " può contenere solo numeri");
	  return (false);
	}
*/
	return (true);
} 





