// check for mandatory fields for registrationForm
function checkRegistrationForm(formName, mandatoryAlert, usernameAlert, passwordAlert, emailAlert, privacyAlert) {

  // Form
  var theForm = document[formName];
  
  // Form fields
  var registerUsername = theForm.username;
  var registerPassword = theForm.password;
  var registerPasswordConfirmation = theForm.passwordConfirmation;
  var registerFullName = theForm.fullName;
  var registerEmail = theForm.email;
  var privacyRadio = theForm.privacyRadio;
  
  // Check privacy
  for (counter = 0; counter < privacyRadio.length; counter++) {
    if (privacyRadio[counter].checked){
      if ( privacyRadio[counter].value == "ko" ) {
        alert(privacyAlert);
        return false;
      }
    } 
  } 
    
  // Check mandatory fields
  if (
    !mandatory(registerUsername, mandatoryAlert) ||
    !mandatory(registerPassword, mandatoryAlert) ||
    !mandatory(registerPasswordConfirmation, mandatoryAlert) ||
    !mandatory(registerEmail, mandatoryAlert)
  ) {
    return false;
  }
  
  // Check username
  if ( !validUsername(registerUsername.value, usernameAlert) ) {
    return false;
  }

  // Check password confirm
  if ( !validPassword(registerPassword.value, registerPasswordConfirmation.value, passwordAlert) ) {
    return false;
  }
  
  // Check email
  if ( !checkEmail(registerEmail.value, emailAlert) ) {
    return false;
  }
        
  return true;
}


// check for mandatory fields for loginForm
function checkMandatories(formName, mandatoryAlert, usernameAlert) {

  // Form
  var theForm = document[formName];
  
  // Form fields
  var registerUsername = theForm.username;
  var registerPassword = theForm.password;
    
  // Check mandatory fields
  if (
    !mandatory(registerUsername, mandatoryAlert) ||
    !mandatory(registerPassword, mandatoryAlert)
  ) {
    return false;
  }
  
  // Check username
  if ( !validUsername(registerUsername.value, usernameAlert) ) {
    return false;
  }
        
  return true;
}


// Check mandatory fields
function mandatory(field, mandatoryAlert){
  if ( field.value==null || field.value=="" ){
    alert(mandatoryAlert);
    field.focus();
    return false;
  }
  return true;
}


// Check username
function validUsername(user, usernameAlert) {
  var re = /^[A-z0-9-'.'-','-'-'-' ']*$/;
  if ( !re.test(user) ) {
    alert(usernameAlert);
    return false;
  }
  return true;
}


// Check password confirm
function validPassword(password, passwordConfirm, passwordAlert) {
  if ( password != passwordConfirm ) {
    alert(passwordAlert);
    return false;
  }
  return true;
}


// Check email
function checkEmail(str, emailAlert) {

  var at= "@";
  var dot= ".";
  var lat = str.indexOf(at);
  var lstr = str.length;
  var ldot = str.indexOf(dot);
		
  if (str.indexOf(at) == -1) {
    alert(emailAlert);
    return false;
  }

  if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
    alert(emailAlert);
    return false;
  }

  if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
    alert(emailAlert);
    return false;
  }

  if (str.indexOf(at,(lat+1))!=-1){
    alert(emailAlert);
    return false;
  }

  if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
    alert(emailAlert);
    return false;
  }

  if (str.indexOf(dot,(lat+2))==-1){
    alert(emailAlert);
    return false;
  }
		
  if (str.indexOf(" ")!=-1){
    alert(emailAlert);
    return false;
  }
  return true					
}
