// tableau général de Rubrique
var garrayRubrique = new Array(); 

// variables pour la navigation dans le menu
var gcurIndex = "0";
var gactiveSub = -1;
var gopenSub = -1;
var gprevSub = -1;
var gskipSub = -1;
var glastWhitedot = -1;
var glastWhitedotSub = -1;
var gcheckA = null;
var gdoS = null;
var timerSub = 250; // timer d'affichage
gtopnavLayer = getElt("mgtopnav");

//constructeur de la classe
function gRubrique(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 ggetRubrique(param) {
	return garrayRubrique[param]; 
}

// renvoie la rubrique mère
function ggetRubriqueParente(param) {
	return ggetRubrique(garrayRubrique[param].code_parent);
}

// appelée sur le onmouseover 
function gafficherRubrique(param) {
	gshowLayer(param);
}

function gfermerRubrique(param) {

}

function gafficherRubriqueParente(param) {
	var codeRubParente = ggetRubriqueParente(param).code;
	gafficherLayer(codeRubParente);
}

function gafficherRubriqueFille(param) {
	var codeRubParente = ggetRubriqueParente(param).code;
	gafficherLayer(codeRubParente);
}

function gshowLayer(q){
	// on affiche la flèche blanche devant le lien
	//showWhitedot(q);
	// on initialise le lien actif
	gsetactiveSub(q);
	// on ouvre le lien
	setTimeout('gtryOpenSub(' + q + ')', timerSub); 
}

// affiche la flèche blanche devant le lien survolé
function gshowWhitedot(q){
  if (gtopnavLayer+"" == "undefined") return;
	if ((q!=gskipSub) && (q!=-1)){
		glastWhitedot = q;
		img = "pij_" + q;
  		eval("swapImage('/images/select_ro.gif','" + img + "',gtopnavLayer)");
	}
}

// sauvegarde le lien courant
function gsetactiveSub(q){
	gactiveSub=q;
}

// ouvre le lien
function gtryOpenSub(q){
	// test l'initialisation du lien actif
	if(q==gactiveSub){
		// on sauvegarde le dernier lien ouvert
		gprevSub = gopenSub;
		// on initialise le lien ouvert avec le lien courant
		gopenSub = q;
		// on lance l'ouverture
		gdoOpenSub();
	}
}

// lancement de l'ouverture
function gdoOpenSub(){
	// si ne n'est pas le premier niveau 
	if (ggetRubriqueParente(gopenSub))
	{
		//si la rubrique parente de la rubrique active est la rubrique precedente
		if (ggetRubriqueParente(gopenSub).code==gprevSub)
		{
			ggetRubrique(gopenSub).visible = 'true';
		}
		// si la rubrique active n'est pas du meme niveau que la précédente
		else if (ggetRubriqueParente(gopenSub).code!=ggetRubriqueParente(gprevSub))
		{
			gmajRubrique();
			ggetRubrique(gopenSub).visible = 'true';
		}
		else
		{
			ggetRubrique(gprevSub).visible = 'false';
			ggetRubrique(gopenSub).visible = 'true';
		}
	}
	// il s'agit de la rubrique de premier = 
	else 
	{
		if (gprevSub!=-1)
		{
			gmajRubrique();
		}
		ggetRubrique(gopenSub).visible = 'true';
	}

	gmajAffichage();

}

function gmajRubrique()
{
	var rubParente = true;
	var codeTemp = gprevSub;
			
	// on cache toutes les rubriques parentes actives
	while (rubParente)
	{
		ggetRubrique(codeTemp).visible = 'false';
		if (ggetRubriqueParente(codeTemp))
		{
			codeTemp = ggetRubriqueParente(codeTemp).code;
			if (ggetRubriqueParente(gopenSub) && codeTemp==ggetRubriqueParente(gopenSub).code)
			{
				rubParente= false;
			}
		}
		else
		{
			rubParente= false;
		}
	}
}

function gmajAffichage()
{
	for (k=0; k<garrayRubrique.length; k++){
	  if (garrayRubrique[k]) {
		 if (garrayRubrique[k].visible=="false")
		 {
			eval("setEltVisibility(getElt('grub_"+k+"'),'hidden')");
		 }
		 else if (garrayRubrique[k].visible=="true")
		 {
			eval("setEltVisibility(getElt('grub_"+k+"'),'visible')");
		 }
	  }
	}
}

function gresetMenu(){
	for (k=0; k<garrayRubrique.length; k++){
		if (garrayRubrique[k]) {
			 garrayRubrique[k].visible= 'false';
		}
	}
	gopenSub = -1;
	gprevSub = -1;
	gskipSub = -1;
}

// toont pijtje voor menu-item
function gshowWhitearrow(q){
  if (gtopnavLayer+"" == "undefined") return;
	if (q>0) {
		img = "gpij_" + q;
		eval("swapImage('"+buttonsImgPath+"select_sel.gif','" + img + "',gtopnavLayer)");
	}
}

// verbergt pijtje voor menu-item
function ghideWhitearrow(q){
  if (gtopnavLayer+"" == "undefined") return;
	if (q>0) {
		img = "gpij_" + q;
		eval("swapImage('"+buttonsImgPath+"select.gif','" + img + "',gtopnavLayer)");
	}
}

// toont puntje voor menu-item
function showWhitedot(q){
  if (topnavLayer+"" == "undefined") return;
	if ((q!=skipSub) && (q!=-1)){
		lastWhitedot = q;
		img = "gpij_" + q;
  	eval("swapImage('"+buttonsImgPath+"select_ro.gif','" + img + "',gtopnavLayer)");
	}
}

// verbergt puntje voor menu-item
function ghideWhitedot(q){
  if (topnavLayer+"" == "undefined") return;
	if ((q!=skipSub) && (q!=-1)){
		img = "gpij_" + q;
		eval("swapImage('"+buttonsImgPath+"select.gif','" + img + "',gtopnavLayer)");
	}
}

// de-activeer mainmenu-item
function gnoSub(){
	hideWhitedot(lastWhitedot)
	setactiveSub(-1);
}

// toont pijtje voor submenu-item
function gshowWhitearrowSub(q,r){ //q = array-index voor betreffend submenu; r = nummer van submenu-item
	img = "pgij_" + 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])");
	}
}


