checkEmailExists = function(arg) {
	hideErrorMessage("email");
	$reg = $("input[name='forum_account_exists']").attr('checked');

	$("#id_email").after('<span class="ajax_loader"></span>');
	$.getJSON('/registration/ajax/check_email/?e=' + arg.value + '&r=' + $reg,
	function(data) {
		if (data.error==true)
		{
			displayErrorMessage("email", data.msg);
		} else {
			checkUsernameEmailPair($reg, $("input[name='email']").val(), $("input[name='username']").val(), "email");
		}
		setTimeout('$(".ajax_loader").remove();', 500);
	});
}

checkEmailCbt = function(arg) {
	hideErrorMessage("email");
	$("#id_email").after('<span class="ajax_loader"></span>');
	$.getJSON('/registration/ajax/check_email_cbt/?e=' + arg.value,
	function(data) {
		if (data.error==true)
		{
			displayErrorMessage("email", data.msg);
		}; 
		setTimeout('$(".ajax_loader").remove();', 500);
	});
}

checkUsernameExists = function(arg) {
	hideErrorMessage("username");
	$reg = $("input[name='forum_account_exists']").attr('checked');

	$("#id_username").after('<span class="ajax_loader_alt"></span>');
	$.getJSON('/registration/ajax/check_user/?u=' + arg.value + '&r=' + $reg,
	function(data) {
		if (data.error==true)
		{
			displayErrorMessage("username", data.msg);
		} else {
			checkUsernameEmailPair($reg, $("input[name='email']").val(), $("input[name='username']").val(), "username");
		}
		setTimeout('$(".ajax_loader_alt").remove();', 500);
	});
}

checkInviteExists = function(arg) {
	hideErrorMessage("invite");
	$("#id_invite").after('<span class="ajax_loader_alt"></span>');
	var url = '/registration/ajax/check_invite/?invite_key=' + arg.value;
	if (promo_code!='')
	{
		url = url + '&action=' + promo_code;
	}
	$.getJSON(url,
	function(data) {
		if (data.error==true)
		{
			displayErrorMessage("invite", data.msg);
		}
		setTimeout('$(".ajax_loader_alt").remove();', 500);
	});
}

function checkUsernameEmailPair($isForumRegistred, $email, $username, $type) {
	hideErrorMessage($type);
	if ($isForumRegistred & $email != '' & $username != '' /*& !$id_email & !$id_username*/) {
		$.getJSON('/registration/ajax/check_pair/?e=' + $email + '&u=' + $username,
		function(data) {
			if (data.error==true)
			{
				displayErrorMessage($type, data.msg);
			}
			else
			{
				hideErrorMessage("email");
				hideErrorMessage("username");
			}
		});
	}
}

function displayErrorMessage($id, $message) {
	var msg = $message;
	$obj = $("#id_" + $id + "_info");
	$obj.text(msg);
	/*$obj.removeClass("errmsg_hide");
	$obj.addClass("errmsg_show");*/
	$obj.parent('.b-error').removeClass("errmsg_hide");
	$obj.parent('.b-error').removeClass("display-n"); // See error_reg() in decor.js
	$obj.parent('.b-error').addClass("errmsg_show");
}

function hideErrorMessage($id) {
	$obj = $("#id_" + $id + "_info");
	$obj.text('');
	/*$obj.addClass("errmsg_show");
	$obj.removeClass("errmsg_hide");*/
	$obj.parent('.b-error').removeClass("errmsg_show");
	$obj.parent('.b-error').addClass("errmsg_hide");
}

var escapesSymbols = [[/</g, "&lt;"], [/>/g, "&gt;"], ["\"", "&quot;"], ["/", ""]];

escapeHTML = function(escaped){
	for(i in escapesSymbols){
		var repl = escapesSymbols[i];
		escaped = escaped.replace(repl[0], repl[1]);
	}
	return escaped;
}

