/* librairie de fonctions - configurateur de marque */

function number_format (number, decimals, dec_point, thousands_sep) {
    var n = number, prec = decimals;
    var toFixedFix = function (n,prec) {
        var k = Math.pow(10,prec);
        return (Math.round(n*k)/k).toString();
    };
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep === 'undefined') ? ' ' : thousands_sep;
    var dec = (typeof dec_point === 'undefined') ? ',' : dec_point;
    var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
    var abs = toFixedFix(Math.abs(n), prec);
    var _, i;
    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;

        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }
    var decPos = s.indexOf(dec);
    if (prec >= 1 && decPos !== -1 && (s.length-decPos-1) < prec) {
        s += new Array(prec-(s.length-decPos-1)).join(0)+'0';
    }
    else if (prec >= 1 && decPos === -1) {
        s += dec+new Array(prec).join(0)+'0';
    }
    return s;
}

function setval(uid,val) { 
  if (document.getElementById(uid)!=null) {
    document.getElementById(uid).innerHTML = val;
  }
}

function uid(id,typ) {
  var txt=id+'';
  while(txt.length<3) { txt='0'+txt; }
  return typ+'-'+txt;
}

function price(val,def,uni) {
  var eur=new Number(val);
  if (eur==0) { return def; } 
  else { return number_format(eur,2) + uni; }
}

function setprx(id,a,b,unit) {
  setval(uid(id,'prx'),price(a,txt[6],unit));
  if (id==0) { 
    setval(uid(id,'frs'),price(b,'0,00',unit));
  } else {
    setval(uid(id,'frs'),price(b,'',unit));
  }
}

function setqte(id,qti) {
  setval(uid(id,'qte'),qti);
  setval(uid(id,'qtt'),qti);
}

function setvars(id) {
  var sel=new Number(dlg[id][2]);
  var qte=new Number(dlg[id][3]); 
  var qtv=new Number(dlg[id][3])*sel;
  var mul=new Number(dlg[id][4]);
//  if (dlg[id][5]<0) qte=dlg[id][5];
  if (dlg[id][5]==-3 && qte<=1)  { var qtt=txt[1]; qtv=0; }
  else if(dlg[id][5]==-2 && qte<=1) { var qtt=txt[0]; qtv=1; }
  else if(dlg[id][5]==-1 && qte<=1) { var qtt=txt[2]; qtv=1; }
  else if (qte==-3) { var qtt=txt[1]; qtv=0; }
  else if(qte==-2) { var qtt=txt[0]; qtv=1; }
  else if(qte==-1) { var qtt=txt[2]; qtv=1; }
  else {
    if (dlg[id][6]=='---') { var qtt='nc'; }
    else {
      var qtt=number_format(qtv*dlg[id][5])+'';
      if (dlg[id][6]!='') { qtt+=' '+dlg[id][6]; }
    }
  }
  if (mul>1 && qtt!='') { qtt='('+mul+'x) '+qtt;}
  if (sel!=1) { qtv=1; }
  var sprx=plg[id][0]*qtv*mul-plg[id][4]*mul; 
  var sfrs=plg[id][2]*mul;
  if (dlg[id][14]==1) { sfrs=sfrs*qtv; }
  plg[id][5]=sprx*sel;
  plg[id][6]=sfrs*sel;
  setprx(id,sprx,sfrs,txt[4]);
  setqte(id,qtt);
}


function displayId(vid) {
    if (document.getElementById(vid)!=null) { 
      document.getElementById(vid).style.display='block';
    }
}


function cacheId(vid){
    if (document.getElementById(vid)!=null) { 
      document.getElementById(vid).style.display='none';
    }
}

function sellg(id,brname) {
    var bid=0;
    for(sid in brl[brname]) {
      bid=brl[brname][sid];
      if (bid!=id) { dlg[bid][2]=0; } else { dlg[bid][2]=1; }
      setvars(bid); 
//      setparams(bid);
    }
    calcsum();
}

function addlg(id){
      dlg[id][2]=document.getElementById(id).checked;
      setvars(id);            
      setparams(id);
      calcsum();
}

function modlg(id,borne,pas){
    var qtt=new Number(dlg[id][3]);
    if (!lgactive(id)) { window.status='Produit/option non s&eacute;lectionn&eacute;(e)'; }
    else if ((pas>0) && (qtt+pas)>borne) { window.status='Valeur maximale atteinte '+borne; }
    else if ((pas<0) && (qtt+pas)<borne) { window.status='Valeur minimale atteinte '+borne; }    
    else {
      dlg[id][3]=(qtt+pas);
      var lastprx=new Number(plg[id][5]); 
      var lastfrs=new Number(plg[id][6]);
      setvars(id);
      totprx+=(plg[id][5]-lastprx);
      totfrs+=(plg[id][6]-lastfrs);
      setprx(0,totprx,totfrs,'');
    }
}

function setperso(id) {
   document.getElementById(uid(id,'des')).style.color='#006699';
}

function setparams(id) {
   if (dlg[id][2] || dlg[id][7]) { 
     // document.getElementById(uid(id,'sub')).className="params";
   } else { 
     // document.getElementById(uid(id,'sub')).className="noparams"; 
   }
}

function lgactive(id){
   var psel=1;
   if (dlg[id][11]>0) { psel=dlg[dlg[id][11]][2]; }
   return (dlg[id][2]*psel>0);
}

function calcsum() {
  var prx=new Number(off[3]);
  var frs=new Number(off[4]);
  var lgstatus=0;
  for(id in cat) { cacheId(uid(cat[id],'cat')); }
  for(id in dlg) {
    if (!lgactive(id)) {
      cacheId(uid(id,'des'));
      cacheId(uid(id,'sub')); 
    } else {
      prx+=plg[id][5];
      frs+=plg[id][6];
      displayId(uid(id,'des')); 
      displayId(uid(id,'sub'));
      displayId(uid(dlg[id][10],'cat')); 
    } 
  }
  totprx=prx; totfrs=frs;
  setprx(0,totprx,totfrs,'');
}

function validbox() { 
    document.getElementById('formkart').action=urls[0]+'?idoffre='+off[0]+'&context='+off[5];
    setval('formkart_output','orderbox');
    setval('formkart_header',off[5]+'|'+off[0]+'|'+off[6]);
    var output='';
    for (id in dlg) {
 	if (lgactive(id) && dlg[id][0]>0) {
 	  output+=dlg[id][8]+';'+dlg[id][0]+';'+dlg[id][3]+'|';
 	}
    }
    setval('formkart_perso',output);
    cacheId('configbox');
    cacheId('offre_'+off[0]);
    displayId('waitingbox');
    document.getElementById('formkart').submit();
}
function printbox() {
    setval('formkart_output','printbox');
    setval('formkart_header',off[5]+'|'+off[0]+'|'+off[6]);
    var output='';
    for (id in dlg) {
 	if (lgactive(id) && (dlg[id][7]==0 || (dlg[id][3]!=dlg[id][13] && dlg[id][13]>0))) {
 	  output+=dlg[id][8]+';'+dlg[id][0]+';'+dlg[id][3]+'|';
 	}
    }
    document.getElementById('formkart').action=urls[2]+'?idoffre='+off[0]+'&context='+off[5];
    setval('formkart_perso',output);
    cacheId('configbox');
    cacheId('offre_'+off[0]);
	loading_box("#print_conf");
    //displayId('waitingbox');
    document.getElementById('formkart').submit();
}

function mailbox() {
    setval('formkart_output','mailbox');
    setval('formkart_header',off[5]+'|'+off[0]+'|'+off[6]);
    var output='';
    for (id in dlg) {
 	if (lgactive(id) && (dlg[id][7]==0 || (dlg[id][3]!=dlg[id][13] && dlg[id][13]>0))) {
 	  output+=dlg[id][8]+';'+dlg[id][0]+';'+dlg[id][3]+'|';
 	}
    }
    document.getElementById('formkart').action=urls[2]+'?idoffre='+off[0]+'&context='+off[5];
    setval('formkart_perso',output);
    cacheId('configbox');
    cacheId('offre_'+off[0]);
   // displayId('waitingbox');
	loading_box("#mail_conf");
    document.getElementById('formkart').submit();
}
