/* * 	Easy Slider 1.5 - jQuery plugin *	written by Alen Grakalic	 *	http://cssglobe.com/post/4004/easy-slider-15-the-easiest-jquery-plugin-for-sliding * *	Copyright (c) 2009 Alen Grakalic (http://cssglobe.com) *	Dual licensed under the MIT (MIT-LICENSE.txt) *	and GPL (GPL-LICENSE.txt) licenses. * *	Built for jQuery library *	http://jquery.com * */ /* *	markup example for $("#slider").easySlider(); *	 * 	<div id="slider"> *		<ul> *			<li><img src="images/01.jpg" alt="" /></li> *			<li><img src="images/02.jpg" alt="" /></li> *			<li><img src="images/03.jpg" alt="" /></li> *			<li><img src="images/04.jpg" alt="" /></li> *			<li><img src="images/05.jpg" alt="" /></li> *		</ul> *	</div> * */(function($) {	$.fn.easySlider = function(options){	  		// default configuration properties		var defaults = {						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;										if(!options.vertical) {					p = (t*w*-1);					$("ul",obj).animate(						{ marginLeft: p }, 						speed					);								} else {					p = (t*h*-1);					$("ul",obj).animate(						{ marginTop: p }, 						speed					);									};								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			var timeout;			if(options.auto){;				timeout = setTimeout(function(){					animate("next",false);				},options.pause);			};							if(!options.continuous && options.controlsFade){									$("a","#"+options.prevId).hide();				$("a","#"+options.firstId).hide();							};									});	  	};})(jQuery);
