// JavaScript Document

	var lineas = 12;
	var salto = 15 * lineas;
	
	function pos( elem )
	{
		var p={};
		if( typeof(elem) != Object ) elem = $(elem)
		p.Top = Position.positionedOffset(elem)[1];
		p.Left = Position.positionedOffset(elem)[0];
		return p;
	}
	function medidas ( elem )
	{
		var div = $(elem);
		var dimDiv = div.getDimensions();
		var d = {};
		d.width = parseInt(dimDiv.width);
		d.height = parseInt(dimDiv.height);	
		return d;
	}
	
	function desplazamientoCaja(direccion)
	{
		var desplazamiento = salto;
		var clippingHW = medidas('divCategorias');
		var clippingP = pos( 'divCategorias' )
		var cajaScrollHW = medidas('divMenuCategorias');
		var cajaScrollP = pos('divMenuCategorias');
		
		if ( clippingHW.height > cajaScrollHW.height ) return 0;
		
		var final = 0;
		var sobra = 0;
		var falta = 0;

		if ( direccion > 0 ) //Arriba
		{
			falta = cajaScrollP.Top;
			final = Math.round( falta*-1 / lineas )
		}
		
		if ( direccion < 0   ) //Abajo
		{
			sobra = cajaScrollHW.height - Math.abs(cajaScrollP.Top) - clippingHW.height;
			final = Math.round( sobra / lineas )
		}
		
		if ( final * lineas < salto )
				desplazamiento = final * lineas;
				
		if ( direccion < 0 ) desplazamiento = desplazamiento * -1;	

		txt = "desplazamiento: " + desplazamiento + "<br>";
		txt += "direccion: " + direccion + "<br>";
		txt += "cajaScrollP.Top: " + cajaScrollP.Top + "<br>";
		txt += "cajaScrollHW.height: " + cajaScrollHW.height + "<br>";
		txt += "clippingHW.height: " + clippingHW.height + "<br>";		
		txt += "cajaScrollP.Top + desplazamiento: " + (cajaScrollP.Top + desplazamiento) + "<br>";
		txt += "falta: " + falta + "<br>";
		txt += "sobra: " + sobra + "<br>";		
		txt += "final: " + final + "<br>";
						
		$('pie').innerHTML = txt;

			
		return desplazamiento;
	}
	
	var CheckScroll = {
		
		Top: function(event) {
			div = $('divMenuCategorias');
			desp = desplazamientoCaja(-1);
			this.start(div,desp);
  		},
		Down: function(event) {
			div = $('divMenuCategorias');
			desp = desplazamientoCaja(1);
			this.start(div,desp);
  		},		
		start: function (div,desp)
		{
			new Effect.Move(div, {y:desp,duration: .3 } );
		}
		
	};

	Event.observe('divUPcategorias', 'click', CheckScroll.Down.bindAsEventListener(CheckScroll));
	Event.observe('divDOWNcategorias', 'click', CheckScroll.Top.bindAsEventListener(CheckScroll));
