var filters = {
    requerido: function(el) {return ($(el).val() != '' && $(el).val() != -1);},
		checked: function(el) { 
			var name = $(el).attr('name');
			var num = $('input[@name='+name+']:checked').length;
			return !(num == 0);
		},
		selected: function(el) {
			var val = $(el).val();
			return !(val == '' || val == '0');
		},
    email: function(el) {return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test($(el).val());},
    telefono: function(el){return /^[0-9]*$/.test($(el).val());}};
// Extensiones
$.extend({
	stop: function(e){
        if (e.preventDefault) e.preventDefault();
        if (e.stopPropagation) e.stopPropagation();
    }
});

$(document).ready(function() {
	$('#prensa_reg, #prensa_login').submit(function(e){
		if (typeof filters == 'undefined') return;
			$(this).find('input, textarea, select').each(function(x,el){
				if ($(el).attr('className') != 'undefined') {
					$.each(new String($(el).attr('className')).split(' '), function(x, klass){
						if ($.isFunction(filters[klass])) {
							if (!filters[klass](el))  $(el).addClass('error');

							if ($(el).attr('type') == 'radio' && !filters[klass](el)) {
								var id = $(el).attr('name');
								$("label[@for^=" + id + "]").addClass('error');
							}
						}
					});
				}
			});
		if ($(this).find('.error').size() > 0) {
			$.stop(e || window.event);
			alert('Asegurate de completar los campos marcados con rojo.');
			return false;
		}
			return true;
	});

	$("input[@name=sexo]").click(function() {
		var id = $(this).attr('name');
		$("label[@for^=" + id + "]").removeClass('error');
	});

	$('.error').livequery('focus', function() {$(this).removeClass('error')});
});
