﻿//自定义选项卡
//IdPrefMark为选项卡的前辍标志
//N为序号从0开始连的连续正整数
//选项卡标题为IdPrefMark_Title_N
//选项卡内容为IdPrefMark_Content_N
//标题标签的class属性为未选中时的样式 
//标题标签的selClass属性为选中时的样式
//标题标签的overClass属性为覆盖时的样式
//标题标签的open属性表示此选项卡是否打开
var Jack;
if(!Jack) Jack={};
Jack.TabPanel=function(IdPrefMark){
	var i=0;
	var obj=null;
	var Titles=new Array();
	this.IdPrefMark=IdPrefMark;
	Titles=this.getTitles();
	for(i=0;i<Titles.length;i++){
		Titles[i].setAttribute("unSelClass",Titles[i].className);
		if(Titles[i].getAttribute("open")==1){
			this.openIndex=i
		}
	}
	this.attachBehaviors();
	if(this.openIndex>=0){
		Titles[this.openIndex].onclick();
	}
	else if(this.openIndex<0 && Titles.length>0){
		Titles[0].onclick();
	}
}

Jack.TabPanel.prototype.IdPrefMark="";
Jack.TabPanel.prototype.openIndex=-1;

Jack.TabPanel.prototype.getTitles=function(){
    var i=0;
    var obj=null;
	var Titles=new Array();
    while(obj=document.getElementById(this.IdPrefMark+"_Title_"+i)){
	     Titles[i]=obj
		 i++
	}
	return Titles
}

Jack.TabPanel.prototype.getContents=function(){
    var i=0;
	var Contents=new Array();
	var Titles=this.getTitles();
    for(i=0;i<Titles.length;i++){
	    Contents[i]=document.getElementById(this.IdPrefMark+"_Content_"+i)
	}
	return Contents
}
Jack.TabPanel.prototype.attachBehaviors=function(){
    var Titles=this.getTitles()
	var i;
	for(i=0;i<Titles.length;i++){
	    this.addEvent("document.getElementById('"+Titles[i].id+"').onclick","self.onTobClick("+ i +")")
		this.addEvent("document.getElementById('"+Titles[i].id+"').onmouseover","self.onTobMouseOver("+ i +")")
		this.addEvent("document.getElementById('"+Titles[i].id+"').onmouseout","self.onTobMouseOut("+ i +")")
	}
}
Jack.TabPanel.prototype.onTobClick=function(tabIndex){
	//单击事件
	var Titles=this.getTitles()
	var Contents=this.getContents();
	var i
	var n;
	if(tabIndex>=0){
	    n=tabIndex % Titles.length;
	}
	else{
		n=(tabIndex % Titles.length) + Titles.length;
	}
	for(i=0;i<Titles.length;i++){
	    if(i==n){
			Titles[i].className=Titles[i].getAttribute("selClass")
			Titles[i].setAttribute("open",1)
			if(Contents[i]) Contents[i].style.display=""
            this.openIndex=i;
		}
		else{
		    Titles[i].className=Titles[i].getAttribute("unSelClass")
			Titles[i].setAttribute("open",0)
			if(Contents[i]) Contents[i].style.display="none"
		}
	}
}

Jack.TabPanel.prototype.onTobMouseOver=function(tabIndex){
	//鼠标覆盖事件
	var Titles=this.getTitles()
	var Contents=this.getContents();
	var i
	var n;
	if(tabIndex>=0){
	    n=tabIndex % Titles.length;
	}
	else{
		n=(tabIndex % Titles.length) + Titles.length;
	}
	for(i=0;i<Titles.length;i++){
	    if(n==tabIndex){
			if(Titles[i].getAttribute("open")!=1){
			    Titles[i].className=Titles[i].getAttribute("overClass")
			}
			break;
		}
	}
}

Jack.TabPanel.prototype.onTobMouseOut=function(tabIndex){
	//鼠标离开事件
	var Titles=this.getTitles()
	var Contents=this.getContents();
	var i
	var n;
	if(tabIndex>=0){
	    n=tabIndex % Titles.length;
	}
	else{
		n=(tabIndex % Titles.length) + Titles.length;
	}
	for(i=0;i<Titles.length;i++){
	    if(n==tabIndex){
			if(Titles[i].getAttribute("open")!=1){
			    Titles[i].className=Titles[i].getAttribute("unSelClass")
			}
			break;
		}
	}
}

Jack.TabPanel.prototype.addEvent=function(strEnt,strFun){
   //为事件追加函数
   var self=this
   if(eval(strEnt)!=null){
	  var strFunction="var oldEnt="+strEnt + ";";
	  strFunction+=strEnt + "=function(){"+strFun+";oldEnt();}";
      eval(strFunction);
   }
   else{
      var strFunction="";
	  strFunction=strEnt + "=function(){"+strFun+"}";
      eval(strFunction);
   }
}
