/************
*  Fichier Javascript commun
*
*
*****************/

/**************
* Variables globales 
**************/
var IS_IE = document.all && window.print && !window.opera && /MSIE [56]/.test(navigator.userAgent);
var IE_W3C = document.all && window.print && !window.opera && /MSIE [789]/.test(navigator.userAgent);
var IS_Webkit = /Konqueror|Safari|KHTML/.test(navigator.userAgent);
var heightPropertyToUse = IS_IE ? "height" : "minHeight";

document.documentElement.className += " hasJS";

/********************
* Framework
* Ensemble de fonctions qui aident au developpement
* Certaines de ces fonctions ne sont pas documentees, par le simple fait qu'ellesfonctionnent parfaitement et n'ont pas a  etre modifiees.
*******************/

/* AddEvent :
	Cette fonction permet d'associer une fonction a un evenement,
	ex : addEvent(window, "load", mafonction)
	ne Jamais mettre de parentheses a la fonction passee en parametres
*/
function addEvent( obj, type, fn )
{
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if (obj.attachEvent)
	{
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}

/* supprime la propagation du click sur un element (le click n'est pas repercute sur les autres elements en dessous du block en question) */
function cancelClick(e){
	if (window.event){
		window.event.cancelBubble = true;
		return;
	}
	if (e){
		if (e.stopPropagation) {
			e.stopPropagation();
		}
	}
}
/*  getStyle : 
	Cette fonction permet de recuperer le style declare sur un element, meme si celui-ci a ete declare dans la feuille de style.
	ex : getStyle(monelement, "padding-top");
*/
function getStyle(oElm, strCssRule){
	var strValue = "";
	if(document.defaultView && document.defaultView.getComputedStyle) {
		try{ strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule); }
		catch(e) { strValue = ""; }
	}
	else if(oElm.currentStyle) {
		try{
			strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
				return p1.toUpperCase();
			});
			strValue = oElm.currentStyle[strCssRule];
		} catch(e) {
			strValue = "";
		}
	}
	return strValue;
}

/*  intStyle : 
	Cette fonction retourne une valeur entiere d'un style.
	ex : 
		getStyle(monelement, "padding-top"); // retourne 15px, mais on ne veut que 15
		intStyle(monelement, "padding-top"); // retourne 15
		
*/
function intStyle(oElm, strCSSRule) {
	var val = parseInt(getStyle(oElm, strCSSRule));
	if (isNaN(val)) val=0;
	return val;
}

/*  floatStyle : 
	Cette fonction retourne la  valeur flottante d'un style.
	ex : 
		getStyle(monelement, "width"); // retourne 15.5em, mais on ne veut que 15.5
		floatStyle(monelement, "padding-top"); // retourne 15
	Cette fonction n'est pas encore utilisee, mais peut-etre dans un developpement futur.	
*/
function floatStyle(oElm, strCSSRule) {
	var val = parseFloat(getStyle(oElm, strCSSRule));
	if (isNaN(val)) val=0;
	return val;
}

/* findPos : 
	recupere la position X,Y d'un objet dans une page
	ex : 
		var pos = findPos(elm);

*/
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}


/* getMouse : 
	Recupere les coordonnees de la souris et les met dans les variables globales 
		window.mouseX
	et	window.mouseY, 
		il faut passer event en parametre sur les evenements
	ex : 
		function fun(param1, param2, e) {
			getMouse(e);
			sourisX = window.mouseX;
			sourisY = window.mouseY
		}
		fun("foo", "bar", event);

*/
/* getMouse :  */
function getMouse(e){
	var x,y; var elt = (navigator.userAgent.indexOf("MSIE 5")!=-1) ? document.body : document.documentElement;
	if ( document.captureEvents ) {
		x = e.pageX;
		y = e.pageY;
	} else if ( window.event.clientX ) {
		x = window.event.clientX+elt.scrollLeft;
		y = window.event.clientY+elt.scrollTop;
	}
	window.mouseX = x;
	window.mouseY = y;
}

/* generateElements();
	genere des coins sur les blocks contenant la classe "corners" 
	Cette fonction n'est plus utilisee par simple choix de la fnac.
	Je laisse cette fonction mais commentee afin que d'autres puissent s'inspirer si besoin.
*/
function generateElements() {
	var content = document.body;
	var div = content.getElementsByTagName("div");
	
	//corners 
	var tl = document.createElement("span"); tl.className="tl";
	var tr = document.createElement("span"); tr.className="tr";
	var bl = document.createElement("span"); bl.className="bl";
	var br = document.createElement("span"); br.className="br";
	//outsidecorners
	var outsideTl = tl.cloneNode(true);
	var outsideTr = outsideTl.appendChild(tr.cloneNode(true));
	var outsideBl = bl.cloneNode(true);
	var outsideBr = outsideBl.appendChild(br.cloneNode(true));
	//borders
	var sl = document.createElement("span"); sl.className="sl";
	var sr = document.createElement("span"); sr.className="sr";
	var st = document.createElement("span"); st.className="st";
	var sb = document.createElement("span"); sb.className="sb";
	
	function addCorners(elm) {
		with (elm) {
			appendChild(tl.cloneNode(true));appendChild(tr.cloneNode(true));
			appendChild(bl.cloneNode(true));appendChild(br.cloneNode(true));
		}
	}
	function addTopCorners(elm) {
		with (elm) {
			appendChild(tl.cloneNode(true));appendChild(tr.cloneNode(true));
		}
	}
	function addCornersChangingClass(elm, tlclass, trclass, blclass, brclass) {
		with (elm) {
			appendChild(tl.cloneNode(true)).className=tlclass;
			appendChild(tr.cloneNode(true)).className=trclass;
			appendChild(bl.cloneNode(true)).className=blclass;
			appendChild(br.cloneNode(true)).className=brclass;
		}
	}
	function addOutsideCorners(elm) {
		with (elm) {
			insertBefore(outsideTl.cloneNode(true), firstChild);
			appendChild(outsideBl.cloneNode(true));
		}
	}
	function addSides(elm){
		with(elm){
			appendChild(sl.cloneNode(true));appendChild(sr.cloneNode(true));
			appendChild(st.cloneNode(true));appendChild(sb.cloneNode(true));
		}
	}
	
	function addSidesChangingClass(elm, slclass, srclass, stclass, sbclass) {
		with(elm){
			appendChild(sl.cloneNode(true)).className=slclass;
			appendChild(sr.cloneNode(true)).className=srclass;
			appendChild(st.cloneNode(true)).className=stclass;
			appendChild(sb.cloneNode(true)).className=sbclass;
		}
	}
	
	for (var i=div.length-1; i>=0; i--) {
		var x=div[i];
		if (!x.alreadyProcessed) {
			if (x.className.match(/\bcorners\b/)){
				addCorners(x);
			}
			else if (x.className.indexOf("blockTransparentOutside")!=-1) {
				addOutsideCorners(getDivInside(x));
			}
			else if (x.className.indexOf("navigation")!=-1) {
				addCorners(getDivInside(x));
			} 
			else if (x.id=="mainInside") {
				addCornersChangingClass(x, "colTl", "colTr", "colBl", "colBr");
			}
			
			if (x.className.match(/\bsides\b/)){
				addSides(x);
			}
			x.alreadyProcessed=true;
		}

	}
}


function getDivInside(elm, className) {
	className = className ? className : "blockInside";
	var re = new RegExp("\\b" + className + "\\b");
	var divs = elm.getElementsByTagName("div");
	for (var i=0; i<divs.length; i++) {
		var div = divs[i];
		if (div.className.match(re))
			return div
	}
}



/*  addHover : 
	Cette fonction ajoute le fonctionnement de la pseudo classe hover en CSS, et seulement pour IE
	Elle se base sur les evenement propres a  IE qui sont les evenements qui ont le comportement le plus proche du :hover en CSS.
	Pour utiliser cette fonction il faut le faire en CSS
	ex : 
		#menu ul li {behavior:expression(addHover(this))}
		Afin de ne pas prendre en compte IE7 en mode strict il suffit de placer la classe .IS_IE avant, cette classe est ajoutee pendant le chargement de la page.
		.IS_IE #menu ul li {behavior:expression(addHover(this))}
*/
function addHover(elm) {
	elm.style.behavior = " ";
	elm.onmouseenter = function() {
		this.className+= ' hover';
	}
	elm.onmouseleave = function() {
		this.className = this.className.replace(/\bhover\b/,"");
	}
}




/*************
* Fonctions pour fixer les coins sous IE
* Une fonctions est prevue aussi pour Safari 2.0, Opera 8.5 et FF 1.0 pour certains cas
**************/
var CSSBottomCorners=[]; //array pouvant contenir les coins absolu positionnes en bottom
var currentBlockToFixCorners=null; //variable globale utilisee lorsqu'on veux fixer les coins sur un seul bloc

/*  cssRight : 
	fixe les coins positionnes en absolu a  droite
	ex : 
		body.IS_IE .tr {right:expression(addHover(this))}
		Il faut afin que cela fonctionne, avoir declare le right dans un selecteur precedent (pour les autres navigateurs).
		ex : .tr {height:5px;  width:5px; right:0}
		Afin de ne pas prendre en compte IE7 en mode strict il suffit de placer la classe .IS_IE avant, cette classe est ajoutee pendant le chargement de la page et n'est ajoutee que pour IE5.x ou 6.
*/
function cssRight(elm) {
	if (elm.currentStyle.right=="auto") elm.style.right = "auto";
	else elm.style.right=(parseInt(elm.currentStyle.right)-(elm.parentNode.offsetWidth%2))+"px";
}

/*  cssBottom :  (comme CSS right avec un parametre supplementaire)
	fixe les coins positionnes en absolu a  droite
	ex : 
		body.IS_IE .br {bottom:expression(addHover(this))}
	Il faut afin que cela fonctionne, avoir declare le right dans un selecteur precedent (pour les autres navigateurs).
	Afin de ne pas prendre en compte IE7 en mode strict il suffit de placer la classe .IS_IE avant, cette classe est ajoutee pendant le chargement de la page et n'est ajoutee que pour IE5.x ou 6.
	
	Si on veut rajouter ces coins dans un array qui permettra de les refixer si le bloc s'agrandit ou autre. il suffit de rajouter "true" dans les parametres.
	ex : 
		body.IS_IE .br {bottom:expression(addHover(this, true))}
*/
function cssBottom(elm, pushElement) {
	if (pushElement && !elm.CSSBottomAlreadyCSS) {
		CSSBottomCorners.push(elm);
		elm.CSSBottomAlreadyCSS=true;
	}
	if (elm.currentStyle.bottom=="auto") elm.style.bottom = "auto";
	else elm.style.bottom=(parseInt(elm.currentStyle.bottom)-(elm.parentNode.offsetHeight%2))+"px";
}

/*  fixCorners : 
	Cette fonction  est appelee lorsque l'on doit fixer tous les coins d'une page ou d'un block.
	ex : 
		fixCorners ();  //Lance la fonction pour fixer tous les blocks, il faut lancer la fonction une fois la page chargee.
		fixCorners(block); //en passant un element en parametre, le traitement ne se fera que sur le bloc et non sur toute la page.
*/
function fixCorners(block) {
	if (IS_IE) {
		for (i=CSSBottomCorners.length-1; i>-1; --i) {
			CSSBottomCorners[i].style.bottom="";
		}
	} else {
		if (IS_Webkit || /Gecko\/200[56]|Opera 8.5/i.test(navigator.userAgent)) fixCornersOnBlocks(block);
	}
}

/* 
	fixCornersOnBlocks : 
	Ajoute une classe CSS hidecorners afin de cacher les coins puis les reafficher.
	Cette fonction n'est lancee que pour Safari, Le moteur Gecko 2005 (FF1.0) et Opera 8.5), car lorsqu'on agrandit un block en Javascript, les coins en absolu positionnes en bas restent a  leur place. Cette fonction corrige le probleme.
*/
function fixCornersOnBlocks(block) {
	currentBlockToFixCorners = block || document.body;
	currentBlockToFixCorners.className+=" hidecorners";
	setTimeout("fixCornersOnBlocksShowCorners()",5);
}

/* 
	fixCornersOnBlocksShowCorners : 
	Fonction associee a  fixCornersOnBlocks(), cette fonction retire la classe hidecorners qui a ete appliquee a  currentBlockToFixCorners
*/
function fixCornersOnBlocksShowCorners() {
	if (currentBlockToFixCorners) currentBlockToFixCorners.className=currentBlockToFixCorners.className.replace(/\bhidecorners\b/g,"");
	currentBlockToFixCorners=null;
}


/*
	fixBorders
*/
function fixBorders(){
	var content = document.body;
	var div = content.getElementsByTagName("div");
	
	for (var i=div.length-1; i>=0; i--) {
		var x=div[i];
		if (x.className.match(/\bsides\b/)){
			x.style.clear='both';
			var bs = x.getElementsByTagName('span');
			var taille=[0,0];
			for (var j=0;j<bs.length;j++){
				var bsj = bs[j];
				if (bsj.className.match(/\btl\b/)){
					taille[0] = bsj.offsetHeight;
					taille[1] = bsj.offsetWidth;
				}else if (bsj.className.match(/\b(sl|sr)\b/)){
					bsj.style.height = (x.offsetHeight-(2*taille[0])+1)+"px";
					bsj.style.top = taille[0]+"px";
				}else if (bs[j].className.match(/\b(st|sb)\b/)){
					bsj.style.width = (x.offsetWidth-(2*taille[1])+1)+"px";
					bsj.style.left = taille[1]+"px";
				}
			}
			x.style.clear='none';
		}
	}
}

/*
	cssButton
*/
function cssButton(elm){
	var width = Math.round(elm.offsetWidth*75/100);
	elm.style.width = ((width%2)==0)?width+"px":(width+1)+"px";
}

/*
	fixButton
*/
function fixButton(){
	if (IS_IE) {
		var bts = document.getElementsByTagName('BUTTON');
		for (var i=0;i<bts.length;i++){
			var o = bts[i];
			if (o.style.width){
				o.style.width='';
				cssButton(o);
			}else{
				cssButton(o);
			}
		}
	}
}

/*****************
* domLoad et onload fonctions
* Ces fonctions permettent de lancer des fonctions en 2 temps
* - Soit pendant le chargement de la page (mais le DOM est construit)
* - Soit une fois que la page est construite
*****************/
/* variables globales (arrays et booleens) qui permettent de gerer le lancement des fonctions domload et onload */
var domLoaded=false;
var domMustLaunch=false;
var domLoadFunctionLaunched=false;
var domLoadTimer=null;
var domLoadArrFunctions=[];
var onloadArrFunctions=[];

/* 
	domLoad() : 
	Appartient a un ensemble de fonctions qui sont lancees pendant le chargement de la page, une fois le DOM construit
	Cette fonction attend que le dom soit totalement construit
*/
function domLoad() {
	if(document.getElementById("footer")) {
		domLoadCaller();
	} else {
		domLoadTimer=setTimeout("domLoad()",10);
	}
}
domLoad();

/* 
	domLoadCaller() : 
	Appartient a un ensemble de fonctions qui sont lancees pendant le chargement de la page, une fois le DOM construit
	Cette fonction gere le lancement de la fonction finale domLoadFunctions();
	domLoadCaller() lances les fonctions contenues dans un array de fonctions et gere le fait que domLoad doit etre lance avant le onload
*/
function domLoadCaller() {
	domLoadFunctionLaunched=true;
	for (var i=0; i<domLoadArrFunctions.length; i++) {
		domLoadArrFunctions[i]();
	}
	domLoadFunctions();
	domLoaded=true;
	if(domMustLaunch) {
		onloadCaller();
	}
}

/* 
	onloadCaller() : // ne pas modifier cette fonction
	Cette fonction gere le lancement de la fonction finale onLoadFunctions();
	onLoadCaller() est executee une fois que la page est chargee. 
*/
function onloadCaller() {
	clearTimeout(domLoadTimer);
	if (!domLoadFunctionLaunched) {
		domLoadCaller();
	}
	if (!domLoaded) {
		domMustLaunch=true;
		return;
	}
	for (var i=0; i<domLoadArrFunctions.length; i++) {
		onloadArrFunctions[i]();
	}
	onloadFunctions();
}

/* 
	addDomLoadFunc() : 
	permet d'ajouter facilement une fonction qui sera lancee avant avant le chargement complet de la page. 
	ex : 
		function myfunc() {
			//contenu fonction.
		}	
		addDomLoadFunc(myfunc) // il ne faut pas mettre les parentheses, car ici on passe une fonction en parametres.
		
	Si on veut lancer la fonction avec des parametres, il faut passer par une fonction anonyme.
	ex : 	
		function myfunc(p1, p2) {
			//contenu fonction.
		}	
		addDomLoadFunc(
			function () {
				myfunc("foo", "bar");
			}
		);
		// il ne faut pas mettre les parentheses, car ici on passe une fonction en parametres.
*/
function addDomLoadFunc(f) {
	domLoadArrFunctions.push(f);
}
/* 
	addOnLoadFunc() : 
	permet d'ajouter facilement une fonction qui sera lancee une fois la page chargee.
	fonctionne de la meme maniere que addDomLoadFunc()
*/
function addOnloadFunc(f) {
	onloadArrFunctions.push(f);
}

//on lance la fonction onloadCaller une fois la page chargee.
addEvent(window, "load", onloadCaller);

/***** fin domLoad et onload fonctions *****/


/***************
* Executions des fonctions au chargement de la page
 ***************/
/* 
	domLoadFunctions() :
	cette fonction est lancee pendant le chargement de la page, une fois que le DOM est completement construit 
*/
function domLoadFunctions() {
	document.body.className+=" hasJS"; //cette classe rajoute une classe CSS qui permet des actions afin de cacher ou afficher des elements seulement pour les visiteurs qui ont le Javascript active sur leur navigateur. (exemple le hidesubmit)
	if (IS_IE) document.body.className+=" IS_IE"; //cette classe permet d'utiliser des hacks CSS/JS seulement pour IE6 et versions inferieures.
	generateElements();
	init();
}

/*
	onloadFunctions() :
	cette fonction est lancee une fois que la page est totalement chargee (images, flash, fichiers associes)
*/
function onloadFunctions() {
	fixCorners(); //correction des coins (seulement pour IE et si besoin pour anciennes version des autres navigateurs)
	fixButton();
	fixBorders();
}

/***************
* fonction specifique au site
 ***************/
 
 function fontSize(size){
	var body = document.getElementsByTagName('body')[0];
	body.className = body.className.match(/\b(normal|medium|large)\b/)?body.className.replace(/(normal|medium|large)/,size):body.className+' '+size;
	fixButton();
	fixBorders();
	return false;
 }
 
 function showHide(showId){
	var elm=document.getElementById(showId);
	if (elm){
		var parent = elm.parentNode;
		var uls = parent.getElementsByTagName('UL');
		for (var i=0;i<uls.length;i++){
			var o = uls[i];
			o.className = o.className.indexOf('shown')!=-1?o.className.replace(/\bshown\b/,''):o.className;
		}
		elm.className += ' shown';
	}
 }

 function init(){
	showHide('troisieme');
	showHide('deuxieme');
	showHide('premier');
 }
 
 
 
 
/***********************************************************************************************************
* Nedstat
***********************************************************************************************************/
var ns_loadingtime1=(new Date()).getTime();

function sitestat(ns_l){
    var ns_type='';
    var r=''; 
    var t='?';
    var p=new Array();
    var w='';
    var l='';
    var d=document;
    var n=navigator;
    var ns_0='';
    if(top!=self){
        if('\u0041'=='A'){
            var u=n.userAgent;
            if(u.indexOf('Safari')==-1){
                var b=u.indexOf('Opera');
                if(b==-1||(u.charAt(b+6)+0)>5){
                    b=u.indexOf('Mozilla');
                    var xb=b!=-1?u.charAt(b+8)>4:1;
                    if(u.indexOf('compatible')!=-1||xb){
                        var c='try{ns_0=top.document.referrer}catch(e){}';
                        eval(c);
                        c='try{l=top.document.location.href}catch(e){}';
                        eval(c);
                    }
                }
            }
        }
    }
    else{
        ns_0=d.referrer;
        l=d.location.href;
    }
    if(ns_0.lastIndexOf('/')==ns_0.length-1){
        ns_0= ns_0.substring(ns_0.lastIndexOf('/'),0);
    }
    var f=ns_l.indexOf('?');
    if(f!=-1){
        var q=ns_l.substring(f+1);
        ns_l=ns_l.substring(0,f);
        if(q){
            var m=q.indexOf('&');
            w=q.substring(0,m==-1?q.length:m);
            if(w.indexOf('=')!=-1){
                w='';
            }
            if(w){
                q=q.substring(m==-1?q.length:m+1);
                q+=(q?'&':'')+'ns_name='+w;
            }
            if(ns_0.length>0){
                q+=(q?'&':'')+'ns_referrer='+escape(ns_0);
            }
            var s=0;
            var e=0;
            while(q.length){
                e=q.indexOf('&');
                if(e==-1){
                    e=q.length;
                }
                var o=q.substring(s,e);
                if(o.substring(0,4)=='amp;'){
                    o=o.substring(4);
                }
                if(o)p[p.length]=o;
                q=q.substring(e+1);
            }
        }
    }
    var a= l.indexOf(t);
    a=a==-1?0:l.substring(a+1);
    var j;
    if(r=='yes')j=ns_0.length;
    else if(r=='no')j=!ns_0.length;
    else if(r=='')j=1;
    if(a&&j){
        while(a.length){
            var e= a.indexOf('&');
            if(e==-1){
                e=a.length;
            }
            var k=a.substring(0,a.substring(0,e).indexOf('='));
            var v=a.substring(a.substring(0,e).indexOf('=')+1,e);
            if(k.substring(0,4)=='amp;'){
                k=k.substring(4);
            }
            while(v.substring(0,1)=='='){
                v= v.substring(1);
            }
            if(k=='ns_name'){
                w=v;
            }
            else if(k=='ns_or'){
                var g='ns_referrer=';
                for(var z=0;z<p.length;z++){
                    if(p[z].substring(0,g.length)==g){
                        p[z]='ns_referrer='+v;
                    }
                }
            }
            else{
                if(k.substring(0,3)=='ns_'&&v&&k){
                    var h=0;
                    for(var x=0;x<p.length;x++){
                        if(p[x].substring(0,p[x].indexOf('='))==k){
                            p[x]=k+"="+v;
                            h=1
                        }
                    }
                    if(!h){
                        p[p.length]=k+"="+v;
                    }
                }
            }
            a=a.substring(e+1);
        }
    }
    if(!w){return;}
    var s='';
    var y='';
    for(var i=0;i<p.length;i++)
    if(p[i].substring(0,8)!='ns_name='){
        if(p[i].substring(0,12)!='ns_referrer='){
            s+='&'+p[i];
        }
        else{
            y='&'+p[i];
        }
    }
    s+=ns_type?'&ns_type='+ns_type+'&ns_action=view':'';
    ns_pixelUrl=ns_l+'?'+w+s+"&ns__t="+(new Date()).getTime();
    ns_l=ns_pixelUrl+y;
    if(d.images){
        ns_1=new Image();
        ns_1.src=ns_l;
    }
    else{
        d.write('<img src='+ns_l+' width="1" height="1">');
    }
}

function ns_onclick (a, url, name, type, winopt)
{
    var ns_l="http://fr.sitestat.com/gdf/cegibat/s?";
    ns_l+=name;ns_l+='&ns_type='+type+'&ns_action=view';
    ns_l+='&ns__t='+(new Date()).getTime();
    if(!url)url=a.href;
    var ns_0=document.referrer;
    if(ns_0.lastIndexOf('/')==ns_0.length-1)
        ns_0=ns_0.substring(ns_0.lastIndexOf('/'),0);
    if (ns_0.length>0)ns_l+='&amp;ns_referrer='+escape(ns_0);
        winopt=winopt||"";
    var target=(a&&a.target&&a.target!="") ? (a.target.substring(0,1)=="_") ? a.target.substring(1) : a.target:"self";
    var ns_i= new Image();
    if(target&&url){
        if(window[target]){
            window.ns_softclick_timer=function(target,url){
                return function(){
                    ns_i.onload=ns_i.onerror=function(){
                        return;
                    };
                    window[((window[target])?target:"self")].location.href=url;
                }
            } (target,url);
            window.setTimeout('ns_softclick_timer()',5);

            ns_i.onload=ns_i.onerror=window.ns_softclick_timer;
        }
        else{
            window.open(url,target,winopt);
        }
    }
    ns_i.src=ns_l;
    return false;
}

//Sitestat.js
var ns_scriptversion="132";

function ns_14(){
    var ns_02 = navigator.appVersion;
    var ns_00 = parseInt(ns_02.substring(ns_02.indexOf("MSIE")+5, ns_02.indexOf("MSIE")+6));
    if (ns_00 > 0) ns_02 = 0;
    else ns_02 = parseInt(ns_02);
    return ns_02;
}

function ns_22(){
    var ns_02 = navigator.appVersion;var ns_01 = parseInt(ns_02.substring(ns_02.indexOf("MSIE")+5, ns_02.indexOf("MSIE")+6));
    if(ns_01>0) ns_02=ns_01;else ns_02=0;return ns_02;
}

function ns_pluginNetscape(){
    var ns_pluglength = navigator.plugins.length;var ns_08 = "";if(ns_pluglength>0){ns_08 = "&ns_java="+navigator.javaEnabled()+"&ns_plugins=";
    for(ns_24 = 0 ; ns_24 < ns_pluglength ; ns_24++){var ns_29 = false;for(ns_23 = 0 ; ns_23 < ns_24 ; ns_23++)ns_29 = (navigator.plugins[ns_24].description == navigator.plugins[ns_23].description);
    if(!ns_29)ns_08 += escape(navigator.plugins[ns_24].description +"|");}}return ns_08;
}

function ns_10(){
    var ns_15 = navigator.mimeTypes;var ns_17 = ns_15.length;if(ns_17>0){ns_08 = "&ns_mimetypes=";for(ns_24=0;ns_24<ns_17;ns_24++){ns_29 = false;
    for(ns_23=0;ns_23<ns_24;ns_23++)if(ns_15[ns_24].enabledPlugin == ns_15[ns_23].enabledPlugin)ns_29 = true;
    if(!ns_29)ns_08 += escape(ns_15[ns_24].description + "|")}}return ns_08;
}

function ns_12(){
    if(!document.body){document.write('<body>');}
    var ns_33=document.body;var ns_13 = 0;var ns_34 = 1;
    ns_11=new Array("47F67D00-9E55-11D1-BAEF-00C04FC2D130","7790769C-0471-11D2-AF11-00C04FA35D02","283807B5-2C60-11D0-A31D-00AA00B92C03","9381D8F2-0288-11D0-9501-00AA00B911A5","5A8D6EE0-3E18-11D0-821E-444553540000","630B1DA0-B465-11D1-9948-00C04F98BBC9","45EA75A0-A269-11D1-B5BF-0000F8051515","76C19B50-F0C8-11CF-87CC-0020AFEECF20","D27CDB6E-AE6D-11CF-96B8-444553540000","2A202491-F00D-11CF-87CC-0020AFEECF20","08B0E5C0-4FCB-11CF-AAA5-00401C608500","3AF36230-A269-11D1-B5BF-0000F8051515","3BF42070-B3B1-11D1-B5C5-0000F8051515","90A7533D-88FE-11D0-9DBE-0000C0411FC3","10072CEC-8CC1-11D1-986E-00A0C955B42F","4F645220-306D-11D2-995D-00C04F98BBC9","1CDEE860-E95B-11CF-B1B0-00AA00BBAD66","73FA19D0-2D75-11D2-995D-00C04F98BBC9","23064720-C4F8-11D1-994D-00C04F98BBC9","22D6F312-B0F6-11D0-94AB-0080C74C7E95","CA8A9784-280D-11CF-A24D-444553540000","CA8A9780-280D-11CF-A24D-444553540000","B801CA65-A1FC-11D0-85AD-444553540000");
    ns_33.addBehavior("#default#clientcaps");
    for(var ns_18=0;ns_18<ns_11.length;ns_18++)
    {if(ns_11[ns_18])if(ns_33.isComponentInstalled("{"+ns_11[ns_18]+"}","ComponentID"))ns_13|=ns_34;ns_34*=2;}return ns_13;
}

function ns_26(ns_l7){
    var ns_31 = "";for(var i = 0; i < ns_l7.elements.length ; i++){var ns_28 = ns_l7.elements[i];if(ns_28.name){if(ns_28.type == "select-multiple") {for(var j = 0 ; j < ns_28.options.length ; j++)if(ns_28.options[j].selected)ns_31 += ns_28.name+";";}else if(ns_28.type == "select-one") {ns_31 += ns_28.name+";";}else if(ns_28.type == "checkbox" || ns_28.type == "radio") {if(ns_28.checked)ns_31 += ns_28.name+";";}else ns_31  += ns_28.name+";";}}return ns_31.substring(0,ns_31.lastIndexOf(";"));
}

function sitestatForm(ns_30, ns_pixelUrl, ns_03){
    if (ns_03 == null)ns_03 = ns_26(ns_30);
    if(ns_14() >=4 || ns_22() >= 4){
        var ns_07 = ns_03.split(";");
        ns_07_length = ns_07.length;
        ns_pixelUrl += '&ns_type=submit&ns__t=' + parseInt((new Date()).getTime());
        for(var ns_24=0;ns_24<ns_30.elements.length;ns_24++){
            var ns_32 = ns_30.elements[ns_24];
            var ns_04;
            ns_16 = false;
            if(ns_03){
                for(ns_t = 0; ns_t < ns_07_length; ns_t++)
                if(ns_32.name == ns_07[ns_t])ns_16 = true;
            }
            else{
                if(ns_32.name)ns_16 = true;
            }
            if(ns_16){
                if(ns_32.type == 'select-multiple'){
                    for(var ns_j=0;ns_j<ns_32.options.length;ns_j++)
                    if(ns_32.options[ns_j].selected)ns_pixelUrl = ns_pixelUrl + "&ns_f_" + escape(ns_32.name) + "=" + escape(ns_32.options[ns_j].value);
                }
                else{
                    if(ns_32.type == 'select-one')ns_04 = ns_32.options[ns_32.selectedIndex].value;
                    else{
                        if(ns_32.type == 'checkbox' || ns_32.type == 'radio')
                        if(!ns_32.checked)continue;
                        ns_04 = ns_32.value;
                    }
                    ns_pixelUrl = ns_pixelUrl + "&ns_f_" + escape(ns_32.name) + "=" + escape(ns_04);
                }
            }
        }
        ns_30.onsubmit = null;
        var ns_21 = new Image();
        ns_21.ns_30 = ns_30;
        ns_21.onload = ns_1O;
        ns_21.onerror = ns_1O;
        ns_21.onabort = ns_1O;
        document.sitestatForm = ns_30;
        ns_21.timerID = setTimeout(ns_19, 5000);
        ns_21.src = ns_pixelUrl;
    }
}

function ns_1O(){
    this.onload = null;this.onerror = null;this.onabort = null;clearTimeout(this.timerID);this.ns_30.submit();
}

function ns_19(){
    var ns_30 = document.sitestatForm;ns_30.onload = null;ns_30.onerror = null;ns_30.onabort = null;ns_30.submit();
}

function ns_25(){
    ns_pixelUrl+="&ns_type=hidden&ns_ver="+ns_scriptversion;if(ns_14() >=3) {ns_pixelUrl+=ns_pluginNetscape();ns_pixelUrl+=ns_10();}if(ns_14() >=4 || ns_22() >= 4){var ns_screen=screen;if(parent.innerWidth) {ns_pixelUrl+= "&ns_innersize="+parent.innerWidth+"x"+parent.innerHeight+ "&ns_offset="+parent.pageXOffset+"x"+parent.pageYOffset;}ns_pixelUrl +=  "&ns_availscreen="+ns_screen.availWidth+"x"+ns_screen.availHeight;if(ns_screen)ns_pixelUrl += "&ns_screen="+ns_screen.width+"x"+ns_screen.height+"&ns_colordepth="+ns_screen.colorDepth;}if(document.images)	{ns_pixel= new Image();ns_pixel.src=ns_pixelUrl;}
}
function ns_09(){
    if(typeof (ns_loadingtime2) != "undefined"){var ns_html_loading_time=(ns_loadingtime2 - ns_loadingtime1)/1000;var ns_full_loading_time=((new Date()).getTime() - ns_loadingtime1)/1000;ns_pixelUrl += "&ns_html_loading_time="+ns_html_loading_time+"&ns_full_loading_time="+ns_full_loading_time;ns_25();}if (typeof (ns_05)!="undefined")ns_06();}document.cookie = "ns_cookietest=true";if(document.cookie.indexOf("ns_cookietest",0)>=0){if(document.cookie.indexOf("ns_session",0)<0){document.cookie = "ns_session=true";if (typeof(ns_pixelUrl) != "undefined" ) {if (ns_22() >= 5 && navigator.appVersion.indexOf("Mac")<0) {ns_pixelUrl+="&ns_p="+ns_12();}if (typeof (ns_loadingtime1) == "undefined" || ns_22() < 4)ns_25();else {if (document.body.onload) {ns_05 = 1;ns_06 = document.body.onload;}document.body.onload = ns_09;}}}
}


//Sitestat_ecommerce.js

var ns_sendOrders={};

function ns_order(ns_counterURL,ns_client_id,ns_order_id){
    this.counterURL=ns_counterURL;
    this.clientID=ns_client_id;
    this.orderID=ns_order_id;
    this.orders=[];
    this.logs=[];
    this.DEBUG=false;
};

ns_order.prototype.addLine=function(prod_id,brand,prod_grp,shop,qty,prod_price){
    this.orders[this.orders.length]={
        ns_prod_id:!this.isEmpty(prod_id)?prod_id:"ns_undefined",ns_brand:!this.isEmpty(brand)?brand:"ns_undefined",ns_prod_grp:!this.isEmpty(prod_grp)?prod_grp:"ns_undefined",ns_shop:!this.isEmpty(shop)?shop:"ns_undefined",ns_qty:this.toFloat(qty),ns_prod_price:this.toSignedFloat(prod_price)
    }
};

ns_order.prototype.sendOrder=function(){
    var cookieStr="ns_order_id_"+this.orderID+"=true";
    if(this.DEBUG){
        alert("cookie:\n"+document.cookie);
    }
    if(!this.orderID||ns_sendOrders[this.orderID]||(new RegExp(cookieStr+"\s*;")).test(new String(document.cookie||"")))
        return;
    ns_sendOrders[this.orderID]=true;
    document.cookie=cookieStr;
    var log=this.counterURL+"&ns__t="+(new Date()).getTime()+"&ns_commerce=true&ns_type=hidden"+"&ns_client_id="+this.toValueString(this.clientID)+"&ns_order_id="+this.toValueString(this.orderID)+"&ns_orderlines="+this.orders.length;
    for(var i=0,order,logURL;(order=this.orders[i]);i++){
        logURL=log+"&ns_orderline_id="+(i+1);
        for(var key in order)
        logURL+="&"+key+"="+escape(this.toValueString(order[key]));
        if(this.DEBUG)
            alert(logURL.replace(/&/g,"\n"));
        this.logs[this.logs.length]=new Image();
        this.logs[this.logs.length-1].src=logURL;
    }
    this.logs=[];
};

ns_order.prototype.toValueString=function(s){
    return new String((typeof s=="undefined")?0:s).replace(/(%3C|%3E|<|>)/gi,"_");
};

ns_order.prototype.toFloat=function(s){
    var val=parseFloat(s);
    return isNaN(val)?"ns_undefined":val;
};

ns_order.prototype.toSignedFloat=function(s){
    s=new String((typeof s=="undefined")?"":s);
    if(!this.isMoney(s))
        return 0;
    var matches=s.match(/([\+-])?([0-9\.,]+)[\.,]([0-9]{1,2})?$/);
    var val=(matches)?((matches[1])?matches[1]:"")+new String(matches[2]).replace(/[\.,]/g,"")+"."+(Math.round(matches[3]*100)/100):s.replace(/[\.,]/g,"");
    return val.replace(/([\+-])?0*(.*)/,"$1$2");
};

ns_order.prototype.isMoney=function(s){
    return/^([\+-])?([0-9]+|[0-9]{1,3}([\.,][0-9]{3})*)([\.,][0-9]{1,2})?$/.test(new String((typeof s=="undefined")?0:s).replace(/(^\s+)|\s+$/g,""));
};

ns_order.prototype.isEmpty=function(s){
    s=new String((typeof s=="undefined")?"":s);
    return(s)?s.match(/^([\s]+)?$/):false;
};





/****** BEGIN LICENSE BLOCK *****
 * Copyright (c) 2005-2006 Harmen Christophe and contributors. All rights reserved.
 *
 * This script is free software; you can redistribute it and/or
 *   modify under the terms of the Creative Commons - Attribution-ShareAlike 2.0
 * <http://creativecommons.org/licenses/by-sa/2.0/>
 * You are free:
 *	 * to copy, distribute, display, and perform the work
 *	 * to make derivative works
 *	 * to make commercial use of the work
 *
 * Under the following conditions:
 * _Attribution_. You must attribute the work in the manner specified by the
 *   author or licensor.
 * _Share Alike_. If you alter, transform, or build upon this work, you may
 *   distribute the resulting work only under a license identical to this one.
 *	 * For any reuse or distribution, you must make clear to others
 *	  the license terms of this work.
 *	 * Any of these conditions can be waived if you get permission from
 *	  the copyright holder.
 *
 * Your fair use and other rights are in no way affected by the above.
 *
 * This is a human-readable summary of the Legal Code (the full license).
 * <http://creativecommons.org/licenses/by-sa/2.0/legalcode>
 ***** END LICENSE BLOCK ******/

function trim(s) {return s.replace(/(^\s+)|(\s+$)/g,"");}

function hasClassName(oNode,className) {
	return (oNode.nodeType==1)?((" "+oNode.className+" ").indexOf(" "+className+" ")!=-1):false;
}

function addClassName(oNode,className) {
	if ((oNode.nodeType==1) && !hasClassName(oNode,className))
		oNode.className = trim(oNode.className+" "+className);
}

function deleteClassName(oNode,className) {
	if (oNode.nodeType==1)
	oNode.className = trim((" "+oNode.className+" ").replace(" "+className+" "," "));
}

function isChildNodeOf(oNode,other) {
	if (oNode.compareDocumentPosition) {
		return (oNode.compareDocumentPosition(other)==10);
	} else if (other.contains) {
		return other.contains(oNode);
	}
	var bIsChildNodeOf = false;
	function _isChildNodeOf(oNode,other) {
		while (other) {
			if (other==oNode) {
				bIsChildNodeOf = true;
				return;
			} else _isChildNodeOf(oNode,other.firstChild);
			other = other.nextSibling;
		}
	}
	_isChildNodeOf(oNode,other.firstChild);
	return bIsChildNodeOf;
}

function addEventLst(EventTarget,type,listener,useCapture) {
	useCapture = typeof(useCapture)=="boolean"?useCapture:false;
	if (EventTarget.addEventListener) {
		EventTarget.addEventListener(type, listener, useCapture);
	} else if ((EventTarget==window) && document.addEventListener) {
		document.addEventListener(type, listener, useCapture);
	} else if (EventTarget.attachEvent) {
		EventTarget["e"+type+listener] = listener;
		EventTarget[type+listener] = function() {EventTarget["e"+type+listener](window.event);}
		EventTarget.attachEvent("on"+type, EventTarget[type+listener]);
	} else {
		EventTarget["on"+type] = listener;
	}
}

function removeEventLst(EventTarget,type,listener,useCapture) {
	useCapture = typeof(useCapture)=="boolean"?useCapture:false;
	if (EventTarget.removeEventListener) {
		EventTarget.removeEventListener(type,listener, useCapture);
	} else if ((EventTarget==window) && document.removeEventListener) {
		document.removeEventListener(type,listener, useCapture);
	} else if (EventTarget.detachEvent) {
		EventTarget.detachEvent("on"+type, EventTarget[type+listener]);
		EventTarget[type+listener]=null;
		EventTarget["e"+type+listener]=null;
	} else {
		EventTarget["on"+type]=null;
	}
}

/*
	domEl() function - painless DOM manipulation
	written by Pawel Knapik  //  pawel.saikko.com
*/

var domEl = function(e,c,a,p,x) {
if(e||c) {
	c=(typeof c=='string'||(typeof c=='object'&&!c.length))?[c]:c;
	e=(!e&&c.length==1)?document.createTextNode(c[0]):e;
	var n = (typeof e=='string')?document.createElement(e) : !(e&&e===c[0])?e.cloneNode(false):e.cloneNode(true);
	if(e.nodeType!=3) {
		c[0]===e?c[0]='':'';
		for(var i=0,j=c.length;i<j;i++) typeof c[i]=='string'?n.appendChild(document.createTextNode(c[i])):n.appendChild(c[i].cloneNode(true));
		if(a) {for(var i=(a.length-1);i>=0;i--) a[i][0]=='class'?n.className=a[i][1]:n.setAttribute(a[i][0],a[i][1]);}
	}
}
	if(!p)return n;
	p=(typeof p=='object'&&!p.length)?[p]:p;
	for(var i=(p.length-1);i>=0;i--) {
		if(x){while(p[i].firstChild)p[i].removeChild(p[i].firstChild);
			if(!e&&!c&&p[i].parentNode)p[i].parentNode.removeChild(p[i]);}
		if(n) p[i].appendChild(n.cloneNode(true));
	}
}

/*
Copyright (c) 2006 Stuart Colville
http://muffinresearch.co.uk/archives/2006/04/29/getelementsbyclassname-deluxe-edition/

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial
portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
*/

function getElementsByClassName(strClass, strTag, objContElm) {
  strTag = strTag || "*";
  objContElm = objContElm || document;
  var objColl = (strTag == '*' && document.all) ? document.all : objContElm.getElementsByTagName(strTag);
  var arr = new Array();
  var delim = strClass.indexOf('|') != -1  ? '|' : ' ';
  var arrClass = strClass.split(delim);
  for (i = 0, j = objColl.length; i < j; i++) {
	if( objColl[i].tagName == "undefined" ) continue;
	var arrObjClass = objColl[i].className.split(' ');
	if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
	var c = 0;
	comparisonLoop:
	for (k = 0, l = arrObjClass.length; k < l; k++) {
	  for (m = 0, n = arrClass.length; m < n; m++) {
		if (arrClass[m] == arrObjClass[k]) c++;
		if (( delim == '|' && c == 1) || (delim == ' ' && c == arrClass.length)) {
		  arr.push(objColl[i]);
		  break comparisonLoop;
		}
	  }
	}
  }
  return arr;
}

// To cover IE 5 Mac lack of the push method
Array.prototype.push = function(value) {
  this[this.length] = value;
}

var menu_timerID = null;

function initMenus() {
//alert("Init");
detectBrowser();
//  Rajout pour gestion de firefox (chevauchement menu et div du dessous
	var header = document.getElementById('menu_principal');
	header.style.marginBottom="0";
	IE6andolder?header.style.marginTop="0px":header.style.marginTop="3px"; // Suppression ACN.
	var nMenu = document.getElementById("menu_");
	//nMenu.insertBefore(domEl('p',[domEl('a','Désactiver le menu',[['href','javascript:menuController();']])],[['id','menuControle']]),nMenu.firstChild);
	var leMenu=nMenu.getElementsByTagName('ul');
	for(var i=1;i<leMenu.length;i++){
		var liparent;
		liparent=leMenu[i].parentNode;
		addClassName(liparent,"submenu");
	}
	loadMenus();
}

function loadMenus() {
	var nMenu = document.getElementById("menu_");
   if (nMenu.addEventListener) {
		nMenu.addEventListener("mouseover",eventLstMontrerMenu,true);
		nMenu.addEventListener("focus",eventLstMontrerMenu,true);
		nMenu.addEventListener("DOMFocusIn",eventLstMontrerMenu,true);
		nMenu.addEventListener("mouseout",eventLstCacherMenus,true);
		nMenu.addEventListener("blur",eventLstCacherMenus,true);
		nMenu.addEventListener("DOMFocusOut",eventLstCacherMenus,true);

	} else {
		var nA;
		var lessubmenu = getElementsByClassName('submenu', '*', nMenu);
		for (var i=0; i<lessubmenu.length; i++) {
			addEventLst(lessubmenu[i],"mouseover",eventLstMontrerMenu);
			addEventLst(lessubmenu[i],"mouseout",eventLstCacherMenus);
			for (var j=0; nA = lessubmenu[i].getElementsByTagName("a")[j]; j++) {
				addEventLst(nA,"focus",eventLstMontrerMenu);
				addEventLst(nA,"blur",eventLstCacherMenus);
			}
		}
	}


	/* on ajoute notre image de fond dans les li pour eviter superposition */
	var leMenu=nMenu.getElementsByTagName('ul');

	for(var i=1;i<leMenu.length;i++){
		var cLi;
		cLi=leMenu[i].getElementsByTagName("li");

		for (var j=0; cLi[j]; j++) {

		var refcLi = cLi[j].firstChild;

			if(cLi[j].className=="li_ssmenu1old")
		{

			nBackground1 = document.createElement("img");
			nBackground1.src = "statics/images/testImgActives.gif";
			nBackground1.className = "itemBackground1";
				nBackground1.alt="";
				cLi[j].insertBefore(nBackground1,refcLi);
		}
		else
		{
			if(cLi[j].className=="li_ssmenu2")
			{
				nBackground2 = document.createElement("img");
				nBackground2.src = "statics/images/testImgActives4.gif";
				nBackground2.className = "itemBackground2";
				nBackground2.alt="";
				cLi[j].insertBefore(nBackground2,refcLi);
			}
		}

		}
	}

	/*var mCtrl = document.getElementById("menuControle");
	mCtrl.firstChild.firstChild.nodeValue="Désactiver le menu";*/
	addClassName(nMenu,"withjavascript");

}

function unloadMenus() {
	var nMenu = document.getElementById("menu_");
	if (nMenu.removeEventListener) {
		nMenu.removeEventListener("mouseover",eventLstMontrerMenu,true);
		nMenu.removeEventListener("focus",eventLstMontrerMenu,true);
		nMenu.removeEventListener("DOMFocusIn",eventLstMontrerMenu,true);
		nMenu.removeEventListener("mouseout",eventLstCacherMenus,true);
		nMenu.removeEventListener("blur",eventLstCacherMenus,true);
		nMenu.removeEventListener("DOMFocusOut",eventLstCacherMenus,true);

	} else {
		var nA;
		var lessubmenu = getElementsByClassName('submenu', '*', nMenu);
		for (var i=0; i<lessubmenu.length; i++) {
			removeEventLst(lessubmenu[i],"mouseover",eventLstMontrerMenu);
			removeEventLst(lessubmenu[i],"mouseout",eventLstCacherMenus);
			for (var j=0; nA = lessubmenu[i].getElementsByTagName("a")[j]; j++) {
				removeEventLst(nA,"focus",eventLstMontrerMenu);
				removeEventLst(nA,"blur",eventLstCacherMenus);
			}
		}
	}

	/* on supprime notre image de fond dans les li pour eviter superposition */
	var leMenu=nMenu.getElementsByTagName('ul');
	for(var i=1;i<leMenu.length;i++){
		var cLi;
		cLi=leMenu[i].getElementsByTagName("li");
		for (var j=0; cLi[j]; j++) {
			cLi[j].removeChild(cLi[j].firstChild);
		}
	}

	/*var mCtrl = document.getElementById("menuControle");
	mCtrl.firstChild.firstChild.nodeValue="Activer le Menu";*/
	deleteClassName(nMenu,"withjavascript");
}

/*function menuController() {
	var nMenu = document.getElementById("menu_");
	if (hasClassName(nMenu,"withjavascript")) unloadMenus();
	else loadMenus();
}*/

function eventLstMontrerMenu(evt) {
	var oNode;
	if (evt && evt.target) {
		oNode = evt.target;
	} else if (window.event) {
		oNode = window.event.srcElement;
	} else {
		oNode = this;
	}
	if (menu_timerID!=null) {cacherMenus();}
	while (oNode.id!="menu_") {
		if (hasClassName(oNode,"submenu")) {
			addClassName(oNode,"encourt");
		} else{
			addClassName(oNode,"focus");
		}
		oNode = oNode.parentNode;
	}

	// Pour MSIE ou il faut annuler le bouillonnement
	if (window.event &&
		(typeof(window.event.cancelBubble)=="boolean") )
	{
		window.event.cancelBubble = true;
	}
	return false;
}

function eventLstCacherMenus(evt) {
	var oNode, nRelatedTarget;

	if (evt && evt.target) {
		oNode = evt.target;
		nRelatedTarget = evt.relatedTarget;
	} else if (window.event) {
		oNode = window.event.srcElement;
		nRelatedTarget = window.event.toElement;

	} else {
		oNode = this;
	}

	if (nRelatedTarget) {
		var nCacherChildsTheme;
		while (oNode.id!="menu_") {


			if ( (hasClassName(oNode,"submenu")) && (isChildNodeOf(nRelatedTarget,oNode))) {
				nCacherChildsTheme = oNode;
				break;
			}
			oNode = oNode.parentNode;
		}

		if (nCacherChildsTheme) {
			if(navigator.appName!="Microsoft Internet Explorer")
			cacherMenus(nCacherChildsTheme);
		} else {
			// Au lieu de cacher tout le menu on se contente de cacher que les enfants en cours ... (donc si on passe d'un menu à l'autre il efface uniquement l'ancien ssmenu et affiche le nouveau
			cacherMenus(nCacherChildsTheme);
			//menu_timerID = setInterval("cacherMenus()",800);
		}

	} else {
		cacherMenus();
	}

	// Pour MSIE ou il faut annuler le bouillonnement
	if (window.event &&
		(typeof(window.event.cancelBubble)=="boolean") )
	{
		window.event.cancelBubble = true;
	}
	return false;
}

function cacherMenus(oNode) {
	var nMenu = document.getElementById("menu_");

	if (menu_timerID!=null) {
		clearInterval(menu_timerID);
		menu_timerID = null;
	}
	oNode = oNode?oNode:document.getElementById("menu_");
	var lessubmenu = getElementsByClassName('submenu','*', nMenu);
	var lessubfocus = getElementsByClassName('focus','*', nMenu);
	for (var i=0; lessubmenu[i]; i++) {
		deleteClassName(lessubmenu[i],"encourt");
	}
	for (var j=0; lessubfocus[j]; j++) {
		deleteClassName(lessubfocus[j],"focus");
	}
}

var IE=false;
var IE6=false;
var IE6andolder=false;

function detectBrowser()
{
var browser=navigator.appName;
var version=0;
if (navigator.appVersion.indexOf("MSIE")!=-1){
temp=navigator.appVersion.split("MSIE");
version=parseFloat(temp[1]);
}
IE=(browser=="Microsoft Internet Explorer");
IE6=IE && (parseInt(version)==6);
IE6andolder=IE && (version<=6);
return false;
}