// Wait for the document to load before executing
$(document).ready(function(){

	// pick a default year (dont forget to update the select box control) and default type
	$('div#models-container div.models2008').addClass('active');
	$('div#models-container div.models ul li[class!=car]').hide();
	$('div#models-container div.models ul li[class=car]').show();
	 		
	// show only the currently selected year's models
	$('div#pf-controls select#pf-year').change(function(){
		var pfYear = $('div#pf-controls select#pf-year').val();
		$('div#models-container div.active').removeClass('active');
		$('div#models-container div.models'+pfYear).addClass('active');
	});
	
	// show only the currently selected vehicle type's models
	$('div#pf-controls ul#pf-type li').click(function() {
		$("div#pf-controls ul#pf-type li.active").removeClass("active");  
		$(this).addClass("active");
		$('div#models-container div.models ul li[class!='+$(this).attr('title')+']').hide();
		$('div#models-container div.models ul li[class='+$(this).attr('title')+']').show();
	});
	
	//dim the footer links until hover
	$('div#footer-links p a').css("opacity","0.3");
	$('div#footer-links p a').hover(
		function(){$(this).css("opacity","1")},
		function(){$(this).css("opacity","0.3")}		
		);

	// dynamic header nav highlighting
  var thisUrl = window.location.pathname;
	var urlVars = getUrlVars();
	var navActive;
	
	// validate the comment form when it is submitted
	//$("#contactus").validate();
	$("#contactus").validate({
		rules: {
			firstname: "required",
			lastname: "required",
			email: {
				required: true,
				email: true
			},
			remail: {
				required: true,
				email: true,
				equalTo: "#email"
			},
			subject: "required",
			comment: "required"
		},
		messages: {
			firstname: "Please enter your first name.",
			lastname: "Please enter your last name.",
			email: {
				required: "Your email address is required.",
				email: "This must be an email address."
			},
			remail: {
				required: "Confirm your email address.",
				email: "This must be an email address.",
				equalTo: "This must be the same email address you typed to the left."
			},
			subject: "Please type a subject.",
			comment: "Please enter your message."
		}
	});

	// if there's an action variable in the URL, find out what it is
	if(urlVars['action'])
	{
		switch(urlVars['action'])
		{
		// actions that indicate parts pages
		case 'getJointLocator':
		case 'searchCatalogOEM':
		case 'multiSearch':
		  navActive = 'parts';
		  break;
		// actions that indicate catalog/accessory pages
		case 'AccessoryCatalog':
		case 'searchAccessory':
		case 'MorePartInfo':
		  navActive = 'accessories';
		  break;
		// if it's a custom page
		case 'viewPage':
		 	switch(urlVars['pageid'])
		 	{
		 		// custom parts pages
		 		case '':
			 		navActive = 'parts';
		 			break;
		 		// custom accessory pages
		 		case '11231': // accessory landing page
			 		navActive = 'accessories';
		 			break;
		 		default:
		 			return false;
		 	}
		 	break;
		default:
		  return false;
		}
	}
	// otherwise, test full URLs
	else
	{
		switch(thisUrl)
		{
		// URLs that are parts-related
		case '/': // index
		case '/partlocator/index.cfm': // homepage
		  navActive = 'parts';
		  $('div#top-banner').addClass('bigger');
		  break;
		// URLs that are accessory-related
		case '/pages/index.cfm?action=viewPage&siteid=215450&pageid=11231': // custom 'accessory' page
		  navActive = 'accessories';
		  $('div#top-banner').addClass('bigger');
		  break;
		default:
		  return false;
		}
	}
	highlightNav(navActive);
	
});


// Read a page's GET URL variables and return them as an associative array.
function getUrlVars()
{
	var vars = [], hash;
	var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
	for(var i = 0; i < hashes.length; i++)
	{
		hash = hashes[i].split('=');
		vars.push(hash[0]);
		vars[hash[0]] = hash[1];
	}
	return vars;
}

// highlight the current page's navigation tab
function highlightNav(activeLink)
{
	if(activeLink)
	{
	  $('div#header ul#header-nav li#nav-'+activeLink+'').addClass('active');
	}
}
