function scroll_init () {
$(".scroll_vertical").live("mousedown",
		function (e) {
			$(this).data("old",e.pageY);
			$(document).mouseup(function () { clearevent() } );
				$(document).data("parent",$(this).data("parent"));
				$(document).bind('mousemove',
					function (e) {
						obj=$($(this).data("parent"));
						sm100=Math.ceil(($(".scroll_page_up",obj).innerHeight()+$(".scroll_vertical",obj).innerHeight())+$(".scroll_page_down",obj).innerHeight());
						edelta=Math.ceil(e.pageY-$(this).data("old"));
						smpercent=edelta/(sm100/100);
						currscroll=$(".b_content",obj).scrollTop();
						$(".b_content",obj).scrollTop(Math.ceil(currscroll+((Hall/100)*smpercent)));
						$(this).data("old",e.pageY);
						return false;
					}
				);
				
			return false;
		}
	);

$(".scroll_page_down").live("mousedown",
	function () {
		sobj=$(this).data("parent");
		obj=$(sobj);
		Hs=obj.data("Hscreensize");
		$(document).data("parent",sobj);
		$(document).data("Hscreensize",Hs);
		$(".b_content",obj).scrollTop($(".b_content",obj).scrollTop()+Hs);
		TTScrollT=setTimeout(function() { Hstartdo(); },1000);	
		clear_page_scroll();
		return false;
	}
);

$(".scroll_page_up").live("mousedown",
	function () {
		sobj=$(this).data("parent");
		obj=$(sobj);
		Hs=obj.data("Hscreensize")*(-1);
		$(document).data("parent",sobj);
		$(document).data("Hscreensize",Hs);
		$(".b_content",obj).scrollTop($(".b_content",obj).scrollTop()+Hs);
		TTScrollT=setTimeout(function() { Hstartdo(); },1000);	
		clear_page_scroll();
		return false;
	}
);

$(".scroll_page_right").live("mousedown",
	function () {
		sobj=$(this).data("parent");
		obj=$(sobj);
		Ws=obj.data("Wscreensize");
		$(document).data("parent",sobj);
		$(document).data("Wscreensize",Ws);
		$(".b_content",obj).scrollLeft($(".b_content",obj).scrollLeft()+Ws);
		TTScrollT=setTimeout(function() { Wstartdo(); },1000);	
		clear_page_scroll();
		return false;
	}
);

$(".scroll_page_left").live("mousedown",
	function () {
		sobj=$(this).data("parent");
		obj=$(sobj);
		Ws=obj.data("Wscreensize")*(-1);
		$(document).data("parent",sobj);
		$(document).data("Wscreensize",Ws);
		$(".b_content",obj).scrollLeft($(".b_content",obj).scrollLeft()+Ws);
		TTScrollT=setTimeout(function() { Wstartdo(); },1000);	
		clear_page_scroll();
		return false;
	}
);

$(".scroll_button_down").live("mousedown",
	function () {
		sobj=$(this).data("parent");
		obj=$(sobj);
		Hs=check_em($(".content",obj))["h"];
		$(document).data("parent",sobj);
		$(document).data("Hscreensize",Hs);
		$(".b_content",obj).scrollTop($(".b_content",obj).scrollTop()+Hs);
		TTScrollT=setTimeout(function() { Hstartdo(); },500);	
		clear_page_scroll();
		return false;
	}
);

$(".scroll_button_up").live("mousedown",
	function () {
		sobj=$(this).data("parent");
		obj=$(sobj);
		Hs=check_em($(".content",obj))["h"]*(-1);
		$(document).data("parent",sobj);
		$(document).data("Hscreensize",Hs);
		$(".b_content",obj).scrollTop($(".b_content",obj).scrollTop()+Hs);
		TTScrollT=setTimeout(function() { Hstartdo(); },500);	
		clear_page_scroll();
		return false;
	}
);

$(".scroll_button_right").live("mousedown",
	function () {
		sobj=$(this).data("parent");
		obj=$(sobj);
		Ws=check_em($(".content",obj))["w"];
		$(document).data("parent",sobj);
		$(document).data("Wscreensize",Ws);
		$(".b_content",obj).scrollLeft($(".b_content",obj).scrollLeft()+Ws);
		TTScrollT=setTimeout(function() { Wstartdo(); },500);	
		clear_page_scroll();
		return false;
	}
);

$(".scroll_button_left").live("mousedown",
	function () {
		sobj=$(this).data("parent");
		obj=$(sobj);
		Ws=check_em($(".content",obj))["w"]*(-1);
		$(document).data("parent",sobj);
		$(document).data("Wscreensize",Ws);
		$(".b_content",obj).scrollLeft($(".b_content",obj).scrollLeft()+Ws);
		TTScrollT=setTimeout(function() { Wstartdo(); },500);	
		clear_page_scroll();
		return false;
	}
);

$(".scroll_horizontal").live("mousedown",
		function (e) {
			$(this).data("old",e.pageX);
			$(document).mouseup(function () { clearevent() } );
				$(document).data("parent",$(this).data("parent"));
				$(document).bind('mousemove',
					function (e) {
						obj=$($(this).data("parent"));
						sm100=Math.ceil(($(".scroll_page_left",obj).innerWidth()+$(".scroll_horizontal",obj).innerWidth())+$(".scroll_page_right",obj).innerWidth());
						edelta=Math.ceil(e.pageX-$(this).data("old"));
						smpercent=edelta/(sm100/100);
						currscroll=$(".b_content",obj).scrollLeft();
						$(".b_content",obj).scrollLeft(Math.ceil(currscroll+((Wall/100)*smpercent)));
						$(this).data("old",e.pageX);
						return false;
					}
				);
			return false;
		}
	);	
}

function check_em (obj) {
	obj.prepend('<div style="position:absolute;  visibility:hidden; margin:0; padding:0; border:0 none;" id="check_em">Q</div>');
	em_H=$("#check_em").innerHeight();
	$("#check_em").html("W");
	em_W=$("#check_em").innerWidth();
	$("#check_em").remove();
	return {"h":em_H,"w":em_W};
}

function clear_page_scroll () {
	$(document).bind("mousemove",
			function () {
				try {
					clearInterval(TTScrollI);
					clearTimeout(TTScrollT);
					$(document).unbind("mouseup").unbind("mousemove");
				} catch (e) {	};
				
				return false;
			}
		).bind("mouseup",
			function () {
				try {
					clearInterval(TTScrollI);
					clearTimeout(TTScrollT);
					$(document).unbind("mouseup").unbind("mousemove");
				} catch (e) {	};
				return false;
			}
		);
}

function Wstartdo () {
	TTScrollI=setInterval(function () { 
		obj=$($(document).data("parent"));
		$(".b_content",obj).scrollLeft($(".b_content",obj).scrollLeft()+$(document).data("Wscreensize")); 
	},100);	
}

function Hstartdo () {
	TTScrollI=setInterval(function () { 
		obj=$($(document).data("parent"));
		$(".b_content",obj).scrollTop($(".b_content",obj).scrollTop()+$(document).data("Hscreensize")); 
	},100);	
}

function clearevent (zobj) {
	$(document).unbind('mousemove').unbind('mouseup');
	return false;
}

function remove_scrolls () {
	$(".scroll_heigh,.scroll_width").remove();
}

function add_scroll (sobj, Content_scroll_size) {
	obj=$(sobj);
	obj.prepend('<table style="width:15px; height:100%; position:absolute; right:0px; top:0px; overflow:hidden; z-index:1000;" cellpadding="0" cellspacing="0" class="scroll_heigh">'+
		'<tr><td style="width:15px; height:10px; " class="scroll_button scroll_button_up"><img src="/images/blank.gif" width="0" height="0" /></td></tr>'+
		'<tr><td style="width:15px; height:1px;" class="scroll_page_up scroll_do"><img src="/images/blank.gif" width="0" height="0" /></td></tr>'+
		'<tr><td style="width:15px; height:1px;" class="scroll_vertical scroll_do"><img src="/images/blank.gif" width="0" height="0" /></td></tr>'+
		'<tr><td style="width:15px; " class="scroll_page_down scroll_do"><img src="/images/blank.gif" width="0" height="0" /></td></tr>'+
		'<tr><td style="width:15px; height:10px; " class="scroll_button scroll_button_down"><img src="/images/blank.gif" width="0" height="0" /></td></tr>'+
		'<tr><td style="width:15px; height:15px;" class="scroll_cross"><img src="/images/blank.gif" width="0" height="0" /></td></tr>'+
	'</table>'+
	'<table style="width:100%; height:15px; position:absolute; left:0px; bottom:0px; z-index:1000; overflow:hidden;" cellpadding="0" cellspacing="0" class="scroll_width">'+
		'<tr>'+
		'<td style="width:10px; height:15px; " class="scroll_button scroll_button_left"><img src="/images/blank.gif" width="0" height="0" /></td>'+
		'<td style="height:15px; width:1px;" class="scroll_page_left scroll_do"><img src="/images/blank.gif" width="0" height="0" /></td>'+
		'<td style="height:15px; width:100px;" class="scroll_horizontal scroll_do"><img src="/images/blank.gif" width="0" height="0" /></td>'+
		'<td style="height:15px; " class="scroll_page_right scroll_do"><img src="/images/blank.gif" width="0" height="0" /></td>'+
		'<td style="width:10px; height:15px; "  class="scroll_button scroll_button_right"><img src="/images/blank.gif" width="0" height="0" /></td>'+
		'<td style="width:10px; height:15px;" class="scroll_cross"><img src="/images/blank.gif" width="0" height="0" /></td></tr>'+
	'</table>');
	$(".scroll_do, .scroll_button",obj).data("parent",sobj);
	scroll_delta=tscroll_size-Content_scroll_size;
	$(".scroll_heigh, .scroll_heigh td, .scroll_button",obj).css("width",Content_scroll_size+"px");
	$(".scroll_width, .scroll_width td, .scroll_button",obj).css("height",Content_scroll_size+"px");

	tscroll=test_scroll($(".b_content",obj));
	if (!tscroll["h"]) $(".scroll_heigh",obj).css("display","none");
	if (!tscroll["w"]) $(".scroll_width",obj).css("display","none");

	if (tscroll["h"]+tscroll["w"]<2) $(".scroll_cross",obj).css({"width":1,"height":1});
	scroller_size(obj);
	schetchik++;
	
	a='$(window).resize('+'\n'+
	'function () { '+'\n'+
	'	try { clearTimeout(timeout'+schetchik+'); } catch(e) { }'+'\n'+
	'	timeout'+schetchik+' = setTimeout( '+'\n'+
	'		function () { '+'\n'+
	'			scroller_size($("'+sobj+'"));'+'\n'+
	'		},'+'\n'+
	'	300);'+'\n'+
	'} )';
	eval(a);
}

function do_scroll (obj)  {
	Hall=obj.data("Hall");
	Wall=obj.data("Wall");
	if (Hall) {
		sd=$(".b_content",obj).scrollTop();
		SHW=(sd>0)?Math.floor(sd/(Hall/100))+"%":"1px";
		$(".scroll_page_up",obj).css("height",(parseInt(SHW)<1)?"1px":SHW);
	}
	if (Wall) {
		sd=$(".b_content",obj).scrollLeft();
		SHW=(sd>0)?Math.floor(sd/(Wall/100))+"%":"1px";
		$(".scroll_page_left",obj).css("width",(parseInt(SHW)<1)?"1px":SHW);
	}
}

function scroller_size (obj) {
	obj.unbind("scroll").removeData("Hscreensize").removeData("Wscreensize").removeData("Hall").removeData("SHall").removeData("Wall").removeData("SWall");
	Hscreensize=parseInt($(".b_content",obj).innerHeight());
	Wscreensize=parseInt($(".b_content",obj).innerWidth());
	obj.data("Hscreensize",Hscreensize).data("Wscreensize",Wscreensize);
	
	oldscroll=$(".b_content",obj).scrollLeft();
	$(".b_content",obj).scrollLeft(608453700);
	sdleft=$(".b_content",obj).scrollLeft();
	$(".b_content",obj).scrollLeft(oldscroll);
	oldscroll=$(".b_content",obj).scrollTop();
	$(".b_content",obj).scrollTop(608453700);
	sdtop=$(".b_content",obj).scrollTop();
	$(".b_content",obj).scrollTop(oldscroll);
	
	if (sdtop>0) {
		Hall=Math.ceil(sdtop+Hscreensize);
		SHall=Math.floor((Hscreensize/(Hall/100))-1);
		$(".scroll_vertical",obj).css("height",SHall+"%");
		obj.data("Hall",Hall).data("SHall",SHall);
		sdtop=$(".b_content",obj).scrollTop();
		SHall=Math.floor((sdtop/(Hall/100))-1);
		$(".scroll_page_up",obj).css("height",SHall+"%");
	}
	else {
		$(".scroll_vertical",obj).css("height","100%");	
		$(".scroll_page_up",obj).css("height","1px");
	}
	if (sdleft>0) {
		Wall=Math.ceil(sdleft+Wscreensize);
		SWall=Math.floor((Wscreensize/(Wall/100))-1);
		obj.data("Wall",Wall).data("SWall",SWall);
		$(".scroll_horizontal",obj).css("width",SWall+"%");
		sdleft=$(".b_content",obj).scrollLeft();
		SWall=Math.floor((sdleft/(Wall/100))-1);
		$(".scroll_page_left",obj).css("width",SWall+"%");
	}
	else {
		$(".scroll_horizontal",obj).css("width","100%");
		$(".scroll_page_left",obj).css("width","1px");
	}
	$(".b_content",obj).bind("scroll",
		function () { 
			do_scroll($(this).parent());
		});

	GH=parseInt($(".b_content",obj).outerHeight())-tscroll_size;
		GW=parseInt($(".b_content",obj).outerWidth())-tscroll_size;
		$(".b_content",obj).css("clip","rect(0px "+GW+"px "+GH+"px "+parseInt($(".content",obj).css("margin-left"))+"px)");
}


function test_scroll (obj) {
	old_scroll=obj.scrollLeft();
	if ( old_scroll == 0 ) {
		obj.scrollLeft(1);
		ot_left=obj.scrollLeft();
		obj.scrollLeft(old_scroll);
	}
	else {
		ot_left=1;
	}
	old_scroll=obj.scrollTop();
	if ( old_scroll == 0 ) {
		obj.scrollTop(1);
		ot_top=obj.scrollTop();
		obj.scrollTop(old_scroll);
	}
	else {
		ot_top=1;
	}
	return {"w":ot_left,"h":ot_top};
}

function scroll_size () {
	$("body").prepend('<div id="test_scroll_size" style="position:absolute; z-index:1000; width:50px; height:50px; overflow:auto; visibility:hidden;"><div style="padding:25px; width:1px; height:1px; position:relative;"><img src="/images/blank.gif" width="1" height="1" /></div></div>');
	$("#test_scroll_size").scrollTop(1000);
	nextscroll=$("#test_scroll_size").scrollTop();
	$("#test_scroll_size").remove();
	return --nextscroll;
}