//ensures that document.getElementById works for ALL browsers
if(document.all && !document.getElementById) {
	document.getElementById = function(id) {
		return document.all[id];
	}
}

var regURL = new RegExp();
var regEmail = new RegExp();

regURL.compile("^(https?://)?(([\\w!~*'().&=+$%-]+: )?[\\w!~*'().&=+$%-]+@)?(([0-9]{1,3}\\.){3}[0-9]{1,3}|([\\w!~*'()-]+\\.)*([\\w^-][\\w-]{0,61})?[\\w]\\.[a-z]{2,6})(:[0-9]{1,4})?((/*)|(/+[\\w!~*'().;?:@&=+$,%#-]+)+/*)$", "i");
regEmail.compile("^\\w[\\w._%+\\-]*\\w@\\w[\\w._%+\\-]*\\.[a-z]{2,4}$");

function validateForm() {
	var sMessage = "";
	
	if (txtEventName.value == "") {
		sMessage = sMessage + "Event Name is required.<br>";
	}
	
	if (txtEventWebsite.value == "") {
		sMessage = sMessage + "Event Web site is required.<br>";
	} else {
		if (!regURL.test(txtEventWebsite.value)) {
			sMessage = sMessage + "Event Web site must be a valid URL.<br>"
		}
	}
	
	if (txtEventDate.value == "") {
		sMessage = sMessage + "Event Date is required.<br>";
	} else {
		if (txtLast) {
			if (Date.parse(txtEventDate.value) <= Date.parse(Date())) {
				sMessage = sMessage + "Event Date must be sometime in the future.<br>";
			}
		}
	}
	
	if (txtEventExpectedAttendance.value == "") {
		sMessage = sMessage + "Event Attendance is required.<br>";
	}
		
	if (txtEventCity.value == "") {
		sMessage = sMessage + "Event City is required.<br>";
	}
	
	if (sCountriesWithStates.match(getSelectedValue(ddlEventCountry)))
	{
		if (getSelectedValue(ddlEventState) == "")
		{
			sMessage = sMessage + "Event State is required.<br>";
		}
	}
	
	if (getSelectedValue(ddlEventCountry) == "") 
	{
		sMessage = sMessage + "Event Country is required.<br>";
	}
		
	if (txtContactName.value == "") {
		sMessage = sMessage + "Contact Name is required.<br>";
	}

	if (txtContactEmailAddress.value == "") {
		sMessage = sMessage + "Contact Email Address is required.<br>";
	} else {
		if (!regEmail.test(txtContactEmailAddress.value)) {
			sMessage = sMessage + "Contact Email Address is not valid.<br>";
		}
	}

	if (txtContactTelephone.value == "") {
		sMessage = sMessage + "Contact Telephone is required.<br>";
	}
	
	if (txtContactPostalCode.value == "") {
		sMessage = sMessage + "Contact Postal Code is required.<br>";
	}
		
	if (txtContactAddress.value == "") {
		sMessage = sMessage + "Contact Address is required.<br>";
	}

	if (txtContactCity.value == "") {
		sMessage = sMessage + "Contact City is required.<br>";
	}
	
	if (sCountriesWithStates.match(getSelectedValue(ddlContactCountry))) {
		if (getSelectedValue(ddlContactState) == "") {
			sMessage = sMessage + "Contact State is required.<br>";
		}
	}
	
	if (getSelectedValue(ddlContactCountry) == "") {
		sMessage = sMessage + "Contact Country is required.<br>";
	}

	if (sMessage == "") {
		return true;
	} else {
		tdErrorMessage.innerHTML = sMessage;
		return false;
	}
}

function getSelectedValue(ddl) {
	return ddl.options[ddl.selectedIndex].value;
}

function countrySelected(sType)
{
	if (sType == "Event")
	{
		eventSelected();
	}
	else
	{
		contactSelected();
	}
}
function eventSelected()
{
	var sCountrySelected = getSelectedValue(ddlEventCountry);
	
	if (sCountrySelected == "") 
	{
		ddlEventState.disabled = true;
		trEventStateDropdown.style.display = "";
		trEventStateTextBox.style.display = "none";
	} 
	else 
	{
		if (sCountriesWithStates.match(sCountrySelected)) 
		{
			trEventStateDropdown.style.display = "";
			trEventStateTextBox.style.display = "none";
		}
		else 
		{
			trEventStateDropdown.style.display = "none";
			trEventStateTextBox.style.display = "";
		}
		ddlEventState.disabled = false;
	}
}
function contactSelected()
{
	var sCountrySelected = getSelectedValue(ddlContactCountry);
	
	if (sCountrySelected == "") {
		ddlContactState.disabled = true;
		trContactStateDropdown.style.display = "";
		trContactStateTextBox.style.display = "none";
	} else {
		if (sCountriesWithStates.match(sCountrySelected)) {
			trContactStateDropdown.style.display = "";
			trContactStateTextBox.style.display = "none";
		} else {
			trContactStateDropdown.style.display = "none";
			trContactStateTextBox.style.display = "";
		}
		ddlContactState.disabled = false;
	}
}


function SetupCalendar(calendarImgID, txtEventDateID) {
	Calendar.setup(
		{
			inputField  : txtEventDateID,   // ID of the input field
			ifFormat    : "%m/%d/%Y",    // the date format
			button      : calendarImgID,    // ID of the button
			align		: "Bl"
		}
	);
}