/*
=============================
# (c) 2005.
# Leo Shale Prod.
=============================
*/

function fieldChecker(targetForm, fields, types, mandatory, labels)
{
	for(var i = 0; i < fields.length; i++)
	{
		eval('fieldRef = targetForm.' + fields[i]);

		if ((fieldRef.type == 'text') || (fieldRef.type == 'textarea'))
		{
			if (mandatory[i] || fieldRef.value != '')
			{
				eval('checkResult = ' + types[i] + '(fieldRef.value, labels[i])');
				if (!checkResult)
				{
					fieldRef.focus();
					return false;
				}
			}
		}
		else
		{
			eval('checkResult = ' + types[i] + '(fieldRef, labels[i])');
			if (!checkResult)
			{
				return false;
			}
		}
	}

	return true;
}

function mustFilled(fieldValue, fieldLabel)
{
	reqs = ' - a megadott mezőt kötelező kitölteni!';

	if (fieldValue.length > 0)
	{
		return true;
	}
	else
	{
		alert('Érvénytelen mező: "' + fieldLabel + '"' + "\n" + reqs);
		return false;
	}
}

function posInteger(fieldValue, fieldLabel)
{
	reqs = ' - a megadott értéknek egy pozitív egész számnak kell lennie!';

	if (fieldValue.match(/^[1-9][0-9]*$/))
	{
		return true;
	}
	else
	{
		alert('Érvénytelen mező: "' + fieldLabel + '"' + "\n" + reqs);
		return false;
	}
}

function stringType(fieldValue, fieldLabel)
{
	reqs = ' - a megadott értéknek legalább 5 karakter hosszúnak kell lennie!';

	if (fieldValue.length > 4)
	{
		return true;
	}
	else
	{
		alert('Érvénytelen mező: "' + fieldLabel + '"' + "\n" + reqs);
		return false;
	}
}

function zipcodeType(fieldValue, fieldLabel)
{
	reqs = ' - a megadott értéknek valódi irányítószámnak kell lennie!';

	if (fieldValue.match(/^[1-9][0-9][0-9][0-9]$/))
	{
		return true;
	}
	else
	{
		alert('Érvénytelen mező: "' + fieldLabel + '"' + "\n" + reqs);
		return false;
	}
}

function emailType(fieldValue, fieldLabel)
{
	reqs = ' - a megadott értéknek érvényes e-mail címnek kell lennie!';

	if (fieldValue.match(/^([a-zA-Z0-9_]+[.])*[a-zA-Z0-9_]+@([a-zA-Z0-9_]+[.])+[a-z][a-z]+$/))
	{
		return true;
	}
	else
	{
		alert('Érvénytelen mező: "' + fieldLabel + '"' + "\n" + reqs);
		return false;
	}
}

function radioType(fieldRef, fieldLabel)
{
	numOfOptions = fieldRef.length;
	for(i = 0; i < numOfOptions; i++)
	{
		if (fieldRef[i].checked)
		{
			detailName = fieldRef[i].name + "_" + fieldRef[i].value + "_detail";
			detailField = document.getElementById(detailName);
			if (detailField != null)
			{
				if (detailField.value == '')
				{
					alert(fieldLabel + " - Adja meg a részleteket!");
					detailField.focus();
					return false;
				}
			}

			return true;
		}
	}

	alert(fieldLabel + ' - Válasszon!');
	return false;
}

function checkboxType(fieldRef, fieldLabel)
{
	optionSelected = false;
	numOfOptions = fieldRef.length;
	for(i = 0; i < numOfOptions; i++)
	{
		if (fieldRef[i].checked)
		{
			detailName = fieldRef[i].name + "_" + fieldRef[i].value + "_detail";
			detailField = document.getElementById(detailName);
			if (detailField != null)
			{
				if (detailField.value == '')
				{
					alert(fieldLabel + " - Adja meg a részleteket!");
					detailField.focus();
					return false;
				}
			}

			optionSelected = true;
		}
	}

	if (!optionSelected)
	{
		alert(fieldLabel + ' - Legalább egy választ jelöljön meg!');
		return false;
	}

	return true;
}

