// JavaScript Document


	aErrors = Array();
	aFields = Array();

	// the goal of this function is to not capture the event of the text
	// being typed in but to just take any input and format it correctly.
	// for example if the user pastes in their phone number not formatted
	// reformat the number correctly.

	// numbers should result xxx-xxx-xxxx
	function format_phone(element)
	{
		//aFields.push(field_name);
		
		phone =	element.value.toString();
		phone = phone.replace(/[^0-9]/g, '');
		
		area = phone.substr(0,3);
		pre = phone.substr(3,3);
		number = phone.substr(6,4);
		
		//debug(phone + "<br>" + phone.length + "<br>" + area + "-" + pre + "-" + number);
		
		if ( phone.length > 6 )
		{
			element.value = area + "-" + pre + "-" + number;
		}		
		else if ( phone.length > 3 )
		{
			element.value = area + "-" + pre;
		}
		else
		{
			element.value = area;
		}
	
		return true;
	}

	// this function is for fields with no validation
	function is_none()
	{	
		return true;	
	}

	function debug(string)
	{
		document.getElementById("debug").innerHTML = string;
	}
	
	function logField(field_name)
	{
		aFields.push(field_name);
	}

	function logFieldError(field_name, error_text)
	{
		aErrors.push(field_name);
		
		error_msg.push(error_text);
	}

	function getErrorString()
	{
		var error_string = "The following problems were found on this form.\n\n";
		
		for ( i = 0; i < error_msg.length; i++ )
		{
			error_string += error_msg[i] + "\n";
		}
		
		showFormErrors();
		
		return error_string;
	}
	
	function showFormErrors()
	{
		// set the fields being validated to the default class
		for ( i = 0; i < aFields.length; i++ )
		{
			aFields[i].className = "form_element";
		}
		
		// flag the fields with our error class		
		for ( i = 0; i < aErrors.length; i++ )
		{
			aErrors[i].className = "form_error";
		}
		
		// reset our arrays for next use
		aErrors = Array();
		aFields = Array();
	}

	function check_length(field_name, title, length)
	{
		logField(field_name);
		
		if ( parseInt(field_name.value.length) > length )
		{
			logFieldError(field_name, "The " + title + " field can only be " + length + " long.")
			
			return false;
		}
	}

	function is_nonempty (field_name, title)
	{
		logField(field_name);
		
		if ( field_name.value == "" )
		{
			logFieldError(field_name, "The " + title + " field cannot be empty.");
			
			return false;
		}
	}

	function is_propername()
	{
		return true;
	}

	function is_address (text)
	{
		return true;
	}

	// should handle three varietys: standard usmail, zip+four, canada
	function is_postalcode (text)
	{
		return true;
	}
						
	// horribly bad. just having an at sign present with pass the var through.
	function is_email (field_name, title)
	{
		logField(field_name);
		
		<!-- This script and many more are available free online at -->
		<!-- The JavaScript Source!! http://javascript.internet.com -->
		
		if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(field_name.value))
		{
			return true;
		}
		else
		{
			logFieldError(field_name, "The " + title + " field is not a valid address.");
			
			return false;
		}
	}

	function is_numeric(field_name, title)
	{
		logField(field_name);
		
		if ( isNaN(parseInt(field_name.value)) == false )
		{
			return true;
		}
		else
		{
			logFieldError(field_name, "The " + title + " field is not a valid.");
			
			return false;
		}
	}

	function is_phone(field_name)
	{
		return true;
	}
	
	function is_mmyyyy (text)
	{
		
	}

	function is_alphanumeric (text)
	{
		return true;
	}

