/**
 * jQuery tabs切換插件
 * example1 $("#內容id").revealTabs();												默認開啟自動切換,mousemove切換tab
 * example2 $("#內容id").revealTabs({revealType:"click",autoRotate:[false]});		關閉自動切換，click切換tab
 * author:	Merlin
 * date:    2011-5-24
 */
(function($){
    $.fn.revealTabs = function(settings) {
        var thisObj = this;
        var defaults = {
            contentTab:     "a",							      //內容標籤類型
            navID:          thisObj.attr("id")+"_nav",			  //導航id
            revealType:	    "mousemove",						  //切換事件類型
            autoRotate:     [true, 5000],						  //自動切換,為真時才自動切換
            navActiveClass: "active"							  //當前導航樣式
        };
        var opts = $.extend(defaults,settings);
		var contentObj = thisObj.find('>' + opts.contentTab);
        var tabCount = contentObj.length;
        var navObj = $("#"+opts.navID);
        var t;
	 
        function showThis(obj){
            var index = navObj.find('li').index($(obj));
            contentObj.hide();
            contentObj.eq(index).show();
            navObj.find("li").removeClass(opts.navActiveClass);
            $(obj).addClass(opts.navActiveClass);
        }

        function autoRotate(){
            var currentNav = navObj.find("li").index(navObj.find("li[class='"+opts.navActiveClass+"']"));
            if(currentNav+1 == tabCount){
                var index = 0;
            }else{
                var index = currentNav+1;
            }
            contentObj.hide();
            contentObj.eq(index).show();
            navObj.find("li").removeClass(opts.navActiveClass);
            navObj.find("li").eq(index).addClass(opts.navActiveClass);
        }

        function autoStart(){
            clearInterval(t);
			t = setInterval(autoRotate, opts.autoRotate[1]);
        }

        switch(opts.revealType){
            case 'click':
                navObj.find("li").click(function(){
                    //clearInterval(t);
					//showThis(this);
                });
                break;
            case 'mousemove':
                navObj.find("li").mousemove(function(){
					clearInterval(t);
                    showThis(this);
                });
                break;
        }

        if(opts.autoRotate[0]){
            thisObj.hover(
                function () {
                    clearInterval(t);
                },
                function () {
                    autoStart();
                }
            );
            navObj.find("li").hover(
                function () {
                    clearInterval(t);
                },
                function () {
                    autoStart();
                }
            );
            autoStart();
        }
    }
})(jQuery);
