	var elemError = new Array();
	
	var Error = {	
		limpiarCampos: function(){
			$.each(elemError, function(){
				$(this).css({border:"1px solid #a5acb2", background:"#fff"});
				$("#" + this.name).html('');
			});
		},
		
		resaltoCampos: function(descripValue, altValue, elem){
			$(elem).css({border:"1px solid red", background:"#fee"});
			$("#" + elem.name).html('<img src="imagenes/validation_advice_bg.gif" alt="'+altValue+'" title="'+altValue+'" style="border: none; margin: 0; padding: 0;"/> <span style="color: red; font-weight: bold; font-size: 10px;">'+descripValue+'</span>');
		}
	}
	
	var filtros = {
		requerido: function(elem){
			if(/^\s+$/.test(elem.value) || elem.value == ''){
				elemError.push(elem);
				Error['resaltoCampos']("Campo requerido!", "Este campo es requerido.", elem);
			}
		},
		
		email: function(elem){
			var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
			
			if(elem.value == ''){
				return;
			}
			
			if(!filter.test(elem.value)){
				elemError.push(elem);
				Error['resaltoCampos']("Ingresa un Email", "Ingresa una cuenta de correo valida.", elem);
			}
		},
		
		telefono: function(elem){
			var filter = /^[0-9]{10}$/;
			
			if(elem.value == ''){
				return;
			}
			
			if(!filter.test(elem.value)){
				elemError.push(elem);
				Error['resaltoCampos']("Numero telefonico", "Ingresa un numero de 10 digitos.", elem);
			}
		}
	}
	
	function formValida(formulario){
		if(typeof filtros == 'undefined'){
			return true;
		}
		
	
		Error['limpiarCampos']();
		elemError = new Array();
		
		$(formulario).find("input[type=text],input[type=file], select, textarea").each(function(index, elem){
			if($(elem).attr("className") != 'undefined'){
				$.each(new String($(elem).attr("className")).split(" "), function(index, clase){
					if($.isFunction(filtros[clase])){
						filtros[clase](elem);
					}
				});
			}
		});
		
		if(elemError.length > 0){
			elemError[0].focus();
			elemError[0].focus();
			return false;
		}
		else{
			return true;
			
		}
	}
