function ErrorBox(elementid, width)
{
	this.elementid = elementid;
	this.clear();
	
	if (typeof width != 'undefined')
	{
		$('#' + elementid)[0].style.width = width + 'px';
	}
}

ErrorBox.prototype.addError = function(message)
{
	if (typeof message == 'array')
	{
		for (i in message)
		{
			this.addError(message[i]);
		}
	}
	else
	{
		var text  = document.createTextNode(message);
		var error = document.createElement('li').appendChild(text);
	
		this.list.appendChild(error);
		this.errors++;
	}
}

ErrorBox.prototype.display = function(message)
{
	if (typeof message != 'undefined')
	{
		this.addError(message);
	}
	
	if (!this.hasErrors())
	{
		return false;
	}
	
	var paragraph = document.createElement('p');
	paragraph.innerHTML = 'Following error' + (this.errors == 1 ? '' : 's') + ' occurred.';

	$('#' + this.elementid)[0].appendChild(paragraph);
	$('#' + this.elementid)[0].appendChild(this.list);
	$('#' + this.elementid).show();
	
	return true;
}

ErrorBox.prototype.clear = function()
{
	if ($('#' + this.elementid))
	{
		$('#' + this.elementid)[0].innerHTML = '';
		$('#' + this.elementid).hide();
	}
	
	this.list = document.createElement('ul');
	this.errors = 0;
}

ErrorBox.prototype.hasErrors = function()
{
	return new Boolean(this.errors);
}