// JavaScript for the Registration System



function fillFormWithTestData()
{

	for (var i = 0; i < document.forms.length; i++)
	{

		//alert('Form Found - ' + document.forms[i].elements.length + ' Element(s)');


		/* This works temporarily, but I might want to improve the form-detection later. */
		if (document.forms[i].elements.length > 30)
		{

			for (var j = 0; j < document.forms[i].elements.length; j++)
			{

				var element = document.forms[i].elements[j];


				// Contact Information

				if (element.name == 'first_name') { element.value = 'Testy'; }

				else if (element.name == 'last_name') { element.value = 'Testington'; }

				else if (element.name == 'company') { element.value = 'TestCo, Inc.'; }

				else if (element.name == 'physical_address_1') { element.value = '123 Test Street'; }

				else if (element.name == 'physical_address_2') { element.value = 'Suite 4'; }

				else if (element.name == 'country') { element.selectedIndex = 3; }

				else if (element.name == 'city') { element.value = 'Testville'; }

				else if (element.name == 'state_or_province') { element.value = 'California'; }

				else if (element.name == 'postal_code') { element.value = '98765-4321'; }

				else if (element.name == 'primary_telephone_number_part_1') { element.value = '916'; }

				else if (element.name == 'primary_telephone_number_part_2') { element.value = '123'; }

				else if (element.name == 'primary_telephone_number_part_3') { element.value = '4567'; }

				else if (element.name == 'primary_telephone_number_extension') { element.value = '890'; }

				else if (element.name == 'alternate_telephone_number_part_1') { element.value = '916'; }

				else if (element.name == 'alternate_telephone_number_part_2') { element.value = '987'; }

				else if (element.name == 'alternate_telephone_number_part_3') { element.value = '6543'; }

				else if (element.name == 'alternate_telephone_number_type') { element.selectedIndex = 2; }

				//else if (element.name == 'e-mail_address') { element.value = 'not+' + getUTCTimestamp().toString() + '@example.com'; }
				//else if (element.name == 'e-mail_address') { element.value = 'test+' + getUTCTimestamp().toString() + '@gotparts.com'; }
				else if (element.name == 'e-mail_address') { element.value = 'brian.sexton+' + getUTCTimestamp().toString() + '@gmail.com'; }


				// Driver License

				else if (element.name == 'driver_license_number') { element.value = 'A1234567'; }

				else if (element.name == 'driver_license_country') { element.selectedIndex = 3; }

				else if (element.name == 'driver_license_state_or_province') { element.value = 'California'; }


				// Country of Residence

				else if (element.name == 'country_of_residence') { element.selectedIndex = 3; }


				// Passport

				else if (element.name == 'passport_number') { element.value = 'USA-123456-ABCD'; }

				else if (element.name == 'passport_country') { element.selectedIndex = 3; }


				// Terms & Conditions

				else if (element.name == 'agree_to_terms_and_conditions') { element.checked = 'checked'; }

			}

		}

	}


	manageContactInformationCountryInputElements();

	manageDriverLicenseCountryInputElements();

	managePassportCountryInputElements();

}



function getUTCTimestamp()
{

	var date = new Date();


	return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());

}



function handleCountryMenuChange(menu)
{

	if (document.getElementById)
	{

		if (menu.name == 'country')
		{

			manageCountryInputElements(menu, document.getElementById('country-custom'));

		}

		else if (menu.name == 'country_of_residence')
		{

			manageCountryInputElements(menu, document.getElementById('country_of_residence-custom'));

		}

		else if (menu.name == 'driver_license_country')
		{

			manageCountryInputElements(menu, document.getElementById('driver_license_country-custom'));

		}

		else if (menu.name == 'passport_country')
		{

			manageCountryInputElements(menu, document.getElementById('passport_country-custom'));

		}

	}

}



function manageCountryInputElements(menu, field)
{

	if (document.getElementById)
	{

		if (menu && field)
		{

			if (menu.value != 'other')
			{

				field.disabled = true;

				// The following causes Internet Explorer 7 to report an "Invalid property value" for the calling page.
				// It seems fine in Firefox 3.0.7 (M/W) and Safari 3.2.1 (M).
				//field.style.backgroundColor = 'inherit';
				field.style.backgroundColor = '#ddd';

				field.value = '';

			}

			else
			{

				field.disabled = false;

				field.style.backgroundColor = null;

			}

		}

	}

}



function prepareFormForSubmission(form)
{

	var inputElements;

	var labels;

	var legends;

	var optionElements;

	var selectMenus;


	if (document.getElementById)
	{

		inputElements = form.getElementsByTagName('input');

		labels = form.getElementsByTagName('label');

		legends = form.getElementsByTagName('legend');

		optionElements = form.getElementsByTagName('option');

		selectMenus = form.getElementsByTagName('select');


		// Input Elements


		for (var i = 0; i < inputElements.length; i++)
		{

			if (inputElements[i].type == 'text')
			{

				inputElements[i].readOnly = true;

				inputElements[i].disabled = false;

				//inputElements[i].style.backgroundColor = 'inherit';
				inputElements[i].style.backgroundColor = '#ddd';

			}

		}


		// Select-Menu Option Elements


		for (var oi = 0; oi < optionElements.length; oi++)
		{

			if (optionElements[oi].selected != true)
			{

				optionElements[oi].disabled = true;

				optionElements[oi].style.backgroundColor = 'inherit';

			}

		}


		// Select Menus


		for (var j = 0; j < selectMenus.length; j++)
		{

			selectMenus[j].disabled = false;

			selectMenus[j].style.backgroundColor = 'inherit';

		}


		// Labels


		for (var k = 0; k < labels.length; k++)
		{

			labels[k].className = 'Disabled';

		}



		// Legends


		for (var m = 0; m < legends.length; m++)
		{

			legends[m].style.color = '#999';

		}

	}


	return true;

	//alert('Submission Disabled for Testing');
	//return false;

}



window.onload = function()
{

	//fillFormWithTestData();


	if (document.getElementById)
	{

		//manageContactInformationCountryInputElements();

		//manageDriverLicenseCountryInputElements();

		//managePassportCountryInputElements();

//document.getElementById('driver_license_country-custom')


		manageCountryInputElements(document.getElementById('country'), document.getElementById('country-custom'));

		manageCountryInputElements(document.getElementById('country_of_residence'), document.getElementById('country_of_residence-custom'));

		manageCountryInputElements(document.getElementById('driver_license_country'), document.getElementById('driver_license_country-custom'));

		manageCountryInputElements(document.getElementById('passport_country'), document.getElementById('passport_country-custom'));

	}

}