var newsletter = {
	data: {
		i18n: {
			en: { 'submit': 'Submit' },
			pl: { 'submit': 'Wyślij' }
		}
	},
	outer_close: function(event) {
		var form_tag = $('#form_newsletter').get(0);
		var clicked_inside = false;
		$(event.target).parents().each(function(index, element) {
			if (element == form_tag) {
				clicked_inside = true;
				return false;
			}
		});
		if (clicked_inside) {
			return;
		}
		$('#newsletter_message').text('').hide();
		$('#form_newsletter').hide();
		$('#contact .contact-links').show();
		//email_input.val('');
		newsletter.detach_outer_close();

		return false;
	},
	attach_outer_close: function() {
		$(document).bind('click', newsletter.outer_close);
	},
	detach_outer_close: function() {
		$(document).unbind('click', newsletter.outer_close);
	},
	attach: function(selector) {
		$(selector).each(function(i, tag) {
			var message = $('<span id="newsletter_message"></span>');
			message.bind('click', function() {
				$(this).hide();
				$('#contact .contact-links').show();
				newsletter.detach_outer_close();
			});
			var newsletter_form = $('<form id="form_newsletter"></form>');
			var email_input = $('<input type="text" name="email" autocomplete="off" />');
			var form_submit = $('<input type="submit" value="'+newsletter.data.i18n[lang].submit+'" class="button_submit" />');
			newsletter_form.append(email_input);
			newsletter_form.append(form_submit);
			newsletter_form.bind('submit', function(e) {
				// do ajax
				$.ajax({
					data: {
						email: $('#form_newsletter input[name="email"]').val()
					},
					dataType: 'json',
					success: function(data, status, request) {
						if (data && typeof(data.message) != 'undefined') {
							$('#newsletter_message').text(data.message);
							$('#form_newsletter').hide();
							$('#newsletter_message').show();
							email_input.val('');
						}
						else {
							$('#form_newsletter').hide();
							$('#contact .contact-links').show();
							email_input.val('');
							newsletter.detach_outer_close();
						}
					},
					type: 'POST',
					url: config.baseUrl + 'various/newsletter'
				});
				e.preventDefault();
				return false;
			});
			$('#contact .contact-links').after(newsletter_form).after(message);
			$(tag).bind('click', function() {
				newsletter.attach_outer_close();
				$('#contact .contact-links').hide();
				$('#form_newsletter').show();
				email_input.get(0).focus();
				return false;
			});
		});
	}
};

$(function() {
	newsletter.attach('.button_newsletter');
});
