// ------------------------------
// Rutinas scroll especificas
// Intermark Multimedia 2001
// ------------------------------


var activadrag=0, xoffset=0, yoffset=0;
function startdrag() {
	if (scr_init) {
		if (xmouse >= capabarra.x && xmouse <= capabarra.x+capabarra.w && ymouse >= capabarra.y && ymouse <= capabarra.y+capabarra.h) {
			activadrag = 1;
			xoffset = xmouse - capabarra.x;
			yoffset = ymouse - capabarra.y;
		}
	}
}

function drag() {
	
	if (mousepulsado && activadrag) {
		scr_barra();
	}
}

function stopdrag() {
	activadrag = 0;
}


var scr_scroll=0, scr_activo = 0;
var scr_barraypos, scr_barratopearriba, scr_barratopeabajo, scr_barradistancia
var scr_scrollypos, scr_distancia, scr_topearriba, scr_topeabajo, scr_topearribaclipt, scr_topearribaclipb, scr_topeabajoclipt, scr_topeabajoclipb
function scr_ini(layerbarra, layerscroll, barratopeabajo) {

	capabarra = new objetoCapa(layerbarra);
	//capabarra2 = new objetoCapa(layerbarra2);
	capascroll = new objetoCapa(layerscroll);

	
	// Captura eventos raton para Netscape
	capabarra.propiedad.onmousedown = mousedown
	capabarra.propiedad.onmouseup = mouseup
	if (nav.ns4) capabarra.propiedad.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP)
	//
	
	scr_barraypos = capabarra.y;
	scr_barratopearriba = scr_barraypos;
	scr_barratopeabajo = barratopeabajo;
	scr_barradistancia = scr_barratopeabajo - scr_barratopearriba;

	if (capascroll.h > capascroll.valorclipping('b')) {
		scr_scroll = 1;
	}else {
		scr_scroll = 0;
	}

	scr_scrollypos = capascroll.y
	scr_distancia = (capascroll.h - capascroll.valorclipping('b'))

	scr_topearriba = capascroll.y - (capascroll.h - capascroll.valorclipping('b'))
	scr_topeabajo = capascroll.y

	scr_topearribaclipt = 0
	scr_topearribaclipb = capascroll.valorclipping('b')
	scr_topeabajoclipt = capascroll.valorclipping('t') + (capascroll.h - capascroll.valorclipping('b'))
	scr_topeabajoclipb = capascroll.valorclipping('b') + (capascroll.h - capascroll.valorclipping('b'))
	
	scr_init = true;
	
	//capabarra.mostrar();
	//capabarra2.mostrar();

}
function scr_scrollposini() {

	scr_barraypos = scr_barratopearriba
	capabarra.mover_a(capabarra.x, scr_barraypos);
	
	scr_scrollypos = scr_topeabajo
	clipt = scr_topearribaclipt
	clipb = scr_topearribaclipb
	capascroll.mover_a(capascroll.x, scr_scrollypos)
	capascroll.clipping(clipt, capascroll.valorclipping('r'), clipb, capascroll.valorclipping('l'));
}	
	
function scr_barra() {
if (scr_scroll) {
	// Desplaza la barra de scroll
	scr_barraypos = ymouse-yoffset;
	if (scr_barraypos < scr_barratopearriba) {
		scr_barraypos = scr_barratopearriba;
	} else if (scr_barraypos > scr_barratopeabajo) {
		scr_barraypos = scr_barratopeabajo;
	}
	capabarra.mover_a(capabarra.x, scr_barraypos);
	//

	// Calcula posicion del scroll segun la barra 
	scr_scrollypos = Math.round( scr_topeabajo + ( (scr_barraypos-scr_barratopearriba) * -scr_distancia ) / scr_barradistancia )
	// Mueve scroll
	capascroll.mover_a(capascroll.x, scr_scrollypos);
	
	// Calcula la posicion del clipping segun barra
	clipt = Math.round( -( (scr_barraypos-scr_barratopearriba) * -scr_distancia ) / scr_barradistancia )
	clipb = Math.round( -( (scr_barraypos-scr_barratopearriba) * -scr_distancia ) / scr_barradistancia + scr_topearribaclipb )
	clipr = capascroll.valorclipping('r')
	clipl = capascroll.valorclipping('l')
	capascroll.clipping(clipt, clipr, clipb, clipl);
	//
}
}
function scr_activascroll(direccion, aumento) {
	scr_activo = 1;
	if (direccion == 'arriba') {
		scr_arriba(aumento);
	} else if (direccion == 'abajo') {
		scr_abajo(aumento);
	}
}
function scr_abajo (aumento) {
if (scr_scroll && scr_activo) {
	
	scr_scrollypos = scr_scrollypos - aumento;
	clipt = capascroll.valorclipping('t') + aumento;
	clipb = capascroll.valorclipping('b') + aumento;
	clipr = capascroll.valorclipping('r')
	clipl = capascroll.valorclipping('l')

	if (scr_scrollypos > scr_topearriba) {
		scr_barraypos =  scr_barratopearriba + ( (scr_topeabajo-scr_scrollypos) * scr_barradistancia / scr_distancia )
		capabarra.mover_a(capabarra.x, scr_barraypos);
		// Mueve el scroll
		capascroll.mover_a(capascroll.x, scr_scrollypos);
		capascroll.clipping(clipt, clipr, clipb, clipl);
		setTimeout("scr_abajo("+aumento+")",10);
	}else {
		scr_barraypos =  scr_barratopeabajo;
		capabarra.mover_a(capabarra.x, scr_barraypos);
		//
		scr_scrollypos = scr_topearriba
		clipt = scr_topeabajoclipt
		clipb = scr_topeabajoclipb
		clipr = capascroll.valorclipping('r')
		clipl = capascroll.valorclipping('l')
		capascroll.mover_a(capascroll.x, scr_scrollypos);
		capascroll.clipping(clipt, clipr, clipb, clipl);
	}
}
}
function scr_arriba (aumento) {
if (scr_scroll && scr_activo) {
	
	scr_scrollypos = scr_scrollypos + aumento;
	clipt = capascroll.valorclipping('t') - aumento;
	clipb = capascroll.valorclipping('b') - aumento;
	clipr = capascroll.valorclipping('r')
	clipl = capascroll.valorclipping('l')

	if (scr_scrollypos < scr_topeabajo) {
		scr_barraypos =  scr_barratopearriba + ( (scr_topeabajo-scr_scrollypos) * scr_barradistancia / scr_distancia )
		capabarra.mover_a(capabarra.x, scr_barraypos);
		// Mueve el scroll
		capascroll.mover_a(capascroll.x, scr_scrollypos);
		capascroll.clipping(clipt, clipr, clipb, clipl);
		setTimeout("scr_arriba("+aumento+")",10);
	}else {
		scr_barraypos =  scr_barratopearriba;
		capabarra.mover_a(capabarra.x, scr_barraypos);
		//
		scr_scrollypos = scr_topeabajo
		clipt = scr_topearribaclipt
		clipb = scr_topearribaclipb
		clipr = capascroll.valorclipping('r')
		clipl = capascroll.valorclipping('l')
		capascroll.mover_a(capascroll.x, scr_scrollypos);
		capascroll.clipping(clipt, clipr, clipb, clipl);
	}
}
}
function scr_para() {
	scr_activo=0;
}


// Fin

