function getPasswordStrength(pw){var pwlength=(pw.length);if(pwlength>5)pwlength=5;var numnumeric=pw.replace(/[0-9]/g,"");var numeric=(pw.length-numnumeric.length);if(numeric>3)numeric=3;var symbols=pw.replace(/\W/g,"");var numsymbols=(pw.length-symbols.length);if(numsymbols>3)numsymbols=3;var numupper=pw.replace(/[A-Z]/g,"");var upper=(pw.length-numupper.length);if(upper>3)upper=3;var pwstrength=((pwlength*10)-20)+(numeric*10)+(numsymbols*15)+(upper*10);if(pwstrength<0){pwstrength=0}if(pwstrength>100){pwstrength=100}return pwstrength}var tip_box_has_focus=0;var attached_form;var pwstrapp;var attached_pwbox={};var password_str_handle_validate=1;var pwminstrength=0;var pwminstrength_fail_txt='Sorry, the password you selected cannot be used because it is too weak and would be too easy to crack.  Please select a password with strength rating of % or higher.';var pwminstrength_tip='You can increase the strength of your password by adding UPPER CASE, numbers, and symbol characters.  You should avoid using words that are in the dictionary as <a href="http://en.wikipedia.org/wiki/Password_cracking" target="_blank">crackers</a> usually start with these first.  Currently the system requires you use a password with a strength rating of % or greater.';function hide_password_tip_panel_if_no_box_focus(){if(!tip_box_has_focus){hide_password_tip_panel();tip_box_has_focus=0}}function ensurePwStrength(e,pwbox){var bpb=""+pwbox.value;var pwstrength=getPasswordStrength(bpb);if(pwstrength<pwminstrength){YAHOO.util.Event.stopEvent(e);alert(pwminstrength_fail_txt.replace('%',pwminstrength))}}function updatePasswordStrength_new(pwbox,pwdiv,divorderlist,noshowpanel){var bpb=""+pwbox.value;if(attached_pwbox[pwbox.id]!=1){YAHOO.util.Event.addListener(pwbox,"blur",function(e){setTimeout(hide_password_tip_panel_if_no_box_focus,250)},this,true);attached_pwbox[pwbox.id]=1}if(pwstrapp&&pwminstrengthapps[pwstrapp]){pwminstrength=pwminstrengthapps[pwstrapp]}if(!attached_form){init_passtip_dialog();var formEl=pwbox.form;if(formEl&&formEl.action&&formEl.action.length>3){if(self.register_validator){register_validator('func',function(Els){var pwbox=Els[0];var bpb=""+pwbox.value;var pwstrength=getPasswordStrength(bpb);if(pwstrength<pwminstrength){return false}else{return true}},[pwbox],pwminstrength_fail_txt.replace('%',pwminstrength))}else{YAHOO.util.Event.addListener(formEl,"submit",function(e){ensurePwStrength(e,pwbox)},this,true)}}var tipBoxEl=document.getElementById('password_tip_panel');if(tipBoxEl){YAHOO.util.Event.addListener(tipBoxEl,"blur",function(e){tip_box_has_focus=0;hide_password_tip_panel()},this,true);YAHOO.util.Event.addListener(tipBoxEl,"focus",function(e){tip_box_has_focus=1},this,true);var tipBoxAEls=tipBoxEl.getElementsByTagName('a');for(var i=0;i<tipBoxAEls.length;i++){YAHOO.util.Event.addListener(tipBoxAEls[i],"blur",function(e){tip_box_has_focus=0;hide_password_tip_panel()},this,true);YAHOO.util.Event.addListener(tipBoxAEls[i],"focus",function(e){tip_box_has_focus=1},this,true)}}attached_form=1}var pwstrength=getPasswordStrength(bpb);var bars=(parseInt(pwstrength/10)*10);var pwdivEl=document.getElementById(pwdiv);if(!pwdivEl){return;alert('Password Strength Display Element Missing')}var divlist=pwdivEl.getElementsByTagName('div');var maindiv=divlist[0].getElementsByTagName('div');var pw_test_maxstrength=pwminstrength>0?pwminstrength:100;var pw_test_strength=pwstrength<pw_test_maxstrength?pwstrength:pw_test_maxstrength;var pwcolor=parseInt((pw_test_strength/pw_test_maxstrength)*3);maindiv[0].className='pass_bar_base pass_bar_'+bars+' pass_bar_color_'+(pwcolor?pwcolor:1);var txtdivnum=1;if(divorderlist&&divorderlist.text>-1){txtdivnum=divorderlist.text}var txtdiv=divlist[txtdivnum];if(txtdiv&&self.pass_strength_phrases){if(pwminstrength>50&&pwstrength>=50&&pwstrength<pwminstrength){bars=40}txtdiv.innerHTML=pass_strength_phrases[bars]+' ('+pwstrength+'/100)'}var ratingdivnum;if(divorderlist&&divorderlist.rating>-1){ratingdivnum=divorderlist.rating}var ratingdiv=divlist[ratingdivnum];if(ratingdiv&&self.pass_strength_phrases){ratingdiv.innerHTML='Strength: ('+pwstrength+')'}if(pwstrength<pwminstrength){if(!noshowpanel){show_password_tip_panel()}if(password_str_handle_validate){YAHOO.util.Dom.addClass(pwbox,'formverifyfailed')}}else{hide_password_tip_panel();if(password_str_handle_validate){YAHOO.util.Dom.removeClass(pwbox,'formverifyfailed')}}}function updatePasswordStrength(pwbox,pwdiv,divorderlist){var bpb=""+pwbox.value;var pwstrength=getPasswordStrength(bpb);var bars=(parseInt(pwstrength/10)*10);var pwdivEl=document.getElementById(pwdiv);if(!pwdivEl){return;alert('Password Strength Display Element Missing')}var divlist=pwdivEl.getElementsByTagName('div');var imgdivnum=0;var txtdivnum=1;if(divorderlist&&divorderlist.text>-1){txtdivnum=divorderlist.text}if(divorderlist&&divorderlist.image>-1){imgdivnum=divorderlist.image}var imgdiv=divlist[imgdivnum];imgdiv.id='ui-passbar-'+bars;var txtdiv=divlist[txtdivnum];if(txtdiv&&self.pass_strength_phrases){txtdiv.innerHTML=pass_strength_phrases[bars]}}var password_tip_panel_shown=0;var password_tip_panel;var password_tip_panel_initted=0;var password_gen_panel;var password_gen_panel_initted=0;var password_use_panel;var password_use_panel_initted=0;var password_gen_pwbox;var password_gen_update_func;var did_password_gen=0;var chrsets={'uppercase':[{'start':65,'end':90}],'lowercase':[{'start':97,'end':122}],'numbers':[{'start':48,'end':57}],'symbols':[{'start':33,'end':47},{'start':58,'end':64},{'start':123,'end':126}]};var defaultallowedtxt=['lowercase','uppercase','numbers','symbols'];function get_chr_string(chrset){var txt='';if(!chrsets[chrset]||!chrsets[chrset].length){return''}for(var ct=0;ct<chrsets[chrset].length;ct++){for(var i=chrsets[chrset][ct]['start'];i<=chrsets[chrset][ct]['end'];i++){txt+=String.fromCharCode(i)}}return txt}function getrand(max){return Math.floor(Math.random()*max)}function generate_password(plength,allowedtxt,forbiddentxt){var passtxt='';if(!allowedtxt.length){allowedtxt=defaultallowedtxt}for(var i=0;i<allowedtxt.length;i++){passtxt+=get_chr_string(allowedtxt[i])}var ft=forbiddentxt.split('');for(var i=0;i<ft.length;i++){passtxt=passtxt.replace(ft[i],'')}if(passtxt.length==0){passtxt=' '}var newpass='';while(newpass.length<plength){newpass+=passtxt.charAt(getrand(passtxt.length))}return newpass}function open_usepass_dialog(newpass){init_usepass_dialog();document.getElementById('password_use_newpass').innerHTML=html_encode_str(newpass);password_use_panel.show()}function open_passgen_dialog(pwupdatebox,pwbox){init_passgen_dialog();password_gen_pwbox=pwbox;password_gen_update_func=pwupdatebox;password_gen_panel.show();if(!did_password_gen){dialogGeneratePass()}}function handlePassCancel(){password_gen_panel.hide()}function handlePassSubmit(){password_gen_panel.hide();var dialogPasswordEl=document.getElementById('dialogPassword');var mainPasswordEl=document.getElementById(password_gen_pwbox);mainPasswordEl.value=dialogPasswordEl.value;var ElList=[mainPasswordEl];if(mainPasswordEl.type=="password"){var next_input=0;var allinputs=document.getElementsByTagName('input');for(var i=0;i<allinputs.length;i++){if(next_input){if(allinputs[i].type=="password"){ElList.push(allinputs[i]);allinputs[i].value=dialogPasswordEl.value;break}else if(allinputs[i].type=="text"){break}}else if(allinputs[i].id==password_gen_pwbox){next_input=1}}}password_gen_update_func();if(self.do_validate){for(var i=0;i<ElList.length;i++){if(ElList[i].form&&ElList[i].form.id){do_validate(ElList[i].form.id,0,0,ElList[i].id)}}}open_usepass_dialog(dialogPasswordEl.value)}function init_passtip_dialog(){if(password_tip_panel_initted){return}password_tip_panel_initted=1;password_tip_panel=new YAHOO.widget.Panel('password_tip_panel',{width:'300px',fixedcenter:false,constraintoviewport:false,close:true,draggable:true,modal:false,visible:false});password_tip_panel.setBody(pwminstrength_tip.replace('%',pwminstrength));var tdiv=document.getElementById('sdiv');if(!tdiv){tdiv=document.body}password_tip_panel.render(tdiv);password_tip_panel.hide();document.getElementById('password_tip_panel').style.display=''}function closeUsePass(){password_use_panel.hide()}function init_usepass_dialog(){if(password_use_panel_initted){return}password_use_panel_initted=1;password_use_panel=new YAHOO.widget.Dialog('password_use_panel',{width:'400px',fixedcenter:true,constraintoviewport:true,close:true,draggable:false,modal:false,buttons:[{text:"Close",handler:closeUsePass,isDefault:true}],visible:false});var tdiv=document.getElementById('sdiv');if(!tdiv){tdiv=document.body}password_use_panel.render(tdiv);password_use_panel.hide();document.getElementById('password_use_panel').style.display=''}function init_passgen_dialog(){if(password_gen_panel_initted){return}password_gen_panel_initted=1;password_gen_panel=new YAHOO.widget.Dialog('password_gen_panel',{width:'400px',fixedcenter:true,constraintoviewport:true,close:true,draggable:true,modal:false,buttons:[{text:"Use Password",handler:handlePassSubmit,isDefault:true},{text:"Cancel",handler:handlePassCancel}],visible:false});var tdiv=document.getElementById('sdiv');if(!tdiv){tdiv=document.body}password_gen_panel.render(tdiv);password_gen_panel.hide();document.getElementById('password_gen_panel').style.display=''}function handle_hide_passtip(){if(password_tip_panel_shown){password_tip_panel.hide();password_tip_panel_shown=0}}function hide_password_tip_panel(){handle_hide_passtip()}function handle_hide_passgen(){}function show_password_tip_panel(){var pwEl=document.getElementById('password');var pwRegion=YAHOO.util.Region.getRegion(pwEl);var passwdGenEl=document.getElementById('passwdGen');if(passwdGenEl){var passwdGenRegion=YAHOO.util.Region.getRegion(passwdGenEl);if(passwdGenRegion.bottom>pwRegion.bottom){pwRegion.bottom=passwdGenRegion.bottom}}password_tip_panel.moveTo(pwRegion.right+5,pwRegion.bottom+10);if(!password_tip_panel_shown){password_tip_panel.show();password_tip_panel_shown=1}}function dialogGeneratePass(){did_password_gen=1;var dialogPasswordEl=document.getElementById('dialogPassword');var pwLengthEl=document.getElementById('pwlength');var pwLength=parseInt(pwLengthEl.value);if(!pwLength||pwLength<8){pwLength=8}dialogPasswordEl.setAttribute('size',pwLength);for(var i=0;i<10;i++){dialogPasswordEl.value=generate_password(pwLength,[document.getElementById('uppercase').checked?'uppercase':'',document.getElementById('lowercase').checked?'lowercase':'',document.getElementById('numbers').checked?'numbers':'',document.getElementById('symbols').checked?'symbols':''],'\'oO0"');var bpb=dialogPasswordEl.value+'';var pwstrength=getPasswordStrength(bpb);if(pwstrength>=100){break}}updatePasswordStrength_new(dialogPasswordEl,'Dialog_passwdRating',{'text':2,'rating':3},1);password_gen_panel.show()}function html_encode_str(mystr){return mystr.replace(/\&/g,"&amp;").replace(/\</g,"&lt;").replace(/\>/g,"&gt;").replace(/\"/g,"&quot;");}