ScrollBar=function(content,classContentName,classScrollName){
		var thisF=this;
		this.contentElement=document.createElement("div");
		this.scrollBarMainElement=document.createElement("div");
		this.scrollBarTopElement=document.createElement("div");
		this.scrollBarBottomElement=document.createElement("div");
		this.scrollBarBarElement=document.createElement("div");
	
		this.contentElement.className=classContentName;
		this.contentElement.style.overflow="hidden";
		this.contentElement.style.position="relative";

		this.scrollBarMainElement.className=classScrollName;
		this.scrollBarMainElement.style.position="relative";
		this.scrollBarMainElement.style.styleFloat="right";
		this.scrollBarMainElement.style.cssFloat="right";

		this.scrollBarTopElement.className="scrollBarTop";
		this.scrollBarTopElement.style.position="absolute";
		this.scrollBarTopElement.style.top="0px";

		this.scrollBarBottomElement.className="scrollBarBottom";
		this.scrollBarBottomElement.style.position="absolute";

		this.scrollBarBarElement.className="scrollBarBar"
		this.scrollBarBarElement.style.position="absolute";
		this.scrollBarBarElement.style.top="20px";
		this.scrollBarBarElement.style.height="10px";


		this.scrollBarBarElement.onmousedown=function(event){
			thisF.scrollBarMouseDown(event);
		}	

		if (window.addEventListener) this.contentElement.addEventListener('DOMMouseScroll', function(event){thisF.scrollBarMouseWheel(event);}, false);
		else{
			this.contentElement.onmousewheel=function(event){
				thisF.scrollBarMouseWheel(event);
			}
		}
	
		this.scrollBarTopElement.onmousedown=function(event){
			thisF.scrollBarTopMouseDown();
		}	

		this.scrollBarBottomElement.onmousedown=function(event){
			thisF.scrollBarBottomMouseDown();
		}	

		this.scrollBarMainElement.appendChild(this.scrollBarTopElement);
		this.scrollBarMainElement.appendChild(this.scrollBarBottomElement);
		this.scrollBarMainElement.appendChild(this.scrollBarBarElement);

		var parentContent=content.parentNode;
		parentContent.insertBefore(this.contentElement,content);
		this.contentElement.appendChild(this.scrollBarMainElement);
		this.contentElement.appendChild(content);
		this.realContentElement=content;
		this.realContentElement.style.position="absolute";
		this.realContentElement.style.top="0px";
	}

ScrollBar.prototype={	
	mouseEvent:{
		mouseX:0,
		mouseY:0,
		oldMouseX:0,
		oldMouseY:0
	},
	scrollTop:0,
	scrollMax:0,
	scrollStep:0.0,
	scrollTimer:0,
	active:0,
	
	start:function(){
		this.realContentElement.style.top="0px";
		this.scrollBarMainElement.style.height=this.contentElement.offsetHeight+"px";
		this.scrollBarTopElement.style.top=(this.contentElement.offsetHeight-this.scrollBarTopElement.offsetHeight)+"px";
		var contentHeight=parseFloat(this.contentElement.offsetHeight);
		var contentRealHeight=parseFloat(this.realContentElement.offsetHeight);
		contentRealHeight=contentRealHeight*(1.01+(1/((contentHeight-contentRealHeight)*4)));
		this.realContentElement.style.width=(this.contentElement.offsetWidth-this.scrollBarMainElement.offsetWidth-20)+"px";
		if (contentHeight>contentRealHeight){
			this.scrollBarMainElement.style.height="1px";
			this.scrollBarMainElement.style.visibility="hidden";
//			this.realContentElement.style.width=this.contentElement.offsetWidth+"px";
			this.active=0;
		}else{
			this.active=1;
//			this.realContentElement.style.width=this.contentElement.offsetWidth-this.scrollBarMainElement.offsetWidth+"px";
/*			this.scrollBarMainElement.style.height=(contentHeight)+"px";
			this.scrollBarMainElement.style.visibility="visible";
			this.scrollBarBarElement.style.height=parseInt(((contentHeight)*contentHeight)/(Math.pow(contentRealHeight,1.2)))+"px";
			this.scrollTop=this.scrollBarTopElement.offsetHeight;
			this.scrollMax=contentHeight-this.scrollBarBottomElement.offsetHeight-this.scrollBarBarElement.offsetHeight;
			this.scrollBarBarElement.style.top=this.scrollTop+"px";
			this.scrollStep=parseFloat(contentRealHeight/(contentHeight-(this.scrollBarBottomElement.offsetHeight+this.scrollBarTopElement.offsetHeight)));
*/
			this.scrollBarMainElement.style.height=(contentHeight)+"px";
			this.scrollBarMainElement.style.visibility="visible";
			this.scrollStep=(parseFloat(contentRealHeight)+(parseFloat(contentHeight)*0.8))/(parseFloat(contentHeight));
			this.scrollTop=this.scrollBarTopElement.offsetHeight;
			this.scrollMax=this.scrollBarMainElement.offsetHeight-this.scrollBarBottomElement.offsetHeight;
			this.scrollBarBarElement.style.height=parseInt(this.scrollMax*contentHeight/contentRealHeight)+"px"
			this.scrollMax=this.scrollMax-parseInt(this.scrollBarBarElement.style.height);
			this.scrollBarBarElement.style.top=this.scrollTop+"px";
//			this.scrollStep=this.scrollStep+(parseFloat(this.scrollBarBarElement.style.height)/(this.scrollStep));

		}
	},
	
	scrollBarMouseDown:function(event){
		var thisF=this;
		this.getMouseEvent(event);
		document.getElementsByTagName("body")[0].onmouseup=function(event){thisF.scrollBarMouseUp(event);};
		document.getElementsByTagName("body")[0].onmousemove=function(event){thisF.scrollBarMouseMove(event);};
	},

	scrollBarMouseUp:function(event){
		this.getMouseEvent(event);
		document.getElementsByTagName("body")[0].onmouseup=function(){};
		document.getElementsByTagName("body")[0].onmousemove=function(){};
	},

	scrollBarMouseMove:function(event){
		this.getMouseEvent(event);
		var moveY=this.mouseEvent.mouseY-this.mouseEvent.oldMouseY;

		this.scrollBarBarElement.style.top=(parseInt(this.scrollBarBarElement.style.top)+moveY)+"px";
		if (parseInt(this.scrollBarBarElement.style.top) < this.scrollTop)this.scrollBarBarElement.style.top=this.scrollTop+"px";
		else if (parseInt(this.scrollBarBarElement.style.top) > this.scrollMax)this.scrollBarBarElement.style.top=this.scrollMax+"px";
		this.modContentFromScrollBarPos();
	},
	
	scrollBarMouseWheel:function(event){
		var delta = 0;
		if (!event) event = window.event;
		
		if (event.wheelDelta) {
			delta = event.wheelDelta/120;
			if (window.opera) delta = -delta;
        } else if (event.detail) delta = -event.detail/3;
		
        if (delta){
			this.scrollBarBarElement.style.top=(parseInt(this.scrollBarBarElement.style.top)-delta)+"px";

			if (parseInt(this.scrollBarBarElement.style.top) < this.scrollTop)this.scrollBarBarElement.style.top=this.scrollTop+"px";
			else if (parseInt(this.scrollBarBarElement.style.top) > this.scrollMax)this.scrollBarBarElement.style.top=this.scrollMax+"px";

			this.modContentFromScrollBarPos();
		}

		if (event.preventDefault) event.preventDefault();
		event.returnValue = false;
	},
	
	modContentFromScrollBarPos:function(){
		if (this.active)
			this.realContentElement.style.top=parseInt(-(parseInt(this.scrollBarBarElement.style.top)- this.scrollTop)*this.scrollStep)+"px";
	},
	
	scrollBarTopMouseDown:function(){
		var thisF=this;
		this.scrollTimer=setInterval(function(){thisF.scrollMoveStep(-5);},100);
		document.getElementsByTagName("body")[0].onmouseup=function(event){thisF.scrollBarTopMouseUp(event);}
		thisF.scrollMoveStep(-5);
	},

	scrollBarTopMouseUp:function(){
		document.getElementsByTagName("body")[0].onmouseup=function(){};
		clearInterval(this.scrollTimer);
	},

	scrollBarBottomMouseDown:function(){
		var thisF=this;
		this.scrollTimer=setInterval(function(){thisF.scrollMoveStep(5);},100);
		document.getElementsByTagName("body")[0].onmouseup=function(event){thisF.scrollBarTopMouseUp(event);}
		thisF.scrollMoveStep(5);
	},

	scrollBarBottomMouseUp:function(){
		document.getElementsByTagName("body")[0].onmouseup=function(){};
		clearInterval(this.scrollTimer);
	},

	scrollMoveStep:function(delta){
		this.scrollBarBarElement.style.top=(parseInt(this.scrollBarBarElement.style.top)-delta)+"px";
		if (parseInt(this.scrollBarBarElement.style.top) < this.scrollTop)this.scrollBarBarElement.style.top=this.scrollTop+"px";
		else if (parseInt(this.scrollBarBarElement.style.top) > this.scrollMax)this.scrollBarBarElement.style.top=this.scrollMax+"px";
		this.modContentFromScrollBarPos();	
	},
	
	getMouseEvent:function(event){
		this.mouseEvent.oldMouseX=this.mouseEvent.mouseX;
		this.mouseEvent.oldMouseY=this.mouseEvent.mouseY;
		if (! event){
			var event=window.event;
			this.mouseEvent.mouseX=event.clientX;
			this.mouseEvent.mouseY=event.clientY;
		}else{
			this.mouseEvent.mouseX=event.pageX;
			this.mouseEvent.mouseY=event.pageY;
		}
	}
	
};

