function createXmlHttpRequest(lang)
{
	var lang = (lang == null) ? "fr" : lang;
	
	try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
    try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
    try { return new XMLHttpRequest(); } catch(e) {}
	if (lang=="fr")
    	alert("Votre navigateur ne supporte pas cette page. Javascript doit être activé pour que vous puissiez utiliser cette fonction.");
    else
		alert("Your browser does not support this page. Javascript must be installed in order to use this function.");
	return null;
}

function addPrdResponse(i,lang)
{
	
	var lang = (lang == null) ? "fr" : lang;
	
	var t = i.tokenize("|", " ", false);

	// Si on a une réponse positive
	if (t[0]==1)
	{

		// On update le prix
		document.getElementById('nbrArticles').innerHTML=t[1];
		document.getElementById('totalPartiel').innerHTML=t[2];
		
		// On update le process bar
		if (lang=="fr")
			msg="Ajouté avec succès";
		else
			msg="Added successfully";
		document.getElementById(addStatus).innerHTML="<font style=\"font-size:9pt\"><img src=\"img/check_mark.gif\" />&nbsp;&nbsp;"+msg+"</font>";
		  
	}
	// S'il y a eu une erreur
	else
	{
		if (lang=="fr")
			msg="Erreur";
		else
			msg="Error";
		document.getElementById(addStatus).innerHTML="<font style=\"font-size:9pt\">"+msg+"!</font>";
	}
					

}

	// initialisation du Request utilisé pour envoyer les requêtes
      xhr = createXmlHttpRequest();

	// fonction pour traiter le retour
	var rtnFnct;
	
	var addStatus;

	function popUpBO(lang)
	{
		
		var lang = (lang == null) ? "fr" : lang;
		
		if (lang=="fr")
			alert('Nous tenons à vous aviser que le produit que vous venez d\'ajouter à votre pannier n\'est pas disponible pour le moment. Contactez-nous pour connaître le délais de réception de cet item. Merci de votre compréhension.');
		else
			alert('We wish to inform you that the product that you just added to your cart is currently not available. Please contact us for the expected delay in receiving this item. We thank you for your comprehension.');
	}


      // fait une requête ajax
      function envoyerRequete( url, query, addStatusT, rtnFnctT, lang)
      {
		  
			var lang = (lang == null) ? "fr" : lang;
		  
		  rtnFnct=rtnFnctT;
		  addStatus=addStatusT;
		  
		  // On affiche le status
		  if (lang=="fr")
			msg="Ajout en cours";
		else
			msg="Adding item";
		  document.getElementById(addStatus).innerHTML="<font style=\"font-size:9pt\"><img src='img/ajax-loader.gif' />&nbsp;&nbsp;"+msg+"...</font>";
		  
        // on annule la requête en cours s'il y en a une
        xhr.abort();
        xhr.onreadystatechange = traiterReponse;

        // il faut maintenant construire l'url
        url = url+"?"+query;
        xhr.open( "GET", url );
        xhr.send(null);
      }

      // fonction appelée lorsque l'état de l'objet XmlHttpRequest change
      function traiterReponse()
      {
		if( xhr.readyState == 4 )
        {
          if( xhr.status == 200 )
          {
            // nous sommes prêt à afficher la liste de noms retournés
            rtnFnct(xhr.responseText);
          }
          else
          {
            // La requête a échouée, on affiche un message d'erreur
            rtnFnct("La requête http a retourné " + xhr.statusText + "(" + xhr.status + ")");
          }
        }
	
      }