/*******************************************
	j_url.js
	
	Lecture et ecriture de parametres dans une url
	
	j_urlGetInfos : section contenant les parametres
	j_urlGetVar : recuperer une variable
	j_urlPushVar : envoyer une variable
	j_quittePage : lancer une fonction quand on quitte la page
	
*******************************************/


$.extend({

 j_urlGetVar : function(nomVariable,conf) {
 
	conf = $.extend({ancre : "#javascript",debut:":",inter:";"},conf);
	
	var variable = false ;
	var infos = $.j_urlGetInfos(conf) ;

	if (infos) {
		// Recherche de la variable :
		nomVariable = nomVariable + "="
		var taille = nomVariable.length
		if (infos.indexOf(nomVariable)!=-1)
		variable = infos.substring(infos.indexOf(nomVariable)+taille,infos.length).substring(0,infos.substring(infos.indexOf(nomVariable)+taille,infos.length).indexOf(conf.inter))
	}
	return variable
 },
 
 j_urlGetInfos : function(conf) {
 
	conf = $.extend({ancre : "#javascript",debut:":",inter:";"},conf);
	
	var infos = false ;
	
	// L'ancre n'est pas trouvee :
	if (location.href.indexOf(conf.ancre+conf.debut) == -1) return infos  ;
		
	// Creation du string info pour la recherche de variable :
	infos = location.href.substring(location.href.indexOf(conf.ancre+conf.debut)+conf.ancre.length+1, location.href.length)+conf.inter ;
	if (infos.indexOf("#")!=-1) infos = infos.substring(0,infos.indexOf("#"))+conf.inter ;

	return infos
 },
 
 j_urlPushVar : function(variable,valeur,conf) {
 
	conf = $.extend({ancre : "#javascript",debut:":",inter:";"},conf);
	
	var infos = $.j_urlGetInfos(conf) ;
	var ancienneValeur = $.j_urlGetVar(variable,conf) ;
	
	if (infos === false) {
		return location.href = location.href + conf.ancre + conf.debut + variable + "=" + valeur ;
	}
	else if (ancienneValeur === false) {
		var originalInfo = infos.substring(0,infos.length-1) ;
		var nouvelInfo = infos + variable + "=" + valeur ;
		return location.href = location.href.replace(originalInfo,nouvelInfo) ;
	} else {
		var originalInfo = infos.substring(0,infos.length-1) ;
		var nouvelInfo = originalInfo.replace(variable+"="+ancienneValeur,variable+"="+valeur) ;
		return location.href = location.href.replace(originalInfo,nouvelInfo) ;
	}
	
 },
 
 j_quittePage : function (maFn) {
		if ( $.browser.opera ) { // etendre aux navigateurs ne prenant pas en compte 'beforeunload'
			$("form").live('submit',maFn) ;
			$("body a").live('click',maFn) ;		
		} else {
			$(window).bind('beforeunload',maFn) ;		
		}
		// Problème avec ie quand on ouvre un fichier xls ou pdf :
		if($.browser.msie) {
			$("a[href$='.pdf'],a[href$='.xls']").click(function(){
				$(window).unbind('beforeunload',maFn) ;
				return true ;
			})
		}
}

});



