function validate_txtform( f ) {

	//
	var campaigns = f['campaigns[]'];
	var len = campaigns.length;
	var none_selected = true;
	for ( var i = 0; i < len; i++  )
	{
		if ( campaigns[i].checked )
		{
			none_selected = false;
			break;
		}
	}
	
	if ( none_selected )
	{
		alert( 'Please select at least one alert to subscribe to.' );
		campaigns[0].focus();
		return false;
	}
	
		
	//
	var area_code_pattern = /\d{3}/;
	var prefix_pattern = /\d{3}/;
	var phone_number_pattern = /\d{4}/;
	
	var e = f.area_code;
	var v = e.value;
	if ( !v.match( area_code_pattern ) )
	{
		alert( 'Please enter a phone number.' );
		e.focus();
		e.select();
		return false;
	}
	
	var e = f.phone_1;
	var v = e.value;
	if ( !v.match( prefix_pattern ) )
	{
		alert( 'Please enter a phone number.' );
		e.focus();
		e.select();
		return false;
	}	
	
	var e = f.phone_2;
	var v = e.value;
	if ( !v.match( prefix_pattern ) )
	{
		alert( 'Please enter a phone number.' );
		e.focus();
		e.select();
		return false;
	}
	

	//
	var c = f.accept_agreement.checked;
	if ( !c ) {
		alert( 'You must accept the Terms and Conditions to continue.' );
		f.accept_agreement.focus();
		return false;
	}

}
