//	menus

//	uses utilities;

function doHtmlSubMenu(submenu)
{
	//	fabricant du HTML des items de sous-menu
	var items = "";
	var sep = breakTag;

	var temp = "";
	for (var i = 0; i <= submenu.length - 1; i++)
	{
		var subMenuItem = submenu[i];
		if (items != "") items += sep;

		with (subMenuItem)
		{
			var lnk = "";
			if (href == undefined)
				lnk = "#";
			else
				lnk = href;
			var tit = "";
			if (title != "") tit = doProp("title", title);
			lnk = doSeq("a", doSeq("nobr", text), doProp("href", lnk) + tit);
		};
		items += lnk;
	};
	var temp = items;
	return temp;
};

function sh(obj, isOver, styleName)
{
	if (styleName == undefined) styleName = "local";
	if (isOver != undefined)
	{
		if (isOver)
			setCls(obj, 'upMenuOver');
		else
			setCls(obj, 'upMenu');
	};

	var id = obj.id.substr(4);
	var uMenu = getEl('umnu' + id);
	var dMenu = getEl('dmnu' + id);
	posObj(dMenu, uMenu, styleName, 0, 0, uMenu.offsetHeight);
	with (dMenu.style)
		if ((visibility == '') || (visibility == 'hidden'))
			visibility = 'visible';
		else
			visibility = 'hidden';
};

function doHtmlMenu(menu, isDiv)
{
	//	fabricant du HTML des items de menu

	var items = "";
	var sep = "&nbsp;|&nbsp;";
	var stdProp = "sh(this);";
	stdProp = doProp("onmouseover", stdProp) + 
				doProp("onmouseout", stdProp);

	for (var i = 0; i <= menu.length - 1 ; i++)
	{
		if (items != "") items += sep;

		//	item de menu
		var menuItem = menu[i];
		with (menuItem)
		{
			//	lien
			var lnk = "";
			if (href == undefined)
				lnk = "#";
			else
			{
				if (href.substr(0, 1) == "!")
					lnk = doSeq("a", doSeq("nobr", text), doProp("href", "#") + doProp("onclick", href.substr(1, href.length - 1)));
				else
					lnk = doSeq("a", doSeq("nobr", text), doProp("href", href));
			};
			var tit = "";
			if (title != "") tit = doProp("title", title);

			//	propriétés du SPAN 1
			var prp = doProp("id", "umnu" + id) + doProp("class", "upMenu") + tit;
			if (menu.length != 0) prp += stdProp;
			
			//	SPAN 1
			items += doSeq("span", lnk, prp);
		};
	};
	
	for (var i = 0; i <= menu.length - 1 ; i++)
	{
		//	item de sous-menu
		var menuItem = menu[i];
		with (menuItem)
		{
			//	sous- menus dans item courant ?
			if (menu.length != 0)
			{
				var prp = doProp("id", "dmnu" + id) + doProp("class", "downMenu");
				prp += stdProp;
				var submenu = "";
				submenu = doHtmlSubMenu(menuItem.menu);
				items += doSeq("span", submenu, prp);
			};
		};
	};
	
	if (isDiv)
		items = doSeq("div", items, doProp("class", "menuArea"));
	else
		items = doSeq("span", items, doProp("class", "menuArea"));
	return items;
};

function doHtmlPopup1(menu, isDiv)
{
	//	fabricant du HTML des items de menu

	var items = "";
	var sep = "&nbsp;&gt;&nbsp;";
	var stdProp = "sh(this);";
	stdProp = doProp("onmouseover", stdProp) + 
				doProp("onmouseout", stdProp);

	for (var i = 0; i <= menu.length - 1 ; i++)
	{
		if (items != "") items += sep;

		//	item de menu
		var menuItem = menu[i];
		with (menuItem)
		{
			//	lien
			lnk = doProp("href", "#");
			if (href != "") lnk += doProp("onclick", href);
			lnk = doSeq("a", doSeq("nobr", text), lnk);

			var tit = "";
			if (title != "") tit = doProp("title", title);

			//	propriétés du SPAN 1
			var prp = doProp("id", "umnu" + id) + doProp("class", "upMenu") + tit;
			prp += stdProp;
			
			//	SPAN 1
			items += doSeq("span", lnk, prp);
		};
	};
	
	for (var i = 0; i <= menu.length - 1 ; i++)
	{
		//	item de sous-menu
		var menuItem = menu[i];
		with (menuItem)
		{
			//	sous- menus dans item courant ?
			if (menu.length != 0)
			{
				var prp = doProp("id", "dmnu" + id) + doProp("class", "downMenu");
				prp += stdProp;
				var submenu = "";
				//if (idDest != '') submenu = getEl(idDest).innerHTML;
				items += doSeq("span", submenu, prp);
			};
		};
	};
	
	if (isDiv)
		items = doSeq("div", items, doProp("class", "menuArea"));
	else
		items = doSeq("span", items, doProp("class", "menuArea"));
	return items;
};

function doHtmlPopup2(menu, isDiv)
{
	//	fabricant du HTML des items de menu

	var items = "";
	var sep1 = "&nbsp;|&nbsp;";
	var sep2 = "&nbsp;";

	var stdProp1 = doProp("onmouseover", "setCls(this, 'upMenuOver');") + 
					doProp("onmouseout", "setCls(this, 'upMenu');");

	var stdProp2 = doProp("onmouseover", "sh(this, true);") + 
					doProp("onmouseout", "sh(this, false);");

	var stdProp3 = "sh(this);";
	stdProp3 = doProp("onmouseover", stdProp3) + 
					doProp("onmouseout", stdProp3);

	for (var i = 0; i <= menu.length - 1 ; i++)
	{
		//	item de menu
		var menuItem = menu[i];
		with (menuItem)
		{

			var prp = "";
			var onClick = "";
			var item = doSeq("nobr", text, doProp("id", "tmnu" + id));
			
			if (href != "")
			{
				//	si href n'est pas vide
				if (href.substr(0, 1) == "!")
				{
					//	on a une commande si href pas vide
					onClick = href.substr(1, href.length - 1);
					if (onClick != "") onClick = doProp("onclick", onClick + ";")
				}
				else
					//	on a une URL
					onClick = doProp("onclick", "goto('" + href + "');");
				prp = stdProp1;
			}
			else
			{
				//	si href est vide, on a un popup et idDest doit être renseigné
				prp = stdProp2;
			};

			var tit = "";
			if (title != "") tit = doProp("title", title);

			//	propriétés du SPAN 1
			prp += doProp("id", "umnu" + id) + doProp("class", "upMenu") + tit + onClick;
			
			//	SPAN 1
			item = doSeq("span", item, prp);
			//alert(item)
			item = doSeq("td", item);

			var tmp = "";
			items += tmp + item;
		};
	};

	items = doSeq("tr", items);
	items = doSeq("table", items, doProp("border", "0") +
							doProp("cellpadding", "1") +
							doProp("class", "popupTbl") +
							doProp("cellspacing", "0"));

	var it2 = "";
	for (var i = 0; i <= menu.length - 1 ; i++)
	{
		//	item de sous-menu
		var menuItem = menu[i];
		with (menuItem)
		{
			//	sous- menus dans item courant ?
			if (menu.length != 0)
			{
				var prp = doProp("id", "dmnu" + id) + doProp("class", "downMenu");
				prp += stdProp3;
				var submenu = "";
				it2 += doSeq("span", submenu, prp);
			};
		};
	};

	items += it2;
	if (isDiv)
		items = doSeq("div", items, doProp("class", "menuArea"));
	else
		items = doSeq("span", items, doProp("class", "menuArea"));
	return(items);
};

function addMenu(text, href, title, isFolder)
{
	//	fabricant de sous-menu
	var current = this.menu.length; 
	this.menu[current] = new menuCreate(text, href, title, undefined, isFolder);
};

function menuCreate(text, href, title, id, isFolder)
{
	//	constructeur de menu
	this.text = text;
	this.href = href;
	if (title != undefined)
		this.title = title;
	else
		this.title = "";
	if (id != undefined) this.id = id;
	if (isFolder == undefined)
		this.isFolder = false;
	else
		this.isFolder  = isFolder;
	this.menu = new Array();
	this.addMenu = addMenu;
};

function popupCreate(text, href, title, id, idDest, img)
{
	//	constructeur de popup
	this.text = text;
	this.href = href;
	if (title != undefined)
		this.title = title;
	else
		this.title = "";
	this.id = id;
	this.idDest = idDest;
	this.img = img;
};
