//
// ticket form real-time calculation
//
// taken directly from the current site. it seems to work, so why not
// i just cleaned up the formatting. -jdw ( Monday, March 6, 2006 8:09 PM )
//


var buying = true;
var quantity = 0;
var submitted = false;
var totalCost = 0.0;
var totalQuantity = 0;
function shouldISubmit(value) {
	if (submitted) {
		alert("You have already submitted this form.  Please wait...");
		return false;
	}
	else {
		quantity = value;
		if (buying == true) {
			if (quantity == 0) {
				alert('You have selected a ticket quantity of zero.');
				return false;
			}
		}
	}
	submitted = true;
	return true;
}

function calc_class(_q, _c, _p) {
	var vChar;
	var quantity = parseInt(_q.value);
	for (var x = 0; x < _q.value.length; x++) {
		vChar = _q.value.charAt(x);
		if ((vChar < '0') || (vChar > '9'))
		quantity=NaN;
	}
	if (isNaN(quantity)) {
		alert(_q.value + ' is not a valid, positive quantity.');
		_q.focus();
		_q.select();
		_c.value = '$0.00';
	}
	else {
		var cost = quantity * parseFloat(_p.value);
		cost = (cost*100)/100;
		totalCost += cost;
		totalQuantity += quantity;
		_c.value = '$'+cost;
	}
}

function calculate(_form) {
	var done = false;
	totalCost = 0.0;
	totalQuantity = 0;
	if (_form.tix_cost.length != null) {
		for (var x = 0; done == false; x++) {
			if (_form.tix_cost[x] != null) {
				calc_class(_form.tix_quantity[x], _form.tix_cost[x], _form.tix_price[x]);
			}
			else {
				done=true;
			}
		}
	}
	else if (_form.tix_cost != null) {
		calc_class(_form.tix_quantity, _form.tix_cost, _form.tix_price);
	}
	_form.tix_total_cost.value = '$'+totalCost;
	_form.tix_total_quantity.value = totalQuantity;
	if(_form.gift_value != null)
	{
		var s = _form.gift_value.value;
		s = parseCurrency(s);
		var gift = parseFloat(parseCurrency(s));
		if(gift < 0)
		{
			alert(_form.gift_value.value + ' is not a valid, positive amount.');
			_form.gift_value.focus();
			_form.gift_value.select();
		}
		else
		{
			totalCost += gift;
			_form.total_amount.value = '$'+totalCost;
		}
	}
}

function parseCurrency(s){
	if (s == null || s.length == 0)
	return "0";
	if(s.charAt(0) == '$')
	return s.substring(1, s.length);
	return s;
}

