text: /* jQuery Mega Menu v1.02
  * Last updated: June 29th, 2009. This notice must stay intact for usage 
  * Author: JavaScript Kit at http://www.javascriptkit.com/
  * Visit http://www.javascriptkit.com/script/script2/jScale/ for full source code
  */
  
  //jQuery.noConflict(); -- causing error on load.
  
  var jkmegamenu={
  
  effectduration: 300, //duration of animation, in milliseconds
  delaytimer: 200, //delay after mouseout before menu should be hidden, in milliseconds
  menutop: 68,
  
  //No need to edit beyond here
  megamenulabels: [],
  megamenus: [], //array to contain each block menu instances
  zIndexVal: 10001, //starting z-index value for drop down menu
  $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
  	// edited -- to make the menu ALWAYS display on the center
      // var menuleft= (($(window).width()-megamenu.actualwidth)/2) //get x coord of menu
      var menuleft=megamenu.offsetx-20 //get x coord of menu
      //var menuleft=($(window).width()-(megamenu.offsetx-$(document).scrollLeft())>megamenu.actualwidth)? megamenu.offsetx : megamenu.offsetx-megamenu.actualwidth+megamenu.anchorwidth //get x coord of menu
  	//var menutop=($(window).height()-(megamenu.offsety-$(document).scrollTop()+megamenu.anchorheight)>megamenu.actualheight)? megamenu.offsety+megamenu.anchorheight : megamenu.offsety-megamenu.actualheight
  	//var menutop=megamenu.offsety+megamenu.anchorheight  //get y coord of menu
  	var menutop=this.menutop+megamenu.anchorheight  //get y coord of menu
  	$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)
          // edited -- change the $menu.show to $menu.slideDown instead
  		$menu.slideDown(this.effectduration, function(){
  			$menuinner.css('visibility', 'visible')
  		})
  	}
  	else if ($menu.css("display")=="block" && e.type=="click"){ //if menu is hidden and this is a "click" event (versus "mouseout")
  		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: "-999em", top:0})
      // edited -- change the $menu.hide to $menu.fadeOut instead 
      //$menu.hide(this.effectduration)
      $menu.fadeOut()
  },
  
  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) //if one of the two elements are NOT defined, exist
  			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") //remember index of this drop down menu
  		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) //move drop down menu to end of document
  		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) //cancel hide menu timer
  			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){ //check that mouse hasn't moved into menu object
  				menuinfo.hidetimer=setTimeout(function(){ //add delay before hiding menu
  					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) //cancel hide menu timer
  		})
  		megamenu.$menuobj.bind("click mouseleave", function(e){
  			var menuinfo=jkmegamenu.megamenus[parseInt(this.getAttribute("_megamenupos"))]
  			menuinfo.hidetimer=setTimeout(function(){ //add delay before hiding menu
  				jkmegamenu.hidemenu(e, parseInt(menuinfo.$menuobj.get(0).getAttribute("_megamenupos")))
  			}, jkmegamenu.delaytimer)
  		})
  	} //end for loop
  	if(/Safari/i.test(navigator.userAgent)){ //if Safari
  		$(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){ //if anchor is an image link, get offsets and dimensions of image itself, instead of parent A
  					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($)
  })