/*
Datei mit JavaScripts für Funktionalität "dynamische Menü"


Anwendung:
------------------------------------------------------------------------------------------
Damit das dynamische Menü korrekt funktioniert, muss auch die JavaScript-Datei "menu_extensions.js" in die
entsprechende HTML-Seite eingebunden werden:
Bsp:
	 <%-- JavaScript für die Erweiterungen des dynamischen Menüs einbinden --%>
	 <script src="js/menu_extensions.js"
					type="text/javascript">
	 </script>


Modification Log:
------------------------------------------------------------------------------------------
Version  Datum        Autor                 Beschreibung der Änderung
1.00     27.05.2003                         Produktivstart Internet Sales PHb2b
1.01     27.10.2003   Oliver Kastler (CMC)  Zuletzt mit Oliver Kastler (CMC) ausgetauschte Version, von dem das Original stammt
2.00     28.06.2005                         Produktivstart Internet Sales PHb2b nach Migration auf CRM 4.0
2.01     24.02.2006   Holger Dittrich       Bugfixing Netscape/Firefox: Produktsubgruppen- und Produkt-Links funktionieren nicht
																						Einbau der Funktion close_menu (aus dem noch aktuellen französischen Produktkatalog übernommen)
2.02     27.02.2006   Holger Dittrich       Projekt KOB: Beseitigung von hartcodierten Farbinformationen für Anforderung UI-Anpassung "Grün einfärben"
																						Es gab 2 Problemfälle:
																						1. Alle Produkte wurden mit HARTMANN-blauem Hintergrund angezeigt.
																						2. Deselektierte Produktgruppen wurden mit HARTMANN-blauem Hintergrund angezeigt.
*/

x_gif = new Image();
var Produkte;

function set_image_src(x,product)
{
	x_gif.src = x;
	Produkte = product;
}

// Diese Funktion in den Seiten aufrufen.
set_image_src('images/x.gif','Produkte');


function remove_childs(node,orig)
{
	while(node.firstChild)
	{
		remove_childs(node.firstChild,0);
	}
	if(! orig)
	{
		node.parentNode.removeChild(node);
	}
}

function close_menu()
{
	window.setTimeout("toggle_submenu('prgr_link0_0_0');",200);
}

var last_prgr;
var last_sg;
var last_sg_color;

function toggle_submenu(id)
{
	var sub_re = /^prgr_link(\d+)_(\d+)_(\d+)$/;
	sub_re.exec(id);
	var level1 = RegExp.$1;
	var level2 = RegExp.$2;
	var level3 = RegExp.$3;

	var id = level1+"_"+level2+"_"+level3;

	if(last_prgr)
	{
		remove_submenu(last_prgr);

		var selects = document.getElementsByTagName("SELECT").length;

		if(selects)
		{
			for(var i = 0;i < selects;i++)
			{
				document.getElementsByTagName("SELECT")[i].style.visibility = "visible";
			}
		}
	}

	if(document.getElementById("prgr"+id))
	{
		create_submenu(id);
		document.getElementById("prgr"+id).style.backgroundColor = menu[level1]["color"];

		var selects = document.getElementsByTagName("SELECT").length;

		if(selects)
		{
			for(var i = 0;i < selects;i++)
			{
				document.getElementsByTagName("SELECT")[i].style.visibility = "hidden";
			}
		}
	}

	last_prgr = level1+"_"+level2+"_"+level3;
}

function submenu_on(event_ns)
{
	var id;

	if(! Browser.match(/NS6/))
	{
		id = event.srcElement.getAttribute("id");
	}
	else
	{
		id = event_ns.currentTarget.getAttribute("id");
	}

	if(id.match(/^prgr_link.*$/))
	{
		toggle_submenu(id,1);
	}
	else
	{
		var ok = 0;
		var parent_nr = "parentNode.";

		while(! ok)
		{
			if(! Browser.match(/NS6/))
			{
				var id_string = 'id = event.srcElement.'+parent_nr+'getAttribute("id")';
			}
			else
			{
				var id_string = 'id = event_ns.currentTarget.'+parent_nr+'getAttribute("id")';
			}

			eval(id_string);

			if(id.match(/^prgr\d{1,}_\d{1,}_0/))
			{
				ok = 1;
				break;
			}
			parent_nr = parent_nr+"parentNode.";
		}

		toggle_submenu(id,1);
	}
}

function create_submenu(id)
{
	var menu_re = /^(\d+)_(\d+)_(\d+)$/;
	menu_re.exec(id);
	var level1 = RegExp.$1;
	var level2 = RegExp.$2;
	var level3 = RegExp.$3;

	var i = level1;

	if(document.getElementById("prgr"+id))
	{
		var j_ok = 1;
		var j = 1;

		var next_i = i;
		next_i++;

		var last_i;
		var tbody_sg;

		while(j_ok)
		{
			if(! menu[i][j])
			{
				j_ok = 0;
				break;
			}
			else if(! menu[i][j]["name"])
			{
				j_ok = 0;
				break;
			}
			else
			{
				if(last_i != i)
				{
					"prgr_td2"+i+"_0_0"
					last_i = i;

					div_sg = document.createElement("DIV");

					if(! Browser.match(/NS6/))
					{
						div_sg.setAttribute("className","menu_prgr");
					}
					else
					{
						div_sg.setAttribute("class","menu_prgr");
					}

					div_sg.setAttribute("id","prgr_pk"+i+"_0_0");
					document.getElementById("prgr_td2"+i+"_0_0").appendChild(div_sg);

					table_sg = document.createElement("TABLE");

					if(! Browser.match(/NS6/))
					{
						table_sg.setAttribute("className","menu_prgr");
					}
					else
					{
						table_sg.setAttribute("class","menu_prgr");
					}

					table_sg.setAttribute("cellSpacing","0");
					table_sg.setAttribute("cellPadding","0");
					div_sg.appendChild(table_sg);

					tbody_sg = document.createElement("TBODY");
					table_sg.appendChild(tbody_sg);
				}

				tr_sg = document.createElement("TR");
				tbody_sg.appendChild(tr_sg);

				td1_sg = document.createElement("TD");
				tr_sg.appendChild(td1_sg);

				td1_sg.setAttribute("id","td_menu_prgr_"+i+"_"+j+"_0");

				if(! Browser.match(/NS6/))
				{
					td1_sg.setAttribute("className","menu_prgr");
				}
				else
				{
					td1_sg.setAttribute("class","menu_prgr");
				}

				td1_sg.style.backgroundColor = menu[i]["color"];

				a_sg = document.createElement("A");
				td1_sg.appendChild(a_sg);

				if(! Browser.match(/NS6/))
				{
					a_sg.setAttribute("className","menu");
				}
				else
				{
					a_sg.setAttribute("class","menu");
				}

				a_sg.setAttribute("href","javascript:customerExit_PrepareAndOpenMenuEntryURL('"+menu[i][j]["link"]+"');");
				a_sg.setAttribute("id","sg_link"+i+"_"+j+"_0");

				var names = menu[i][j]["name"].split("<br>");

				for(var counter = 0;counter < (names.length - 1);counter++)
				{
					a_sg.appendChild(document.createTextNode(names[counter]));
					a_sg.appendChild(document.createElement("BR"));
				}

				a_sg.appendChild(document.createTextNode(names[names.length-1]));

				if(! Browser.match(/NS6/))
				{
					a_sg.setAttribute("onmouseover",productmenu_on);
				}
				else
				{
					a_sg.addEventListener("mouseover", productmenu_on, false);
				}

				td2_sg = document.createElement("TD");
				tr_sg.appendChild(td2_sg);

				// ab hier div
				var div_product = document.createElement("DIV");
				div_product.setAttribute("id","sg_pk"+i+"_"+j+"_0");
				td2_sg.appendChild(div_product);

				if(! Browser.match(/NS6/))
				{
					div_product.setAttribute("className","menu_sg");
				}
				else
				{
					div_product.setAttribute("class","menu_sg");
				}

				var table_product = document.createElement("TABLE");
				table_product.setAttribute("cellPadding","0");
				table_product.setAttribute("cellSpacing","0");

				if(! Browser.match(/NS6/))
				{
					table_product.setAttribute("className","menu_sg");
				}
				else
				{
					table_product.setAttribute("class","menu_sg");
				}

				div_product.appendChild(table_product);

				var tbody_product = document.createElement("TBODY");
				table_product.appendChild(tbody_product);

				tbody_product.setAttribute("id","tbody_product"+i+"_"+j+"_0");

				// bis hier div
			}
			j++;
		}
	}
}

function remove_submenu(id)
{
	var menu_re = /^(\d+)_(\d+)_(\d+)$/;
	menu_re.exec(id);
	var level1 = RegExp.$1;
	var level2 = RegExp.$2;
	var level3 = RegExp.$3;

	if(document.getElementById("prgr_pk"+level1+"_0_0"))
	{
		remove_childs(document.getElementById("prgr_pk"+level1+"_0_0"),0);
	}
}

function productmenu_on(event_ns)
{
	var id;

	if(! Browser.match(/NS6/))
	{
		id = event.srcElement.getAttribute("id");
	}
	else
	{
		id = event_ns.currentTarget.getAttribute("id");
	}

	if(last_sg)
	{
		if(document.getElementById("sg_pk"+last_sg))
		{
			document.getElementById("sg_pk"+last_sg).style.visibility = "hidden";
		}
	}

	var sub_re = /^sg_link(\d+)_(\d+)_(\d+)$/;
	sub_re.exec(id);
	var level1 = RegExp.$1;
	var level2 = RegExp.$2;
	var level3 = RegExp.$3;

	var id = level1+"_"+level2+"_"+level3;


	if(document.getElementById("td_product"+id))
	{
		if(document.getElementById("sg_pk"+id))
		{
			document.getElementById("sg_pk"+id).style.visibility = "visible";
		}
	}
	else
	{
		// Create productmenu
		k_ok = 1;
		k = 1;
		i = level1;
		j = level2;

		// Farbe Produkt
		var bgcolor;

		if(i > 0)
		{
			if(menu[i]["color"])
			{
				bgcolor = menu[i]["color"];
			}
		}

		while(k_ok)
		{
			if(! menu[i][j][k])
			{
				k_ok = 0;
				break;
			}
			else if(! menu[i][j][k]["name"])
			{
				k_ok = 0;
				break;
			}
			else
			{
				tr_product = document.createElement("TR");
				document.getElementById("tbody_product"+level1+"_"+level2+"_0").appendChild(tr_product);

				var td_product = document.createElement("TD");
				tr_product.appendChild(td_product);

				if(! Browser.match(/NS6/))
				{
					td_product.setAttribute("className","menu_sg");
				}
				else
				{
					td_product.setAttribute("class","menu_sg");
				}

				// Falls die Hintergrundfarbe ermittelt werden konnte...
				if( bgcolor )
				{
					//...wird diese jetzt gesetzt
					td_product.style.background = bgcolor;
				}
				td_product.setAttribute("id","td_product"+id);

				var a_product = document.createElement("A");

				if(! Browser.match(/NS6/))
				{
					a_product.setAttribute("className","menu");
				}
				else
				{
					a_product.setAttribute("class","menu");
				}

				a_product.setAttribute("href","javascript:customerExit_PrepareAndOpenMenuEntryURL('"+menu[i][j][k]["link"]+"');");

				a_product.appendChild(document.createTextNode(menu[i][j][k]["name"]));
				td_product.appendChild(a_product);
			}
			k++;
		}

		document.getElementById("sg_pk"+id).style.visibility = "visible";
	}

	last_sg = id;
}

function create_menu()
{
	menu_left_main = document.getElementById('menu_main');

	entry_table = document.createElement("TABLE");
	entry_table.setAttribute("cellSpacing","0");
	entry_table.setAttribute("cellPadding","0");
	entry_table.setAttribute("width","125px");

	menu_left_main.appendChild(entry_table);
	entry_tbody = document.createElement("TBODY");
	entry_table.appendChild(entry_tbody);

	entry_tr = document.createElement("TR");
	entry_tbody.appendChild(entry_tr);

	entry_td1 = document.createElement("TD");
	entry_tr.appendChild(entry_td1);

	if(! Browser.match(/NS6/))
	{
		entry_td1.setAttribute("className","menu_left");
	}
	else
	{
		entry_td1.setAttribute("class","menu_left");
	}

	entry_td1_bold = document.createElement("STRONG");
	entry_td1.appendChild(entry_td1_bold);
	entry_td1_bold.appendChild(document.createTextNode(Produkte));


	var i_ok = 1;
	var i = 1;

	while(i_ok)
	{
		if(! menu[i])
		{
			i_ok = 0;
			break;
		}
		else if(! menu[i]["name"])
		{
			i_ok = 0;
			break;
		}
		else
		{
			entry_tr = document.createElement("TR");
			entry_tbody.appendChild(entry_tr);

			entry_td1 = document.createElement("TD");
			entry_tr.appendChild(entry_td1);

			entry_td1.setAttribute("id","prgr"+i+"_0_0");

			if(! Browser.match(/NS6/))
			{
				entry_td1.setAttribute("className","menu_left");
			}
			else
			{
				entry_td1.setAttribute("class","menu_left");
			}

			entry_td1_a = document.createElement("A");
			entry_td1.appendChild(entry_td1_a);

			if(! Browser.match(/NS6/))
			{
				entry_td1_a.setAttribute("className","menu");
			}
			else
			{
				entry_td1_a.setAttribute("class","menu");
			}

			entry_td1_a.setAttribute("href","javascript:customerExit_PrepareAndOpenMenuEntryURL('"+menu[i]["link"]+"');");
			entry_td1_a.setAttribute("id","prgr_link"+i+"_0_0");

			var names = menu[i]["name"].split("<br>");

			for(var counter = 0;counter < (names.length - 1);counter++)
			{
				entry_td1_a.appendChild(document.createTextNode(names[counter]));
				entry_td1_a.appendChild(document.createElement("BR"));
			}

			entry_td1_a.appendChild(document.createTextNode(names[names.length-1]));

			if(! Browser.match(/NS6/))
			{
				entry_td1_a.setAttribute("onmouseover",submenu_on);
			}
			else
			{
				entry_td1_a.addEventListener("mouseover", submenu_on, false);
			}

			entry_td2 = document.createElement("TD");
			entry_tr.appendChild(entry_td2);
			entry_td2.setAttribute("id","prgr_td2"+i+"_0_0");
		}
		i++;
	}
}

