/**
 * @author guille
 * Agosto 2007
 */
var ScrollerVertical= new Class({
	options:{
		comienzo:0,
		actual:0,
		offset:150,
		div_movible:null,
		boton_next:null,
		boton_prev:null,
		tab_menu:null
	},
	initialize: function(options){
		this.setOptions(options);
		this.offset=this.options.offset;
		this.div_movible=$(this.options.div_movible);
		this.boton_next=$(this.options.boton_next);
		this.boton_prev=$(this.options.boton_prev);
		this.tamanio_singleton=0;
		//this.options.tab_menu.addEvent('click',this.scroll_reset.bind(this));
		this.actual=this.options.actual;
		//console.log(this.div_movible);
		this.scroll=new Fx.Scroll(this.div_movible, {
			wait: false,
			duration: 3000,
			transition: Fx.Transitions.Back.easeOut
		});
		//console.log(this.tamanio_div());
		if(this.tamanio_div() > 0){ //if the scroll is needed
			this.boton_next.addEvent('click',this.scroll_siguiente.bind(this));
			this.boton_prev.addEvent('click',this.scroll_anterior.bind(this));
			if(this.div_movible) this.scroll_a(this.options.comienzo);
		}
		else{
			this.boton_next.setStyle('display','none');
			this.boton_prev.setStyle('display','none');
		}
	},
	scroll_reset: function(){
		this.scroll_a(0);
	},
	scroll_siguiente: function(){
		var suma=this.actual+this.offset;
		////console.log(suma);
		//console.log(this.tamanio_div());		
		if(suma <= (this.tamanio_div()-this.offset)){
			//console.log(suma);
			this.scroll.scrollTo(0,this.actual+this.offset)
			this.actual+=this.offset;
		}
		else{// if(suma < this.tamanio_div()){
			this.scroll.toBottom()
			this.actual=this.tamanio_div();//-this.offset;
		}
	},
	scroll_anterior: function(){
		var resta=this.actual-this.offset;
		if(resta > 0){
			//console.log(resta);
			this.scroll.scrollTo(0,this.actual-this.offset)
			this.actual-=this.offset;
		}
		else{// if(resta > ((-1)*this.offset)){
			this.scroll.toTop()
			this.actual=0;
		}
	},
	scroll_a: function(y){
		if(y >= 0 && y<= this.tamanio_div()){
			this.scroll.scrollTo(0,y)
			this.actual=y;
		}
	},
	tamanio_div:function(){
		if(this.tamanio_singleton == 0){
			this.tamanio_singleton = $(this.div_movible).getFirst().getCoordinates().height-$(this.div_movible).getCoordinates().height;
		}
		return this.tamanio_singleton;
	}	
});
ScrollerVertical.implement(new Options);