var changeColor = false;
var CouleurInvalide = "#ffdabf";
var CouleurValide = "#ffffff";

/************************/
/* Fonctions génériques */
/************************/

function cleanIfValueEqual(obj, value)
{
    if (obj.value == value)
	obj.value = '';
}

function restoreIfValueEmpty(obj, value)
{
    if (obj.value == '')
	obj.value = value;
}

function markValid(obj)
{
  obj.style.backgroundColor = CouleurValide;
}

function markInvalid(obj)
{
  obj.style.backgroundColor = CouleurInvalide;
}

Array.prototype.inArray = function(val)
{
  for(var i=0 ; i<this.length ; i++)
  {
    if(this[i] == val)
      return true;
  }

  return false;
}

function isEmpty(obj)
{
  if (obj.type == 'text' ||
      obj.type == 'textarea' ||
      obj.type == 'password')
  {
    if (obj.value.length < 1)
    {
      return (true);
    }
  }
  else if (obj.type == 'select-one')
  {
    if (obj.options[0].selected)
      return (true);
  }
  else if (obj.type == 'checkbox')
  {
    if (!obj.checked)
      return (true);
  }

  return (false);
}

function isEmptyRadio(obj)
{
  select = false;
  for(i=0; i<obj.length; i++)
  {
    if(obj[i].checked)
      select = true;
  }
  if(!select)
  {
    return (true);
  }
  return (false);
}

function mailIsValid(obj)
{
  var regex = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$/i
  if (!regex.test(obj.value))
    return (false);
  return (true);
}

function cpIsValid(obj)
{
  var regex = /^(2[abAB]|0[1-9]|[1-8][0-9]|9[0-578])[0-9]{3}$/i
  if (!regex.test(obj.value))
    return (false);
  return (true);
}

function passwordIsValid(obj)
{
  if (obj.value.length < 5)
    return (false);
  return (true);
}

function dateIsValid(obj_j, obj_m, obj_a)
{
  if (obj_j.value.length != 2)
    return (false);
  if (obj_m.value.length != 2)
    return (false);
  if (obj_a.value.length != 4)
    return (false);
  if (obj_j.value < 1 || obj_j.value > 31)
    return (false);
  if (obj_m.value < 1 || obj_m.value > 12)
    return (false);
  if (obj_a.value < 1900 || obj_a.value > 2008)
    return (false);
  return (true);
}

/****************************/
/* Fin Fonctions génériques */
/****************************/

/*****************************************/
/* Fonctions spécifiques aux formulaires */
/*****************************************/

function verif_mail_pass_lost(form)
{
  var msg = "";

  if (!mailIsValid(form.send_password_mail))
  {
    if (changeColor)
      markInvalide(form.send_password_mail);
    msg += ('Veuillez saisir une adresse e-mail valide' + "\n");
  }

  /** Envoi du résultat  **/
  if(msg == "")
  {
    return(true);
  }
  else
  {
    alert(msg);
    return(false);
  }
}

function verif_login(form)
{
  var msg = "";

  if (!mailIsValid(form.email))
  {
    if (changeColor)
      markInvalide(form.email);
    msg += ('Veuillez saisir une adresse e-mail valide' + "\n");
  }

  if (!passwordIsValid(form.password))
  {
    if (changeColor)
      markInvalide(form.password);
    msg += ('Votre mot de passe devrait contenir au moins 5 caractères' + "\n");
  }

  /** Envoi du résultat  **/
  if(msg == "")
  {
    return(true);
  }
  else
  {
    alert(msg);
    return(false);
  }
}

Dialogs.Default.background = ['#000', 'transparent'];
Dialogs.Default.margin = 0;
Dialogs.Default.padding = 0;
Dialogs.Lang.close = '&nbsp;';

function display_error(image, msg)
{
	/*if (navigator.userAgent.toLowerCase().indexOf('msie 8.') != -1) {
		alert(image);
		document.write('<div id="popinie8"><a href="javascript:Dialogs.close();"><img src="images/popins_png/'+image+'.png" alt="'+msg+'" /></a></div>');
		return(false);
	} else*/ {
		new Dialog({
		content:'<a href="javascript:Dialogs.close();"><img src="images/popins_png/'+image+'.png" alt="'+msg+'" /></a>'
		}).open();
	}
}

// Verifie les champs du formulaire d'enregistrement (étape 1)
function verif_inscr1(form)
{
  var msg = "";

  /** Vérification du mail  **/
  if (!mailIsValid(form.new_email))
  {
    if (changeColor)
      markInvalide(form.new_email);
    msg += ('Vous devez saisir une adresse e-mail valide' + "\n");
  }

  /** Envoi du résultat  **/
  if (msg == "")
  {
      return true;
  }
  else
  {
      display_error('alerte_email', msg);
      return false;
  }
}

// Verifie les champs du formulaire d'enregistrement (étape 2)
function verif_inscr2(form)
{
  var msg = '';

  /** Vérification du nom  **/
  if (isEmpty(form.last_name))
  {
    if (changeColor)
      markInvalide(form.last_name);
    msg += ('Vous devez saisir votre nom' + "\n");
  }

  /** Vérification du prénom  **/
  if (isEmpty(form.first_name))
  {
    if (changeColor)
      markInvalide(form.first_name);
    msg += ('Vous devez saisir votre prénom' + "\n");
  }

  if (msg != '')
  {
      display_error('alerte_nom_prenom', msg);
      return false;
  }


  /** Vérification du mot de passe  **/
  if (!passwordIsValid(form.password))
  {
    if (changeColor)
    {
      markInvalide(form.password);
    }
    msg += ('Votre mot de passe doit contenir au moins 5 caractères' + "\n");
  }

  if (msg != '')
  {
      display_error('alerte_password', msg);
      return false;
  }

  /** Vérification du code postal  **/
  if (!cpIsValid(form.zip_code))
  {
    if (changeColor)
      markInvalide(form.zip_code);
    msg += ('Vous devez saisir un code postal français valide' + "\n");
  }

  if (msg != '')
  {
      display_error('alerte_codepostal', msg);
      return false;
  }

  /** Vérification de l'acceptation du règlement  **/
  if (isEmpty(form.reglement))
  {
    msg += ('Vous devez accepter le règlement' + "\n");
  }

  if (msg != '')
  {
      display_error('alerte_reglement', msg);
      return false;
  }

  /** Vérification des infos commerciales  **/
  if (isEmptyRadio(form.optin))
  {
    msg += ('Vous devez indiquer si vous souhaiter recevoir de l\'information commerciale' + "\n");
  }

  if (msg != '')
  {
      display_error('alerte_infos', msg);
      return false;
  }

  /** Envoi du résultat  **/
  if(msg == "")
  {
    return(true);
  }
  else
  {
    return(false);
  }
}

// Verifie les champs du formulaire de modification du profil
function verif_profil(form)
{
  var msg = '';

  /** Vérification du nom  **/
  if (isEmpty(form.last_name))
  {
    if (changeColor)
      markInvalide(form.last_name);
    msg += ('Vous devez saisir votre nom' + "\n");
  }

  /** Vérification du prénom  **/
  if (isEmpty(form.first_name))
  {
    if (changeColor)
      markInvalide(form.first_name);
    msg += ('Vous devez saisir votre prénom' + "\n");
  }

  if (msg != '')
  {
      display_error('alerte_nom_prenom', msg);
      return false;
  }


  /** Vérification du mot de passe  **/
  if (form.new_password.value != '' && !passwordIsValid(form.new_password))
  {
    if (changeColor)
    {
      markInvalide(form.password);
    }
    msg += ('Votre mot de passe doit contenir au moins 5 caractères' + "\n");
  }

  if (msg != '')
  {
      display_error('alerte_password', msg);
      return false;
  }

  /** Vérification du code postal  **/
  if (!cpIsValid(form.zip_code))
  {
    if (changeColor)
      markInvalide(form.zip_code);
    msg += ('Vous devez saisir un code postal français valide' + "\n");
  }

  if (msg != '')
  {
      display_error('alerte_codepostal', msg);
      return false;
  }

  /** Envoi du résultat  **/
  if(msg == "")
  {
    return(true);
  }
  else
  {
    return(false);
  }
}
