function ticketPrices() {
	$$('input.ticket').each(function(r,i) {
		r.observe('click',calculateTotal);
	})
}

function calculateTotal(event) {
	var input = event.element();
	var params = {};
	params['seat_id'] = input.id;
	params['seat_price'] = input.value;
	var updater = new Ajax.Updater('total', 'recalc_total', {parameters: params} );
}


function getElementsByClass(node,searchClass,tag) {
  var classElements = new Array();
  var els = node.getElementsByTagName(tag);
  var elsLen = els.length;
  var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
  for (i = 0, j = 0; i < elsLen; i++) {
    if ( pattern.test(els[i].className) ) {
      classElements[j] = els[i];
      j++;
    }
  }
return classElements;
}

function seat_click(cell) {
	if (cell.className == "free" ) {
		cell.className = "unavailable";
	} else {
		cell.className = "free";
	}
}
function clear_clicks() {
	var rowObj = document.seating_plan;
	for (i = 0; i < rowObj.childNodes.length; i++) {
		//this line prevents firefox from treating whitespace as a childNode
		if (rowObj.childNodes[i].style) {
			rowObj.childNodes[i].className = (rowObj.childNodes[i] == obj) ? "free" : "";
		}
	}
}

var Total = 0;
var pricing_array = new Object();

var ticketPriceTotal = {
	init: function() {
		if (!document.getElementsByTagName) return;
		if (!Sarissa) return;
		
		//var all_tickets = document.getElementsByTagName('input');
		var all_tickets = getElementsByClass(document,'ticket','input');
		for (var i=0; i<all_tickets.length; i++) {
			//if (all_tickets[i].className && (' ' + all_tickets[i].className + ' ').indexOf(' ticket ') != -1) {
				ticketPriceTotal.addEvent(all_tickets[i], 'click', ticketPriceTotal.calcTotal, false);
				if (i%2 == 0) {
//					pricing_array[all_tickets[i].checked] = true;
					pricing_array[all_tickets[i].name] = all_tickets[i].value * 1;
					Total = 0;
					for (testKey in pricing_array) {
						Total += pricing_array[testKey] *1;
					}
					//document.ticket_prices.total.innerHTML = Total;
					total_text = document.getElementById('total');
					total_text.innerHTML = '$'+Total.toFixed(2);
					total_price = document.getElementById('total_price');
					total_price.value = Total; //.toFixed(2);
					//document.getElementById('total_price').value = Total.toFixed(2);
					//alert(i);
				}
			//}
		}		
	},
	addEvent: function(elm, evType, fn, useCapture) {
		// cross-browser event handling for IE5+, NS6 and Mozilla
		// By Scott Andrew
		if (elm.addEventListener) {
			elm.addEventListener(evType, fn, useCapture);
			return true;
		} else if (elm.attachEvent) {
			var r = elm.attachEvent('on' + evType, fn);
			return r;
		} else {
			elm['on' + evType] = fn;
		}
	},
	calcTotal: function(e) {
		var el;
		if (window.event && window.event.srcElement)
			el = window.event.srcElement;
		if (e && e.target)
			el = e.target;
		//var qs = '?seat=' + el.id;
		pricing_array[el.name] = el.value * 1;
		Total = 0;
		for (testKey in pricing_array) {
			Total += pricing_array[testKey] *1;
		}
		//document.ticket_prices.total.value = Total;
		total_text = document.getElementById('total');
		total_text.innerHTML = '$'+Total.toFixed(2);
		total_price = document.getElementById('total_price');
		total_price.value = Total; //.toFixed(2);
		//document.getElementById('total_price').value = Total;
	}
}
//ticketPriceTotal.addEvent(window, 'load', ticketPriceTotal.init, false);

var familyDiscount = {
	init: function() {
		if (!document.getElementsByTagName) return;
		if (!Sarissa) return;
		
		var all_checkboxes = document.getElementsByTagName('input');
		for (var i=0; i<all_checkboxes.length; i++) {
			if (all_checkboxes[i].className && (' ' + all_checkboxes[i].className + ' ').indexOf(' family_discount ') != -1) {
				familyDiscount.addEvent(all_checkboxes[i], 'click', familyDiscount.calcTotal, false);
				familyDiscount.calcTotal();
			}
		}		
	},
	addEvent: function(elm, evType, fn, useCapture) {
		// cross-browser event handling for IE5+, NS6 and Mozilla
		// By Scott Andrew
		if (elm.addEventListener) {
			elm.addEventListener(evType, fn, useCapture);
			return true;
		} else if (elm.attachEvent) {
			var r = elm.attachEvent('on' + evType, fn);
			return r;
		} else {
			elm['on' + evType] = fn;
		}
	},
	calcTotal: function(e) {
		var el;
		var discount_total = 0;
		var checkbox_total = 0;
		var temp_checkbox_total = 0;
		var remainder = 0;
		if (window.event && window.event.srcElement)
			el = window.event.srcElement;
		if (e && e.target)
			el = e.target;
		var all_checkboxes = document.getElementsByTagName('input');
		for (var i=0; i<all_checkboxes.length; i++) {
			if (all_checkboxes[i].className && (' ' + all_checkboxes[i].className + ' ').indexOf(' family_discount ') != -1) {
				if (all_checkboxes[i].checked) {
					checkbox_total++;
				}
			}
		}
		remainder = checkbox_total % 4;
		temp_checkbox_total = checkbox_total - remainder;
		discount_total = temp_checkbox_total / 4;
		if (remainder > 0) {
			discount_total++;
		}
		//discount_total = Math.round(checkbox_total / 4);
		//if (checkbox_total % 4 == 0) {
		//} else {
		//	discount_total += 1;
		//}
		document.getElementById('number_of_discounts').innerHTML = discount_total;
	}
}
familyDiscount.addEvent(window, 'load', familyDiscount.init, false);

// copy billing address details

var ShipAddress1 = "";
var ShipAddress2 = "";
var ShipCity = "";
var ShipState = "";
var ShipStateIndex = 0;
var ShipZip = "";

function InitSaveVariables(form) {
ShipAddress1 = document.getElementById('order_post_address_1').value;
ShipAddress2 = document.getElementById('order_post_address_2').value;
ShipCity = document.getElementById('order_post_suburb').value;
ShipZip = document.getElementById('order_post_postcode').value;
ShipState = document.getElementById('order_post_state').value;
}

function ShipToBillPerson(form) {
if (form.copy.checked) {
InitSaveVariables(form);
document.getElementById('order_post_address_1').value = document.getElementById('order_address_1').value;
document.getElementById('order_post_address_2').value = document.getElementById('order_address_2').value;
document.getElementById('order_post_suburb').value = document.getElementById('order_suburb').value;
document.getElementById('order_post_postcode').value = document.getElementById('order_postcode').value;
document.getElementById('order_post_state').value = document.getElementById('order_state').value;
}
else {
document.getElementById('order_post_address_1').value = ShipAddress1;
document.getElementById('order_post_address_2').value = ShipAddress2;
document.getElementById('order_post_suburb').value = ShipCity;
document.getElementById('order_post_postcode').value = ShipZip;       
document.getElementById('order_post_state').value = ShipState;
   }
}

