window.addEvents({
	'domready': function() {
		initFormValidation();
	}
})

function initFormValidation() {
	$$('input.error').each(function(e) {
		if(e.type!='radio') {
			e.addEvent('change', function() {
				this.removeClass('error');
				if($('error_'+e.id)) $('error_'+e.id).removeClass('showerror');
			});
		} else {
			e.addEvent('click', function() {
				var id = e.id.split('_');
				if ($('error_'+id[0]+'_'+id[1])) $('error_'+id[0]+'_'+id[1]).removeClass('showerror');
			});
		}
	});
	
	$$('select.error').each(function(e) {
		e.addEvent('change', function() {
			this.removeClass('error');
			if ($('error_'+e.id)) $('error_'+e.id).removeClass('showerror');
		});
	});
	
	$$('textarea.error').each(function(e) {
		e.addEvent('change', function() {
			this.removeClass('error');
			if ($('error_'+e.id)) $('error_'+e.id).removeClass('showerror');
		});
	});
}

function showErrors(errors) {
	if(!errors) return;

	var myObject = JSON.decode(errors);
	
	$$('.error').each(function(el){
		if(el.get('tag') != 'span'){
			el.removeClass('error');
		}
	});
		
	myObject.each(function(obj){
		
		var response = obj.id.split(';;');
		var id = response[0];
		var msg = response[1] ? response[1] : '';
		
		if($(id) || $('error_'+id) ){
			if($(id)) $(id).addClass('error');
			
			if($('error_'+id)) {
				if(msg != '') $('error_'+id).set('html', msg);
				$('error_'+id).addClass('showerror');
			}
		}	
	});
	
	initFormValidation();
	
}