var tup = null, tdown = null, stillup = 0, stilldown = 0;
var despl = 15;
var velocidad = 1;
var min = 1;
var max = 20;
var ns, left, right, OffsetX, OffsetY, cogido = '', tamOut, tamIn;

function init(){
  ns = (document.layers) ? true : false;
  if (ns){
    max = parseInt(document.layers['OutLayer'].document.width, 10) - parseInt(document.layers['OutLayer'].document.layers['InLayer1'].document.width, 10) - 2;
	tamOut = parseInt(document.layers['OutLayer'].document.width, 10)
	tamIn = parseInt(document.layers['OutLayer'].document.layers['InLayer1'].document.width, 10)
	if (max < 0){
	  document.layers['FlechaUp'].visibility = 'show';
	  document.layers['FlechaDown'].visibility = 'show';
	  document.layers['OutLayer'].document.layers['InLayer2'].visibility = 'show';
	  document.onmousedown = mouseDown
	  document.onmouseup = mouseUp
	  document.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP)
	}
	else{
	  document.layers['FlechaUp'].visibility = 'hide';
	  document.layers['FlechaDown'].visibility = 'hide';
	  document.layers['OutLayer'].document.layers['InLayer2'].visibility = 'hide';
	}
  }
  else{
    max = parseInt(document.all['OutLayer'].clientWidth,10) - parseInt(document.all['InLayer1'].clientWidth,10);
	tamOut = parseInt(document.all['OutLayer'].clientWidth, 10);
	tamIn = parseInt(document.all['InLayer1'].clientWidth,10);
	if (max < 0){
	  document.all['FlechaUp'].style.visibility = 'visible';
	  document.all['FlechaDown'].style.visibility = 'visible';
	  document.all['InLayer2'].style.visibility = 'visible';
	  document.onmousedown = mouseDown
	  document.onmouseup = mouseUp
	}
	else{
	  document.all['FlechaUp'].style.visibility = 'hidden';
	  document.all['FlechaDown'].style.visibility = 'hidden';
	  document.all['InLayer2'].style.visibility = 'hidden';
	}
  }
}

function mouseDown(e){
	if ((ns && e.which != 1) || (!ns && event.button != 1)) return true;
    var x = (ns) ? e.pageX : event.x + document.body.scrollLeft;
    var y = (ns) ? e.pageY : event.y + document.body.scrollTop;
	switch(QuePulsa(x, y)){
		case 'FlechaUp':
			subir()
			cogido = 'FlechaUp';			
			return false;
		case 'FlechaDown':
			bajar()
			cogido = 'FlechaDown';
			return false;
	}
	return true;	
}

function mouseUp(e){
	if ((cogido == '') || (ns && e.which != 1) || (!ns && event.button != 1)) return true;
	stillup = 0;
	stilldown = 0
	cogido = '';
	return false;
}

function QuePulsa(x, y){
	if (isinlayer(x, y, 'FlechaUp')) return ('FlechaUp');
	if (isinlayer(x, y, 'FlechaDown')) return ('FlechaDown');
	return ('');
}

function isinlayer(x, y, ncapa){
	var l, r, t, b;
	if (ns){
		l = parseInt(document.layers[ncapa].left,10);
		r = l + parseInt(document.layers[ncapa].document.width,10);
		t = parseInt(document.layers[ncapa].top,10);
		b = t + parseInt(document.layers[ncapa].document.height,10);
	}
	else{
		l = parseInt(document.all[ncapa].style.left,10);
		r = l + parseInt(document.all[ncapa].clientWidth,10);
		t = parseInt(document.all[ncapa].style.top,10);
		b = t + parseInt(document.all[ncapa].clientHeight,10);		
	}
	if ((x >= l && x <= r) && (y >= t && y <= b)) return true;
	else return false;
}

function rsubir(){
	var actpos = parseInt((ns) ? document.layers['OutLayer'].document.layers['InLayer1'].left : document.all['InLayer1'].style.left, 10);

	coloca(actpos + despl);

	if (stillup == 1) tup = setTimeout('rsubir()', velocidad);
	else clearTimeout(tup);
}

function rbajar(){
	var actpos = parseInt((ns) ? document.layers['OutLayer'].document.layers['InLayer1'].left : document.all['InLayer1'].style.left, 10);

	coloca(actpos - despl)

	if (stilldown == 1) tdown = setTimeout('rbajar()', velocidad);
	else clearTimeout(tdown);
}

function subir(){
  if (stillup == 0){
    stillup = 1;
    tup = setTimeout('rsubir()', velocidad);
  }
}

function bajar(){
  if (stilldown == 0){
    stilldown = 1;
    tdown = setTimeout('rbajar()', velocidad);
  }
}

function coloca(posicion){
	var capa1 = (ns) ? document.layers['OutLayer'].document.layers['InLayer1'] : document.all['InLayer1'].style;
	var capa2 = (ns) ? document.layers['OutLayer'].document.layers['InLayer2'] : document.all['InLayer2'].style;

	if (posicion > 0) posicion -= tamIn;
	if (posicion < (-tamIn)) posicion += tamIn;

	capa1.left = posicion;
	capa2.left = posicion + tamIn;
}