var oldCatOnglet;
var oldssOnglet;


function show_hide_menu_onglets(newOnglet) {
	
	if (newOnglet.className == 'vignetteplus' || newOnglet.className == 'vignettemoins')
	{
		var vignettePlus = 'vignetteplus';
		var vignetteMoins = 'vignettemoins';

		var oldOnglet = oldCatOnglet;
		oldCatOnglet = newOnglet;
	}else
	{
		var vignettePlus = 'sousvignetteplus';
		var vignetteMoins = 'sousvignettemoins';	
		
		var oldOnglet = oldssOnglet;
		oldssOnglet = newOnglet;
	}

	//permet de fermer un onglet deja ouvert
	var newOngletUL = getULChildOnglet(newOnglet);
	if (newOnglet.className == 'vignetteplus' || newOnglet.className == 'sousvignetteplus')
	{
		newOngletUL = null;
		newOnglet = null;
	}
	
	//ferme le dernier onglet ouvert
	var oldOngletUL = getULChildOnglet(oldOnglet);

	if (oldOngletUL)
	{
		oldOngletUL.style.display = 'none';
		if (oldOnglet && oldOnglet.className)
			oldOnglet.className = vignetteMoins;
	}
	if (oldOnglet)
		setLinkClass(oldOnglet.parentNode, vignetteMoins);
	
	//on ouvre le nouvel onglet (si il n'etait pas deja ouvert)
	if (newOngletUL)
	{
		newOngletUL.style.display = 'block';
		if (newOnglet && newOnglet.className)
		{
			newOnglet.className = vignettePlus;
			setLinkClass(newOnglet.parentNode, vignettePlus);
		}
	}
	
	return false;
}

function showSelectedOnglet(id, type)
{
	var elem = document.getElementById(type+"_"+id);
	if (!elem)
		return false;		
	
	switch (type)
	{
		case 'cat':
			if (elem.firstChild.firstChild.tagName == "DIV")
			{
				show_hide_menu_onglets(elem.firstChild.firstChild)
			}else
			{
				setLinkClass(elem.firstChild, "vignetteplus");
				oldCatOnglet = elem.firstChild.firstChild;
			}
		break;
		
		case 'rub':
			if (elem.firstChild.firstChild.tagName == "DIV")
			{
				show_hide_menu_onglets(elem.firstChild.firstChild)
			}else
			{
				setLinkClass(elem.firstChild, "sousvignetteplus");
				oldssOnglet = elem.firstChild.firstChild;
			}
			var parnode = elem.parentNode.parentNode.id.split("_");
			showSelectedOnglet(parnode[1], parnode[0]);
		break;
		
		case 'srub':
			elem.firstChild.id = "niv3_on";
			
			var parnode = elem.parentNode.parentNode.id.split("_");
			showSelectedOnglet(parnode[1], parnode[0]);
		break;
	}
}

function getULChildOnglet(menu) {
	if (!menu || !(menu.parentNode))
		return false;
		
	var parent = menu.parentNode.parentNode;
	
	if (parent.childNodes[1].tagName == 'UL')
		return parent.childNodes[1];

	return false;
}

function setLinkClass(link, classe) {
	switch(classe)
	{
		case 'vignetteplus':
			if (link.className == 'first')
				link.setAttribute('id', 'first_niv1_on');
			else
				link.setAttribute('id', 'niv1_on');
		break;
		
		case 'vignettemoins':
			link.setAttribute('id', '');		
		break;
		
		case 'sousvignetteplus':
			link.setAttribute('id', 'niv2_on');	
		break;
		
		case 'sousvignettemoins':
			link.setAttribute('id', '');	
		break;
	
	
	}

}

function createMenu(menuCategories, menuRubriques, menuSsRubriques, showEmpty) {
	//compte les menus
	for (var nbcat=0; nbcat < menuCategories.length; ++nbcat)
	{
		menuCategories[nbcat]['nb'] = 0;
		
		for (var nbrub=0; nbrub < menuRubriques.length; ++nbrub)
		{
			menuRubriques[nbrub]['nb'] = 0;
			
			//on verifie l'existance des sous menuRubriques
			for (var nbssrub=0; nbssrub < menuSsRubriques.length; ++nbssrub)
			{
				if ( menuRubriques[nbrub][0] == menuSsRubriques[nbssrub][2] )
				{
					menuRubriques[nbrub]['nb']++;
					if (menuCategories[nbcat][0] == menuRubriques[nbrub][2])
					{
						menuCategories[nbcat]['nb']++;
					}
				}
			}
		}
	}
	
	//affichage du menu
	var first = -2;
	var menu = '\n<div id="sidebar_left"><ul class="nav_left">';
	
	for (var nbcat=0; nbcat < menuCategories.length; ++nbcat)
	{
		cat = menuCategories[nbcat];
		
		menu += addMenu(cat, 'cat', first, cat['nb']);
		first = -1;
		for (var nbrub=0; nbrub < menuRubriques.length; ++nbrub)
		{	
			rub = menuRubriques[nbrub];
			
			if ((!showEmpty && rub['nb'] == 0) || rub[2] != cat[0] )
				continue;
				
			menu += addMenu(rub, 'rub', -1, rub['nb']);
			for (var nbssrub=0; nbssrub < menuSsRubriques.length; ++nbssrub)
			{
				ssrub = menuSsRubriques[nbssrub];
				
				if (ssrub[2] != rub[0])
					continue;
				
				menu += addMenu(ssrub, 'ssrub', 0);
			}
			menu += addMenu(rub, 'rub', 1);
		}
		menu += addMenu(cat, 'cat', 1);
	}
	
//	menu += '\n</ul><br style="clear:both"/><br style="clear:both"/><span style="padding-left:20px"><a href="http://tracking.publicidees.com/clic.php?partid=11266&progid=845&promoid=17429" target="_blank"><img src="http://tracking.publicidees.com/banner.php?partid=11266&progid=845&promoid=17429" border="0"></a></span></div>';
	menu += '\n</ul><br style="clear:both"/><br style="clear:both"/><span id="menu_parrainage"></span></div>';
	document.write(menu);
}

function addMenu(menu, type, pos, nb) {
	if (!nb)
		nb = 0;
	
	var result = "";
	switch(type)
	{
		case 'cat':
			if (pos < 1)
			{
				result += '\n<li id="cat_'+ menu[0]+'">';
				if (pos == -2)
					result += '<a alt="' + menu[1] + '" title="' + menu[1] + '" href="' + menu[3] +'" class = "first" >';
				else
					result += '<a alt="' + menu[1] + '" title="' + menu[1] + '" href="' + menu[3] + '" >';				
				
				if (nb > 0 || menu[4])
					result += '<div class="vignettemoins" onclick="return show_hide_menu_onglets(this)" ></div>' + cutWord(menu[1], 15);
				else
					result += cutWord(menu[1], 18);
					
				result += '</a>';
				result += '<ul style="display: none">';
			}else
			{
				result += '\n</ul></li>';
			}
		break;
		
		case 'rub':
			if (pos != 1)
			{
				result += '\n<li id="rub_'+ menu[0]+'"><a href="' + menu[3] + '" title="' + menu[1] + '" alt="' + menu[1] + '">';
				if (nb > 0)
					result += '<div class="sousvignettemoins"  onclick="return show_hide_menu_onglets(this)"></div>' + cutWord(menu[1], 17) + '</a>';
				else
					result += cutWord(menu[1], 23) + '</a>';
				result += '<ul style="display: none">';
			}else
			{
				result += '\n</ul></li>';
			}		
		break;
		
		case 'ssrub':
			if (menu[3].substring(0,4) == 'http') {
				result += '\n<li id="srub_'+ menu[0]+'"><a href="' + menu[3] + '" title="' + menu[1] + '" alt="' + menu[1] + '" target="_blank"><b><i><font color="#006194">' + cutWord(menu[1], 19) + '</font></i></b></a></li>';
			}else{
				result += '\n<li id="srub_'+ menu[0]+'"><a href="' + menu[3] + '" title="' + menu[1] + '" alt="' + menu[1] + '">' + cutWord(menu[1], 19) + '</a></li>';
			}
		break;
	}
	
	return result;
}

function cutWord(str,nbr) {
	if (!str)
		return "";

	newstr = str.substr(0,nbr);
	if (newstr != str)
		return newstr += '...';
	
	return str;
}
