// JavaScript1.2
// tabs.js

function TabItem(sTabId, sDivId) {
	// local variables
	var index; //used for string search
	var file_suffix = '.gif';

	// define object properties
	this.m_sTabId = sTabId;
	this.m_sDivId = sDivId;
	this.m_asTabImage = new Array(2);
	if (!(document.images[this.m_sTabId])) { return 0; } //verify an image with that name exists in the document
	this.m_asTabImage[0] = document.images[this.m_sTabId].src ; //original inactive image
	index = this.m_asTabImage[0].lastIndexOf("inactive" + file_suffix);
	if (index == -1) { return 0; } //verify file suffix was found
	this.m_asTabImage[1] = this.m_asTabImage[0].substring(0, index) + "hover" + file_suffix; //hover image
	this.m_asTabImage[2] = this.m_asTabImage[0].substring(0, index) + "active" + file_suffix; //active image
	this.setActive(false);
}

TabItem.prototype.setActive = function (bIsActive) {
	if (bIsActive == true) {
		// show the div
		document.getElementById(this.m_sDivId).style.display = 'block';
		// set tab to active and disable hover effect
		document.images[this.m_sTabId].src = this.m_asTabImage[2];
	}
	else { // bIsActive == false
		// hide the div
		document.getElementById(this.m_sDivId).style.display = 'none';
		// set tab to inactive and enable the hover effect
		document.images[this.m_sTabId].src = this.m_asTabImage[0];
		(new Image()).src = this.m_asTabImage[1]; // pre-fetch hover image
	}
	this.m_bIsActive = bIsActive;
} ;

TabItem.prototype.over = function () {
	if (this.m_bIsActive == false) {
		document.images[this.m_sTabId].src = this.m_asTabImage[1];
	}
} ;

TabItem.prototype.out = function () {
	if (this.m_bIsActive == false) {
		document.images[this.m_sTabId].src = this.m_asTabImage[0];
	}
} ;

function TabGroup(asTabList, asDivList, iActiveIndex) {
	if (asTabList.length != asDivList.length) { return 0; }
	
	// define object properties
	this.m_iActiveIndex = -1;
	this.m_aTabItem = new Array();
	for (count = 0; count < asTabList.length; count++) {
		this.m_aTabItem[count] = new TabItem(asTabList[count], asDivList[count]);
	}
	this.click(iActiveIndex);
}

TabGroup.prototype.click = function (iIndex) {
	if (this.m_iActiveIndex != -1) {
		this.m_aTabItem[this.m_iActiveIndex].setActive(false);
		this.m_iActiveIndex = -1;
	}
	this.m_aTabItem[iIndex].setActive(true);
	this.m_iActiveIndex = iIndex;
} ;

TabGroup.prototype.over = function (iIndex) {
	this.m_aTabItem[iIndex].over();
} ;

TabGroup.prototype.out = function (iIndex) {
	this.m_aTabItem[iIndex].out();
} ;

