BTNArray = new Array();

function makeButton(theImages,href,name,prodName,group,onClick,onMOver,onMOut,onMUp,onMDown) {
	this.setImageList = BtnSIL;
	this.getImageCount = BtnGIC;
	this.nextImage = BtnNI;
	this.previousImage = BtnPI;

	this.getImageList = getImageList;
	this.getGroupCount = getGroupCount;
	this.clearGroup = clearGroup;
	this.mouseOver = mouseOver;
	this.mouseOut = mouseOut;
	this.setState = setState;
	this.getState = getState;
	this.setIndex = setState;
	this.getIndex = getState;
	this.setClicked = setClicked;
	this.setUnclicked = setUnclicked;

	this.onChange = null;
	this.onClick = onClick;
	this.onMouseOver = onMOver;
	this.onMouseOut = onMOut;
	this.onMouseUp = onMUp;
	this.onMouseDown = onMDown;

	this.name = name;
	this.type = "Image";
	this.state = 0;
	this.group = group;

	this.imagelist = new Array();      // image names
	this.btnImageArray = new Array();  // image objects
	this.setImageList(theImages);

	this.getElementID = getElementID;
	this.elementResolved = elementResolved;
	this.elementID = null;
}

function BtnGIC() {
	if (!this.elementResolved()) return -1;
	return this.btnImageArray.length;
}

function BtnNI() {
	with(this) {
		if (!this.elementResolved()) return;
		state = parseInt(state);
		if (state == getImageCount()-1)
			state = 0;
		else
			state += 1;

		elementID.src = imagelist[state];
	}
}

function BtnPI() {
	with(this) {
		if (!this.elementResolved()) return;
		state = parseInt(state);
		if (state == 0)
			state = getImageCount()-1;
		else
			state -= 1;

		elementID.src = imagelist[state];
	}
}

function BtnSIL(theImages) {
	with(this) {
		imagelist = theImages.split(",");
		for (var i = 0; i < imagelist.length; i++) {
			this.btnImageArray[i] = new Image();
			this.btnImageArray[i].src = imagelist[i];
		}
	}
}

function getImageList() {
	if (!this.elementResolved()) return "";
	return this.imagelist.join();
}

function getGroupCount() {
	if (!this.elementResolved()) return -1;
	var k = 0;
	for (i = 0; i < BTNArray.length; i++) {
		if (this.group == BTNArray[i].group) k++;
	}
	return k;
}

function setState(newState) {
	if (!this.elementResolved()) return;
	if (newState < 0) return;
	with(this) {
		if (imagelist[newState] != null) {
			elementID.src = btnImageArray[newState].src;
			state = newState;
		}
	}
}

function getState() {
	if (!this.elementResolved()) return -1;
	return this.state;
}

function _B__onMouseOver(ID) {
	if (BTNArray != null && BTNArray.length > ID && BTNArray[ID].state == 0) {
		BTNArray[ID].setState(1);
	}
}

function _B__onMouseOut(ID) {
	if (BTNArray != null && BTNArray.length > ID && BTNArray[ID].state == 1) {
		BTNArray[ID].setState(0);
	}
}

function mouseOver() {
	if (!this.elementResolved()) return;
	if (this.state == 0)
		this.setState(1);
}

function mouseOut() {
	if (!this.elementResolved()) return;
	if (this.state == 1)
		this.setState(0);
}

function setClicked() {
	with(this) {
		if (!this.elementResolved()) return;
		if ((state == 0 || state == 1) && (btnImageArray.length > 2)) {
			clearGroup();
			setState(2);
		} else if (state == 2 && getGroupCount() == 1) {
			setState(1);
		}
	}
}

function _B__setClicked(ID) {
	if (BTNArray != null && BTNArray.length > ID) {
		BTNArray[ID].setClicked();
	}
}

function setUnclicked() {
	if (!this.elementResolved()) return;
	if (this.state == 2) this.setState(0);
}

function clearGroup() {
	if (!this.elementResolved()) return;
	for (var i = 0; i < BTNArray.length; i++) 	{
		if (this.group == BTNArray[i].group) 		{
			BTNArray[i].setUnclicked();
		}
	}
}

