actuaSobre = "";
navegador = 0;

function carga()
{
    posicion=0;
    // IE
    if(navigator.userAgent.indexOf("MSIE")>=0) navegador=0;
    // Otros
    else navegador=1;
}

function evitaEventos(event)
{
    // Funcion que evita que se ejecuten eventos adicionales
    if(navegador==0)
    {
        window.event.cancelBubble=true;
        window.event.returnValue=false;
    }
    if(navegador==1) event.preventDefault();
}

function comienzoMovimiento(event, id, control)
{
	actuaSobre = control;
    elMovimiento=document.getElementById(id);

    if(navigator.userAgent.indexOf("MSIE")>=0) navegador=0; else navegador=1;    

     // Obtengo la posicion del cursor
    if(navegador==0)
     {
        cursorComienzoX=window.event.clientX+document.documentElement.scrollLeft+document.body.scrollLeft;
        cursorComienzoY=window.event.clientY+document.documentElement.scrollTop+document.body.scrollTop;
        document.attachEvent("onmousemove", enMovimiento);
        document.attachEvent("onmouseup", finMovimiento);
    }

    if(navegador==1)
    {  	
    	
        cursorComienzoX=event.clientX+window.scrollX;
        cursorComienzoY=event.clientY+window.scrollY;

        document.addEventListener("mousemove", enMovimiento, true);
        document.addEventListener("mouseup", finMovimiento, true);
    }

    elComienzoX=parseInt(elMovimiento.style.left);
    elComienzoY=parseInt(elMovimiento.style.top);

    // Actualizo el posicion del elemento
    elMovimiento.style.zIndex=++posicion;
    evitaEventos(event);
}

function enMovimiento(event)
{ 
	actualizar = true;
    var xActual, yActual;
 
    if(navegador==0)
    {   
//      xActual=window.event.clientX+document.documentElement.scrollLeft+document.body.scrollLeft;
        yActual=window.event.clientY+document.documentElement.scrollTop+document.body.scrollTop;
   	
       	posMin = document.getElementById(actuaSobre).Top;
		posMax = document.getElementById(actuaSobre).offsetHeight-elMovimiento.offsetHeight;
		
        yActual=event.clientY+document.documentElement.scrollTop;
        
        posScroll = elComienzoY+yActual-cursorComienzoY;
        if (posScroll > posMax || posScroll<0)
        	actualizar = false; 
 
    } 

    if(navegador==1)
    {
//      xActual=event.clientX+window.scrollX;

		posMin = document.getElementById(actuaSobre).Top;
		posMax = document.getElementById(actuaSobre).offsetHeight-elMovimiento.offsetHeight;

		
        yActual=event.clientY+window.scrollY;
        
        posScroll = elComienzoY+yActual-cursorComienzoY;
        if (posScroll > posMax || posScroll<0)
        	actualizar = false;
    }

	if (actualizar) {
		longScroll = document.getElementById(actuaSobre).scrollHeight-document.getElementById(actuaSobre).offsetHeight;
		cociente = document.getElementById(actuaSobre).offsetHeight / longScroll;
		
    	elMovimiento.style.top=(elComienzoY+yActual-cursorComienzoY)+"px";
		document.getElementById(actuaSobre).scrollTop = (posScroll / cociente)*1.0;
    	evitaEventos(event);
    }
}

function finMovimiento(event)
{
    if(navegador==0)
    {   
        document.detachEvent("onmousemove", enMovimiento);
        document.detachEvent("onmouseup", finMovimiento);
    }

    if(navegador==1)
    {
        document.removeEventListener("mousemove", enMovimiento, true);
        document.removeEventListener("mouseup", finMovimiento, true);
    }

}

//window.onload=carga;
