﻿//获取ID
function gE(al) {
	if (document.getElementById) {
		return eval('document.getElementById("' + al + '")');
	} else if (document.layers) {
		return eval("document.layers['" + al + "']");
	} else {
		return eval('document.all.' + al);
	}
}

//	定义Tab节点样式
var NodeCss = function(ClassName, LeftSpaceCss, CenterCss, RightCss) {
	//	主样式
	this.className = ClassName;
	//	左分隔样式
	this.leftSpaceCss = LeftSpaceCss;
	//	中央样式
	this.centerCss = CenterCss;
	//	右分隔样式
	this.rightCss = RightCss;
}

//	定义TabLink样式
function TabLinkCss(TabId, EventName, MainTab, TabNode, SelectNode, NormalNode) {
	// 主Tab样式
	this.tabNode = TabNode;
	//	选中Tab样式
	this.selectNode = SelectNode;
	//	未选中样式
	this.normalNode = NormalNode;
	//	当前选中Tab
	this.csNode = null;

	//	当前TabLink主容器ID
	this.Tab_Id = TabId;

	this.eventName = EventName;

	this.VarName = TabId.replace('_Global', '');

	this.Tab = null;

	this.Tabs = new Array();

	this.initTab = function(defaultSelectIndex) {

		if (!this.Tab)
			this.Tab = gE(this.Tab_Id);
		if (!this.Tab)
			return;

		//	初始化面板的整体样式
		this.Tab.className = MainTab.className;
		this.Tab.childNodes[0].className = MainTab.leftSpaceCss;
		this.Tab.childNodes[1].className = MainTab.centerCss;

		//	初始化头面板的左，右两边样式
		this.Head = this.Tab.childNodes[0];
		this.HeadLength = this.Head.childNodes.length;
		this.Head.childNodes[0].className = TabNode.leftSpaceCss;
		this.Head.childNodes[this.HeadLength - 1].className = TabNode.rightCss;

		//	初始化所有的面板
		for (var i = 1; i < this.HeadLength - 1; i++) {
			var t = this.Head.childNodes[i];
			this.Tabs.push(t);
			t.className = NormalNode.className;
			t.childNodes[0].className = NormalNode.leftSpaceCss;
			t.childNodes[1].className = NormalNode.centerCss;
			t.childNodes[2].className = NormalNode.rightCss;

			t.attachEvent(this.eventName, this.ClickTab.Exec(i - 1, this));
		}
		//debugger;
		if (defaultSelectIndex || defaultSelectIndex > -1) {
			this.ClickTab(defaultSelectIndex);
		}
	}

	this.ClickTab = function(selectIndex, e) {
		var et = this;
		if (e)
			et = e;
		var e1 = et.Tabs[selectIndex];
		onLiSelect(e1, et);
	}
}

Function.prototype.Exec = function() {
	var __method = this;
	var arg = arguments;
	return function() { __method.apply(window, arg); }
}

//	选中事件
function onLiSelect(obj, tabObj) {
	if (tabObj == null || obj == null)
		return;
	if (tabObj.csNode != null) {
		var prevNode = tabObj.csNode;
		prevNode.className = tabObj.normalNode.className;
		prevNode.childNodes[0].className = tabObj.normalNode.leftSpaceCss;
		prevNode.childNodes[1].className = tabObj.normalNode.centerCss;
		prevNode.childNodes[2].className = tabObj.normalNode.rightCss;
	}
	obj.className = tabObj.selectNode.className;
	obj.childNodes[0].className = tabObj.selectNode.leftSpaceCss;
	obj.childNodes[1].className = tabObj.selectNode.centerCss;
	obj.childNodes[2].className = tabObj.selectNode.rightCss;

	SwitchDisp(obj, tabObj.csNode);

	tabObj.csNode = obj;
}

//	切换显示面板
function SwitchDisp(select, prev) {

	var prev_id = prev ? prev.id + '_Tab': null;
	var select_id = select ? select.id + '_Tab' : null;

	if (gE(prev_id) != null)
		gE(prev_id).style.display = "none";
	if (gE(select_id) != null)
		gE(select_id).style.display = "";
}

