<!--
var timer = null;
var delay = 150;
var current_sender = null;
var maxlevel = 0;
var statusValue = ''; // browser's status bar
var blank_url = 'blank.html'; // path to blank.html (for iframe)

isNS4 = (document.layers) ? true : false;
isIE4 = (document.all && !document.getElementById) ? true : false;
isIE5 = (document.all && document.getElementById) ? true : false;
isNS6 = (!document.all && document.getElementById) ? true : false;
Opera = false;
if (typeof(window.opera) != 'undefined') {
	browserName = ' ' + navigator.userAgent.toLowerCase();
	if ((browserName.indexOf('opera') != 0)) {
		Opera = true;
		isIE5 = isIE4 = isNS6 = isNS4 = false;
	};
};
//	alert('NS4='+isNS4+', NS6='+isNS6+', IE4='+isIE4+', IE5='+isIE5+', Opera='+Opera);


var items = new Array();

// --------------------------------------------------------------------------------------------

function setDefaultProperties(item_id){
	items[item_id]['id'] = item_id;
	items[item_id]['caption'] = "";
	items[item_id]['url'] = null;
	items[item_id]['level'] = 0;
	items[item_id]['parent'] = null;
	items[item_id]['first_child'] = null;
	items[item_id]['prev'] = null;
	items[item_id]['next'] = null;
	items[item_id]['classname_over'] = null;
	items[item_id]['classname_out'] = null;
	items[item_id]['img_over'] = null;
	items[item_id]['img_out'] = null;
	items[item_id]['width'] = 100;
	items[item_id]['height'] = 25;
	items[item_id]['offset_x'] = 0;
	items[item_id]['offset_y'] = 0;
	items[item_id]['position'] = "absolute";
	items[item_id]['visible'] = 1;
	items[item_id]['active'] = 0;
	items[item_id]['onclick'] = '';
};

// --------------------------------------------------------------------------------------------

function ParseOneString(s, item_name){
	var parts = s.split('; ');
	var item = new Array();
	for (var i=0; i<parts.length; i++) {
		var part = parts[i];
		part = part.replace(';', '');
		var keys = part.split("='");
		var key = keys[0].replace(' ', '');
		var value = keys[1].replace("'", '');
		value = value.replace("'", '');
		if (isFinite(value)) {
			items[item_name][key] = eval(value);  
		} else {
			items[item_name][key] = value;  
		};
	};
};

// --------------------------------------------------------------------------------------------

function ParseStructure(){
	var cur_level = 0;
	var cur_items = new Array();
	maxlevel = 0;
	
	for (var i=0; i<menu_structure.length; i++) {
		item_name = 'menuitem_'+i;
		items[item_name] = new Array(); 

		setDefaultProperties(item_name);
		ParseOneString(menu_structure[i], item_name);
		items[item_name]['visible'] = items[item_name]['def_visible'];
		if (items[item_name]['classname_over'] == null) 
			items[item_name]['classname_over'] = "menu" + items[item_name]['level'] + "_over";
		if (items[item_name]['classname_out'] == null)
			items[item_name]['classname_out'] = "menu" + items[item_name]['level'] + "_out";

		if (items[item_name]['level'] == cur_level) {
			if (cur_items[cur_level] != null) {
				items[cur_items[cur_level]]['next'] = item_name;
				items[item_name]['prev'] = cur_items[cur_level];
				items[item_name]['parent'] = items[cur_items[cur_level]]['parent'];
			}
		} else {
			if (items[item_name]['level'] == (cur_level + 1)) {
				if (cur_items[cur_level] != null) {
					items[cur_items[cur_level]]['first_child'] = item_name;
					items[item_name]['parent'] = cur_items[cur_level];
				};
				cur_level = items[item_name]['level'];
			} else {
				if (items[item_name]['level'] < cur_level) {
					cur_level = items[item_name]['level'];
					if (cur_items[cur_level] != null) {
						items[cur_items[cur_level]]['next'] = item_name;
						items[item_name]['prev'] = cur_items[cur_level];
						items[item_name]['parent'] = items[cur_items[cur_level]]['parent'];
					};
				};
			};
		}
		cur_items[cur_level] = item_name;
		if (cur_level > maxlevel) maxlevel = cur_level;
	};
}

// --------------------------------------------------------------------------------------------

function GetPos (elem, sProp) {
	var iPos = 0;
	while ((elem != null) && (elem.id != 'dmenu')) {
		iPos += elem["offset" + sProp];
		elem = elem.offsetParent;
	};
	return iPos;
};

// --------------------------------------------------------------------------------------------

function GetElementByID (elem_id) {
	if (isNS4) objElement = document.layers[elem_id]; 
	else if (isIE4) objElement = document.all[elem_id];
		else if (isIE5 || isNS6 || Opera) objElement = document.getElementById(elem_id);
	return(objElement);
};

// --------------------------------------------------------------------------------------------

function PrintMenu () {
	document.write('<div id="dmenu">\r\n');
	if (isIE5 || isIE4) {
		for (var lev = 0; lev <= maxlevel; lev++) 
			document.write('<iframe id="iFrameIEHack_'+lev+'" class="iFrameIEHack" src="'+blank_url+'" scrolling="No" frameborder="0"></iframe>\r\n');
	};
	for (var lev = 0; lev <= maxlevel; lev++) {
		n = 0;
		while (items['menuitem_'+n] != null) {
			i = 'menuitem_'+n;
			if (items[i]['level'] == lev) {
				document.write("<div id='" + items[i]['id'] + "'");
				if (items[i]['onclick']) document.write(" onClick='" + items[i]['onclick'] + "' ");
				else if (items[i]['url']) {
					document.write(" onClick='GoURL(event, \"" + items[i]['url'] + "\");' ");
				}
				document.write(" onMouseOver='on_ItemOver(this);' onMouseOut='on_ItemOut();'>" + items[i]['caption']);
				if (items[i]['img_out'] != null) document.write(
						"<img src='" + items[i]['img_out'] + "'>");
				document.write(
						"</div>");
			};
			n++;
		};
	};
	document.write('</div>\r\n');
	document.write('<script language="JavaScript"><!-- \r\n');
	n = 0;
	while (items['menuitem_'+n] != null) {
		i = 'menuitem_'+n;
		parObj = GetElementByID(items[i]['parent']);
		prevObj = GetElementByID(items[i]['prev']);
		if (parObj == null) {
			if (prevObj == null) {
				pos_x = 0;
				pos_y = 0;
			}
			else {
				prevId = items[i]['prev'];
				pos_x = GetPos(prevObj, "Left") + items[prevId]['width'];
				pos_y = GetPos(prevObj, "Top");
			}
		}
		else {
			parId = items[i]['parent'];
			if (items[i]['level'] == 1) {
				if (prevObj == null) {
					pos_x = GetPos(parObj, "Left");
					pos_y = GetPos(parObj, "Top") + items[parId]['height'];
				}
				else {
					prevId = items[i]['prev'];
					pos_x = GetPos(prevObj, "Left");
					pos_y = GetPos(prevObj, "Top") + items[prevId]['height'];
				};
			}
			else {
				if (prevObj == null) {
					pos_x = GetPos(parObj, "Left") + items[parId]['width'];
					pos_y = GetPos(parObj, "Top");
				}
				else {
					prevId = items[i]['prev'];
					pos_x = GetPos(prevObj, "Left");
					pos_y = GetPos(prevObj, "Top") + items[prevId]['height'];
				};
			};
		};
		obj = GetElementByID(items[i]['id']);
		if (items[i]['visible']) vis = "visible";
		else vis = "hidden";
		obj.style.visibility = vis;
		obj.style.position = items[i]['position'];
		obj.style.left = pos_x + items[i]['offset_x'] + 'px';
		obj.style.top = pos_y + items[i]['offset_y'] + 'px';
		obj.style.width = items[i]['width'] + 'px'; 
		obj.style.height = items[i]['height'] + 'px';
		obj.className = items[i]['classname_out'];
		obj.style.cursor = (items[i]['url'] == null) ? "default" : "pointer";
		n++;
	};
	document.write('--></script>');
};

// --------------------------------------------------------------------------------------------

function setParentState(item_id){
	if (!item_id) return;
	var item = new Array();
	item = items[item_id];
	cur_level = item['level'];
	item['active'] = 1;
	
// Visible brothers
	for (var i in items) {
		if (items[i]['level'] == cur_level) {
			if (items[i]['parent'] == item['parent']) {
				items[i]['visible'] = 1;
			};
		};
	};

// recurring call	
	setParentState(item['parent']);
};

// --------------------------------------------------------------------------------------------

function on_ItemOver (sender) {
	clearTimeout(timer);
	current_sender = sender;

	var item = new Array();
	item = items[current_sender.id];
	cur_level = item['level'];
	if (item['url'] != null) {
		statusValue = self.status;
		self.status = item['url'];
	};
	
// Visible brothers
	for (var i in items) {
		if (items[i]['level'] == cur_level) {
			if (items[i]['parent'] == item['parent']) {
				items[i]['active'] = 0;
				obj = GetElementByID(items[i]['id']);
				Highlight(obj, items[i]['active']);
			};
		};
	};

//Set itself active
	item['active'] = 1;
	obj = GetElementByID(item['id']);
	Highlight(obj, 1);

	timer = setTimeout("on_timerOver()", delay);
};

// --------------------------------------------------------------------------------------------

function on_timerOver () {
	var item = new Array();
	item = items[current_sender.id];
	cur_level = item['level'];

// Clear all items
	for (var i in items) {
		items[i]['visible'] = 0;
		items[i]['active'] = 0;
	};

// Set itself active
	item['active'] = 1;

// Visible children
	cur_iframe = cur_level+1;
	isFirstChild = 1;
	h = 0;
	for (var i in items) {
		if (items[i]['level'] == (cur_level+1)) {
			if (items[i]['parent'] == current_sender.id) {
				items[i]['visible'] = 1;
				if (isIE5 || isIE4) {
					obj = GetElementByID(items[i]['id']);
					if (isFirstChild) {
						h = obj.offsetHeight;
						w = obj.offsetWidth;
						x = GetPos(obj, "Left");
						y = GetPos(obj, "Top");
						isFirstChild = 0;
						y_prev = y;
						h_prev = h;
					}
					else {
						y_cur = GetPos(obj, "Top");
						h_cur = obj.offsetHeight
						h += h_cur - (h_prev-y_cur+y_prev);
						y_prev = y_cur;
						h_prev = h_cur;
					}
				}
			}
		}
	};

// Visible brothers
	for (var i in items) {
		if (items[i]['level'] == cur_level) {
			if (items[i]['parent'] == item['parent']) {
				items[i]['visible'] = 1;
			};
		};
	};

	setParentState(item['parent']);

	for (var i in items) {
		if (items[i]['visible']) vis = "visible";
		else vis = "hidden";
		obj = GetElementByID(items[i]['id']);
		SwitchVisibility(obj, vis);
		Highlight(obj, items[i]['active']);
	};

	if (isIE5 || isIE4) {
		for (var lev = cur_iframe; lev <= maxlevel; lev++) SwitchSelects(lev, null, null, null, null, "hidden");
		if (!isFirstChild) SwitchSelects(cur_iframe, x, y, w, h, "visible");
	}
}

// --------------------------------------------------------------------------------------------

function on_ItemOut (){
	clearTimeout(timer);
	self.status = statusValue;
	timer = setTimeout("on_timerOut()", delay);
}

// --------------------------------------------------------------------------------------------

function on_timerOut () {
	for (var i in items) {
		obj = GetElementByID(items[i]['id']);
		items[i]['active'] = 0;
		if (items[i]['level'] != 0) {
			items[i]['visible'] = 0;
			SwitchVisibility(obj, "hidden");
		} else {
			Highlight(obj, items[i]['active']);
		};		
	};
	if (isIE5 || isIE4) {
		for (var lev = 0; lev <= maxlevel; lev++) SwitchSelects(lev, null, null,null, null, "hidden");
	}
};

// --------------------------------------------------------------------------------------------

function SwitchVisibility (sender, status) {
	if (isNS4 || isIE4) sender.visibility = status;
	else if (isIE5 || isNS6 || Opera) sender.style.visibility = status;
};

// --------------------------------------------------------------------------------------------

function Highlight (obj, selected) {
	if (selected) obj.className = items[obj.id]['classname_over'];
	else obj.className = items[obj.id]['classname_out'];
};

// --------------------------------------------------------------------------------------------

function SwitchSelects (level, x, y, w, h, vis) {
	var myIFrame = GetElementByID('iFrameIEHack_'+level); 
	myIFrame.style.visibility = vis;
	if (w != null) myIFrame.style.width = w;
	if (h != null) myIFrame.style.height = h;
	if (x != null) myIFrame.style.left = x+"px";
	if (y != null) myIFrame.style.top = y+"px";
};

// --------------------------------------------------------------------------------------------

function GoURL (event, url) {
	if (event.shiftKey == true) 
		OpenWin = this.open(url, "_blank", "");
	else top.location.href = url;
};



ParseStructure();
PrintMenu();

-->
