//**************************************************************
function tbCalculator(dataField,displayElement)
{
	this.dataField;
	this.selections = new Array();
	this.lookup = new Object();
	this.tot = 0;
	this.dataField = dataField;
	this.displayElement = document.getElementById(displayElement);
	this.update = tbCalculator_update;
	this.calculate = tbCalculator_calculate;
	this.setResult = tbCalculator_setResult;
	this.resetAll = tbCalculator_resetAll;
}

function tbCalculator_resetAll()
{
	this.selections = new Array();
	this.calculate();
	this.setResult();
}

function tbCalculator_calculate()
{
	var t = 0;
	for(var i = 0;i < this.selections.length;i++)
	{
		if(this.selections[i])
		{
			t += this.selections[i].price;
		}
	}
	this.tot = t;
	this.displayElement.innerHTML = 'Total is $' + t
}

function tbCalculator_setResult()
{
	if(this.selections.length > 0)
	{
		this.dataField.value = "";
		var str = '';
		var res = new Array();
		var count = 0;
		for(var i = 0;i < this.selections.length;i++)
		{
			str = "";
			if(this.selections[i])
			{
				str += this.selections[i].name;
				str += "\t";
				str += this.selections[i].type;
				str += "\t";
				str += this.selections[i].price;
				res[count] = str;
				count++;
			}
		}
		res[res.length] = " \tTotal\t" + this.tot;
		this.dataField.value = res.join("\n");
	}
}

function tbCalculator_update(chkobj)
{
	var row = chkobj.parentNode.parentNode;
	var name = chkobj.name;
	var type = row.getElementsByTagName('td').item(2).innerHTML;
	if(chkobj.checked)
	{
		var n = row.getElementsByTagName('td').item(3).innerHTML;
		nArr = n.split('/');
		index = 0;
		if(nArr.length > 1)
		{
			index = 1;
		}
		num = nArr[index];
		num = num.replace(',','');
		num = parseInt(num.match(/\d+/));
		if(isNaN(num))
		{
			num = 0;
		}
		var len = this.selections.length;
		this.selections[len] = new Object();
		this.selections[len].name = name;
		this.selections[len].price = num;
		this.selections[len].type = type;
		this.lookup[name + '_' + type] = len;
		this.calculate();
		this.setResult();
	}
	else
	{
		this.selections[this.lookup[name + '_' + type]] = null;
		this.calculate();
		this.setResult();
	}
}
