ErrorManager = {};

ErrorManager.registerObserver = function(o)
{
	ErrorManager.observerCollection.push(o);
}

ErrorManager.notifyObservers = function(message, url, line)
{
	for(var i in ErrorManager.observerCollection)
	{
		eval(ErrorManager.observerCollection[i] +"('"+message +"','"+ url +"','"+ line+"');");
	}
}

ErrorManager.unregisterObserver = function(o)
{
	for(var observer in ErrorManager.observerCollection)
	{
		if(o == ErrorManager.observerCollection[observer])
		{
			ErrorManager.observerCollection.splice(observer, 1);
		}
	}
}

ErrorManager.initialize = function()
{
	ErrorManager.observerCollection = new Array();
	ErrorManager.registerObserver("ErrorManager.emailError");
	onerror = ErrorManager.notifyObservers;
}
ErrorManager.initialize();

ErrorManager.emailError = function(message, url, line)
{
	var error = "<b>Error:</b> <font color=red>"+ message +"</font><br/>";
	error += "<b>URL:</b> "+ url +"<br/>";
	error += "<b>Line:</b> "+ line +"<br/>";
	
	var page = "classes/ErrorManager.class.php";
	var to = "kris@krishadlock.com";
	var subject = "My Ajax Application Error";
	AjaxUpdater.Update('POST', page +"?to="+ to +"&subject="+ subject +"&message="+ error, this.catchResponse);
}

ErrorManager.catchResponse = function()
{
	// Handle the response from the server-side
}