var objectToMove = null;
var contentZoneDiv = null;
var scrollBarObject = null;
var cY = 0;
var minY = 77;
var maxY = 173;
var maxScrollMarge = 0;
var timerUpScroll = null;
var timerDownScroll = null;
var scrollimageheight = 35;
var scrolldivhoogte = 148;

function InitializePage() {
  contentZoneDiv = document.getElementById("scrollcontent");
  contentZoneDiv.scrollTop = 0;
  maxScrollMarge = contentZoneDiv.scrollHeight - scrolldivhoogte;
  contentZoneDiv.style.overflow = 'hidden';
  if (maxScrollMarge > 10) {
    //contentZoneDiv.style.width = '329px';
  
    var scrollbardiv = document.getElementById("scroll");
    scrollbardiv.style.visibility = 'visible';
    scrollbardiv.onmouseover = showPointer;
    scrollbardiv.onmouseout = hidePointer;
    scrollbardiv.onmousedown = GoToScrollPosition;
    /*
    var scrollbarTop = document.getElementById("scrollbartop");
    scrollbarTop.style.top = minY - 24 + 'px';
    scrollbarTop.onmousedown = ClickUpSoScroll;
    scrollbarTop.onmouseup = ClearTimers;*/
    
    scrollBarObject = document.getElementById("scrollbar");
    scrollBarObject.style.top = minY + 'px';
    /*
    var scrollbarBottom = document.getElementById("scrollbarbottom");
    scrollbarBottom.style.top = maxY + 24 + 'px';
    scrollbarBottom.onmousedown = ClickDownSoScroll;
    scrollbarBottom.onmouseup = ClearTimers;*/
    
    document.onmousedown = pickItUp;
    document.onmousemove = dragIt;
    document.onmouseup = dropIt;
    
    if(document.attachEvent) {
      contentZoneDiv.attachEvent("onmousewheel", scrollWheelMove);
      scrollbardiv.attachEvent("onmousewheel", scrollWheelMove);
    } else {
      contentZoneDiv.addEventListener("DOMMouseScroll", scrollWheelMove, false);
      scrollbardiv.addEventListener("DOMMouseScroll", scrollWheelMove, false);
    }
  }
} /* InitializePage */

function GoToScrollPosition(evt) {
  var evt = (evt) ? evt : ((window.event) ? window.event : null);
  var objectID = (evt.target) ? evt.target.id : ((evt.srcElement) ? evt.srcElement.id : null);
  if (objectID == "scroll") {
    var divObject = document.getElementById(objectID);
    if (divObject) {
      ScrollToAimingAmount(parseInt((((evt.clientY - 13) - minY) / (maxY - minY)) * maxScrollMarge));
      return false;
    }
  } else {
    return;
  }
} /* GoToScrollPosition */

function showPointer () {
	document.body.style.cursor = 'pointer';
} /* showPointer */

function hidePointer () {
	document.body.style.cursor = 'default';
} /* showPointer */

function ClickUpSoScroll() {
  ScrollUp();
  timerUpScroll = setTimeout("ClickUpSoScroll()", 25);
  return false;
} /* ClickUpSoScroll */

function ClickDownSoScroll() {
  ScrollDown();
  timerDownScroll = setTimeout("ClickDownSoScroll()", 25);
  return false;
} /* ClickDownSoScroll */

function ClearTimers() {
  clearTimeout(timerDownScroll);
  clearTimeout(timerUpScroll);
} /* ClearTimers */

function scrollWheelMove(e) {
  ClearTimers();
  if (window.event || window.Event) {
    if (!e) {
      e = window.event;
    }
    if (e.wheelDelta && e.detail) {
      if (e.wheelDelta > 0) {
        ScrollDown();
      } else {
        ScrollUp();
      }
    } else {
      if (e.wheelDelta <= 0 || e.detail > 0 ) {
        ScrollDown();
      } else {
        ScrollUp();
      }
    }
  }
  return false;
} /* scrollWheelMove */

function ScrollUp() {
  Scroll(-16);
} /* ScrollUp */
  
function ScrollDown() {
  Scroll(16);
} /* ScrollDown */
  
function Scroll(amount) {
  ScrollToAimingAmount(contentZoneDiv.scrollTop + amount);
} /* Scroll */

function ScrollToAimingAmount(aimingAmount) {
  if (aimingAmount < 0)
    aimingAmount = 0;
  if (aimingAmount > (maxScrollMarge - 5))
    aimingAmount = maxScrollMarge;
  
  if (aimingAmount == 0) {
    scrollBarObject.style.top = minY + 'px';
  } else if (aimingAmount == maxScrollMarge) {
    scrollBarObject.style.top = maxY + 'px';
  } else {
    scrollBarObject.style.top = parseInt((aimingAmount / maxScrollMarge) * (maxY - minY)) + minY + 'px';
  }
  contentZoneDiv.scrollTop = aimingAmount;
} /* ScrollToAimingAmount */

function pickItUp (evt) {
  var evt = (evt) ? evt : ((window.event) ? window.event : null);
  var objectID = (evt.target) ? evt.target.id : ((evt.srcElement) ? evt.srcElement.id : null);
  if (objectID == "scrollbar") {
    objectToMove = document.getElementById(objectID);
    if (objectToMove) {
      objectToMove.style.zIndex = 100;
      cY = evt.clientY - objectToMove.offsetTop;
      return false;
    }
  } else {
    objectToMove = null;
    return;
  }
} /* pickItUp */

function dragIt(evt) {
  var evt = (evt) ? evt : ((window.event) ? window.event : null);
  if (objectToMove) {
    var aimingTop = evt.clientY - cY;
    if (aimingTop >= minY && aimingTop <= maxY) {
      objectToMove.style.top = aimingTop + 'px';
      if (contentZoneDiv) {
        contentZoneDiv.scrollTop = parseInt(((aimingTop - minY) / (maxY - minY)) * maxScrollMarge);
      }
    }
    return false;
  }
} /* dragIt */

function dropIt(evt) {
  if (objectToMove) {
    objectToMove.style.zIndex = 0;
    objectToMove = null;
    return false;
  }
  hidePointer();
  ClearTimers();
} /* dropIt */

function InitializeImageScroller() {
  var imagescrollerobject = document.getElementById("ImageScroller");
  if (imagescrollerobject != null) {
    imagescrollerobject.style.overflow = "hidden";
    
    if (imagescrollerobject.scrollHeight > scrollimageheight) {
      var imagescrolluplink = document.getElementById("ImageScrollUpLink");
      var imagescrolldownlink = document.getElementById("ImageScrollDownLink");
      
      imagescrolluplink.style.display = "block";
      imagescrolldownlink.style.display = "block";
    }
  }
} /* InitializeImageScroller */

function ImageScrollUp() {
  var imagescrollerobject = document.getElementById("ImageScroller");
  
  imagescrollerobject.scrollTop = imagescrollerobject.scrollTop - scrollimageheight;
} /* ImageScrollUp */

function ImageScrollDown() {
  var imagescrollerobject = document.getElementById("ImageScroller");
  
  imagescrollerobject.scrollTop = imagescrollerobject.scrollTop + scrollimageheight;
} /* ImageScrollDown */