var scrollDiv;
var scrollDHeight;
var scrollCHeight;
var scrollYPos = 0;
var scrollTimer;

var scrollThumb;
var scrollTracky;
var scrollTrackheight = 288;
var scrollThumbheight = 7;

var txtval;

var tempX = 0;
var tempY = 0;

function getAbsolutePosition(element) {
  var r = { x: element.offsetLeft, y: element.offsetTop };
  if (element.offsetParent) {
    var tmp = getAbsolutePosition(element.offsetParent);
    r.x += tmp.x;
    r.y += tmp.y;
  }
  return r;
};

function getRelativeCoordinates(event, reference) {
  var x, y;
  event = event || window.event;
  var el = event.target || event.srcElement;

  if (!window.opera && typeof event.offsetX != 'undefined') {
    // Use offset coordinates and find common offsetParent
    var pos = { x: event.offsetX, y: event.offsetY };

    // Send the coordinates upwards through the offsetParent chain.
    var e = el;
    while (e) {
      e.mouseX = pos.x;
      e.mouseY = pos.y;
      pos.x += e.offsetLeft;
      pos.y += e.offsetTop;
      e = e.offsetParent;
    }

    // Look for the coordinates starting from the reference element.
    var e = reference;
    var offset = { x: 0, y: 0 }
    while (e) {
      if (typeof e.mouseX != 'undefined') {
        x = e.mouseX - offset.x;
        y = e.mouseY - offset.y;
        break;
      }
      offset.x += e.offsetLeft;
      offset.y += e.offsetTop;
      e = e.offsetParent;
    }

    // Reset stored coordinates
    e = el;
    while (e) {
      e.mouseX = undefined;
      e.mouseY = undefined;
      e = e.offsetParent;
    }
  }
  else {
    // Use absolute coordinates
    var pos = getAbsolutePosition(reference);
    x = event.pageX  - pos.x;
    y = event.pageY - pos.y;
  }
  // Subtract distance to middle
  return { x: x, y: y };
}

function findPos(obj)
{
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return curtop;
}

function scrollLoad(height){
	scrollDiv = document.getElementById('txt1');
	if(scrollDiv == null)
	 scrollDiv = document.getElementById('txt2');
	scrollThumb = document.getElementById('scrollThumb');
	//scrollTrack = document.getElementById('scrollTrack');
	//scrollTracky = getRelativeCoordinates(event, document.getElementById('scrollTrack'));
	//scrollThumbheight = scrollThumb.offsetHeight;
	//scrollTrackheight = scrollTrack.offsetHeight;
	scrollCHeight = scrollDiv.offsetHeight;
	scrollDHeight = height;
}

function scrollUp(){
	scrollStop();
	//scrollShowDown();
  scrollTimer = setInterval("doScrollUp(4)", 6);
}

function scrollDown(){
	scrollStop();
	//scrollShowUp();
	if(scrollDHeight < scrollCHeight){
	scrollTimer = setInterval("doScrollDown(4)", 6);
	}
}

function doScrollUp(koliko){
  if(scrollDHeight < scrollCHeight)
	if(scrollYPos+1 >= 0){
		scrollDiv.style.top = '0px';
		scrollYPos = 0;
		scrollStop();
		//scrollHideUp();
	}else{
		scrollYPos += koliko;
		scrollDiv.style.top = scrollYPos+'px';
		if(((scrollYPos/(scrollDHeight-scrollCHeight))*(scrollTrackheight-scrollThumbheight))>0){
		  scrollThumb.style.top = ((scrollYPos/(scrollDHeight-scrollCHeight))*(scrollTrackheight-scrollThumbheight))+'px';
    }
    else{
		  scrollThumb.style.top = '0px';
    }
	}
}
function doScrollDown(koliko){
  if(scrollDHeight < scrollCHeight)
	if(scrollDHeight-scrollYPos+1 >= scrollCHeight){
		scrollDiv.style.top = (-(scrollCHeight-scrollDHeight))+'px';
		scrollYPos = -(scrollCHeight-scrollDHeight);
		scrollStop();
		//scrollHideDown();
	}else{
		scrollYPos -= koliko;
		scrollDiv.style.top = scrollYPos+'px';
		if(((scrollYPos/(scrollDHeight-scrollCHeight))*(scrollTrackheight-scrollThumbheight))<scrollTrackheight){
		  scrollThumb.style.top = ((scrollYPos/(scrollDHeight-scrollCHeight))*(scrollTrackheight-scrollThumbheight))+'px';
    }
    else{
		  scrollThumb.style.top = scrollTrackheight-scrollThumbheight+'px';
    }
	}
}

function scrollStop(){
	clearInterval(scrollTimer);
}

function setPosition(event){
  if(scrollCHeight > scrollDHeight){
    var pos = getRelativeCoordinates(event, document.getElementById('scrollTrack'));
    scrollThumb.style.top = pos.y + 'px';
    scrollYPos = (pos.y/scrollTrackheight * (scrollDHeight-scrollCHeight));
    scrollDiv.style.top = scrollYPos + 'px';  
  }
}
