var number_of_selected_custom_events = 0;
var errors = '';

$(document).ready(function()
{
	if (open_custom == 'y')
		MakeVisible('custom_table');
	if (open_additional == 'y')
		MakeVisible('custom_additional');
	if (open_family == 'y')
		MakeVisible('custom_family');
});


function UpdateTotal (formtype, f_number)
{
	var quantity = $('#' + formtype + '_quantity_' + f_number).val();
	var price = $('#' + formtype + '_price_' + f_number).val();
	var total = $('#' + formtype + '_total_' + f_number).val();
	
	quantity = quantity.replace(/[^0-9]/g, '');
	price = price.replace(/[^0-9\.]/g, '');
	
	var real_total = Number(quantity) * Number(price);
	if ((real_total != 0) && (!isNaN(real_total)))
	{
		$('#' + formtype + '_total_' + f_number).val(real_total.toFixed(2));
	} else {
		$('#' + formtype + '_total_' + f_number).val('');
	}
	
	UpdateSubTotal(formtype);
	if (formtype == 'c') {
		UpdateSelectedNumber();
		UpdateDiscount(formtype);
	} else {
		UpdateDiscount(formtype);
	}
	UpdateFinalTotal(formtype);
	GrandTotal();
}

function FixTotal(item)
{
	item.value = item.value.replace(/[^0-9\.]/g, '');
}

function UpdateSubTotal (formtype)
{
	var v;
	var total = 0;
	
	if (formtype == 'g') {
		var t = great_fields;
	} else if (formtype == 'm') {
		var t = 2;
	} else {
		var t = custom_fields;
	}

	for (var i = 0; i < t; i++)
	{
		v = $('#' + formtype + '_total_' + i).val();
		if (v)
		{
			total = Number(total) + Number(v); 
		}
	}
	
	$('#' + formtype + '_subtotal').val(total.toFixed(2));
}

function UpdateSelectedNumber()
{
	var v = 0;
	for (var i = 0; i < custom_fields; i++)
	{
		var t = $('#c_quantity_' + i).val();
		if (t > 0)
		{
			v++;
		} 
	}
	number_of_selected_custom_events = v;
}

function UpdateDiscount (formtype)
{
	var subTotal = $('#' + formtype + '_subtotal').val();
	var realDiscount = 0;
	
	if (formtype == 'c')
	{
		if ((number_of_selected_custom_events == 4) || (number_of_selected_custom_events == 5))
		{
			realDiscount = (Number(subTotal) * .1)
		} else if ((number_of_selected_custom_events > 5) && (number_of_selected_custom_events < 10)) {
			realDiscount = (Number(subTotal) * .15)
		} else if ((number_of_selected_custom_events > 9) && (number_of_selected_custom_events < 15)) {
			realDiscount = (Number(subTotal) * .20)
		} else if (number_of_selected_custom_events > 14) {
			realDiscount = (Number(subTotal) * .25)
		} 
	} else if (formtype == 'a') {
		realDiscount = (Number(subTotal) * .1)
	} else if (formtype == 'f') {
		realDiscount = (Number(subTotal) * .5)
	}
	
	$('#' + formtype + '_discount').val(realDiscount.toFixed(2))
}

function UpdateFinalTotal (formtype)
{
	if ((formtype == 'g') || (formtype == 'm'))
	{
		var subTotal = Number($('#' + formtype + '_subtotal').val());
		$('#' + formtype + '_finaltotal_end').val(subTotal.toFixed(2));
	} else {
		var realFinal =  Number($('#' + formtype + '_subtotal').val()) - Number($('#' + formtype + '_discount').val());
		$('#' + formtype + '_finaltotal').val(realFinal.toFixed(2));
		$('#' + formtype + '_finaltotal_end').val(realFinal.toFixed(2));
	}
}

function GrandTotal ()
{
	var finalTotal = Number($('#g_finaltotal_end').val()) + Number($('#c_finaltotal_end').val()) + Number($('#a_finaltotal_end').val()) + Number($('#f_finaltotal_end').val()) + Number($('#m_finaltotal_end').val()) + Number($('#donation').val()) + 10;
	$('#grand_total').val(finalTotal.toFixed(2));
}

function MakeVisible (thing)
{
	$('#' + thing).removeClass('hidden');
}

function ValidateForm()
{	
	CheckFormField('name');
	CheckFormField('address');
	CheckFormField('city');
	CheckFormField('state');
	CheckFormField('zip');
	CheckFormField('day_phone');
	CheckFormField('evening_phone');
	CheckFormField('email');
	CheckFormField('fcfa_member');
	
	// Make sure they've signed up for a series
	
	if (((Number($('#g_finaltotal_end').val()) < 1) || ($('#g_finaltotal_end').val() == '')) && (number_of_selected_custom_events < 4))
	{
		errors = errors + "- You must select at least one Great Performances Series or at least 4 events for a Custom Series to submit this form\n";
	} else if ((number_of_selected_custom_events > 0) && (number_of_selected_custom_events < 4)) {
		errors = errors + "- You must have at least 4 events for a Custom Series\n";
	}
	
	var callBackTest = 0;
	for (var i = 1; i < 21; i++)
	{
		if ($('#callback_' + i + ':checked').length > 0)
		{
			callBackTest = 1;
		}
	}
	
	if (callBackTest == 0)
	{
		errors = errors + "- You must choose a callback day/time\n";
		$('#call_field').addClass('highlight');
	}
	
	if (errors != '')
	{
		alert("The form is incomplete. The following errors were found:\n\n" + errors);
		errors = '';
		return false;
	} else {
		return true;
	}
}

function CheckFormField (item)
{
	if ($('#' + item).val() == '')
	{
		$('#' + item + '_field').addClass('highlight');
		errors = "- Missing some required fields. Please review the form and try again\n";
	}
}