// PLnav.js - A jQuery Plugin
// Version 1.0.1
// Written by Andy Tennison

(function($) {
	$.fn.PLnav = function(options) {
		var opts = $.extend({}, $.fn.PLnav.defaults, options);
		return this.each(function() {
			$nav = [];
			$('body').append('<div class="mask"><iframe></iframe></div>');
			$('.mask').css({'height':$(document).height(), 'display':'none', 'opacity':0})
			
			// used to preLoad nav bacground to prevent fickering
			$('body').append('<div id="navPreload"><div class="tl"><div class="tr"></div></div><div class="ml"><div class="mr"></div></div><div class="bl"><div class="br"></div></div></div>');

			var badBrowser = (/MSIE ((5\.5)|6|7)/.test(navigator.userAgent) && navigator.platform == "Win32");
						
			var curIndex = 0;
			var prevIndex = 0;
			var $thisNavList = $(this);
			
			/*$(this).children('li').each(function(){
				$(this).find('a:first').wrapInner('<span class="linkMask"></span>');
			})*/

			$(this).children('li:has(div)').each(function(i){
				
				$nav[i] = new navItem();
				function navItem(id, w){
					this.id = id,
					this.w = w
				};
				
				$nav[i].id = $(this);
								
				//$nav[i].id.find('a:first').wrapInner('<span class="linkMask"></span>');
				$nav[i].id.find('.subNav').wrap('<div class="menu-holder"><div class="ml"><div class="mr"></div></div></div>')
				$nav[i].id.find('.menu-holder').prepend('<div class="tl"><div class="tr"/></div>');
				$nav[i].id.find('.menu-holder').append('<div class="bl"><div class="br"/></div>');

				$($nav[i].id).hoverIntent(function(e){
					curIndex = i+1;
					fadeOthers();
					$(this).addClass('menu');
					
					if($('.mask').css('opacity') == 0){
						showMask();
					};
				},function(e){
					curIndex = -1;
					fadeOthers();
					$($nav[i].id).removeClass('menu')
				});
				
				
				// accessible version
				$($nav[i].id).children('a').bind('focus',function(e){
					curIndex = i+1;
					//fadeOthers();
					$thisNavList.find('li.menu').removeClass('menu');
					$($nav[i].id).addClass('menu');
					
					if($('.mask').css('opacity') != 1){
						showMask();
					}					
				})
				
				$('#closeMenu').bind('focus',function(e){
					curIndex = -1;
					//fadeOthers();
					
					hideMask();
					$thisNavList.find('li.menu').removeClass('menu');
				});
				
				
				
				
			});
			
			// mouse over top nav
			$(this).children('li#nav_home').hoverIntent(function(){
				if($('.mask').css('opacity') != 0){
					hideMask();
				}
			},function(){
				// nothing on roll off
			});
			
			
			// mouse out - hide menu 
			$(this).hoverIntent(function(e){
				// nothing on roll over
			},function(e){
				hideMask()
			});
			
			
			function showMask(){
				$('.mask').css({'display':'block'}).fadeTo(200,0.5);
			};
			
			function hideMask(){
				$('.mask').fadeTo(200, 0, function(){
					$(this).css({'display':'none', 'opacity':0});
				});
				
				showOthers();
			}
			
			function fadeOthers(){
				if (!badBrowser){
					$('.nav').children('li').css('opacity',0.5);
					$('.nav').children('li:eq('+curIndex+')').css('opacity',1);
				};
			};
			
			function showOthers(){
				if (!badBrowser){
					$('.nav').children('li').css('opacity',1);
				};
			};
			
			
		});


		
	}; // end plugin PLnav


// end of closure
})(jQuery);

$.fn.PLnav.defaults = {
	//duration: 800
};






