var prodi = -1; // Numéro de la categorie du produit selectionné
var refi = -1;  // Numéro de la référence du produit dans sa catégorie
var quantite_produit = 1;

//var produit = new Array();
/* tableau généré par php */
/*
produit[0] = new Array();
produit[0][1] = new Array(450., 1.); // 450. : prix HT, 1. est le poids du produit
produit[0][2] = new Array(450., 1.);

produit[1] = new Array();
produit[1][1] = new Array(450., 1.);
produit[1][2] = new Array(450., 1.);
*/

//var access = new Array();
/* tableau généré par php */
/*
access[0] = 12.
access[1] = 14.
*/

//var pays = new Array();


/*
 * Recalcul le frais de port en fontion du pays sélectionné, le montant du produit
 * en fonction de la référence sélectionnée et de sa quantité, et le montant total
 * de la commande
 * Met à jour l'affichage des montants des frais de port et du total de la commande
 */
function c_update() {

  // Vérifier quantite. Si n'est pas conforme, met 1
  var quantite = trim(document.forms["form"].elements['quantite'].value);
  if (!isInt(quantite) || quantite=='') quantite = 1;

  var array = c_montantProduit();
  var montant_produit_ht = array[0];
  var poids_produits = array[1];

  array = c_montantAccess();
  var montant_access_ht = array[0];
  var poids_access = array[1];

  var elt_port = document.getElementById("span_port");
  var port = funcPort(poids_produits+poids_access);
  elt_port.firstChild.nodeValue = round2Dec(port*(1.+taux_tva));

  var elt_montant_prod = document.getElementById("span_montant_prod");
  var elt_quantite_prod = document.getElementById("span_quantite_prod");
  var elt_total_prod = document.getElementById("span_total_prod");

  elt_montant_prod.firstChild.nodeValue = round2Dec(montant_produit_ht*(1.+taux_tva));
  elt_quantite_prod.firstChild.nodeValue = quantite;
  elt_total_prod.firstChild.nodeValue = round2Dec(montant_produit_ht*quantite*(1.+taux_tva));

  var elt_span_access = document.getElementById("span_total_access");
  elt_span_access.firstChild.nodeValue = round2Dec(montant_access_ht*(1.+taux_tva));

  var total_ht = montant_produit_ht*quantite + montant_access_ht + port;
  var montant_tva = round2Dec( total_ht*taux_tva );

  var elt_nature_total = document.getElementById("span_nature_total");
  var elt_span_montant_tva = document.getElementById("span_montant_tva");
  var elt_total = document.getElementById("span_total");

  if (withtva) elt_span_montant_tva.firstChild.nodeValue = montant_tva;
  else elt_span_montant_tva.firstChild.nodeValue = 0.;

  if (withtva) {
    elt_nature_total.firstChild.nodeValue = 'TTC';
    elt_total.firstChild.nodeValue = total_ht + montant_tva;

  } else {
    elt_nature_total.firstChild.nodeValue = 'HT';
    elt_total.firstChild.nodeValue = total_ht;
  }

}

function fraisDePortNL(poids) {if (poids==0) return 0; return 12;}

/**
* Est appelé au chargement de la page
* Si click sur back, doit rechercher le produit et le pays sélectionnés
* pour charger les variables idpays, prodi et refi
*/
function c_updateAll() {
  // Trouver le produit
  prodi = -1;
  refi = -1;

  var prod, nom;
  for (var i=0;i<produit.length;i++) {
    nom = 'prod_' + i;
    prod = document.forms["form"].elements[nom];
    if (prod.selectedIndex>0) {
      prodi = i;
      refi  = prod.selectedIndex-1;
      break;
    }
  }

  c_update();
}

/**
* Arrondi value au centime le plus proche
* retourne une valeur avec au plus deux décimales
*/
function round2Dec(value) {
  return Math.round(value*100.)/100.;
}

/* AppelÃ© Ã  chaque fois que le champ quantite est modifiÃ©
 * Si quantite n'est pas un entier, met 1
 */
function c_quantityChanged() {
  c_update();
}

/**
* retourne true si value ne contient que des caracteres numériques
*/
function isInt(value) {
  var verif = /^[0-9]+$/;
  if (verif.exec(value)==null) return false;
  return true;
}

/*
 * Appelé lorsqu'une selection d'une référence est modifiée
 * Doit modifier la selection sur l'id 0 de toutes les autres categories
 */
function c_changeRef(select) {

  var prod, nom;
  found = false;
  for (var i=0;i<produit.length;i++) {
    nom = 'prod_' + i;
    prod = document.forms["form"].elements[nom];
    if (select.name!=nom) prod.selectedIndex = 0;
    else {
      prodi = i;
      refi  = prod.selectedIndex-1;
      found = true;
    }
  }

  if (!found) {
    prodi = -1;
    refi = -1;
  }

  c_update();
}

/*
 * retourne le montant du produit sélectionné,
 * ou 0. si aucun produit n'est sélectionné
 */

function c_montantProduit() {
  if (refi==-1) return new Array(0., 0.);
  return produit[prodi][refi];
}

/*
 * retourne le montant total des accessoires sélectionnés
 */

function c_montantAccess() {
  var montant_access = 0.;
  var poids_access = 0.;

  var box;
  for (var i=0;i<access.length;i++) {
    box = document.forms["form"].elements['access_' + i];
    if (box.checked) {
      montant_access += access[i][0];
      poids_access += access[i][1];
    }
  }  

  return new Array(montant_access, poids_access);
}

/**
* retourne true si au moins 1 accessoire est sélectionné
*/
function c_isSelectedAccess() {
  if (access.length==0) return false;
  var box;
  for (var i=0;i<access.length;i++) {
    box = document.forms["form"].elements['access_' + i];
    if (box.checked) return true;
  }  

  return false;
}

/**
* supprime les espaces en début et fin de la chaine de caracteres string
* retourne la nouvelle chaine
*/
function trim(string) {
  return string.replace(/(^\s*)|(\s*$)/g,'');
} 

/**
* - Référence produit doit être définie
* - Nom, adresse ligne 1, CP, ville, pays, email
* - Si pays pas CEE, alors OK, commande TTC
* - Sinon, si N° TVA n'est pas défini, OK, commande TTC
* -        sinon doit être valide
* -              Si est valide, nom de la société doit être défini
* -                             Alors OK, commande HT
*/
function c_submitForm() {
  var submit = true;
  var messg = '';

  if (refi==-1 && !c_isSelectedAccess()) {
    messg += "* Vous devez s\351lectionner un produit ou au moins 1 accessoire\n";
    submit = false;
  } 

  if (!document.forms['form'].elements['cgv'].checked) {
    messg += "* Vous devez lire puis accepter les conditions générales de vente en cochant la case ci-dessus\n";
    submit = false;
  }
/*
  var radios = document.forms['form'].elements['typePaiement'];
  var checked = false;
  for (var i=0;i<radios.length;i++) if (radios[i].checked) checked = true;
  if (!checked) {
    messg += "* Vous devez choisir un moyen de paiement\n";
    submit = false;
  }
*/

  if (!submit) {
    alert(messg);
    return false;
  }

  return true;
}

function m_submitRenouvellement() {
  var submit = true;
  var messg = '';

  var found = false;
  var radio;
  for (var i=0;i<modules.length;i++) {
      radio = document.forms["form-abonnement"].elements["module"+modules[i]];
      if (!radio[0].checked) {
        found = true;
        break;
      }
  }

  if (!found) {
    messg = messg + "* Vous devez s\351lectionner au moins 1 abonnement\n";
    submit = false;  
  }

  if (!submit) {
    alert(messg);
    return false;
  }

  messg = '';
  messg = messg + 'Vous allez maintenant \352tre redirig\351 sur le serveur de paiement s\351curis\351 de la banque BGL\n';
  messg = messg + 'Vous pourrez encore annuler votre commande si vous le d\351sirez';
  if (!confirm(messg)) return false;

  return true;
}

function c_detailCommande(url) {
  window.open(url, '', 'width=720, height=390, scrollbars=1');
}




