function addValidation(mailerName, message) {
	var errorMessage = message || 'error occured';
	var elms = document.getElementsByName('mailer_name');
	var form;

	function findForm(node) {
		if (node.tagName.match(/form/i)) return node;
		else return findForm(node.parentNode);
	}

	for (var i = 0; i < elms.length; i++) {
		if (elms[i].value == mailerName) {
			form = findForm(elms[i]);
			break;
		}
	}

	form.onsubmit = function () {
		var result = true;
		var elements = $A(this.getElementsByTagName('input')).concat($A(this.getElementsByTagName('textarea')));

		for(var i = 0; i < elements.length; i++) {
			var elm = elements[i];

			if (elm.className && elm.className.indexOf('required') != -1 && elm.value == '') {
				result = false;
				elm.className += ' error';
			} else {
				if (elm.className) elm.className = elm.className.replace(/error/g, '');
			}
		}

		if (!result && this.firstChild.className != 'form-error-message') {
			var errorDiv = document.createElement('div');
			errorDiv.className = 'form-error-message';
			errorDiv.innerHTML = errorMessage;
			this.insertBefore(errorDiv, this.firstChild);
		}

		return result;
	};
}


//////////// from Prototype.js 1.5.0_rc2 //////////////////////////////

var $A = Array.from = function(iterable) {
	if (!iterable) return [];
	if (iterable.toArray) {
		return iterable.toArray();
	} else {
		var results = [];
		for (var i = 0, length = iterable.length; i < length; i++)
			results.push(iterable[i]);
		return results;
	}
}

//////////// end of prototype.js ////////////////////////////////////

