function validate_fields(fields, event) {
	fields.each(function(field) {
		if($F(field).blank()) {
			event.stop();
			$(field).up('div').addClassName('error');
			$(field).up('form').down('.all-required').setStyle({color: '#c60707'});
		} else if($F(field) == $(field).title) {
			event.stop();
			$(field).up('div').addClassName('error');
			$(field).up('form').down('.all-required').setStyle({color: '#c60707'});
		} else {
			$(field).up('div').removeClassName('error');
			return true;
		}
	});
}

function validate_email(fields, event) {
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

	fields.each(function(field) {
		if($F(field).blank()) {
			event.stop();
			$(field).up('div').addClassName('error');
			$(field).up('form').down('.all-required').setStyle({color: '#c60707'});
		} else if(!filter.test($F(field))) {
			event.stop();
			$(field).up('div').addClassName('error');
			$(field).up('form').down('.all-required').setStyle({color: '#c60707'});
		} else {
			$(field).up('div').removeClassName('error');
			return true;
		}
	});
}

function validate_date(fields, event) {
	var filter = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;

	fields.each(function(field) {
		if($F(field).blank()) {
			event.stop();
			$(field).up('div').addClassName('error');
			$(field).up('form').down('.all-required').setStyle({color: '#c60707'});
		} else if(!filter.test($F(field))) {
			event.stop();
			$(field).up('div').addClassName('error');
			$(field).up('form').down('.all-required').setStyle({color: '#c60707'});
		} else {
			$(field).up('div').removeClassName('error');
			return true;
		}
	});
}



function validate_checkbox(fields, event) {
	fields.each(function(field) {
		if(!$(field).checked) {
			event.stop();
			$(field).next('span').addClassName('error');
			$(field).up('form').down('.all-required').setStyle({color: '#c60707'});
		} else {
			$(field).next('span').removeClassName('error');
			return true;
		}
	});
}

document.observe('dom:loaded', function() {

	$$('.toggle').each(function (elm) {
		elm.observe('focus', function (event) {
			if (elm.value == elm.title) {
				elm.up('div').addClassName('focus');
				elm.value = '';
			}
		}).observe('blur', function (event) {
			if (elm.value == '') {
				elm.up('div').removeClassName('focus')
				elm.value = elm.title;
			}
		});
	});

	$$('.do-hover').each(function(elm) {
		elm.observe('mouseover', function() {
			elm.addClassName('hover');
		}).observe('mouseout', function() {
			elm.removeClassName('hover');
		});
	});
});