

var topNavigation={

effectduration: 0, //duration of animation, in milliseconds
delaytimer: 300, //delay after mouseout before menu should be hidden, in milliseconds

//No need to edit beyond here
megamenulabels: [],
megamenus: [], //array to contain each block menu instances
zIndexVal: 10, //starting z-index value for drop down menu
jQueryshimobj: null,

addshim:function(jQuery){
	this.jQueryshimobj=jQuery("#outlineiframeshim")
},

alignmenu:function(jQuery, e, megamenu_pos){
	var megamenu=this.megamenus[megamenu_pos]
	var jQueryanchor=megamenu.jQueryanchorobj
	var jQuerymenu=megamenu.jQuerymenuobj
	var menuleft=(jQuery(window).width()-(megamenu.offsetx-jQuery(document).scrollLeft())>megamenu.actualwidth)? megamenu.offsetx : megamenu.offsetx-megamenu.actualwidth+megamenu.anchorwidth //get x coord of menu
	//var menutop=(jQuery(window).height()-(megamenu.offsety-jQuery(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
	jQuerymenu.css({left:menuleft+"px", top:menutop+"px"})
	this.jQueryshimobj.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 jQuerymenu=megamenu.jQuerymenuobj
	var jQuerymenuinner=megamenu.jQuerymenuinner
	if (jQuerymenu.css("display")=="none"){
		this.alignmenu(jQuery, e, megamenu_pos)
		
		jQuerymenu.show(this.effectduration, function(){
			jQuerymenuinner.css('visibility', 'visible')
			
			
		})
	}
	else if (jQuerymenu.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 jQuerymenu=megamenu.jQuerymenuobj
	var jQuerymenuinner=megamenu.jQuerymenuinner
	jQuerymenuinner.css('visibility', 'hidden')
	this.jQueryshimobj.css({display:"none", left:0, top:0})
	jQuerymenu.hide(this.effectduration)
	
	
},

definemenu:function(anchorid, menuid, revealtype){
	this.megamenulabels.push([anchorid, menuid, revealtype])
	
},

render:function(jQuery){
	for (var i=0, labels=this.megamenulabels[i]; i<this.megamenulabels.length; i++, labels=this.megamenulabels[i]){
		if (jQuery('#'+labels[0]).length!=1 || jQuery('#'+labels[1]).length!=1) //if one of the two elements are NOT defined, exist
			return
		this.megamenus.push({jQueryanchorobj:jQuery("#"+labels[0]), jQuerymenuobj:jQuery("#"+labels[1]), jQuerymenuinner:jQuery("#"+labels[1]).children('ul:first-child'), revealtype:labels[2], hidetimer:null})
		var megamenu=this.megamenus[i]	
		megamenu.jQueryanchorobj.add(megamenu.jQuerymenuobj).attr("_megamenupos", i+"pos") //remember index of this drop down menu
		megamenu.actualwidth=megamenu.jQuerymenuobj.outerWidth()
		megamenu.actualheight=megamenu.jQuerymenuobj.outerHeight()
		megamenu.offsetx=megamenu.jQueryanchorobj.offset().left
		megamenu.offsety=megamenu.jQueryanchorobj.offset().top
		megamenu.anchorwidth=megamenu.jQueryanchorobj.outerWidth()
		megamenu.anchorheight=megamenu.jQueryanchorobj.outerHeight()
		jQuery(document.body).append(megamenu.jQuerymenuobj) //move drop down menu to end of document
		megamenu.jQuerymenuinner.css("visibility", "hidden")
		megamenu.jQueryanchorobj.bind(megamenu.revealtype=="click"? "click" : "mouseenter", function(e){
			var menuinfo=topNavigation.megamenus[parseInt(this.getAttribute("_megamenupos"))]
			clearTimeout(menuinfo.hidetimer) //cancel hide menu timer
			return topNavigation.showmenu(e, parseInt(this.getAttribute("_megamenupos")))
		})
		megamenu.jQueryanchorobj.bind("mouseleave", function(e){
			var menuinfo=topNavigation.megamenus[parseInt(this.getAttribute("_megamenupos"))]
			if (e.relatedTarget!=menuinfo.jQuerymenuobj.get(0) && jQuery(e.relatedTarget).parents("#"+menuinfo.jQuerymenuobj.get(0).id).length==0){ //check that mouse hasn't moved into menu object
				menuinfo.hidetimer=setTimeout(function(){ //add delay before hiding menu
					topNavigation.hidemenu(e, parseInt(menuinfo.jQuerymenuobj.get(0).getAttribute("_megamenupos")))
				}, topNavigation.delaytimer)
			}
		})
		megamenu.jQuerymenuobj.bind("mouseenter", function(e){
			var menuinfo=topNavigation.megamenus[parseInt(this.getAttribute("_megamenupos"))]
			clearTimeout(menuinfo.hidetimer) //cancel hide menu timer
		})
		megamenu.jQuerymenuobj.bind("click mouseleave", function(e){
			var menuinfo=topNavigation.megamenus[parseInt(this.getAttribute("_megamenupos"))]
			menuinfo.hidetimer=setTimeout(function(){ //add delay before hiding menu
				topNavigation.hidemenu(e, parseInt(menuinfo.jQuerymenuobj.get(0).getAttribute("_megamenupos")))
			}, topNavigation.delaytimer)
		})
	} //end for loop
	if(/Safari/i.test(navigator.userAgent)){ //if Safari
		jQuery(window).bind("resize load", function(){
			for (var i=0; i<topNavigation.megamenus.length; i++){
				var megamenu=topNavigation.megamenus[i]
				var jQueryanchorisimg=(megamenu.jQueryanchorobj.children().length==1 && megamenu.jQueryanchorobj.children().eq(0).is('img'))? megamenu.jQueryanchorobj.children().eq(0) : null
				if (jQueryanchorisimg){ //if anchor is an image link, get offsets and dimensions of image itself, instead of parent A
					megamenu.offsetx=jQueryanchorisimg.offset().left
					megamenu.offsety=jQueryanchorisimg.offset().top
					megamenu.anchorwidth=jQueryanchorisimg.width()
					megamenu.anchorheight=jQueryanchorisimg.height()
				}
			}
		})
	}
	else{
		jQuery(window).bind("resize", function(){
			for (var i=0; i<topNavigation.megamenus.length; i++){
				var megamenu=topNavigation.megamenus[i]	
				megamenu.offsetx=megamenu.jQueryanchorobj.offset().left
				megamenu.offsety=megamenu.jQueryanchorobj.offset().top
			}
		})
	}
	topNavigation.addshim(jQuery)
	
}
					
	

}

jQuery(document).ready(function(jQuery){
	
	jQuery('.category-item').click(function() {
		window.location=jQuery(this).attr('rel');
	});
	jQuery('.top-links').hover(function() {
		jQuery('.navigation-menu').css('z-index','10');	
	});
	jQuery('.contact-link').hover(function() {						
						jQuery(this).removeClass("contact-link");
						jQuery(this).addClass("contact-link-on");
						jQuery('#navigation-menu-2').hide();
						jQuery('#navigation-menu-3').hide();
						jQuery('#navigation-menu-4').hide();
						
					},function(){
						jQuery(this).removeClass("contact-link-on");
						jQuery(this).addClass("contact-link");
						
					});
	jQuery('.glasses-link').hover(function() {	
						jQuery(this).removeClass("glasses-link");
						jQuery(this).addClass("glasses-link-on");
						jQuery('#navigation-menu-1').hide();
						jQuery('#navigation-menu-3').hide();
						jQuery('#navigation-menu-4').hide();
						
					},function(){
						jQuery(this).removeClass("glasses-link-on");
						jQuery(this).addClass("glasses-link");
						
					});
	jQuery('.sunglasses-link').hover(function() {	
						jQuery(this).removeClass("sunglasses-link");
						jQuery(this).addClass("sunglasses-link-on");
						jQuery('#navigation-menu-2').hide();
						jQuery('#navigation-menu-1').hide();
						jQuery('#navigation-menu-4').hide();
						
	},function(){
						jQuery(this).removeClass("sunglasses-link-on");
						jQuery(this).addClass("sunglasses-link");
						
	});
	jQuery('.solutions-link').hover(function() {	
						jQuery(this).removeClass("solutions-link");
						jQuery(this).addClass("solutions-link-on");
						jQuery('#navigation-menu-1').hide();
						jQuery('#navigation-menu-2').hide();
						jQuery('#navigation-menu-3').hide();
						jQuery('#navigation-menu-4').hide();
						
},function(){
						jQuery(this).removeClass("solutions-link-on");
						jQuery(this).addClass("solutions-link");
						
});
	jQuery('.accessories-link').hover(function() {	
						jQuery(this).removeClass("accessories-link");
						jQuery(this).addClass("accessories-link-on");
						jQuery('#navigation-menu-1').hide();
						jQuery('#navigation-menu-2').hide();
						jQuery('#navigation-menu-3').hide();
						jQuery('#navigation-menu-4').hide();
						
},function(){
						jQuery(this).removeClass("accessories-link-on");
						jQuery(this).addClass("accessories-link");
						
});
	jQuery('.help-link').hover(function() {	
						jQuery(this).removeClass("help-link");
						jQuery(this).addClass("help-link-on");
						jQuery('#navigation-menu-2').hide();
						jQuery('#navigation-menu-3').hide();
						jQuery('#navigation-menu-1').hide();
						
},function(){
						jQuery(this).removeClass("help-link-on");
						jQuery(this).addClass("help-link");
						
});
	jQuery('.acuvue-box-link').hover(function() {					
						jQuery(this).removeClass("acuvue-box-link");
						jQuery(this).addClass("acuvue-box-link-on");						
},function(){
						jQuery(this).removeClass("acuvue-box-link-on");
						jQuery(this).addClass("acuvue-box-link");
});
	jQuery('.dailies-box-link').hover(function() {
						jQuery(this).removeClass("dailies-box-link");
						jQuery(this).addClass("dailies-box-link-on");						
},function(){
						jQuery(this).removeClass("dailies-box-link-on");
						jQuery(this).addClass("dailies-box-link");
});
	jQuery('.optix-box-link').hover(function() {
						jQuery(this).removeClass("optix-box-link");
						jQuery(this).addClass("optix-box-link-on");						
},function(){
						jQuery(this).removeClass("optix-box-link-on");
						jQuery(this).addClass("optix-box-link");
});
	jQuery('.freshlook-box-link').hover(function() {	
						jQuery(this).removeClass("freshlook-box-link");
						jQuery(this).addClass("freshlook-box-link-on");						
},function(){
						jQuery(this).removeClass("freshlook-box-link-on");
						jQuery(this).addClass("freshlook-box-link");
});
	jQuery('.bnl-box-link').hover(function() {				
						jQuery(this).removeClass("bnl-box-link");
						jQuery(this).addClass("bnl-box-link-on");						
},function(){
						jQuery(this).removeClass("bnl-box-link-on");
						jQuery(this).addClass("bnl-box-link");
});
	jQuery('.proclear-box-link').hover(function() {				
						jQuery(this).removeClass("proclear-box-link");
						jQuery(this).addClass("proclear-box-link-on");						
},function(){
						jQuery(this).removeClass("proclear-box-link-on");
						jQuery(this).addClass("proclear-box-link");
});
	jQuery('.top-links').click(function() {
		window.location=jQuery(this).attr('rel');
	});
	topNavigation.render(jQuery)
	
})
