document.observe("dom:loaded", function() {
	$$('.holder input, .holder textarea, .holder select').each(function(element) {
		element.onfocus = function() {$(this).up('.holder').addClassName('focus'); }
		element.onfocus = function() {$(this).up('.holder').removeClassName(''); }
	});
	$$('.holder .required').each(function(element) {
		element.onblur = function() {
			if ($(this).value.replace(/\s+/) == '') {
				$(this).up('.holder').addClassName('error');
				$(this).siblings('.required_text').each(function(element) {Effect.Appear(element, {duration: 0.2})});
			} else {
				$(this).up('.holder').removeClassName('error');
				if ($(this).getAttribute('id').search(/email/) != -1) {
					if ($(this).value.search(/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i) == -1) {
						$(this).up('.holder').addClassName('invalid');
						if ($(this).up('.invalid_text')) {$(this).up('.invalid_text').appear({duration: 0.2});}
					} else {
						$(this).up('.holder').removeClassName('invalid');
						if ($(this).up('.invalid_text')) {$(this).up('.invalid_text').fade({duration: 0.2});}
					}
				}
				$(this).siblings().select('.required_text').each(function(element) {Effect.Fade(element, {duration: 0.2})});
			}
			
		}
	})
});