
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 p=$anchor.position();
var menuleft=p.left;
var menutop=megamenu.offsety+megamenu.anchorheight
$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)
}
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')
this.$shimobj.css({display:"none",left:0,top:0})
$menu.hide(this.effectduration)
},
definemenu:function(anchorid,menuid,revealtype){
this.megamenulabels.push([anchorid,menuid,revealtype])
},
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})
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)
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)
}
})
megamenu.$menuobj.bind("mouseenter",function(e){
var menuinfo=jkmegamenu.megamenus[parseInt(this.getAttribute("_megamenupos"))]
clearTimeout(menuinfo.hidetimer)
})
megamenu.$menuobj.bind("click mouseleave",function(e){
var menuinfo=jkmegamenu.megamenus[parseInt(this.getAttribute("_megamenupos"))]
menuinfo.hidetimer=setTimeout(function(){
jkmegamenu.hidemenu(e,parseInt(menuinfo.$menuobj.get(0).getAttribute("_megamenupos")))
},jkmegamenu.delaytimer)
})
}
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($)
})
