String.prototype.trim = function () {
    return this.replace(/^\s*(.*?)\s*$/, "$1");
}

// Handler for onChange event of Country field
function handleCountryChange() {
	var country = document.getElementById('country');
	var states = document.getElementsByName('state');
	var stateRow = document.getElementById('stateRow');

	for ( var i = 0; i < states.length; i++ ) {
		states[i].style.display = 'none';
		states[i].disabled = true;
	}
	
	if ( country.value == "USA" || country.value == "Canada" ) {
		stateRow.style.display = '';
		document.getElementById(country.value).style.display = 'block';
		document.getElementById(country.value).disabled = false;
	}
	else {
		stateRow.style.display = 'none';
	}
}

function VF_form() {
	var errMsg = "";
	var setfocus = "";
	
	var num = /^\d+$/;
	var email = /(@\w[-._\w]*\w\.\w{2,4})$/;
	var phone = /^[\+\(\d][\d\-\(\)\.\+\s]+$/;
	//var user = new RegExp("^([a-zA-Z0-9_]|(\\s)|(-)|(\\.)|(,))+$","g");
	//var user = /^([a-zA-Z0-9_]|(\\s)|(-)|(\\.)|(,)|(.))+$/;
	var user = /^([^@#\$%\^&\*\?<>\[{}])+$/;


// State/Province
	country = document.getElementById('country');
	if ( country.value == "USA" || country.value == "Canada" ) {
		if ( document.getElementById(country.value).value == '' ) {
	      errMsg = "State/Province is Required.";
	      setfocus = country.value;
		}
	}


// Country
	if ( document.getElementById('country') )
		if (document.getElementById('country').value == '') {
	      errMsg = "Country is Required.";
	      setfocus = "country";
	    }
// Referral Company Required
	if ( document.getElementById('referral_company') )
		if (document.getElementById('referral_company').value.trim() == "") {
			errMsg = "Referral Company is Required.";
			setfocus = "referral_company";
		}
		else if (!user.test(document.getElementById('referral_company').value)) {
			errMsg = "Referral Company has invalid characters.";
			setfocus = "referral_company";
		}		
// Referral Email
	if ( document.getElementById('friend_email') )
		if (document.getElementById('friend_email').value.trim() == "") {
			errMsg = "Referral Email is Required.";
			setfocus = "friend_email";
		}
		else if (!email.test(document.getElementById('friend_email').value)) {
			errMsg = "Valid Referral Email is required.";
			setfocus = "friend_email";
		}
// Referral Phone Required
	if ( document.getElementById('referral_phone') )
		if (document.getElementById('referral_phone').value.trim() == "") {
			errMsg = "Referral Phone is Required.";
			setfocus = "referral_phone";
		}
		else if (!phone.test(document.getElementById('referral_phone').value)) {
			errMsg = "Valid Referral Phone is Required.";
			setfocus = "referral_phone";
		}

// Referral Last Name
	if ( document.getElementById('referral_last_name') )
		if (document.getElementById('referral_last_name').value.trim() == "") {
			errMsg = "Referral Last Name is Required.";
			setfocus = "referral_last_name";
		}
		else if (!user.test(document.getElementById('referral_last_name').value)) {
			errMsg = "Referral Last Name has invalid characters.";
			setfocus = "referral_last_name";
		}

// Referral First Name
	if ( document.getElementById('referral_first_name') )
		if (document.getElementById('referral_first_name').value.trim() == "") {
			errMsg = "Referral First Name is Required.";
			setfocus = "referral_first_name";
		}
		else if (!user.test(document.getElementById('referral_first_name').value)) {
			errMsg = "Referral First Name has invalid characters.";
			setfocus = "referral_first_name";
		}
// Company
	if ( document.getElementById('company') )
		 if ( document.getElementById('company').value.trim() != "" && !user.test(document.getElementById('company').value)) {
			errMsg = "Company has invalid characters.";
			setfocus = "company";
		}
// Company Required
	if ( document.getElementById('companyreq') )
		if (document.getElementById('companyreq').value.trim() == "") {
			errMsg = "Company is Required.";
			setfocus = "companyreq";
		}
		else if (!user.test(document.getElementById('companyreq').value)) {
			errMsg = "Company has invalid characters.";
			setfocus = "companyreq";
		}
		
// Title
	if ( document.getElementById('title') )
		if ( document.getElementById('title').value.trim() != "" && !user.test(document.getElementById('title').value)) {
			errMsg = "Job Title has invalid characters.";
			setfocus = "title";
		}
// Title Required
	if ( document.getElementById('titlereq') )
		if (document.getElementById('titlereq').value.trim() == "") {
			errMsg = "Job Title is Required.";
			setfocus = "titlereq";
		}
		else if (!user.test(document.getElementById('titlereq').value)) {
			errMsg = "Job Title has invalid characters.";
			setfocus = "titlereq";
		}
// Email
	if ( document.getElementById('email') )
		if (document.getElementById('email').value.trim() == "") {
			errMsg = "Email is Required.";
			setfocus = "email";
		}
		else if (!email.test(document.getElementById('email').value)) {
			errMsg = "Valid Email is required.";
			setfocus = "email";
		}

// Phone
	if ( document.getElementById('phone') )
		if (document.getElementById('phone').value.trim() && !phone.test(document.getElementById('phone').value) ) {
			errMsg = "Phone is not Valid.";
			setfocus = "phone";
		}

// Phone Required
	if ( document.getElementById('phonereq') )
		if (document.getElementById('phonereq').value.trim() == "") {
			errMsg = "Phone is Required.";
			setfocus = "phonereq";
		}
		else if (!phone.test(document.getElementById('phonereq').value)) {
			errMsg = "Valid Phone is Required.";
			setfocus = "phonereq";
		}

// Last Name
	if ( document.getElementById('last_name') )
		if (document.getElementById('last_name').value.trim() == "") {
			errMsg = "Last Name is Required.";
			setfocus = "last_name";
		}
		else if (!user.test(document.getElementById('last_name').value)) {
			errMsg = "Last Name has invalid characters.";
			setfocus = "last_name";
		}

// First Name
	if ( document.getElementById('first_name') )
		if (document.getElementById('first_name').value.trim() == "") {
			errMsg = "First Name is Required.";
			setfocus = "first_name";
		}
		else if (!user.test(document.getElementById('first_name').value)) {
			errMsg = "First Name has invalid characters.";
			setfocus = "first_name";
		}


// Handle errors
	if (errMsg != "") {
		alert(errMsg);
		if (setfocus) {
			document.getElementById(setfocus).focus();
		}
		return false;
	}
	else {
		return true;
	}
}
