/**
 * ページ最上部へのスクロール（MochiKit使用）
 *
 * @copyright 2007 Lism.in
 * @author    Ryo Miyake <ryo.studiom@gmail.com>
 */

doAdapt({
    'MochiKit' : function() { addLoadEvent(setScrollEvent); },
    'Prototype': function() { Event.observe(window, 'load', setScrollEvent); }
});

/**
 * <a href="#pagetop">なアンカーにイベント設定
 */
function setScrollEvent()
{
    var targets = document.getElementsByTagName('a');
    forEach(targets, function(node) {
        var reg = new RegExp('#pagetop$');
        if (reg.test(node.href)) {
            doAdapt({
                'MochiKit' : function() { connect(node, 'onclick', startScroll); },
                'Prototype': function() { Event.observe(node, 'cliick', startScroll, false); }
            });
        }
    });
}

/**
 * スクロール処理
 */
function startScroll(e)
{
    dy = -20;
    g = 1.3;
    timer = setInterval(function() {
        scrollBy(0, dy);
        dy *= g;
        if (getScrollOffset()==0) {
            clearInterval(timer);
        }
    } ,30);
}

/**
 * 現在のページのY座標を取得
 */
function getScrollOffset(){
    if (window.scrollY) return window.scrollY;         // Mozilla
    if (window.pageYOffset) return window.pageYOffset; // Opera, NN4
    if (document.documentElement && document.documentElement.scrollTop) { // 以下 IE
        return document.documentElement.scrollTop;
    } else if (document.body && document.body.scrollTop) {
        return document.body.scrollTop;
    }
    return 0;
}


