// utilities.js

/* Asignación de eventos dinàmicamente */
function addEvent(obj, evType, fn)
{
	if ( document.addEventListener ) 
	{
		obj.addEventListener( evType, fn, false );
	} else 
	{
		obj["on"+evType] = fn;
//	if ( document.attachEvent ) {
//		obj.attachEvent("on"+evType, fn);
	}
}

function removeEvent(obj, evType, fn)
{
	if ( document.removeEventListener ) 
	{
		obj.removeEventListener( evType, fn, false );
	} else if ( document.detachEvent ) {
		obj.detachEvent("on"+evType, fn);
	}
}

/* Limpiar espacios en blanco para Firefox en childNodes.length */
var notWhitespace = /\S/;
function cleanWhitespace(node) 
{
	for (var x = 0; x < node.childNodes.length; x++) 
	{
    	var childNode = node.childNodes[x];
		//3 = TEXT_NODE
    	if ((childNode.nodeType == 3)&&(!notWhitespace.test(childNode.nodeValue))) 
		{
			// that is, if it's a whitespace text node
      		node.removeChild(node.childNodes[x])
      		x--;
    	}
		//1 = ELEMENT_NODE 	
    	if (childNode.nodeType == 1) {
			// elements can have text child nodes of their own
      		cleanWhitespace(childNode)
    	}
  	}
}