function listOnEvent(obj) {
    var container = $(obj);
    container.select("li").each(function (item, i) {
        item.observe("mouseover", function () {
            item.addClassName("on");
        });

        item.observe("mouseout", function () {
            item.removeClassName("on");
        });
    });
}

function GNBInit() {
    if ($("subGNB")) {
        tabdropdown.init("subGNB");
    }
}
var tabdropdown = {
    disappeardelay: 200,
    disablemenuclick: false,
    enableiframeshim: 1,

    dropmenuobj: null, ie: document.all, firefox: document.getElementById && !document.all, previousmenuitem: null,
    currentpageurl: window.location.href.replace("http://" + window.location.hostname, "").replace(/^\//, ""),

    getposOffset: function (what, offsettype) {
        var totaloffset = (offsettype == "left") ? what.offsetLeft : what.offsetTop;
        var parentEl = what.offsetParent;
        while (parentEl != null) {
            totaloffset = (offsettype == "left") ? totaloffset + parentEl.offsetLeft : totaloffset + parentEl.offsetTop;
            parentEl = parentEl.offsetParent;
        }
        return totaloffset;
    },

    showhide: function (obj, e, obj2) {
        if (this.ie || this.firefox)
        //this.dropmenuobj.style.left=this.dropmenuobj.style.top="0"
            if (e.type == "click" && obj.visibility == hidden || e.type == "mouseover") {
                if (obj2.parentNode.className.indexOf("default") == -1)
                    obj2.parentNode.className = "selected"
                obj.visibility = "visible"
            }
            else if (e.type == "click")
                obj.visibility = "hidden"
        },

        iecompattest: function () {
            return (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body
        },

        clearbrowseredge: function (obj, whichedge) {
            var edgeoffset = 0
            if (whichedge == "rightedge") {
                var windowedge = this.ie && !window.opera ? this.standardbody.scrollLeft + this.standardbody.clientWidth - 15 : window.pageXOffset + window.innerWidth - 15
                this.dropmenuobj.contentmeasure = this.dropmenuobj.offsetWidth
                if (windowedge - this.dropmenuobj.x < this.dropmenuobj.contentmeasure)
                    edgeoffset = this.dropmenuobj.contentmeasure - obj.offsetWidth
            }
            else {
                var topedge = this.ie && !window.opera ? this.standardbody.scrollTop : window.pageYOffset
                var windowedge = this.ie && !window.opera ? this.standardbody.scrollTop + this.standardbody.clientHeight - 15 : window.pageYOffset + window.innerHeight - 18
                this.dropmenuobj.contentmeasure = this.dropmenuobj.offsetHeight
                if (windowedge - this.dropmenuobj.y < this.dropmenuobj.contentmeasure) {
                    edgeoffset = this.dropmenuobj.contentmeasure + obj.offsetHeight
                    if ((this.dropmenuobj.y - topedge) < this.dropmenuobj.contentmeasure)
                        edgeoffset = this.dropmenuobj.y + obj.offsetHeight - topedge
                }
                this.dropmenuobj.firstlink.style.borderTopWidth = (edgeoffset == 0) ? 0 : "1px"
            }
            return edgeoffset
        },

        dropit: function (obj, e, dropmenuID) {
            if (this.dropmenuobj != null) {
                this.dropmenuobj.style.visibility = "hidden"
                if (this.previousmenuitem != null && this.previousmenuitem != obj) {
                    if (this.previousmenuitem.parentNode.className.indexOf("default") == -1)
                        this.previousmenuitem.parentNode.className = ""
                }
            }
            this.clearhidemenu()
            if (this.ie || this.firefox) {
                obj.onmouseout = function () { tabdropdown.delayhidemenu(obj) }
                obj.onclick = function () { return !tabdropdown.disablemenuclick }
                this.dropmenuobj = document.getElementById(dropmenuID)
                this.dropmenuobj.onmouseover = function () { tabdropdown.clearhidemenu() }
                this.dropmenuobj.onmouseout = function (e) { tabdropdown.dynamichide(e, obj) }
                this.dropmenuobj.onclick = function () { tabdropdown.delayhidemenu(obj) }
                this.showhide(this.dropmenuobj.style, e, obj)
                //this.dropmenuobj.x=this.getposOffset(obj, "left")
                //this.dropmenuobj.y=this.getposOffset(obj, "top")
                //this.dropmenuobj.style.left=this.dropmenuobj.x-this.clearbrowseredge(obj, "rightedge")+"px"
                //this.dropmenuobj.style.top=this.dropmenuobj.y-this.clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+1+"px"
                this.previousmenuitem = obj
                this.positionshim()
            }
        },

        contains_firefox: function (a, b) {
            while (b.parentNode)
                if ((b = b.parentNode) == a)
                    return true;
            return false;
        },

        dynamichide: function (e, obj2) {
            var evtobj = window.event ? window.event : e
            if (this.ie && !this.dropmenuobj.contains(evtobj.toElement))
                this.delayhidemenu(obj2)
            else if (this.firefox && e.currentTarget != evtobj.relatedTarget && !this.contains_firefox(evtobj.currentTarget, evtobj.relatedTarget))
                this.delayhidemenu(obj2)
        },

        delayhidemenu: function (obj2) {
            this.delayhide = setTimeout(function () { tabdropdown.dropmenuobj.style.visibility = 'hidden'; if (obj2.parentNode.className.indexOf('default') == -1) obj2.parentNode.className = '' }, this.disappeardelay) //hide menu
        },

        clearhidemenu: function () {
            if (this.delayhide != "undefined")
                clearTimeout(this.delayhide)
        },

        positionshim: function () {
            if (this.enableiframeshim && typeof this.shimobject != "undefined") {
                if (this.dropmenuobj.style.visibility == "visible") {
                    this.shimobject.style.width = this.dropmenuobj.offsetWidth + "px"
                    this.shimobject.style.height = this.dropmenuobj.offsetHeight + "px"
                    //this.shimobject.style.left=this.dropmenuobj.style.left
                    //this.shimobject.style.top=this.dropmenuobj.style.top
                }
                this.shimobject.style.display = (this.dropmenuobj.style.visibility == "visible") ? "block" : "none"
            }
        },

        hideshim: function () {
            if (this.enableiframeshim && typeof this.shimobject != "undefined")
                this.shimobject.style.display = 'none'
        },

        isSelected: function (menuurl) {
            var menuurl = menuurl.replace("http://" + menuurl.hostname, "").replace(/^\//, "")
            return (tabdropdown.currentpageurl == menuurl)
        },

        init: function (menuid, dselected) {
            this.standardbody = (document.compatMode == "CSS1Compat") ? document.documentElement : document.body //create reference to common "body" across doctypes
            var menuitems = document.getElementById(menuid).getElementsByTagName("a")
            for (var i = 0; i < menuitems.length; i++) {
                if (menuitems[i].getAttribute("rel")) {
                    var relvalue = menuitems[i].getAttribute("rel")
                    document.getElementById(relvalue).firstlink = document.getElementById(relvalue).getElementsByTagName("a")[0]
                    menuitems[i].onmouseover = function (e) {
                        var event = typeof e != "undefined" ? e : window.event
                        tabdropdown.dropit(this, event, this.getAttribute("rel"))
                    }
                }
                if (dselected == "auto" && typeof setalready == "undefined" && this.isSelected(menuitems[i].href)) {
                    menuitems[i].parentNode.className += " selected default"
                    var setalready = true
                }
                else if (parseInt(dselected) == i)
                    menuitems[i].parentNode.className += " selected default"
            }
        }

    }

