﻿//SuckerTree Horizontal Menu (Sept 14th, 06)
    //By Dynamic Drive: http://www.dynamicdrive.com/style/

    var menuids = ["eXantMenu"] //Enter id(s) of SuckerTree UL menus, separated by commas

    function buildsubmenus_horizontal() {
        var log = "";
        for (var i = 0; i < menuids.length; i++) {
            var ultags = document.getElementById(menuids[i]).getElementsByTagName("ul");
            for (var t = 0; t < ultags.length; t++) {
                if (ultags[t].parentNode.parentNode.id == menuids[i]) { //if this is a first level submenu
                    ultags[t].style.top = ultags[t].parentNode.offsetHeight + "px"; //dynamically position first level submenus to be height of main menu item
                    if (ultags[t].parentNode.getElementsByTagName("a").length > 0)
                        ultags[t].parentNode.getElementsByTagName("a")[0].className = "mainfoldericon";
                    else if (ultags[t].parentNode.getElementsByTagName("span").length > 0)
                        ultags[t].parentNode.getElementsByTagName("span")[0].className = "mainfoldericon";
                    var litags = ultags[t].getElementsByTagName("li");
                    var maxLength = 0;
                    var maxLength_a = 0;
                    for (var j = 0; j < litags.length; j++) {
                        if (litags[j].parentNode == ultags[t]) {
                            var text = jQuery("span", litags[j]).text();
                            var textLength = measure(text.replace('\n', '').trim())
                            var text_a = jQuery("a", litags[j]).text();
                            var textLength_a = measure(text_a.replace('\n', '').trim())
                            
                            if (maxLength < textLength)
                                maxLength = textLength;
                            if (maxLength_a < textLength_a)
                                maxLength_a = textLength_a;
                        }
                    }
                    for (var j = 0; j < litags.length; j++) {
                        if (litags[j].parentNode == ultags[t]) {
                            jQuery("span", litags[j]).attr("width", maxLength + "px");
                            if(jQuery("span", litags[j]).text() != "")
                            {
                                jQuery("img", litags[j]).css("width", (maxLength - measure(jQuery("span", litags[j]).text())) + "px");
                            }
                            jQuery("a", litags[j]).attr("width", maxLength_a + "px");
                            if (maxLength != 0 && maxLength > maxLength_a)
                                jQuery(litags[j]).css("width", (maxLength + 5) + "px");
                            else
                                jQuery(litags[j]).css("width", (maxLength_a + 5) + "px");
                        }
                    }
                }
                else { //else if this is a sub level menu (ul)
                    if (ultags[t - 1].getElementsByTagName("a").length > 0) {
                        ultags[t].style.left = ultags[t - 1].getElementsByTagName("a")[0].offsetWidth + "px"; //position menu to the right of menu item that activated it    	            
                        if (ultags[t].parentNode.getElementsByTagName("a").length > 0)
                            ultags[t].parentNode.getElementsByTagName("a")[0].className = "subfoldericon";
                        else if (ultags[t].parentNode.getElementsByTagName("span").length > 0)
                            ultags[t].parentNode.getElementsByTagName("span")[0].className = "subfoldericon";
                    }                    

                    var litags = ultags[t-1].getElementsByTagName("li");
                    var maxLength = 0;
                    var maxLength_a = 0;
                    for (var j = 0; j < litags.length; j++) {
                        if (litags[j].parentNode == ultags[t-1]) {
                            var text = jQuery("span:first", litags[j]).text();
                            var textLength = measure(text.replace('\n', '').trim())
                            //log += "span:" + text + "-" + textLength + "\n";
                            var text_a = jQuery("a:first", litags[j]).text();
                            var textLength_a = measure(text_a.replace('\n', '').trim())
                            //log += "a:" + text_a + "-" + textLength_a + "\n";

                            try {
                                var textLength_i = jQuery("img:first", litags[j]).width()

                                if (textLength_i != 0) {
                                    textLength = textLength + textLength_i;
                                    textLength_a = textLength_a + textLength_i;
                                }
                            }
                            catch (err) { }

                            if (maxLength < textLength)
                                maxLength = textLength;
                            if (maxLength_a < textLength_a)
                                maxLength_a = textLength_a;
                        }
                    }
                    for (var j = 0; j < litags.length; j++) {
                        if (litags[j].parentNode == ultags[t-1]) {
                            jQuery("span", litags[j]).attr("width", maxLength + "px");
                            if (jQuery("span", litags[j]).text() != "") {
                                jQuery("img", litags[j]).css("width", (maxLength - measure(jQuery("span", litags[j]).text())) + "px");
                            }
                            jQuery("a", litags[j]).attr("width", maxLength_a + "px");
                            if (maxLength != 0 && maxLength > maxLength_a)
                                jQuery(litags[j]).css("width", (maxLength + 10) + "px");
                            else
                                jQuery(litags[j]).css("width", (maxLength_a + 10) + "px");
                        }
                    }
                    jQuery(ultags[t]).css("left", jQuery(ultags[t]).parent().width() + "px");
                    
                }
                ultags[t].parentNode.onmouseover = function() {
                    this.getElementsByTagName("ul")[0].style.visibility = "visible";
                }
                ultags[t].parentNode.onmouseout = function() {
                    this.getElementsByTagName("ul")[0].style.visibility = "hidden";
                }
            }
        }

        //alert(log);
    }

    if (window.addEventListener)
        window.addEventListener("load", buildsubmenus_horizontal, false);
    else if (window.attachEvent)
        window.attachEvent("onload", buildsubmenus_horizontal);

    function measure(text) {
        jQuery("#measure").css("display", "block");
        var len = 0;
        var q = document.getElementById('measure')        
        q.innerHTML = text
        len = q.offsetWidth;
        jQuery("#measure").css("display", "none");
        return len;
    }

