
// 画像先読み用
var imgs = new Array(26);

/**
 * 初期処理
 */
Object.extend(Init.prototype, {
    initialize: function(option){
       // this.debug();

        selectedWorksIdx = 0;
        selectedWorksDetailIdx = 0;

        animateMain();
        //mainEffect();
        effectTimer = setTimeout(mainEffect, 20000);
    }
});

/**
 * 初期時のアニメ
 */
function animateMain(){

    // 先読み
    for(var i = 0; i < imgs.length - 2; i++){
        imgs[i] = new Image();
        imgs[i].src = 'img/top/main/animate/ltr_' + (i + 1) + '.jpg';

    }

    imgs[imgs.length - 2] = new Image();
    imgs[imgs.length - 2].src = 'img/top/main/animate/ms_logo.jpg';
    imgs[imgs.length - 1] = new Image();
    imgs[imgs.length - 1].src = 'img/top/main/animate/syaoku.jpg';

    // 感動する〜
    var effectArray1 = new Array();
    for(var i = 0; i< 11; i ++) {

        var opt = {
                src : imgs[i].src
        };
        var img = new Element('img', opt);
        img.setStyle({display   : 'none',
                      position  : 'absolute',
                      top       : 136 + 'px',
                      left      : (136 + 30 * i) + 'px'
                     });

        $('blkShowImg').insert({bottom: img});

        effectArray1[i] = img;
    }


    // 文字画像表示
    Effect.multiple(effectArray1, Effect.Appear, { delay : 0 , scope: 'effect1'});

    Effect.multiple(effectArray1, Effect.Fade, { delay : 3 , scope: 'fade-effect1'});

    // 喜びの〜
    var effectArray2 = new Array();
    for(var i = 0; i< 13; i ++) {

        var opt = {
                src : imgs[i + 11].src
        };
        var img = new Element('img', opt);
        img.setStyle({display   : 'none',
                      position  : 'absolute',
                      top       : 136 + 'px',
                      left      : (136 + 30 * i) + 'px'
                     });

        $('blkShowImg').insert({bottom: img});

        effectArray2[i] = img;
    }

    // 文字画像表示
    Effect.multiple(effectArray2, Effect.Appear, { delay : 5, scope: 'effect2'});


    Effect.multiple(effectArray2, Effect.Fade, { delay : 8 ,
                                                 scope: 'fade-effect2',
                                                 duration: 2,
                                                 afterFinishInternal: function(effect) {
                                                    if(!EFFECT_STOP_FLG){

                                                        if(!!$('blkShowImg').down(0)){
                                                            $('blkShowImg').down(0).remove();

                                                        }

                                                        new LoadImage('img/top/main/animate/',
                                                                'ms_logo.jpg',
                                                                {parent : 'blkShowImg',
                                                                 unique : 'imgMain',
                                                                 height : 300,
                                                                 width  : 625,
                                                                 shadow : 0,
                                                                 frame  : 0,
                                                                 header : false,
                                                                 imgTitle : 'MSの家'
                                                                });

                                                        effectTimer = setTimeout(function(){
                                                                                     if(!EFFECT_STOP_FLG){
                                                                                         new LoadImage('img/top/main/animate/',
                                                                                                       'syaoku.jpg',
                                                                                                        {parent : 'blkShowImg',
                                                                                                         unique : 'imgMain',
                                                                                                         height : 300,
                                                                                                         width  : 625,
                                                                                                         shadow : 0,
                                                                                                         frame  : 0,
                                                                                                         header : false,
                                                                                                         imgTitle : 'MSの家'
                                                                                                        });
                                                                                     }
                                                                                 }
                                                                                , 4000);
                                                    }
                                                 }
    });

}

/**
 * 初期時のエフェクト（メイン効果）
 * @return void
 */
function mainEffect(){
    // アニメストップ時は何もしない
    if(!EFFECT_STOP_FLG){
        // カテゴリ最後で最初に戻る
        if(selectedWorksIdx == WORKS_LIST.length){
            selectedWorksIdx = 0;
            selectedWorksDetailIdx = 0;
        }

        // 事例メニュー操作
        $('blkWorksMenuTop').select('img').find(function(ele, idx){
            if(selectedWorksIdx == idx){
                selectedWorksDetailIdx = 0;
                clickWorksMenu(idx, ele);
            }
        });

        subEffect();
    }
}

/**
 * 初期時のエフェクト（サブ効果）
 * @return void
 */
function subEffect(){
    if(selectedWorksDetailIdx == $('tblWrksMenu').select('a').size()
            || selectedWorksDetailIdx == WORKS_LIST_MAX){

        selectedWorksIdx++;
        // メインを再呼び出し
        mainEffect();
        return false;
    }

    new ClickWorksDetailMenu(selectedWorksDetailIdx);

    selectedWorksDetailIdx++;

    effectTimer = setTimeout(subEffect, 3500);
}

/**
 * 事例詳細メニュークリック時の処理
 */
Object.extend(ClickWorksDetailMenu.prototype, {
    pageInit: function(ele, idx){
        var data = worksList[selectedWorksIdx];

        // メイン画像のセット
        var imgPath = 'img/top/main/' + data.prefix + '/';
        var imgFileName = data.prefix + '_' + data.categoryList[idx].worksId + '.jpg';

        if(!!$('blkShowImg').down(0)){
            $('blkShowImg').down(0).remove();

        }

        var img = new LoadImage(imgPath,
                      imgFileName,
                      {parent : 'blkShowImg',
                       unique : 'imgMain',
                       height : 300,
                       width  : 625,
                       shadow : 0,
                       frame  : 0,
                       anchor : 'works.html?ctgry=' + selectedWorksIdx + '&worksId=' + idx,
                       header : false,
                       imgTitle : data.categoryList[idx].mainFileTitle
                      });

    }
});

/**
 * トピックス画像クリック時の処理
 * @param imgFileName - 画像ファイル名
 * @param title - 画像のタイトル
 * @param parent - 表示する親エレメント
 * @return - void
 */
function showDetail(imgFileName, title, parent){

    var imgPath = 'img/top/topics/';
    new LoadImage(imgPath,
            imgFileName,
            {parent   : parent,
             idPrefix : 'show',
             unique   : imgFileName,
             top    : 0,
             left   : 0,
             height : 328,
             width  : 500,
             shadow : 4,
             frame  : 6,
             header : true,
             absolute: true,
             draggable: true,
             imgTitle : title,
             imgAlt : title
            });

}

