1 <html><head><title>../roojs1/Roo/bootstrap/SecurePass.js</title><link rel="stylesheet" type="text/css" href="../../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-var">Roo.bootstrap.SecurePass </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">) {
2 </span><span class="jsdoc-comment">// these go here, so the translation tool can replace them..
3 </span><span class="jsdoc-var">this.errors </span><span class="jsdoc-syntax">= {
4 </span><span class="jsdoc-var">PwdEmpty</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Please type a password, and then retype it to confirm."</span><span class="jsdoc-syntax">,
5 </span><span class="jsdoc-var">PwdShort</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Your password must be at least 6 characters long. Please type a different password."</span><span class="jsdoc-syntax">,
6 </span><span class="jsdoc-var">PwdLong</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Your password can't contain more than 16 characters. Please type a different password."</span><span class="jsdoc-syntax">,
7 </span><span class="jsdoc-var">PwdBadChar</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"The password contains characters that aren't allowed. Please type a different password."</span><span class="jsdoc-syntax">,
8 </span><span class="jsdoc-var">IDInPwd</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Your password can't include the part of your ID. Please type a different password."</span><span class="jsdoc-syntax">,
9 </span><span class="jsdoc-var">FNInPwd</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Your password can't contain your first name. Please type a different password."</span><span class="jsdoc-syntax">,
10 </span><span class="jsdoc-var">LNInPwd</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Your password can't contain your last name. Please type a different password."</span><span class="jsdoc-syntax">,
11 </span><span class="jsdoc-var">TooWeak</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Your password is Too Weak."
12 </span><span class="jsdoc-syntax">},
13 </span><span class="jsdoc-var">this.meterLabel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">"Password strength:"</span><span class="jsdoc-syntax">;
14 </span><span class="jsdoc-var">this.pwdStrengths </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-string">"Too Weak"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"Weak"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"Medium"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"Strong"</span><span class="jsdoc-syntax">];
15 </span><span class="jsdoc-var">Roo.bootstrap.SecurePass.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
18 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.SecurePass</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.bootstrap.Input</span><span class="jsdoc-syntax">, {
19 </span><span class="jsdoc-comment">/**
20 * @cfg {String/Object} errors A Error spec, or true for a default spec (defaults to
22 * PwdEmpty: "Please type a password, and then retype it to confirm.",
23 * PwdShort: "Your password must be at least 6 characters long. Please type a different password.",
24 * PwdLong: "Your password can't contain more than 16 characters. Please type a different password.",
25 * PwdBadChar: "The password contains characters that aren't allowed. Please type a different password.",
26 * IDInPwd: "Your password can't include the part of your ID. Please type a different password.",
27 * FNInPwd: "Your password can't contain your first name. Please type a different password.",
28 * LNInPwd: "Your password can't contain your last name. Please type a different password."
32 </span><span class="jsdoc-var">errors</span><span class="jsdoc-syntax">: {},
33 </span><span class="jsdoc-var">imageRoot</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'/'</span><span class="jsdoc-syntax">,
34 </span><span class="jsdoc-comment">/**
35 * @cfg {String/Object} Label for the strength meter (defaults to
36 * 'Password strength:')
39 </span><span class="jsdoc-var">meterLabel</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
40 </span><span class="jsdoc-comment">/**
41 * @cfg {String/Object} pwdStrengths A pwdStrengths spec, or true for a default spec (defaults to
42 * ['Weak', 'Medium', 'Strong'])
45 </span><span class="jsdoc-var">pwdStrengths</span><span class="jsdoc-syntax">: [],
46 </span><span class="jsdoc-comment">/**
47 * @cfg {String/Object} fieldsFilter A fieldsFilter spec, as [['field_name', 'error_id'], ...]
50 </span><span class="jsdoc-var">fieldsFilter</span><span class="jsdoc-syntax">: [],
51 </span><span class="jsdoc-comment">// private
52 </span><span class="jsdoc-var">strength</span><span class="jsdoc-syntax">: 0,
53 </span><span class="jsdoc-comment">// private
54 </span><span class="jsdoc-var">_lastPwd</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
55 </span><span class="jsdoc-comment">// private
56 </span><span class="jsdoc-var">kCapitalLetter</span><span class="jsdoc-syntax">: 0,
57 </span><span class="jsdoc-var">kSmallLetter</span><span class="jsdoc-syntax">: 1,
58 </span><span class="jsdoc-var">kDigit</span><span class="jsdoc-syntax">: 2,
59 </span><span class="jsdoc-var">kPunctuation</span><span class="jsdoc-syntax">: 3,
61 </span><span class="jsdoc-var">insecure</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
62 </span><span class="jsdoc-comment">// private
63 </span><span class="jsdoc-var">initEvents</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() {
64 </span><span class="jsdoc-var">Ext.form.SecurePass.superclass.initEvents.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
66 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el.is</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'input[type=password]'</span><span class="jsdoc-syntax">) && </span><span class="jsdoc-var">Roo.isSafari</span><span class="jsdoc-syntax">) {
67 </span><span class="jsdoc-var">this.el.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'keydown'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.SafariOnKeyDown</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
70 </span><span class="jsdoc-var">this.el.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'keyup'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.checkStrength</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, {</span><span class="jsdoc-var">buffer</span><span class="jsdoc-syntax">: 50});
72 </span><span class="jsdoc-comment">// private
73 </span><span class="jsdoc-var">onRender</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">) {
74 </span><span class="jsdoc-var">Ext.form.SecurePass.superclass.onRender.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
75 </span><span class="jsdoc-var">this.wrap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.wrap</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'x-form-field-wrap'</span><span class="jsdoc-syntax">});
76 </span><span class="jsdoc-var">this.trigger </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.wrap.createChild</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'StrengthMeter ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.triggerClass</span><span class="jsdoc-syntax">});
78 </span><span class="jsdoc-var">this.trigger.createChild</span><span class="jsdoc-syntax">({
79 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
80 </span><span class="jsdoc-var">style</span><span class="jsdoc-syntax">: {
81 </span><span class="jsdoc-string">'margin-bottom'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'10px'</span><span class="jsdoc-syntax">,
82 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.width </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'px'
83 </span><span class="jsdoc-syntax">},
84 </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: {
85 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
86 </span><span class="jsdoc-var">style</span><span class="jsdoc-syntax">: {
87 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.width </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'px'</span><span class="jsdoc-syntax">,
88 </span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'9px'</span><span class="jsdoc-syntax">,
89 </span><span class="jsdoc-string">'background-image'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'url(\'' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.imageRoot </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'/password_meter_grey.gif\')'</span><span class="jsdoc-syntax">,
90 </span><span class="jsdoc-string">'background-position'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'center center'</span><span class="jsdoc-syntax">,
91 </span><span class="jsdoc-string">'background-repeat'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'no-repeat'
92 </span><span class="jsdoc-syntax">},
93 </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: {
94 </span><span class="jsdoc-comment">//id: 'PwdMeter',
95 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
96 </span><span class="jsdoc-var">style</span><span class="jsdoc-syntax">: {
97 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 0,
98 </span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'9px'</span><span class="jsdoc-syntax">,
99 </span><span class="jsdoc-string">'background-image'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'url(\'' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.imageRoot </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'/password_meter.gif\')'</span><span class="jsdoc-syntax">,
100 </span><span class="jsdoc-string">'background-position'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'center center'</span><span class="jsdoc-syntax">,
101 </span><span class="jsdoc-string">'background-repeat'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'no-repeat'</span><span class="jsdoc-syntax">,
102 </span><span class="jsdoc-string">'font-size'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'9px'
103 </span><span class="jsdoc-syntax">}
107 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hideTrigger</span><span class="jsdoc-syntax">) {
108 </span><span class="jsdoc-var">this.trigger.setDisplayed</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
110 </span><span class="jsdoc-var">this.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.width </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.height </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
112 </span><span class="jsdoc-comment">// private
113 </span><span class="jsdoc-var">onDestroy</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() {
114 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.trigger</span><span class="jsdoc-syntax">) {
115 </span><span class="jsdoc-var">this.trigger.removeAllListeners</span><span class="jsdoc-syntax">();
116 </span><span class="jsdoc-var">this.trigger.remove</span><span class="jsdoc-syntax">();
118 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.wrap</span><span class="jsdoc-syntax">) {
119 </span><span class="jsdoc-var">this.wrap.remove</span><span class="jsdoc-syntax">();
121 </span><span class="jsdoc-var">Ext.form.TriggerField.superclass.onDestroy.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
123 </span><span class="jsdoc-comment">// private
124 </span><span class="jsdoc-var">checkStrength</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() {
125 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">pwd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.getValue</span><span class="jsdoc-syntax">();
126 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pwd </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">this._lastPwd</span><span class="jsdoc-syntax">) {
127 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
130 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">strength</span><span class="jsdoc-syntax">;
131 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.ClientSideStrongPassword</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pwd</span><span class="jsdoc-syntax">)) {
132 </span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">= 3;
133 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.ClientSideMediumPassword</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pwd</span><span class="jsdoc-syntax">)) {
134 </span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">= 2;
135 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.ClientSideWeakPassword</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pwd</span><span class="jsdoc-syntax">)) {
136 </span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">= 1;
137 } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
138 </span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">= 0;
140 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">pm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.trigger.child</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'div/div/div'</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.dom</span><span class="jsdoc-syntax">;
142 </span><span class="jsdoc-var">pm.style.width </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">this.width </span><span class="jsdoc-syntax">/ 3) * </span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'px'</span><span class="jsdoc-syntax">;
143 </span><span class="jsdoc-comment">//if(this.pwdStrengths != null && strength > 0) {
144 </span><span class="jsdoc-var">pm.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.meterLabel </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'&nbsp;' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.pwdStrengths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">strength</span><span class="jsdoc-syntax">];
145 </span><span class="jsdoc-comment">//} else {
146 // pm.innerHTML = '';
149 </span><span class="jsdoc-var">this._lastPwd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">pwd</span><span class="jsdoc-syntax">;
151 </span><span class="jsdoc-var">reset</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() {
152 </span><span class="jsdoc-var">Ext.form.SecurePass.superclass.reset.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
153 </span><span class="jsdoc-var">this._lastPwd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
154 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">pm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.trigger.child</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'div/div/div'</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.dom</span><span class="jsdoc-syntax">;
155 </span><span class="jsdoc-var">pm.style.width </span><span class="jsdoc-syntax">= 0;
156 </span><span class="jsdoc-var">pm.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
158 </span><span class="jsdoc-comment">// private
159 </span><span class="jsdoc-var">validateValue</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">) {
161 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">Ext.form.TextField.superclass.validateValue.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">)) {
162 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
164 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value.length </span><span class="jsdoc-syntax">== 0) {
165 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.allowBlank</span><span class="jsdoc-syntax">) {
166 </span><span class="jsdoc-var">this.clearInvalid</span><span class="jsdoc-syntax">();
167 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
170 </span><span class="jsdoc-var">this.markInvalid</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.errors.PwdEmpty</span><span class="jsdoc-syntax">);
171 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
174 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.insecure</span><span class="jsdoc-syntax">){
175 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
178 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'[\x21-\x7e]*'</span><span class="jsdoc-var">.match</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">)) {
179 </span><span class="jsdoc-var">this.markInvalid</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.errors.PwdBadChar</span><span class="jsdoc-syntax">);
180 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
182 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value.length </span><span class="jsdoc-syntax">< 6) {
183 </span><span class="jsdoc-var">this.markInvalid</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.errors.PwdShort</span><span class="jsdoc-syntax">);
184 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
186 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value.length </span><span class="jsdoc-syntax">> 16) {
187 </span><span class="jsdoc-var">this.markInvalid</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.errors.PwdLong</span><span class="jsdoc-syntax">);
188 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
190 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">strength</span><span class="jsdoc-syntax">;
191 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.ClientSideStrongPassword</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">)) {
192 </span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">= 3;
193 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.ClientSideMediumPassword</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">)) {
194 </span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">= 2;
195 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.ClientSideWeakPassword</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">)) {
196 </span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">= 1;
197 } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
198 </span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">= 0;
200 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">< 2) {
201 </span><span class="jsdoc-var">this.markInvalid</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.errors.TooWeak</span><span class="jsdoc-syntax">);
202 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
204 </span><span class="jsdoc-comment">/*
205 for (var index = 0; index < this.fieldsFilter.length; ++index) {
206 filter = document.getElementById(this.fieldsFilter[index][0]).value;
209 re = new RegExp(filter);
210 if (re.test(value)) {
211 this.markInvalid(eval('this.errors.'+ this.fieldsFilter[index][1]));
217 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
219 </span><span class="jsdoc-comment">// private
220 </span><span class="jsdoc-var">CharacterSetChecks</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">) {
221 </span><span class="jsdoc-var">this.type </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">;
222 </span><span class="jsdoc-var">this.fResult </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
224 </span><span class="jsdoc-comment">// private
225 </span><span class="jsdoc-var">isctype</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">character</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">) {
226 </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-comment">//why needed break after return in js ? very odd bug
227 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">this.kCapitalLetter</span><span class="jsdoc-syntax">:
228 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">character </span><span class="jsdoc-syntax">>= </span><span class="jsdoc-string">'A' </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">character </span><span class="jsdoc-syntax"><= </span><span class="jsdoc-string">'Z'</span><span class="jsdoc-syntax">) {
229 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
231 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
232 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">this.kSmallLetter</span><span class="jsdoc-syntax">:
233 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">character </span><span class="jsdoc-syntax">>= </span><span class="jsdoc-string">'a' </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">character </span><span class="jsdoc-syntax"><= </span><span class="jsdoc-string">'z'</span><span class="jsdoc-syntax">) {
234 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
236 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
237 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">this.kDigit</span><span class="jsdoc-syntax">:
238 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">character </span><span class="jsdoc-syntax">>= </span><span class="jsdoc-string">'0' </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">character </span><span class="jsdoc-syntax"><= </span><span class="jsdoc-string">'9'</span><span class="jsdoc-syntax">) {
239 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
241 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
242 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">this.kPunctuation</span><span class="jsdoc-syntax">:
243 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'!@#$%^&*()_+-=\'";:[{]}|.>,</?`~'</span><span class="jsdoc-var">.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">character</span><span class="jsdoc-syntax">) >= 0) {
244 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
246 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
247 </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:
248 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
252 </span><span class="jsdoc-comment">// private
253 </span><span class="jsdoc-var">IsLongEnough</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pwd</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">size</span><span class="jsdoc-syntax">) {
254 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">!(</span><span class="jsdoc-var">pwd </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">null </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">isNaN</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">size</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-var">pwd.length </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">size</span><span class="jsdoc-syntax">);
256 </span><span class="jsdoc-comment">// private
257 </span><span class="jsdoc-var">SpansEnoughCharacterSets</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">word</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">nb</span><span class="jsdoc-syntax">) {
258 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.IsLongEnough</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">word</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">nb</span><span class="jsdoc-syntax">))
260 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
263 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">characterSetChecks </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Array</span><span class="jsdoc-syntax">(
264 </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">this.CharacterSetChecks</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.kCapitalLetter</span><span class="jsdoc-syntax">), </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">this.CharacterSetChecks</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.kSmallLetter</span><span class="jsdoc-syntax">),
265 </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">this.CharacterSetChecks</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.kDigit</span><span class="jsdoc-syntax">), </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">this.CharacterSetChecks</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.kPunctuation</span><span class="jsdoc-syntax">));
266 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">word.length</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">) {
267 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">nCharSet </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">nCharSet </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">characterSetChecks.length</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">nCharSet</span><span class="jsdoc-syntax">) {
268 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">characterSetChecks</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">nCharSet</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.fResult </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">this.isctype</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">word.charAt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">characterSetChecks</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">nCharSet</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.type</span><span class="jsdoc-syntax">)) {
269 </span><span class="jsdoc-var">characterSetChecks</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">nCharSet</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.fResult </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
270 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
275 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">nCharSets </span><span class="jsdoc-syntax">= 0;
276 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">nCharSet </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">nCharSet </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">characterSetChecks.length</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">nCharSet</span><span class="jsdoc-syntax">) {
277 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">characterSetChecks</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">nCharSet</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.fResult</span><span class="jsdoc-syntax">) {
278 ++</span><span class="jsdoc-var">nCharSets</span><span class="jsdoc-syntax">;
282 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">nCharSets </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">nb</span><span class="jsdoc-syntax">) {
283 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
285 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
287 </span><span class="jsdoc-comment">// private
288 </span><span class="jsdoc-var">ClientSideStrongPassword</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pwd</span><span class="jsdoc-syntax">) {
289 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.IsLongEnough</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pwd</span><span class="jsdoc-syntax">, 8) && </span><span class="jsdoc-var">this.SpansEnoughCharacterSets</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pwd</span><span class="jsdoc-syntax">, 3);
291 </span><span class="jsdoc-comment">// private
292 </span><span class="jsdoc-var">ClientSideMediumPassword</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pwd</span><span class="jsdoc-syntax">) {
293 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.IsLongEnough</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pwd</span><span class="jsdoc-syntax">, 7) && </span><span class="jsdoc-var">this.SpansEnoughCharacterSets</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pwd</span><span class="jsdoc-syntax">, 2);
295 </span><span class="jsdoc-comment">// private
296 </span><span class="jsdoc-var">ClientSideWeakPassword</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pwd</span><span class="jsdoc-syntax">) {
297 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.IsLongEnough</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pwd</span><span class="jsdoc-syntax">, 6) || !</span><span class="jsdoc-var">this.IsLongEnough</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pwd</span><span class="jsdoc-syntax">, 0);
298 }</span><span class="jsdoc-comment">/*,
300 // private -- see TextFiedl... - not sure why we are duping the code?
301 SafariOnKeyDown : function(event){
303 var isSelectAll = false;
304 if(this.el.dom.selectionEnd > 0){
305 isSelectAll = (this.el.dom.selectionEnd - this.el.dom.selectionStart - this.getValue().length == 0) ? true : false;
307 if(((event.getKey() == 8 || event.getKey() == 46) && this.getValue().length ==1)){ // backspace and delete key
308 event.preventDefault();
312 if(isSelectAll){ // backspace and delete key
314 event.preventDefault();
315 this.setValue(String.fromCharCode(
316 this.shiftKey ? event.getKey() : event.getKey().toLowerCase()
320 </span><span class="jsdoc-syntax">})</span></code></body></html>