//registration

function checkReg(fid)
{
	var af = document.getElementById(fid);
	var ret = true;

	if (af != null)
	{
		var inputs = af.elements;
		var s = '';
		var rex = new RegExp('\\brequired\\b');
		var sa = ['required'];

		var af_pu = document.getElementById('af_pu');
		var af_ph = document.getElementById('af_ph');
		var af_pl = document.getElementById('af_pl');

		af_pu.style.display = 'none';
		af_pl.style.display = 'none';

		for (var e in inputs)
		{
			var ei = inputs[e];

			if (checkClassName(ei, 'required'))
			{
				if (ei.value == '')
				{
					appendClass(ei.parentNode.parentNode.getElementsByTagName('th')[0], sa);
					af_pu.style.display = 'table-cell';
					ret = false;
				}
				else
				{
					clearClass(ei.parentNode.parentNode.getElementsByTagName('th')[0], rex);
				}
			}
		}

		//check passwords
		var p1 = inputs['pass1'].value;
		var p2 = inputs['pass2'].value;

		if (p1 != '' && p1 != p2)
		{
			af_ph.style.display = 'table-cell';
			ret = false;
		}
		else
			af_ph.style.display = 'none';
	}
	else
		ret = false;

	return ret;
}

function checkZap(fid)
{
	var af = document.getElementById(fid);
	var ret = true;

	if (af != null)
	{
		var inputs = af.elements;
		var s = '';
		var rex = new RegExp('\\brequired\\b');
		var sa = ['required'];

		var af_pu = document.getElementById('af_pu');

		af_pu.style.display = 'none';

		for (var e in inputs)
		{
			var ei = inputs[e];

			if (checkClassName(ei, 'required'))
			{
				if (ei.value == '')
				{
					appendClass(ei.parentNode.parentNode.getElementsByTagName('th')[0], sa);
					af_pu.style.display = 'table-cell';
					ret = false;
				}
				else
				{
					clearClass(ei.parentNode.parentNode.getElementsByTagName('th')[0], rex);
				}
			}
		}
	}
	else
		ret = false;

	return ret;
}

function checkClassName(obj, cn)
{
	if (obj != null && typeof(obj.className) != 'undefined')
	{
		var regex = new RegExp('\\b' + cn + '\\b');
		return (obj.className.match(regex));
	}

	return false;
}

function appendClass(obj, styles)
{
	if (obj != null && typeof(obj.className) != 'undefined')
	{
		var st = obj.className.split(' ');
		var stl = st.length;

nst:	for (var s in styles)
		{
			//find if this style is applied already
			for (var i in st)
			{
				if (styles[s] == st[i])
					continue nst;
			}
			//if not, then apply it
			st.push(styles[s]);
		}

		obj.className = st.join(' ');
	}
}

function clearClass(obj, regex)
{
	if (obj != null && typeof(obj.className) != 'undefined')
	{
		var st = obj.className.split(' ');

		for (var i in st)
		{
			if (st[i].match(regex))
			{
				//delete
				delete st[i];
			}
		}

		obj.className = st.join(' ');
	}
}

function getNodeText(node)
{
	if (typeof node.textContent != 'undefined')
	{
		return node.textContent;
	}
	else if (typeof node.innerText != 'undefined')
	{
		return node.innerText;
	}
	else if (typeof node.text != 'undefined')
	{
		return node.text;
	}
	else
	{
		switch (node.nodeType)
		{
			case 3:
			case 4:
				return node.nodeValue;
			case 1:
			case 11:
				var innerText = '';
				for (var i = 0; i < node.childNodes.length; i++)
				{
					innerText += getInnerText(node.childNodes[i]);
				}
				return innerText;
			default:
				return '';
		}
	}
}
