// stores img size & oImg
var XFormColumnsSize;
var XFormSizeImg;

function XFormStoreColumnsSize()
{
	/* floating columns hack, only aplicatable when form width = 100% */
	if (XFormSizeImg == undefined)
	{
		XFormSizeImg = new Array(document.getElementById('size_img0'), document.getElementById('size_img1'), document.getElementById('size_img2'), document.getElementById('size_img3'));
	}

	XFormColumnsSize = new Array(XFormSizeImg[0].offsetWidth, XFormSizeImg[1].offsetWidth, XFormSizeImg[2].offsetWidth, XFormSizeImg[3].offsetWidth);

	return XFormColumnsSize;
}

function XFormReStoreColumnsSize()
{
	if (XFormSizeImg != undefined)
	{
		/* floating columns hack 4 IE when width = 100% */
		for (i=0; i < 4; i++)
		{
			eval('XFormSizeImg[' + (i) + '].width = XFormColumnsSize['+i+'];');
		}
	}
}

function HelperShowHide(id, pSavesize)
{
	if (typeof pSavesize == 'undefined' || pSavesize == true) XFormStoreColumnsSize();

	inforow = document.getElementById('inforow_'+id);
	helper = document.getElementById('helper_'+id);
	error = document.getElementById('error_'+id);
	helper_ico = document.getElementById('img_helper_' + id);

	var formWidth = inforow.parentNode.offsetWidth;

	if (helper.style.display == 'none')
	{
		// display small helper, calculate offsets and resize it when width not defined or auto
		helper.style.width = '10px';
		helper.style.height = '10px';

		helper.style.display = 'block';
		helper_ico.src = '/img/help_small_open.gif';

		// show row, now I'm able to calculate offsets
		inforow.style.display = '';

		var _clientLeft = !isNaN(parseInt(helper.clientLeft)) ? parseInt(helper.clientLeft) : 0;
		var _offsetLeft = !isNaN(parseInt(helper.offsetLeft)) ? parseInt(helper.offsetLeft) : 0;
		var _borderWidth = !isNaN(parseInt(helper.style.borderWidth)) && _clientLeft == 0 ? parseInt(helper.style.borderWidth) : 0;

		var myWidth =  formWidth - 2 * (_clientLeft + _offsetLeft + _borderWidth);

		helper.style.width = myWidth+'px';
		helper.style.height = 'auto';

		if (typeof pSavesize == 'undefined' || pSavesize == true) XFormReStoreColumnsSize();
	}
	else
	{
		helper.style.display = 'none';
		helper_ico.src = '/img/help_small.gif';
		if (error == null)
		{
			inforow.style.display = 'none';
		}
	}
}

function AddSubmit(name, id)
{
	el = document.createElement("input");
	el.setAttribute("type", "hidden");
	el.setAttribute("name", name);

	frm = document.getElementById(id);
	frm.appendChild(el);
}


function DisableSubmits()
{
	var btn = document.body.getElementsByTagName("input");

	for(i = 0; i < btn.length; i++)
	{
		att = btn[i].attributes;
		type = att.getNamedItem("type");

		if (type.nodeValue == "submit")
		{
			btn[i].setAttribute("disabled", "yes");
		}

	}

}
/*
 * Used by spellchecker for simple input type=text fields
 */
function openSpellChecker(ElementId)
{
	oTB = document.getElementsByName(ElementId)[0];
	var speller = new spellChecker( oTB );
	speller.openChecker();

	return false;
}

/*
 * Show Hide elements
 */
function XFormShowElement(ElementId, pSavesize)
{
	oTRs = document.getElementsByTagName('tr');
	var RowId = 'row_' + ElementId;
	//('row_' + ElementId);
	//alert(oTRs.length);
	if (oTRs.length)
	{
		if (typeof pSavesize == 'undefined' || pSavesize == true) XFormStoreColumnsSize();

		for ( i = 0; i < oTRs.length; i++) //oTR in oTRs)
		{
			oTR = oTRs[i];
			if (oTR.getAttribute('name') == RowId)
			{
				// helper || error:
				if (oTR.getAttribute('id') == ('inforow_'+ElementId) && document.getElementById('helper_' + ElementId) && document.getElementById('helper_' + ElementId).style.display == 'none' &&
					!document.getElementById('error_' + ElementId)
				)
				{
					// do nothing
				}
				else
				{
					oTR.style.display = '';
				}
			}
		}

		if (typeof pSavesize == 'undefined' || pSavesize == true) XFormReStoreColumnsSize();
	}
}

function XFormHideElement(ElementId, pSavesize)
{
	oTRs = document.getElementsByTagName('tr');
	var RowId = 'row_' + ElementId;

	//alert(oTRs.length);
	if (oTRs.length)
	{
		for ( i = 0; i < oTRs.length; i++) //oTR in oTRs)
		{
			oTR = oTRs[i];

			if (oTR.getAttribute('name') == RowId)
			{
				// helper:
				if (oTR.getAttribute('id') == ('inforow_'+ElementId) && document.getElementById('helper_' + ElementId) && document.getElementById('helper_' + ElementId).style.display != 'none')
				{
					oTR.style.display = 'none';
				}
				else
				{
					oTR.style.display = 'none';
				}
			}
		}
	}
}


/*
 * Attach div to helper icon
 */
function AttachShortInfoToHelperIcon()
{
	elements = document.getElementsByTagName('a');
	oShortInfo = document.getElementById('ShortInfo');

	for (i=0; i < elements.length; i++)
	{
		if (elements[i].className == 'HelperIcon')
		{
			elements[i].onmouseover = function()
			{
				oShortInfo.style.display = 'block';
				oShortInfo.style.left = (findPosX(this) - oShortInfo.offsetWidth - 1 ) + 'px';
				oShortInfo.style.top = (findPosY(this) - oShortInfo.offsetHeight - 5) + 'px';
			}
			elements[i].onmouseout = function()
			{
				oShortInfo.style.display = 'none';
			}
		}
	}

	if (typeof pOldOnload == 'function')
	{
		pOldOnload();
	}
}

if (undefined == FormOnLoadEvent)
{
	//pOldOnload = window.onload;
	//window.onload = AttachShortInfoToHelperIcon;
}
var FormOnLoadEvent = true;

/*
 * common functions from quirksmode.org
 */
function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

