var okColor    = '#000';
var erColor    = '#f00';

function validate_field( field_type, field_id, error_msg, label_id ){
	var field_valid = false;
	// set label_id = lbl_field_id unless specified otherwise.
	if( label_id == null ) label_id = 'lbl_'+field_id;

	// switch on field type & call appropriate validation functions...
	switch( field_type ){
		case 'text':
  		field_valid = validate_text_field( field_id );
			break;
		case 'mobile_phone':
	  	field_valid = validate_mobile_phone( field_id );
			break;
		case 'email':
	  	field_valid = validate_email( field_id );
			break;
	}
	
	if( field_valid ){
		if( !document.getElementById(label_id) ){
			alert('Could not find label id: '+label_id);
		}else{
			document.getElementById(label_id).style.color = okColor;
		}
		return "";
	}else{
		if( !document.getElementById(label_id) ){
			alert('Could not find label id: '+label_id);
		}else{
			document.getElementById(label_id).style.color = erColor;
		}
		return error_msg;
	}
}

function validate_text_field( field_id ){
	//alert('validate text field: '+field_id);
	if( !document.getElementById(field_id) ){	alert('Could not find field id: '+field_id); return false; }
	if(  document.getElementById(field_id).value == "") { return false; }else{ return true; }
}

function validate_mobile_phone( field_id ){
	if( !document.getElementById(field_id) ){	alert('Could not find field id: '+field_id); return false; }
	if(  document.getElementById(field_id).value == "") { 
		return false; 
	}else{ 
		if( document.getElementById(field_id).value.length == 10 ){
			return true;
		}else{
			return false; 
		}
	}
}

function validate_email ( field_id ) {
	var email = document.getElementById( field_id ).value;
	var filter = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i;
	if( filter.test( email ) ) {
		return true;
	}else{
		return false;
	}
}

function validate_lead_form(){
	var error_msg       = '';
	error_msg += validate_field('text',         'firstname', 'Please Enter Your First Name\n');
	error_msg += validate_field('text',         'lastname',  'Please Enter Your Last Name\n');
	error_msg += validate_field('email',        'email',     'Please Enter a Valid Email Address\n');
	error_msg += validate_field('text',         'phone',     'Please Enter Your Phone Number\n');
	
	if( error_msg == '' ){
		return true;
	}else{
		error_msg = 'There were problems with the information you submitted.\n\n' + error_msg;
		alert( error_msg );
		return false;
	}
}

