// JavaScript Document

/* documentation

** Nous considérerons que l'objet se nomme oOnglet. 
** Pour créer une table d'onglet oOnglet.createTableOnglet(nom de la table)
** Pour créer un onglet dans une table onglet oOnglet.addOnglet("nom de la table", "nom de l'onglet", {bouton: "id du bouton", cible: "id de la cible"})
** Pour définir les règles oOnglet.addRule("nom de la table",  "nom de l'onglet", {classBase: "classe de base", classOut: "classe onmouseout", classHover: "classe onmouseover", classSelected: "classe de l'onglet sélectionné"});
** Pour définir l'onglet par défault oOnglet.ongletDefault("nom de la table", "nom de l'onglet", {classBase: "classe de base"});

*/

jsOnglet = function()
	{
	var tableOnglet = new Array();
	var flag = 0;
	var interval = 0;
		
	function removeAllClass(nameOnglet)
	{
		if (nameOnglet["onmouseout"])
				$("#" + nameOnglet["bouton"]).removeClass(nameOnglet["onmouseout"]);
		if (nameOnglet["onmouseover"])
				$("#" + nameOnglet["bouton"]).removeClass(nameOnglet["onmouseover"]);
		if (nameOnglet["onselect"])
				$("#" + nameOnglet["bouton"]).removeClass(nameOnglet["onmouseover"]);
		if (nameOnglet["onbase"])
				$("#" + nameOnglet["bouton"]).removeClass(nameOnglet["onbase"]);
	}
		
	this.createTableOnglet = function(nameTable)
		{
			tableOnglet[nameTable] = new Array();
		}
		
	this.addOnglet = function(nameTable, nameOnglet, infoOnglet)
		{
			tableOnglet[nameTable][nameOnglet] = new Array();
		
			tableOnglet[nameTable][nameOnglet]["bouton"] = infoOnglet["bouton"];
			tableOnglet[nameTable][nameOnglet]["cible"] = infoOnglet["cible"];
		}
	
	this.gere_classOut = function(nameTable, nameOnglet, nameClass)
		{
				document.getElementById(tableOnglet[nameTable][nameOnglet]["bouton"]).onmouseout = function () {
				
				if (!tableOnglet[nameTable][nameOnglet]["onselect"])
					{
				removeAllClass(tableOnglet[nameTable][nameOnglet]);
				$("#" + tableOnglet[nameTable][nameOnglet]["bouton"]).addClass(nameClass);
				tableOnglet[nameTable][nameOnglet]["onmouseout"] = nameClass;
					}
				};
		}
	
	this.gere_classHover = function(nameTable, nameOnglet, nameClass)
		{

				document.getElementById(tableOnglet[nameTable][nameOnglet]["bouton"]).onmouseover = function () {
				if (!tableOnglet[nameTable][nameOnglet]["onselect"])
					{
					removeAllClass(tableOnglet[nameTable][nameOnglet]);
					$("#" + tableOnglet[nameTable][nameOnglet]["bouton"]).addClass(nameClass);
					tableOnglet[nameTable][nameOnglet]["onmouseover"] = nameClass;
					}
				};
		}
	

	this.gere_classSelected = function(nameTable, nameOnglet, nameClass)
	{
			tableOnglet[nameTable][nameOnglet]["classSelect"] = nameClass;
			document.getElementById(tableOnglet[nameTable][nameOnglet]["bouton"]).onclick = function () {
				
				if (!tableOnglet[nameTable][nameOnglet]["onselect"])
					{
						removeAllClass(tableOnglet[nameTable][nameOnglet]);
						$("#" + tableOnglet[nameTable][nameOnglet]["bouton"]).addClass(nameClass);
						
						for (cle in tableOnglet[nameTable])
						{
							if (document.getElementById(tableOnglet[nameTable][cle]["bouton"]) == 
								document.getElementById(tableOnglet[nameTable][nameOnglet]["bouton"]))
								{
								document.getElementById(tableOnglet[nameTable][cle]["cible"]).style.display = "block";
								}
							if (tableOnglet[nameTable][cle]["onselect"])
								{
								$("#" + tableOnglet[nameTable][cle]["bouton"]).removeClass(tableOnglet[nameTable][cle]["onselect"]);
								document.getElementById(tableOnglet[nameTable][cle]["cible"]).style.display = "none";
								$("#" + tableOnglet[nameTable][cle]["bouton"]).addClass(tableOnglet[nameTable][cle]["classbase"]);
								tableOnglet[nameTable][cle]["onselect"] = null;
								}
						}
						
						tableOnglet[nameTable][nameOnglet]["onselect"] = nameClass;
					}
				};
				
	}
	
	this.gere_classVisio = function(nameTable, nameOnglet, nameClass)
	{
			tableOnglet[nameTable][nameOnglet]["classSelect"] = nameClass;
			document.getElementById(tableOnglet[nameTable][nameOnglet]["bouton"]).onclick = function () {
				
				if (!tableOnglet[nameTable][nameOnglet]["onselect"])
					{
						removeAllClass(tableOnglet[nameTable][nameOnglet]);
						$("#" + tableOnglet[nameTable][nameOnglet]["bouton"]).addClass(nameClass);
						
						for (cle in tableOnglet[nameTable])
						{
							if (document.getElementById(tableOnglet[nameTable][cle]["bouton"]) == 
								document.getElementById(tableOnglet[nameTable][nameOnglet]["bouton"]))
								{
								$("#" + tableOnglet[nameTable][cle]["cible"]).fadeIn("slow");
								
								document.getElementById(tableOnglet[nameTable][cle]["cible"]).style.display = "block";
								}
							if (tableOnglet[nameTable][cle]["onselect"])
								{
								$("#" + tableOnglet[nameTable][cle]["bouton"]).removeClass(tableOnglet[nameTable][cle]["onselect"]);
								$("#" + tableOnglet[nameTable][cle]["cible"]).fadeOut("slow");
								$("#" + tableOnglet[nameTable][cle]["bouton"]).addClass(tableOnglet[nameTable][cle]["classbase"]);
								tableOnglet[nameTable][cle]["onselect"] = null;
								}
						}
						
						flag = 2;
						tableOnglet[nameTable][nameOnglet]["onselect"] = nameClass;
					}
				};
				
	}
	
	this.gere_classBase = function(nameTable, nameOnglet, nameClass)
		{
			removeAllClass(tableOnglet[nameTable][nameOnglet]);
			$("#" + tableOnglet[nameTable][nameOnglet]["bouton"]).addClass(nameClass);
			tableOnglet[nameTable][nameOnglet]["onbase"] = nameClass;
			tableOnglet[nameTable][nameOnglet]["classbase"] = nameClass;
		}
	
	gere_timeVisio = function(nameTable)
	{	
	
	if (flag == 0)
		{
			for (cle in tableOnglet[nameTable])
				{
					if (flag == 1)
						{
						removeAllClass(tableOnglet[nameTable][cle]);
						$("#" + tableOnglet[nameTable][cle]["bouton"]).addClass(tableOnglet[nameTable][cle]["classSelect"]);
						tableOnglet[nameTable][cle]["onselect"] = tableOnglet[nameTable][cle]["classSelect"];
						$("#" + tableOnglet[nameTable][cle]["cible"]).fadeIn("slow");
						document.getElementById(tableOnglet[nameTable][cle]["cible"]).style.display = "block";
						flag = 0;
						break ;
						}
					if (tableOnglet[nameTable][cle]["onselect"])
						{					
						$("#" + tableOnglet[nameTable][cle]["bouton"]).removeClass(tableOnglet[nameTable][cle]["onselect"]);
						$("#" + tableOnglet[nameTable][cle]["cible"]).fadeOut("slow");
						$("#" + tableOnglet[nameTable][cle]["bouton"]).addClass(tableOnglet[nameTable][cle]["classbase"]);
						tableOnglet[nameTable][cle]["onselect"] = null;
						flag = 1;
						}
				}
				
				if (flag == 1)
				{
					for (cle in tableOnglet[nameTable])
					{
					removeAllClass(tableOnglet[nameTable][cle]);
					$("#" + tableOnglet[nameTable][cle]["bouton"]).addClass("visionneuse_button_hover");
					tableOnglet[nameTable][cle]["onselect"] = "visionneuse_button_hover";
					$("#" + tableOnglet[nameTable][cle]["cible"]).fadeIn("slow");
					document.getElementById(tableOnglet[nameTable][cle]["cible"]).style.display = "block";
					flag = 0;
					break ;	
					}
				}
		}
	else
		flag = 0;
	}
	
	this.timeVisio = function(table, time)
	{
	interval = setInterval("gere_timeVisio('" + table + "')", time);
	}
	
	this.addRule = function(nameTable, nameOnglet, nameRule)
		{	
		if (nameRule["classOut"])
			this.gere_classOut(nameTable, nameOnglet, nameRule["classOut"]);
		if (nameRule["classHover"])
			this.gere_classHover(nameTable, nameOnglet, nameRule["classHover"]);
		if (nameRule["classSelected"])
			this.gere_classSelected(nameTable, nameOnglet, nameRule["classSelected"]);
		if (nameRule["classBase"])
			this.gere_classBase(nameTable, nameOnglet, nameRule["classBase"]);
		if (nameRule["classVisio"])
			this.gere_classVisio(nameTable, nameOnglet, nameRule["classVisio"]);
		}
		
	this.ongletDefault = function(nameTable, nameOnglet, nameRule)
	{
				removeAllClass(tableOnglet[nameTable][nameOnglet]);
				$("#" + tableOnglet[nameTable][nameOnglet]["bouton"]).addClass(nameRule["classBase"]);
				
				for (cle in tableOnglet[nameTable])
				{
					if (document.getElementById(tableOnglet[nameTable][cle]["bouton"]) == 
						document.getElementById(tableOnglet[nameTable][nameOnglet]["bouton"]))
						{
						document.getElementById(tableOnglet[nameTable][cle]["cible"]).style.display = "block";
						}
					else
						{
						document.getElementById(tableOnglet[nameTable][cle]["cible"]).style.display = "none";	
						}
				}
				
				tableOnglet[nameTable][nameOnglet]["onselect"] = nameRule["classBase"];	
	}
	
	}


