$.fn.scrollpane=function() {
	var interval=20;
	var pos;
	var slowscroll=4;
	var fastscroll=6;
	return $(this).each(function(nr, elem) {
		var $elem=$(elem);
		var imgnr="1";
		if ($elem.hasClass("hell")) {imgnr="2"} else {imgnr="1"};
		$elem.css("overflow","hidden");
		$elem.find("input").keydown(function(ev) {
			if (ev.which==9) return false; // NO TAB NAVIGATION!!!
			//console.log(ev);
		});
		if ($elem.height()>$elem.children().height()) return;
		//$elem.css("width",$elem.width()-40);
		//console.log($elem.position(),$elem.get(0));
		//console.log("init:",$elem.width());
		var panescroller="<div class='panescroller' style='position:absolute;top:"+($elem.position().top+$elem.height()-185)+"px;left:"+($elem.position().left+$elem.width())+"px'>";// left:"+($elem.width()+50)+"px; top:"+($elem.offset().top+$elem.height()-50)+"'>";
		panescroller+="<div class='scrollpanebutton' style='background:white; color:black; position:absolute; left:12px; top: 150px; width:14px; height:14px; overflow:hidden; text-align:center; cursor:pointer;'><img src='css/images/scroll_up_"+imgnr+".jpg' alt='&uArr;' /></div>";
		panescroller+="<div class='scrollpanebutton' style='background:white; color:black; position:absolute; left:12px; top: 170px; width:14px; height:14px; overflow:hidden; text-align:center; cursor:pointer;'><img src='css/images/scroll_down_"+imgnr+".jpg' alt='&dArr;' /></div>";
		panescroller+="</div>";
		//var panescroller="<div class='panescroller'></div>";
		var $panescroller=$(panescroller);
		$elem.after($panescroller);
		//$elem.after("<div class='panescrollershadow' style='background:black; position:absolute; opacity:0.5; left: "+($panescroller.position().left-1)+"; top: "+($panescroller.position().top)+"; width:2px; height: "+$panescroller.height()+";'></div>");
		var scrollanimation=false;
		$elem.children().children().css("position","relative");
		var $targetelem=$elem.children().children();
		$panescroller.children().eq(0).mouseover(function() {
			if (scrollanimation) window.clearInterval(scrollanimation);
			scrollanimation=window.setInterval(function() {
				if (!pos)
				pos=parseInt($elem.children().children().css("top"));
                                 if (isNaN(pos)) pos=0;
				if (pos>=0) {
					window.clearInterval(scrollanimation);
					scrollanimation=false;
					return;
				}
				pos+=slowscroll;//=5;
				$targetelem.css("top",pos);
			},interval);
		}).mouseout(function() {
			if (scrollanimation) window.clearInterval(scrollanimation);
			scrollanimation=false;
		}).mousedown(function() {
			if (scrollanimation) window.clearInterval(scrollanimation);
			scrollanimation=window.setInterval(function() {
				if (!pos)
				pos=parseInt($elem.children().children().css("top"));
                                 if (isNaN(pos)) pos=0;
				if (pos>=0) {
					window.clearInterval(scrollanimation);
					scrollanimation=false;
					return;
				}
				pos+=fastscroll;//=10;
				$targetelem.css("top",pos);
			},interval);
		}).mouseup(function() {
			if (scrollanimation) window.clearInterval(scrollanimation);
			scrollanimation=window.setInterval(function() {
				if (!pos)
				pos=parseInt($elem.children().children().css("top"));
                                 if (isNaN(pos)) pos=0;
				if (pos>=0) {
					window.clearInterval(scrollanimation);
					scrollanimation=false;
					return;
				}
				pos+=slowscroll;//=10;
				$targetelem.css("top",pos);
			},interval);
		});
		$panescroller.children().eq(1).mouseover(function() {
			if (scrollanimation) window.clearInterval(scrollanimation);
			scrollanimation=window.setInterval(function() {
				if (!pos)
				pos=parseInt($elem.children().children().css("top"));
            if (isNaN(pos)) pos=0;
				if ((pos+$elem.children().height())<=$elem.height()) {
					window.clearInterval(scrollanimation);
					scrollanimation=false;
					return;
				}
				pos-=slowscroll;//=5;
				$targetelem.css("top",pos);
			},interval);
		}).mouseout(function() {
			if (scrollanimation) window.clearInterval(scrollanimation);
			scrollanimation=false;
		}).mousedown(function(){
			if (scrollanimation) window.clearInterval(scrollanimation);
			scrollanimation=window.setInterval(function() {
				if (!pos)
				pos=parseInt($elem.children().children().css("top"));
                                 if (isNaN(pos)) pos=0;
				if ((pos+$elem.children().height())<=$elem.height()) {
					window.clearInterval(scrollanimation);
					scrollanimation=false;
					return;
				}
				pos-=fastscroll;//=10;
				$targetelem.css("top",pos);
			},interval);
		}).mouseup(function(){
			if (scrollanimation) window.clearInterval(scrollanimation);
			scrollanimation=window.setInterval(function() {
				if (!pos)
				pos=parseInt($elem.children().children().css("top"));
                                 if (isNaN(pos)) pos=0;
				if ((pos+$elem.children().height())<=$elem.height()) {
					window.clearInterval(scrollanimation);
					scrollanimation=false;
					return;
				}
				pos-=slowscroll;//=10;
				$targetelem.css("top",pos);
			},interval);
		});
	});
};