var Module = Module||{};

var module=function(moduleId){
  this.elmId = moduleId;
  
  this.tabsId = this.elmId+'_tabs';
  this.contentIdPreText = this.elmId+'_content_';
  this.mTab = new Module.Tabs(this.tabsId, this.contentIdPreText);
};
/*
标签页的页面结构说明：
* 将id(例如: 'm_sample_01') 添加到div.md 中
* 在div.md_hd 中添加ul.mh_tabs，并添加id+'_tabs' (例如: 'm_sample_01_tabs')
* 在div.md_bd 中添加和标签一样多的div，并给它们添加id，id 命名是 div.md 中的id+'_content_x'(例如: 'm_sample_01_content_1' ~ ) 其中x 是这些div 的序号，从1 开始。除了第一个，其他几个都添加style="display: none;" 属性
添加脚本：
* (new module('m_sample_01')).initTabs();
*/
module.prototype.initTabs=function(){
    this.mTab.init();
  };
module.prototype.initTabsHover=function(){
    this.mTab.initHover();
  };

Module.Tabs=function(nodeId, contentIdPreText){
  var tabs= jQuery("#" + nodeId + " li"),
    tabCurI= null;
  var tabCons= [];
  var tabBtns = [],
    tabBtn,
    tabEvent = "click";
  
  function changeContent(targetIndex){
    tabCons[tabCurI].css('display', 'none');
    tabCons[targetIndex].css('display', '');
    tabCurI = targetIndex;
  }
//2009-5-12 jack 方便外部访问
  this.changetab  = function (targetIndex){
	  
    try{
      if(targetIndex === tabCurI){return null;}
     
	  	changefun(targetIndex,tabCurI);

	  tabs[tabCurI].removeClass('cur');
      tabs[targetIndex].addClass('cur');
      changeContent(targetIndex);
	  
    }catch(ex){}
  }
  
  function chgTab(targetIndex){
	  
    try{
      if(targetIndex === tabCurI){return null;}
	 if(this["changefun"]!=undefined){
	  	changefun(targetIndex,tabCurI);
	  }
      tabs[tabCurI].removeClass('cur');
      tabs[targetIndex].addClass('cur');
      changeContent(targetIndex);
	  if(this["changeafterfun"]!=undefined){
	  	changeafterfun(targetIndex,tabCurI);
	  }
    }catch(ex){}
  }
  
  function initTabs(){
    tabs.each(function(i, _tab){
        _tab = tabs[i] = jQuery(_tab);
        tabBtn = tabBtns[i] = _tab.find('a:first');
    (tabCurI==null) && _tab.hasClass('cur') && (tabCurI=i);
        tabBtn[tabEvent](function(ev){
            if(tabEvent=="click" && _tab.hasClass('cur')){return true;}
            chgTab(i);
            return false;
          });
      });
  (tabCurI==null) && (tabCurI=0);
    tabs.each(function(i, _tab){
    tabCons[i] = jQuery("#" + contentIdPreText + (i + 1));
    if(i !== tabCurI){
      tabCons[i].css('display', 'none');
    }else{
    tabCons[i].css('display', '');
    }
  });
  }
  
  this.init=function(){
    initTabs();
  };
  this.initHover=function(){
    tabEvent = "mouseover";
    initTabs();
  };

};