var formElements;

function sendFormData()
{
	//Get all of the form elements within the form
	var theForm      = document.getElementById('contactus');
	var inputFields  = theForm.getElementsByTagName('input');			
	var textAreas    = theForm.getElementsByTagName('textarea');
	var selectBoxes  = theForm.getElementsByTagName('select');
	var labels       = theForm.getElementsByTagName('label');
		
	//Put the elements into a single array
	formElements = new Array();
	formElements = appendArrayElements(formElements, inputFields);
	formElements = appendArrayElements(formElements, textAreas);
	formElements = appendArrayElements(formElements, selectBoxes);

	//Clean unwanted form elements out of the form element array
	formElements = removeFormElements(formElements);

	//Create params to post the the CF page
	var params      = new Object();
	var elementName = "";
	var labelName   = "";

	//Create form variables
	for(var i = 0; i <= formElements.length; i++)
	{
		if(formElements[i] != undefined)
		{
			elementName = escape(formElements[i].name);		
			params[elementName] = escape(formElements[i].value);
		}
	}

	//Create form field names
	for(var n = 0; n <= labels.length; n++)
	{
		if(labels[n] != undefined)
		{
			labelName = "label_" + escape(labels[n].htmlFor);
			params[labelName] = escape(labels[n].innerHTML);
		}
	}
	
	http( 'POST' , 'saveDetails2.cfm' , responseHandler, params); 
}


function responseHandler(obj)
{
	var outputHTML       = "";
	var errorArea        = document.getElementById("validationErrors");
	var confirmationArea = document.getElementById("confirmation");

	// Check to see whether any validation errors occured
	if(obj.responsesuccess == "false")
	{
		//Output the errors
		var errors = obj.responseerrors.toString().split(",");
		
		//Loop around the tokenized output
		outputHTML += "<ul>";
		
		for(var i in obj.responseerrors)
			outputHTML += "<li>" + obj.responseerrors[i] + "</li>";

		outputHTML += "</ul>";
		
		errorArea.innerHTML = outputHTML;		
		errorArea.style.display = "block";
		confirmationArea.style.display = "none";		
	}
	else
	{
		confirmationArea.innerHTML = obj.responsedata.message;

		//Now blank out the input fields
		for(var i = 0; i < formElements.length; i++)
		{
			formElements[i].value = "";
		}
		
		errorArea.style.display = "none";
		confirmationArea.style.display = "block";
	}
}

function removeFormElements(formElementArray)
{
	var cleanArray = new Array();

	for(var i = 0; i <= formElementArray.length; i++)
	{
		if(formElementArray[i]      != undefined &&
		   formElementArray[i].type != "submit"  &&
		   formElementArray[i].type != "reset"   &&
		   formElementArray[i].type != "button"
		  )
		{
			cleanArray.push(formElementArray[i]);
		}
	}
	
	return cleanArray;	
}

function appendArrayElements(baseArray,arrayToAppend)
{
	for(var i = 0; i <= arrayToAppend.length; i ++)
	{
		baseArray.push(arrayToAppend[i]);
	}
	
	return baseArray;
}
