var seb=25;					// görgő sebesség
var sebesseg=10;			// úszás sebesség
var ido=10;					// úszás ideje
var scrollbarwidth=20;		// görgő szélessége
var mozog=0;
var fogas=0;
var max=0;
var t;

function link(name){
var hely=(pos(document.getElementsByName(name)[0])-pos(document.getElementById("belso")));
var akt=hely/max
if (akt>1){akt=1;}
var scrolltop=akt*(document.getElementById("scrollbar").offsetHeight-document.getElementById("scroll").offsetHeight);
document.getElementById("scroll").style.top=scrolltop+"px";
mozgat(hely,false,false);
}

function pos(mit){ 
	var fent=0;
	if(mit.offsetParent){while(mit){fent=fent+mit.offsetTop;mit=mit.offsetParent;}}
	else if(mit.y){fent=fent+mit.y;}
	return fent;
};

function csusz(cel){
var akt=parseFloat(document.getElementById("belso").style.top);
if ((cel+akt)>sebesseg){akt=sebesseg-akt;}else{if ((akt+cel)<-sebesseg){akt=-sebesseg-akt;}else{akt=cel;}}
var scrolltop=akt*(document.getElementById("scrollbar").offsetHeight-document.getElementById("scroll").offsetHeight)/max;
document.getElementById("scroll").style.top=scrolltop+"px";
document.getElementById("belso").style.top=(-akt)+"px";
t=setTimeout("csusz("+cel+");",ido);
}

function scrollbar(event){
if ((mozog!=1)&&(event.button!=2)){
var scrolltop=0;
if( typeof( window.pageYOffset ) == 'number' ) {
scrolltop = window.pageYOffset;
} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
scrolltop = document.body.scrollTop;
} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
scrolltop = document.documentElement.scrollTop;
}
var hely=document.getElementById("scrollbar").offsetHeight-document.getElementById("scroll").offsetHeight;
scrolltop = event.clientY+scrolltop-pos(document.getElementById("scrollbar"))-(document.getElementById("scroll").offsetHeight/2);
if (scrolltop<0){scrolltop=0;}
if (scrolltop>hely){scrolltop=hely;}
document.getElementById("scroll").style.top=scrolltop+"px";
mozgat((max*scrolltop/hely),false,true);
}
}

function dragstart(event){
if (event.button!=2){
clearTimeout(t);
fogas=event.clientY-pos(document.getElementById("scroll"));
mozog=1;
if (event.preventDefault){event.preventDefault();}
}
}

function dragend(){
mozog=0;
}

function drag(event){
if (mozog==1){
document.getElementById("select").select();
var hely=document.getElementById("scrollbar").offsetHeight-document.getElementById("scroll").offsetHeight;
var scrolltop=event.clientY-pos(document.getElementById("scrollbar"))-fogas;
if (scrolltop>hely){scrolltop=hely;}
if (scrolltop<0){scrolltop=0;}
document.getElementById("scroll").style.top=scrolltop+"px";
mozgat((max*scrolltop/hely),false,false);
}
}


function scrollinit(){
if (document.getElementById("kulso").offsetHeight<document.getElementById("belso").offsetHeight){
document.getElementById("kulso").style.overflow='hidden';
document.getElementById("kulso").style.width=((document.getElementById("kulso").offsetWidth)-18)+"px";
document.getElementById("scrollbar").style.overflow='visible';
document.getElementById("scrollbar").style.width=scrollbarwidth+'px';
max=document.getElementById("belso").offsetHeight-document.getElementById("kulso").clientHeight;
var ev = document.getElementById("belso");
if (ev.addEventListener)
{
ev.addEventListener("DOMMouseScroll", scroll, false);
ev.addEventListener("mousewheel", scroll, false);
}
ev.onmousewheel = scroll;
}
}

function scroll(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 (window.opera){delta=-delta;}
move(delta);
if (event.preventDefault){event.preventDefault();}

if (navigator.appName=="Microsoft Internet Explorer"){
var pattern=/MSIE \d\.\d;/;
var patternb=/\d\.\d/;
if (pattern.test(navigator.userAgent)){
var ieversion=parseFloat(patternb.exec(pattern.exec(navigator.userAgent)));
if (ieversion<8){ieset();}
}else{ieset();}
}
}

function ieset(){
document.body.style.paddingRight='18px';
document.getElementById("html").style.overflowY='hidden';
var ie=setTimeout("ieback();",1);
}

function ieback(){
document.body.style.paddingRight='0px';
document.getElementById("html").style.overflowY='scroll';
}

function move(delta)
{
if (delta < 0)
{
moveDown(delta);
}
else
{
moveUp(delta);
}
}

function moveUp(delta)
{
clearTimeout(t);
var akt=(-parseFloat(document.getElementById("belso").style.top)-seb)/max;
if (akt<0){akt=0;}
var scrolltop=akt*(document.getElementById("scrollbar").offsetHeight-document.getElementById("scroll").offsetHeight);
document.getElementById("scroll").style.top=scrolltop+"px";
mozgat(-seb,true,false);
}

function moveDown(delta)
{
clearTimeout(t);
var str=document.getElementById("belso").style.top;
var akt=(-parseFloat(document.getElementById("belso").style.top)+seb)/max;
if (akt>1){akt=1;}
var scrolltop=akt*(document.getElementById("scrollbar").offsetHeight-document.getElementById("scroll").offsetHeight);
document.getElementById("scroll").style.top=scrolltop+"px";
mozgat(seb,true,false);
}

function mozgat(mod,relativ,csusztat){
clearTimeout(t);
if (relativ==true){
var akt=parseFloat(document.getElementById("belso").style.top);
akt=mod-akt;
}else{
var akt=mod;
}
if (akt>max){akt=max;}
if (akt<0){akt=0;}
if (csusztat){
csusz(akt);
}else{
document.getElementById("belso").style.top=(-akt)+"px";
}
}
