defaultStatus = 'ANC Environnement - Bureau d\'études spécialisé en Assainissement Non Collectif';

var lstmsg = new Array();
lstmsg[0] = "L'adresse mèl n'est pas valide.\nIl n'y a pas de caractère @\nUne adresse mèl valide est du type \"adresse@domaine.com\"";
lstmsg[1] = "L'adresse mèl n'est pas valide.\nIl ne peut pas y avoir un point (.) juste après @\nUne adresse mèl valide est du type \"adresse@domaine.com\"";
lstmsg[2] = "L'adresse mèl n'est pas valide.\nL'adresse mèl ne peut pas finir par un point (.)\nUne adresse mèl valide est du type \"adresse@domaine.com\"";
lstmsg[3] = "L'adresse mèl n'est pas valide.\nL'adresse mèl ne peut pas contenir 2 points (.) qui se suivent.\nUne adresse mèl valide est du type \"adresse@domaine.com\"";
lstmsg[4] = "Le champ '<FIELD_LABEL>' ne doit pas être vide";
lstmsg[5] = "Le champ '<FIELD_LABEL>' doit être un nombre entier valide";
lstmsg[6] = "Le champ '<FIELD_LABEL>' doit être un nombre réel valide";
lstmsg[7] = "Le champ '<FIELD_LABEL>' doit être une date valide";
lstmsg[8] = "Le champ '<FIELD_LABEL>' doit être une heure valide";
lstmsg[9] = "Vous devez sélectionner une valeur pour le champ '<FIELD_LABEL>'";
lstmsg[10] = "Le champ '<FIELD_LABEL>' doit être une couleur valide (#ffff00 / jaune / yellow)";

var error_bgcolor = "#FFAAAA";

function ploopi_validatefield(field_label, field_object, field_type)
{
  var ok = true;
  var i;
  var nbpoint = 0;
  var msg = new String();
  var reg = new RegExp("<FIELD_LABEL>","gi");

  if (field_object)
  {
    field_value = field_object.value;
    if (field_type == 'selected')
    {
      msg = lstmsg[9];
      ok = (field_object.selectedIndex > 0);
    }

    if (field_type == 'checked')
    {
      msg = lstmsg[9];
      ok = false;
      for (c = 0; c < field_object.length; c++)
      {
        if (field_object[c].checked) ok = true;
      }
    }

    if (field_type == 'email')
    {

      var email = field_value;
      var aroba = email.indexOf("@");

      if (aroba == -1)
      {
        ok = false;
        msg = lstmsg[0];
      }

      if (ok)
      {
        var point = email.indexOf(".", aroba);
        if ((point == -1) || (point == (aroba + 1)))
        {
          ok=false;
          msg = lstmsg[1];
        }
      }

      if (ok)
      {
        var point = email.lastIndexOf(".");
        if ((point + 1) == email.length)
        {
          ok = false;
          msg = lstmsg[2];
        }
      }

      if (ok)
      {
        point = email.indexOf("..")
        if (point != -1)
        {
          ok = false;
          msg = lstmsg[3];
        }
      }
    }

    if (field_type == 'emptyemail')
    {
      if (field_value.length!=0)
      {
        var email = field_value;
        var aroba = email.indexOf("@");

        if (aroba == -1)
        {
          ok = false;
          msg = lstmsg[0];
        }

        if (ok)
        {
          var point = email.indexOf(".", aroba);
          if ((point == -1) || (point == (aroba + 1)))
          {
            ok=false;
            msg = lstmsg[1];
          }
        }

        if (ok)
        {
          var point = email.lastIndexOf(".");
          if ((point + 1) == email.length)
          {
            ok = false;
            msg = lstmsg[2];
          }
        }

        if (ok)
        {
          point = email.indexOf("..")
          if (point != -1)
          {
            ok = false;
            msg = lstmsg[3];
          }
        }
      }
    }

    if (field_type == 'color')
    {
      var color = new ploopi_rgbcolor(field_value);
      if (!color.ok)
      {
        ok = false;
        msg = lstmsg[10];
        alert('ici');
      }
    }

    if (field_type == 'string')
    {
      if (field_value.replace(/(^\s*)|(\s*$)/g,'').length==0)
      {
        ok = false;
        msg = lstmsg[4];
      }
    }

    if (field_type == 'int')
    {
      if (field_value.length==0 || field_value.length>12) ok = false;
      for (i=0;i<field_value.length;i++)
      {
        if (field_value.charAt(i)<'0' || field_value.charAt(i)>'9') ok = false;
      }
      if (!ok) msg = lstmsg[5];
    }

    if (field_type == 'emptyint')
    {
      if (field_value.length>12) ok = false;
      for (i=0;i<field_value.length;i++)
      {
        if (field_value.charAt(i)<'0' || field_value.charAt(i)>'9') ok = false;
      }
      if (!ok) msg = lstmsg[5];
    }

    if (field_type == 'float')
    {
      if (field_value.length==0) ok = false;
      for (i=0;i<field_value.length;i++)
      {
        if (field_value.charAt(i)=='.' || field_value.charAt(i)==',') nbpoint++;
        else if (field_value.charAt(i)<'0' || field_value.charAt(i)>'9') ok = false;
      }
      if (nbpoint>1) ok = false;

      if (!ok) msg = lstmsg[6];
    }

    if (field_type == 'emptyfloat')
    {
      for (i=0;i<field_value.length;i++)
      {
        if (field_value.charAt(i)=='.') nbpoint++;
        if (field_value.charAt(i)<'0' || field_value.charAt(i)>'9') ok = false;
      }
      if (nbpoint>1) ok = false;

      if (!ok) msg = lstmsg[6];
    }

    if (field_type == 'date')
    {
      var thedate = field_value.split("/");
      if (thedate.length != 3 || isNaN(parseInt(thedate[0])) || isNaN(parseInt(thedate[1])) || isNaN(parseInt(thedate[2]))) thedate = field_value.split("-");
      if (thedate.length != 3 || isNaN(parseInt(thedate[0])) || isNaN(parseInt(thedate[1])) || isNaN(parseInt(thedate[2]))) thedate = field_value.split(":");
      if (thedate.length != 3 || isNaN(parseInt(thedate[0])) || isNaN(parseInt(thedate[1])) || isNaN(parseInt(thedate[2]))) ok = false;
      if (ok)
      {
        var datetotest = new Date(eval(thedate[2]),eval(thedate[1])-1,eval(thedate[0]));
        var year = datetotest.getYear()
        if ((Math.abs(year)+"").length < 4) year = year + 1900
        ok = ((datetotest.getDate() == eval(thedate[0])) && (datetotest.getMonth() == eval(thedate[1])-1) && (year == eval(thedate[2])));
      }
      if (!ok) msg = lstmsg[7];
    }

    if (field_type == 'time')
    {
      if (field_value.length!=5) ok = false;
      else
      {
        h=field_value.substring(0,2);
        m=field_value.substring(3,5);
        if (parseInt(h)<0 || parseInt(h)>23) ok = false;
        if (parseInt(m)<0 || parseInt(m)>59) ok = false;
        madate=new Date(01,01,2000,h,m);
        if (madate=="NaN" || field_value.charAt(2)!=':') ok = false;
      }
      if (!ok) msg = lstmsg[8];
    }

    if (field_type=='emptydate')
    {
      if (field_value.length!=0)
      {
        var thedate = field_value.split("/");
        if (thedate.length != 3 || isNaN(parseInt(thedate[0])) || isNaN(parseInt(thedate[1])) || isNaN(parseInt(thedate[2]))) thedate = field_value.split("-");
        if (thedate.length != 3 || isNaN(parseInt(thedate[0])) || isNaN(parseInt(thedate[1])) || isNaN(parseInt(thedate[2]))) thedate = field_value.split(":");
        if (thedate.length != 3 || isNaN(parseInt(thedate[0])) || isNaN(parseInt(thedate[1])) || isNaN(parseInt(thedate[2]))) ok = false;
        if (ok)
        {
          var datetotest = new Date(eval(thedate[2]),eval(thedate[1])-1,eval(thedate[0]));
          var year = datetotest.getYear()
          if ((Math.abs(year)+"").length < 4) year = year + 1900
          ok = ((datetotest.getDate() == eval(thedate[0])) && (datetotest.getMonth() == eval(thedate[1])-1) && (year == eval(thedate[2])));
        }
        if (!ok) msg = lstmsg[7];
      }
    }

    if (field_type=='emptytime')
    {
      if (field_value.length!=0)
      {
        if (field_value.length!=5) ok = false;
        else
        {
          h=field_value.substring(0,2);
          m=field_value.substring(3,5);
          if (parseInt(h)<0 || parseInt(h)>23) ok = false;
          if (parseInt(m)<0 || parseInt(m)>59) ok = false;
          madate=new Date(01,01,2000,h,m);
          if (madate=="NaN" || field_value.charAt(2)!=':') ok = false;
        }
        if (!ok) msg = lstmsg[8];
      }
    }
  }
  else
  {
    ok = false;
  }

  if (!ok)
  {
    alert(msg.replace(reg,field_label));
    if (field_type != 'checked')
    {
      field_object.style.background = error_bgcolor;
      field_object.focus();
    }
  }

  return (ok);
}

