/* MINIFY ME FOR RELEASE */
/* CAN BE USED SITE-WIDE - SO SHOULD BE PLACED IN GLOBAL SCRIPTS ROOT AS OPPOSED TO DUPLICATED PER PRODUCT*/

/* @easyTabs - custom sape plugin intended to manage simple tab scenarios*/
jQuery.fn.easyTabs = function(customArgs){

	/* @settings */	
	var settings = {
		outerE : $(this),
		linksE : $(customArgs.tabLinks,this),
		tabsE : $(customArgs.tabItems,this),
		activeTab : customArgs.activeTab,
		cookieName : $(this).attr('id') + '_active_tab'
	};

	/* @elementsCheck - stop if elements missing, else activate (runs once on init) */
	var elementsCheck = (function(){
		if (settings.outerE.length && settings.linksE.length && settings.tabsE.length){
			settings.outerE.addClass('activated');
			settings.tabsE.addClass('inactive-tab');
		}
		else {
			return false;
		}
	}());
	
	/* @navStructure - defines tab actions (runs once on init) */
	var navStructure = (function(){
		settings.linksE.click(function(){
			/*identify*/
			settings.activeTab = $(this).attr('href');
			
			/*set cookie*/
			$.cookie(settings.cookieName, settings.activeTab);
			
			/*switch*/
			switchTab();
			return false;
		});		
	}());
	
	/* @switchTab - changes active tab view (runs on init, and can be initiated by navE click) */
	var switchTab = function(){
		/*get view from cookie if applicable*/
		var cookieActiveTab = $.cookie(settings.cookieName);
		if (cookieActiveTab !== null && cookieActiveTab !== settings.activeTab){
			settings.activeTab = cookieActiveTab;
		}
		
		/*switch active states*/
		settings.linksE.removeClass('active-tab');
		settings.tabsE.removeClass('active-tab').addClass('inactive-tab');
		settings.outerE.find('a[href=' + settings.activeTab + ']').addClass('active-tab');
		settings.outerE.find(settings.activeTab).removeClass('inactive-tab').addClass('active-tab');
	};
	
	switchTab();
	
	return this;
};
