(function(A){
	A.extend(A.fn,{
		pstrength:function(B){
			var B=A.extend({
				verdects:["Muy débil","Débil","Media","Fuerte","Muy fuerte"],
				colors:["#f00","#c06","#f60","#3c0","#3f0"],
				scores:[10,15,30,40],
				common:["contrasenia","111","aaa","123456","123","madrid","casa","hola","prueba"],
				minchar:8
			},B);
			return this.each(function(){
				var C=A(this).attr("id");
				A(this).after("<div class=\"pstrength-minchar\" id=\""+C+"_minchar\"><span class='error_txt'></span></div>");
				$("#pwd2").after("<div class=\"pstrength-diffpwd\" id=\""+C+"_diffpwd\"><span class='error_txt'></span></div>");
				A(this).parent().nextAll("#results_pwd").append("<div class=\"pstrength-info\" id=\""+C+"_text\"></div>");
				A(this).parent().nextAll("#results_pwd").append("<div class=\"pstrength-bar\" id=\""+C+"_bar\" style=\"border: 1px solid white; font-size: 1px; height: 8px; width: 0px;\"></div>");
				A(this).keyup(function(){
					A.fn.runPassword(A(this).val(),C,B)
				})
			})
		},
		runPassword:function(D,F,C){
			nPerc=A.fn.checkPassword(D,C);
			var B="#"+F+"_bar";
			var E="#"+F+"_text";
			if(nPerc==-200){
				strColor="#f00";
				strText="contraseña poco segura!";
				A(B).css({width:"0%"})
			}
			else{
				if(nPerc<0&&nPerc>-199){
					strColor="#ccc";
					strText="Demasiado corta";
					A(B).css({width:"9%"})
				}
				else{
					if(nPerc<=C.scores[0]){
						strColor=C.colors[0];
						strText=C.verdects[0];
						A(B).css({width:"18%"})
					}
					else{
						if(nPerc>C.scores[0]&&nPerc<=C.scores[1]){
							strColor=C.colors[1];
							strText=C.verdects[1];
							A(B).css({width:"30%"})
						}
						else{
							if(nPerc>C.scores[1]&&nPerc<=C.scores[2]){
								strColor=C.colors[2];
								strText=C.verdects[2];
								A(B).css({width:"50%"})
							}
							else{
								if(nPerc>C.scores[2]&&nPerc<=C.scores[3]){
									strColor=C.colors[3];
									strText=C.verdects[3];
									A(B).css({width:"75%"})
								}
								else{
									strColor=C.colors[4];
									strText=C.verdects[4];
									A(B).css({width:"98%"})
								}
							}
						}
					}
				}
			}
			A(B).css({backgroundColor:strColor});
			A(E).html("<span class='seguridad'>"+strText+"</span>")
		},
		checkPassword:function(C,B){
			var F=0;
			var E=B.verdects[0];
			if(C.length<B.minchar){
				F=(F-100)
			}
			else{
				if(C.length>=B.minchar&&C.length<=(B.minchar+2)){
					F=(F+6)
				}
				else{
					if(C.length>=(B.minchar+3)&&C.length<=(B.minchar+4)){
						F=(F+12)}
					else{
						if(C.length>=(B.minchar+5)){
							F=(F+18)
						}
					}
				}
			}
			if(C.match(/[a-z]/)){F=(F+1)}
			if(C.match(/[A-Z]/)){F=(F+5)}
			if(C.match(/\d+/)){F=(F+5)}
			if(C.match(/(.*[0-9].*[0-9].*[0-9])/)){F=(F+7)}
			if(C.match(/.[!,@,#,$,%,^,&,*,?,_,~]/)){F=(F+5)}
			if(C.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/)){F=(F+7)}
			if(C.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)){F=(F+2)}
			if(C.match(/([a-zA-Z])/)&&C.match(/([0-9])/)){F=(F+3)}
			if(C.match(/([a-zA-Z0-9].*[!,@,#,$,%,^,&,*,?,_,~])|([!,@,#,$,%,^,&,*,?,_,~].*[a-zA-Z0-9])/)){F=(F+3)}
			for(var D=0;D<B.common.length;D++){
				if(C.toLowerCase()==B.common[D]){F=-200}
			}
			return F
		}
	})
})(jQuery)
