/*Scroll*/

/*Configuracion*/

var alto_barra=105;
var alto_flecha=16;

/*Fin Configuracion*/


var dif_barra_flecha=alto_barra+alto_flecha;

//var tipo, scNav, scNav2;
var tipo, scNav2, imagenBar;
// JavaScript Document
      scrollList=new Array();
	  scrollList2=new Array();
      function registraScroll(idAbajo, idArriba, div, velAbajo, velArriba, Bar)
      {
          if(scrollList[idAbajo]==null) scrollList[idAbajo]=new Array();
          if(scrollList[idArriba]==null) scrollList[idArriba]=new Array();
		  if(scrollList2[Bar]==null) scrollList2[Bar]=new Array();
          scrollList[idAbajo].push(new Array(div, velAbajo, Bar));
          scrollList[idArriba].push(new Array(div, velArriba, Bar));
		  scrollList2[Bar].push(new Array(div, idAbajo, idArriba));
      }
      //window.onload=inicializar;
      //function inicializar(tipoq,navq)
	  function inicializar(tipoq)
      {
		  tipo=tipoq;
		  //scNav=navq;
          for(key in scrollList)
          {
			  //alert(key);
              var elemento=getEl(key);
              elemento.onmousedown=iniciaScroll;
              elemento.onmouseup=detieneScroll;
          }
          for(key in scrollList2)
          {
			  	//for (key2 in scrollList2[key]){
			  //alert(key+" -> "+scrollList2[key][0][0]);
				//}
              ocultaBar(key,scrollList2[key][0][0],scrollList2[key][0][1],scrollList2[key][0][2]);
          }
      }
	  function ocultaBar(barSc,textSc,idAb,idAr){
		 barSc=getEl(barSc);
		 textSc=getEl(textSc);
		 idAb=getEl(idAb);
		 idAr=getEl(idAr);
		 var limite = barSc.scrollHeight*1+alto_flecha*1+1*1;
		 //alert(textSc.scrollHeight+" - "+limite);
		 if (textSc.scrollHeight<limite) {
			 barSc.style.backgroundImage="none";
			 if (document.all){
				thisImage=idAb.getElementsByTagName('img');
				thisImage2=idAr.getElementsByTagName('img');
				thisImage[0].style.filter="Alpha(Opacity=50)";
				thisImage2[0].style.filter="Alpha(Opacity=50)";
				thisImage2[0].style.filter="Alpha(Opacity=50)";
			 }
			 else{
			 	idAb.style.opacity="0.5";
			 	idAr.style.opacity="0.5";
			 }
		 }
		 /*
		 else{
			 barSc.style.backgroundImage.src=imagenBar;
			 barSc.style.backgroundPosition = alto_flecha+"px 0px";
			 if (document.all){
				thisImage=idAb.getElementsByTagName('img');
				thisImage2=idAr.getElementsByTagName('img');
				thisImage[0].style.filter="Alpha(Opacity=100)";
				thisImage2[0].style.filter="Alpha(Opacity=100)";
			 }
			 else{
			 	idAb.style.opacity="1";
			 	idAr.style.opacity="1";
			 }
		 }
		 */
	  }
      function iniciaScroll()
      {
          scrollDivs=new Array();
          velDivs=new Array();
		  scNav=new Array();
          for(key in scrollList[this.id]) 
          {
			  //kk=getEl('kk');
			  //kk.value=scrollList[this.id][key][0];
              scrollDivs.push(getEl(scrollList[this.id][key][0]));
              velDivs.push(scrollList[this.id][key][1]);
			  scNav.push(scrollList[this.id][key][2]);
          }
          identificador=setInterval('scrollNow()', 40);
      }
      function detieneScroll()
      {
          clearInterval(identificador);
      }
      function scrollNow()
      {
          for(key in scrollDivs)
          {
		   	if (tipo=='horizontal'){		
				//alert(scrollDivs[key].id); //corrimiento del left (cuando empieza es 0)
		  		var desplazamientoActual=scrollDivs[key].scrollLeft;
          		var nuevoDesplazamiento=desplazamientoActual+velDivs[key];
		  		scrollDivs[key].scrollLeft=nuevoDesplazamiento;
				
				if (getEl(scNav)){
					//moveBar(scNav,scrollDivs[key],nuevoDesplazamiento);
					fondo=getEl(scNav);
					anchoBar=fondo.scrollWidth-60;
					totDespl=scrollDivs[key].scrollWidth - fondo.scrollWidth;
					despBar=20;
					if (totDespl>0) despBar=((nuevoDesplazamiento*fondo.scrollWidth)/totDespl)*1;
					if (despBar<20) despBar=20;
					if (despBar>anchoBar) despBar=anchoBar;
					fondo.style.backgroundPosition = despBar+"px 0px";
				}
				
			}
			else{
				if (getEl(scNav[key])){
					fondo=getEl(scNav[key]);
					altoBar=fondo.scrollHeight-80;
					var totDespl=scrollDivs[key].scrollHeight - fondo.scrollHeight;
          			var desplazamientoActual=scrollDivs[key].scrollTop;
					
					if (velDivs[key]>0){
						var masDespl=Math.round(totDespl/50)
					}
					else{
						var masDespl=-(Math.round(totDespl/50))
					}
          			var nuevoDesplazamiento=desplazamientoActual+velDivs[key]+masDespl;
          			
					scrollDivs[key].scrollTop=nuevoDesplazamiento;
				
					despBar=10;
					
					//if (totDespl>alto_flecha) {
						despBar=(((nuevoDesplazamiento)*(fondo.scrollHeight-dif_barra_flecha))/(totDespl))*1;
					//}
					//else {
						//despBar=1000;
					//}
					if (despBar<alto_flecha) despBar=alto_flecha;
					if (despBar>fondo.scrollHeight-alto_barra) despBar=fondo.scrollHeight-alto_barra;
					//alert(totDespl/100);
					//if (despBar>anchoBar+38) despBar=anchoBar+38;
					fondo.style.backgroundPosition = "0px "+despBar+"px";
				}
				
			}
		  //inp=getEl('inputt')
		  //inp.value=scrollDivs[key].scrollTop;
		  //inp.value=scrollDivs[key].scrollHeight;
          }
      }






function Browser() {

  var ua, s, i;

  this.isIE    = false;
  this.isNS    = false;
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as NS 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
}

var browser = new Browser();

// Global object to hold drag information.

var dragObj = new Object();
dragObj.zIndex = 0;
var fondo;
function dragStart(event, id, cualBar) {
fondo=getEl(cualBar);
  var el;
  var x, y;
  if (id)
    dragObj.elNode = document.getElementById(id); //dragObj.elNode es el elemento
  else {
    if (browser.isIE)
      dragObj.elNode = window.event.srcElement;
    if (browser.isNS)
      dragObj.elNode = event.target;
    if (dragObj.elNode.nodeType == 3)
      dragObj.elNode = dragObj.elNode.parentNode; //si estoy en texto, tomo el padre
  }
  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop	  
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
	y = event.clientY + window.scrollY;//posicion absoluta del mouse (pos relativa + scrollLeft)
  }
  dragObj.cursorStartX = x; //guardo pos del mouse
  dragObj.cursorStartY = y;
  dragObj.elStartLeft  = parseInt(dragObj.elNode.scrollLeft, 10);
  dragObj.elStartTop   = parseInt(dragObj.elNode.scrollTop,  10);//guardo pos del elem
  if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
  if (browser.isIE) {
    document.attachEvent("onmousemove", dragGo); //capturamos los eventos y llememos a la funcion
    document.attachEvent("onmouseup",	dragStop);
    window.event.cancelBubble = true; //detenemos efectos como seleccion de textos, etc.
    window.event.returnValue = false;
  }
  if (browser.isNS) {
    document.addEventListener("mousemove", dragGo,   true);
    document.addEventListener("mouseup",   dragStop, true);
    event.preventDefault();
  }
}

function dragGo(event) {

  var x, y;

  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
	y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
  	var kkk;
  	var kk = dragObj.elNode.style.left;
	largo=kk.length;
	sinPx=kk.substr(0,largo-2);
    x = event.clientX + window.scrollX
	y = event.clientY + window.scrollY; //vuelvo a capturar la pos abs del mouse
  }
  
  anchoBar=fondo.scrollHeight-80;
  totDespl=dragObj.elNode.scrollHeight - fondo.scrollHeight;
  desBar=(y - dragObj.cursorStartY);
  despScroll=(desBar*totDespl)/anchoBar;
  dragObj.elNode.scrollTop = (dragObj.elStartTop + despScroll);
  nuevoDesplazamiento=dragObj.elNode.scrollTop
  
		  inp=getEl('inputt');
		  //inp.value=dragObj.elNode.scrollHeight;
  //anchoBar=fondo.scrollHeight-40;
  //totDespl=dragObj.elNode.scrollHeight - fondo.scrollHeight;
  despBar=alto_flecha;
  if (totDespl>0) despBar=((nuevoDesplazamiento*(fondo.scrollHeight-dif_barra_flecha))/totDespl)*1;
  if (despBar<alto_flecha) despBar=alto_flecha;
  if (despBar>fondo.scrollHeight-alto_barra) despBar=fondo.scrollHeight-alto_barra;
  if (despBar>anchoBar+38) despBar=anchoBar+38;
  fondo.style.backgroundPosition = "0px "+despBar+"px";
  //inp.value=anchoBar+" - "+despBar;
  if (browser.isIE) {
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS)
    event.preventDefault();
}

function dragStop(event) {

  // Stop capturing mousemove and mouseup events.

  if (browser.isIE) {
    document.detachEvent("onmousemove", dragGo);
    document.detachEvent("onmouseup",	dragStop);
  }
  if (browser.isNS) {
    document.removeEventListener("mousemove", dragGo,	true);
    document.removeEventListener("mouseup",   dragStop, true);
  }
}
