var Preq = null;

/*
 *	Change la qte d'un produit
 */
function	PQte(p, v)
{
  var f = document.forms['p'+p];
  if (!f) {
    return;
  }
  var qte = parseInt(f.qte.value)+v;
  //  if (qte > 0) {
    f.qte.value = qte;
    var e = document.getElementById('qte'+p);
    if (e)
      e.innerHTML = qte.toString();
    //  }
}

/*
 *	function qui vire un produit du panier
 */
function	del_p(f, id_p, q)
{
  e = document.getElementById('qte_'+id_p);
  e.value = q;
}

/*
 *	Ajoute le produit au panier
 */
function	PAdd(p)
{
  var f = document.forms['p'+p];
  if (!f) {
    return;
  }
  var id = parseInt(f.id.value);
  var qte = parseInt(f.qte.value);
  PSend('/index.php?l=en&module=panier&action=add', 'POST', 'id='+id.toString()+'&qte='+qte.toString(), 'updatepanier');
}
/*
 *	Affiche le panier full
 */
function	PFull()
{
  PSend('/panier-show.html', 'GET', null, 'show');
}
function	PSend(url, method, datas, action)
{
  if (window.XMLHttpRequest) { // Mozilla, Safari, ...
    Preq = new XMLHttpRequest();
    // certains version de mozilla necessite du XML, mais bug sous IE7
    //Preq.overrideMimeType('text/xml');
  } else if (window.ActiveXObject) { // IE
    Preq = new ActiveXObject("Microsoft.XMLHTTP");
  }
  //alert(parent.document.exe);
  parent.eval("DPshow('Downloading data...', 450, '')");
  //window.parent.document.DPshow('Downloading data...', 450, "<center><br /><br /><b><img src=\"/images/lswait.gif\" align=\"absmiddle\" /> Downloading data...</b><br /><br /><input type=\"button\" class=\"button\" onClick=\"Pclose();\" value=\"Cancel\" /></center><br /><br />");
  
  if (!Preq) {
    //alert('Erreur: impossible de lancer la demande'); // arrive que ches les ploucs, mais faut pas le dire
    return false;
  }    
  Preq.onreadystatechange = function() { PRec(Preq, action) };
  Preq.open(method, url, true);
  if (method.toLowerCase() == 'post') {
    Preq.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
  }
  Preq.send(datas);
}
function	Pclose()
{
  DPclose();
  if (Preq && Preq.readyState < 4) {
    Preq.abort();
  }
}
/*
 *	Reception AJAX
 */
function	PRec(Preq, action)
{  
  //return;
  if (!Preq) {
    return;
  }
  if (Preq.readyState != 4) {
    return;
  }
  if (!Preq.responseText) {
    var code = Preq.status;
    var msg = "<a href=\"javascript:DPclose();\">Warning : request can't be end correctly ["+code+"]</a>";
  } else {
    if (window.ActiveXObject){ // IE, test a faire en premier car IE7 remond OUI au prochain mais merdoi correctement
      var xmldoc = new ActiveXObject("Msxml2.DOMDocument.3.0");
      xmldoc.async = false; // met le script en mode bloquant
      xmldoc.loadXML(Preq.responseText); // loadXML: load XML from string, load: load XML from URL
    } else if (window.XMLHttpRequest && Preq.responseXML){ // MOZ
      var xmldoc = Preq.responseXML;
    }
  }
  //  alert(Preq.responseText);
  var reg=new RegExp("\n|\r", "g");
  var reg2=new RegExp("\'", "g");

  switch (action)
    {
    case 'show' : { //parent.eval("DPshow('', 650, '"+PgetXMLTagValue(xmldoc, 'msg').replace(reg, '').replace(reg2, '\\\'')+"');"); break; 
      DPshow('', 650, PgetXMLTagValue(xmldoc, 'msg'));
      break;}
    case 'cmdfrompanier' : { window.location = '/commande-etape1.html'; break; }
    case 'updatepanier' : { PupdatePanier(xmldoc); break; } 
    case 'reload' : { window.location.reload(); break; }
    default : { alert('Unkown action : '+action);  break; }
    }
}
/*
 *	Met a jour les quantites du panier complet
 */
function	PUpdateAll(f, a)
{
  var p = '';
  for (var j = 1; e = document.getElementById('qte_'+j); j++) {
    if (p != '')
      p += '&';
    p += e.name+'='+e.value;
    var pl = document.getElementById('pl_'+j);
    if (pl){
      if (p != '')
	p += '&';
      p += pl.name+'='+pl.value;
    }
  }
  if (a == 'post')
    PSend('/panier-update.html', 'POST', p, 'updatepanier');
  else if (a == 'reload')
    PSend('/panier-update.html&next=show', 'POST', p, 'reload');
}
/*
 *	exactement pareil que PUpdateAll, mais apres on va rediriger sur le passage de commande
 */
function	Pcmd(f)
{
  var p = '';
  for (var j = 1; e = document.getElementById('fullp-'+j); j++) {
    if (p != '')
      p += '&';
    p += e.name+'='+e.value;
  }
  PSend('/panier-update.html', 'POST', p, 'cmdfrompanier');

}
function	PupdatePanier(xmldoc)
{
  var ps = document.getElementById('panier_s');
  if (ps) {
    var psdata = PgetXMLTagValue(xmldoc, 'ps');
    //alert('a choppe la val' + psdata);
    //psdata = 'test';
    if (psdata)
      ps.innerHTML = psdata;
  }
  var pfdata = PgetXMLTagValue(xmldoc, 'pf');
  if (pfdata)
    {
      //       if(window.DPshow) 	
      // 	{
      // 	  DPshow('', 650, pfdata);
      // 	}
      //       else
      // 	{
      //       if (window.execScript)
      // 	window.execScript("DPshow('', 650, pfdata);");
      //       else
      var reg=new RegExp("\n|\r", "g");
      var reg2=new RegExp("\'", "g");
      //      alert(pfdata.replace(reg, '').replace(reg2, '\\\''));
      parent.eval("DPshow('', 650, '"+pfdata.replace(reg, '').replace(reg2, '\\\'')+"');");
      //alert('top');
      //}
    }
}
function	PgetXMLTagValue(xmldoc, tagname)
{
  if (xmldoc && xmldoc.getElementsByTagName(tagname) && xmldoc.getElementsByTagName(tagname).item(0) && xmldoc.getElementsByTagName(tagname).item(0).firstChild) {
    var regex = new RegExp ('&', 'gi') ;
    // regex a corriger
    //alert(xmldoc.getElementsByTagName(tagname).item(0).firstChild.data.replace(regex, '&'));
    return xmldoc.getElementsByTagName(tagname).item(0).firstChild.data.replace(regex, '&');
  }
  return false;
}
/*
 *	Valide une form vers une update ou une commande du panier
 */
function	PFull2cmd(f, a) {
  if (a == 1) {
    f.action = PUpdateAll(f, 'post');
  } else if (a == 2) {
    f.action = Pcmd(f);
  } else if (a == 3) {
    f.action = PUpdateAll(f, 'reload');
  }
}

