Event.observe(window,'load',function(){
	$$('form.validated').each(function(f){new FormValidator(f)});
});

// Validate a form before it is submitted - submit silently
var FormValidator = Class.create({
	initialize:function(f,onValid){
		this.form=f;
		this.form.onsubmit=this.onsubmit.bindAsEventListener(this);
		this.onValid=onValid;
	},
	onsubmit:function(){
		// inputs
		var inputs = this.form.serialize(true);

		// validate inputs
		var missing = $H(inputs).keys().findAll(function(key){return !inputs[key] || inputs[key].length==0});
		if (missing.length>0) {
			alert("Please complete the following fields:\n" + missing.join("\n"));
		} else {
			// submit the form (silently)
			this.form.update('Sending message...');
			new Ajax.Request(
				this.form.action,{
					parameters:inputs,
					method:'get',
					onComplete:this.onComplete.bindAsEventListener(this)
				}
			);
		}
		// dont reload page
		return false;
	},
	onComplete:function(){
		this.form.update('Message sent...');
	}
});

