
function forwardPostValidate(postID) {
	var emailRegex = /^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$/i;
	
	if (! $F('fp_send_to_' + postID).match(emailRegex)) {
		alert('Please check the destination email address.');
		$('fp_send_to_' + postID).focus();
		return false;
	}
	
	if (! $F('fp_send_from_' + postID).match(emailRegex)) {
		alert('Please check your email address.');
		$('fp_send_from_' + postID).focus();
		return false;
	}

	return true;
}

function forwardPostToggleForm(postID, enabled) {
	$('fp_send_from_' + postID).disabled = !enabled;
	$('fp_send_to_' + postID).disabled = !enabled;
	$('fp_message_' + postID).disabled = !enabled;
	$('fp_send_' + postID).disabled = !enabled;
}

function forwardPostResetForm(postID) {
	forwardPostToggleForm(postID, true);
}

function forwardPostToggle(postID) {
	Effect.toggle('forward_post_' + postID, 'blind');
}

function forwardPostSubmit(theForm, postID) {
	// make sure we have two email addresses
	if (! forwardPostValidate(postID)) return;
	
	forwardPostToggleForm(postID, false);
	$('fp_send_' + postID).value = 'Sending...';
	
	// set up the post data
	var params = $H({	
					forward_post: 1,
					post_id		: postID,
					send_to		: $F('fp_send_to_' + postID),
					send_from	: $F('fp_send_from_' + postID),
					message		: $F('fp_message_' + postID),
					cs			: $F('fp_cs_' + postID)
				}).toQueryString();

	// fire the request
	new Ajax.Updater(
		'fp_status_' + postID,
		theForm.action,
		{	parameters: params,
			onComplete: function(aj) {
				new Effect.Highlight('fp_status_' + postID, { duration: 1.5, startcolor: '#FFFFCC', endcolor: '#EBE8CD'} );
				$('fp_send_' + postID).value = 'Send';
				setTimeout('forwardPostResetForm(' + postID + ');', 3500);
				setTimeout('$("fp_status_' + postID + '").innerHTML = "";', 3500);
			},
			onFailure: function() {
				$('fp_status_' + postID).innerHTML = 'Connection error!';
			},
			onException: function(aj, ex) {
				$('fp_status_' + postID).innerHTML = ex;
			}
		}
	);
}

