////////////////////////////////////////////////////////////////////////////////////////////////////
//
//	function_evaluate.js : evaluate javascript functions for calculator
//
////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////
//	evaluate functions
////////////////////////////////////////////////////////////////////////////////////////////////////

function calcInteger (calcObject, calcNull)
{
	var calcValidA = ((calcNull && !calcObject.value.length) || (calcObject.value == parseInt (calcObject.value)));
	var calcValidB = ((calcNull && (parseInt (calcObject.value) >= 0)) || (parseInt (calcObject.value) > 0));

	if (!(calcValidA && calcValidB)) { calcObject.value = ''; alert ('Nem megfelelő számot írt be, kérem javítsa!'); }
}

function calcFloat (calcObject, calcNull)
{
	var calcValidA = ((calcNull && !calcObject.value.length) || (calcObject.value == parseFloat (calcObject.value)));
	var calcValidB = ((calcNull && (parseFloat (calcObject.value) >= 0)) || (parseFloat (calcObject.value) > 0));

	if (!(calcValidA && calcValidB)) { calcObject.value = ''; alert ('Nem megfelelő számot írt be, kérem javítsa!'); }
}

function calcPercent (calcObject, calcNull)
{
	var calcValidA = ((calcNull && !calcObject.value.length) || (calcObject.value == parseFloat (calcObject.value)));
	var calcValidB = (((calcNull && (parseFloat (calcObject.value) >= 0)) || (parseFloat (calcObject.value) > 0))) && (parseFloat (calcObject.value) <= 100);

	if (!(calcValidA && calcValidB)) { calcObject.value = ''; alert ('Nem megfelelő százalékot írt be, kérem javítsa!'); }
}

function calcYear (calcObject)
{
	var calcValidA = (calcObject.value == parseInt (calcObject.value));
	var calcValidB = ((calcObject.value > 1900) && (calcObject.value < 2100));

	if (!(calcValidA && calcValidB)) { calcObject.value = ''; alert ('Nem megfelelő évszámot írt be, kérem javítsa!'); }
}

////////////////////////////////////////////////////////////////////////////////////////////////////
//	form functions
////////////////////////////////////////////////////////////////////////////////////////////////////

function calcSubmit (calcLayer, calcForm, calcArgs)
{
	var calcArray = calcArgs.split ('&');

	for (calcIndex in calcArray)
	{
		calcSplit  = calcArray[calcIndex].split ('=');
		calcObject = calcSplit[0];
		calcValue  = calcSplit[1];

		window[calcLayer].document.forms[calcForm].elements[calcObject].value = calcValue;
	}

	window[calcLayer].document.forms[calcForm].submit ();
}

function calcCheck (calcLayer, calcForm, calcArgs)
{
	var calcArray = new Array ();
	var calcMin = Number.POSITIVE_INFINITY;
	var calcMax = Number.NEGATIVE_INFINITY;
	var calcIndex = 0;

	while (window[calcLayer].document.forms[calcForm].elements[calcIndex])
	{
		var calcName = window[calcLayer].document.forms[calcForm].elements[calcIndex].name;
		var calcType = window[calcLayer].document.forms[calcForm].elements[calcIndex].type;
		var calcID = parseInt (calcName.substr (calcName.indexOf ('field') + 5));
		var calcOptional = (calcName.indexOf ('opt') > 0);

		if (calcID && !calcOptional)
		{
			switch (calcType)
			{
				case 'text':	 calcArray[calcID] = (window[calcLayer].document.forms[calcForm].elements[calcIndex].value != ''); break;
				case 'radio':	 calcArray[calcID] = (calcArray[calcID] || window[calcLayer].document.forms[calcForm].elements[calcIndex].checked); break;
				case 'checkbox': calcArray[calcID] = (calcArray[calcID] || window[calcLayer].document.forms[calcForm].elements[calcIndex].checked); break;
			}

			calcMin = (calcMin > calcID) ? calcID:calcMin;
			calcMax = (calcMax < calcID) ? calcID:calcMax;
		}

		calcIndex++;
	}

	for (calcIndex = calcMin; calcIndex <= calcMax; calcIndex++)
	{
		if (!calcArray[calcIndex] && (calcArray[calcIndex] != undefined))
		{
			var calcStringA = String (calcIndex).substr (0, 2);
			var calcStringB = String (calcIndex).substr (2, 1);

			return alert ('A ' + calcStringA + ((calcStringB) ? '/' + calcStringB:'')+ '. kérdésre nem adott választ!');
		}
	}

	calcSubmit (calcLayer, calcForm, calcArgs);
}

////////////////////////////////////////////////////////////////////////////////////////////////////
//
//	function_evaluate.js : evaluate javascript functions for calculator
//
////////////////////////////////////////////////////////////////////////////////////////////////////