
Scroller={speed:15,gy:function(d){gy=d.offsetTop
if(d.offsetParent)while(d=d.offsetParent)gy+=d.offsetTop
return gy},scrollTop:function(){body=document.body
d=document.documentElement
if(body&&body.scrollTop)return body.scrollTop
if(d&&d.scrollTop)return d.scrollTop
if(window.pageYOffset)return window.pageYOffset
return 0},add:function(event,body,d){if(event.addEventListener)return event.addEventListener(body,d,false)
if(event.attachEvent)return event.attachEvent('on'+body,d)},end:function(e){if(window.event){window.event.cancelBubble=true
window.event.returnValue=false
return;}
if(e.preventDefault&&e.stopPropagation){e.preventDefault()
e.stopPropagation()}},scroll:function(d){i=window.innerHeight||document.documentElement.clientHeight;h=document.body.scrollHeight;a=Scroller.scrollTop()
if(d>a)
if(h-d>i)
a+=Math.ceil((d-a)/Scroller.speed)
else
a+=Math.ceil((d-a-(h-d))/Scroller.speed)
else
a=a+(d-a)/Scroller.speed;window.scrollTo(0,a)
if(a==d||Scroller.offsetTop==a)clearInterval(Scroller.interval)
Scroller.offsetTop=a},init:function(){Scroller.add(window,'load',Scroller.render)},render:function(){a=document.getElementsByTagName('a');Scroller.end(this);window.onscroll
for(i=0;i<a.length;i++){l=a[i];if(l.href&&l.href.indexOf('#')!=-1&&((l.pathname==location.pathname)||('/'+l.pathname==location.pathname))){Scroller.add(l,'click',Scroller.end)
l.onclick=function(){Scroller.end(this);l=this.hash.substr(1);a=document.getElementsByTagName('a');for(i=0;i<a.length;i++){if(a[i].name==l){clearInterval(Scroller.interval);Scroller.interval=setInterval('Scroller.scroll('+Scroller.gy(a[i])+')',10);}}}}}}}
Scroller.init();