var IMAGES = BASE_URL + 'images/';
var preload = [
	 IMAGES + 'message_display_right.gif',
	 IMAGES + 'message_display_left.gif',
	 IMAGES + 'message_arrow.gif'
];
var len = preload.length;
for (var i = 0; i < len; ++ i)
{
	var s = preload[i];
	preload[i] = new Image();
	preload[i].src = s;
}

$(document).ready(function() {
	blog_subscription_init();
})

function blog_subscription_init()
{
	$('#blog_subscription').submit(function() {
		message_destroy();

		var $el = $('#name');
		if ($.trim($el.val()) == '')
		{
			message_display($el, 'Kérlek add meg a keresztneved.', true);
			$el.focus();
			return false;
		}

		var $el = $('#email');
		if ($.trim($el.val()) == '')
		{
			message_display($el, 'Kérlek add meg az e-mail címed.', true);
			$el.focus();
			return false;
		}

		if (! e_mail_is_valid($.trim($el.val())))
		{
			message_display($el, 'Úgy tűnik, az e-mail címedben hiba van.',
				true);
			$el.focus();
			return false;
		}

		var $el = $('#address');
		if ($.trim($el.val()) == '')
		{
			message_display($el, 'Kérlek add meg a címed.', true);
			$el.focus();
			return false;
		}

		return true;
	})
}

var messages = [];
var message_xhtml =
	  '<div class="message_display">'
		+ '<div class="message"><span>%message%</span></div>'
		+ '<div class="arrow"></div>'
	+ '</div>';

function message_display($el, message)
{
	var $dummy = $('<span>').addClass('message_dummy').text(message).appendTo('body');
	text_width = $dummy.width();
	$dummy.remove();

	var xhtml = message_xhtml.split('%message%').join(message);

	var $display = $(xhtml).appendTo('body');

	var $message = $display.children('div.message');
	$message.width(text_width);

	$display.width($message.outerWidth());

	var offset = $el.offset();
	var top = offset.top - $display.height();
	var left = offset.left + ($el.outerWidth() - $display.outerWidth()) / 2;
	var top_start = top - 50;

	$display
		.css({
			opacity: .4,
			top: top_start + 'px',
			left: left + 'px'
		})
		.animate({
			opacity: 1,
			top: top + 'px'
		}, 'fast', 'swing');

	var width = $display.outerWidth();

	$display.children('div.arrow').each(function() {
		var $this = $(this);
		$this.css('margin-left', Math.round((width - $this.width()) / 2) + 'px');
	});

	if ($(window).scrollTop() > top)
		$(window).scrollTo(top_start, 250);

	messages.push($display);
}

function message_destroy()
{
	for(var i = 0; i < messages.length; ++ i)
		messages[i].fadeOut('fast');

	messages = [];
}

var E_MAIL_REG_EXP = null;
function e_mail_is_valid(e_mail)
{
	if (! E_MAIL_REG_EXP)
		E_MAIL_REG_EXP = /^[_a-z0-9-\'\+]+(\.[_a-z0-9-\'\+]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/i;

	return e_mail.match(E_MAIL_REG_EXP);
}
