


var STANDARD_MENU_NAME = "Untermenue";
var ICON_PATH = "";
var ICON_SUB_PATH = "";
var PHP_SCRIPT_URL = "php/XMLGenerator.php"
DDSMENU_COUNT = 1;
DDSMENU_PATH = new Object();
DDSMENU_PATH['ddsmenu1'] = "DATA/FIT";
ACT_Menu = new String();
ACT_Menu = "ddsmenu1";

fullXMLMenu = parseXMLMenu();
actXMLString = new String();
actXMLString = "";
actURL = Array();

var menuSource = "";
mainmenu = new String();
mainmenu = "";
loaded = 0;
links_submenu = new String();
links_submenu = "";

SUBS = new Object();

function loadMenu() {
	mainMenu();
	
	//console.info(menuSource);
}

function startMainMenu(id,dir,url) {	

	setUrl(url);
	mainmenu = name;
	ACT_Menu = id;
	 
}


function mainMenu() {
	actXMLString = "<ul>";
	getMainMenuSource(fullXMLMenu, 0);
	actXMLString += "</ul>";

	document.getElementById(("ddsMainMenu")).innerHTML = actXMLString;
	ddsmoothmenu.init({
	mainmenuid: ("ddsMainMenu"), //menu DIV id
	//customtheme: ["#1c5a80", "#18374a", "normal_background", "hover_background"], //override default menu CSS background values? Uncomment: ["normal_background", "hover_background"]
	//customtheme: ["#1c5a80", "#18374e"], 
	contentsource: "markup" //"markup" or ["container_id", "path_to_menu_file"]
   	})
	

}
function getMainMenuSource(node,level) {

	//menuSource = window.frames['mainFrame'].document.location;

	
	//console.info(node);
	
	if (node.nodeType==1) { 
	
		if (level < 4) {	
			for (var k=0;k<node.childNodes.length;k++)	{
					
					if(node.nodeName == "rel-path") {
		//   				console.error("relpath " + node.childNodes[0].nodeValue);
		   				
		   				var subUrl = node.childNodes[0].nodeValue;
		   				
		   						
			   			
						actXMLString +=  "<li>";
					
						addMenu(node.parentNode, subUrl, true, false);	
									
						//generateSubmenuLink(node.parentNode, subUrl);	
								
						//if (existSubmenu(node.parentNode)) {
						//	actXMLString += "<ul>";
									
							//parseSubmenus(node.parentNode, subUrl);
											
						//	actXMLString += "</ul>";
						//}
								
						//console.info(actXMLString);
					}
					level++; 				
					getMainMenuSource(node.childNodes[k],level);   					   			
		   			level--;
		   	}
		}		
	}
	
	
}


function refreshMenu() {
	
	//ACT_Menu = "ddsmenu1";
	
	for(var i=1;i<= DDSMENU_COUNT;i++) {
		if (ACT_Menu != ("ddsmenu" + i)) {
			document.getElementById(("ddsmenu" + i)).innerHTML = "<ul></ul>";
			//console.info(ACT_Menu);
		}
		ddsmoothmenu.init({
		mainmenuid: ("ddsmenu" + i), //menu DIV id
		//customtheme: ["#1c5a80", "#18374a", "normal_background", "hover_background"], //override default menu CSS background values? Uncomment: ["normal_background", "hover_background"]
		//customtheme: ["#1c5a80", "#18374e"], 
		contentsource: "markup" //"markup" or ["container_id", "path_to_menu_file"]
    	})
	}	
	
	ddsmoothmenu.init({
	mainmenuid: ACT_Menu, //menu DIV id
	//customtheme: ["#1c5a80", "#18374a", "normal_background", "hover_background"], //override default menu CSS background values? Uncomment: ["normal_background", "hover_background"]
	//customtheme: ["#1c5a80", "#18374e"], 
	contentsource: "markup" //"markup" or ["container_id", "path_to_menu_file"]
    })
	

}


function parseXMLMenu() {
	
	var start = new Date();
	try //Internet Explorer
	  {
	  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
	  }
	catch(e)
	  {
	  try //Firefox, Mozilla, Opera, etc.
	    {
	    xmlDoc=document.implementation.createDocument("","",null);
	    }
	  catch(e)
	    {
	    alert(e.message);
	    return;
	    }
	  }
	xmlDoc.async=false;
	xmlDoc.load(PHP_SCRIPT_URL);
	
	return xmlDoc.documentElement;
	


	var end = new Date();
	end = end.getTime() - start.getTime();
	
	//console.info("************");
	//console.info("Generating Time: " + end);
	//console.info("************");
	
}




function setUrl(url) {
	menuSource = url;
	document.getElementById('mainFrame').src =  url;
	}

function changeMenuSource(file) {

	
	var start = new Date();
	menuSource = window.frames['mainFrame'].document.location;

	loaded = 0;
	for (var i=1; i<=DDSMENU_COUNT;i++) {
		var t = "ddsmenu"+i; 
		
		var index = menuSource.toString().indexOf(DDSMENU_PATH[t]);
		if (index > 0) {			
			ACT_Menu = t;
		}
		
	}
	
	actXMLString = "<ul>";
	 getSubMenu(menuSource);
	actXMLString += "</ul>";
	if (ACT_Menu != "") {
		document.getElementById(ACT_Menu).innerHTML = actXMLString;
	}
	//document.getElementById("subs").innerHTML = links_submenu;
	
	refreshMenu();
	
	var  h =0;
	
	if (document.getElementById('mainFrame').contentDocument && document.getElementById('mainFrame').contentDocument.body.offsetHeight) {
		h = document.getElementById('mainFrame').contentDocument.body.offsetHeight; 
	}
		else {
		if (document.getElementById('mainFrame').Document && document.getElementById('mainFrame').Document.body.scrollHeight) //ie5+ syntax
		h = document.getElementById('mainFrame').Document.body.scrollHeight;
	}
	if (h == 0) {
		h = document.getElementById('mainFrame').height;
	}
	if (h == 0) {
		h = 500;
	}
	
	document.getElementById('mainFrame').height = h + 50;
	
	//loadintoIframe('myframe' , menusource); 
	
	var end = new Date();
	end = end.getTime() - start.getTime();
	
	console.info("************");
	console.info("Loading Time: " + end);
	console.info("Loaded Items: " + loaded);
	console.info("************");
	
	
	
}

function getSubMenu(url) {

	
	//console.info("xml " + document.getElementById("smoothcontainer").innerHTML);
	//var xml = document.getElementById("smoothcontainer").innerHTML;
	//var xml = fullXMLMenu;
	//console.info("got to submenu");
	
	//var x=fullXMLMenu[dir_id];
	//console.info(xmlDoc.documentElement);
	
	var urlDir = menuSource.toString().substring(0,menuSource.toString().lastIndexOf("/")+1);
	//console.info(urlDir);
	
	//console.info("SUB-URL " + subUrl);
	for(var key in SUBS) {
		//console.warn(key);
		if (key == url) {
			
			actXMLString = SUBS[key];		
			console.info("added chached menu");
			return true;
		} 
	}
		
	parseMenu(fullXMLMenu, urlDir);	
	return true;

}



function parseMenu(node, url) {

	var txt = "";
	if (node.nodeType==1) { 
   		m_url = "";
   		
   		
   		for (var k=0;k<node.childNodes.length;k++)	{
			
			
		
			if(node.nodeName == "rel-path") {
   				//console.error("relpath " + node.childNodes[0].nodeValue);
   				
   				var subUrl = node.childNodes[0].nodeValue;
   				
   				if (subUrl.length <= url.length ) {
   					
   					if (subUrl == url.substring(0,subUrl.length) ) {
   					
   						
	   					//actXMLString += "<li><img src='" + ICON_PATH + "' width='30px' height='30px'></li>";
					    actXMLString +=  "<li>";
			
						addMenu(node.parentNode, subUrl, true, false);	
							
						generateSubmenuLink(node.parentNode, subUrl);	
						
						actURL.push(subUrl);
						//console.info("ACT-URL0 " + actURL);			
						if (existSubmenu(node.parentNode)) {
							actXMLString += "<ul>";
							
							parseSubmenus(node.parentNode, subUrl);
									
							actXMLString += "</ul>";
						}
						actXMLString += "</li>";
						
						SUBS[actURL.pop()] = actXMLString;
						//console.info("ACT-URL " + );
						
					}
	   			}
   				   			
   			}
   			parseMenu(node.childNodes[k], url);
   			
   			//console.info(actURL);
		}	
	}
	
}



function generateSubmenuLink(node,url) {
	links_submenu = "";
	if (node.nodeType==1) {   		
   		for (var k=0;k<node.childNodes.length;k++)	{
			if (node.childNodes[k].nodeName == "menu")  {
			   addMenu(node.childNodes[k],url,false, false);
			   
			}
		}
	}
	
}



function addMenu(node, url, write, icon) {
	
	
	var m_name = STANDARD_MENU_NAME;
	var m_link = "";
	var txt = "";
	
	if (node.nodeType==1) { 
   		m_url = "";
   		infos = 0;
   		for (var j=0;j<node.childNodes.length;j++)	{ 
    		
    		if (node.childNodes[j].nodeName == "rel-path") {
    			m_url = node.childNodes[j].childNodes[0].nodeValue;
    			infos++;
   			}
   		
			try {
				if (node.childNodes[j].nodeName == "menu-name") {
					m_name = node.childNodes[j].childNodes[0].nodeValue;
					infos++;
				
				}
			} catch(e) {
				infos++;
			}
			
			try {
				if (node.childNodes[j].nodeName == "menu-link") {
					m_link = node.childNodes[j].childNodes[0].nodeValue;
					infos++;
				
				}
			} catch(e) {
				infos++;
			}
			
			
			if (infos == 3 ) {
				//console.info(m_link);	
				var n = "";
				if (icon) {
					//n = "<img class='maez-img' src='" + ICON_SUB_PATH + "' width='10px' height='10px'>"+ m_name; 
					n = m_name;
				}else {
					n = m_name;
				}
					
				
				if (write) {
					actXMLString += "<a href=\"JavaScript:setUrl(\'" + m_url + m_link + "\');\">"+ n + "</a>";;
				} else {
					links_submenu += "<a class='maez-a-small' href=\"JavaScript:setUrl(\'" + m_url + m_link + "\');\">"+ n + "</a>";;
					links_submenu += "   ";
				}
				loaded++;
				infos=0;
			}
				
		
		}
		
	}	
	
}

function existSubmenu(node) {


	if (node.nodeType==1) {   		
   		for (var k=0;k<node.childNodes.length;k++)	{
			if (node.childNodes[k].nodeName == "menu")  {
			   return true;
			}
		}
	}
	return false;
}	



function parseSubmenus(node,url) {


	if (node.nodeType==1) { 
   		m_url = "";

		for (var k=0;k<node.childNodes.length;k++)	{
		
   			if (node.childNodes[k].nodeName == "rel-path")  {
   				//console.info("rel-path" + node.childNodes[k].childNodes[0].nodeValue);
   				m_url = node.childNodes[k].childNodes[0].nodeValue;
   			}
   		}
   		/*
   		for(var key in SUBS) {
   			console.warn(SUBS[key]);
   			if (key == m_url) {
   				console.info("FEOUND");
   			}
   		}
   		*/
   		for (var k=0;k<node.childNodes.length;k++)	{

			if (node.childNodes[k].nodeName == "menu")  {
				actXMLString +=  "<li>";
				addMenu(node.childNodes[k], m_url, true, true);	
				//console.info(node.childNodes[k].nodeName)
				var hasSubmenu = false;
				for (var i=0;i<node.childNodes[k].childNodes.length;i++)	{
					
					if (node.childNodes[k].childNodes[i].nodeName == "menu") {
						hasSubmenu = true;
					}
					
				}
				//actURL = m_url;
				if (hasSubmenu) {
						//console.info(node.childNodes[k].childNodes[i].nodeName);
						actXMLString +=  "<ul>";
						
						//console.info(actXMLString);
						parseSubmenus(node.childNodes[k], url);
								
						actXMLString += "</ul></li>";
					
				}
				
				//console.info(actXMLString);
				//console.error("xx"+ actURL);
				//SUBS[actURL] = actXMLString;
				//console.info(SUBS[actURL]);
				
			}		   			
   		}
   			
  				//actXMLString += txt;
  				//console.info(node.childNodes[k].nodeName);
			
			
	}
	
	
	//return txt;
}




