addEvent(window,'load',inicializarEventos,false);
var ymouseoriginal=0;
var ymousebtnoriginal=0;
var xmouseoriginal=0;
var xmousebtnoriginal=0;
var TopOriginal=0;
var TopBtnOriginal=0;
var LeftOriginal=0;
var LeftBtnOriginal=0;
var divScrollable;
function inicializarEventos()
{
                desactivoSeleccion();     
                scrollers=getElementsByClassName("divScroll");
                for (i=0;i<scrollers.length;i++)
                {                								
                								
                                if(scrollers[i].scrollHeight > getStyle(scrollers[i],'height').replace('px','') || scrollers[i].scrollWidth > getStyle(scrollers[i],'width').replace('px',''))
                                {
                                	var divScroll=document.createElement('div');
                                	contenidoScroller=scrollers[i].innerHTML;
                                	divScroll.innerHTML=contenidoScroller;                                	
                                }  
                                limpio=0;                                                                                                                    
                                if (scrollers[i].scrollHeight > getStyle(scrollers[i],'height').replace('px',''))
                                {                                      
                                                var imgbkScroll=document.createElement('img');
                                                imgbkScroll.src="scroll_barra.png";
                                                imgbkScroll.className="bkgScroll";
                                                var bkScroll=document.createElement('div');                                                
                                                bkScroll.className="bkScroll";
                                                bkScroll.appendChild(imgbkScroll);
                                                var imgScroll=document.createElement('div');
                                                imgScroll.name="MoverScroll";
                                                imgScroll.className="Scroll";
                                                addEvent(imgScroll,'mousedown',agarra,false);                                                
                                                divScroll.className="scrollable";
                                                scrollers[i].innerHTML="";
                                                limpio=1;
                                                scrollers[i].appendChild(divScroll);
                                                scrollers[i].appendChild(bkScroll);
                                                scrollers[i].appendChild(imgScroll);                         
                                }                               
                                if (scrollers[i].scrollWidth > getStyle(scrollers[i],'width').replace('px',''))
                                {                                                                                             
                                                var imgbkScroll=document.createElement('img');
                                                imgbkScroll.src="scroll_barra_h.png";                                                
                                                imgbkScroll.className="bkgScrollH";
                                                var bkScroll=document.createElement('div');                                                
                                                bkScroll.className="bkScrollH";
                                                bkScroll.appendChild(imgbkScroll);
                                                var imgScroll=document.createElement('div');
                                                imgScroll.name="MoverScroll";
                                                imgScroll.className="ScrollH";
                                                addEvent(imgScroll,'mousedown',agarraH,false);                                                
                                                divScroll.className="scrollable";
                                                if(limpio==0)
                                                {
                                                	scrollers[i].innerHTML="";
                                                	scrollers[i].appendChild(divScroll);
                                                	}
                                                
                                                scrollers[i].appendChild(bkScroll);
                                                scrollers[i].appendChild(imgScroll);                         
                                }
                }
}
function desactivoSeleccion()
{
                if (window.event)
                {              
                                document.onselectstart = function()
    {
        return false;
    } 
   }
                else
                {
     document.onmousedown = function()
     {
          return false;
     }
   }
}
function agarra(e)
{
                obj=obtenerObjeto(e);
                divPadre=obj.parentNode;
                hijos=divPadre.childNodes;
                for(i=0;i<hijos.length;i++)
                {
                                if(hijos[i].className=="scrollable")
                                {
                                                div=hijos[i];        
                                }
                }
                for(i=0;i<hijos.length;i++)
                {
                                if(hijos[i].className=="Scroll")
                                {
                                                btn=hijos[i];                                       
                                }
                }
                TopBtnOriginal=getStyle(btn,'top');
                TopOriginal=getStyle(div,'top');
                ymousebtnoriginal=coordenadaY(btn);
                ymouseoriginal=coordenadaY(div);
                addEvent(document.body,"mouseup",suelta,false);
                addEvent(divPadre,"mousemove",arrastra,false);
                divScrollable=divPadre;
}
function agarraH(e)
{
                obj=obtenerObjeto(e);
                divPadre=obj.parentNode;
                hijos=divPadre.childNodes;
                for(i=0;i<hijos.length;i++)
                {
                                if(hijos[i].className=="scrollable")
                                {
                                                div=hijos[i];        
                                }
                }
                for(i=0;i<hijos.length;i++)
                {
                                if(hijos[i].className=="ScrollH")
                                {
                                                btn=hijos[i];                                       
                                }
                }
                LeftBtnOriginal=getStyle(btn,'left');
                LeftOriginal=getStyle(div,'left');
                xmousebtnoriginal=coordenadaX(btn);
                xmouseoriginal=coordenadaX(div);
                addEvent(document.body,"mouseup",sueltaH,false);
                addEvent(divPadre,"mousemove",arrastraH,false);
                divScrollable=divPadre;
}
function arrastraDirecto(e)
{								
								obj=obtenerObjeto(e);
								
                divPadre=obj.parentNode;                
                hijos=divPadre.childNodes;
                for(i=0;i<hijos.length;i++)
                {
                                if(hijos[i].className=="scrollable")
                                {
                                                div=hijos[i];        
                                }
                }
                for(i=0;i<hijos.length;i++)
                {
                                if(hijos[i].className=="Scroll")
                                {
                                                btn=hijos[i];                                       
                                }
                }
                TopBtnOriginal=getStyle(btn,'top');
                TopOriginal=getStyle(div,'top');
                ymousebtnoriginal=coordenadaY(btn);
                ymouseoriginal=coordenadaY(div);
                addEvent(document.body,"mouseup",suelta,false);
                addEvent(divPadre,"mousemove",arrastra,false);
                divScrollable=divPadre;
                totalAltura=div.scrollHeight;
                totalPadre=getStyle(divPadre,'height');                
                totalPadre=totalPadre.replace('px','');
                totalAltura=totalAltura-totalPadre+30;
                cadaY=totalAltura/totalPadre;
                y = coordenadaY(div);
                ybtn=coordenadaY(btn);
                yasumar=y-ymouseoriginal;
                yasumarbtn=ybtn-ymousebtnoriginal;
                Top=TopOriginal.replace('px','');
                Top= parseInt(Top);
                TopBtn=TopBtnOriginal.replace('px','');
                TopBtn=parseInt(TopBtn);
                TopBtn=TopBtn+yasumarbtn;
                Top=Top+((yasumar*(-1))*cadaY);
                Top=Math.round(Top);                
                TopBtn=Math.round(TopBtn);
                if (TopBtn > 0 & TopBtn < (totalPadre-20))            
                {
                	div.style.top=Top+"px";
                	btn.style.top=TopBtn+"px";
                }
}
function arrastra(e)
{								
                divPadre=divScrollable;
                hijos=divPadre.childNodes;
                for(i=0;i<hijos.length;i++)
                {
                                if(hijos[i].className=="scrollable")
                                {
                                                div=hijos[i];                                        
                                }
                }
                for(i=0;i<hijos.length;i++)
                {
                                if(hijos[i].className=="Scroll")
                                {
                                                btn=hijos[i];                                       
                                }
                }
                totalAltura=div.scrollHeight;
                totalPadre=getStyle(divPadre,'height');                
                totalPadre=totalPadre.replace('px','');
                totalAltura=totalAltura-totalPadre+30;
                cadaY=totalAltura/totalPadre;
                y = coordenadaY(div);
                ybtn=coordenadaY(btn);
                yasumar=y-ymouseoriginal;
                yasumarbtn=ybtn-ymousebtnoriginal;
                Top=TopOriginal.replace('px','');
                Top= parseInt(Top);
                TopBtn=TopBtnOriginal.replace('px','');
                TopBtn=parseInt(TopBtn);
                TopBtn=TopBtn+yasumarbtn;
                Top=Top+((yasumar*(-1))*cadaY);
                Top=Math.round(Top);                
                TopBtn=Math.round(TopBtn);
                if (TopBtn > 0 & TopBtn < (totalPadre-20))            
                {
                	div.style.top=Top+"px";
                	btn.style.top=TopBtn+"px";
                }
}
function suelta(e)
{
                div=document.getElementById("columna_left");
                removeEvent(divScrollable,"mousemove",arrastra,false);
                removeEvent(document.body,"mouseup",suelta,false);    
}
function arrastraH(e)
{
                divPadre=divScrollable;
                hijos=divPadre.childNodes;
                for(i=0;i<hijos.length;i++)
                {
                                if(hijos[i].className=="scrollable")
                                {
                                                div=hijos[i];                                        
                                }
                }
                for(i=0;i<hijos.length;i++)
                {
                                if(hijos[i].className=="ScrollH")
                                {
                                                btn=hijos[i];                                       
                                }
                }
                totalAncho=div.scrollWidth;                
                totalPadre=getStyle(divPadre,'width');
                totalPadre=totalPadre.replace('px','');
                totalAncho=totalAncho-totalPadre+30;
                cadaX=totalAncho/totalPadre;
                x = coordenadaX(div);
                xbtn=coordenadaX(btn);
                xasumar=x-xmouseoriginal;
                xasumarbtn=xbtn-xmousebtnoriginal;
                Left=LeftOriginal.replace('px','');
                Left= parseInt(Left);
                LeftBtn=LeftBtnOriginal.replace('px','');
                LeftBtn=parseInt(LeftBtn);
                LeftBtn=LeftBtn+xasumarbtn;
                Left=Left+((xasumar*(-1))*cadaX);
                Left=Math.round(Left);                
                LeftBtn=Math.round(LeftBtn);
                div.style.left=Left+"px";
                btn.style.left=LeftBtn+"px";
}
function sueltaH(e)
{
                removeEvent(divScrollable,"mousemove",arrastraH,false);
                removeEvent(document.body,"mouseup",sueltaH,false);    
}
function addEvent(elemento,nomevento,funcion,captura)
{
  if (elemento.attachEvent)
  {
    elemento.attachEvent('on'+nomevento,funcion);
    return true;
  }
  else  
    if (elemento.addEventListener)
    {
      elemento.addEventListener(nomevento,funcion,captura);
      return true;
    }
    else
      alert("error");
      return false;
}
function removeEvent(elemento,nomevento,funcion,captura)
{
  if (elemento.detachEvent)
  {
    elemento.detachEvent('on'+nomevento,funcion);
    return true;
  }
  else  
    if (elemento.removeEventListener)
    {
      elemento.removeEventListener(nomevento,funcion,captura);
      return true;
    }
    else
      alert("error");
      return false;
}
function coordenadaY(e)
{
  if (window.event)
    return event.clientY+document.body.scrollTop;
  else
    return e.pageY;
}
function coordenadaX(e)
{
  if (window.event)
    return event.clientX+document.body.scrollTop;
  else
    return e.pageX;
}
function getStyle(elemento, propiedadCss)
{
  var valor = "";
  if(document.defaultView && document.defaultView.getComputedStyle){
    valor = document.defaultView.getComputedStyle(elemento, '').getPropertyValue(propiedadCss);
  }
  else if(elemento.currentStyle) {
    propiedadCss = propiedadCss.replace(/\-(\w)/g, function (strMatch, p1) {
      return p1.toUpperCase();
    });
    valor = elemento.currentStyle[propiedadCss];
  }
  return valor;
}
function obtenerObjeto(e)
{
                var elemento;
                if (window.event)
                {              elemento=window.event.srcElement;}
                else
                {
                                if(e)
                                {              elemento=e.target;}                                      
                }              
                return elemento;
}
function getElementsByClassName(clase)
{
                if (document.getElementsByClassName) 
                {
    elementos = document.getElementsByClassName(clase);
  }
                else 
                {
                                elementos=new Array();
                i = 0;
                z=0;
                divs = document.getElementsByTagName("div");
                while (element = divs[i++]) 
                {
                if (element.className == clase) 
                {
                elementos[z]=element;
                z=z+1;
      }
    }
  }
  return elementos;
}

