var idpays = -1; // NumÃ©ro du pays sÃ©lectionnÃ©

// Liste des pays :
// pays[i] = new Array('FR', 9, 1); 

/*
 * Recalcul le frais de port en fontion du pays sÃ%GÆ%@Â©lectionnÃ%GÆ%@Â©, le montant du produit
 * en fonction de la rÃ%GÆ%@Â©fÃ%GÆ%@Â©rence sÃ%GÆ%@Â©lectionnÃ%GÆ%@Â©e et de sa quantitÃ%GÆ%@Â©, et le montant total
 * de la commande
 * Met Ã%GÆ%@  jour l'affichage des montants des frais de port et du total de la commande
 */
function i_update() {

  // mettre l'indicatif pays
  var elt_ind_tva = document.getElementById("span_ind_tva");
  if (idpays!=-1 && pays[idpays][2]) elt_ind_tva.firstChild.nodeValue = pays[idpays][0];
  else elt_ind_tva.firstChild.nodeValue = '';

  // Savoir si on dÃ©sactive le champ TVA
  // => desactivÃ© si societe n'est pas defini, si pays n'est pas defini
  // ou si le pays ne traite pas sans TVA
  var facture_ht;
  var elt_tva_check = document.getElementById("span_tva_check");
  if (i_societeDefined() && idpays!=-1 && pays[idpays][2]==1) {
    document.forms["form"].elements['tva'].disabled = false;
    // Si il est actif, est-il correct
    if (i_checkTVA()) {
      elt_tva_check.firstChild.nodeValue = 'OK';
      elt_tva_check.style.color = 'green';
      facture_ht = true; 
    } else {
      elt_tva_check.firstChild.nodeValue = 'Invalide';
      elt_tva_check.style.color = 'red';
      facture_ht = false; 
    }
  } else {
    document.forms["form"].elements['tva'].disabled = true;
    elt_tva_check.firstChild.nodeValue = '';
    facture_ht = false; 
  }

}

function i_updateAll() {
  idpays = document.forms["form"].elements['pays'].selectedIndex -1;
  i_update();
}


/**
* AppelÃ© Ã  chaque fois que le champ sociÃ©tÃ© est modifiÃ©
* Si est vide, alors met withtva Ã  true
* Sinon, si pays traite HT et NÂ° de TVA valide, met withtva false
*/
function i_societeChanged() {
  i_update();
}

/**
* AppelÃ© Ã  chaque fois que le numÃ©ro de  TVA est modifiÃ©
* Si pays n'est pas dÃ©fini ou ne traite pas sans TVA, ne fait rien
* Sinon si TVA est incorrect, met withtva true
* sinon si TVA OK, met withtva false
*/
function i_TVAchanged() {
  i_update();
}

/**
* AppelÃ© Ã  chaque fois que la sÃ©lÃ©ction d'un pays est modifiÃ©e
* Si pays n'est pas dÃ©fini ou ne traite pas sans TVA, met withtva true
* sinon met withtva false
*/
function i_paysChanged(elt) {
  idpays = elt.selectedIndex -1;
  i_update();
}

/**
* retourne true si le champ societe n'est pas vide, false sinon
*/
function i_societeDefined() {
  if (trim(document.forms["form"].elements['societe'].value)=='') return false;
  return true;
}

/**
* - RÃ%GÆ%@Â©fÃ%GÆ%@Â©rence produit doit Ã%GÆ%@Âªtre dÃ%GÆ%@Â©finie
* - Nom, adresse ligne 1, CP, ville, pays, email
* - Si pays pas CEE, alors OK, commande TTC
* - Sinon, si NÃ%Gâ%@Â° TVA n'est pas dÃ%GÆ%@Â©fini, OK, commande TTC
* -        sinon doit Ã%GÆ%@Âªtre valide
* -              Si est valide, nom de la sociÃ%GÆ%@Â©tÃ%GÆ%@Â© doit Ã%GÆ%@Âªtre dÃ%GÆ%@Â©fini
* -                             Alors OK, commande HT
*/
function i_submitForm() {
  var submit = true;
  var messg = '';

  var nom = document.forms["form"].elements['nom'];
  if (trim(nom.value)=='') {
    messg = messg + '* Vous devez renseigner votre nom\n';
    submit = false;
  }

  var adresse1 = document.forms["form"].elements['adresse1'];
  if (trim(adresse1.value)=='') {
    messg = messg + '* Vous devez renseigner votre adresse\n';
    submit = false;
  }

  var cp = document.forms["form"].elements['cp'];
  if (trim(cp.value)=='') {
    messg = messg + '* Vous devez renseigner votre code postal\n';
    submit = false;
  }

  var ville = document.forms["form"].elements['ville'];
  if (trim(ville.value)=='') {
    messg = messg + '* Vous devez renseigner votre ville\n';
    submit = false;
  }

  if (idpays==-1) {
    messg = messg + '* Vous devez renseigner votre pays\n';
    submit = false;
  }

  var tel = document.forms["form"].elements['tel'];
  if (trim(tel.value)=='') {
    messg = messg + '* Vous devez renseigner votre tel.\n';
    submit = false;
  }

  var email = document.forms["form"].elements['email'];
  if (trim(email.value)=='') {
    messg = messg + '* Vous devez renseigner votre email\n';
    submit = false;
  } else {
    if (!checkEmail(trim(email.value))) {
      messg = messg + "* Votre adresse mail n'est pas valide\n";
      submit = false;
    }
  }

  if (document.forms["form"].elements['login'].value=='') {
    messg = messg + '* Vous devez renseigner un identifiant\n';
    submit = false;    
  } else if (document.forms["form"].elements['login'].value.length<4) {
    messg = messg + "* L'identifiant doit avoir au moins 4 caract\350res\n";
    submit = false;    
  }

  if (document.forms["form"].elements['password'].value=='') {
    messg = messg + '* Vous devez renseigner un mot de passe\n';
    submit = false;    
  } else if (document.forms["form"].elements['password'].value.length<4) {
    messg = messg + '* Le mot de passe doit avoir au moins 4 caract\350res\n';
    submit = false;    
  } else if (document.forms["form"].elements['password'].value!=document.forms["form"].elements['passwordbis'].value) {
    messg = messg + '* Les deux mots de passe ne correspondent pas\n';
    submit = false;    
  }

  if (!i_societeDefined() || idpays==-1 || !i_checkTVA()) document.forms["form"].elements['tva'].value = "";

  if (!submit) {
    alert(messg);
    return false;
  }

  return true;
}

function checkEmail(email) {
  var proto  = "(mailto:)?";
  var usr    = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
  var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
  var regex  = "^" + proto + "?" + usr + "\@" + domain + "$";

  var rgx    = new RegExp(regex);
  return rgx.exec(email) ? true : false;
}

function i_checkTVA() {
  if (idpays==-1 || !pays[idpays][2]) return false;

  value = document.forms["form"].elements['tva'].value;
  ind_pays = pays[idpays][0];

  value = value.replace(/\s/g,'');
  value = value.toUpperCase();
  
  alphabeth = "ABCDEFGHIJKLMNOPQRSTUVWXYZ*+";
  digits = "0123456789";

  for (var i=0;i<value.length;i++) {
    if (digits.indexOf(value.substr(i,1))==-1 && alphabeth.indexOf(value.substr(i,1))==-1) return false;
  }

  if (ind_pays=='DE') { // Allemagne
    // C1 C2 C3 C4 C5 C6 C7 C8 C9 NUMERIC
    var verif = /^[0-9]{9}$/;
    if (verif.exec(value)==null) return false;
    return true;
  }

  if (ind_pays=='BE') { // Belgique
    // C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 NUMERIC
    var verif = /^[0-9]{10}$/;
    if (verif.exec(value)==null) return false;
    return true;
  }

  if (ind_pays=='DK') { // Danemark
    // C1 C2 C3 C4 C5 C6 C7 C8 NUMERIC
    var verif = /^[0-9]{8}$/;
    if (verif.exec(value)==null) return false;
    return true;
  }

  if (ind_pays=='ES') { // Espagne
    if (value.length!=9) return false;
    // C1 C2 C3 C4 C5 C6 C7 C8 C9
    // C1 AND C9 ALPHABETIC, C2-C8 NUMERIC    
    if (alphabeth.indexOf(value.substr(0,1))==-1) return false;
    if (alphabeth.indexOf(value.substr(8,1))==-1) return false;
    value = value.substr(1, 7);
    var verif = /^[0-9]{7}$/;
    if (verif.exec(value)==null) return false;
    return true;
  }

  if (ind_pays=='FI') { // Finlande
    // C1 C2 C3 C4 C5 C6 C7 C8 NUMERIC
    var verif = /^[0-9]{8}$/;
    if (verif.exec(value)==null) return false;
    return true;
  }

  if (ind_pays=='FR') { // France
    if (value.length!=11) return false;
    // C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 NUMERIC OR
    // C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11
    //    C1 AND C2 ALPHABETIC, C3-C11 NUMERIC
    var verif = /^[0-9]{11}$/;
    if (verif.exec(value)!=null) return true;
    if (alphabeth.indexOf(value.substr(0,1))==-1) return false;
    if (alphabeth.indexOf(value.substr(1,1))==-1) return false;
    value = value.substr(2, 9);
    var verif = /^[0-9]{9}$/;
    if (verif.exec(value)==null) return false;
    return true;
  }

  if (ind_pays=='IE') { // Irelande
    if (value.length!=8) return false;
    // C1 C2 C3 C4 C5 C6 C7 C8
    // C1 AND C3-C7 NUMERIC C2 AND C8 ALPHABETIC OR
    // C1-C7 NUMERIC C8 ALPHABETIC
    if (alphabeth.indexOf(value.substr(7,1))==-1) return false; // C8 Alphabetic
    var tmp = value.substr(0, 7);
    var verif = /^[0-9]{7}$/;
    if (verif.exec(tmp)!=null) return true; // DeuxiÃ¨me solution

    if (alphabeth.indexOf(value.substr(1,1))==-1) return false;
    if (digits.indexOf(value.substr(0,1))==-1) return false;
    value = value.substr(2, 5);
    var verif = /^[0-9]{5}$/;
    if (verif.exec(value)==null) return false;
    return true;
  }

  if (ind_pays=='IT') { // Italie
    // C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 NUMERIC
    var verif = /^[0-9]{11}$/;
    if (verif.exec(value)==null) return false;
    return true;
  }

  if (ind_pays=='NL') { // Pays-Bas
    // C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12
    // C1-C9 AND C11 C12 NUMERIC C10 ALPHABETIC
    if (alphabeth.indexOf(value.substr(9,1))==-1) return false;
    if (digits.indexOf(value.substr(10,1))==-1) return false;
    if (digits.indexOf(value.substr(11,1))==-1) return false;
    value = value.substr(0, 9);
    var verif = /^[0-9]{9}$/;
    if (verif.exec(value)==null) return false;
    return true;
  }
  
  if (ind_pays=='GB') { // Royaume-Uni
    // C1 C2 C3 C4 C5 C6 C7 C8 C9 NUMERIC OR
    // C1 C2 C3 C4 C5, C1 AND C2 ALPHABETIC, C3-C5 NUMERIC 
    var verif = /^[0-9]{9}$/;
    if (verif.exec(value)!=null) return true;

    if (alphabeth.indexOf(value.substr(0,1))==-1) return false;
    if (alphabeth.indexOf(value.substr(1,1))==-1) return false;
    if (digits.indexOf(value.substr(2,1))==-1) return false;
    if (digits.indexOf(value.substr(3,1))==-1) return false;
    if (digits.indexOf(value.substr(4,1))==-1) return false;
    return true;
  }

  if (ind_pays=='SE') { // SuÃ¨de
    // C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 NUMERIC
    var verif = /^[0-9]{12}$/;
    if (verif.exec(value)==null) return false;
    return true;
  }

}

function i_submitCancel() {
  document.forms["form"].elements['action'].value = 'annuler';
  document.forms["form"].onsubmit = function() {return true;};
  document.forms["form"].submit();
}

function i_submitModifs() {
  var submit = true;
  var messg = '';

  var nom = document.forms["form"].elements['nom'];
  if (trim(nom.value)=='') {
    messg = messg + '* Vous devez renseigner votre nom\n';
    submit = false;
  }

  var adresse1 = document.forms["form"].elements['adresse1'];
  if (trim(adresse1.value)=='') {
    messg = messg + '* Vous devez renseigner votre adresse\n';
    submit = false;
  }

  var cp = document.forms["form"].elements['cp'];
  if (trim(cp.value)=='') {
    messg = messg + '* Vous devez renseigner votre code postal\n';
    submit = false;
  }

  var ville = document.forms["form"].elements['ville'];
  if (trim(ville.value)=='') {
    messg = messg + '* Vous devez renseigner votre ville\n';
    submit = false;
  }

  if (idpays==-1) {
    messg = messg + '* Vous devez renseigner votre pays\n';
    submit = false;
  }

  var email = document.forms["form"].elements['email'];
  if (trim(email.value)=='') {
    messg = messg + '* Vous devez renseigner votre email\n';
    submit = false;
  } else {
    if (!checkEmail(trim(email.value))) {
      messg = messg + "* Votre adresse mail n'est pas valide\n";
      submit = false;
    }
  }

  if (!i_societeDefined() || idpays==-1 || !i_checkTVA()) document.forms["form"].elements['tva'].value = "";

  if (!submit) {
    alert(messg);
    return false;
  }

  document.forms["form"].elements['action'].value = 'valider_modinfos';

  return true;
}

function i_getIdentidiants() {
  var url = document.location.href;
  if (url.substr( url.length-1, 1)=='#') url = url.substr(0, url.length-1);

  url = url + '?action=getIdentifiants';
  window.open(url, '', 'width=720, height=390, scrollbars=1');
}
