//create onDomReady Event
window.onDomReady = DomReady;

//Setup the event
function DomReady(fn) {
	//W3C
	if(document.addEventListener) {
		document.addEventListener("DOMContentLoaded", fn, false);
	}
	
	else { //IE
		document.write('<script type="text/javascript" id="contentloadtag" defer="defer" src="javascript:void(0)"><\/script>')
		var contentloadtag=document.getElementById("contentloadtag")
		contentloadtag.onreadystatechange=function(){
			if (this.readyState=="complete"){
			  alreadyrunflag=1
			  fn();
			}
		}

		//document.onreadystatechange = function(){readyState(fn)}
	}
}

//IE execute function
function readyState(fn)
{
	//dom is ready for interaction
	if(document.readyState == "interactive")
	{
		fn();
	}
}

// --------------------------

/*
//execute as soon as DOM is loaded
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ 
	window.onload = onReady;
} else {
	window.onDomReady(onReady);
}
*/

window.onDomReady(onReady);

function getChildNodesByTagName (node, tag_name) {
    var resultNodes = new Array();
	//alert(node);
	//alert(node.childNodes.length);
    if (node != null && node.childNodes.length != 0) {	
		var count = node.childNodes.length;
        for (var i = 0; i < count; i += 1) {
            var currNode = node.childNodes[i];
            if (currNode.nodeName.toLowerCase() == tag_name) {
                resultNodes.push(currNode);
            }
        }
    }
    return resultNodes;
}

function getActiveMenuItem (collection) {
    for (var i = 0, count = collection.length; i < count; i += 1) {
        if (collection[i].attributes["class"] != null)
            if (collection[i].attributes["class"].nodeValue.toLowerCase() == "active")
                return collection[i];
    }
}

function hasSubMenu (node) {
    return (getChildNodesByTagName(node, "ul").length > 0) ? true:false;
}

function isActive (label) {
	label = label.toLowerCase();
	label = label.replace(/ä/g, "ae");
	label = label.replace(/ö/g, "oe");
	label = label.replace(/ü/g, "ue");
	label = label.replace(/-/g, "");
	label = label.replace(/\s/g, "-");
	label = label.replace(/\./g, "");
	label = label.replace(/,/g, "");
	return (window.location.href.indexOf(label) != -1) ? true:false;
}

function checkMetaMenu () {
	var divMeta = document.getElementById("meta_menu");
	var coll = getChildNodesByTagName(divMeta, "a");
	var url = window.location.href;
	for (var i = 0, count = coll.length; i < count; i += 1) {
		if (window.location.href.indexOf(coll[i].attributes["href"].nodeValue) != -1) {
			
			var el = document.createElement("div");
			el.setAttribute("id", "main_subnav");
			el.innerHTML = "<h5>" + coll[i].firstChild.nodeValue + "</h5>";
			
			//document.getElementById("main").setAttribute("class", "has_submenu");
			document.getElementById("main").style.width = "420px";
			document.getElementById("main").style.paddingTop = "40px";
			document.getElementById("main").style.paddingLeft = "217px";
			document.getElementById("main").style.paddingRight = "33px";
			
			document.getElementById("main").appendChild(el);
			
		}		
	}
}

function onReady()
{
	var navi = document.getElementById("navi");
	if (navi == null) {
		setTimeout("onReady()", 0);
	}
    var ulNode = getChildNodesByTagName(navi, "ul");
	//alert(ulNode.hasChildNodes());
    var liNodes = getChildNodesByTagName(ulNode[0], "li");
    var activeNode = getActiveMenuItem(liNodes);
    
    if (activeNode != undefined) {

        //alert(activeNode.firstChild.firstChild.data + " has Submenü: " + hasSubMenu(activeNode));
        //alert(hasSubMenu(activeNode));
        if (hasSubMenu(activeNode)) {
        
            var ulSubNode = getChildNodesByTagName(activeNode, "ul");
            var liSubNodes = getChildNodesByTagName(ulSubNode[0], "li");
            
            if (liSubNodes.length != 0) {
                
                var activeSubNode = getActiveMenuItem(liSubNodes);
                
                if (activeSubNode != undefined) {
				
                    var el = document.createElement("div");
                    el.setAttribute("id", "main_subnav");
                    el.innerHTML = "<h5>" + activeSubNode.firstChild.firstChild.data + "</h5>";
                    
                    //document.getElementById("main").setAttribute("class", "has_submenu");
					document.getElementById("main").style.width = "420px";
					document.getElementById("main").style.paddingTop = "40px";
					document.getElementById("main").style.paddingLeft = "217px";
					document.getElementById("main").style.paddingRight = "33px";
                    
                    if (hasSubMenu(activeSubNode)) {
                    
                        ulSubNode = getChildNodesByTagName(activeSubNode, "ul");
                        liSubNodes = getChildNodesByTagName(ulSubNode[0], "li");
                        
                        if (liSubNodes.length != 0) {
                                                
                                for (var i = 0, count = liSubNodes.length; i < count; i += 1) {
                                    var currNode = liSubNodes[i];
                                    if (currNode.nodeName.toLowerCase() == "li") {
                                        var href = currNode.firstChild.attributes["href"].nodeValue;
                                        var label = currNode.firstChild.firstChild.data;
                                        var activeStyle = (isActive(label)) ? " style='color:#005d16'":"";
                                        
                                        el.innerHTML += "<a href=" + href + activeStyle + "> - " + label + "</a>";
                                    }
                                }
                        }
                    }
                    document.getElementById("main").appendChild(el);
                }
                else
                {
                    //document.getElementById("main").setAttribute("class", "no_submenu");
					document.getElementById("main").className = "has_submenu";
                }
                
                //alert(activeSubNode.firstChild.firstChild.data);
                //alert(activeSubNode.firstChild.firstChild.data + " has Submenü: " + hasSubMenu(activeSubNode));
            }
        }
        else
        {
            //document.getElementById("main").setAttribute("class", "no_submenu");
			document.getElementById("main").className = "no_submenu";
        }
    }
    else
    {
        //document.getElementById("main").setAttribute("class", "no_submenu");
		document.getElementById("main").className = "no_submenu";
    }
	//document.getElementById("main").className = "no_submenu";
    //alert(document.getElementById("content_wrapper").innerHTML);
    //alert(document.getElementById("wrapper").innerHTML);
    
    checkMetaMenu();
}
