var handleSuccess = function(o) {

	var div = document.getElementById('msgs');
	var div2 = document.getElementById('msgs2');
	if (o.responseText !== undefined) {
		var message;
		if (o.responseText == 'success') {

			// Set success message
			message = '<p class="messageText">Thank you for contacting us. We will be in touch with you very soon.</p>' + '<br /><br />';

			// Clear out values
			var elem = document.getElementById(strFormName).elements;
			for ( var i = 0; i < elem.length; i++) {
				if (elem[i].value != 'Submit') {
					if (elem[i].type == "checkbox") {
						elem[i].checked = false;
					} else {
						elem[i].value = '';
					}
				}
			}

		} else {
			message = o.responseText;
		}
		div.innerHTML = message;
		if (div2 != null) {
			div2.innerHTML = message;
		}
	}
};

var handleFailure = function(o) {
	var div = document.getElementById('msgs');
	var div2 = document.getElementById('msgs2');

	if (o.responseText !== undefined) {
		var msg = "<p class=\"errorText\">"
				+ "A server error occured submiting the form.  Please try again."
				+ "</p>";
		div.innerHTML = msg;
		if (div2 != null) {
			div2.innerHTML = msg;
		}
	}
};

var callback = {
	success : handleSuccess,
	failure : handleFailure
};

// Reference to form used by success handler
var strFormName;

function makeRequest(url, formName) {

	try {
		var sUrl = url;
		strFormName = formName;

		// gather form data
		var postData = '';
		var elem = document.getElementById(strFormName).elements;
		for ( var i = 0; i < elem.length; i++) {

			// Checkboxes require special handling.
			if (elem[i].type == "checkbox") {
				postData += elem[i].name + "=";
				if (elem[i].checked) {
					postData += "true";
				} else {
					postData += "false";
				}
				postData += "&";

				// Radio buttons
			} else if (elem[i].type == "radio") {

				if (elem[i].checked) {
					postData += elem[i].name + "=" + elem[i].name + "&";
				}

			} else {
				postData += elem[i].name + "=";
				postData += elem[i].value + "&";
			}
		}

		var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback,
				postData);

	} catch (err) {
		txt = "There was an error on this page.\n\n";
		txt += "Error description: " + err.description + "\n\n";
		txt += "Click OK to continue.\n\n";
		alert(txt);
	}
};

/**
 * Set optional visibility properties. If the search string is found, visibility
 * is set to on. Otherwise, visibility is off.
 * 
 * @param targetName
 *            The id of the element whose visibility needs to be set
 * @param source
 *            The element whose value needs to be checked.
 * @param searchString
 *            The value being searched for.
 * @return
 */
function setVisibility(targetName, source, searchString) {

	try {

		// Set default
		var visibility = false;

		// Check for string
		var search = source.value.match(searchString);
		if (search == searchString) {
			visibility = true;
		}

		var target = document.getElementById(targetName);
		if (visibility) {
			target.style.visibility = '';

		} else {
			target.style.visibility = 'hidden';

		}
	} catch (err) {
		txt = "There was an error on this page.\n\n";
		txt += "Error description: " + err.description + "\n\n";
		txt += "Click OK to continue.\n\n";
		alert(txt);
	}
};
