var messages = Array();
messages['company_name'] = Array(/.{2,}/, 'Please enter company name.');
messages['first_name'] = Array(/.{2,}/, 'Please enter your first name.');
messages['last_name'] = Array(/.{2,}/, 'Please enter your last name.');
messages['email'] = Array(/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/, 'Problem with email address.');
messages['phone_business'] = Array(/^(\()?([0-9]{3})\)?(-|\s)?([0-9]{3})(-|\s)?([0-9]{4})$/, 'Please enter business phone.');
messages['phone_cell'] = Array(/^(\()?([0-9]{3})\)?(-|\s)?([0-9]{3})(-|\s)?([0-9]{4})$/, 'Problem with cell phone.');
messages['address_1'] = Array(/.{2,}/, 'Please enter your address.');
messages['city'] = Array(/.{2,}/, 'Please enter your city.');
messages['state'] = Array(/\w{2}/, 'Please select your state.');
messages['zip'] = Array(/^(?!0{5})(\d{5})(?!-?0{4})(-?\d{4})?$/, 'Please enter your zip code.');
messages['exec_summary'] = Array(/.{10,}/, 'Please be sure to enter your company information or executive summary.');


function numbersOnly($str) {
	$temp = $str.replace(/\D/, '');
	return $temp;
}

function check(field, feedback) {
	// generic value checker -  tests jquery field against regex
	name = $(field).attr('name');
	if ( messages[name][0].test($(field).val()) ) {
		return true;
	} else {
		if ( feedback ) {
			$("#" + name + "_feedback").html( messages[name][1] );
			$("#" + name + "_feedback").fadeIn(100);
		}
		return false;
	}
}

function proper($str) {
	return $str.substr(0,1).toUpperCase() + $str.substr(1).toLowerCase();
}
	
function checkForm(f) {
	errorFlag = false;
	$("#company_name, #first_name, #last_name, #email, #phone_business, #address_1, #city, #state, #zip, #exec_summary").each( function(i) {
		if ( ! check ($(this), true) ) {
			errorFlag = true;
		}
	});
		
	if (errorFlag) {
		alert('There is a problem with some of the information you\'ve entered.  Please correct the errors shown next to each form field.');
		return false;
	} else {
		return true;
	}

}

function fillRandom() {	// fill form w/ random data for testing
	$lorem = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce elementum magna ut tellus. Vivamus eu arcu at est venenatis accumsan. Sed molestie massa in dolor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Vivamus et leo. Integer adipiscing urna vitae sem. Maecenas ut elit non sapien porttitor pellentesque. Curabitur nunc purus, luctus non, tincidunt in, congue vel, libero. Suspendisse potenti. Duis condimentum nulla a quam. Maecenas lacus odio, convallis nec, dapibus nec, vehicula sed, tellus. Donec in nulla ac odio pretium dictum. Mauris lectus. Proin consequat ultricies risus. Maecenas ullamcorper auctor orci.";
	$radios = Array();
	for ($i=0; $i<document.ignite.elements.length; $i++) {
		$f = document.ignite.elements[$i];
		$rand = Math.floor(Math.random() * 40);
		if ($f.type == "text") {
			switch($f.name) {
				case "email":
					$f.value = "scottpoulin@hotmail.com";
					break;
				case "phone_business":
					$f.value = "6175551212";
					break;
				case "phone_cell":
					$f.value = "6175551212";
					break;
				case "zip":
					$f.value = "012345678";
					break;
				default:
					$len = 5 + Math.floor(Math.random() * 15);
					$f.value = $lorem.substr($rand,$len);
					break;
			}	// close switch
		}	// close text type
		
		if ($f.type=="textarea") {
			$len = 30 + Math.floor(Math.random() * 200);
			$f.value = $lorem.substr($rand,$len);
		}
		
		if ($f.type=="radio" && $f.name != "company_status") {	// radios on mentor form - collect in array for below
			$temp = $radios.toString();
			if ($temp.indexOf($f.name)<0) {
				$radios[$radios.length] = $f.name;
			}
		}
	}	// close for loop
	$f = document.ignite;
	if ($f.category.value=="entrepeneur") {
		$f.company_status[0].checked = true;
	} else {
		for ($i=0; $i<$radios.length; $i++) {
			$temp = Math.floor(Math.random() * 5);
			$f.elements[$radios[$i]][$temp].checked = true;
		}
	}
	$f.state.selectedIndex = 22;
	$f.phone_business.value = checkPhone($f.phone_business.value);
	$f.phone_cell.value = checkPhone($f.phone_cell.value);
	$f.zip.value = checkZip($f.zip.value);
}


$(document).ready( function () {
	$("#company_name, #first_name, #last_name, #email, #phone_business, #phone_cell, #address_1, #city, #state, #zip, #exec_summary").bind("blur change", function() {
		check ($(this), true);	
	});
																   
	$(":input").bind("focus click keypress", function () {
		$("#" + $(this).attr('name') + "_feedback").fadeOut(200);
	});
});