
/*******************************************************************************
*                         Peach Slider - Extended Easy Slider 1.5   		   *
*																	           *
*                    	Configure speed etc using this config file             *
*																	           *
*******************************************************************************/

$(document).ready(function()
{
	/**
	 * Panel Slider
	 */
	
	// Fade in all banners
	$(".slide").css('opacity', '0');
	$(".slide").animate({opacity:'1'},{duration:1000});
	
	// Attach hover event onto each slide for text, to slide up on mouseover and down on mouseout
	$(".slide").hover
	(
		function()
		{
			$(this).children(".text_slider").animate({top:(165-$(this).children(".text_slider").height())+"px"},{queue:false,duration:200});
		}
		,function()
		{
			$(this).children(".text_slider").animate({top:"174px"},{queue:false,duration:400});
		}
	);
	


});



(function($) {

	$.fn.peachSlider = function(options){
	
		// default configuration properties
		var defaults = {
			initialDelay:	0,
			instantStart:	false,
			fastReset:		false,
			easing:			'',
			
			prevId: 		'prevBtn',
			prevText: 		'Previous',
			nextId: 		'nextBtn',
			nextText: 		'Next',
			controlsShow:	true,
			controlsBefore:	'',
			controlsAfter:	'',
			controlsFade:	true,
			firstId: 		'firstBtn',
			firstText: 		'First',
			firstShow:		false,
			lastId: 		'lastBtn',
			lastText: 		'Last',
			lastShow:		false,
			vertical:		false,
			speed: 			800,
			auto:			false,
			pause:			2000,
			continuous:		false
		};
		
		var options = $.extend(defaults, options);
		
		this.each(function() {
			var obj = $(this);
			var s = $("li", obj).length;
			var w = $("li", obj).width();
			var h = $("li", obj).height();
			obj.width(w);
			obj.height(h);
			obj.css("overflow","hidden");
			var ts = s-1;
			var t = 0;
			$("ul", obj).css('width',s*w);
			if(!options.vertical) $("li", obj).css('float','left');
			
			if(options.controlsShow){
				var html = options.controlsBefore;
				if(options.firstShow) html += '<span id="'+ options.firstId +'"><a href=\"javascript:void(0);\">'+ options.firstText +'</a></span>';
				html += ' <span id="'+ options.prevId +'"><a href=\"javascript:void(0);\">'+ options.prevText +'</a></span>';
				html += ' <span id="'+ options.nextId +'"><a href=\"javascript:void(0);\">'+ options.nextText +'</a></span>';
				if(options.lastShow) html += ' <span id="'+ options.lastId +'"><a href=\"javascript:void(0);\">'+ options.lastText +'</a></span>';
				html += options.controlsAfter;
				$(obj).after(html);
			};
			
			$("a","#"+options.nextId).click(function(){
				animate("next",true);
			});
			$("a","#"+options.prevId).click(function(){
				animate("prev",true);
			});
			$("a","#"+options.firstId).click(function(){
				animate("first",true);
			});
			$("a","#"+options.lastId).click(function(){
				animate("last",true);
			});
			
			function animate(dir,clicked){
				var ot = t;
				switch(dir){
					case "next":
						t = (ot>=ts) ? (options.continuous ? 0 : ts) : t+1;
						break;
					case "prev":
						t = (t<=0) ? (options.continuous ? ts : 0) : t-1;
						break;
					case "first":
						t = 0;
						break;
					case "last":
						t = ts;
						break;
					default:
						break;
				};
				
				var diff = Math.abs(ot-t);
				var speed = diff*options.speed;
				var modifier = 1;
				if(!options.vertical) {
					p = (t*w*-1);
					if(p == 0 && options.fastReset == true){modifier = ts;}
					$("ul",obj).animate(
						{ marginLeft: p },
						speed/modifier, options.easing
					);
				} else {
					p = (t*h*-1);
					if(p == 0 && options.fastReset == true){modifier = ts;}
					$("ul",obj).animate(
						{ marginTop: p },
						speed/modifier, options.easing
					);
				};
				
				if(!options.continuous && options.controlsFade){
					if(t==ts){
						$("a","#"+options.nextId).hide();
						$("a","#"+options.lastId).hide();
					} else {
						$("a","#"+options.nextId).show();
						$("a","#"+options.lastId).show();
					};
					if(t==0){
						$("a","#"+options.prevId).hide();
						$("a","#"+options.firstId).hide();
					} else {
						$("a","#"+options.prevId).show();
						$("a","#"+options.firstId).show();
					};
				};
				
				if(clicked) clearTimeout(timeout);
				if(options.auto && dir=="next" && !clicked){;
					timeout = setTimeout(function(){
						animate("next",false);
					},diff*options.speed+options.pause);
				};
			
			};
			// init
			setTimeout(function(){
				var timeout;
				if(options.auto){;
					timeout = setTimeout(function(){
						animate("next",false);
					},options.pause*((options.instantStart==true)?0:1));
				};
			},options.initialDelay);
			
			if(!options.continuous && options.controlsFade){
				$("a","#"+options.prevId).hide();
				$("a","#"+options.firstId).hide();
			};
		
		});
	
	};

})(jQuery);