﻿this.easyscroll = function() {

    // id of the container element
    var id = "contentBlock";

    // navigation buttons text
    var nav = ["Scroll Up", "Scroll Down"];

    //	id for each navigation button (OPTIONAL)
    var navId = ["btnUp", "btnDown"];

    // movement speed
    var speed = 5;

    // desired height of the container element (in percent)
    var height = 70;
    var width = 50;

    //
    // END CONFIG
    // do not edit below this line (unless you want to of course :) )
    //

    var obj = document.getElementById(id);

    obj.up = false;
    obj.down = false;
    obj.fast = false;

    var container = document.createElement("div");
    var parent = obj.parentNode;
    parent.style.bottom = "100px";
    parent.style.top = "150px";
    parent.style.width = width + "%";
    parent.style.minWidth = "650px";
    parent.style.display = "block";
    parent.style.position = "absolute";
    parent.style.margin = "10px 0 0 20px";
    container.id = "easyscroll";
    container.style.height = "100%";
    container.style.width = "100%";
    container.style.left = "10px";
    parent.insertBefore(container, obj);
    parent.removeChild(obj);

    container.style.position = "relative";
    container.style.overflow = "hidden";
    obj.style.position = "absolute";
    obj.style.top = "0";
    obj.style.left = "0";
    container.appendChild(obj);

    var btns = new Array();
    for (var i = 0; i < nav.length; i++) {
        var buttonDiv = document.createElement("div");
        buttonDiv.innerHTML = nav[i];
        buttonDiv.id = navId[i];
        btns.push(buttonDiv);
        parent.insertBefore(buttonDiv, container);
    };

    btns[0].onmouseover = function() {
        obj.up = true;
        this.className = "over";
    };
    btns[0].onmouseout = function() {
        obj.up = false;
        this.className = "";
    };
    btns[1].onmouseover = function() {
        obj.down = true;
        this.className = "over";
    };
    btns[1].onmouseout = function() {
        obj.down = false;
        this.className = "";
    };
    btns[0].onmousedown = btns[1].onmousedown = function() {
        obj.fast = true;
    };
    btns[0].onmouseup = btns[1].onmouseup = function() {
        obj.fast = false;
    };

    this.start = function() {
        var newTop;
        var objHeight = obj.offsetHeight;
        var top = obj.offsetTop;
        var fast = (obj.fast) ? 2 : 1;
        if (obj.down) {
            newTop = ((objHeight + top) > height) ? top - (speed * fast) : top;
            obj.style.top = newTop + "px";
        };
        if (obj.up) {
            newTop = (top < 0) ? top + (speed * fast) : top;
            obj.style.top = newTop + "px";
        };
    };
    obj.interval = setInterval("start()", 50);

};


//
// script initiates on page load. 
//

this.addEvent = function(obj, type, fn) {
    if (obj.attachEvent) {
        obj['e' + type + fn] = fn;
        obj[type + fn] = function() { obj['e' + type + fn](window.event); }
        obj.attachEvent('on' + type, obj[type + fn]);
    } else {
        obj.addEventListener(type, fn, false);
    };
};
addEvent(window, "load", easyscroll);