//------------------------------------------------------------------------------
//-- soho - webapp
//-- v0.0.1
//-- Autor: Robert Wüest
//-- file: menu.js
//------------------------------------------------------------------------------

// local vars CONFIGURATION
var itemHeight = 27;
var itemStyleL1 = "menu_tag01";
var itemStyleL2 = "menu_tag02";
var itemStyleHoverL1 = "menu_hover01";
var itemStyleHoverL2 = "menu_hover02";
var itemStyleHidden = "menu_hidden";
// end of CONFIGURATION
var menuButtons = Array();
var itemCount = 0;


// XMLHTTP OBJECT
function getXmlHttpObject()
{
	var xmlHttp=null;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		//Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}


// get menudata
function getData(domain)
{
	var xmlHttp = getXmlHttpObject();
	var url = "menudata.php?action=get_jsarray&domain="+domain;
	xmlHttp.onreadystatechange=function() {
		
		if(xmlHttp.readyState==4) {
			eval(xmlHttp.responseText);
		}
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
	xmlHttp.close;
}



// General initialisation
function init(domain) {
	getData(domain);
}

function initialMenuDraw() {
	var xid= $('menulocation').value;
	loadingState(xid)
}

function loadingState(id) {
	if(id != null) {
		for (var vi = 0; vi < itemCount; vi++) {
			if (menuButtons[vi][0]==id){
				if(menuButtons[vi][3] != "" && menuButtons[vi][3] != null) {
					expandMenuItem(menuButtons[vi][3]);
				}
			}
		}
	}
}

function getMenuChildren(id) {
	var list = Array();
	var ilnr = 0;
	for (var ri = 0; ri < itemCount; ri++) {
		if(menuButtons[ri][3] == id) {
			list[ilnr] = menuButtons[ri];
		    ilnr++;
		}
	}
	return list;
}

function getFieldOfMenu(id, fieldNumber) {
	for (var ti = 0; ti < itemCount; ti++) {
		if(menuButtons[ti][0] == id) {
			return menuButtons[ti][2];
		}
	}
	return false;
}


function clickMenuItem(id) {
	var list = getMenuChildren(id);
	if(list.length > 0) {
		if($('menuItem'+ list[0][0]).hasClassName(itemStyleHidden)) {
			expandMenuItem(id);
		} else {
			collapseMenuItem(id);
		}
	} else {
		returnValue = evalArgument(getFieldOfMenu(id,2));
		if(returnValue != "wnd:open") {
			location.href = returnValue;
		}
	}
}

function expandMenuItem(id) {
	var list = getMenuChildren(id);
	for (var ei = 0; ei < list.length; ei++) {
		$('menuItem'+ list[ei][0]).removeClassName(itemStyleHidden);
	}
}

function collapseMenuItem(id) {
	var list = getMenuChildren(id);
	for (var zi = 0; zi < list.length; zi++) {
		$('menuItem'+ list[zi][0]).addClassName(itemStyleHidden);
	}
}

function evalArgument(arg) {
	if (arg != null && arg != "") {
	if(arg.substring(0, 4) == "res:") {
		 window.open("getFile.php?id=" + arg.substring(4, arg.length));
		 return "wnd:open";
	}
	if(arg.substring(0, 4) == "dnl:") {
		window.open("getFile.php?id=" + arg.substring(4, arg.length) + "&dl=true");
		return "wnd:open";
	}
	if(arg.substring(0, 4) == "art:") {
		return "index.php?page=content&art_id=" + arg.substring(4, arg.length);
	}
	}
	return "index.php?page=content&art_id=" + arg;
}

function printArray() {
	var tmp = "";
	for (var pi = 0; pii < itemCount; pii++) {
		for (var x = 0; x < 7; x++) {
			tmp = tmp + " | " + x + " = "  + menuButtons[pi][x] + "   "
		}
		tmp = tmp + "<br/>";
	}
 	return tmp;
}

// Execute init()
init(1);
