var elements;

String.prototype.trim = function(){
	return this.replace(/^\s*(.*)\s*$/,"$1");
}
	
function validateForm(form){
	if (!elements) return false;
	var out = "";
	
	for (var i=0;i<elements.length;i++){
		switch(typeof elements[i]){
			case "object":
				name = elements[i][0];
				display = elements[i][1];
				re = elements[i][2];
				type = elements[i][3];
			break;
			case "string":
				name = elements[i];
				display = elements[i];
				re = /.+/;
			break;
		}
		if (!re) re = /.+/;
		
		switch(type){
			case "checkbox":
				var vals = [];
				var len = form.elements.length;
				for ( var j=0; j<len; j++ ){
					var el = form.elements[j];
					if (el.name == name && el.checked) vals.push(el.value);
				}
				val = vals.toString();
			break;
			default:
				try { val = form[name].value.trim(); }
				catch (ex) { val = "";}
			break;
		}
		
		if (!val.match(re)) {
			out += "  - " + display + " is malformed or blank\n";
		}
	}
	if (out) {
		alert("Please fill out all fields: \n" + out);
		return false;
	} else {
		return true;
	}
}
