(function($) {

$(document).ready(function() {
    var ROTATION_INTERVAL = 5000;
    var FADE_TIME         = 2000;
    var SCROLL_TIME       = 600;

    var submenu = $('#header ul.submenu li, #top ul.submenu_e li');

    submenu.each(function() {
        if (!$(this).hasClass('totop')) {
            $(this).click(function() {
                var name = $(this).find('a').attr('href');
                
                $('body,html').animate({
                    scrollTop: parseInt($(name).offset().top)
                }, SCROLL_TIME, 'easeOutCubic');

                return false;
            });
        }
    });

    var mainImgs = $('#main_img p');
    var subImgs  = $('#sub_img li');

    var offset = 0;

    var rotateId = setInterval(rotateImages, ROTATION_INTERVAL);

    function rotateImages()
    {
        var nextOffset;
        
        if (!mainImgs.eq(offset + 1).html()) {
            nextOffset = 0;
        } else {
            nextOffset = offset + 1;
        }
        
        mainImgs.eq(offset)
                .addClass('fadeout')
                .fadeOut(FADE_TIME, function() {
                    $(this).removeClass('fadeout');
                });

        mainImgs.eq(nextOffset)
                .addClass('fadein')
                .fadeIn(FADE_TIME, function() {
                    $(this).removeClass('fadein');
                });

        offset++;
    }

    subImgs.each(function(idx) {
        $(this).click(function() {
            var clicked = idx;
            var fadeFlg = false;

            mainImgs.each(function(idx2) {
                if ($(this).hasClass('fadein') ||
                        $(this).hasClass('fadeout')) {
                    fadeFlg = true;
                    return false;
                }
            });

            if (!fadeFlg) {
                clearInterval(rotateId);

                mainImgs.eq(clicked)
                        .addClass('fadein')
                        .fadeIn(FADE_TIME, function() {
                            $(this).removeClass('fadein');
                        });
                
                mainImgs.eq(offset)
                        .addClass('fadeout')
                        .fadeOut(FADE_TIME, function() {
                            $(this).removeClass('fadeout');
                        });

                offset = clicked;

                rotateId = setInterval(rotateImages, ROTATION_INTERVAL);
            }
        });
    });
});

})(jQuery);
