    var delta=0;    // spostamento
    var startPos=5;   // posizione iniziale del testo in pixel
    var endPos=-130   // posizione finale del testo
    var attesa=50;  // millisecondi di attesa 
    var span=0;
    var y0=0;//pos relativa mouseclick
    var drag0=0;
    var pos=startPos; // variabile corrente che memorizza la posizione
    var dragObj=null;
    var scrollObj=null;
    var trackObj=null;
    var iMouseDown = false; //mi dice quando ho clikkato su dragBar
    var e; //evento
    var scrollStep=1; //determina il fattore molt. dello step dello scroll rispeto al drag
    //var tmp;
    function scroll_setup(){
            //tmp=document.forms[0].showpos; //per i test
        span=document.getElementById('scroll').offsetHeight - 360;
        startPos=document.getElementById('scroll').offsetTop;
        if(span>0) document.getElementById('scrollbar').style.visibility='visible';
        endPos= -span + 15; //aggiungere a span h pic cursor + h freccia
        //tmp.value=startPos+','+endPos;
        var offsetSpan=document.getElementById('track').offsetHeight - span + 8; //non è chiaro perchè 8 funz. legato all'h della pic 
        if(offsetSpan>0) document.getElementById('cursor').style.height=offsetSpan+'px';
        else scrollStep = span / (document.getElementById('track').offsetHeight-8);
//        alert(scrollStep);
        document.onmousemove = dragga; 
    } 

   function resetScroll()
   {
        if((pos<endPos)) pos=endPos;
        else if(pos>startPos) pos=startPos; 
        return; 
   }
  function scrolla() {
  
    if (((pos<=endPos)&&(delta<0))||((pos>=startPos)&&(delta>0))) {
        delta=0; 
        resetScroll();
    }
   pos=pos+delta*scrollStep;
   //tmp.value=pos;
    document.getElementById('scroll').style.top=pos;
    var dragObj=document.getElementById('dragBar');
    dragObj.style.top=dragObj.offsetTop -  delta ;
    if (delta!=0) setTimeout('scrolla()',50);
  }
  function dragga(e){
    if(!e) e = (window.event) ;
    scrollObj=document.getElementById('scroll');
  /*  var targetDrag = e.target || e.srcElement; 
    curDrag = targetDrag;
    */
    if(iMouseDown ){
    //alert(trackObj.offsetTop);
        var mousePos = mouseCoords(e);
        //if((mousePos.y -13 > trackObj.offsetTop) && (mousePos.y -13 < (trackObj.offsetTop + trackObj.offsetHeight) )){  
        //alert('?');
        var newY=scrollStep*(-mousePos.y+y0)+5;
        if ( ((newY >= endPos ) && (newY <= startPos))  ){
        dragObj.style.top=mousePos.y-y0;
        scrollObj.style.top=newY;
        pos=scrollObj.offsetTop;
        //tmp.value=startPos+','+pos+','+newY+','+endPos;
        }
        else {
        //tmp.value=newY;
        dragUp();resetScroll();}
    }
    return false;
    
  }
    function mouseCoords(e){
    	if(e.pageX || e.pageY){
    		return {x:e.pageX, y:e.pageY};
    	}
    	return {
    		x:e.clientX + document.body.scrollLeft - document.body.clientLeft,
    		y:e.clientY + document.body.scrollTop  - document.body.clientTop
    	};
    }
    function startDrag()
    {
        dragObj=document.getElementById('dragBar');
        trackObj=document.getElementById('track');
        dragObj.onmousedown = dragDwn;
    }
    function stopDrag()
    {
        iMouseDown = false;
        return false;
    }
    function dragDwn(e){
        if(!e) e = (window.event) ; 
        iMouseDown = true;

        var mousePos = mouseCoords(e); 
        y0=mousePos.y-dragObj.offsetTop;  
        trackObj.appendChild(dragObj);
        document.onmouseup = dragUp; //trackObj
    }

    function dragUp(){
        iMouseDown = false;
        //curThumb  = null;
        delta=0; 
    }
