$(document).ready(function(){
	//inital hiding of non-active panels
	tabContent();
	var tabClass = '';
	var newClass = '';
	//tabs
	$('ul#carousel-nav li a').click(function(){
		var origClass = $('ul#carousel-nav').attr('class');
		var activeLink = $(this).parent().attr('class');
		
		var clickClass = determineActiveLink(activeLink);
		
		$('ul#carousel-nav').removeClass(origClass).addClass(clickClass);
		tabClass = clickClass;
		tabContent();
		
		return false;
	});
	
	$('ul#carousel-nav li a').hover(function(){
		tabClass = $('ul#carousel-nav').attr('class');
		var activeLink = $(this).parent().attr('class');
		newClass = returnLinkClass(tabClass, activeLink);
		$('ul#carousel-nav').removeClass(tabClass).addClass(newClass);
	},function(){
		//on hover out put the not hover class back in place
		$('ul#carousel-nav').removeClass(newClass).addClass(tabClass);
	});
	
	
	//prev and next buttons
	$('.carousel .next').click(function(){
		var current = $('.slide-frame-inner-most > div.show-slide');
		current.removeClass("show-slide").addClass("hide-slide");
		if(current.next().length == 0)
		{
			$('.slide-frame-inner-most > div:first').removeClass("hide-slide").addClass("show-slide");
		}
		else
		{
			current.next().removeClass("hide-slide").addClass("show-slide");
		}
		
		x = changeTabs(0);
		
		$('ul#carousel-nav').removeClass(x["ct"]).addClass(x["nextClass"]);
		tabClass = x["nextClass"];		
		return false;
	});
	
	$('.carousel .prev').click(function(){
		var current = $('.slide-frame-inner-most > div.show-slide');
		current.removeClass("show-slide").addClass("hide-slide");
		if(current.prev().length == 0)
		{
			$('.slide-frame-inner-most > div:last').removeClass("hide-slide").addClass("show-slide");
		}
		else
		{
			current.prev().removeClass("hide-slide").addClass("show-slide");
		}
		
		x = changeTabs(1);
		
		$('ul#carousel-nav').removeClass(x["ct"]).addClass(x["nextClass"]);
		tabClass = x["nextClass"];		
		return false;
	});
});

//tab content stuff
function tabContent()
{
	//set up panel associations in an array
	var itemAssoc = new Array();
	itemAssoc["oem"] = "slide-one";
	itemAssoc["av"] = "slide-two";
	itemAssoc["eng"] = "slide-three";
	//hide all panels except the current tab's panel
	//get current tab
	var currentTab = $('ul#carousel-nav').attr('class');
	var assoc = doSubstr(currentTab);
	$('.slide-frame-inner-most > div').each(function(){
		var slideClasses = $(this).attr('class');
		var firstSlideClass = slideClasses.split(' ').slice(0,1);
		
		if(firstSlideClass != itemAssoc[assoc])
		{
			$(this).removeClass("show-slide").addClass("hide-slide");
		}
		else
		{
			$(this).removeClass("hide-slide").addClass("show-slide");
		}
	}); 
}

function determineActiveLink(activeLink)
{
	var al = doSubstr(activeLink);
	switch(al)
		{
			case 'oem':
				var clickClass = 'oem-on-no-hover';
				break;
			case 'av':
				var clickClass = 'av-on-no-hover';
				break;
			case 'eng':
				var clickClass = 'eng-on-no-hover';
				break;
			default:
		}
		
		return clickClass;
}

function changeTabs(direction)
{
	//get the current tab to display
		var ct = $('ul#carousel-nav').attr('class');
		var liArray = new Array();
		var liNums = new Array();
		$('ul#carousel-nav li').each(function(i){
			var d = $(this).attr('class');
			liArray[i] = d;
			liNums[doSubstr(d)] = i;
		});
		
		var cc = doSubstr(ct);
		var sNum = liNums[cc];
		//get the next tab number
		var count = liArray.length;
		if(direction == 0)
		{
			sNum = sNum + 1;
			var wrap = 0;
		}
		else if (direction == 1)
		{
			sNum = sNum - 1;
			var wrap = count - 1;
		}
		
		if(liArray[sNum] == undefined)
		{
			var newLi = liArray[wrap];
		}
		else
		{
			var newLi = liArray[sNum];
		}
		
		var nextClass = determineActiveLink(newLi);
		
		var x = new Array();
		x["ct"] = ct;
		x["nextClass"] = nextClass;
		return x;
}
//create the class name for the hover
function returnLinkClass(tabClass, activeLink)
{
	var t = doSubstr(tabClass);
	var a = doSubstr(activeLink);
	
	if(t == a)
	{
		return tabClass;
	}
	else
	{
		var x = t+"-on-"+a+"-hover";
		return x;
	}
}

function doSubstr(l)
{
	var y = l.substr(0,3);
	
	if(y == 'av-')
	{
		y = 'av';
	}
	else
	{
		y = y;
	}
	
	return y;
}
