Array.prototype.search = function (searchText)
{
	for (var i = 0, items = this.length; i < items; i++)
	{
		if ( this[i] == searchText ) return true;
	}
	return false;
}

String.prototype.trim = function ()
{
	var str = this;
	while(str.charAt(0) == (" "))
		str = str.substring(1);
	while(str.charAt(str.length-1) == " ")
		str = str.substring(0,str.length-1);
	return str;
}

String.prototype.removeSpaces = function ()
{
	var str = this.trim();
	for(var i = 0; i < str.length; i++)
		if(str.charAt(i) == " ")
			str = str.substring(0, i) + str.substring(i+1, str.length);
	return str;
}

Array.prototype.removeItems = function (item)
{
	var i = 0;
	while (i < this.length) {
		if (this[i] == item)
			this.splice(i, 1);
		else
			i++;
	}
	return this;
}

function markRequiredFields()
{
	for (var i = 0, iterations = requiredFields.length; i < iterations; i++)
	{
		if(document.contact[requiredFields[i]])document.contact[requiredFields[i]].style.backgroundColor = "#ffff66";
		if(document.contact[requiredFields[i]])document.contact[requiredFields[i]].style.color = "#000000";
	}
}

function validate()
{
	var errorCount = 0;
	var contactInputs = document.contact.getElementsByTagName('input');
	var contactSelects = document.contact.getElementsByTagName('select');
	var contactTextAreas = document.contact.getElementsByTagName('textarea');
	for (var i = 0, iterations = contactInputs.length; i < iterations; i++)
	{
		contactInputs[i].value = contactInputs[i].value.trim();
		if ((contactInputs[i].type == "text" || contactInputs[i].type == "radio") && requiredFields.search(contactInputs[i].name))
		{
			contactInputs[i].style.backgroundColor = "#ffff66";
			contactInputs[i].style.color = "#000000";
			if(contactInputs[i].value == "" || contactInputs[i].value == null)
			{
				contactInputs[i].style.backgroundColor = "#ff6666";
				errorCount++;
			}
		}
	}
	for (var i = 0, iterations = contactSelects.length; i < iterations; i++)
	{
		if (requiredFields.search(contactSelects[i].name))
		{
			contactSelects[i].style.backgroundColor = "#ffff66";
			contactSelects[i].style.color = "#000000";
			if(contactSelects[i][contactSelects[i].selectedIndex].defaultSelected)
			{
				contactSelects[i].style.backgroundColor = "#ff6666";
				errorCount++;
			}
		}
	}
	for (var i = 0, iterations = contactTextAreas.length; i < iterations; i++)
	{
		contactTextAreas[i].value = contactTextAreas[i].value.trim();
		if (requiredFields.search(contactTextAreas[i].name))
		{
			contactTextAreas[i].style.backgroundColor = "#ffff66";
			contactTextAreas[i].style.color = "#000000";
			if(contactTextAreas[i].value == "" || contactTextAreas[i].value == null)
			{
				contactTextAreas[i].style.backgroundColor = "#ff6666";
				errorCount++;
			}
		}
	}
	if (errorCount > 0)
		document.getElementById('alert').innerHTML = '<font color="#ff0000">The field(s) marked in red are required. Please complete the ' + errorCount + ' field(s) and resubmit the form.</font>';
	else
		document.contact.submit();
}

function resetForm()
{
	document.getElementById('alert').innerHTML = "";
	document.contact.reset();
	for (var i = 0, iterations = requiredFields.length; i < iterations; i++)
	{
		if(document.contact[requiredFields[i]])document.contact[requiredFields[i]].style.backgroundColor = "#ffff66";
		if(document.contact[requiredFields[i]])document.contact[requiredFields[i]].style.color = "#000000";
	}
}

var requiredFields = document.contact.requiredFields.value.removeSpaces().split(",");
markRequiredFields();
