(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: 			1500,
			auto:			false,
			pause:			4000,
			continuous:		false, 
			numeric: 		false,
			numericId: 		'controls'
		}; 
		
var options=$.extend(defaults,options);this.each(function(){var f=$(this);var s=$("li",f).length;var w=$("li",f).width();var h=$("li",f).height();var g=true;f.width(w);f.height(h);f.css("overflow","hidden");var j=s-1;var t=0;$("ul",f).css('width',s*w);if(options.continuous){$("ul",f).prepend($("ul li:last-child",f).clone().css("margin-left","-"+w+"px"));$("ul",f).append($("ul li:nth-child(2)",f).clone());$("ul",f).css('width',(s+1)*w)};if(!options.vertical)$("li",f).css('float','left');if(options.controlsShow){var k=options.controlsBefore;if(options.numeric){k+='<ol id="'+options.numericId+'"></ol>'}else{if(options.firstShow)k+='<span id="'+options.firstId+'"><a href=\"javascript:void(0);\">'+options.firstText+'</a></span>';k+=' <span id="'+options.prevId+'"><a href=\"javascript:void(0);\">'+options.prevText+'</a></span>';k+=' <span id="'+options.nextId+'"><a href=\"javascript:void(0);\">'+options.nextText+'</a></span>';if(options.lastShow)k+=' <span id="'+options.lastId+'"><a href=\"javascript:void(0);\">'+options.lastText+'</a></span>'};k+=options.controlsAfter;$(f).after(k)};if(options.numeric){for(var i=0;i<s;i++){$(document.createElement("li")).attr('id',options.numericId+(i+1)).html('<a rel='+i+' href=\"javascript:void(0);\">'+(i+1)+'</a>').appendTo($("#"+options.numericId)).click(function(){animate($("a",$(this)).attr('rel'),true)})}}else{$("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 setCurrent(i){i=parseInt(i)+1;$("li","#"+options.numericId).removeClass("current");$("li#"+options.numericId+i).addClass("current")};function adjust(){if(t>j)t=0;if(t<0)t=j;if(!options.vertical){$("ul",f).css("margin-left",(t*w*-1))}else{$("ul",f).css("margin-left",(t*h*-1))}g=true;if(options.numeric)setCurrent(t)};function animate(a,b){if(g){g=false;var c=t;switch(a){case"next":t=(c>=j)?(options.continuous?t+1:j):t+1;break;case"prev":t=(t<=0)?(options.continuous?t-1:0):t-1;break;case"first":t=0;break;case"last":t=j;break;default:t=a;break};var d=Math.abs(c-t);var e=d*options.speed;if(!options.vertical){p=(t*w*-1);$("ul",f).animate({marginLeft:p},{queue:false,duration:e,complete:adjust})}else{p=(t*h*-1);$("ul",f).animate({marginTop:p},{queue:false,duration:e,complete:adjust})};if(!options.continuous&&options.controlsFade){if(t==j){$("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(b)clearTimeout(l);if(options.auto&&a=="next"&&!b){;l=setTimeout(function(){animate("next",false)},d*options.speed+options.pause)}}};var l;if(options.auto){;l=setTimeout(function(){animate("next",false)},options.pause)};if(options.numeric)setCurrent(0);if(!options.continuous&&options.controlsFade){$("a","#"+options.prevId).hide();$("a","#"+options.firstId).hide()}})}})(jQuery);	