/* Smooth scrolling
   Changes links that link to other parts of this page to scroll
   smoothly to those links rather than jump to them directly, which
   can be a little disorienting.

   sil, http://www.kryogenix.org/

   v1.0 2003-11-11
   v1.1 2005-06-16 wrap it up in an object
*/
var ss={fixAllLinks:function(){var b=document.getElementsByTagName("a");for(var a=0;a<b.length;a++){var c=b[a];if((c.href&&c.href.indexOf("#")!=-1)&&((c.pathname==location.pathname)||("/"+c.pathname==location.pathname))&&(c.search==location.search)){ss.addEvent(c,"click",ss.smoothScroll)}}},smoothScroll:function(k){if(window.event){target=window.event.srcElement}else{if(k){target=k.target}else{return}}if(target.nodeType==3){target=target.parentNode}if(target.nodeName.toLowerCase()!="a"){return}anchor=target.hash.substr(1);var n=document.getElementsByTagName("a");var d=document.getElementsByTagName("div");var m=[n,d];var l=null;for(var f=0;f<m.length;f++){for(var g=0;g<m[f].length;g++){var h=m[f][g];if(h.name&&(h.name==anchor)){l=h;break}else{if(h.id&&(h.id==anchor)){l=h;break}}}}if(!l){return true}var c=l.offsetLeft;var a=l.offsetTop;var b=l;while(b.offsetParent&&(b.offsetParent!=document.body)){b=b.offsetParent;c+=b.offsetLeft;a+=b.offsetTop}clearInterval(ss.INTERVAL);cypos=ss.getCurrentYPos();ss_stepsize=parseInt((a-cypos)/ss.STEPS);ss.INTERVAL=setInterval("ss.scrollWindow("+ss_stepsize+","+a+',"'+anchor+'")',10);if(window.event){window.event.cancelBubble=true;window.event.returnValue=false}if(k&&k.preventDefault&&k.stopPropagation){k.preventDefault();k.stopPropagation()}},scrollWindow:function(a,c,b){wascypos=ss.getCurrentYPos();isAbove=(wascypos<c);window.scrollTo(0,wascypos+a);iscypos=ss.getCurrentYPos();isAboveNow=(iscypos<c);if((isAbove!=isAboveNow)||(wascypos==iscypos)){window.scrollTo(0,c);clearInterval(ss.INTERVAL);location.hash=b}},getCurrentYPos:function(){if(document.body&&document.body.scrollTop){return document.body.scrollTop}if(document.documentElement&&document.documentElement.scrollTop){return document.documentElement.scrollTop}if(window.pageYOffset){return window.pageYOffset}return 0},addEvent:function(e,d,b,a){if(e.addEventListener){e.addEventListener(d,b,a);return true}else{if(e.attachEvent){var c=e.attachEvent("on"+d,b);return c}else{alert("Handler could not be removed")}}}};ss.STEPS=25;ss.addEvent(window,"load",ss.fixAllLinks);
