// JavaScript Document

var frametopdx = 0;
var bartopdx = 0;
var speeddx = 10;

var scrollobjdx;
var scrollerobjdx;
var scrolluptodx;
var scrolldowntodx;
var frameheightdx;
var barheightdx;
var scrollareaheightdx = 460;

function scrollinitdx() {
	scrollobjdx = document.getElementById("bioframedx");
	scrollerobjdx = document.getElementById("scrollerdx");
	containerobjdx = document.getElementById("biolayoutdx");
	
	if (scrollobjdx.scrollHeight > containerobjdx.offsetHeight) {
		frameheightdx = scrollobjdx.scrollHeight - containerobjdx.offsetHeight;
		
		barheightdx = Math.round(containerobjdx.offsetHeight * scrollareaheightdx / scrollobjdx.scrollHeight);
		if(barheightdx < 25) barheightdx = 25;
		scrollerobjdx.style.height = barheightdx + "px";
		scrollerobjdx.style.display = '';
		scrollerobjdx.onmousedown = startmovedx;
	}else {
		scrollerobjdx.style.display = 'none';	
	}
	return true;
}

function scrollupdx(barspeeddx) {
	if(scrolldowntodx) { 
	  clearTimeout(scrolldowntodx);
	}

	if(!barspeeddx) {
    barspeeddx = speeddx;
    scrolluptodx=setTimeout("scrollupdx()",20);
  }
  
  scrollspeeddx = Math.round(barspeeddx * frameheightdx / (scrollareaheightdx - barheightdx));

	if(frameheightdx + frametopdx > 0) {
		frametopdx = frametopdx - scrollspeeddx;
	} else {
	  frametopdx = -frameheightdx;
		clearTimeout(scrolluptodx);
	}
	
	if(bartopdx + barheightdx <= scrollareaheightdx - barspeeddx) {
	  bartopdx = bartopdx + barspeeddx;
	} else {
		bartopdx = scrollareaheightdx - barheightdx;
		clearTimeout(scrolluptodx);
	}

	scrollobjdx.style.top = frametopdx + "px";
	scrollerobjdx.style.top = bartopdx + "px";
	
	return true;
}

function scrolldowndx(barspeeddx) {
  if(scrolluptodx) { 
	  clearTimeout(scrolluptodx);
	}

	if(!barspeeddx) {
    barspeeddx = speeddx;
    scrolldowntodx=setTimeout("scrolldowndx()",20)
  }
  
  scrollspeeddx = Math.round(barspeeddx * frameheightdx / (scrollareaheightdx - barheightdx));

  if(frametopdx < 0) {
		frametopdx = frametopdx + scrollspeeddx;
	} else {
	  frametopdx = 0;
		clearTimeout(scrolldowntodx);
	}
	
	if(bartopdx - barspeeddx >= 0) {
	  bartopdx = bartopdx - barspeeddx;
	} else {
	  bartopdx = 0;
		clearTimeout(scrolldowntodx);
	}

	scrollobjdx.style.top = frametopdx + "px";
	scrollerobjdx.style.top = bartopdx + "px";
	
	return true;
}

function scrollstopdx() {
	if(scrolluptodx) clearTimeout(scrolluptodx);
	if(scrolldowntodx) clearTimeout(scrolldowntodx);

	return true;
}

function startmovedx(event) {
  if(event) {
  	scrollerobjdx.ymouse = event.clientY;
  } else {
	scrollerobjdx.ymouse = window.event.clientY;
  }
  
  scrollerobjdx.ybar = bartopdx;

  document.onmousemove = keepmovedx;
  document.onmouseup = stopmovedx;
}

function keepmovedx(event) {
  if(event) {  
  	delta = event.clientY - scrollerobjdx.ymouse - (bartopdx - scrollerobjdx.ybar);
  } else {
  	delta = window.event.clientY - scrollerobjdx.ymouse - (bartopdx - scrollerobjdx.ybar);
  }
  
  if(delta > 0) {
    scrollupdx(delta);
  } else {
    scrolldowndx(-delta);
  }
}

function stopmovedx(event) {
  document.onmousemove=null;
  document.onmouseup=null;
  scrollstopdx();
}

