var CN_OBBLIG  = 1;
var CN_INTEGER = 2;
var CN_FLOAT   = 4;
var CN_DATA    = 8;
var CN_TIME    = 16;
var CN_MAIL    = 32;
var CN_URL     = 64;
var CN_ALFA     = 128;

function Control2(obj)
{
	var isOk=0;
	for (n1=0; n1< obj.length; n1++)
	{
		if (obj[n1].checked)
			isOk++;
	}

	if (!isOk)
	{
       obj[0].focus();
       alert("Occorre valorizzare il campo indicato");// + obj.name + "\" field.");
		return false;
	}
	return true;
}
function Control(obj, flags)
{
	// true = OK
   if (flags & CN_OBBLIG)
	{
   	if (obj.value == "")
      {
         obj.focus();
       alert("Occorre valorizzare il campo indicato");// + obj.name + "\" field.");
	   	return false;
      }
   }

   if (flags & CN_DATA)
	{
      var checkStr = obj.value;
      if (checkStr == "")
      	return true;

      
	   if (checkStr.length < 10 || checkStr.charAt(2) != "/" || checkStr.charAt(5) != "/")
		{
			alert("Data non valida\nformato accettato GG/MM/AAAA");
			obj.focus();
			return false;
		}

		var nGG, nMM, nAA;

		nGG = checkStr.charAt(0)+checkStr.charAt(1);
		nMM = checkStr.charAt(3)+checkStr.charAt(4);
		nAA = checkStr.charAt(6)+checkStr.charAt(7)+checkStr.charAt(8)+checkStr.charAt(9);


		if (nMM < 0 || nMM > 12)
		{
			alert("Data non valida\nformato accettato GG/MM/AAAA");
			obj.focus();
			return false;
		}

		if (nAA < 1990)
		{
			alert("Data non valida\nformato accettato GG/MM/AAAA (anno > 1990)");
			obj.focus();
			return false;
		}

		// verifica i giorni nel mese
		var GiorniNelMese = 31;

		if (nMM == 2) GiorniNelMese = (nAA % 4) ? 28 : 29;
		if (nMM == 4 || nMM == 6 || nMM == 9 || nMM == 11) GiorniNelMese = 30;

		if (nGG < 0 || nGG > GiorniNelMese)
		{
			alert("Data non valida\nformato accettato GG/MM/AAAA");
			obj.focus();
			return false;
		}


	}

   if (flags & CN_TIME)
	{
      var checkStr = obj.value;
      if (checkStr == "")
      	return true;

	   if (checkStr.length < 5 || (checkStr.charAt(2) != ":" && checkStr.charAt(2) != "."))
		{
			alert("ora non valida\nformati accettati HH:MM - HH.MM");
			obj.focus();
			return false;
		}

		var nHH, nMM;

		nHH = checkStr.charAt(0)+checkStr.charAt(1);
		nMM = checkStr.charAt(3)+checkStr.charAt(4);

		if (nHH < 0 || nHH > 23)
		{
			alert("ora non valida\nformati accettati HH:MM - HH.MM");
			obj.focus();
			return false;
		}

		if (nMM < 0 || nMM > 59)
		{
			alert("ora non valida\nformati accettati HH:MM - HH.MM");
			obj.focus();
			return false;
		}


	}

   if (flags & CN_INTEGER)
   {
      var checkOK = "0123456789-";
      var checkStr = obj.value;
      var allValid = true;
      var decPoints = 0;
      var allNum = "";
      for (i = 0;  i < checkStr.length;  i++)
      {
       ch = checkStr.charAt(i);
       for (j = 0;  j < checkOK.length;  j++)
         if (ch == checkOK.charAt(j))
           break;
       if (j == checkOK.length)
       {
         allValid = false;
         break;
       }
       allNum += ch;
      }
      if (!allValid)
      {
       obj.focus();
       alert("Campo non numerico");// \"" + obj.name + "\" field.");
       return (false);
      }
   }
 if (flags & CN_ALFA)
   {
      var checkOK = "qazwsxedcrfvtgbyhnujmiklpoQAZWSXEDCRFVTGBYH-_NUJMIKOLPÈÀ.:;,\"ÙÒèòàù \'";
      var checkStr = obj.value;
      var allValid = true;
      var decPoints = 0;
      var allNum = "";
      for (i = 0;  i < checkStr.length;  i++)
      {
       ch = checkStr.charAt(i);
       for (j = 0;  j < checkOK.length;  j++)
         if (ch == checkOK.charAt(j))
           break;
       if (j == checkOK.length)
       {
         allValid = false;
         break;
       }
       allNum += ch;
      }
      if (!allValid)
      {
       obj.focus();
       alert("Deve essere un campo non numerico");// \"" + obj.name + "\" field.");
       return (false);
      }
   }


   if (flags & CN_FLOAT)
   {
      var checkOK = "0123456789-,";
      var checkStr = obj.value;
      var allValid = true;
      var decPoints = 0;
      var allNum = "";
      for (i = 0;  i < checkStr.length;  i++)
      {
       ch = checkStr.charAt(i);
       for (j = 0;  j < checkOK.length;  j++)
         if (ch == checkOK.charAt(j))
           break;
       if (j == checkOK.length)
       {
         allValid = false;
         break;
       }
       if (ch == ",")
       {
         allNum += ".";
         decPoints++;
       }
       else
         allNum += ch;
      }
      if (!allValid)
      {
       obj.focus();
       alert("Campo non numerico");// \"" + obj.name + "\" field.");
       return (false);
      }

      if (decPoints > 1)
      {
       obj.focus();
       alert("Campo non numerico");// \"" + obj.name + "\" field.");
       return (false);
      }
	}

   if (flags & CN_MAIL)
	{
   	if (obj.value != "")
      {
         var bAt=false;
         var bTrovato=false;
         var checkStr = obj.value;
	      for (i = 0;  i < checkStr.length;  i++)
          {
          	ch = checkStr.charAt(i);
          	if (ch == "@")
          	{
          		bAt = true;
          	}

            if (bAt == true)
            {
            	if (ch == "." && i < checkStr.length-1)
            	{
               	bTrovato = true;
               }
            }

          }
		 if (!bTrovato)
		 {
	         obj.focus();
    	     alert("Indirizzo E-Mail non valido");// + obj.name + "\" field.");
		     return false;
    	 }
      }
   }

   if (flags & CN_URL)
	{
   	if (obj.value != "")
      {
         var bTrovato=false;
         var checkStr = obj.value;
         for (i = 0;  i < checkStr.length;  i++)
         {
          	ch = checkStr.charAt(i);
   	      if (ch == "." && i < checkStr.length-1)
	         {
      		   bTrovato = true;
	         }
         }
         if (!bTrovato)
         {
   	      obj.focus();
      	   alert("Indirizzo Web non valido");// + obj.name + "\" field.");
         	return false;
         }

		}
   }
   return true;
}
