jQuery.noConflict(); var megamenuPosition; var jkmegamenu = { effectduration: 0, delaytimer: 0, megamenulabels: [], megamenus: [], zIndexVal: 1000, $shimobj: null, addshim: function ($) {
    $(document.body).append('<IFRAME id="outlineiframeshim" src="' + (location.protocol == "https:" ? 'blank.htm' : 'about:blank') + '" style="display:none; left:0; top:0; z-index:999; position:absolute; filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)" frameBorder="0" scrolling="no"></IFRAME>')
    this.$shimobj = $("#outlineiframeshim")
}, alignmenu: function ($, e, megamenu_pos) {
    var megamenu = this.megamenus[megamenu_pos]
    var $anchor = megamenu.$anchorobj
    var $menu = megamenu.$menuobj
    var menuleft = ($(window).width() - (megamenu.offsetx - $(document).scrollLeft()) > megamenu.actualwidth) ? megamenu.offsetx : megamenu.offsetx - megamenu.actualwidth + megamenu.anchorwidth
    var menutop = megamenu.offsety + megamenu.anchorheight
    if (megamenu.$menuleftpos != 0)
        menuleft = megamenu.$menuleftpos
    $menu.css({ left: menuleft + "px", top: menutop + "px" })
    this.$shimobj.css({ width: megamenu.actualwidth + "px", height: megamenu.actualheight + "px", left: menuleft + "px", top: menutop + "px", display: "block" })
}, showmenu: function (e, megamenu_pos) {
    var megamenu = this.megamenus[megamenu_pos]
    var $menu = megamenu.$menuobj
    var $menuinner = megamenu.$menuinner
    if ($menu.css("display") == "none") {
        this.alignmenu(jQuery, e, megamenu_pos)
        $menu.css("z-index", ++this.zIndexVal)
        $menu.show(this.effectduration, function () { $menuinner.css('visibility', 'visible') })
    }
    else if ($menu.css("display") == "block" && e.type == "click") { this.hidemenu(e, megamenu_pos) }
    megamenuPosition = megamenu_pos; return false
}, hidemenu: function (e, megamenu_pos) {
    var megamenu = this.megamenus[megamenu_pos]
    var $menu = megamenu.$menuobj
    var $menuinner = megamenu.$menuinner
    $menuinner.css('visibility', 'hidden')
    if (jQuery.browser.msie && jQuery.browser.version.substr(0, 1) == 6) {
        if (megamenuPosition == megamenu_pos)
            this.$shimobj.css({ display: "none", left: 0, top: 0 })
    }
    else
    { this.$shimobj.css({ display: "none", left: 0, top: 0 }) }
    $menu.hide(this.effectduration)
}, definemenu: function (anchorid, menuid, revealtype, leftpos) { this.megamenulabels.push([anchorid, menuid, revealtype, leftpos]) }, render: function ($) {
    for (var i = 0, labels = this.megamenulabels[i]; i < this.megamenulabels.length; i++, labels = this.megamenulabels[i]) {
        if ($('#' + labels[0]).length != 1 || $('#' + labels[1]).length != 1)
            return
        this.megamenus.push({ $anchorobj: $("#" + labels[0]), $menuobj: $("#" + labels[1]), $menuinner: $("#" + labels[1]).children('ul:first-child'), revealtype: labels[2], hidetimer: null, $menuleftpos: (labels[3]) })
        var megamenu = this.megamenus[i]
        megamenu.$anchorobj.add(megamenu.$menuobj).attr("_megamenupos", i + "pos")
        megamenu.actualwidth = megamenu.$menuobj.outerWidth()
        megamenu.actualheight = megamenu.$menuobj.outerHeight()
        megamenu.offsetx = megamenu.$anchorobj.offset().left
        megamenu.offsety = megamenu.$anchorobj.offset().top
        megamenu.anchorwidth = megamenu.$anchorobj.outerWidth()
        megamenu.anchorheight = megamenu.$anchorobj.outerHeight()
        $(document.body).append(megamenu.$menuobj)
        megamenu.$menuobj.css("z-index", ++this.zIndexVal).hide()
        megamenu.$menuinner.css("visibility", "hidden")
        megamenu.$anchorobj.bind(megamenu.revealtype == "click" ? "click" : "mouseenter", function (e) {
            var menuinfo = jkmegamenu.megamenus[parseInt(this.getAttribute("_megamenupos"))]
            clearTimeout(menuinfo.hidetimer)
            HighlightDiv(parseInt(this.getAttribute("_megamenupos"))); return jkmegamenu.showmenu(e, parseInt(this.getAttribute("_megamenupos")))
        })
        megamenu.$anchorobj.bind("mouseleave", function (e) {
            var menuinfo = jkmegamenu.megamenus[parseInt(this.getAttribute("_megamenupos"))]
            if (e.relatedTarget != menuinfo.$menuobj.get(0) && $(e.relatedTarget).parents("#" + menuinfo.$menuobj.get(0).id).length == 0) {
                menuinfo.hidetimer = setTimeout(function () { jkmegamenu.hidemenu(e, parseInt(menuinfo.$menuobj.get(0).getAttribute("_megamenupos"))) }, jkmegamenu.delaytimer)
                UnhighlightDiv(parseInt(menuinfo.$menuobj.get(0).getAttribute("_megamenupos")));
            } 
        })
        megamenu.$menuobj.bind("mouseenter", function (e) {
            var menuinfo = jkmegamenu.megamenus[parseInt(this.getAttribute("_megamenupos"))]
            clearTimeout(menuinfo.hidetimer)
            HighlightDiv(parseInt(this.getAttribute("_megamenupos")));
        })
        megamenu.$menuobj.bind("mouseleave", function (e) {
            var menuinfo = jkmegamenu.megamenus[parseInt(this.getAttribute("_megamenupos"))]
            if (e.relatedTarget != null) {
                menuinfo.hidetimer = setTimeout(function () { jkmegamenu.hidemenu(e, parseInt(menuinfo.$menuobj.get(0).getAttribute("_megamenupos"))) }, jkmegamenu.delaytimer)
                UnhighlightDiv(parseInt(menuinfo.$menuobj.get(0).getAttribute("_megamenupos")));
            } 
        })
    }
    if (/Safari/i.test(navigator.userAgent)) {
        $(window).bind("resize load", function () {
            for (var i = 0; i < jkmegamenu.megamenus.length; i++) {
                var megamenu = jkmegamenu.megamenus[i]
                var $anchorisimg = (megamenu.$anchorobj.children().length == 1 && megamenu.$anchorobj.children().eq(0).is('img')) ? megamenu.$anchorobj.children().eq(0) : null
                if ($anchorisimg) {
                    megamenu.offsetx = $anchorisimg.offset().left
                    megamenu.offsety = $anchorisimg.offset().top
                    megamenu.anchorwidth = $anchorisimg.width()
                    megamenu.anchorheight = $anchorisimg.height()
                } 
            } 
        })
    }
    else {
        $(window).bind("resize", function () {
            for (var i = 0; i < jkmegamenu.megamenus.length; i++) {
                var megamenu = jkmegamenu.megamenus[i]
                megamenu.offsetx = megamenu.$anchorobj.offset().left
                megamenu.offsety = megamenu.$anchorobj.offset().top
            } 
        })
    }
    jkmegamenu.addshim($)
} 
}
jQuery(document).ready(function ($) { jkmegamenu.render($) })
