docs/default.css
[roojs1] / docs / symbols / src / Roo_bootstrap_SecurePass.js.html
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">&quot;Please type a password, and then retype it to confirm.&quot;</span><span class="jsdoc-syntax">,
5         </span><span class="jsdoc-var">PwdShort</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Your password must be at least 6 characters long. Please type a different password.&quot;</span><span class="jsdoc-syntax">,
6         </span><span class="jsdoc-var">PwdLong</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Your password can't contain more than 16 characters. Please type a different password.&quot;</span><span class="jsdoc-syntax">,
7         </span><span class="jsdoc-var">PwdBadChar</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;The password contains characters that aren't allowed. Please type a different password.&quot;</span><span class="jsdoc-syntax">,
8         </span><span class="jsdoc-var">IDInPwd</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Your password can't include the part of your ID. Please type a different password.&quot;</span><span class="jsdoc-syntax">,
9         </span><span class="jsdoc-var">FNInPwd</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Your password can't contain your first name. Please type a different password.&quot;</span><span class="jsdoc-syntax">,
10         </span><span class="jsdoc-var">LNInPwd</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Your password can't contain your last name. Please type a different password.&quot;</span><span class="jsdoc-syntax">,
11         </span><span class="jsdoc-var">TooWeak</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Your password is Too Weak.&quot;
12     </span><span class="jsdoc-syntax">},
13     </span><span class="jsdoc-var">this.meterLabel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;Password strength:&quot;</span><span class="jsdoc-syntax">;
14     </span><span class="jsdoc-var">this.pwdStrengths </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-string">&quot;Too Weak&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Weak&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Medium&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Strong&quot;</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">);
16 }
17
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
21      * {
22      *  PwdEmpty: &quot;Please type a password, and then retype it to confirm.&quot;,
23      *  PwdShort: &quot;Your password must be at least 6 characters long. Please type a different password.&quot;,
24      *  PwdLong: &quot;Your password can't contain more than 16 characters. Please type a different password.&quot;,
25      *  PwdBadChar: &quot;The password contains characters that aren't allowed. Please type a different password.&quot;,
26      *  IDInPwd: &quot;Your password can't include the part of your ID. Please type a different password.&quot;,
27      *  FNInPwd: &quot;Your password can't contain your first name. Please type a different password.&quot;,
28      *  LNInPwd: &quot;Your password can't contain your last name. Please type a different password.&quot;
29      * })
30      */
31     // private
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:')
37      */
38     // private
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'])
43      */
44     // private
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'], ...]
48      */
49     // private
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,
60     
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">Roo.bootstrap.SecurePass.superclass.initEvents.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
65
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">) &amp;&amp; </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">);
68         }
69
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});
71     },
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">Roo.bootstrap.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">});
77
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">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'password_meter_grey'</span><span class="jsdoc-syntax">,
87                 </span><span class="jsdoc-var">style</span><span class="jsdoc-syntax">: {
88                     </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">,
89                     </span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'20px'                    
90                 </span><span class="jsdoc-syntax">},
91                 </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: {
92                     </span><span class="jsdoc-comment">//id: 'PwdMeter',
93                     </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
94                     </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'password_meter'</span><span class="jsdoc-syntax">,
95                     </span><span class="jsdoc-var">style</span><span class="jsdoc-syntax">: {
96                         </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 0,
97                         </span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'20px'                        
98                     </span><span class="jsdoc-syntax">}
99                 }
100             }
101         });
102         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hideTrigger</span><span class="jsdoc-syntax">) {
103             </span><span class="jsdoc-var">this.trigger.setDisplayed</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
104         }
105         </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">);
106     },
107     </span><span class="jsdoc-comment">// private
108     </span><span class="jsdoc-var">onDestroy</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() {
109         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.trigger</span><span class="jsdoc-syntax">) {
110             </span><span class="jsdoc-var">this.trigger.removeAllListeners</span><span class="jsdoc-syntax">();
111             </span><span class="jsdoc-var">this.trigger.remove</span><span class="jsdoc-syntax">();
112         }
113         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.wrap</span><span class="jsdoc-syntax">) {
114             </span><span class="jsdoc-var">this.wrap.remove</span><span class="jsdoc-syntax">();
115         }
116         </span><span class="jsdoc-var">Roo.bootstrap.TriggerField.superclass.onDestroy.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
117     },
118     </span><span class="jsdoc-comment">// private
119     </span><span class="jsdoc-var">checkStrength</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() {
120         </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">();
121         </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">) {
122             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
123         }
124
125         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">strength</span><span class="jsdoc-syntax">;
126         </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">)) {
127             </span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">= 3;
128         } </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">)) {
129             </span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">= 2;
130         } </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">)) {
131             </span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">= 1;
132         } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
133             </span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">= 0;
134         }
135         </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">;
136         
137         </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">;
138         </span><span class="jsdoc-comment">//if(this.pwdStrengths != null &amp;&amp; strength &gt; 0) {
139         </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">'&amp;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">];
140         </span><span class="jsdoc-comment">//} else {
141         //      pm.innerHTML = '';
142         //}
143
144         </span><span class="jsdoc-var">this._lastPwd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">pwd</span><span class="jsdoc-syntax">;
145     },
146     </span><span class="jsdoc-var">reset</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() {
147         </span><span class="jsdoc-var">Roo.bootstrap.SecurePass.superclass.reset.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
148         </span><span class="jsdoc-var">this._lastPwd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
149         </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">;
150         </span><span class="jsdoc-var">pm.style.width </span><span class="jsdoc-syntax">= 0;
151         </span><span class="jsdoc-var">pm.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
152     },
153     </span><span class="jsdoc-comment">// private
154     </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">) {
155         
156         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">Roo.bootstrap.SecurePass.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">)) {
157             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
158         }
159         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value.length </span><span class="jsdoc-syntax">== 0) {
160             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.allowBlank</span><span class="jsdoc-syntax">) {
161                 </span><span class="jsdoc-var">this.clearInvalid</span><span class="jsdoc-syntax">();
162                 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
163             }
164
165             </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">);
166             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
167         }
168         
169         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.insecure</span><span class="jsdoc-syntax">){
170             </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
171         }
172         
173         </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">)) {
174             </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">);
175             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
176         }
177         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value.length </span><span class="jsdoc-syntax">&lt; 6) {
178             </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">);
179             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
180         }
181         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value.length </span><span class="jsdoc-syntax">&gt; 16) {
182             </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">);
183             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
184         }
185         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">strength</span><span class="jsdoc-syntax">;
186         </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">)) {
187             </span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">= 3;
188         } </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">)) {
189             </span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">= 2;
190         } </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">)) {
191             </span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">= 1;
192         } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
193             </span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">= 0;
194         }
195         
196         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">strength </span><span class="jsdoc-syntax">&lt; 2) {
197             </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">);
198             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
199         }
200         </span><span class="jsdoc-var">console.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'strength: ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">strength</span><span class="jsdoc-syntax">);
201         </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">;
202                  
203         </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">;
204         
205         </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">'&amp;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">];
206         
207         </span><span class="jsdoc-comment">/*
208          for (var index = 0; index &lt; this.fieldsFilter.length; ++index) {
209          filter = document.getElementById(this.fieldsFilter[index][0]).value;
210          if (filter != '')
211          {
212          re = new RegExp(filter);
213          if (re.test(value)) {
214          this.markInvalid(eval('this.errors.'+ this.fieldsFilter[index][1]));
215          return false;
216          }
217          }
218          }
219          */
220         </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
221     },
222     </span><span class="jsdoc-comment">// private
223     </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">) {
224         </span><span class="jsdoc-var">this.type </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">;
225         </span><span class="jsdoc-var">this.fResult </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
226     },
227     </span><span class="jsdoc-comment">// private
228     </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">) {
229         </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
230             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">this.kCapitalLetter</span><span class="jsdoc-syntax">:
231                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">character </span><span class="jsdoc-syntax">&gt;= </span><span class="jsdoc-string">'A' </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">character </span><span class="jsdoc-syntax">&lt;= </span><span class="jsdoc-string">'Z'</span><span class="jsdoc-syntax">) {
232                     </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
233                 }
234                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
235             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">this.kSmallLetter</span><span class="jsdoc-syntax">:
236                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">character </span><span class="jsdoc-syntax">&gt;= </span><span class="jsdoc-string">'a' </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">character </span><span class="jsdoc-syntax">&lt;= </span><span class="jsdoc-string">'z'</span><span class="jsdoc-syntax">) {
237                     </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
238                 }
239                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
240             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">this.kDigit</span><span class="jsdoc-syntax">:
241                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">character </span><span class="jsdoc-syntax">&gt;= </span><span class="jsdoc-string">'0' </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">character </span><span class="jsdoc-syntax">&lt;= </span><span class="jsdoc-string">'9'</span><span class="jsdoc-syntax">) {
242                     </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
243                 }
244                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
245             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">this.kPunctuation</span><span class="jsdoc-syntax">:
246                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'!@#$%^&amp;*()_+-=\'&quot;;:[{]}|.&gt;,&lt;/?`~'</span><span class="jsdoc-var">.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">character</span><span class="jsdoc-syntax">) &gt;= 0) {
247                     </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
248                 }
249                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
250             </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:
251                 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
252         }
253
254     },
255     </span><span class="jsdoc-comment">// private
256     </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">) {
257         </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">&lt; </span><span class="jsdoc-var">size</span><span class="jsdoc-syntax">);
258     },
259     </span><span class="jsdoc-comment">// private
260     </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">) {
261         </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">))
262         {
263             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
264         }
265
266         </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">(
267                 </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">),
268                 </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">));
269         </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">&lt; </span><span class="jsdoc-var">word.length</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">) {
270             </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">&lt; </span><span class="jsdoc-var">characterSetChecks.length</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">nCharSet</span><span class="jsdoc-syntax">) {
271                 </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">&amp;&amp; </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">)) {
272                     </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">;
273                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
274                 }
275             }
276         }
277
278         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">nCharSets </span><span class="jsdoc-syntax">= 0;
279         </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">&lt; </span><span class="jsdoc-var">characterSetChecks.length</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">nCharSet</span><span class="jsdoc-syntax">) {
280             </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">) {
281                 ++</span><span class="jsdoc-var">nCharSets</span><span class="jsdoc-syntax">;
282             }
283         }
284
285         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">nCharSets </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">nb</span><span class="jsdoc-syntax">) {
286             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
287         }
288         </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
289     },
290     </span><span class="jsdoc-comment">// private
291     </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">) {
292         </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) &amp;&amp; </span><span class="jsdoc-var">this.SpansEnoughCharacterSets</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pwd</span><span class="jsdoc-syntax">, 3);
293     },
294     </span><span class="jsdoc-comment">// private
295     </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">) {
296         </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) &amp;&amp; </span><span class="jsdoc-var">this.SpansEnoughCharacterSets</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pwd</span><span class="jsdoc-syntax">, 2);
297     },
298     </span><span class="jsdoc-comment">// private
299     </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">) {
300         </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);
301     }</span><span class="jsdoc-comment">/*,
302      
303      // private -- see TextFiedl... - not sure why we are duping the code?
304      SafariOnKeyDown : function(event){
305      
306      var isSelectAll = false;
307      if(this.el.dom.selectionEnd &gt; 0){
308      isSelectAll = (this.el.dom.selectionEnd - this.el.dom.selectionStart - this.getValue().length == 0) ? true : false;
309      }
310      if(((event.getKey() == 8 || event.getKey() == 46) &amp;&amp; this.getValue().length ==1)){ // backspace and delete key
311      event.preventDefault();
312      this.setValue('');
313      return;
314      };
315      if(isSelectAll){ // backspace and delete key
316      
317      event.preventDefault();
318      this.setValue(String.fromCharCode(
319      this.shiftKey ? event.getKey() : event.getKey().toLowerCase()
320      ));  
321      };
322      } */
323 </span><span class="jsdoc-syntax">})</span></code></body></html>