var newsletter = {

	$input			: null,
	$submit			: null,
	$response		: null,

	$defaultValue	: 'mail@mailaddress.com',
	$invalidEmail	: '',
	$isLocked		: false,

	init: function()
	{
		newsletter.$response	= $('#newsletter .response');

		newsletter.$input	= $('#newsletter .input input');
		newsletter.$input.val(newsletter.$defaultValue);
		newsletter.$input.focus(newsletter.onInputFocus);
		newsletter.$input.blur(newsletter.onInputBlur);
		newsletter.$input.keyup(newsletter.onInputKeyUp);

		newsletter.$submit	= $('#newsletter .submit');
		newsletter.$submit.click(newsletter.subscribe);
	},
	onInputFocus: function()
	{
		newsletter.$input.val( newsletter.$input.val() == newsletter.$defaultValue ? '' : newsletter.$input.val() );
	},
	onInputBlur: function()
	{
		newsletter.$input.val( newsletter.$input.val() == '' ? newsletter.$defaultValue : newsletter.$input.val() );
	},
	onInputKeyUp: function(e)
	{
		if(e.keyCode == 13) newsletter.subscribe();
	},
	subscribe: function()
	{
		if(newsletter.validate() === false)
		{
			newsletter.$response.html(newsletter.$invalidEmail);
			newsletter.$response.show();
		}
		else
		{
			if(newsletter.$isLocked === false)
			{
				newsletter.$isLocked	= true;

				$.post(config.$baseURL + 'ajax/newsletter/',
				{
					doaction	: 'subscribe',
					email		: newsletter.$input.val()
				},
				function(response)
				{
					if(response.status == 'ok')
					{
						newsletter.$input.val(newsletter.$defaultValue);
					}
					else if(response.status == 'error')
					{
					}
					newsletter.$response.html(response.response);
					newsletter.$response.show();
					newsletter.$isLocked	= false;
				},
				'json');
			}
		}
	},
	validate: function()
	{
		var email	= newsletter.$input.val().toLowerCase();
		if(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$/.test(email) === false || email == newsletter.$defaultValue) return false;
		return true;
	}
}

jQuery(document).ready(newsletter.init);
