var newsletter	= {

	$newsletter	: null,
	$form		: null,
	$inputs		: null,
	$defaults	: [],
	$errors		: [],
	$pageID		: null,

	/**
	* CONTRO METHODS
	*/
	submitForm: function()
	{
		if(this.validate() === true)
		{
			$.post(baseURL + 'webservice/newsletter',
			{
				action	: 'subscribe',
				pageID	: newsletter.$pageID,
				name	: newsletter.$form.find('input[name=name]').val(),
				email	: newsletter.$form.find('input[name=email]').val()
			},
			function(data)
			{
				newsletter.resetForm();
				Adform.Tracking.Track(32823,120546);
				alert(data.response);
			},
			'json');
		}
	},
	validate: function()
	{
		var _return		= true;
		var _errorMSG	= [];
		var _cnt		= 0;

		this.$inputs.each(function(_key)
		{
			$input	= $(this);
			if( $input.attr('name') == 'name' && ($input.val() == '' || $input.val().toLowerCase() == newsletter.$defaults[_cnt].toLowerCase()) )
			{
				_errorMSG.push(newsletter.$errors[_cnt]);
				_return	= false;
			}
			else if($input.attr('name') == 'email' && /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$/.test($input.val()) === false)
			{
				_errorMSG.push(newsletter.$errors[_cnt]);
				_return	= false;
			}
			_cnt++;
		});

		if(_return === false)
		{
			this.displayErrorMSG( _errorMSG.join('\n') );
		}
		return _return;
	},
	displayErrorMSG: function(error)
	{
		if(error)
		{
			alert(error);
		}
	},
	resetForm: function()
	{
		this.$inputs.each(function(_key)
		{
			$(this).val( newsletter.$defaults[_key] );
		});
	},

	/**
	* INIT METHODS
	*/
	init: function()
	{
		this.$newsletter	= $('#newsletter');
		this.$form			= this.$newsletter.find('.form');
		this.$pageID		= this.$newsletter.find('.pageID').html();

		this.initInput();
		this.initSubmit();
	},
	initInput: function()
	{
		this.$inputs	= this.$form.find('input[type=text]');
		this.$inputs.each(function()
		{
			$input	= $(this);

			var _defaultVal	= $input.val();

			newsletter.$defaults.push(_defaultVal);
			newsletter.$errors.push($input.parent().find('.error').html());

			$input.focus(function()
			{
				if( $(this).val() == _defaultVal )
				{
					$(this).val('');
				}
			});
			$input.blur(function()
			{
				if( $(this).val() == '' )
				{
					$(this).val( _defaultVal );
				}
			});
			$input.keyup(function(e)
			{
				if(e.keyCode == 13)
				{
					newsletter.submitForm();
				}
			});
		});
	},
	initSubmit: function()
	{
		this.$form.find('.submit').click(function()
		{
			newsletter.submitForm();
		});
	}
};

$(document).ready(function()
{
	newsletter.init();
});
