//////////////
// Settings //
//////////////

var AJAXdomain = window.location.protocol + '//' + window.location.hostname + '/';

var thisElement = '';
var errClr = "textError";
var error = '';

function contactPost() {
	var error = '';

	checkField('name', '', '<p class=\"error\">Please enter your name.</p>');
	checkField('arrive', '', '<p class=\"error\">Please enter your arrival date.</p>');
	checkField('depart', '', '<p class=\"error\">Please enter your departure date.</p>');
	checkField('guests', '', '<p class=\"error\">Please enter your number of guests.</p>');
	
	if ($F('email') != $F('confirmemail')) {
		error += '<p class=\"error\">Your email address and confirm address do not match. Please try again.</p>';
		highlightErrorField('email');		
		highlightErrorField('confirmemail');		
	} else {
		deHighlightErrorField('email');
		deHighlightErrorField('confirmemail');
	}
	checkField('email', '', '<p class=\"error\">Please enter an email address.</p>');	
	if ( !verifyEmailFormat($F('email'))) {
		error += '<p class=\"error\">Your email address is not in a valid format.  Please enter a proper email address.</p>';
		highlightErrorField('email');		
	}
	
	
	if (error == '') {
		$('errorContainer').innerHTML = '';
		var url = AJAXdomain + 'contact/ajaxcontact/';
		var pars = 'name=' + escape($F('name')) + '&arrive=' + escape($F('arrive')) + '&depart=' + escape($F('depart')) + '&guests=' + escape($F('guests')) + '&email=' + escape($F('email')) + '&phone=' + escape($F('phone')) + '&message=' + escape($F('message'));
	
		var myAjax = new Ajax.Updater('resultContainer', url, { method: 'post', parameters: pars }); 
	} else {
		$('errorContainer').innerHTML = error;
		location.hash = 'errorHash';
		new Effect.Highlight('errorContainer');

	}
}

// Error Check Secondary Scripts
function checkField(field, value, errorMessage) {
		if ($F(field) == value) {
			error += errorMessage;
			highlightErrorField(field);		
		} else deHighlightErrorField(field);

}

function highlightErrorField(field) {
	$(field).className = errClr;	
}
function deHighlightErrorField(field) {
	$(field).className = 'text';	
}

function generatePostString(form) {
	var pointer;
	var postString = '';

	try {
		// Input Fields
		var pointer = getElementsByTagNames('input', $(form));
		for ( var i in pointer ) {
			if (pointer[i].name != '') {
				if (pointer[i].type == 'hidden')
					postString +=  pointer[i].name + '=' + escape(pointer[i].value) + '&';
				else {
					if (pointer[i].checked)
						postString +=  pointer[i].name + '=' + escape(pointer[i].value) + '&';
				}
			}
		}
	} catch (e) {}
	try {
		// Input Fields
		var pointer = getElementsByTagNames('input', $(form));
		for ( var i in pointer ) {
			if (pointer[i].name != '') {
				if (pointer[i].type == 'text')
					postString +=  pointer[i].name + '=' + escape(pointer[i].value) + '&';
				else {
					if (pointer[i].checked)
						postString +=  pointer[i].name + '=' + escape(pointer[i].value) + '&';
				}
			}
		}
	} catch (e) {}
	try {
		// Selects
		var pointer = getElementsByTagNames('select', $(form));
		for ( var i in pointer ) {
			if (pointer[i].name != '') {
				postString +=  pointer[i].name + '=' + escape(pointer[i].value) + '&';
			}
		}	
	} catch(e) {}
	try {
		// Textareas
		var pointer = getElementsByTagNames('textarea', $(form));
		for ( var i in pointer ) {
			if (pointer[i].name != '') {
				postString +=  pointer[i].name + '=' + escape(pointer[i].value) + '&';
			}
		}
	} catch (e) {}
	
	return postString;
}

function getElementsByTagNames(list,obj)
{
	if (!obj) var obj = document;
	var tagNames = list.split(',');
	var resultArray = new Array();
	for (var i=0;i<tagNames.length;i++)
	{
		var tags = obj.getElementsByTagName(tagNames[i]);
		for (var j=0;j<tags.length;j++)
		{
			resultArray.push(tags[j]);
		}
	}
	var testNode = resultArray[0];
	if (testNode.sourceIndex)
	{
		resultArray.sort(function (a,b) {
				return a.sourceIndex - b.sourceIndex;
		});
	}
	else if (testNode.compareDocumentPosition)
	{
		resultArray.sort(function (a,b) {
				return 3 - (a.compareDocumentPosition(b) & 6);
		});
	}
	return resultArray;
}	

function isValidEmail(str) {
  verifyEmailFormat(str);
}
	
function verifyEmailFormat(str) {
	if (str == '') return true;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(str))
		return true;
	else 
		return false;
}