/************************************************
*   scrollerMoo v.0                             *
*   Http: WwW.developer.ps/moo/scrollermoo      *
*   Dirar Abu Kteish dirar@zanstudio.com        *
*   The code was inspired from jd.gallery.js    *
*    and jd.gallery.css. WebSite:               *
*    smoothgallery.jondesign.net                *
/***********************************************/

var scrollerMoo = new Class({
    initialize: function(element, options) {
		this.setOptions({
			steps: 3,
			wrapperClass: 'div.scrollerMooWrapper',
			scrollerItemSelector: 'div.scrollerMooItem'
	    }, options);
	    this.currentPos = 0;
	    this.scrollerItems = null;
	    this.scrollerElement = element;
	    this.wrapperDiv = element.getElement(this.options.wrapperClass);
	    this.scrollEff = new Fx.Scroll(this.wrapperDiv, {wait: false,duration: 1000,
                                        offset: {'x': -3, 'y': 0},
                                        transition: Fx.Transitions.Quad.easeInOut});
	    this.initScrollerMoo();

	},
	initScrollerMoo: function() {
	    var ele = this.scrollerElement;
		var options = this.options;
		this.scrollerItems = this.wrapperDiv.getElements(options.scrollerItemSelector);
		if (this.scrollerItems.length > 4)
		{
			new Element('a').addClass('left').addEvent(
				'click',function(){this.scrollToItem(-1);}.bind(this)).injectBefore(this.wrapperDiv);
			new Element('a').addClass('right').addEvent(
				'click',function(){this.scrollToItem(1);}.bind(this)).injectAfter(this.wrapperDiv);
		}
	},
	scrollToItem: function(dir) {
        var move = dir * this.options.steps;
        var index = (this.scrollerItems[this.currentPos+move]) ? this.currentPos+move : ((this.currentPos+move) > 0) ? this.scrollerItems.length-1 : 0;
        //alert(index);
        if(((index + 1) >= this.scrollerItems.length) && (index % this.options.steps) != 0){return;}
        this.scrollEff.toElement(this.scrollerItems[index]);
        this.currentPos = index;
	}

});
scrollerMoo.implement(new Options);