//scrollMenuｸﾗｽ
var scrollMenu = Class.create();
scrollMenu.prototype = {
    initialize: function(obj, speed){
        this.obj = obj;
        this.speed = speed || 5;
        Element.cleanWhitespace(this.obj);
        this.title = this.obj.childNodes[0];
        this.contents = this.obj.childNodes[1];
        Element.setStyle(this.contents, {
            visibility: 'hidden',
            overflow: 'hidden',
            display: 'block',
            height: '0px'
        });
        Event.observe(this.obj, 'mouseover', this.start.bind(this), false);
        Event.observe(this.obj, 'mouseout', this.stop.bind(this), false);
    },
    
    start: function(){
        var bkp = Element.getStyle(this.contents, 'height');
        Element.setStyle(this.contents, {
            height: ''
        });
        this.height = Element.getHeight(this.contents);
        var value = Position.cumulativeOffset(this.title);
        var left = value[0];
        var top = value[1] + Element.getHeight(this.title);
        Element.setStyle(this.contents, {
            left: left,
            top: top,
            visibility: 'visible',
            height: bkp
        });
        if (this.tid) 
            clearTimeout(this.tid);
        this.tid = setInterval(this.show.bind(this), 10);
    },
    
    show: function(){
        var height = parseInt(Element.getStyle(this.contents, 'height'));
        height += this.speed;
        if (height >= this.height) {
            height = this.height;
            clearTimeout(this.tid);
        }
        Element.setStyle(this.contents, {
            height: height + 'px'
        });
    },
    
    stop: function(){
        if (this.tid) 
            clearTimeout(this.tid);
        this.tid = setInterval(this.hide.bind(this), 10);
    },
    
    hide: function(){
        var height = parseInt(Element.getStyle(this.contents, 'height'));
        height -= this.speed;
        if (height <= 1) {
            height = 0;
            Element.setStyle(this.contents, {
                visibility: 'hidden'
            });
            clearTimeout(this.tid);
        }
        Element.setStyle(this.contents, {
            height: height + 'px'
        });
    }
}
//onloadｲﾍﾞﾝﾄでｲﾝｽﾀﾝｽ作成
Event.observe(window, 'load', function(){

    /*------------------------ bof: for samurai sidebar menu------------------------*/
    var t = $('side-id').childNodes;
    Element.cleanWhitespace(t);
    for (var i = 0; i < t.length; i++) {
        Element.cleanWhitespace(t[i]);
        if (t[i].nodeName == 'LI' && t[i].childNodes.length > 1) {
            if (!(t[i].className.match(/side-li-act/))) {
                new scrollMenu(t[i]);
            }
        }
    }
    /*------------------------ eof: for samurai sidebar menu------------------------*/

}, false);

