<!--//

	function newsletterSignup() {	
		// Validate email address
		if (!$F('newsletterEmail').match(/^([^@\s]+)@((?:[-a-zA-Z0-9]+\.)+[a-zA-Z]{2,})$/)) {
		    Effect.Fade('newsletterForm', {duration: 0.2});
		    Effect.Appear('newsletterEmailValidationFail', {duration: 0.2, delay: 0.2});
		} else {

			// show the spinner
            $('newsletterSubmitSpinner').show();
		
			var url = WWW_ROOT + "/newsletter.html";
			
			new Ajax.Request(url, {
				method: 'post',
				parameters: { fa: 'ajax_signup', email_address: $F('newsletterEmail')}, 
							
				onSuccess: function (transport) {

					// show the spinner
		            $('newsletterSubmitSpinner').hide();

					if (transport.responseText == 'OK') {
						Effect.Fade('newsletterForm', {duration: 0.3}); 
						Effect.Appear('newsletterSuccess', {duration: 0.3, delay:0.3});
					} else if (transport.responseText == 'DUPLICATE') {
						Effect.Fade('newsletterForm', {duration: 0.3});
					    Effect.Appear('newsletterDuplicate', {duration: 0.3, delay:0.3});
					} else if (transport.responseText == 'ERROR') {
						Effect.Fade('newsletterForm', {duration: 0.3});
					    Effect.Appear('newsletterFailure', {duration: 0.3, delay:0.3});
					} else {
						Effect.Fade('newsletterForm', {duration: 0.3});
					    Effect.Appear('newsletterFailure', {duration: 0.3, delay:0.3});
					}
				},			
				onFailure: function () {
		            $('newsletterSubmitSpinner').hide();
				},				
				onException: function (requestObj, ex) {
		            $('newsletterSubmitSpinner').hide();
				}
			});
			
		}
	}
	
	function redisplaySignupForm (element_to_hide) {
	    Effect.Fade(element_to_hide, {duration: 0.3});
	    Effect.Appear('newsletterForm', {duration: 0.3, delay:0.3});
	}
	
	// Prefered over document.onload or other object.event type handlers
	// as calling Event.observe(object, event, action) will not clobber
	// previously setup observers
	Event.observe(window, 'load', function() {
	    if ($('newsletterSubmitBtn')) {
    		Event.observe('newsletterSubmitBtn', 'click', newsletterSignup);
		
    		// Set observer to call newsletterSignup() when enter is pressed
    		// within the newsletterEmail text field.
    		Event.observe('newsletterEmail', 'keypress', function (event) {
    		    if (event.keyCode == 13) {
    		        newsletterSignup();
    		    }
    		});
		}
	});
	
//-->
