$(function(){
	$.extend($.fn.disableTextSelect = function() {
		return this.each(function(){
			if($.browser.mozilla){//Firefox
				$(this).css('MozUserSelect','none');
			}else if($.browser.msie){//IE
				$(this).bind('selectstart',function(){return false;});
			}else{//Opera, etc.
				$(this).mousedown(function(){return false;});
			}
		});
	});
});	

$(function(){
	$.extend($.fn.enableTextSelect = function() {
		return this.each(function(){
			if($.browser.mozilla){//Firefox
				$(this).css('MozUserSelect','auto');
			}else if($.browser.msie){//IE
				$(this).unbind('selectstart');
			}else{//Opera, etc.
				$(this).mousedown(function(){return true;});
			}
		});
	});
});	
	
	var scroll_total;
	var scroll_h;
	var scroll_pos=false;
	var scroll_posmin=30;
	var scroll_pospad;
	var scroll_ratio;
	
	
	function InitScroll() 
	{
		//$("*").scroll(function() { alert($(this).html()); });
		
		scroll_total=$("div#scroll_content").outerHeight();
		scroll_h=$("div#scroll_bg").outerHeight();
		if(scroll_total>scroll_h)
		{
			$("div#scrollbar").show();
			//$("div#scrollbar_top").click(function() { ScrollUp(); });
			//$("div#scrollbar_bot").click(function() { ScrollBot(); });
			$("div#scrollbar_pos").mousedown(function(ev) { ScrollBegin(ev); });
			$(document).mouseup(function(ev) { ScrollStop(); });
			
			posh=Math.floor(scroll_h*$("div#scrollbar_bg").height()/scroll_total);
			if(posh<scroll_posmin) { posh=scroll_posmin; }
			$("div#scrollbar_pos").css("height",posh);
			scroll_ratio=posh/scroll_h;
			
			
			/*
			$("div#scroll_bg").scroll(function() {
				newtop=Math.floor($(this).scrollTop()*scroll_ratio);
				$("div#scrollbar_pos").css("top",newtop);
			});*/
			
			$(document).mousemove(function(ev) {
				
				if(scroll_pos)
				{
					o=$("div#scrollbar_bg").offset();
					newtop=ev.pageY-o.top-scroll_pospad;
					if(newtop<0) { newtop=0; }
					if(newtop>$("div#scrollbar_bg").height()-$("div#scrollbar_pos").height()) { newtop=$("div#scrollbar_bg").height()-$("div#scrollbar_pos").height(); }
					$("div#scrollbar_pos").css("top",newtop);
					
					scr=newtop*1/scroll_ratio;
					$("div#scroll_content").css("top",-1*scr);
				}
			});
			//obsluga scrolla
			if(window.addEventListener) document.addEventListener('DOMMouseScroll', moveObject, false);
			//for IE/OPERA etc
			document.onmousewheel = moveObject;
		}
		

		
		
	}
	function moveObject(event)
	{
		var delta = 0;
		if (!event) event = window.event;
		// normalize the delta
		if (event.wheelDelta)
		{
		// IE & Opera
			delta = event.wheelDelta / 120;
		}
		else if (event.detail) // W3C
		{
			delta = -event.detail / 3;
		}
		if(delta>0) { ScrollUp(); }
		else { ScrollBot(); }
		o=$("div#scroll_content").position();
		newtop=Math.floor(o.top*scroll_ratio*-1);
		$("div#scrollbar_pos").css("top",newtop);
		
	
	}
	
	function ScrollUp() 
	{
		
		scroll_top=$("div#scroll_content").position().top;
		if(scroll_top<0)
		{
			new_scroll_top=scroll_top+20;
			if(new_scroll_top>0) { new_scroll_top=0; }
			$("div#scroll_content").css("top",new_scroll_top);
		}
	}
	function ScrollBot() 
	{
		scroll_top=$("div#scroll_content").position().top;
		if(scroll_top>-1*(scroll_total-scroll_h))
		{
			new_scroll_top=scroll_top-20;
			if(new_scroll_top<-1*(scroll_total-scroll_h)) { new_scroll_top=-1*(scroll_total-scroll_h); }
			$("div#scroll_content").css("top",new_scroll_top);
		}
	}
	function ScrollBegin(ev)
	{
		scroll_pospad=ev.pageY-$("div#scrollbar_pos").offset().top;
		scroll_pos=true;
		$("body").disableTextSelect();
	}
	function ScrollStop()
	{
		scroll_pos=false;
		$("body").enableTextSelect();
	}
	$(document).ready(function() { if($("div#scroll_content").length) { InitScroll(); } });
