var agt = navigator.userAgent.toLowerCase();
var is_op = (agt.indexOf("opera") != -1);
var is_ie = (agt.indexOf("msie") != -1) && document.all && !is_op;
var is_ie5 = (agt.indexOf("msie 5") != -1) && document.all && !is_op;

function PwdAgainFocus(input)
{
	//input.focus();
}
// Rate the security level of a users password as they type it
function ratepassword(input)
{

	// Set Variables
	var string = input.value;
	var lower = /[a-z]/;
	var upper = /[A-Z]/;
	var num = /[0-9]/;
	var char = /\W/
	var ReqNum = /^.{6}/;
	var ReqNum2 = /^.{16}/;
	var rating = 0;
	
	// Add Rading for each simple option
	if (ReqNum.test(string))
	{
		rating++;	
		var LowerUpper = 'False';
		if (document.getElementById('LowerUpper'))
		{
			LowerUpper = document.getElementById('LowerUpper').value;
		}
		if(LowerUpper=='True')
		{
			if (lower.test(string))
			{
				rating++;
			}
			if (upper.test(string))
			{
				rating++;
			}
		}
		else
		{
			if (lower.test(string) || upper.test(string))
			{
				rating++;
			}
		}
		if (num.test(string))
		{
		rating++;
		}
		if (char.test(string))
		{
		rating++;
		}
		if (ReqNum2.test(string))
		{
		rating++;
		}
		if(rating==0 && String.length >= 6)
		{
			rating = 1;
		}
		
		//Check for username input box and remove a point if password container username
		if (document.getElementById('user'))
		{
			var grabusername = document.getElementById('user').value;
			var username = new RegExp(grabusername);
				if (grabusername != '' && username.test(string))// && (String.length-username.length)<4)
				{
				rating--;	
				}
		}
	}
	else 
	{
		rating = 1;
	}
	var obj = ChercheElement("NiveauSecurite");
	obj.value = rating;
	DrawBar(rating);
	
	var obj2 = ChercheElement("PasswdAgain");
	if(obj2 != null)
	{
		VerifSecondPWD(obj2);	
	}	
}
function ChercheElement(name)
{
	var i = 0;
	var obj = getElement("_ctl"+ i +"_"+ name);
	while(obj==null && i<15)
	{
		i=i+1;
		obj = getElement("_ctl"+ i +"_"+ name);		
	}
	if(obj==null)
	{
		i = 0;
		var obj = getElement("ctl0"+ i +"_"+ name);
		while(obj==null && i<15)
		{
			i=i+1;
			obj = getElement("ctl0"+ i +"_"+ name);		
		}
	}
	return obj;
}

//-------------------------------------------------------------------------------------------------------------------------------------
  ratingMsgs = new Array(7);
  ratingMsgColors = new Array(7);
  barColors = new Array(7);

  ratingMsgs[0] = "&nbsp;Invalide";
  ratingMsgs[1] = "&nbsp;Trop court";
  ratingMsgs[2] = "&nbsp;Faible";
  ratingMsgs[3] = "&nbsp;Correct";
  ratingMsgs[4] = "&nbsp;Bon";
  ratingMsgs[5] = "&nbsp;Elev&eacute;(e)";
  ratingMsgs[6] = "&nbsp;Incassable"; //If the password server is down
  
  ratingMsgColors[0] = "#676767";
  ratingMsgColors[1] = "#aa0033";
  ratingMsgColors[2] = "#f5ac00";
  ratingMsgColors[3] = "#6699cc";
  ratingMsgColors[4] = "#008000";
  ratingMsgColors[5] = "#aa0033";
  ratingMsgColors[6] = "black";

  barColors[0] = "#dddddd";
  barColors[1] = "#aa0033";
  barColors[2] = "#ffcc33";
  barColors[3] = "#6699cc";
  barColors[4] = "#008000";
  barColors[5] = "#aa0033";
  barColors[6] = "black";

//-------------------------------------------------------------------------------------------------------------------------------------

  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 pb = getElement('passwdBar');
    if(pb == null)
    {
		return;
    }
    var barLength = pb.width;

    if (rating >= 0 && rating <= 7) {  //We successfully got a rating
      posbar.style.width = barLength / 6 * rating + "px";
      negbar.style.width = barLength / 6 * (6 - rating) + "px";
    } else {
      posbar.style.width = "0px";
      negbar.style.width = barLength + "px";
      rating = 8; // Not rated Rating
    }    
    posbar.style.background = barColors[rating];
    passwdRating.innerHTML = "<font color='" + ratingMsgColors[rating] +"'>" + ratingMsgs[rating] + "</font>";
  }
  	
  //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 = "";    
  }


/* Checks Browser Compatibility */
  var agt = navigator.userAgent.toLowerCase();
  var is_op = (agt.indexOf("opera") != -1);
  var is_ie = (agt.indexOf("msie") != -1) && document.all && !is_op;
  var is_mac = (agt.indexOf("mac") != -1);
  var is_gk = (agt.indexOf("gecko") != -1);
  var is_sf = (agt.indexOf("safari") != -1);

  function gff(str, pfx) {
    var i = str.indexOf(pfx);
    if (i != -1) {
      var v = parseFloat(str.substring(i + pfx.length));
      if (!isNaN(v)) {
      return v;
      }
    }
    return null;
  }
  function Compatible() {
    if (is_ie && !is_op && !is_mac) {
      var v = gff(agt, "msie ");
      if (v != null) {
        return (v >= 6.0);
      }
    }

    if (is_gk && !is_sf) {
      var v = gff(agt, "rv:");
      if (v != null) {
         return (v >= 1.4);
      } else {
         v = gff(agt, "galeon/");
         if (v != null) {
           return (v >= 1.3);
         }
      }
    }

    if (is_sf) {
      var v = gff(agt, "applewebkit/");
      if (v != null) {
        return (v >= 124);
      }
    }

    return false;
  }

 
DrawBar(0);
if (Compatible()) 
{
	var pbd = getElement("passwdBarDiv");
	if(pbd != null)
	{
    //document.getElementById("passwdBarDiv").style.display = "block";
		pbd.style.display = "block";
    }
}
  
function VerifSecondPWD(input)
{
	var obj = getElement("_ctl2_Passwd");
	if(obj == null || input == null)
	{
		return;
	}
	var pwd2 = input.value;
	var pwd1 = obj.value;
	var res = "none";	
	if(pwd2 == pwd1)
	{
		if(pwd1.length >=6)
		{
			res = "block";
		}
	}
	getElement("PWD_OK").style.display = res;	
}
