var docUrl = document.location.toString()

//affichage de la rubrique 1
var paramRub1Position=docUrl.search(/rub1/i)
//affichage de la rubrique 2
var paramRub2Position=docUrl.search(/rub2/i)
//affichage de la rubrique 0
var paramRub3Position=docUrl.search(/rubrique/i)

//Position des variables dans l'url
var paramRub1ValPosition
var paramRub2ValPosition

//déclarations des variables de rubrique
var paramValRub1=0
var paramValRub2=0


if (paramRub2Position!=-1) {
	paramRub2ValPosition = paramRub2Position + 5    // 'rub2='
	paramValRub2 = docUrl.slice(paramRub2ValPosition,paramRub1Position-1)
}

if (paramRub1Position!=-1) {
	paramRub1ValPosition = paramRub1Position + 5    // 'rub1='
	paramValRub1 = docUrl.slice(paramRub1ValPosition,paramRub3Position-1)
}

//Variable servant respectivement à stocker la rubrique et sous rubrique précédente.
var oldCurr=0
var oldCurr1=0




/************************************************************************************
Making cross-browser objects
************************************************************************************/
function makeMenuObj(obj,nest){
	nest=(!nest) ? "":'document.'+nest+'.'
	this.evnt = document.getElementById?document.getElementById(obj):document.all?document.all[obj]:document.layers?eval(nest+'document.'+obj):0;
	this.css = this.evnt.style?this.evnt.style:this.evnt;
	this.ref=document.layers?this.evnt.document:document;
	this.x=this.css.left||this.evnt.offsetLeft;
	this.y=this.css.top||this.evnt.offsetTop;
	this.hideIt=b_hideIt; this.showIt=b_showIt; this.movey=b_movey
	this.moveIt=b_moveIt; this.moveBy=b_moveBy; this.status=0;
	this.bgImg=b_bgImg;	this.obj = obj + "Object"; eval(this.obj + "=this");
	this.clipTo=b_clipTo;
	return this
}
function b_showIt(){this.css.visibility="visible"; this.status=1}
function b_hideIt(){this.css.visibility="hidden"; this.status=0}
function b_movey(y){this.y=y; this.css.top=this.y}
function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x;this.css.top=this.y}
function b_moveBy(x,y){this.x=this.x+x; this.y=this.y+y; this.css.left=this.x;this.css.top=this.y}
function b_bgImg(img){
	var indice_img=this.id.substring(10,this.id.length)
	var indice_rub=""
	
	// ID DE LA RUB entreprises 0
	id_ent = 0;
	// ID DE LA RUB salaries 21
	id_sal = 19;
	//	ID DE LA RUB partenaires 40
	id_par = 38;
	//	ID DE LA RUB adherents 46
	id_adh = 46;
	
	if ((indice_img>id_ent) && (indice_img<id_sal)) {
		indice_rub=1;
	} else if ((indice_img>id_sal) && (indice_img<id_par)) {
		indice_rub=2;
	} else if ((indice_img>id_par) && (indice_img<id_adh)) {
		indice_rub=3;
	} else if (indice_img>id_adh) {
		indice_rub=4;
	}
	
	if(document.getElementById && indice_rub!="") {
		if (indice_rub!="" && img!='img/bk_rub')
		{	
			document.getElementById(this.id+"_img").src = img+indice_rub+'.gif';
			document.getElementById(this.id+"_img").oldSrc = img+indice_rub+'.gif';
		}
		else
		{
			document.getElementById(this.id+"_img").src = ''+img+'.gif';
			document.getElementById(this.id+"_img").oldSrc = ''+img+'.gif';
		}
	}
	else if(document.layers)
	{
		this.ref.layers[0].document.images[0].src = img+'.gif';		
	}
	else
	{
		document.images[this.id+"_img"].src = img+'.gif';
	}
}
function b_clipTo(t,r,b,l,w){if(document.layers){this.css.clip.top=t;this.css.clip.right=r
this.css.clip.bottom=b;this.css.clip.left=l
}else{this.css.clip="rect("+t+"px,"+r+"px,"+b+"px,"+l+"px)"; if(w){this.css.pixelWidth=this.css.width=r; this.css.pixelHeight=this.css.height=b}}}
/********************************************************************************
Initiating page, making objects..
********************************************************************************/
createSlideMenu.prototype.init = function(){
	document.write("</div>")
	this.cont=new makeMenuObj(this.name+'cont')
	this.cont.moveIt(this.menux,this.menuy)
	var yy = 0, el 	//Make top menus
	for(var j=0;j<this.topmenus.length;j++){
		el = this.menus[this.topmenus[j]]
		el.o = new makeMenuObj(this.name+"_"+el.num,this.name+"cont")
		el.o.moveIt(this.l[0].left,yy); el.top = j; el.origy = yy
		el.o.id = el.id; el.o.status=1;
		el.o.h = this.l[0].height; el.img = this.l[0].regImage
		yy+=el.o.h + this.l[0].between; el.o.clipTo(0,this.l[0].width,el.o.h,0,1)
		if(j!=this.topmenus.length-1)	el.nexttop = this.topmenus[el.top+1]
		this.loop(el.num,j)
	}
	this.cont.showIt(); this.cont = null; this.level = null;
}
createSlideMenu.prototype.loop = function(num,j){
	var el = this.menus[num],temp,p,h,w,y,img
	for(var i=0;i<el.childs.length;i++){
		temp = el.childs[i]
		w = this.l[temp.lev].width; h = this.l[temp.lev].height
		y = el.o.y+el.o.h + h*i + this.l[temp.lev].between*i + this.l[temp.lev].between
		temp.o = new makeMenuObj(this.name+"_"+temp.num,this.name+"cont")
		temp.o.hideIt(); temp.o.clipTo(0,w,h,0,1)
		temp.o.moveIt(this.l[temp.lev].left,y)
		el.endy =y+h; temp.origy = y
		temp.o.zIndex=temp.num
/*a voir*/		temp.o.h = h; temp.top = j
		temp.chnum = i; temp.o.id = temp.id

		if(this.useImages){ //Setting bgimage
			img=""
			if(temp.childs.length>0){ //With subs
				if(i==el.childs.length-1) img=this.l[temp.lev].subRound
				else img=this.l[temp.lev].subImg
			}else	if(i==el.childs.length-1){
				img=this.l[temp.lev].roundImg2
			}
			if(img){
				temp.o.bgImg(img); temp.img = img
			}else temp.img = this.l[temp.lev].regImage
		}
		p = this.menus[temp.parent] //Setting the next elements
		if(temp.chnum != p.childs.length-1){ //Not the last el
			temp.nextel = p.childs[temp.chnum+1].num
			temp.nexttop = temp.lev==1?p.nexttop:p.nextel
		}else{ //Last el, so we only have nexttop
			temp.nexttop = p.nextel
			if(temp.nexttop==-1) temp.nexttop = p.nexttop
		}
		if(temp.childs.length>0){
			this.loop(temp.num,j) //Recursive call
		}
	}
}

/********************************************************************************
Moving all objects in the array after a provided array number
********************************************************************************/
createSlideMenu.prototype.moveItems = function(px,num){
	for(i=num;i<this.menus.length;i++){
		if(this.menus[i].o.status){ //Moving all visible menus
			this.menus[i].o.movey(this.menus[i].o.y+px)			
		}
	}
}
/********************************************************************************
Switch menu function.
********************************************************************************/
createSlideMenu.prototype.switchMenu = function(num,accesdirect){

	var m = this.menus[num]
	 if(m.childs.length==0) return
	this.going = 1
	var y=m.o.y+ m.o.h +this.l[m.lev].between
	var clnum = m.num, olev = m.lev, onext = m.nextel

	//accesdirect définit une variable envoyée lorsque la fonction switchMenu est appelée en dehors du onClick apres rechergement de la page	
	if (accesdirect!=1)
	{
		if(this.active[0]>-1){
			var n = -1
			if(m.lev>0){
				if(this.active[m.lev]>-1) n=this.active[m.lev]
				else n=this.active[m.lev-1]
			}else n = this.active[0]
			m = this.menus[n]
			if(m.lev == 0 && olev==0)
				y = m.nexttop!=-1?this.menus[m.nexttop].origy:-1
			else if(clnum!=m.num){
				var ny = m.o.y + m.o.h + this.l[m.lev].between			
				if(clnum>m.num && olev==m.lev) y = Math.min(ny,y)
				else	if(onext==m.num) y = Math.max(ny,y)
			}
		}		
	} else {
		//alert(num);
	}
	this.moveUp(m.nextel!=-1?m.nextel:m.nexttop,num,y)
}
/********************************************************************************
Move items up
********************************************************************************/
createSlideMenu.prototype.moveUp = function(top,num,y){
	//if (num==40)
	//	alert("top="+top+"num="+num+"y="+y)
	var move = 0, m, yy=0;
	if(this.active[0]>-1 && top>-1){		
		m = this.menus[top]		
		if(m.o.y>y){
			if((m.o.y-this.pxspeed)<y){
				yy = -(((m.o.y-y)));				
				if (yy == -1) yy = 0;
			}else 
				{
					yy=-this.pxspeed;				
				}			
				this.moveItems(yy,top);
			move=1;
			if (yy == 0) move=0;		
		}
		
	}
	if(move){		
		setTimeout(this.name+".moveUp("+top+","+num+","+y+")",this.timspeed);		
	}
	else {
		m = this.menus[num]
		for(var i=m.lev;i<this.active.length;i++){ //Reset images - actives et cetera
			if(this.active[i]>-1){
				temp = this.menus[this.active[i]]
				temp.o.moveIt(temp.o.x-this.inset,temp.o.y)
				if(this.useImages) temp.o.bgImg(temp.img);		//Change bg
				if(this.arrow) {
					temp.ar.replaceChild(document.createTextNode("4"),temp.ar.childNodes[0])
				}
				ch = temp.childs
				for(var j=0;j<ch.length;j++){
					ch[j].o.hideIt(); ch[j].o.movey(ch[j].origy)
				}
				this.active[i] = -1
			}
		}
		//Then open the current one, if childs
//alert(m.childs.length)
		if(m.childs.length == 0){this.going = 0; return}
		for(i=0;i<m.childs.length;i++){ //Show all
			m.childs[i].o.showIt()
			y = m.childs[i].o.y + m.childs[i].o.h
		}
		y+=this.l[m.lev].between
		if(m.lev>0 && m.chnum!=this.menus[m.parent].childs.length-1){
			yy=y; y = this.menus[m.parent].endy + this.l[m.lev].between
		}
		m.o.moveIt(m.o.x+this.inset,m.o.y) 	//Inset current item:
		if(this.useImages) m.o.bgImg(this.l[m.lev].roundImg) 	//Change bg
		this.active[m.lev] = num //Set active
		if(this.arrow) m.ar.replaceChild(document.createTextNode("6"),m.ar.childNodes[0])
		if(m.nexttop>-1 || m.nextel>-1) this.moveDown(m.nexttop,m.nextel,y,yy) //Then start moving all other elements down
		else this.going=0
	}
}
/********************************************************************************
Move items down
********************************************************************************/
createSlideMenu.prototype.moveDown = function(top,num,y,yyy){
	var m = this.menus[top],yy
	if(m && m.o.y<y){
		if((m.o.y+this.pxspeed)>y) yy = y-m.o.y
		else yy=this.pxspeed
		this.moveItems(yy,top)
		setTimeout(this.name+".moveDown("+top+","+num+","+y+","+yyy+")",this.timspeed)
	}else if(num>-1){
		this.moveDown(num,-1,yyy,0)
	}else this.going=0
}
/********************************************************************************
Slide menu object
********************************************************************************/
function createSlideMenu(name)
{
	document.write('<div id="'+name+'cont">'); //The cont div start
	this.name = name;
	this.menus = new Array();
	this.curr = 0;
	this.lasttype = new Array();
	this.writesubsonly = 0;
	this.level = new Array();
	this.l = new Array();
	this.topmenus = new Array();
	this.active = new Array();
	return this;
}
/********************************************************************************
Function to create the objects and the divs
********************************************************************************/
createSlideMenu.prototype.makeMenu = function(type,text,lnk,target,end,classMenu)
{
	
		var str="",tg="",parent,m,cl;
	m = this.menus[this.curr] = new Object();
	this.lasttype[type] = this.curr; if(!lnk) lnk="#";
	m.lev = 0; m.type = type; m.childs = new Array();
	m.num = this.curr; m.parent = -1; m.nextel = -1;
	m.nexttop = -1; parent = 0;
	//DEBUGGING::::::
	m.text = text;
	
	if(type.indexOf("sub")>-1)
	{ 	//Find parent type		
		
		if(type.length == 3)
		{ //sub
			parent = "top"; m.lev = 1;
		}
		else
		{
			
			parent = type.substr(3,1); //sub2+
			m.lev = parent;
			parent--;
			if(parent==1)
			{
				parent = "sub";
				m.lev = 2;
			}
			else
				parent = "sub"+parent;
		}
	}
  if(m.lev>=this.l.length){//Level control (same as CM4)
	 var p1,p2=0;
		if(m.lev>=this.level.length) p1=this.l[this.level.length-1];
	 else p1=this.level[m.lev];
		this.l[m.lev]=new Array();
		if(!p2) p2=this.l[m.lev-1]
	 if(m.lev!=0 && p1){
		for(i in p1){ //Copying an entire object
				if(p1[i]==null) this.l[m.lev][i]=p2[i];
				else this.l[m.lev][i]=p1[i]
			}
	 }else{
			this.l[m.lev]=this.level[0];
		}
	 this.level[m.lev]=p1=p2=null
  }
	this.active[m.lev] = -1 
	if(parent)
	{ //Find parent element
		m.parent = this.lasttype[parent]
		parent = this.menus[this.lasttype[parent]]
		parent.childs[parent.childs.length] = m

		if(this.arrow && parent.childs.length==1){
			str='<span class="'+this.arrow+'">4</span>'
			if(document.getElementById && document.getElementById(parent.id).childNodes){
				parent.ar = document.getElementById(parent.id).childNodes[this.useImage?1:0].childNodes[0]
				parent.ar.innerHTML = str+parent.ar.innerHTML; parent.ar=parent.ar.childNodes[0]} else this.arrow=""
		}
	}
	else
	{
		this.topmenus[this.topmenus.length] = this.curr;
	}

	if(!this.writesubsonly || type!="top"){
		cl = this.l[m.lev].className
		m.id = id = this.name + "_" + this.curr


		str+='<div id="'+id+'" class="'
		str+=cl
		str+='">' //main div start

		if(this.useImages){
			str+='<div class="'

			str+=this.bgClass
			str+='">'//bgdiv
			str+='<img border="0" id="'+id+'_img" src="'

			//Gestion de l'affichage de la picto pour les sous-rubriques de niveau 1
			if (paramValRub1>0 && this.curr==paramValRub1 && paramValRub2==0)	{
				str+=this.l[m.lev].regImage.replace(/off/i,"on")
			}
			//Gestion de l'affichage de la picto pour les sous-rubriques de niveau 2
			 else if (paramValRub2>0 && this.curr==paramValRub2)	{
				str+=this.l[m.lev].regImage.replace(/off/i,"on")
			} else {
				str+=this.l[m.lev].regImage
			}

			if (classMenu!=null && this.l[m.lev].regImage!='../assets/img/bk_rub'){
				str+=classMenu
			}
			str+='.gif'+'" />'
			str+='</div>' //bgdiv
		}
		if(target) tg =' target="'+target+'" '
		str+='<div class="'+this.txtClass+'"><table border="0" cellpadding="0" cellspacing="0"'
		if(m.lev==1)
		{
			str+=' height="20"'
		}
		else
		{
			str+=' height="16"'
		}

		str+=' width="135"><tr><td valign="middle" '
		if(m.lev==1)
		{
			str+=' height="20"'
		}
		else
		{
			str+=' height="16"'
		}

			//str+='>' + this.curr + '<a '
			str+='><a '
			
			if(lnk=="#") {
				str+=' onClick="'
				str+='javascript:if(document.changeRub.rubrique.value!='+this.curr+') {'
				str+=this.name+'.switchMenu('+this.curr+');if(document.getElementById) this.blur();} '
			}

			if (m.lev==0) {
				str+='document.changeRub.rubrique.value='+this.curr+';'
				oldCurr=this.curr
			} else if (m.lev==1) {
				str+='document.changeRub.rubrique.value='+this.curr+';'
				oldCurr1=this.curr
			} else {
				str+='document.changeRub.rubrique.value='+this.curr+';'
			}

		if(lnk=="#") str+='return false;'
		str+='" href="'+lnk
		if (m.lev==1 && lnk!="#")
		{
			str+='?rub1='+this.curr+'&rubrique='+oldCurr
		} else if (m.lev==2 && lnk!="#") {
			str+='?rub2='+this.curr+'&rub1='+oldCurr1+'&rubrique='+oldCurr			
		}

		//str+='" ' + tg + ' class="' + this.l[m.lev].classNameA + '" onMouseOut="document.getElementById(\'' + id + '_img\').src = document.getElementById(\'' + id + '_img\').oldSrc;" onMouseOver="document.getElementById(\'' + id + '_img\').oldSrc = document.getElementById(\'' + id + '_img\').src; document.getElementById(\'' + id + '_img\').src = document.getElementById(\'' + id + '_img\').src.replace(/off/i,\'on\');">' + text + '</a></td></tr></table></div>\n'

		str+='" ' + tg + ' class="' + this.l[m.lev].classNameA+'"'
		
			if (m.lev!=0 && this.curr != paramValRub1)
			str+=' onMouseOut="document.getElementById(\'' + id + '_img\').src = document.getElementById(\'' + id + '_img\').oldSrc;" onMouseOver="document.getElementById(\'' + id + '_img\').oldSrc = document.getElementById(\'' + id + '_img\').src; document.getElementById(\'' + id + '_img\').src = document.getElementById(\'' + id + '_img\').src.replace(/off/i,\'on\');"'
		
		str+=' >' + text + '</a></td></tr></table></div>\n'
		
		str+="</div>\n\n" //main div end		
		document.write(str)
	}
	this.curr++
}

/********************************************************************************
Level object
********************************************************************************/
function slideMenu_makeLevel(){
  var c=this, a=arguments;
	c.left=a[0]||0; c.width=a[1]||null; c.height=a[2]||null;
	c.between=a[3]||null; c.className=a[4]||null; c.classNameA=a[5]||null;
	c.regImage=a[6]||null; c.roundImg=a[7]||null; c.roundImg2=a[8]||null;
	c.subImg=a[9]||null; c.subRound=a[10]||null; return c
}
/********************************************************************************
Preloading images
********************************************************************************/
function preLoadBackgrounds(){
  for(i=0;i<arguments.length;i++){
	 this[i]=new Image()
	 this[i].src=arguments[i]
  }
  return this
}