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

ratingMsgs[0] = "Too short";
ratingMsgs[1] = "Weak";
ratingMsgs[2] = "Fair";
ratingMsgs[3] = "Good";
ratingMsgs[4] = "Strong";
ratingMsgs[5] = "Not rated"; 

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";

$(document).ready(function(){
  $('#password').keyup(function(){
    var passwd = getElement('password').value;
    var email = getEmailUser(getElement('email').value);
    var name = getElement('name').value;
    var min_passwd_len = 6;
    if (passwd.length < min_passwd_len) {
      if (passwd.length > 0) {
        DrawBar(0);
      } else {
        resetBar();
      }
    } else {
      $.post('/users/checkpassword', {passwd:passwd, email:email, name:name}, function(data){
        rating = parseInt(data);
        DrawBar(rating);
      })
    };   
    })}
  );

function getElement(name) {
  return document.getElementById(name);
}
function getEmailUser(name) {
  var names = name.split('@');
  return names[0];
}
function RatePasswdXmlHttpHandler() {
  if (myxmlhttp.readyState != 4) {
    return;
  }
  rating = parseInt(myxmlhttp.responseText);
  DrawBar(rating);
}
function DrawBar(rating) {
  var passwdRating = getElement('passwdRating');
  var barLength = parseInt($('#passwdBar').css('width').slice(0, -2));
  if (rating >= 0 && rating <= 4) {  
      $('#posBar').css('width', barLength / 4 * rating + 'px');
      $('#negBar').css('width', barLength / 4 * (4 - rating) + 'px');
    } else {
      $('#posBar').css('width', 0);
      $('#negBar').css('width', 0);
      rating = 5; 
    }
    $('#posBar').css('background', barColors[rating]);
    passwdRating.innerHTML = "<font color='" + ratingMsgColors[rating] +
                             "'>" + ratingMsgs[rating] + "</font>";
}
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 = "";
}
