
function recharge_page() {
 var query = location.search.substring(1);
 if (arguments.length == 1) query = change_query(query, arguments[0]);
 else {
   for (var i=0;i<arguments.length;i++) query = change_query(query, arguments[i]);
 }
 location.href = location.pathname + (query ? "?" + query : "");
}




function change_query(query, param) {
 // découpe param "variable=valeur" en variable et valeur
 var pos = param.indexOf("=");
 if (pos == -1) {
   var variable = param;
   var valeur = "";
 }
 else {
   var variable = param.substring(0, pos+1); // "variable="
   if (pos == param.length-1) var valeur = "";
   else var valeur = param.substring(pos+1); // "valeur"
 }
 if (variable == "*") query = "";
 // si on a déjà des paramètres
 else if (query) {
   // la variable n'est pas trouvée dans la chaîne query : on rajoute param au query
   if (query.indexOf(variable) == -1) query += valeur ? "&" + param : "";
   // sinon, il se peut qu'elle y ait, mais on peut avoir aussi "id_page=" alors qu'on cherche "page="
   else {
     var params = query.split("&");
     var num_param = ordre_param(params, variable.substring(0, variable.length-1));
     // si le paramètre n'existe pas déjà dans le query, on le rajoute à la fin
     if (num_param == -1) query += valeur ? "&" + param : "";
     // sinon on le change ou on le supprime (si valeur est vide)
     else {
       if (valeur) params[num_param] = param;
       else params.splice(num_param, 1);
       query = params.length ? params.join("&") : "";
     }
   }
 }
 // on n'a pas de paramètre actuellement, le query = le param
 else if (valeur) query = param;
 return query;
}






function ordre_param(params, variable) {
 var i = 0;
 while (i<params.length) {
   var elts_param = params[i].split("=");
   if (elts_param[0] == variable) break;
   else i++;
 }
 if (i == params.length) return -1;
 else return i;
}
