  ratingMsgs = new Array(6);
  ratingMsgColors = new Array(6);
  barColors = new Array(6);

  ratingMsgs[0] = "Hasło: Za krótkie";
  ratingMsgs[1] = "Hasło: Słabe";
  ratingMsgs[2] = "Hasło: Solidne";
  ratingMsgs[3] = "Hasło: Dobre";
  ratingMsgs[4] = "Hasło: Silne!";
  ratingMsgs[5] = "Hasło: Ciężko wyrazić"; //If the password server is down

  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 CreateRatePasswdReq() {

    var passwd = document.getElementById('user_password').value;

    var min_passwd_len = 8;

    if (passwd.length < min_passwd_len)  
        {
        DrawBar(0);
        }
        
    else if (passwd.search(/[A-Z]/g)!==-1 && passwd.search(/[a-z]/g)!==-1 && passwd.search(/[0-9]/g)!==-1)  
        {
        DrawBar(4);
        }
        
    else if (passwd.search(/[a-z]/g)!==-1 && passwd.search(/[0-9]/g)!==-1)  
        {
        DrawBar(3);
        }

    else if (passwd.search(/[a-z]/g)!==-1)  
        {
        DrawBar(1);
        }
    else {ResetBar();}
  }

  
  function getElement(name) {
    if (document.all) {
      return document.all(name);
    }
    return document.getElementById(name);
  }

  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 = '<span style="color:' + ratingMsgColors[rating] +
                             '">' + ratingMsgs[rating] + '</span>';
  }
      
  //Resets the password strength bar back to its initial state without any message showing.
  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 = "";
  }

