/*
  
  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})+$/);
}

function Set_Cookie( name, value, expires, path, domain, secure ) 
{ 
// set time, it's in milliseconds 
var today = new Date(); 
today.setTime( today.getTime() ); 
/* 
if the expires variable is set, make the correct 
expires time, the current script below will set 
it for x number of days, to make it for hours, 
delete * 24, for minutes, delete * 60 * 24 
*/ 
if ( expires ) 
{ 
expires = expires * 1000 * 60 * 60 * 24; 
} 
var expires_date = new Date( today.getTime() + (expires) ); 
document.cookie = name + "=" +escape( value ) + 
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
( ( path ) ? ";path=" + path : "" ) + 
( ( domain ) ? ";domain=" + domain : "" ) + 
( ( secure ) ? ";secure" : "" ); 
} 


function Get_Cookie( check_name ) { 
// first we'll split this cookie up into name/value pairs 
// note: document.cookie only returns name=value, not the other components 
var a_all_cookies = document.cookie.split( ';' ); 
var a_temp_cookie = ''; 
var cookie_name = ''; 
var cookie_value = ''; 
var b_cookie_found = false; // set boolean t/f default f 
for ( i = 0; i < a_all_cookies.length; i++ ) 
{ 
// now we'll split apart each name=value pair 
a_temp_cookie = a_all_cookies[i].split( '=' ); 
// and trim left/right whitespace while we're at it 
cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, ''); 
// if the extracted name matches passed check_name 
if ( cookie_name == check_name ) 
{ 
b_cookie_found = true; 
// we need to handle case where cookie has no value but exists (no = sign, that is): 
if ( a_temp_cookie.length > 1 ) 
{ 
cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') ); 
} 
// note that in cases where cookie is initialized but no value, null is returned 
return cookie_value; 
break; 
} 
a_temp_cookie = null; 
cookie_name = ''; 
} 
if ( !b_cookie_found ) 
{ 
return null; 
} 
} 
if (Get_Cookie('domain')) {
   Set_Cookie('page_id',document.location.href,'7','/',Get_Cookie('domain'),'');
}
	