
Form.check = function(form) {
	var isValid = true;
	$(form).getElements().each(function(e) {
		if(e.hasClassName('required') && (!e.present() || $F(e) == null))
		{
			new Effect.Shake(e);
			isValid = false;
		}
	});
	
	return isValid;
};

/*
 * Besides being called by a Event.observe(el,'submit'), this method may also be called by any function, receive the name of the form
 */
Form.checkAndSend = function(e) {
	if(typeof(e) != 'string')
	{
		Event.stop(e);
		alert(Element.findAncestorByTagName(Event.element(e), 'FORM'));
		var form = Event.element(e).up('form');
	}
	else
		var form = $(e);
		

	

	if(!Form.check(form))
		return false;
	else
		$(form.submit());
};

Element.findAncestorByTagName = function(el,tag) {
	var returnVar = false;
	// alert($(el).ancestors());
	$(el).ancestors().each(function(e) {
		alert(e.tagName);
		if(e.tagName == tag)
		{

			returnVar = e;
			return;
		}
	});
	return returnVar;
};
