function oc(a)
{
  var o = {};
  for(var i=0;i<a.length;i++)
  {
    o[a[i]]='';
  }
  return o;
}

function validate(form)
{
	form.zip.value = form.zip.value.toUpperCase();
	
	var name = form.name.value;
	var hotel= form.hotel.value;
	var address = form.address.value;
	var state = form.state.value;
	var zip = form.zip.value;
	var email = form.email.value;
	var phone = form.phone.value;

	var nameRegex = /^([a-zA-z\s]{2,32})+(([\- ])?[a-zA-z\s]{2,32})*$/;
	var emailRegex = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
	var dateRegex = /(((0[13578]|10|12)([-.\/])(0[1-9]|[12][0-9]|3[01])([-.\/])(\d{4}))|((0[469]|11)([-.\/])([0][1-9]|[12][0-9]|30)([-.\/])(\d{4}))|((2)([-.\/])(0[1-9]|1[0-9]|2[0-8])([-.\/])(\d{4}))|((2)(\.|-|\/)(29)([-.\/])([02468][048]00))|((2)([-.\/])(29)([-.\/])([13579][26]00))|((2)([-.\/])(29)([-.\/])([0-9][0-9][0][48]))|((2)([-.\/])(29)([-.\/])([0-9][0-9][2468][048]))|((2)([-.\/])(29)([-.\/])([0-9][0-9][13579][26])))/;
	var textRegex = /^[a-zA-Z]$/;
	var numRegex = /^[0-9]$/;
	var zipRegex = /(^(?!0{5})(\d{5})(?!-?0{4})(-?\d{4})?$)|[ABCEGHJKLMNPRSTVXYabceghjklmnprstvxy]\d[ABCEGHJKLMNPRSTVWXYZabceghjklmnprstvwxyz][ -]*\d[ABCEGHJKLMNPRSTVWXYZabceghjklmnprstvwxyz]\d$/;
	var phoneRegex = /^([(]?[2-9]\d{2}[)]?[-| |.]\d{3}[-| |.]\d{4}((( x| ext)\d{1,5})|))*$/
	
	var states = new Array("AA", "AE", "AL", "AK", "AP", "AZ", "AR", "AS", "CA", "CO", "CT", "DE", "DC", "FL", "GA", "GU", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "LB", "ME", "MD", "MA", "MI", "MH", "MN", "MS", "MO", "MP", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "PR", "PW", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "VI", "WA", "WV", "WI", "WY");
	var provinces = new Array("AB", "BC", "MB", "LB", "NB", "NF", "NT", "NS", "ON", "PE", "QC", "SK", "YT");
	var otherLocations = new Array("OUSC");
	
	if (name == "")
	{
		inlineMsg('name','Please enter your name.',2);
		return false;
	}
	else if (!name.match(nameRegex))
	{
		inlineMsg('name','You have entered an invalid name.',2);
		return false;
	}

	else if (hotel == "")
	{
		inlineMsg('hotel','Please enter a hotel.',2);
		return false;
	}

	else if (address == "")
	{
		inlineMsg('address','Please enter an address.',2);
		return false;
	}
	else if (city == "")
	{
		inlineMsg('city','Please enter a city.',2);
		return false;
	}
	else if (state == "")
	{
		inlineMsg('state','Please enter a state or province.',2);
		return false;
	}
	else if (zip == "")
	{
		inlineMsg('zip','Please enter a zip/postal code.',2);
		return false;
	}
	
	else if (email == "")
	{
		inlineMsg('email','Please enter your email.',2);
		return false;
	}
	else if (!email.match(emailRegex))
	{
		inlineMsg('email', "Please enter a valid email.", 2);
		return false;
	}
	
	else if (phone == "")
	{
		inlineMsg('phone','Please enter a phone number.',2);
		return false;
	}

	else if (fax != "" && !fax.match(phoneRegex))
	{
		inlineMsg('fax','Please enter a valid fax number.',2);
		return false;
	}

	return true;
}
