$(document).ready(function(e) {

	$('.status-message').fadeOut(7500);
	$('.error-message').fadeOut(7500);


	$('#newsletter .close-newsletter-window').click(function(e) {
		$('#newsletter').fadeOut();
		e.preventDefault();
		return false;
	});

	
	$('#newsletter-form').submit(function(e) {
	
		//hide the submit button
		$('#newsletter input[type="submit"]').hide();
		$('#newsletter .ajax-loader').show().css('display', 'block');
	
		var email = $('#newsletter-form input[name="email"]').val();
		if ($('#newsletter-form input[name="agreement"]').attr('checked'))
			var agreement = 1;
		else
			agreement = 0;
		
		
		var data = {'hash': hash, 'mode' : 'register', 'email' : email, 'agreement' : agreement};
		
		$.post (newsletterPostUrl, data, function(data, textStatus) {
			
			//clear previous submission errors
			$('#newsletter .error').text('');
			
			//code 214 - user already exists
			
			if (data.success == false)
			{			
				//some errors, re-showing the submit button and hide the loading animated image
				$('#newsletter .ajax-loader').hide();
				$('#newsletter input[type="submit"]').show();						
				
				if (data.code == 'form-validation-error')
				{
					var errors = data.message;
					
					for (var key in errors)
					{
						if (errors[key])
						{
							var id = "#newsletter-error-" + key;
							var msg = errors[key];
						
							$(id).text(msg);	
						}			
					}
				}
				//user had already registered at some point. 
				else if (data.code == 'exists-with-opt')
				{
					$('#newsletter-success-message').show();
					$('#newsletter form input, #newsletter form label').hide();
					$('#newsletter .ajax-loader').hide(); 
					$('#newsletter .privacy-information').hide();				
				
				}
				
			
				//if (data.message && data.message.length > 0)
				//{
				//	var message = data.message.join('<br />');
				//	$('#newsletter-error-message').text(message);
				//}			
			}
			//all good!
			else
			{
				$('#newsletter-success-message').show();
				$('#newsletter form input, #newsletter form label').hide();
				$('#newsletter .ajax-loader').hide(); 
				$('#newsletter .privacy-information').hide();
				
			
			}

			
		}, "json");		
		
		
		
		e.preventDefault();
		return false;
	});	
	
	$('a.toggle-newsletter-subscription').click(function(e) {
	
		//showing or hiding?
		var popup = $('#newsletter');
		
		if (popup.css('display') == 'none')
		{
			popup.fadeIn(500);
			$(this).text('Click to Close Window');
		}
		else
		{
			popup.fadeOut(500);
			$(this).text('Subscribe to Our Newsletter');
		}
			
			
		e.preventDefault();
		return false;
	});
	
	
	$('a.toggle-newsletter-subscription-img').click(function(e) {
	
	
		//showing or hiding?
		var popup = $('#newsletter');
		
		if (popup.css('display') == 'none')
		{
			popup.fadeIn(500);
			$('a.toggle-newsletter-subscription').text('Click to Close Window');
		}
		else
		{
			popup.fadeOut(500);
			$('a.toggle-newsletter-subscription').text('Subscribe to Our Newsletter');
		}
		
		e.preventDefault();
		return false;
	
	});

	// Helper function, used below.
	// Usage: ['img1.jpg','img2.jpg'].remove('img1.jpg');
	Array.prototype.remove = function(element) {
	  for (var i = 0; i < this.length; i++) {
	    if (this[i] == element) { this.splice(i,1); }
	  }
	};
	
	// Usage: $(['img1.jpg','img2.jpg']).preloadImages(function(){ ... });
	// Callback function gets called after all images are preloaded
	$.fn.preloadImages = function(callback) {
	  checklist = this.toArray();
	  this.each(function() {
	    $('<img>').attr({ src: this }).load(function() {
	      checklist.remove($(this).attr('src'));
	      if (checklist.length == 0) { 
	      	if (typeof callback == 'function') 
	      		callback(); 
	      	else
	      		return true;
	      }
	    });
	  });
	};
	
	
	

});
