/**
 * Dependencies: jquery.blockUI.js
 */
jQuery(document).ready(function($) {
	
	var $theForm = $('#rnSignup');
	var $messageWrap;
	
	$theForm.submit(function(e) {
		var email = $('input[name=email]', $theForm ).val();
		if( $.trim(email) == '' ) {
			displayMessage( {body: 'Please enter your email address'}, true);
		} else {
			showLoading();
			var st = $('input[name=street_team]', $theForm );
			$.ajax({
				type: "GET",
				url: 'go/ext-rn-collector-signup-action',
				data: {
					email: email,
					street_team: (st != null && st.attr('checked')) ? 1 : 0
				},
				dataType: 'json',
				success: function (data, textStatus) {
					if( textStatus != 'success') return displayGenericError();
					if( data.success ) hideForm();
					displayMessage( data.msg, (data.success == false) );
				},
				error: function(XMLHttpRequest, textStatus, errorThrown) {
					displayGenericError();
				}
			});
		}
		return false;
	});
	
	function showLoading() {
		if( $messageWrap ) $messageWrap.hide();
		$('.inner', $theForm).block({ 
			message: '<p>Please wait</p>'
		});
	};
	
	function hideLoading() {
		$('.inner', $theForm).unblock();
	};
	
	function hideForm() {
		$('.inner', $theForm).slideUp();
	};
	
	function displayGenericError() {
		displayMessage( { body: 'An unknown error occurred, please try again' }, true );
	};
	
	function backToSignup(e) {
		$messageWrap.slideUp();
		$('.inner', $theForm).slideDown();
		$('input[name=email]', $theForm ).val('');
		$('input[name=street_team]', $theForm ).attr('checked', false);
		e.preventDefault();
		return false;
	};
	
	// displays an array of messages in the mail form
	function displayMessage( message, isError ) {
		hideLoading();
		var msgBase = '';
		
		if($messageWrap == null) {
			$messageWrap = $('<div class="messageWrap notice" />').css('text-align', 'center').prependTo($theForm);
		}
		if( isError ) $messageWrap.addClass('error').removeClass('notice');
		else $messageWrap.removeClass('error').addClass('notice');
		
		$messageWrap.empty().hide();
		
		if( message.title && message.title != '' ) msgBase += '<strong>' + message.title + '</strong>';
		msgBase += '<div>' + message.body + '</div>';
		if( !isError ) msgBase += '<div><a href="##" class="backToSignup">Back to signup form</a></div>';
		
		$messageWrap.append( msgBase );
		if( !isError ) {
			$('.backToSignup', $messageWrap).click(backToSignup);
		}
		$messageWrap.slideDown();
	};
	
});