//id des groupes
var airejeux = 'airejeux_561';
var manege = 'manege_562';
var ping = 'ping_563';
var rosalie = 'rosalie_564';
var pedalo = 'pedalo_565';
var attelage = 'attelage_566';
var sportif = 'sportif_567';
var jogging1 = 'jogging1_568';
var jogging2 = 'jogging2_571';
var jogging3 = 'jogging3_570';
var jogging4 = 'jogging4_569';
var orientation = 'orientation_575';
var randonnee = 'randonnee_574';
var laca = 'laca_572';
var lacb = 'lacb_573';



//couleurs d'écriture
var color_on = '#2dabbc';
var color_off = '#024502';

var tableaux_divs = new Array;
var visible_group = new Array();

//après chargement de la page, on met en mémoire les composants de chaque groupe



function window_onload()
{
	var Divs = document.getElementsByTagName("div");
	for (var j = 0; j < Divs.length; j++)
	{				
		var divs_group = (Divs[j].id).split('_');
		if(divs_group[1] > 0)
		{
			if(!tableaux_divs[divs_group[1]]) tableaux_divs[divs_group[1]] = '';
			if(tableaux_divs[divs_group[1]] == '') tableaux_divs[divs_group[1]] += Divs[j].id;
			else tableaux_divs[divs_group[1]] += ','+Divs[j].id;
		}
	}

}

//function qui cache tous les groupes (ajouter l'appel des fonctions nécessaires)
function hide_all()
{
  hide_groupe(airejeux);
	hide_groupe(manege);
	hide_groupe(ping);
	hide_groupe(rosalie);
	hide_groupe(pedalo);
	hide_groupe(attelage);
	hide_groupe(sportif);
	hide_groupe(jogging1);
	hide_groupe(jogging2);
	hide_groupe(jogging3);
	hide_groupe(jogging4);
	hide_groupe(orientation);
	hide_groupe(randonnee);
	hide_groupe(laca);
	hide_groupe(lacb);
}


//function spécifique au groupe (flag = 0, on ne pousse pas; flag = 1, on pousse)
function show_airejeux(flag)
{
  show_groupe(airejeux, flag);
}

function show_manege(flag)
{
	show_groupe(manege, flag);
}

function show_ping(flag)
{
	show_groupe(ping, flag);
}

function show_rosalie(flag)
{
	show_groupe(rosalie, flag);
}

function show_pedalo(flag)
{
	show_groupe(pedalo, flag);
}

function show_attelage(flag)
{
	show_groupe(attelage, flag);
}

function show_sportif(flag)
{
	show_groupe(sportif, flag);
}

function show_jogging1(flag)
{
	show_groupe(jogging1, flag);
}

function show_jogging2(flag)
{
	show_groupe(jogging2, flag);
}

function show_jogging3(flag)
{
	show_groupe(jogging3, flag);
}

function show_jogging4(flag)
{
	show_groupe(jogging4, flag);
}

function show_orientation(flag)
{
	show_groupe(orientation, flag);
}

function show_randonnee(flag)
{
	show_groupe(randonnee, flag);
}

function show_laca(flag)
{
	show_groupe(laca, flag);
}

function show_lacb(flag)
{
	show_groupe(lacb, flag);
}
/////////////////////FUNCTIONS/////////////////////////////
//function qui met une couleur donnée à un texte donné
function color(id_texte, couleur)
{
	document.getElementById(id_texte).style.color = couleur;
}

//function qui cache un groupe donné
function hide_groupe(group)
{
	if(!visible_group[group]) visible_group[group] = 0;
	else if(visible_group[group] == 1)
	{
		identifiants = group.split('_');
		color(identifiants[0], color_off);
		if(tableaux_divs[identifiants[1]])
		{
			divs = tableaux_divs[identifiants[1]].split(',');
			for (var j = 0; j < divs.length; j++)
			{		
				move_show(divs[j], 0, 0);
			}
		}
		visible_group[group] = 0;
	}
}

//function qui rend visible un groupe donné
function show_groupe(group, actionPousse)
{
	if(visible_group[group] == 0)
	{
		identifiants = group.split('_');
		color(identifiants[0], color_on);
    if(tableaux_divs[identifiants[1]])
		{
			divs = tableaux_divs[identifiants[1]].split(',');
			for (var j = 0; j < divs.length; j++)
			{				
				move_show(divs[j], 1, actionPousse);
			}
		}
		visible_group[group] = 1;
	}

}

//function qui pour chaque div donné, le rend visible ou le cache selon le flag et dans le cas où on le rend visible, pousse chaque composant qu'il doit pousser
function move_show(div, ouvre, actionPousse)
{
	var topDiv = document.getElementById(div).offsetTop;
	var leftDiv = document.getElementById(div).offsetLeft;
	var rightDiv = document.getElementById(div).offsetLeft + document.getElementById(div).offsetWidth;
	if(ouvre == 1) 
	{
		show_div(div);
		
		if(actionPousse == 1)
		{
			tab_grandis = document.getElementById('div_grandis').value;
			divs_grandis = tab_grandis.split('|');
			
			tab_pousse = document.getElementById('div_pousse').value;
			divs_pousse = tab_pousse.split('|');
			
			for(var i=0; i<divs_grandis.length; i++)
			{
				if(document.getElementById(divs_grandis[i]).style.display != 'none')
				{
					for(var j=0; j<divs_pousse.length; j++)
					{
						if(document.getElementById(divs_pousse[j]).style.display != 'none')
						{
							divTop = document.getElementById(divs_grandis[i]).offsetTop;
							div2Top = document.getElementById(divs_pousse[j]).offsetTop;
								if ((divs_grandis[i] != divs_pousse[j]) && (divTop < div2Top))
								 move_div_lb(divs_grandis[i], divs_pousse[j]);
								else
								 	maxBottom(divs_grandis[i]);
						}
					}
				}
			}
			bodyHeight();
		}
	}
	else
		hide_div(div);
}

//function qui pousse un composant par rapport à un autre et qui pousse également les composants liés
function move_div_lb(div, div2)
{
	divLeft = document.getElementById(div).offsetLeft;
	divTop = document.getElementById(div).offsetTop;
	divHeight = document.getElementById(div).offsetHeight;
	divWidth = document.getElementById(div).offsetWidth;
	divRight = divLeft + divWidth;
	divBottom = divTop + divHeight;

	div2Left = document.getElementById(div2).offsetLeft;
	div2Top = document.getElementById(div2).offsetTop;
	div2Height = document.getElementById(div2).offsetHeight;
	div2Width = document.getElementById(div2).offsetWidth;
	div2Right = div2Left + div2Width;
	div2Bottom = div2Top + div2Height;

	if ((div2Right < divLeft) || (div2Left > divRight))
	{
  }
	else
	{
	 if (divBottom > div2Top)
	 {
 		document.getElementById(div2).style.top = divBottom+'px';
 		diff = divBottom - div2Top;
 		
 		if(diff > 0)
 		{
		 	comp = div2.split('_');
		 	if(islie(comp[0]))
		 	{
	 			tableau = document.getElementById('liens_'+comp[0]).value;
	 			tab = tableau.split(',');
	 			for(var i=0; i<tab.length; i++)
	 			{
	 				if(document.getElementById(tab[i]).style.display != 'none'){
	 					document.getElementById(tab[i]).style.top = document.getElementById(tab[i]).offsetTop + diff+'px';
	 				}
	 			}
			}
 		}
	 }
	}
}

//function récupérant la situation du composant, à savoir si celui est lié à un autre ou pas
function islie(div)
{
	tab = document.getElementById('div_lies').value;
	lies = tab.split(',');
	
	for(var i = 0; i < lies.length; i++)
	{
		if(lies[i] == div) return true;
	}
	
	return false;
}


