// Ayuda para campos de formulario.
// NOTA: aplicar la clase 'helpForm' al form que vaya a tener la ayuda
// Técnica original: http://juicystudio.com/article/form-help-without-popups.html
function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\\\s)"+searchClass+"(\\\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function addHelp()
{
	var strID, objHelp;
	
	if (document.getElementById && document.appendChild && document.removeChild)
	{
		// Devuelve un array con la lista de elementos que tienen la clase "helpForm"
		var helpFormList = getElementsByClass('helpForm', document, '*');
		// Cogemos el primer resultado ya que debiera haber solo un elemento con tal clase
		var objHelpform = helpFormList[0];
		var objAnchors = objHelpform.getElementsByTagName('a');
				
		for (var iCounter=0; iCounter<objAnchors.length; iCounter++)
		{
			if (objAnchors[iCounter].className != 'leaveHelp')
			{
				strID = getIDFromHref(objAnchors[iCounter].href);
				objHelp = document.getElementById(strID);
				objHelp.style.display = 'none';
		
				objAnchors[iCounter].onclick = function(event){return expandHelp(this, event);}
				objAnchors[iCounter].onkeypress = function(event){return expandHelp(this, event);}
		
				objAnchors[iCounter].parentNode.appendChild(objHelp);
			}
		}
		
		var objOldnode = document.getElementById('helpContainer');
		
		objOldnode.parentNode.removeChild(objOldnode);
		
		// Release memory to prevent IE memory leak
		
		objHelpform = null;
		objHelp = null;
		objAnchors = null;
	}
}

function getIDFromHref(strHref)
{
	var iOffset = strHref.indexOf('#') + 1;
	var iEnd = strHref.length;

	return strHref.substring(iOffset, iEnd);
}

function expandHelp(objAnchor, objEvent)
{
	var iKeyCode;

	if (objEvent && objEvent.type == 'keypress')
	{
		if (objEvent.keyCode)
			iKeyCode = objEvent.keyCode;
		else if (objEvent.which)
			iKeyCode = objEvent.which;
		
		if (iKeyCode != 13 && iKeyCode != 32)
			return true;
	}

	strID = getIDFromHref(objAnchor.href);
	objHelp = document.getElementById(strID);

	if (objHelp.style.display == 'none')
		objHelp.style.display = 'block';
	else
		objHelp.style.display = 'none';

	return false;
}

