﻿//dependants: jquery.js, jquery.scrollTo.js
$.fn.slider = function(next, prev, options){
	var self = this;
	var timeout;
	var over = false;
	var direction = "+";
	var settings =  $.extend({
		event_on: "mouseover",
		event_off: "mouseout",
		speed: 100,
		axis: "x",
		delay: 250
	}, options);
	var onAfter = function(){};
	var scroll = function(){
		self.scrollTo(
			direction + "=40px",
			settings.speed*5,
			{ 
				axis: settings.axis,
				easing: "easeInQuad",
				queue: false,
				onAfter: (onAfter = function(){
					if(!over) self.scrollTo( direction + "=20px", settings.speed, { 
							axis: settings.axis,
							easing: "easeOutQuad",
							queue: false
						});
					else {
						self.scrollTo( direction + "=20px", settings.speed, { 
							axis: settings.axis,
							easing: "linear",
							onAfter: onAfter,
							queue: false
						});
						out = false;
					}
				})
			}
		)
	};
	var delay = function(dir){
		direction = dir;
		timeout = window.setTimeout(function(direction){
				if(!over) return;
				scroll();
			}, settings.delay);
	};
	
	$(next)
		[settings.event_on](function(){ over = true; delay("+"); })
		[settings.event_off](function(){ over = false; });
	$(prev)
		[settings.event_on](function(){ over = true; delay("-"); })
		[settings.event_off](function(){ over = false; });
	self.scrollTo( 0, { axis: settings.axis });
	return this;
}


