function getElement(name,nest){
        nest = nest ? "document."+nest+"." : "";
        var el = dom ? document.getElementById(name) : iex ? document.all[name] : ns4 ? eval(nest+"document."+name) : false;
        el.css = ns4 ? el : el.style;
        el.getTop = function(){return parseInt(el.css.top) || 0};
        el.setTop = function(y){el.css.top = ns4 ? y: y+"px"};
        el.getHeight = function(){return ns4 ? el.document.height : el.offsetHeight};
        el.getClipHeight = function(){return ns4 ? el.clip.height : el.offsetHeight};
        el.hideVis = function(){el.css.visibility="hidden"};
        el.addEvent = addEvent;
        el.removeEvent = removeEvent;
        return el;
}
// ||||||||||||||||||||||||||||||||||||||||||||||||||
// Scroller Class
ScrollObj = function(speed, upObj, downObj, contentMaskObj, contentObj){
        this.speed = speed;
        this.upObj = getElement(upObj);
        this.downObj = getElement(downObj);
        this.contentMaskObj = getElement(contentMaskObj);
        this.contentObj = getElement(contentObj,contentMaskObj);
        this.obj = contentObj+"Object";
        eval(this.obj+"=this");
        
        this.contentMaskHeight = this.contentMaskObj.getClipHeight();
        this.contentHeight = this.contentObj.getHeight();
        this.contentLength = this.contentHeight-this.contentMaskHeight;
        this.scrollTimer = null;
        
        if(this.contentHeight <= this.contentMaskHeight){
                this.upObj.hideVis();
				this.downObj.hideVis();
        }else{
                var self = this;
				this.upObj.addEvent("onmousedown", function(){self.scroll(self.speed);return false});
                this.upObj.addEvent("onmouseup", function(){self.stopScroll()});
                this.upObj.addEvent("onmouseout", function(){self.stopScroll()});
                this.downObj.addEvent("onmousedown", function(){self.scroll(-self.speed);return false});
                this.downObj.addEvent("onmouseup", function(){self.stopScroll()});
                this.downObj.addEvent("onmouseout", function(){self.stopScroll()});
        }
}
ScrollObj.prototype.scroll = function(speed){
        var contentMovement = this.contentObj.getTop()+speed;
        if(contentMovement > 0){
                contentMovement = 0;
        }else if(contentMovement < -this.contentLength){
                contentMovement = -this.contentLength;
        }
        this.contentObj.setTop(contentMovement);
        this.scrollTimer = window.setTimeout(this.obj+".scroll("+speed+")",25);
}
ScrollObj.prototype.stopScroll = function(){
        if(this.scrollTimer){
                window.clearTimeout(this.scrollTimer);
                this.scrollTimer = null;
        }
}
