/***********************************************************************************/
/****   TAB控件前台JS类   ***********************************************************/
/****   主要功能：初始化TAB标签，响应card点击事件，根据card id显示/隐藏某个card等×××××××××××/
/************************************************************************************/
//   类名：MultiTab
function TAB(id)
{
//全局变量
var tabObj=null;               //Tab对象
var divAll=null;               //TAB标签Body
var cardHead=null;             //Card标签头
var divChildren=null;          //Card标签Body对象集合
var CardObj=null;		       //Card对象


//私有变量，方法
this.id=id;			                //TAB的id
this.initTab=initTab;               //初始化Tab
this.doTabClick=doTabClick;         //Tab标签点击响应事件 
this.doCardClick=doCardClick;       //Tab标签外部响应事件接口 
this.getCardObject=getCardObject;   //根据id获取Card对象
this.doCardShow=doCardShow;         //根据ID显示Card
this.doCardHeadShow=doCardHeadShow; //显示CardHead 
this.doCardBodyShow=doCardBodyShow; //显示CardBody 
this.getCardIndex=getCardIndex;     //根据Id获取index值
this.getTabObj=getTabObj;           //获取Tab对象 
this.getCardHeadObj=getCardHeadObj;  //获取CardHead对象 
this.getAllCardObj=getAllCardObj;   //获取Card对象集合
this.initFlashTab=initFlashTab;     //初始化Tab
this.selectedTab=selectedTab;   //Tab标签点击响应事件 
}


//初始化
function initTab (str,index){
  if(str==null || str=="")
	{
	  alert("Card名称未定义!");
	  return;
    }
  this.getTabObj();          //获取并检测Tab标签
  this.getCardHeadObj();
  this.getAllCardObj();     //检测Card标签
  var arr = str.split(",");
  for (i = 0; i < arr.length; i++){
  var otd = cardHead.insertCell();
  if (arr[i]==null||arr[i]=="")
  {
	  alert("Card名称未定义!");
	  return;
  }
  otd.innerText = arr[i];
  if(index==i)
  otd.className='taboncss';
  else
  otd.className='taboffcss';
  }
  var str=this.id+".doTabClick()";
  var click=new Function(str);
  tabObj.attachEvent("onclick",click);
  this.doCardBodyShow(index);
} 

function initFlashTab (str,index){
  if(str==null || str=="")
	{
	  alert("Card名称未定义!");
	  return;
    }
  this.getTabObj();          //获取并检测Tab标签
  tabObj.SetVariable("_root.tabvalue",str);
  this.getAllCardObj();     //检测Card标签
  selectedTab(index);
 } 


//标签onclik事件
function doTabClick(index){
  if (index==null||index<0)
	{
		var obj=window.event.srcElement;
        if(obj==null || obj.tagName!='TD') return;
        index=obj.cellIndex;
	}
  this.getTabObj();          //获取并检测Tab标签
  this.getCardHeadObj();
  this.getAllCardObj();     //检测Card标签
  this.doCardHeadShow(index);  //显示Card标签
  this.doCardBodyShow(index);  //显示CardBody 
  this.doCardClick(divChildren[index]);//相应其他Click事件
}

function selectedTab(index){
 
  this.getTabObj();            //获取并检测Tab标签
  tabObj.SetVariable("_root.selecttab",index);
  this.getAllCardObj();     //检测Card标签
  this.doCardBodyShow(index);  //显示CardBody 
  this.doCardClick(divChildren[index]);//相应其他Click事件
}

//捕获外界点击Card事件
function doCardClick(card){
	  
}


//根据给定id获取Card对象
function getCardObject(id){
  this.getTabObj();          //获取并检测Tab标签
  this.getAllCardObj();     //检测Card标签
  if(tabObj==null) return;
  if(divAll==null) return;
  for(var j=0;j<divChildren.length;j++){

  if(divChildren[j].id==id){
	cardObj=divAll.children[j];
	//alert("true"+id+"--->"+divChildren[j].tagName);
	return cardObj;
	}
 }
  return null; 
}

//显示标签
function doCardShow(id){
  var index=this.getCardIndex(id);
  this.doTabClick(index)
}

//显示CardHead
function doCardHeadShow(index){

   this.getTabObj();          //获取并检测Tab标签
   this.getCardHeadObj();
   this.getAllCardObj();     //检测Card标签

   if(tabObj==null) return;
   for(var i=0;i<cardHead.cells.length;i++){
   cardHead.cells[i].className='taboffcss';}
   cardHead.cells[index].className='taboncss';
}

//显示CardBody
function doCardBodyShow(index){
 
   this.getTabObj();          //获取并检测Tab标签
   this.getAllCardObj();     //检测Card标签
  
  for(var j=0;j<divChildren.length;j++)
    divChildren[j].style.display='none';
  divChildren[index].style.display='block';
}

//获取给定id对应的index值
function getCardIndex(id){
  this.getTabObj();          //获取并检测Tab标签
  this.getAllCardObj();     //检测Card标签
  if(tabObj==null) 
	{
	  alert("您指定的ID="+id+"不存在!");
	  return;
	}
  if(divAll==null) 
	{
      alert("error"+id+"不存在!");
	  return;
	}
  for(var j=0;j<divChildren.length;j++){
    if(divChildren[j].id==id){
	  var cardIndex=j;
	  return cardIndex;
      } 
	}
   alert("您指定的ID="+id+"不存在!");
   return 0;
}

//获取标签对象
function getTabObj(){
  tabObj=document.getElementById(this.id);
    if(tabObj==null||(tabObj.tagName!="TABLE"&&tabObj.tagName!="OBJECT"))
	{
	   alert("TAB标签错误--非Table或者OBJECT!");
	   return;
	}
 return tabObj;
}
function getCardHeadObj(){
  cardHead = tabObj.rows[0];
   if (cardHead==null||cardHead.tagName!="TR")
     {
	   alert("TAB标签错误!没有CardHead!");
	   return;
     }
	 return cardHead;
}
//获取标签Card标签对象
function getAllCardObj(){
   divAll=tabObj.nextSibling;
  if(divAll==null||divAll.tagName!="DIV")
	{
	  alert("TAB标签错误!---Div错误!");
	  return;
	}
   divChildren=divAll.children;
  if (divChildren==null||divChildren.length==0)
  {
	  alert("没有定义Card标签!");
	   return divChildren;
  }
  
}
