
function prepareForm() {
	consolidateFields();
	calculateRegFees();
	setCookies();
}

function consolidateFields() {
	var phone_array = new Array();
	var date_array = new Array();
	var email_array = new Array();

	var fields = getElementsByClassName(document, "*", "field");

	for(var i = 0; i < fields.length; i++) {
		if(fields[i].type == 'text' && fields[i].name.match(/Phone/)) {
			phone_array.push(fields[i]);
		}
		if(fields[i].type == 'text' && fields[i].name.match(/Date/)) {
			date_array.push(fields[i]);
		}
		if(fields[i].type == 'text' && fields[i].name.match(/Email/)) {
			email_array.push(fields[i]);
		}
	}
	
	consolidatePhoneNumbers(phone_array);
	consolidateDates(date_array);
	selectEmail(email_array);
}

function consolidatePhoneNumbers(phone_array) {
	for(var i = 0; i < phone_array.length; i += 3) {
		if(phone_array[i].value == "" && phone_array[i + 1].value == "" 
	 	   && phone_array[i + 2].value == "") {
			continue;
		}
		else {
			var phoneNumber = "(" + phone_array[i].value + ") "
				 + phone_array[i + 1].value + "-" +  phone_array[i + 2].value;
			var phoneInput = document.getElementsByName
				(phone_array[i].name.substring(0, phone_array[i].name.length - 2))[0];
			phoneInput.value = phoneNumber;
		}
	}
}

function consolidateDates(date_array) {
	for(var i = 0; i < date_array.length; i += 3) {
		if(date_array[i].value == "" && date_array[i + 1].value == "" 
	 	   && date_array[i + 2].value == "") {
			continue;
		}
		else {
			var date = date_array[i].value + "/"
				 + date_array[i + 1].value + "/" +  date_array[i + 2].value;
			var dateInput = document.getElementsByName
				(date_array[i].name.substring(0, date_array[i].name.length - 3))[0];
			dateInput.value = date;
		}
	}
}

function selectEmail(email_array) {
	for(var i = 0; i < email_array.length; i++) {
		if(email_array[i].value == "") {
			continue;
		}
		else {
			var emailInput = document.getElementsByName("email")[0];
			emailInput.value = email_array[i].value;
			//document.write(emailInput.name + " " + emailInput.value);
			break;
		}
	}
}

function getInnerText(elementId) {
	return document.getElementById(elementId).firstChild.nodeValue;
}
  
function setInnerText(elementId, text) {
	document.getElementById(elementId).firstChild.nodeValue = text;
}

function calculateTeamRegFees() {
	var currentDate = new Date();

	var teamType = document.getElementsByName("Team Type");
	for(var i = 0; i < teamType.length; i++) {
		if(teamType[i].checked) {
			teamType = teamType[i].value;
			break;
		}
	}

	var wildCardInput = document.getElementsByName("Wildcard")[0];

	var regFeeAmount = 125;
	var regFeeText = teamType + " Team -- ";
	if(wildCardInput.checked)
		regFeeText += "Wild Card";
	else if(currentDate.getFullYear() == 2008
		  && (currentDate.getMonth() < 2
		  || currentDate.getDate() <= 3)) {
		regFeeText += "Early";
	}
	else {
		regFeeText += "Late";
		//regFeeAmount += 50;
	}
	regFeeText += " Entry";

	setInnerText("regFeeText", regFeeText);
	setInnerText("regFeeAmount", regFeeAmount);
}

function calculateParalympicRegFees() {
	var currentDate = new Date();

	var regFeeAmount = 15;
	var regFeeText = "Paralympic Event";

//	if(currentDate.getFullYear() == 2008
//		  && (currentDate.getMonth() < 2
//		  || currentDate.getDate() <= 3)) {
//		regFeeText += " -- Early";
//	}
//	else {
//		regFeeText += " -- Late";
//		regFeeAmount += 10;
//	}
//	regFeeText += " Entry";

	setInnerText("regFeeText", regFeeText);
	setInnerText("regFeeAmount", regFeeAmount);
}

function calculateRegFees() {
	if(document.getElementsByName("Team Type").length == 0)
		calculateParalympicRegFees();
	else
		calculateTeamRegFees();	
}

function setCookies() {
	var regFeeText = getInnerText("regFeeText");
	var regFeeAmount = getInnerText("regFeeAmount");
	
	createCookie("regFeeText", regFeeText, 1);
	createCookie("regFeeAmount", regFeeAmount, 1);
}

function updateFees(form, itemName, itemNumber, amount) {
	var price = parseFloat(amount);
      var handlingFee = (price + 0.3) / 0.971 - price;
      handlingFee = Math.round(handlingFee * 100) / 100;
        
      form.item_name.value = itemName;
      form.item_number.value = itemNumber;
      form.amount.value = amount;
      form.handling.value = handlingFee;
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}
