(function($) {

	$.fn.easySlider = function(options){
	  
		// default configuration properties
		var defaults = {
			orientation: 'horizontal',
			prevId:		'prevBtn',
			prevText: 	'Previous',
			nextId: 		'nextBtn',	
			pauseId:		'pauseBtn',
			playId:		'playBtn',
			nextText: 	'Next',
			controlsShow:	true,
			controlsBefore:	'',
			controlsAfter:		'',	
			controlsFade:	true,
			firstId: 		'firstBtn',
			firstText: 		'First',
			firstShow:		false,
			lastId: 		'lastBtn',	
			lastText: 		'Last',
			lastShow:		false,				
			vertical:		true,
			speed: 			800,
			auto:			true,
			pause:			7000,
			continuous:		true
		}; 
		
		
		var options = $.extend(defaults, options);  
		var noclick = false;
		var play_btn = false;
		var pause_btn = false;
		
		
		this.each(function() {	
			
			var obj = $(this);
			var showButtons = options.controlsShow;
						
			if(this.id == "slider2")
				showButtons = false;		
						
			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',619);
			/*$("ul", obj).css('width',s*w);*/
			
			if(!options.vertical) $("li", obj).css('float','left');
						
			
			
			
			$("a","#"+options.playId).click(function(){
				
				if(noclick != true)
				{								
					$("a","#"+options.pauseId).show();
					$("a","#"+options.playId).hide();
										
					play_btn = true;
					pause_btn = false;
				
					timeout = setTimeout(function(){						
						animate("next",false);						
					},8000);				
					//animate("next",true);
				}
			});				
						
			$("a","#"+options.pauseId).click(function(){				
				
				pause_btn = true;
								
				$("a","#"+options.pauseId).hide();
				$("a","#"+options.playId).show();
				clearTimeout(timeout);	
							
			});		
			
			$("a","#"+options.nextId).click(function(){
						
				if(noclick != true)
					animate("next",true);
				
			});		
			
			$("a","#"+options.prevId).click(function(){		
				
				if(noclick != true)				
					animate("prev",true);				
			});	
			$("a","#"+options.firstId).click(function(){		
				animate("first",true);
			});				
			$("a","#"+options.lastId).click(function(){		
				animate("last",true);				
			});		
			
			function sleep(){
				noclick = false;
				$("img","#"+options.nextId).attr("src", "archivos/f-arriba.gif");
				$("img","#"+options.prevId).attr("src", "archivos/f-abajo.gif");
			}
				
			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);
					noclick = true;
						
					$("img","#"+options.nextId).attr("src", "archivos/f-arriba.gif");
					$("img","#"+options.prevId).attr("src", "archivos/f-abajo.gif");
										
					setTimeout(function(){						
						sleep();
					},2000);
					
					if(pause_btn != true)
					{
						timeout = setTimeout(function(){					
						animate("next",false);					
						},options.pause);
					}
				}
				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);
					
				$("a","#"+options.playId).hide();
			};
			if(!options.continuous && options.controlsFade){					
				$("a","#"+options.prevId).show();
				$("a","#"+options.firstId).show();								
			};			
		});	  
	};
})(jQuery);
