function assignHandlers()
{
	var inputs = document.getElementsByTagName("input");
	for (var index = 0; index < inputs.length; index++)
	{
		var input = inputs.item(index);
		
		if (input.type == "text" & input.className == "orderItem")
		{
			input.onblur = createHandler();
			input.onchange = createHandler();
			input.onfocus = function() { this.select(); };
		}
	}
	
	setDisplayOrderBreads();
}

function createHandler()
{
	return function()
	{
		showTotal(this.form);
	};
}

function showTotal()
{
	document.getElementById("itemCount").innerHTML = "Total Items: " + sumTotal();
}

function sumTotal(orderForm)
{
	//just make sure everything is corrected first
	checkForm(orderForm);
	
	var total = 0;
	
	var inputs = document.getElementsByTagName("input");
	for (var index = 0; index < inputs.length; index++)
	{
		var input = inputs.item(index);
		
		if (input.type == "text" & input.className == "orderItem")
		{
			total += parseInt(input.value);
		}
	}
	
	return total;
}

function validateForm(orderForm)
{
	//check the form first so that incorrect items are marked
	var errorMsg = checkForm(orderForm);
	
	if (errorMsg == "")
	{
		var total = sumTotal(orderForm);
		if (parseInt(total) == 0)
		{
			errorMsg = "Please select at least one item to order";
		}
		else if (isAboveMaximum(total))
		{
			errorMsg = "Your order is too big! Please contact Bethesdabakers to arrange your order";
		}
		else if (document.getElementById("bakeDate1").checked == false && 
		         document.getElementById("bakeDate2").checked == false)
		{
			errorMsg = "Please select a bake date";
		}
		else if (document.getElementById("name").value == "")
		{
			errorMsg = "Please enter your name";
		}
		else if (document.getElementById("phone").value == "" || 
		         !isValidPhoneNumber(document.getElementById("phone").value))
		{
			errorMsg = "Please enter a valid phone number";
		}
	}
	
	if (errorMsg == "")
	{
		document.getElementById("errorText").innerHTML = "";
		return true;
	}
	else
	{
		document.getElementById("errorText").innerHTML = errorMsg;
		return false;
	}
}

function checkForm(orderForm)
{
	var errorMsg = "";
	
	var inputs = document.getElementsByTagName("input");
	for (var index = 0; index < inputs.length; index++)
	{
		var input = inputs.item(index);
		
		if (input.type == "text" & input.className == "orderItem")
		{
			var msg = validateControl(input);
			if (errorMsg == "") errorMsg = msg;
		}
	}
	
	return errorMsg;
}

function validateControl(control)
{
	if (!isPositiveInteger(control.value))
	{
		control.value = "0";
		return "Please enter numbers only in the order form";
	}
	else if (isAboveMaximum(control.value))
	{
		return "Your order is too big! Please contact Bethesdabakers to arrange your order";
	}
	else
	{
		return "";
	}
}

function isPositiveInteger(testValue)
{
	numRegExp = /^[0-9]+$/;
	return numRegExp.test(testValue);
}

function isAboveMaximum(testValue)
{
	//return (parseInt(testValue) > 25);
	return false;
}

function isValidPhoneNumber(testValue)
{
	phoneRegExp = /(\s*\(?0\d{4}\)?\s*\d{6}\s*)|(\s*\(?0\d{3}\)?\s*\d{3}\s*\d{4}\s*)/;
	return phoneRegExp.test(testValue);
}

function setDisplayBreads()
{
	hideItem("hideItem1", "item1");
	hideItem("hideItem2", "item2");
	hideItem("hideItem3", "item3");
	hideItem("hideItem4", "item4");
	hideItem("hideItem5", "item5");
	hideItem("hideItem6", "item6");
	hideItem("hideItem7", "item7");
	hideItem("hideItem8", "item8");
	hideItem("hideItem9", "item9");
	hideItem("hideItem10", "item10");
}

function setDisplayOrderBreads()
{
	hideItem("hideItem1", "item1");
	hideItem("hideItem2", "item2");
	hideItem("hideItem3", "item3");
	hideItem("hideItem4", "item4");
	hideItem("hideItem5", "item5");
	hideItem("hideItem6", "item6");
	hideItem("hideItem7", "item7");
	hideItem("hideItem8", "item8");
	hideItem("hideItem9", "item9");
	hideItem("hideItem10", "item10");
}

function hideItem(hideSettingID, itemID)
{
	if (document.getElementById)
	{
		if (document.getElementById(hideSettingID).innerHTML.toLowerCase() != "show")
		{
			document.getElementById(itemID).style.display = "none";
		}
	}
}