/**********************************************************************************/ function replace(s, t, u) { // Replace a token in a string // s string to be processed // t token to be found and removed // u token to be inserted // returns new String i = s.indexOf(t); r = ""; if (i == -1) return s; r += s.substring(0,i) + u; if ( i + t.length < s.length) r += replace(s.substring(i + t.length, s.length), t, u); return r; } /**********************************************************************************/ //--------------------------------------------------------------------------- function handleLogin(minlength, maxlength, casesensitive, mixedcase, nonalpha) { var pwlen = document.forms["changepass"].elements["NewPassword1"].value.length var ok = true var oldpw = document.forms["changepass"].elements["OldPassword"].value var newpw1 = document.forms["changepass"].elements["NewPassword1"].value var newpw2 = document.forms["changepass"].elements["NewPassword2"].value var lowercase = "abcdefghijklmnopqrstuvwxyz" var uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" var letters = lowercase + uppercase var hasnonalpha = false var haslower = false var hasupper = false var i var thischar //===== If Not Case Sensitive then force all to lower case ===== if (casesensitive==0){ oldpw = oldpw.toLowerCase() newpw1 = newpw1.toLowerCase() newpw2 = newpw2.toLowerCase() } // ===== Check if NewPassword1 = NewPassword2 ===== if ( newpw1 != newpw2){ alert ('New Passwords do not match') ok = false } // ====== Check Min Length ===== if (pwlen < minlength) { alert ('Password Length must be:' + minlength) ok = false } // ====== Check Max Length ===== if (pwlen > maxlength) { alert ('Password Length must be:' + maxlength) ok = false } // ====== Check For Non-Alpha Character ===== if (nonalpha == 1){ for (var i=0; i < newpw1.length; i++) { thischar = newpw1.charAt(i); if (letters.indexOf(thischar) == -1){ //alert("non-alpha character: " + thischar); hasnonalpha = true; break; } } if (hasnonalpha == false){ alert('Password must have a non-alpha character') ok = false } } // ====== Check For Mixed Case Only if CaseSensitive = 1 ===== if (casesensitive==1){ if (mixedcase == 1){ // ----- Check for LOWER case ----- for (var i=0; i < newpw1.length; i++) { thischar = newpw1.charAt(i); if (lowercase.indexOf(thischar) != -1){ //alert("lowercase character: " + thischar); haslower = true; break; } } // ----- Check for UPPER case ----- for (var i=0; i < newpw1.length; i++) { thischar = newpw1.charAt(i); if (uppercase.indexOf(thischar) != -1){ //alert("uppercase character: " + thischar); hasupper = true; break; } } if ((haslower == false) || (hasupper == false)){ alert('Password must be mixed case') ok = false } } } // ===== Only Submit the Form if Everything Checked Out ===== if (ok == true){ document.forms["changepass"].elements["OldPassword"].value = SHA1(oldpw) document.forms["changepass"].elements["NewPassword1"].value = SHA1(newpw1) document.forms["changepass"].elements["NewPassword2"].value = SHA1(newpw2) document.forms["changepass"].submit() } return ok }