function checkRequired(frmData) { 
  var bFail; 
  bFail = false; // Default to pass 

  for(iElement = 0; iElement < frmData.elements.length; iElement++) { 

    if(frmData.elements[iElement].className == 'RequiredTextBox200' || 
       frmData.elements[iElement].className == 'FailedTextBox200') { 

      if(frmData.elements[iElement].value == '') { 
        bFail = true; 
        frmData.elements[iElement].className = 'FailedTextBox200'; 

      } else { 

        frmData.elements[iElement].className = 'RequiredTextBox200'; 

      } 

    } 

  } 

  return !bFail; 

} 

function checkForm()
    {
    var ffail;
    ffail= false; 
        if(!checkRequired(document.forms['frmCheckMe']))
            {
                ffail = true; 
                if(document.all)
                    { 
                        document.all.spanError.innerText = '* Please fill the required fields *'; 
                    } 
                else 
                    { 
                        document.getElementById('spanError').innerHTML = '* Please fill the required  fields *'; 
                    } 
            } 
        else
            {     /* here all field are filled out */
                var x=document.getElementById('courriel1');    /* get mail 1 and mail 2 value */
                var y=document.getElementById('courriel2');
                /*alert (y.value);*/
                if(x.value != y.value)
                    {  /* compare both mail field and verify if mathes */
                        ffail=true;
                        document.getElementById('spanError').innerHTML = '* The last field (email again) in not matching the above one (email) *';
                    }
                else
                    {
                        if(!isValidEmail(x))
                            {                                                            
                                document.getElementById('spanError').innerHTML = '* Please enter a valide email adress* '; 
                            }
                        else
                            { 
                                document.forms['frmCheckMe'].submit();   
                            }
                    } 
            }
            return !ffail;
    } 


/* ===================== E Mail validation ===============================*/



function isValidEmail(email, required) {
      
    if (required==undefined) {   // if not specified, assume it's required
        required=true;
    }
    if (email==null) {
        if (required) {
            return false;
        }
        return true;
    }
    if (email.length==0) {  
        if (required) {
            return false;
        }
        return true;
    }
    if (! allValidChars(email)) {  // check to make sure all characters are valid
        return false;
    }
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
        return false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
        return false;
    } else if (email.indexOf("@") == email.length) {  // @ must not be the last character
        return false;
    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
	return false;
    } else if (email.indexOf(".") == email.length) {  // . must not be the last character
	return false;
    }
    return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}
