Event.observe(window,'load', function() {
    $('form').observe('submit', function(e) {
    	e.stop();
    	$$('.form_required_action').each(function(elem) {
    		elem.removeClassName('form_required_action');
    	});
    	var submit = true;
    	$$('.form_required').each(function(elem) {
    		if($(elem).hasClassName('numeric_form_input')) {
    			if(!parseInt($F(elem).strip())) {
    				submit = false;
    				elem.addClassName('form_required_action');
    			}
    		}
    		else if($(elem).hasClassName('email_form_input')) {
    			var emailPattern = new RegExp("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$");
    			if (!emailPattern.test($F(elem))) {
    				submit = false;
    				elem.addClassName('form_required_action');
    			}
    		}
    		else if($F(elem).strip() == '' || $F(elem) == '_x_') {
    			submit = false;
    			elem.addClassName('form_required_action');
    		}
    	});
    	if (submit) {
			if ($('form_submitting')) { $('form_submitting').show(); }
			if ($('form_submit')) { $('form_submit').writeAttribute('disabled', 'disabled'); }
			if ($('form_reset')) { $('form_reset').writeAttribute('disabled', 'disabled'); }
			$('form').submit();
		}
    	else {
    		$('form_message').show();
    		new Effect.Highlight('form_message', { duration:3 });
    	}
    });
});

// INPUT RESTRICTIONS
var numberOnly = /[1234567890]/g;
var integerOnly = /[0-9\.]/g;
var urlOnly = /[a-zA-Z0-9\-_]/g;

function Restrict(e, chars) {
	// onkeypress="return Restrict(event, integerOnly);"
	if (!e) { var e = window.event; }
	if (e.keyCode) {
		code = e.keyCode;
	} else if (e.which) {
		code = e.which;
	}

	// DELETE: 8, TAB: 9, LEFT: 37, RIGHT: 39
	if (code != 8 && code != 9 && code != 37 && code != 39) {
		var str = String.fromCharCode(code);
		if (str.match(chars)) {
			return true;
		} else {
			return false;
		}
	}
}