  var reglasValidacion= new Object();
reglasValidacion={
      "reglas":
      [
            {
   nombre: "Email",
   regla:/^[a-zA-Z0-9_\.\-]+\@([a-zA-Z0-9\-]+)\.([a-zA-Z0-9]{2,4})$/,
   mensaje:"Campo no valido, Email no valido.",
   clase: /\[email\]/g
            },
            {
   nombre: "Numeros",
   regla:/^[0-9]+$/,
   mensaje:"Campo no valido, solo números.",
   clase: /(numeros)/gi
            },
            {
   nombre: "Letras",
   regla:/^[a-zA-Z]+$/,
   mensaje:"Campo no valido, solo letras.",
   clase: /\[letras\]/g
            },
            {
   nombre: "Precio",
   regla:/[0-9\.]+$/,
   mensaje:"Campo no valido, numeros y punto flotante.",
   clase: /\[precio\]/g
            }
      ]
};
  function validar(form,parametros){
          form.submit(function(){
            validar.formulario=$(this);
                var validacion=true;
                var encontrado=false;
                 parametros= parametros || "1";
                $(this).find("[class*=required]").each(function(){
			var elemento=$(this);
                        if(this.type=="text" || this.nodeName.toLowerCase()=="textarea" || this.type=="password" || this.nodeName.toLowerCase()=="select"){
				var clases=elemento.attr("class");
                            if(elemento.val()==""){
                               validacion=false;
                               encontrado=true;
                               if(elemento.next("span.errorValidacion:first").length==0)
                                   elemento.after("<span class='errorValidacion'>Campo no valido.</span>");
                            }else{
                              var resultado;
                               try{ 
                              for(var i in reglasValidacion.reglas){
                                    resultado=clases.search(reglasValidacion.reglas[i].clase);
                                    if(resultado>=0){
                                          resultado=reglasValidacion.reglas[i].regla.exec(elemento.val());
                                            if(!resultado){
                                                encontrado=true;
                                                validacion=false;
                                                var texto="<span class='errorValidacion'>"+reglasValidacion.reglas[i].mensaje+"</span>";
                                                if(elemento.next("span.errorValidacion:first").length==0){
                                                        elemento.after(texto);
                                                }else{
                                                        elemento.next("span.errorValidacion:first").remove();
                                                        elemento.after(texto);
                                                }
                                                break;
                                          }
                                    }
                              }
                              if((/\[rut\]/g).test(clases)){
                                    if(!$.Rut.validar(elemento.val())){
                                          encontrado=true;
                                          validacion=false;
                                          var texto="<span class='errorValidacion'>Rut no valido.</span>";
                                          if(elemento.next("span.errorValidacion").length==0){
                                                        elemento.after(texto);
                                                }else{
                                                        elemento.next("span.errorValidacion:first").remove();
                                                        elemento.after(texto);
                                                }
                                    }
                              }
                              }catch(e){
                                    console.log(e);
                              }
                             
                            }    
                          }
                          if(elemento.next("span.errorValidacion:first").length && encontrado==false)
					elemento.next("span.errorValidacion:first").remove();
                              encontrado=false;
                     });
                if(!validacion){
                var span=$("span.errorValidacion");
                $("span.errorValidacion").fadeIn();
                   /*setTimeout(function(){
                    span.fadeOut();
                    },10500);*/
		   $("span.errorValidacion").prev("input,textarea").bind("click , focus",function(){
			$(this).next("span.errorValidacion").fadeOut();
			});
                   return false;
                }else{ 
                         if($.isFunction(parametros.onComplete)){
                                    var resultPar=parametros.onComplete();
                              };
                  if(parametros.ajax==true || (resultPar!=undefined && resultPar==false)){
                              return false;
                  }else{
                               return true;
                  }
                }
                });
		
    };
   
