/**
 *
 * Paul Streise
 * http://www.flugapi.com/
 *
 * @copyright 2010
 *
 **/


var Newsletter = new Class({
	
	Implements : [Options],
	
	options: {
		newsletterInput : '#newsletterInput',
		newsletterSubmit : '#newsletterSubmit',
		errorText : 'Bitte überprüfen Sie die eingegebene E-Mail Adresse.',
		baseUrl: '',
		url: '/newsletter/add',
		newsletterInputContainer:'#newsletterInputContainer',
		newsletterSuccessContainer:'#newsletterSuccessContainer'
	},
	
	defaultInputText: null,
	
	initialize: function(options)
	{
		
		this.setOptions(options);
		
		$(this.options.newsletterSubmit).click(this.submit.bind(this));
		
		this.defaultInputText = $(this.options.newsletterInput).attr('value');
		
		$(this.options.newsletterInput).click(this.inputClicked.bind(this));
		
		$(this.options.newsletterInput).keydown(function(l){
			if(l.keyCode == 13)
				this.submit();
		}.bind(this));

	},
	
	submit: function()
	{
		var email = $(this.options.newsletterInput).attr('value');
		if(this.validate(email)==false)
		{
			alert(this.options.errorText);
			return;
		}
		
		$(this.options.newsletterInputContainer).fadeOut('slow',function(){
			$(this.options.newsletterSuccessContainer).fadeIn();
		}.bind(this));
		
		$.ajax({
			url: this.options.baseUrl+this.options.url,
			data: {newsletter:email},
			method:'get',
			dataType: 'json'
		});
		
	},
	
	inputClicked : function()
	{
		if($(this.options.newsletterInput).attr('value')==this.defaultInputText)
			$(this.options.newsletterInput).attr('value','');
	},
	
	validate: function(email)
	{
		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		return reg.test(email);
	}
	
});


