// JavaScript Document
function ticketCheckOptions(ticketId)
{
	var stock_message = '';
	//var price = product_price;
	price = 0.00;
	
	// process modifiers
	elements = document.getElementsByTagName('select');
	var test_string = "tickets\\["+ticketId+"\\]\\[options\\]\\[m_option_";
	
 	for(var i=0;i<elements.length;i++)
	{
		var name = elements[i].name;

		if(name.match(test_string))
		{
			select_box = document.getElementById(name);

			selected_value = select_box.options[select_box.selectedIndex].value;

			if(selected_value != "")
			{
				selected_value = selected_value.replace(/^[0-9]+_/, '');
				price = format_currency(parseFloat(selected_value) + parseFloat(price));
			}
		}
	}
	
	document.getElementById("tickets["+ticketId+"][price]").innerHTML = price;
	
	//document.getElementById('product_stock_message').innerHTML = stock_message;
}

function ticketAddRequiredOption(ticketId, field, text)
{
		ticketRequiredOptions.push(new Array(ticketId, field, text));
}

function ticketAddLinkedOption(option1, option2)
{
		ticketLinkedOptions.push(new Array(option1, option2));
}

function ticketsCheckForm()
{
	inputs = document.getElementsByTagName('input');
	
	var errors = "";
	var linkedErrors = "";
	var totalTicketsSelected = 0;
	
 	for(var i=0;i<inputs.length;i++)
	{
		if(inputs[i].type == "hidden" && (inputs[i].id).match(/ticket_/))
		{
			var ticketId = inputs[i].value;
			
			// does this ticket have a quantity?
			qtyElement = document.getElementById("tickets["+ticketId+"][qty]");

			if(qtyElement.value > 0)
			{
				totalTicketsSelected++;

				// required options
				for(j=0;j<ticketRequiredOptions.length;j++)
				{
					if(ticketRequiredOptions[j][0] == ticketId)
					{
						var value = "";
						element = document.getElementById(ticketRequiredOptions[j][1]);
						
						switch(element.type)
						{
							case "select-one":
								value = element.options[element.selectedIndex].value;
								break;
							case "text":
								value = element.value;
								break;
						}
						
						if(value == "")
						{
							errors += ticketRequiredOptions[j][2];
							element.style.backgroundColor = "#F49A9A";
						}
					}
				}
				
				// linked options
				var optionsWarned = Array();
				for(j=0;j<ticketLinkedOptions.length;j++)
				{	
					var option1 = ticketLinkedOptions[j][0];
					var option2 = ticketLinkedOptions[j][1];
				
					var optionFound = 0;
					for(x=0;x<optionsWarned.length;x++)
					{
						if(option1[0] == optionsWarned[x] || option2[0] == optionsWarned[x])
						{
							optionFound++;
						}
					}
					
					if(optionFound == 0)
					{
						var option1_value = "";
						var option2_value = "";
				
						var ele_opt1 = document.getElementById(option1[0]);
						var ele_opt2 = document.getElementById(option2[0]);
						
						switch(ele_opt1.type)
						{
							case "select-one":
								option1_value = ele_opt1.options[ele_opt1.selectedIndex].value;
								option1_required_action = "select";
								break;
							case "text":
								option1_value = ele_opt1.value;
								option1_required_action = "enter a value for ";
								break;
						}
						
						switch(ele_opt2.type)
						{
							case "select-one":
								option2_value = ele_opt2.options[ele_opt2.selectedIndex].value;
								option2_required_action = "select";
								break;
							case "text":
								option2_value = ele_opt2.value;
								option2_required_action = "enter a value for ";
								break;
						}
						
						if(option1_value != "" && option2_value == "")
						{
							linkedErrors += "If you "+option1_required_action+" '"+option1[1]+"' you must "+option2_required_action+" '"+option2[1]+"'\n";
							optionsWarned.push(option1[0]);
							optionsWarned.push(option2[0]);
						}
						
						if(option2_value != "" && option1_value == "")
						{
							linkedErrors += "If you "+option2_required_action+" '"+option2[1]+"' you must "+option1_required_action+" '"+option1[1]+"'\n";
							optionsWarned.push(option1[0]);
							optionsWarned.push(option2[0]);
						}		
					}
				}
			}
		}
	}
	
	if(totalTicketsSelected > 0)
	{
		if(errors || linkedErrors)
		{
			var errorMessage = "Please check the following fields:\n "+errors
			if(linkedErrors)
			{
				errorMessage += "\n"+linkedErrors;
			}
			
			for(i=0;i<optionsWarned.length;i++)
			{
				element = document.getElementById(optionsWarned[i]);
				if(element != null )
				{
					element.style.backgroundColor = "#F49A9A";
				}
			}
			
			alert(errorMessage);
			return false;
		}
		else
		{
			return true;
		}
	}
	else
	{
		alert("Please enter quanities for the tickets you require");
		return false;
	}
}