/*
  
  checkRequired.js
  
  2002-08-08:
    - copied from transfer/js (mv)
  
  2002-07-30:
    - show custom error msgs per field (mv)
  
  2002-06-26:
    - created from exolog/js/checkRequired.js (mv)
    - ... (mv)
  
*/


// trim whitespace
String.prototype.trim = function(str)
{
  str = this != window ? this : str;
  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
};



function checkRequired(formObj)
{
  if (formObj.elements['required'] && formObj.elements['required'].value.length)
  {
    var missingFieldCount = 0;
    var reqFields = formObj.elements['required'].value.split(',');
    
    dMsg  = '';
    
    errMsg = '';
    
    for (i in reqFields)
    {
      /*  
        // TEST : check for fields of form cursusnaam1|cursusnaam2|cursusnaam3
        // at least one of which must be set
      orFields = (''+reqFields[i]).trim().split('|');
      if (orFields.length>1)
      {
        for (o=0;o<orFields.length;o++)
        {
          e = formObj.elements[orFields[o].trim()];
          if (e && e.length)   // multi-element
          {
            eOK = 0;
            for (j=0; j<e.length;j++)
            {
              if (e[j].checked || e[j].selected)
              {
                eOK++;
              }
            }
            if (!eOK)
            {
              missingFieldCount++;
            }
          }
          
          else            // single element
          if (e && !e.value.length)
          {
            missingFieldCount++;
          }
        }
      }
      else
      
      */
      
      if (1)
      {
        thisErrMsg = reqFields[i].trim().split('::')[1];
        reqFields[i] = reqFields[i].trim().split('::')[0];
        
        //DEBUG
        //if (thisErrMsg) { alert(thisErrMsg); }
      
        e = formObj.elements[reqFields[i].trim()];
        if (e && e.length)   // multi-element
        {
          eOK = 0;
          for (j=0; j<e.length;j++)
          {
            if (e[j].checked || e[j].selected)
            {
              eOK++;
            }
          }
          if (!eOK)
          {
            missingFieldCount++;
            if (thisErrMsg)
            {
              errMsg += '\n- ' + thisErrMsg;
            } 
          }
        }
        
        else            // single element
        if (e && !e.value.length)
        {
          missingFieldCount++;
          if (thisErrMsg)
          {
            errMsg += '\n- ' + thisErrMsg;
          } 
        }
      }
    }
    
    if (missingFieldCount > 0)
    {
      if (errMsg.length)
      {
        errMsg = 'Fout:' + errMsg;
        alert(errMsg);
      }
      else
      {
        alert('Fout: vul alle verplichte velden in');
      }
      return false;
    }
  }

  return true;
}



function isValidEmail(strEmail)
{
  return strEmail.match(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$/);
}


