/**
 * @author sfurman, vcantin
 */

var NewsletterHandlers = 
{
	post : function(currentForm)
	{
		NewsletterHandlers.firstName 	= currentForm.first_name.value;
		NewsletterHandlers.lastName 	= currentForm.last_name.value;
		NewsletterHandlers.email 		= currentForm.email.value;
		
		if(NewsletterHandlers._validateEmail(NewsletterHandlers.email))
		{
			NewsletterHandlers._post();
			return true;
		}
		else
		{
			NewsletterHandlers._popDialog(PHPVars.get('common.newsletter_error_title'), PHPVars.get('common.newsletter_error_email'));
			GlobalHandlers.customTrackView(Request.get('lang') + '/form/newsletter/incomplete');
			return false;
		}		
	},
		
	postMoreInformations : function()
	{
		return true;
	},
	
	_validateEmail : function(email)
	{
		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		
		if(reg.test(email) == false) 
		{
		  return false;
		}
		
		return true;
	},
		
	_popDialog : function(dialogTitle, dialogContent)
	{
		var $dialog = $j('<div></div>')
		.html('<p>' + dialogContent + '</p>')
		.dialog
		(
			{
				autoOpen	: false,
				title		: dialogTitle,
				modal		: true,
				buttons		: 
				{
					Ok		: function()
					{
						$j(this).dialog('close');
					}
				}
			}
		)
		;
	
		$dialog.dialog('open');
	},
	
	_popIframe : function(updateMember)
	{						
		Lightview.show
		(
			{
				href: Request.get('basepath') + '/' + Request.get('lang') + '/requests/requestsNewsletter/' + updateMember,
				rel: 'iframe',
				title: '',
				options: 
				{
					width: 430,
					height: 600,
					autosize: true
				}
			}
		);	
	},
			
	_apiStatus : function(response)
	{				
		if (response > 0) 
		{					
			Request.setCookie('newsletter_member_id', response);			
			NewsletterHandlers._popIframe(false);
			GlobalHandlers.customTrackView(Request.get('lang') + '/form/newsletter/confirm');
			return true;
		} 
		else 
		{						
			if(response == -3)
			{
				NewsletterHandlers._popDialog(PHPVars.get('common.newsletter_error_title'), PHPVars.get('common.newsletter_error_alredy_registered'));				
			}
			else
			{
				NewsletterHandlers._popDialog(PHPVars.get('common.newsletter_error_title'), PHPVars.get('common.newsletter_error_undefined'));
			}
		
			GlobalHandlers.customTrackView(Request.get('lang') + '/form/newsletter/error');
			
			return false;
		}
	},
	
	_post : function()
	{
		var url_update_destinations = Request.get('basepath') + '/' + Request.get('lang') + '/jsui/api_add_newsletter_member';
		
		new Ajax.Request
		(
			url_update_destinations, 
			{
				method: 'post',
				parameters: 
				{
					firstName 	: NewsletterHandlers.firstName,
					lastName 	: NewsletterHandlers.lastName,
					email 		: NewsletterHandlers.email
				}, 
				onSuccess: function(transport)
				{
					var response = transport.responseText;
					NewsletterHandlers._apiStatus(response);
				},
				onFailure: function()
				{
					NewsletterHandlers._popDialog(PHPVars.get('common.newsletter_error_title'), PHPVars.get('common.newsletter_error_undefined'));
				}
			}
		);
	}
};
	