﻿/*
新增日期: 2009.02.06 
作 者: kangxianchen(kxc)
內容摘要:　menutab菜单
参数说明：
    o:this即当前事件对象
    c:当前menu个数
    options:对象参数
*/
(function($){ 
    $.switchMenuTab=function(o,c,options){;
        var cid=o.id;
        var arr=cid.split('_'); 
        if(arr.length<3)
            return;
        var p={
            identify:arr[1],//【可选】选择标识 如'news'
            index:arr[2], //【可选】tab索引
            count:c,//【可选】tab数量
            tabtag:arr[0],//【可选】tab标识
            listtab:'List',//【可选】list标识
            fcallback:null,//【可选】触发前事件
            callback:null,//【可选】触发后事件
            tabclass:'upH3',//【可选】tab选中的样式
            listclass:'upUL',//【可选】list选中的样式
            spanclass:'upspan'//【可选】span选中的样式
        };
        if(options) {
            $.extend(p, options);
        }
        var iscurMove=function(){
            var re = new RegExp("\\b"+p.tabclass+"\\b\\s*", "g");
            if(re.test(o.className)){
                return true;
            }
            return false;
        };
        if(iscurMove())
            return;
        var fAddClass=function (xEle, xClass){
            if(!xClass) return;
            if(xEle.className!=""){
                var Re = new RegExp("\\b"+xClass+"\\b\\s*", "");
                xEle.className = xEle.className.replace(Re, "");
                var oldClassName = xEle.className.replace(/^\s+|\s+$/g,"") ;
                if (oldClassName == "" ){
                    xEle.className = xClass;
                }
                else{
                    xEle.className = oldClassName + " " + xClass;
                }
            }
            else xEle.className = xClass;
        };
        var fRemoveClass=function(xEle, xClass){
            if(!xClass) return;
            var OldClassName = xEle.className.replace(/^\s+|\s+$/g,"") ;
            if(OldClassName!=""){
                var Re = new RegExp("\\b"+xClass+"\\b\\s*", "");
                xEle.className = OldClassName.replace(Re, "");
            }
         };
        var switchSideTab=function() {
	        for(var i=0;i<p.count;i++) {	
	            if (i != p.index) {            
		            var curTabObj =$("#"+p.tabtag+"_"+p.identify+"_"+i)[0] ;
		            var curListObj = $("#"+p.listtab+"_"+p.identify+"_"+i)[0] ;		        
			        fRemoveClass(curTabObj , p.tabclass) ;
			        fRemoveClass(curListObj , p.listclass) ;
			        fRemoveClass(curTabObj.lastChild , p.spanclass) ;
		        }
	        }
	        fAddClass(o,p.tabclass) ;
	        fAddClass(o.lastChild,p.spanclass) ;
	        fAddClass($("#"+p.listtab+"_"+p.identify+"_"+p.index)[0],p.listclass) ;
	        if(p.callback){
                $('#'+cid)[0].callback=p.callback;	
                $('#'+cid)[0].callback.apply($('#'+cid).get(0));       
            }
        };
        if(p.fcallback){
            $('#'+cid)[0].fcallback=p.fcallback;	
            $('#'+cid)[0].fcallback.apply($('#'+cid).get(0));       
        }
        switchSideTab();
    };
})(jQuery);