var langHU = {
	'required'    : 'A mező kitöltése kötelező!',
	'selectrequired' : 'Válasszon a listából!',
	'minlength'   : 'A mező mimimum %1 karakter lehet!',
	'maxlength'   : 'A mező maximum %2 karakter lehet!',
	'minmaxlength': 'A mező minimum %1 és maximum %2 karakter lehet!',
	'invchars'    : 'Csak az angol ABC betűi, számok valamint - (kötőjel) és _ (aláhúzás) a megengedett!',
	'invemail'    : 'Hibás e-mail cím!',
	'simemail'    : 'A két e-mail cím nem egyezik!',
	'simpass'     : 'A két jelszó nem egyezik!',
	'sameuserpass': 'A felhasználónév és a jelszó nem lehet egyforma!'
};

var langEN = {
	'required'    : 'Required field.',
	'selectrequired' : 'Select an item from the list.',
	'minlength'   : 'The field must be at least %1 characters long.',
	'maxlength'   : 'The field must be maximum %2 characters long.',
	'minmaxlength': 'The field must be at least %1 and maximum %2 characters long.',
	'invchars'    : 'The username may consist only of letters of the English ABC, regular digits, "-" and "_" symbols.',
	'invemail'    : 'Invalid e-mail address!',
	'simemail'    : 'E-mail addresses do not match!',
	'simpass'     : 'The passwords do not match!',
	'sameuserpass': 'Password cannot be the same as the username!'
};

function errorMessage(o, s, v1, v2) {
	if (!s) {
		$("#" + o + "_error").html('');
	} else {
		hu = v1 ? langHU[s].replace(/%1/, v1) : langHU[s];
		hu = v2 ? hu.replace(/%2/, v2) : hu;
		en = v1 ? langEN[s].replace(/%1/, v1) : langEN[s];
		en = v2 ? en.replace(/%2/, v2) : en;
		$("#" + o + "_error").html('<br /><span class="hu">' + hu + '</span><span class="en">' + en + '</span>');
	}
}

function requireField(o, l, h, re, msgid) {
	value = $("#" + o).val();
	if (value.length == 0) {
		errorMessage(o, 'required');
		return false;
	}
	min = l && l > 0 && value.length < l;
	max = h && h > 0 && value.length > h;
	if (min || max) {
		errorMessage(o, (l && l > 0 ? 'min' : '') + (h && h > 0 ? 'max' : '') + 'length', l, h);
		return false;
	}
	if (re && !re.test(value)) {
		errorMessage(o, msgid);
		return false;
	}
	errorMessage(o);
	return true;
}

function requireListField(o) {
	value = $("#" + o).val();
	if (value == 0) {
		errorMessage(o, 'selectrequired');
		return false;
	}
	errorMessage(o);
	return true;
}

function requireFieldGroup(o, o2) {
	value = $("#" + o).val();
	if (value.length == 0) {
		errorMessage(o2, 'required');
		return false;
	}
	errorMessage(o2);
	return true;
}


function checkUsername(o) {
	if (requireField(o, 3, 20, /^[a-z0-9\-_]+$/i, 'invchars')) {
		$("#" + o + "_error").load("ajax/usercheck.php?u=" + $("#" + o).val());
	}
}

function checkValidUsername(o) {
	if (requireField(o)) {
		$("#" + o + "_error").load("ajax/validusercheck.php?u=" + $("#" + o).val());
	}
}

function checkEmail(o, url) {
	requireField(o, 0, 0, /[^@]+@[^\.@]+\.[^\.@]+/i, 'invemail');
	if (url) {
		$("#" + o + "_error").load(url + $("#" + o).val());
	}
}

function checkEmailControl(o1, o2) {
	if (requireField(o1)) {
		if ($("#" + o1).val() != $("#" + o2).val()) {
			errorMessage(o1, 'simemail');
		} else {
			errorMessage(o1);
		}
	}
}

function checkPassword(o1, o2) {
	if (requireField(o1, 4)) {
		if ($("#" + o1).val() == $("#" + o2).val()) {
			errorMessage(o1, 'sameuserpass');
		} else {
			errorMessage(o1);
		}
	}
}

function checkPasswordControl(o1, o2) {
	if (requireField(o1)) {
		if ($("#" + o1).val() != $("#" + o2).val()) {
			errorMessage(o1, 'simpass');
		} else {
			errorMessage(o1);
		}
	}
}

function submitForm(f, values) {
	if (values) {
		for (i in values) {
			$("#" + i).val(values[i]);
		}
	}
	$("#" + f).submit();
}

var adminformSubmitCount = 0;

