/**
@prefix : <http://purl.org/net/ns/doas#> .
<http://factory.yusukenakanishi.com/javascript/jquery/plugin/imagetabs/js/imageTabs.js> a :JavaScript;
 :shortdesc "imageTabs.js";
 :created "2010-06-10";
 :release [:revision "1.0"; :created "2010-06-10"];
 :author [:name "Yusuke. Nakanishi"; :homepage <http://yusukenakanishi.com/> ];
 :license <http://creativecommons.org/licenses/GPL/2.0/>;
 :dependencies "none" .
*/

(function(j$){

    j$.fn.imageTabs = function(options){
    
        // 引数のデフォルト値を渡す
        var conf = j$.extend({
            animate: 'show',
            duration: '',
            opentab: ''
        }, options); // optionsに値があれば上書きする
        
        // 初期設定
        var target = this;
        var tabPanel = j$('div.tabPanel', target);
        tabPanel.hide();
        var handler = j$('ul.tab li a', target);
        
        // ウィンドウを開いた時のタブの位置
        if(conf.opentab) {
            tabPanel.each(function() {
                if(j$(this).attr('id') == conf.opentab) {
                    j$(this).show();
                }
            });
            handler.each(function() {
                if(j$(this).attr('href') == '#' + conf.opentab) {
                    var imgSrc = j$(this).children('img').attr('src');
                    var imgDot = imgSrc.lastIndexOf('.');
                    var onSrc = imgSrc.substr(0, imgDot) + '_on' + imgSrc.substr(imgDot, 4);
                    j$(this).children('img').attr('src',onSrc).addClass('active');
                }
            });
        } else {
            j$('div.tabPanel:first', target).show();
            var imgSrc = j$('ul.tab li:first a', target).children('img').attr('src');
            var imgDot = imgSrc.lastIndexOf('.');
            var onSrc = imgSrc.substr(0, imgDot) + '_on' + imgSrc.substr(imgDot, 4);
            j$('ul.tab li:first a', target).children('img').attr('src',onSrc).addClass('active');
        }
        
        // クリック時の動作
        handler.click(function() {
            var classJudgment = j$(this).children('img').attr('class');
            if(classJudgment !== 'active') {
                // タブ画像の切り替え
                var imgSrc = j$(this).children('img').attr('src').replace(/_on/g, ""); // _onが複数付かないように
                var imgDot = imgSrc.lastIndexOf('.');
                var onSrc = imgSrc.substr(0, imgDot) + '_on' + imgSrc.substr(imgDot, 4);
                j$(this).children('img').attr('src',onSrc);
                var imgOff = j$('ul.tab li img.active', target).attr('src').replace(/_on/g, "");
                j$('ul.tab li img.active', target).attr('src',imgOff);
                j$('ul.tab li img.active', target).removeClass('active');
                j$(this).children('img').addClass('active');
                // コンテンツの切り替え
                var clickAttr = j$(this).attr('href');
                var boxHeight = j$('div.tabPanelGroup').height();
                j$('div.tabPanelGroup').css('height', boxHeight);
                j$('div.tabPanel:visible', target).stop(true, true).hide();
                j$('div#' + clickAttr)[conf.animate](conf.duration);
                j$('div.tabPanelGroup').css('height', 'auto');
            }
            return false;
        });
        
        // ロールオーバー
        handler.hover(function() {
            var classJudgment = j$(this).children('img').attr('class');
            if(classJudgment !== 'active') {
                var imgSrc = j$(this).children('img').attr('src');
                var imgDot = imgSrc.lastIndexOf('.');
                var onSrc = imgSrc.substr(0, imgDot) + '_on' + imgSrc.substr(imgDot, 4);
                j$(this).children('img').attr('src',onSrc);
            }
        }, function() {
            var classJudgment = j$(this).children('img').attr('class');
            if(classJudgment !== 'active') {
                var imgOff = j$(this).children('img').attr('src').replace(/_on/g, "");
                j$(this).children('img').attr('src',imgOff);
            }
        });
        
    }
    
})(jQuery);


