// tableau général de Rubrique
var arrayRubrique = new Array(); 
var rubCourante = "";

// variables pour la navigation dans le menu
var curIndex = "0";
var activeSub = -1;
var openSub = -1;
var prevSub = -1;
var skipSub = -1;
var lastWhitedot = -1;
var lastWhitedotSub = -1;
var checkA = null;
var doS = null;
var timerSub = 250; // timer d'affichage
topnavLayer = getElt("topnav");

//constructeur de la classe
function Rubrique(param1,param2,param3)
{
	// déclaration et initialisation des propriétés
	this.code = param1 ;
	this.code_parent = param2 ;
	this.visible = param3 ;
}

//déclaration des fonctions
// renvoie la rubrique courante
function getRubrique(param) {
	return arrayRubrique[param]; 
}

// renvoie la rubrique mère
function getRubriqueParente(param) {
	return getRubrique(arrayRubrique[param].code_parent);
}

// appelée sur le onmouseover 
function afficherRubrique(param) {
	showLayer(param);
}

function fermerRubrique(param) {

}

function afficherRubriqueParente(param) {
	var codeRubParente = getRubriqueParente(param).code;
	afficherLayer(codeRubParente);
}

function afficherRubriqueFille(param) {
	var codeRubParente = getRubriqueParente(param).code;
	afficherLayer(codeRubParente);
}

function showLayer(q){
	// on affiche la flèche blanche devant le lien
	//showWhitedot(q);
	// on initialise le lien actif
	setactiveSub(q);
	// on ouvre le lien
	setTimeout('tryOpenSub(' + q + ')', timerSub); 
}

// affiche la flèche blanche devant le lien survolé
function showWhitedot(q){
  if (topnavLayer+"" == "undefined") return;
	if ((q!=skipSub) && (q!=-1)){
		lastWhitedot = q;
		img = "pij_" + q;
  		eval("swapImage('/images/select_ro.gif','" + img + "',topnavLayer)");
	}
}

// sauvegarde le lien courant
function setactiveSub(q){
	activeSub=q;
}

// ouvre le lien
function tryOpenSub(q){
	// test l'initialisation du lien actif
	if(q==activeSub){
		// on sauvegarde le dernier lien ouvert
		prevSub = openSub;
		// on initialise le lien ouvert avec le lien courant
		openSub = q;
		// on lance l'ouverture
		doOpenSub();
	}
}

// lancement de l'ouverture
function doOpenSub(){
	
	// si ne n'est pas le premier niveau 
	if (getRubriqueParente(openSub))
	{
		//si la rubrique parente de la rubrique active est la rubrique precedente
		if (getRubriqueParente(openSub).code==prevSub)
		{
			getRubrique(openSub).visible = 'true';
		}
		// si la rubrique active n'est pas du meme niveau que la précédente
		else if (getRubriqueParente(openSub).code!=getRubriqueParente(prevSub))
		{
			majRubrique();
			getRubrique(openSub).visible = 'true';
		}
		else
		{
			getRubrique(prevSub).visible = 'false';
			getRubrique(openSub).visible = 'true';
		}
	}
	// il s'agit de la rubrique de premier = 
	else 
	{
		if (prevSub!=-1)
		{
			majRubrique();
		}
		getRubrique(openSub).visible = 'true';
	}

	majAffichage();

}

function majRubrique()
{
	var rubParente = true;
	var codeTemp = prevSub;
			
	// on cache toutes les rubriques parentes actives
	while (rubParente)
	{
		getRubrique(codeTemp).visible = 'false';
		if (getRubriqueParente(codeTemp))
		{
			codeTemp = getRubriqueParente(codeTemp).code;
			if (getRubriqueParente(openSub) && codeTemp==getRubriqueParente(openSub).code)
			{
				rubParente= false;
			}
		}
		else
		{
			rubParente= false;
		}
	}
}

function majAffichage()
{
	for (k=0; k<arrayRubrique.length; k++){
	  if (arrayRubrique[k]) {
		 if (arrayRubrique[k].visible=="false")
		 {
			eval("setEltVisibility(getElt('rub_"+k+"'),'hidden')");
		 }
		 else if (arrayRubrique[k].visible=="true")
		 {
			eval("setEltVisibility(getElt('rub_"+k+"'),'visible')");
		 }
	  }
	}
}

function resetMenu(){
	for (k=0; k<arrayRubrique.length; k++){
		if (arrayRubrique[k]) {
			 arrayRubrique[k].visible= 'false';
		}
	}
	openSub = -1;
	prevSub = -1;
	skipSub = -1;
}

function reachMenu()
{
	if(rubCourante!="")
	{
		openSub = rubCourante;
		var rubParente = true;
		var codeTemp = rubCourante;
		
		// on ouvre toutes les rubriques parentes de la rubrique courante
		while (rubParente)
		{
			getRubrique(codeTemp).visible = 'true';
			if (getRubriqueParente(codeTemp))
			{	
				codeTemp = getRubriqueParente(codeTemp).code;
			}
			else
			{
				rubParente= false;
			}
		}
	}
	majAffichage();
	return true;
}

// toont pijtje voor menu-item
function showWhitearrow(q){
  if (topnavLayer+"" == "undefined") return;
	if (q>0) {
		img = "pij_" + q;
		eval("swapImage('"+buttonsImgPath+"select_sel.gif','" + img + "',topnavLayer)");
	}
}

// verbergt pijtje voor menu-item
function hideWhitearrow(q){
  if (topnavLayer+"" == "undefined") return;
	if (q>0) {
		img = "pij_" + q;
		eval("swapImage('"+buttonsImgPath+"select.gif','" + img + "',topnavLayer)");
	}
}

// toont puntje voor menu-item
function showWhitedot(q){
  if (topnavLayer+"" == "undefined") return;
	if ((q!=skipSub) && (q!=-1)){
		lastWhitedot = q;
		img = "pij_" + q;
  	eval("swapImage('"+buttonsImgPath+"select_ro.gif','" + img + "',topnavLayer)");
	}
}

// verbergt puntje voor menu-item
function hideWhitedot(q){
  if (topnavLayer+"" == "undefined") return;
	if ((q!=skipSub) && (q!=-1)){
		img = "pij_" + q;
		eval("swapImage('"+buttonsImgPath+"select.gif','" + img + "',topnavLayer)");
	}
}

// de-activeer mainmenu-item
function noSub(){
	hideWhitedot(lastWhitedot)
	setactiveSub(-1);
}

// toont pijtje voor submenu-item
function showWhitearrowSub(q,r){ //q = array-index voor betreffend submenu; r = nummer van submenu-item
	img = "pij_" + q + "_" + r;
	eval("swapImage('"+buttonsImgPath+"select_sel.gif','" + img + "',allSubs[q])");
}

// toont puntje voor submenu-item
function showWhitedotSub(q,r){//q = array-index voor betreffend submenu; r = nummer van submenu-item
	lastWhitedotSub = r;
	if ((curIndex!=q) || (curSubIndex!=r)) {
		img = "pij_" + q + "_" + r;
		eval("swapImage('"+buttonsImgPath+"select_ro.gif','" + img + "',allSubs[q])");
	}
}

// verbergt puntje voor menu-item
function hideWhitedotSub(q){ //q = array-index voor betreffend submenu
	var r = lastWhitedotSub;
	if (((curIndex!=q) || (curSubIndex!=r)) && (r!=-1)) {
		img = "pij_" + q + "_" + r;
		eval("swapImage('"+buttonsImgPath+"select.gif','" + img + "',allSubs[q])");
	}
}


