scrollSteps=1; i=1; ii=1; a=1;b=1;v=20;t=30;
Timer="";
function scrollWin(anchorID){
	if (!anchorID) return;
	id=document.getElementById(anchorID.substring(anchorID.indexOf("#")+1,anchorID.length)); //clearTimeout(timer);
	scrdiv=document.getElementById('scrolldiv'); scrdivTop=scrdiv.offsetTop;
	anchorPos=id.offsetTop-24; // meno 24 perché stranamente firefox mette offsettop a 24 quando should be 0
	distance=anchorPos - scrdivTop;
	if(distance <200){ 
			if(scrdiv.scrollTop < anchorPos)	{ 
					scrdiv.scrollTop +=2;
					timer=setTimeout("scrollWin('"+anchorID+"')",10);
			} return false;
	}		
	if(distance <500){ 
			if(scrdiv.scrollTop < anchorPos)	{ 
					scrdiv.scrollTop +=5;
					timer=setTimeout("scrollWin('"+anchorID+"')",10);
			} return false;
	}		
	zweidrittel=Math.round(scrdivTop+(distance / 2)-21)
	if (i<=10) { 
			scrdiv.scrollTop +=2; i++;
			timer=setTimeout("scrollWin('"+anchorID+"')",10);return false;
	}
	if (ii<=20) { 
			scrdiv.scrollTop +=ii; ii++;
			timer=setTimeout("scrollWin('"+anchorID+"')",10);return false;
	}
	if (scrdiv.scrollTop < zweidrittel-15) { 
			scrdiv.scrollTop +=30; a++;
			timer=setTimeout("scrollWin('"+anchorID+"')",10);return false;
	}
	if (b<a) { 
			scrdiv.scrollTop +=30; b++;
			timer=setTimeout("scrollWin('"+anchorID+"')",10);return false;
	}
	if (v>=1) { 
			scrdiv.scrollTop +=v; v+=-1;
			timer=setTimeout("scrollWin('"+anchorID+"')",10);return false;
	}
	if(scrdiv.scrollTop < anchorPos)	{ 
		scrdiv.scrollTop ++;
		timer=setTimeout("scrollWin('"+anchorID+"')",10);return false;
	} 
	if(scrdiv.scrollTop > anchorPos)	{ 
		scrdiv.scrollTop +=-1;
		timer=setTimeout("scrollWin('"+anchorID+"')",10);return false;
	}	 
	scrollSteps=1; i=1; ii=1; a=1;b=1;v=20;
	return false;
}

function toTop(){
	if(scrdiv.scrollTop > scrdivTop+1000-24) {
			scrdiv.scrollTop -=30;
			timer=setTimeout("toTop()",10);return false;
	}
	if(t>=10 && scrdiv.scrollTop > scrdivTop-24) {
			scrdiv.scrollTop -=t; t-=1;
			timer=setTimeout("toTop()",10);return false;
	}
	if(scrdiv.scrollTop > scrdivTop+512-24) {
			scrdiv.scrollTop -=10;
			timer=setTimeout("toTop()",10);return false;
	}
	if(scrdiv.scrollTop > scrdivTop+150-24) {
			scrdiv.scrollTop -=5;
			timer=setTimeout("toTop()",10);return false;
	}
	if(scrdiv.scrollTop > scrdivTop+75-24) {
			scrdiv.scrollTop -=3;
			timer=setTimeout("toTop()",10);return false;
	}
	if(scrdiv.scrollTop > scrdivTop-24) {
			scrdiv.scrollTop -=1;
			timer=setTimeout("toTop()",10);return false;
	}
	if(scrdiv.scrollTop < scrdivTop-24) {
			scrdiv.scrollTop ++;
			timer=setTimeout("toTop()",10);return false;
	}
	t=30;
	return false;
}
