//
//

      //test si elem est numerique
      function isNumber(elem) 
      {
          var str = new String(elem);
          var re = /^[-]?\d*\.?\d*$/;
          return str.match(re);
      }
    
    // Valider un champ numerique et test si sa longueur= p_length
      function validNumericField(p_field, p_length)
      {
          l_ret = false;
    
          if (isNumber(p_field))
          {
           if (p_field.length == p_length)
            {
              l_ret =true;
            }
          }
          return l_ret;
      }
      // Valider un champ numerique et test si sa longueur>= p_length
      function validNumericFieldGT(p_field, p_length)
      {
          l_ret = false;
          if (isNumber(l_field))
          {
            if (l_field.length >= p_length)
            {
              l_ret =true;
            }
          }
          p_field = l_field;
          return l_ret;
      }
      // Valider un champ  si sa longueur= p_length
      function validLength(p_in_item,p_in_len) 
      {
    	 return (p_in_item.length = p_in_len);
      }
      // Valider un champ  si sa longueur>= p_length
      function validLengthGT(p_in_item,p_in_len) 
      {
    	 return (p_in_item.length >= p_in_len);
      }
      /* Valider un champ  Email si sa longueur> p_length
        avec @
      	avec .
      	sans blanc
      	nne contient pas  ]
      	ne contient pas  [
      	ne contient pas  )
      	ne contient pas  (
      	ne contient pas  {
      	ne contient pas  }
      	ne contient pas  |
      	ne contient pas  é
      	ne contient pas  è
      	ne contient pas  à
      */
      function validateEmail(p_in_item) 
      {
      
      	if (!validLength(p_in_item,5)) return false;
      	if (p_in_item.indexOf('@',0) == -1) return false; // sans @
      	if (p_in_item.indexOf('.',0) == -1) return false; // sans .
      	if (p_in_item.indexOf(' ',0) != -1) return false; // sans blanc
      	if (p_in_item.indexOf(']',0) != -1) return false; // contient ]
      	if (p_in_item.indexOf('[',0) != -1) return false; // contient [
      	if (p_in_item.indexOf('(',0) != -1) return false; // contient )
      	if (p_in_item.indexOf(')',0) != -1) return false; // contient (
      	if (p_in_item.indexOf('{',0) != -1) return false; // contient {
      	if (p_in_item.indexOf('}',0) != -1) return false; // contient }
      	if (p_in_item.indexOf('|',0) != -1) return false; // contient |
      	if (p_in_item.indexOf('è',0) != -1) return false; // contient é
      	if (p_in_item.indexOf('è',0) != -1) return false; // contient è
      	if (p_in_item.indexOf('à',0) != -1) return false; // contient à
      	return true;
      }
      function skipBlank(p_field)
      {
        l_str = new String(p_field);
        l_field = new String(l_str.replace(' ','')); // enlève les blancs
//alert ('p_field=' + p_field + ' l_field=' + l_field);
        while (l_field != l_str)
        {
          l_str = l_field;
          l_field = l_str.replace(' ',''); // enlève les blancs
        }
        
        return l_field;
      }
      function setSel(p_obj, p_value)
      {
        for (ix = 1 ; ix < p_obj.length ; ix++) 
        {
          if (p_obj.options[ix].value == p_value )
          {
            p_obj.options[ix].selected = true;
            break;
          }
        }
      }
      function fDisplayMessage(p_message)
      {
  //alert('message=' + p_message);
        if (p_message != '')
        {
  
          $('div_message').innerHTML= p_message;
          $('div_message').className = 'alert';
          //new Effect.Appear('div_message');
        }
        else
        {
          $('div_message').className = '';
          $('div_message').innerHTML= '<br><br><br>';
          //new Effect.Fade('div_message');
        }      
      }
      function setFieldx(p_id)
      {
  //alert ('setFieldx');
        fDisplayMessage('');
        l_value = $(p_id).value;
        l_className = (l_value != '' || l_value != ' ') ? 'choosen':'error';
        $(p_id).className =l_className;
      }
      function  fValidObject(p_obj, p_mess)
      {
        if (p_obj.value == '' )
        {
          fDisplayMessage(p_mess);
          p_obj.className ='error';
          p_obj.focus();
          return false;
        }
        else
        {
          return true;
        }
      }
      function  fValidNumeric(p_obj, p_mess)
      {
  //alert ('num=' + p_obj.value);
        if (!isNumber(p_obj.value))
        {
          fDisplayMessage(p_mess);
          p_obj.className ='error';
          p_obj.focus();
          return false;
        }
        else
        {        
          return true;
        }
      }
      function  fValidRange(p_obj, p_range, p_mess)
      {
        l_val = new Number(p_obj.value);
//alert('val=' + l_val + ' r0=' + p_range[0] + ' r1=' + p_range[1]);
        if (l_val > p_range[1] || l_val < p_range[0] )
        {
          fDisplayMessage(p_mess);
          p_obj.className ='error';
          p_obj.focus();
          return false;
        }
        else
        {
          p_obj.className ='choosen';
          return true;
        }
      }
      function fValidSel(p_obj) 
      {
        l_idx = p_obj.selectedIndex;
        return (l_idx>0);
      }
      function fValidSelMess(p_obj, p_mess) 
      {
        l_idx = p_obj.selectedIndex;
        if (l_idx<=0)
        {
          fDisplayMessage(p_mess);
          p_obj.className ='error';
          p_obj.focus();
          return false;
        }
        else
        {
          p_obj.className ='choosen';
          return true;
        }
      }
      function fNormStr(p_in_str)
    	{
    		l_ret = new String(p_in_str);
    		l_ret = l_ret.replace('+','%2B');
    		l_ret = l_ret.replace('%','%25');
    		l_ret = l_ret.replace('&','%26');
    		
    		return l_ret;
    	}
     
