"use strict";

/*globals $, jQuery, window, document */

(function () {
	var navWrapper, mainNavItems, subnavBlocks, subnavWrapper, mainContent, selectedNav;
	
	function stopIt(e) {
		e.stopPropagation();
		e.preventDefault();
	}
	
	function toggleNavOn(link) {
		mainNavItems.removeClass('on');
		if (undefined !== link) {
			$(link).addClass('on');			
		}
	}
	
	function mainNavRollover() {
		var temp;
		
		subnavWrapper.hover(stopIt, stopIt);
		
		mainNavItems
			.mouseout(stopIt)
			.mouseover(function () {
				subnavBlocks.removeAttr('style').removeClass('on');
								
				temp = this.className;
				temp = temp.replace(' on', '').replace(' context', '');
				
				if ($('.' + temp + '_subnav').length) {
					if (subnavWrapper.is(':hidden')) {
						subnavWrapper.fadeIn();
					}				
				
					$('.' + temp + '_subnav').show();
				} else {
					if (subnavWrapper.is(':visible')) {
						subnavWrapper.fadeOut();
					}	
				}
				
				toggleNavOn(this);
			});
			
		mainContent.mouseover(function () {
			subnavBlocks.removeAttr('style');
			
			if (subnavWrapper.hasClass('on')) {
				selectedNav.show();
			} else {
				subnavWrapper.fadeOut();
			}	
			toggleNavOn();
		});	
	}
	
	function checkEmailAddress() {
		if ($('.email_collector').length) {
			var wrap = $('.email_collector');
			
			wrap.find('form').bind('submit', function () {
				var emailVal, emailExp = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
				
				emailVal = $(this).find('input[name="email"]').val();
				
				if (!emailExp.test(emailVal)) {
					wrap.find('p').text('You did not enter a valid email address');
					return false;
				}	
			});
		}
	}
	
	$(document).ready(function () {
		navWrapper = $('#nav');
		mainNavItems = navWrapper.find('ul:first').find('li').find('a');
		subnavWrapper = $('#subnav');
		subnavBlocks = subnavWrapper.find('ul');
		mainContent = $('#columns');
		
		if (subnavWrapper.hasClass('on')) {
			selectedNav = subnavBlocks.eq(subnavBlocks.index(subnavWrapper.find('ul.on')));
		}
		
		//$('#sign_up_modal').jqm();
		
		mainNavRollover();
		checkEmailAddress();
	});
	
}());