/* JQuery Slider
 * - James Kassemi 2008 (jkassemi@gmail.com)
 */

$.fn.extend({
    mouseWithin: function(event){
        return (event.pageX > this.left && event.pageX < this.right
            && event.pageY > this.top && event.pageY < this.bottom)
    },

    slider: function(){
        var slider = null;
        var presenter = this[0];
        var container = $("#container", this)[0];
        var velocity = 2;
        var pos = 0;

	var containerWidth = 0;
	$("img", this).css("float", "left").css("margin", "2px").each(function(){
		containerWidth += this.offsetWidth + 4;
	});

	container.style.width = containerWidth + 'px';

        function slide(){
            pos -= velocity;

            if(pos > 0){
                pos = 0;
            }else{
		var p = (-1 * container.offsetWidth + presenter.offsetWidth);
		if(pos < p)
			pos = p
            }

            container.style.left = pos + "px";
        }

        this.mousemove(function(e){
            var fromCenter = (e.pageX - presenter.offsetLeft) - (presenter.offsetWidth / 2);
	    if(fromCenter > -40 && fromCenter < 40)
		velocity = 0;
	    else
	        velocity = fromCenter / 5;
        });

        this.bind("mouseenter", function(e){
            velocity = velocity * -1;
            slider = setInterval(slide, 50);
        });

        this.bind("mouseleave", function(e){
            clearInterval(slider);
        });
    }
})

