﻿//自定义选项卡
//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();
	var openIndex=-1;
	Titles=this.getTitles(IdPrefMark);
	for(i=0;i<Titles.length;i++){
		Titles[i].setAttribute("unSelClass",Titles[i].className);
		if(Titles[i].getAttribute("open")==1){
			openIndex=i
		}
	}
	this.attachBehaviors(IdPrefMark);
	if(openIndex>=0){
		Titles[openIndex].onclick();
	}
	else if(openIndex<0 && Titles.length>0){
		Titles[0].onclick();
	}
}

Jack.TabPanel.prototype.getTitles=function(IdPrefMark){
    var i=0;
    var obj=null;
	var Titles=new Array();
    while(obj=document.getElementById(IdPrefMark+"_Title_"+i)){
	     Titles[i]=obj
		 i++
	}
	return Titles
}

Jack.TabPanel.prototype.getContents=function(IdPrefMark,Titles){
    var i=0;
	var Contents=new Array();
    for(i=0;i<Titles.length;i++){
	    Contents[i]=document.getElementById(IdPrefMark+"_Content_"+i)
	}
	return Contents
}
Jack.TabPanel.prototype.attachBehaviors=function(IdPrefMark){
    var Titles=this.getTitles(IdPrefMark)
	var i;
	for(i=0;i<Titles.length;i++){
	    this.addEvent("document.getElementById('"+Titles[i].id+"').onclick","self.onTobClick('"+IdPrefMark+"',"+ i +")")
		this.addEvent("document.getElementById('"+Titles[i].id+"').onmouseover","self.onTobMouseOver('"+IdPrefMark+"',"+ i +")")
		this.addEvent("document.getElementById('"+Titles[i].id+"').onmouseout","self.onTobMouseOut('"+IdPrefMark+"',"+ i +")")
	}
}
Jack.TabPanel.prototype.onTobClick=function(IdPrefMark,tabIndex){
	//单击事件
	var Titles=this.getTitles(IdPrefMark)
	var Contents=this.getContents(IdPrefMark,Titles);
	var i
	for(i=0;i<Titles.length;i++){
	    if(i==tabIndex){
			Titles[i].className=Titles[i].getAttribute("selClass")
			Titles[i].setAttribute("open",1)
			if(Contents[i]) Contents[i].style.display=""
		}
		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(IdPrefMark,tabIndex){
	//鼠标覆盖事件
	var Titles=this.getTitles(IdPrefMark)
	var Contents=this.getContents(IdPrefMark,Titles);
	var i
	for(i=0;i<Titles.length;i++){
	    if(i==tabIndex){
			if(Titles[i].getAttribute("open")!=1){
			    Titles[i].className=Titles[i].getAttribute("overClass")
			}
			break;
		}
	}
}

Jack.TabPanel.prototype.onTobMouseOut=function(IdPrefMark,tabIndex){
	//鼠标离开事件
	var Titles=this.getTitles(IdPrefMark)
	var Contents=this.getContents(IdPrefMark,Titles);
	var i
	for(i=0;i<Titles.length;i++){
	    if(i==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);
   }
}
