// bibliothèque de javascripts
// variables globales de gestion
var fondMenu=new fond('fondMenu');
var menuActif='';
var filsActif='';

// classe d'objet pour définir chaque menu
function Menu(nom)
{
	this.nom=SupprimerEspaceAccentQuote(nom);
	this.libelle=nom;
	this.taille_car=16;
	this.largeur=175;
	this.nbOption=0;
	this.posTopX=300;
	this.posTopY=150;
	this.posBasX=this.posTopX+this.largeur;
	this.posBasY=this.posTopY+this.taille_car*this.nbOption;
	this.isFils=false;
	this.visible=true;
	this.options = new Array();
	this.actions = new Array();
// methodes
	this.VoirMenu=VoirMenu;
	this.CacherMenu=CacherMenu;
	this.DeplacerMenu=DeplacerMenu;
	this.AjouteOption=AjouteOption;
	this.ConstruireMenu=ConstruireMenu;
	this.CreerFondMenu=CreerFondMenu;
		
// tableaux des objets menus	
	if (!window.menus) menus=new Array();
	window.menus[this.nom]=this;
	window.menus[window.menus.length]=this;
	this.id='Menu-'+window.menus.length;
}

function AjouteOption(nom,lien) 
{
	num=this.options.length;
	this.options[num]=new MenuOption(nom,this.nom);
	this.nbOption=this.options.length;
	if (lien)
		{
			this.actions[num]='location.href=\''+window.base+lien+'\'';
		}
	else
		{
			this.actions[num]='void(0)';
		}
}

function VoirMenu()
{
	ObjTemp=document.getElementById(this.id);
	ObjTemp.style.visibility='visible';
	this.visible=true;
}

function CacherMenu()
{
	ObjTemp=document.getElementById(this.id);
	ObjTemp.style.visibility='hidden';
	this.visible=false;
}

function DeplacerMenu(x,y)
{
	this.posTopX=x;
	this.posTopY=y;
	this.posBasX=this.posTopX+this.largeur;
	this.posBasY=this.posTopY+this.taille_car*this.nbOption;
}

function ConstruireMenu()
{
	var contenu='';
	var i=0;
	var fils=null;
	var libelle;
	var parent;
	var ObjTemp=null;

	style = 'position:absolute;';
	style += 'left:'+this.posTopX+'px;';
	style += 'top:'+this.posTopY+'px;';
	style += 'width:'+this.largeur+'px;';
	style += 'margin:0px;';
	style += 'visibility:hidden;';
	style += 'filter:alpha(opacity=90);';
	style += 'z-index:0;';
	style += 'background-image:url('+ImageFondMenu.src+');';
	document.write('<div id="'+this.id+'" class="menu_container" style="'+style+'"></div>');
	contenu ='<table width="'+this.largeur+'" border="0" cellspacing="0">'
	for (i=0; i<this.options.length ; i++)
		{
		if (typeof(this.options[i].nom)=='string')
			{
			contenu+='<tr><td id="'+this.id+'-'+i+'" class="menu_out" onMouseOver="PointeOption(this,\''+this.options[i].parent+'\')" onMouseOut="QuitteOption(this,\''+this.options[i].parent+'\')" onclick="'+this.actions[i]+'"><img src="'+window.base+'images/menu/vide.png"><a href="javascript:'+this.actions[i]+'" class="menu"> '+this.options[i].libelle+'</a></td></tr>';
			}
		else
			{	
			fils=this.options[i].nom;
			libelle=fils.libelle;
			parent=this.options[i].parent;
			contenu+='<tr><td id="'+this.id+'-'+i+'" class="menu_out" onMouseOver="PointeOption(this,\''+parent+'\',\''+fils.nom+'\')" onMouseOut="QuitteOption(this,\''+parent+'\',\''+fils.nom+'\')" onclick="'+this.actions[i]+'"><img src="'+window.base+'images/menu/menu.png"><a href="javascript:'+this.actions[i]+'" class="menu"> '+libelle+'</a></td></tr>';
			fils.posTopX=this.posTopX+this.largeur-10;
			fils.posTopY=this.posTopY+this.taille_car*i+5;
			fils.posBasX=fils.posTopX+this.largeur;
			fils.posBasY=fils.posTopY+this.taille_car*fils.nbOption;
			if (fondMenu.posBasX<fils.posBasX+20)
				{
//				fondMenu.RedimensionnerFondMenu(fils.posBasX+20,fondMenu.posBasY);
				}
			if (fondMenu.posBasY<fils.posBasY+20)
				{
//				fondMenu.RedimensionnerFondMenu(fondMenu.posBasX,fils.posBasY+20);
				}
			fils.isFils=true;
			fils.ConstruireMenu();
			}
		}
	contenu+='</table>';
	ObjTemp=document.getElementById(this.id);
	ObjTemp.innerHTML=contenu;
}

function CreerFondMenu()
{
	fondMenu.posTopX=this.posTopX-20;
	fondMenu.posTopY=this.posTopY-20;
	fondMenu.posBasX=fondMenu.posTopX+this.largeur+40;
	fondMenu.posBasY=fondMenu.posTopY+this.taille_car*this.nbOption+40;
	style = 'position:absolute;';
	style += 'left:'+(fondMenu.posTopX)+'px;';
	style += 'top:'+(fondMenu.posTopY)+'px;';
	style += 'width:'+(fondMenu.posBasX-fondMenu.posTopX)+'px;';
	style += 'height:'+(fondMenu.posBasY-fondMenu.posTopY)+'px;';
	style += 'visibility:visible;';
	style += 'z-index:0;';
	document.write('<div id="fondMenu" style="'+style+'" leftmargin="0" onmouseover="QuitteMenu()"></div>');
}

function fond(nom)
{
	this.nom=nom
	this.posTopX=0;
	this.posTopY=0;
	this.posBasX=0;
	this.posBasY=0;
	this.RedimensionnerFondMenu=RedimensionnerFondMenu;
}

function RedimensionnerFondMenu(x,y)
{
	this.posBasX=x;
	this.posBasY=y;
	ObjTemp=document.getElementById(this.nom);
	ObjTemp.style.width=(x-this.posTopX)+'px';
	ObjTemp.style.height=(y-this.posTopY)+'px';
}
/////////////////////////// fin de la class objet menu /////////////////////////////////////
//classe objet des options de Menu

function MenuOption(nom,parent)
{
	if (typeof(nom)=='string') 
		{
		this.nom=SupprimerEspaceAccentQuote(nom);
//		this.hasFils=false;
		}
	else 
		{
		this.nom=nom
//		this.hasFils=true;
		}
	this.libelle=nom;
	this.parent=parent;
}
/////////////////////////// fin de la class objet option /////////////////////////////////////
function SupprimerEspaceAccentQuote(chaine)
{
	chaine = chaine.replace(/[àâä]/gi,'a');
	chaine = chaine.replace(/[éèêë]/gi,"e")
	chaine = chaine.replace(/[îï]/gi,"i")
	chaine = chaine.replace(/[ôö]/gi,"o")
	chaine = chaine.replace(/[ùûü]/gi,"u")
	chaine = chaine.replace(/[ç]/gi,"c")
	chaine=chaine.replace(/[ \']/gi,'');
	return chaine;
}

function Voir(texte)
{
	voir.innerHTML=texte;
}

function Affiche(texte)
{
	affiche.innerHTML=texte;
}
function PointeOption(objet,parent,fils)
{
//	objet.className='menu_over';
	objet.style.backgroundImage='url('+ImageOptionOver.src+')';
	objet.style.cursor='hand';
	if (menuActif!=parent)
		{
		if (menuActif!='' && window.menus[menuActif].isFils && parent!=filsActif) window.menus[menuActif].CacherMenu();
		menuActif=parent;
		}
	if (fils)
		{
		if (filsActif!=fils)
			{
			if (filsActif!='' && filsActif!=parent) window.menus[filsActif].CacherMenu();
			filsActif=fils;
			}
		window.menus[fils].VoirMenu();
		}
	else
		{
		if (filsActif!=fils)
			{
			if (filsActif!='' && filsActif!=parent) window.menus[filsActif].CacherMenu();
			filsActif='';
			}
		}
}

function QuitteOption(objet,parent,fils)
{
//	objet.className='menu_out';
	objet.style.backgroundImage='';
}

function QuitteMenu()
{
	if (filsActif!='') window.menus[filsActif].CacherMenu();
	if (menuActif!='' && window.menus[menuActif].isFils) 
		{
// on efface tous les menus fils visibles
			for (i=0; i<window.menus.length ; i++)
				{
				if (window.menus[i].visible && window.menus[i].isFils) window.menus[i].CacherMenu();
				}
		}

}
function InitMenu(base)
{
// chemin relatif où se trouve la racine du site par rapport au script php
	window.base=base;
// definition des images de fond en fonction du chemin d'accès
	window.ImageFondMenu=new Image();
	window.ImageOptionOver=new Image();
	window.ImageFondMenu.src=base+'images/menu/FondMenu.jpg';
	window.ImageOptionOver.src=base+'images/menu/OptionOver.jpg';

// menu de niveau 2
	var SousMenuSeti=new Menu('Seti');
	SousMenuSeti.AjouteOption('Les liens','informatique/seti/seti.php');
	SousMenuSeti.AjouteOption('Les stats quotidiennes','informatique/seti/seti_quoti.php');
	SousMenuSeti.AjouteOption('Les stats hebdomadaires','informatique/seti/seti_hebdo.php');

	var SousMenuServeur=new Menu('Serveur');
	SousMenuServeur.AjouteOption('Intro','informatique/serveur/intro.php');
	SousMenuServeur.AjouteOption('Les composants','informatique/serveur/composant.php');
	SousMenuServeur.AjouteOption('Installation','informatique/serveur/installation.php');
	SousMenuServeur.AjouteOption('Configuration','informatique/serveur/configuration.php');

	var SousMenuProg=new Menu('Programmation');
	SousMenuProg.AjouteOption('Intro','');
	SousMenuProg.AjouteOption('PHP','');
	SousMenuProg.AjouteOption('Java','informatique/programmation/java/index.php');
	SousMenuProg.AjouteOption('JavaScript','');

	var SousMenuBassin=new Menu('Bassin');
	SousMenuBassin.AjouteOption('Intro','bassin/intro.php');
	SousMenuBassin.AjouteOption('Liens','bassin/liens.php');
	SousMenuBassin.AjouteOption('Construction','bassin/construction.php');
//	SousMenuBassin.AjouteOption('Jardinière');

// menu de niveau 1
	var SousMenuNews=new Menu('Nouveautés');
	SousMenuNews.AjouteOption('Les mises à jour','maj.php');

	var SousMenuInfo=new Menu('Informatique');
	SousMenuInfo.AjouteOption('Le matos','informatique/matos.php');
	SousMenuInfo.AjouteOption(SousMenuSeti);
	SousMenuInfo.AjouteOption(SousMenuServeur);
	SousMenuInfo.AjouteOption(SousMenuProg);

	var SousMenuArc=new Menu('Tir à l\'arc');
	SousMenuArc.AjouteOption('Intro','arc/intro.php');
	SousMenuArc.AjouteOption('Le matos','arc/matos.php');

	var SousMenuVelo=new Menu('Vélo');
	SousMenuVelo.AjouteOption('Intro','velo/intro.php');
	SousMenuVelo.AjouteOption('Le matos','velo/matos.php');
	SousMenuVelo.AjouteOption('Le parcours','velo/parcours.php');
	SousMenuVelo.AjouteOption('Les chiffres','velo/stats.php');
	SousMenuVelo.AjouteOption('L\'entretien','velo/entretien.php');

	var SousMenuBoutique=new Menu('Les boutiques');
	SousMenuBoutique.AjouteOption('Intro','cerf-volant/boutiques/boutique_intro.php');
	SousMenuBoutique.AjouteOption('Liste des boutiques','cerf-volant/boutiques/boutique_liste.php');
	SousMenuBoutique.AjouteOption('Ajouter une boutique','cerf-volant/boutiques/boutique_ajout.php');

	var SousMenuCerfVolant=new Menu('Cerf-volant');
	SousMenuCerfVolant.AjouteOption('Intro','cerf-volant/intro.php');
	SousMenuCerfVolant.AjouteOption('Le matos','cerf-volant/matos.php');
//	SousMenuCerfVolant.AjouteOption('Les spots');
	SousMenuCerfVolant.AjouteOption('Les liens','cerf-volant/liens.php');
	SousMenuCerfVolant.AjouteOption('Les marées','cerf-volant/maree.php');
	SousMenuCerfVolant.AjouteOption(SousMenuBoutique);

	var SousMenuBook=new Menu('Livre d\'or');
	SousMenuBook.AjouteOption('Voir','guest/guest.php');
	SousMenuBook.AjouteOption('Signer','guest/guest_write.php');

	var SousMenuJardinage=new Menu('Jardinage');
	SousMenuJardinage.AjouteOption('Intro','jardinage/intro.php');
	SousMenuJardinage.AjouteOption(SousMenuBassin);

// menu de niveau 0
	var MenuPrincipal=new Menu('Menu Principal');
	MenuPrincipal.AjouteOption('Accueil','accueil.php');
	MenuPrincipal.AjouteOption(SousMenuNews);
	MenuPrincipal.AjouteOption(SousMenuInfo);
	MenuPrincipal.AjouteOption('Bricolage');
	MenuPrincipal.AjouteOption(SousMenuJardinage);
	MenuPrincipal.AjouteOption('Moto','moto/intro.php');
	MenuPrincipal.AjouteOption('Bretagne','bretagne/intro.php');
	MenuPrincipal.AjouteOption(SousMenuArc);
	MenuPrincipal.AjouteOption(SousMenuVelo);
	MenuPrincipal.AjouteOption(SousMenuCerfVolant);
//	MenuPrincipal.AjouteOption('Potes','pote/pote.php');
	MenuPrincipal.AjouteOption('Remerciements','merci.php');
	MenuPrincipal.AjouteOption(SousMenuBook);
	MenuPrincipal.DeplacerMenu(5,130);
	MenuPrincipal.CreerFondMenu();
	MenuPrincipal.ConstruireMenu();
	MenuPrincipal.VoirMenu();
}

function InitMenuAdmin(base)
{
// chemin relatif où se trouve la racine du site par rapport au script php
	window.base=base;
// definition des images de fond en fonction du chemin d'accès
	window.ImageFondMenu=new Image();
	window.ImageOptionOver=new Image();
	window.ImageFondMenu.src=base+'images/menu/FondMenu.jpg';
	window.ImageOptionOver.src=base+'images/menu/OptionOver.jpg';

// menu de niveau 1
	var SousMenuBoutique=new Menu('Les boutiques');
	SousMenuBoutique.AjouteOption('Liste des boutiques','admin/boutiques/boutique_liste.php');
	SousMenuBoutique.AjouteOption('Boutiques à valider','admin/boutiques/boutique_liste.php?aValider=ok');

// menu de niveau 0
	var MenuPrincipal=new Menu('Menu Principal');
	MenuPrincipal.AjouteOption('Mise à jour','admin/maj.php');
	MenuPrincipal.AjouteOption(SousMenuBoutique);
	MenuPrincipal.AjouteOption('Retour vers le site','accueil.php');
	MenuPrincipal.DeplacerMenu(5,130);
	MenuPrincipal.CreerFondMenu();
	MenuPrincipal.ConstruireMenu();
	MenuPrincipal.VoirMenu();
}

