var eventHandlerObject = function ()
{
	this.add = function (object, type, method, capture)
	{
		if (object.addEventListener)
		{
			object.addEventListener(type, method, capture);
    	return true;
		}
		else if (object.attachEvent)
		{
			return object.attachEvent("on" + type, method);
		}
		else
		{
			alert("ERROR: events::add() could not attach event.");
			return false;
		}
	},
	
	this.remove = function (object, type, method, capture)
	{
		if (object.removeEventListener)
		{
			object.removeEventListener(type, method, capture);
			return true;
		} 
		else if (object.detachEvent)
		{
			return object.detachEvent("on" + type, method);
		} 
		else 
		{
			alert("ERROR: events::remove() could not remove event.");
			return false;
		}
	}
}

var eventHandler = new eventHandlerObject();


document.getElementsByClassName = function (classname)
{
	var classname = " " + classname + " ";
	var elements_to_search = document.getElementsByTagName("*");
	var elements_found = new Array();
	
	for (var index = 0, total = elements_to_search.length; index < total; index++)
	{
		var element = elements_to_search[index];
		var element_class = " " + element.className + " ";
		
		if (element_class.indexOf(classname) != -1)
		{
			elements_found[elements_found.length] = element;
		}
	}
	
	return elements_found;
}

document.removeWhitespace = function (parent)
{
	var parent = parent == undefined ? document : parent;
	var reg = new RegExp(/\S/);
		
  for (var index = 0; index < parent.childNodes.length; index++)
  {
    var child_node = parent.childNodes[index];
    
    if (((child_node.nodeType == 3)
    			&&
    		(!reg.test(child_node.nodeValue)))
    			||
    		child_node.nodeType == 8) 
    {
	    parent.removeChild(child_node);
	    index--;
    }
    else if (child_node.nodeType == 1)
    {
      document.removeWhitespace(child_node);
    }
  }
}

eventHandler.add(window, "load", function()
{
  document.removeWhitespace()
});

checkTextAreaLength = function (element, maxlength)
{
	var v = element.value;	
	return (v.length <= maxlength);
}


var _openedWindows = new Array();

openWindow = function (u, w, h, n)
{
	
	var l	= w == screen.width ? 0 : (screen.width / 2) - (w / 2);
	var t	= h == screen.height ? 0 : (screen.height / 2) - (h / 2) - 25;
 	n = n ? n : "win";
 	
 	if (_openedWindows[n] != null)
 	{
 		_openedWindows[n].close();
 	}
 	
	var win = window.open(u,
												n, 
												"toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no, left=" + l + ", top=" + t + ", width=" + w + ", height=" + h);

	_openedWindows[n] = win;
	win.focus();
}
