/*
	jQuery Coda-Slider v1.1 - http://www.ndoherty.com/coda-slider
	
	Copyright (c) 2007 Niall Doherty
	
	Inspired by the clever folks at http://www.panic.com/coda
	Many thanks to Gian Carlo Mingati. Coda-Slider is a heavily modified version of his slideViewer, which can be found at  http://www.gcmingati.net/wordpress/wp-content/lab/jquery/imagestrip/imageslide-plugin.html
	
	Requirements:
	-  jQuery 1.2 ... available via  http://www.jquery.com
	-  jQuery easing plugin (1.2) ... available via  http://gsgd.co.uk/sandbox/jquery/easing/
	- jQuery easing compatability plugin ... available via  http://gsgd.co.uk/sandbox/jquery/easing/
	- CSS included in index.html
*/
var j = 0;
jQuery(function(){
	jQuery("div.csw"+j).prepend("<p class='loading"+j+"' style='color:#FFFFFF; width:954px;' align='center'><div class='loading_container' align='center'><div class='loading_bg'><img src='images/loading_bg.png' width='75' height='85' border='0' /></div><div class='loader' align='center'><img src='images/ajax-loader.gif' alt='loading...'/ ></div></p>");
	
});

jQuery.fn.codaSlider = function(settings) {
	 settings = jQuery.extend({
     easeFunc: "expoinout",
     easeTime: 750,
     toolTip: false
  }, settings);
	return this.each(function(){
		
		var container = jQuery(this);
			
		// Remove the preloader gif...
		container.find("p.loading"+j).remove();
		container.find("div.loading_container").remove();
		container.find("div.loading_bg").remove();
		container.find("div.loader").remove();
		// Self-explanatory...
		container.removeClass("csw"+j).addClass("stripViewer"+j);
		// Get the width of a panel, set from CSS...
		var panelWidth = container.find("div.panel"+j).width();
		//var panelWidth = '948';
		// panelCount gives us a count of the panels in the container...
		var panelCount = container.find("div.panel"+j).size();
		// Calculate the width of all the panels when lined up end-to-end...
		var stripViewerWidth = panelWidth*panelCount;
		// Use the above width to specify the CSS width for the panelContainer element...
		container.find("div.panelContainer"+j).css("width" , stripViewerWidth);
		// Set the navWidth as a multiple of panelCount to account for margin-right on each li
		var navWidth = panelCount*2;
		
		/*
		// Specify the current panel.
		// If the loaded URL has a hash (cross-linking), we're going to use that hash to give the slider a specific starting position...
		if (location.hash && parseInt(location.hash.slice(1)) <= panelCount) {
			var cPanel = parseInt(location.hash.slice(1));
			var cnt = - (panelWidth*(cPanel - 1));
			jQuery(this).find("div.panelContainer"+j).css({ left: cnt });
		// Otherwise, we'll just set the current panel to 1...
		} else { 
			var cPanel = 1;
		};
		*/
		// Create appropriate nav
		/*
		container.each(function(i) {
			var r = 0;
			// Create the Left and Right arrows
			jQuery(this).after("<div class='stripNavL" + j + " section_left' id='stripNavL" + j + "'><a href='#'><img src=\"images/button_left.png\" width=\"49\" height=\"68\" border=\"0\" /></a><\/div>");
			jQuery(this).after("<div class='stripNavR" + j + " section_right' id='stripNavR" + j + "'><a href='#'><img src=\"images/button_right.png\" width=\"49\" height=\"68\" border=\"0\" /></a></a><\/div>");
			
			// Create the Tabs
			jQuery(this).before("<div class='stripNav" + j + "' id='stripNav" + j + "'><ul><\/ul><\/div>");
			jQuery(this).find("div.panel"+j).each(function(n) {
						jQuery("div#stripNav" + j + " ul").append("<li class='tab"+j+"" + (n+1) + "'><a href='#"+j+"" + (n+1) + "'>" + jQuery(this).attr("title") + "<\/a><\/li>");												
			});
				
			// Tab nav
			
			jQuery("div#stripNav" + j + " a").each(function(z) {
				// Figure out the navWidth by adding up the width of each li
				navWidth += jQuery(this).parent().width();
				// What happens when a nav link is clicked
				jQuery(this).bind("click", function() {
					jQuery(this).addClass("current").parent().parent().find("a").not(jQuery(this)).removeClass("current"); // wow!
					var cnt = - (panelWidth*z);
					cPanel = z + 1;
					jQuery(this).parent().parent().parent().next().find("div.panelContainer"+j).animate({ left: cnt}, settings.easeTime, settings.easeFunc);
				});
			});
			
			
			// Left nav
			jQuery("div#stripNavL" + j + " a").click(function(){
				//alert(j);
				if (cPanel == 1) {
					var cnt = - (panelWidth*(panelCount - 1));
					cPanel = panelCount;
					jQuery(this).parent().parent().find("div.stripNav" + j + " a.current").removeClass("current").parent().parent().find("div.stripNav" + j + " li:last a").addClass("current");
				} else {
					cPanel -= 1;
					var cnt = - (panelWidth*(cPanel - 1));
					jQuery(this).parent().parent().find("div.stripNav" + j + " a.current").removeClass("current").parent().prev().find("a").addClass("current");
				};
				jQuery(this).parent().parent().find("div.panelContainer"+j).animate({ left: cnt}, settings.easeTime, settings.easeFunc);
				// Change the URL hash (cross-linking)...
				location.hash = cPanel;
				return false;
			});
			
			
			
			// Right nav
			jQuery("div#stripNavR" + j + " a").click(function(){
				if (cPanel == panelCount) {
					var cnt = 0;
					cPanel = 1;
					jQuery(this).parent().parent().find("div.stripNav" + j + " a.current").removeClass("current").parent().parent().find("a:eq(0)").addClass("current");
				} else {
					var cnt = - (panelWidth*cPanel);
					cPanel += 1;
					jQuery(this).parent().parent().find("div.stripNav" + j + " a.current").removeClass("current").parent().next().find("a").addClass("current");
				};
				jQuery(this).parent().parent().find("div.panelContainer"+j).animate({ left: cnt}, settings.easeTime, settings.easeFunc);
				// Change the URL hash (cross-linking)...
				location.hash = cPanel;
				return false;
			});
			
			// Same-page cross-linking
			/*
			JOHN ---
				
				Crosslinking allows you to make a nav inside the page and have it go to another section. the tabs HAVE to be active to do so, as that thats what it actually triggers. So just hide the nav if you don't want it
			
			
			jQuery("a.cross-link").click(function(){
				jQuery(this).parents().find(".stripNav ul li a:eq(" + (parseInt(jQuery(this).attr("href").slice(1)) - 1) + ")").trigger('click');
			r++;
			
			});	
			
			// Set the width of the nav using the navWidth figure we calculated earlier. This is so the nav can be centred above the slider
			jQuery("div#stripNav" + j).css("width" , navWidth);
			
			// Specify which tab is initially set to "current". Depends on if the loaded URL had a hash or not (cross-linking).
			if (location.hash && parseInt(location.hash.slice(1)) <= panelCount) {
				jQuery("div#stripNav" + j + " a:eq(" + (location.hash.slice(1) - 1) + ")").addClass("current");
			} else {
				jQuery("div#stripNav" + j + " a:eq(0)").addClass("current");
			}
			/*
					/// AUTO CLICK RIGHT
					var cnt = 0;
					cPanel = 0;
					jQuery(this).parent().parent().find("div.stripNav a.current").removeClass("current").parent().parent().find("a:eq(0)").addClass("current");
					jQuery(this).parent().parent().find("div.panelContainer").animate({ left: cnt}, settings.easeTime, settings.easeFunc);
					// Change the URL hash (cross-linking)...
					location.hash = cPanel;
			
		});
		*/
		j++;
  });
};