	function ReplaceParamURL(urlRoot) {
		var regexp=new RegExp("[?&]");
		var tab=urlRoot.split(regexp);
		var reg;
	
		tabparam=new Array;
		for (var i=1;i<tab.length;i++){ 
			tabparam[tab[i].substring(0,tab[i].indexOf("="))]=tab[i].substring(tab[i].indexOf("=")+1)
		}

		if (undefined != tabparam["DEPART"]){
			reg=new RegExp("(DEPART="+tabparam["DEPART"]+")", "g");
			urlRoot = urlRoot.replace(reg,"DEPART=" + document.forms['rechgeo'].DEPART.value);
		}
		else
		{
		 urlRoot = urlRoot + "&DEPART=" + document.forms['rechgeo'].DEPART.value;
		}
		
		urlRoot = (undefined != tabparam["PROMOPRIX"])?urlRoot.replace("PROMOPRIX="+tabparam["PROMOPRIX"],"PROMOPRIX=" + document.forms['rechgeo'].PROMOPRIX.value):urlRoot + "&PROMOPRIX=" + document.forms['rechgeo'].PROMOPRIX.value;
		urlRoot = (undefined != tabparam["REDUCTION"])?urlRoot.replace("REDUCTION="+tabparam["REDUCTION"],"REDUCTION=" + document.forms['rechgeo'].REDUCTION.value):urlRoot + "&REDUCTION=" + document.forms['rechgeo'].REDUCTION.value;
		urlRoot = (undefined != tabparam["DEVISEDM"])?urlRoot.replace("DEVISEDM="+tabparam["DEVISEDM"],"DEVISEDM=" + document.forms['rechgeo'].DEVISEDM.value):urlRoot + "&DEVISEDM=" + document.forms['rechgeo'].DEVISEDM.value;
		return urlRoot;
	}

	
/************ FONCTIONS PANIER ************/
function sendSelectBasket(elmId)
{
	var pkOffer	= elmId;
	var date = new Date();
	var url			= "../160_Selection/RefreshBasket.asp";
	// importance de la date --> pour éviter le cache
	var params	= "PK=" + pkOffer + "&DT=" + date.getTime();
	var myAjax	= new Ajax.Request(url, {method: 'get', parameters: params, onComplete: displaySelectBasket});
}

function displaySelectBasket(response)
{
	// récupération et parsing du message
	var r				= response.responseXML.documentElement;
	//alert(response.responseText);
	var pkOffer			= r.getElementsByTagName("pk")[0].firstChild.data;
	var nbMaxBasket	= r.getElementsByTagName("nbMaxBasket")[0].firstChild.data;
	var ret					= r.getElementsByTagName("return")[0].firstChild.data;
	var maximum			= r.getElementsByTagName("maximum")[0].firstChild.data==1;
	var maxsoon			= r.getElementsByTagName("maxsoon")[0].firstChild.data==1;
	var nbsel				= r.getElementsByTagName("nbselect")[0].firstChild.data;
	var lst2Pk			= r.getElementsByTagName("lst2Pk")[0].firstChild.data;
	
	if (lst2Pk.toString() == '000000') lst2Pk = '';
	
	if (ret == 'Ok')
	{
		nb = nbMaxBasket-nbsel;
		var check = document.getElementById(pkOffer).checked;
		if(maximum)
		{
			alert(notranslate("<translate>Votre panier est plein, vous devez enlever des offres avant de pouvoir en ajouter de nouvelles.</translate>"));
			deselectThisOffer(pkOffer);
		}else{
			if (check)
				selectThisOffer(pkOffer);
			else
				deselectThisOffer(pkOffer);
		}
		if(maxsoon)
		{
			if(nb==0)
				var message = "<translate>Attention vous avez atteint le nombre maximum d'offres dans votre panier.\nSi vous souhaitez en ajouter vous devez en supprimer d'autres.</translate>"
			else
			{
				var message = "<translate>Attention, le nombre d'offres dans votre panier est limité à</translate> "+nbMaxBasket+"<translate>.\nVous pouvez encore ajouter</translate> "
				message+= nb;
				if(nb>1)
					message+= " <translate>offres à votre panier.</translate>";
				else
					message+= " <translate>offre à votre panier.</translate>";
			}
			alert(notranslate(message));
		}
		getMiniBasketHtml(lst2Pk.toString());
	}
}

function initSelectbasket(Session_USER_SELECTION)
{
	var i = 0;
	var obj_check;
	var strBasket = Session_USER_SELECTION;
	if (strBasket.length > 0)
	{
		if (strBasket.charAt(0) != ',')
			strBasket = ','+strBasket.toString();

		if (strBasket.charAt(strBasket.length-1) != ',')
			strBasket = strBasket + ',';
			
		for (i = 0; i < document.forms['rechgeo'].elements.length; i++)
		{
			obj_check = document.forms['rechgeo'].elements[i];
			if(obj_check.type == 'checkbox')
			{
				// On teste si le pk de l offre affiché est contenu dans le panier 
				if (strBasket.indexOf(','+obj_check.id+',')>=0)
					selectThisOffer(obj_check.id);
			}
		}
	}
}

function selectThisOffer(pkOffer)
{
	document.getElementById(pkOffer).checked = true;
	document.getElementById('noCheck'+pkOffer).style.display = 'none';
	document.getElementById('yesCheck'+pkOffer).style.display = 'block';
}

function deselectThisOffer(pkOffer)
{
	document.getElementById(pkOffer).checked = false;
	document.getElementById('noCheck'+pkOffer).style.display = 'block';
	document.getElementById('yesCheck'+pkOffer).style.display = 'none';
}

function notranslate(texte)
{
	// enlève les balise translate et /translate avant affichage
	var re = /<\/?tran.late>/i;
	while(re.test(texte))
		texte = texte.replace(re,"")
	return(texte);
}	
function getMiniBasketHtml(lst2Pk)
{
	// Construction de l'url cible et de ses paramètres
	// La date sert à éviter que le cache ne s'interpose.
	var date = new Date();
	var url = "/" + pathWS;
	var params = "listepks=" + lst2Pk + "&lang=" + langueWS + "&DT=" + date.getTime();
	// Appel de la fonction. La fonction traiteSelection s'occupe de la suite...
	new Ajax.Updater('divMiniBasket', url, {method: 'get', parameters: params});
}
/************ /FONCTION PANIER ************/