ratingMsgs = new Array(6);
ratingMsgColors = new Array(6);
barColors = new Array(6);

ratingMsgs[0] = "very weak";
ratingMsgs[1] = "weak";
ratingMsgs[2] = "medium";
ratingMsgs[3] = "strong";
ratingMsgs[4] = "strongest";
ratingMsgs[5] = "not set";

ratingMsgColors[0] = "#676767";
ratingMsgColors[1] = "#aa0033";
ratingMsgColors[2] = "#f5ac00";
ratingMsgColors[3] = "#6699cc";
ratingMsgColors[4] = "#008000";
ratingMsgColors[5] = "#676767";

barColors[0] = "#dddddd";
barColors[1] = "#aa0033";
barColors[2] = "#ffcc33";
barColors[3] = "#6699cc";
barColors[4] = "#008000";
barColors[5] = "#676767";

function getElement(name) {
    if (document.all) {
      return document.all(name);
    }
    return document.getElementById(name);
}

function ResetBar() {
    var posbar = getElement('posBar');
    var negbar = getElement('negBar');
    var passwdRating = getElement('passwdRating');
    var barLength = getElement('passwdBar').width;

    posbar.style.width = "0px";
    negbar.style.width = barLength + "px";
    passwdRating.innerHTML = "password strength meter";
}

function DrawBar(rating) {
    var posbar = getElement('posBar');
    var negbar = getElement('negBar');
    var passwdRating = getElement('passwdRating');
    var barLength = getElement('passwdBar').width;

    if (rating >= 0 && rating <= 4) {  //We successfully got a rating
        posbar.style.width = barLength / 4 * rating + "px";
        negbar.style.width = barLength / 4 * (4 - rating) + "px";
    } else {
        posbar.style.width = "0px";
        negbar.style.width = barLength + "px";
        rating = 5; // Not rated Rating
    }
    posbar.style.background = barColors[rating];
    passwdRating.innerHTML = "<font color='" + ratingMsgColors[rating] +
                             "'>" + ratingMsgs[rating] + "</font>";
}

function CheckPassword(passwd) {
    var min_passwd_len = 1;
    if (passwd.length < min_passwd_len)  {
      if (passwd.length > 0) {
        DrawBar(0);
      } else {
        ResetBar();
      }
    } else {
      //We need to escape the password now so it won't mess up with length test
      passwd = escape(passwd);
      rating = parseInt(testPassword(passwd));
      DrawBar(rating);
    }
}