var errors = new Array();
var notices = new Array();

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); }

function isEmpty(s) {
	return ((s == null) || (s.length == 0));
}

function isWhitespace(s) {
	if(isEmpty(s) || isEmpty(s.trim())) {
		return true;
	}

	return false;
}

function isEmail(s) {
	var regex  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

	return regex.test(s);
}

function addError(error) {
	errors.push(error);
}

function getError() {
	if (!errors.length) {
		return false;
	}

	return errors.shift();
}

function getAllErrors(delimiter) {
	if (typeof delimiter == 'undefined') {
		delimiter = '<br />';
	}

	if (!errors.length) {
		return false;
	}

	var tmp = errors.join(delimiter);
	errors = new Array();
	return tmp;
}

function showErrors() {
	if (!errors.length) {
		return;
	}

	$('error').innerHTML = getAllErrors();
	$('error').removeClassName('hidden').addClassName('visible');
}

function addNotice(notice) {
	notices.push(notice);
}

function getNotice() {
	if (!notice.length) {
		return false;
	}

	return notices.shift();
}

function getAllNotices(delimiter) {
	if (typeof(delimiter) == 'undefined') {
		delimiter = '<br />';
	}

	if (!notices.length) {
		return false;
	}

	var tmp = notices.join(delimiter);
	notices = new Array();
	return tmp;
}

function showNotices() {
	if (!notices.length) {
		return;
	}

	$('notice').innerHTML = getAllNotices();
	$('notice').removeClassName('hidden').addClassName('visible');
}
