/*	DetailSlider.js
	This file requires jQuery
	
	Parameters to 'dSlider.start':
		none
	
	Example:
		dSlider.start();
	
History:
mm/dd/yyyy	Author	Description
----------	------	----------------------------------------------------
07/21/2009	AL		Created
*/

var dSlider = {
	// Internal working variables
	IsIE6: false,
	Animation: true,
	TotalImages: 0,
	MaxVisible: 10,
	FirstImage: 1,
	LastImage: 10,
	SlidePosition: 1,
	ScrollMode: "shuttle",	// 'default','shuttle'
	
	init : function () {
		// Initialize default options
		if($.browser.msie) { 
			var ua = navigator.userAgent;  // the navigator's user agent string
			if ( ua.match(/MSIE (\d+(?:\.\d+)+(?:b\d*)?)/) == 'MSIE 6.0,6.0') { dSlider.IsIE6 = true; }
			// Keep IE6 from "flickering" when things are modified in the dom.
			if (dSlider.IsIE6) try {document.execCommand("BackgroundImageCache", false, true);} catch(e){};
		}
	},
	
	start : function () {
		dSlider.TotalImages = $('#DetailSlider ul li').size();
		// Hover effect
		$("#DetailSlider ul li").hover(
			function () {
				if (dSlider.Animation) {
					$(this).addClass("m-over");
					$(this).children('img').animate({opacity: "show", top: "-6em"}, "fast");
				} else {
					$(this).addClass("m-over");
					$(this).children('img').toggleClass("showimg");
				}
				
			},
			function () {
				if (dSlider.Animation) {
					$(this).removeClass("m-over");
					$(this).children('img').animate({opacity: "hide", top: "-6em"}, "fast");
				} else {
					$(this).removeClass("m-over");
					$(this).children('img').toggleClass("showimg");
				}
			}
		);
		// LI - Click
		$("#DetailSlider ul li").click(function(){
			var curPos =  parseInt( $(this).children('span').text() , 10 );
			dSlider.selectOne(curPos);
			if (dSlider.ScrollMode=="shuttle") { dSlider.shuttlecenter(); }
			return false;
		});
		// IMG - Click
		$("#DetailSlider ul li img").click(function(){
			var curPos =  parseInt( $(this).parent().children('span').text() , 10 );
			dSlider.selectOne(curPos);
			if (dSlider.ScrollMode=="shuttle") { dSlider.shuttlecenter(); }
			return false;
		});
		// Next,Prev - Click
		if (dSlider.ScrollMode=="shuttle") {
			// 'shuttle' scroll mode
			$(".nav-next img").click(function(){ dSlider.shuttlenext(); });
			$(".nav-prev img").click(function(){ dSlider.shuttleprev(); });
		} else {
			// 'default' scroll mode
			$(".nav-next img").click(function(){ dSlider.scrollnext(); });
			$(".nav-prev img").click(function(){ dSlider.scrollprev(); });
		}
		if (dSlider.ScrollMode=="shuttle") { dSlider.shuttlecenter(); }
	},
	
	unselectAll : function () {
		$("#DetailSlider ul li").removeClass("selected");
	},

	selectOne : function (nPos) {
		var largePath = $("#DetailSlider ul li").eq(nPos-1).children('a').attr("href");
		var largeAlt = $("#DetailSlider ul li").eq(nPos-1).children('a').attr("title");
		dSlider.unselectAll();										// Unselect everything
		$("#DetailSlider ul li").eq(nPos-1).addClass("selected");	// Select just this one
		$("#imgcheck").attr({ src: largePath, alt: largeAlt });		// Update image
		dSlider.SlidePosition = nPos;
	},
	
	quickSelect : function (nPos) {
		dSlider.selectOne(nPos);
		dSlider.shuttlecenter();
	},
	
	sliceView : function () {
		$("#DetailSlider ul li").addClass("hideme");
		$("#DetailSlider ul li").slice(dSlider.FirstImage-1, dSlider.LastImage).removeClass("hideme");
		if (dSlider.ScrollMode=="shuttle") {
			if (dSlider.SlidePosition == 1) { $(".nav-prev").addClass("hideprev"); } else { $(".nav-prev").removeClass("hideprev"); }
			if (dSlider.SlidePosition == dSlider.TotalImages) { $(".nav-next").addClass("hidenext"); } else { $(".nav-next").removeClass("hidenext"); }
		} else {
			if (dSlider.FirstImage > 1) { $(".nav-prev").removeClass("hideprev"); } else { $(".nav-prev").addClass("hideprev"); }
			if (dSlider.LastImage-1 >= dSlider.TotalImages) { $(".nav-next").addClass("hidenext"); } else { $(".nav-next").removeClass("hidenext"); }
		}
	},
	
	shuttlecenter : function() {
		dSlider.FirstImage = Math.max(1,(dSlider.SlidePosition-Math.round(dSlider.MaxVisible/2)+1));
		dSlider.LastImage = Math.min( dSlider.FirstImage + (dSlider.MaxVisible-1), dSlider.TotalImages );
		if (dSlider.LastImage == dSlider.TotalImages) {
			// At the end
			dSlider.FirstImage = Math.max( 1, (dSlider.LastImage-dSlider.MaxVisible)+1 );
		}
		dSlider.sliceView();
	},

	// 'shuttle' scroll mode
	shuttlenext : function() {
		if (dSlider.SlidePosition < dSlider.TotalImages) {
			dSlider.selectOne(dSlider.SlidePosition + 1);	// Select the next one
			dSlider.shuttlecenter();
		}
	},
	shuttleprev : function() {
		if (dSlider.SlidePosition > 1) {
			dSlider.selectOne(dSlider.SlidePosition - 1);	// Select the previous one
			dSlider.shuttlecenter();
		}
	},
	
	// 'default' scroll mode
	scrollnext : function () {
		if (dSlider.TotalImages > dSlider.MaxVisible && dSlider.LastImage-1 < dSlider.TotalImages) {
			dSlider.FirstImage = dSlider.FirstImage + 1;
			dSlider.LastImage = dSlider.FirstImage + (dSlider.MaxVisible);
			dSlider.sliceView();
		}
	},
	scrollprev : function () {
		if (dSlider.TotalImages > dSlider.MaxVisible && dSlider.FirstImage > 1) {
			dSlider.FirstImage = dSlider.FirstImage - 1;
			dSlider.LastImage = dSlider.FirstImage + (dSlider.MaxVisible);
			dSlider.sliceView();
		}
	}

}; 

