window.addEvent('domready',function(){
	//var scroller = new PMC.Scroller();
	$each($$(".scroll-container") , function(ele){
		scroller = new PMC.Scroller(ele); 
		ele.scroller = scroller;
	});

});


PMC.Scroller = new Class({
	settings : {
		identifiers : {
			scrollList : '.scroll-list'
		},
		fx : {
			duration : 600,
			transition : Fx.Transitions.Quint.easeInOut,
			link : 'chain'
		}
	},
	page : null,
	element : null,
	btnPrev : null,
	btnNext : null,
	fx : null,
	ele:null,
	size : null,
	initialize : function(ele){
		this.ele = ele;
		var _scroll = this;
		var obj = ele.getElement(this.settings.identifiers.scrollList);
		this.offSet = parseInt(obj.getElement('li').getStyle('width'));
		this.size = obj.getElements('li.scroll-list-item').length;
		this.fx = new Fx.Morph(obj.getElement('ul'),this.settings.fx);
		obj.addEvent('click',function(){
			_scroll.animate();
		});
		this.page = 0;
		
		//Initialize scrolling buttons
		this.btnPrev = new PMC.ScrollerBtn(this.ele.getElement('.form-nav-btn-prev'),this);
		this.btnNext = new PMC.ScrollerBtn(this.ele.getElement('.form-nav-btn-next'),this);
		
		//Add the navigation circles to the DOM
		var btn = this.ele.getElement(".form-nav-buttons");
		for (var x=0;x<this.size;x++){
			var _o = new Element("div",{
				'class':'form-nav-btn'+(x==0?" selected":"")/*,
				'id':'scroll-btn-'+x
				*/
			});
			btn.adopt(_o);
		}
		
		//Center the scroll navigation controls
		this.ele.getElement('div.scroll-navigation').setStyle("margin-left",(parseInt(obj.getStyle('width'))-73-73-52-52-24*this.size)/2)
	},
	shift : function(dir){
		if (dir=='prev'){
			if (this.page==0){
				return;
			}
			this.ele.getElements('.form-nav-btn')[this.page].removeClass("selected");
			//$("scroll-btn-"+this.page).removeClass("selected");
			this.page--;
			this.btnNext.enable();
		} else if (dir=='next'){
			if (this.page==(this.size-1)){
				return;
			}
			this.ele.getElements('.form-nav-btn')[this.page].removeClass("selected");
			//$("scroll-btn-"+this.page).removeClass("selected");
			this.page++;
			this.btnPrev.enable();
		}
		this.animate();
		this.ele.getElements('.form-nav-btn')[this.page].addClass("selected");
		//$("scroll-btn-"+this.page).addClass("selected");
		
		if (this.page==0){
			this.btnPrev.disable();
		}
		if (this.page==(this.size-1)){
			this.btnNext.disable();
		}
	},
	animate : function(){
		this.fx.start({
			'margin-left':(-this.offSet)*this.page
		});
	}
});








/*
PMC.Scroller = new Class({
	settings : {
		identifiers : {
			scrollList : '.scroll-list'
		},
		fx : {
			duration : 600,
			transition : Fx.Transitions.Quint.easeInOut,
			link : 'chain'
		}
	},
	page : null,
	element : null,
	btnPrev : null,
	btnNext : null,
	fx : null,
	size : null,
	initialize : function(){
		var _scroll = this;
		var obj = $$("div"+this.settings.identifiers.scrollList)[0];
		this.offSet = parseInt($$("div"+this.settings.identifiers.scrollList)[0].getElement('li').getStyle('width'));
		this.size = obj.getElements('li.scroll-list-item').length;
		this.fx = new Fx.Morph(obj.getElement('ul'),this.settings.fx);
		obj.addEvent('click',function(){
			_scroll.animate();
		});
		this.page = 0;
		
		//Initialize scrolling buttons
		this.btnPrev = new PMC.ScrollerBtn("form-nav-btn-prev",this);
		this.btnNext = new PMC.ScrollerBtn("form-nav-btn-next",this);
		
		//Add the navigation circles to the DOM
		var btn = $("form-nav-buttons");
		for (var x=0;x<this.size;x++){
			var _o = new Element("div",{
				'class':'form-nav-btn'+(x==0?" selected":""),
				'id':'scroll-btn-'+x
			});
			btn.adopt(_o);
		}
		
		//Center the scroll navigation controls
		$('scroll-container').getElement('div.scroll-navigation').setStyle("margin-left",(parseInt($$("div.scroll-list")[0].getStyle('width'))-73-73-52-52-24*this.size)/2)
	},
	shift : function(dir){
		if (dir=='prev'){
			if (this.page==0){
				return;
			}
			$("scroll-btn-"+this.page).removeClass("selected");
			this.page--;
			this.btnNext.enable();
		} else if (dir=='next'){
			if (this.page==(this.size-1)){
				return;
			}
			$("scroll-btn-"+this.page).removeClass("selected");
			this.page++;
			this.btnPrev.enable();
		}
		this.animate();
		$("scroll-btn-"+this.page).addClass("selected");
		
		if (this.page==0){
			this.btnPrev.disable();
		}
		if (this.page==(this.size-1)){
			this.btnNext.disable();
		}
	},
	animate : function(){
		this.fx.start({
			'margin-left':(-this.offSet)*this.page
		});
	}
});

*/


/*
 * Add mouse hover interactivity to an element represented by "obj"
 */
PMC.ScrollerBtn = new Class({
	Extends : PMC.Button,
	initialize : function(obj,manager){
		this.parent(obj,manager);
		this.status = 0;
	},
	attachEvents : function(){
		var _this = this;
		this.element.addEvents({
			'click':function(el){
				_this.manager.shift(this.get("rel"),this);
			}
		});
	}
});

