function validPassword(passwordObj)
{
 var pdStr = passwordObj.value;	
  if(pdStr=="")
  	return true;
  else{
  		var mediumRegex = new RegExp("^(?=.{6,})(((?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]))).*$", "g");
 
        if(mediumRegex.test(pdStr)){
          return true;
           //alert('Valid password.');
        } else {
            alert('This password is invalid.  Please enter a valid password:\n6 character minimum (at least one lower case letter, \none upper case letter and one numeric digit required).');
            passwordObj.value="";
            passwordObj.focus();
            return true;
        }
      }
}
function passwordStrength(password)
{
	var desc = new Array();
	desc[0] = "Type at least four (4) characters using letters and/or numbers.";
	desc[1] = "<b>Weak</b>";
	//desc[2] = "Better";
	desc[2] = "<b>Medium</b>";
	desc[3] = "<b>Strong</b>";
	desc[4] = "<b>Strongest</b>";

	var msg=new Array();
	msg[0]="";
	msg[1]="(add uppercase letter, lowercase letter, special character)";
	msg[2]="(add lowercase letter, numeric digit, special character)";
	msg[3]="(add uppercase letter, numeric digit, special character)";
	msg[4]="(add uppercase letter, special character)";
	msg[5]="(add lowercase letter, special character)";
	msg[6]="(add numeric digit, special character)";
	msg[7]="(add numeric digit, uppercase letter, lowercase letter)";
	msg[8]="(add numeric digit, lowercase letter)";
	msg[9]="(add numeric digit, uppercase letter)";
	msg[10]="(add lowercase letter, uppercase letter)";
	msg[11]="(add uppercase letter)";
	msg[12]="(add lowercase letter)";
	msg[13]="(add special character)";
	msg[14]="(add numeric digit)";
	
	var score   = 0;
    var msgrun=0;
	//if password bigger than 6 give 1 point
	if(password.length==0)
	{ 	  
	  document.getElementById('passwordDescription').style.display="none";
	  document.getElementById('passwordStrength').style.display="none";
	  document.getElementById('up').style.display="none";
	  document.signupform.verify_password.value='';
	  document.signupform.verify_password.disabled = true;
	}
	else if(password.length>0 && password.length<4)
	{
	  document.getElementById('passwordDescription').style.display="";
	  document.getElementById('passwordStrength').style.display="none";	 
	  document.getElementById('up').innerHTML=''; 
	  document.getElementById('up').style.display="none";
	  document.signupform.verify_password.value='';
	  document.signupform.verify_password.disabled = true;
	}
	else
	{
		document.getElementById('passwordDescription').style.display="";
	    document.getElementById('passwordStrength').style.display="";	     
	    document.getElementById('up').style.display="";
	    document.signupform.verify_password.disabled = false;
	}
	if (password.length >= 4)
	{
		 //score++;
//		 if(( password.match(/[a-z]/) ) && ( password.match(/[A-Z]/) || password.match(/\d+/))) score++;<br>
//		 if(password.match(/\d+/) && password.match(/[A-Z]/)) score++;<br>
//		 if ( password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/) )	score++;<br>

		if(password.match(/[a-z]/) || password.match(/[A-Z]/) || password.match(/\d+/) || password.match(/[\W_]/)) score=1;
		
		if((password.match(/[a-z]/) && password.match(/[A-Z]/)) || (password.match(/[a-z]/) && password.match(/\d+/)) || (password.match(/[a-z]/) && password.match(/[\W_]/)) || (password.match(/[A-Z]/) && password.match(/\d+/)) || (password.match(/[A-Z]/) && password.match(/[\W_]/)) || (password.match(/\d+/) && password.match(/[\W_]/))) score=2;
		
		if((password.match(/[a-z]/) && password.match(/[A-Z]/) && password.match(/\d+/)) || (password.match(/[a-z]/) && password.match(/[A-Z]/) && password.match(/[\W_]/)) || (password.match(/[\W_]/) && password.match(/\d+/) && password.match(/[a-z]/)) || (password.match(/[\W_]/) && password.match(/\d+/) && password.match(/[A-Z]/))) score=3;
		
		if(password.match(/[a-z]/) && password.match(/[A-Z]/) && password.match(/\d+/) && password.match(/[\W_]/)) score=4;
		 msgrun=pwmsg(password);
		 //alert(msgrun);
		 
	}
	//if password has both lower and uppercase characters give 1 point	
	/*if ( password.length >= 4 &&  )
	{
		 score++;
	}
	//if password has at least one number give 1 point
	if ( password.length >= 4 && )
	{
		 score++;
	}*/
	//if password has at least one special caracther give 1 point
	//if ( password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/) )	score++;

	//if password bigger than 12 give another 1 point
	//if (password.length > 12) score++;

	 document.getElementById("passwordDescription").innerHTML = desc[score]+" "+msg[msgrun];
	 document.getElementById("passwordStrength").className = "strength" + score;
}

function pwmsg(pw)
{
	if(pw.match(/^\d+$/))
	return 1;
	else if(pw.match(/^[A-Z]+$/))
	return 2;
	else if(pw.match(/^[a-z]+$/))
	return 3;	
	else if(pw.match(/^[a-z0-9]+$/))
	return 4;
	else if(pw.match(/^[A-Z0-9]+$/))
	return 5;
	else if(pw.match(/^[a-zA-Z]+$/))
	return 6;
	else if(pw.match(/^[\W_]+$/))
	return 7;
	else if(pw.match(/^[A-Z\W_]+$/))
	return 8;
	else if(pw.match(/^[a-z\W_]+$/))
	return 9;
	else if(pw.match(/^[\d+\W_]+$/))
	return 10;
	else if(pw.match(/^[a-z\d+\W_]+$/))
	return 11;
	else if(pw.match(/^[A-Z\d+\W_]+$/))
	return 12;
	else if(pw.match(/^[a-zA-Z\d+]+$/))
	return 13;
	else if(pw.match(/^[a-zA-Z\W_]+$/))
	return 14;
	else
	return 0;
}

function updatePass()
{
	//alert("asdf");
	var password=document.signupform.Password.value;
	var verify_password=document.signupform.verify_password.value;
	var plen=password.length;
	var vlen=verify_password.length;
	if(verify_password==password.substr(0,vlen) && plen!=vlen)
	{
		if(vlen==0)
		{
			document.getElementById('up').innerHTML="";
		}
		else
		{
			document.getElementById('up').innerHTML="Entry matches so far. Continue typing to verify entire password...";
		}
	}
	else
	{
		if(plen==0 && vlen==0)
		document.getElementById('up').innerHTML="";
		else if(password==verify_password && plen!=0 && vlen!=0)
		document.getElementById('up').innerHTML="<font color='GREEN'>Congratulations!  You have verified your password.</font>";	
		else
		document.getElementById('up').innerHTML="<font color='RED'>Your entry no longer matches your original password.</font>";
	}
}

function passwordStrength1(password)
{
	var desc = new Array();
	desc[0] = "Type at least four (4) characters using letters and/or numbers.";
	desc[1] = "<b>Weak</b>";
	//desc[2] = "Better";
	desc[2] = "<b>Medium</b>";
	desc[3] = "<b>Strong</b>";
	desc[4] = "<b>Strongest</b>";

	var msg=new Array();
	msg[0]="";
	msg[1]="(add uppercase letter, lowercase letter, special character)";
	msg[2]="(add lowercase letter, numeric digit, special character)";
	msg[3]="(add uppercase letter, numeric digit, special character)";
	msg[4]="(add uppercase letter, special character)";
	msg[5]="(add lowercase letter, special character)";
	msg[6]="(add numeric digit, special character)";
	msg[7]="(add numeric digit, uppercase letter, lowercase letter)";
	msg[8]="(add numeric digit, lowercase letter)";
	msg[9]="(add numeric digit, uppercase letter)";
	msg[10]="(add lowercase letter, uppercase letter)";
	msg[11]="(add uppercase letter)";
	msg[12]="(add lowercase letter)";
	msg[13]="(add special character)";
	msg[14]="(add numeric digit)";
	
	var score   = 0;
    var msgrun=0;
	//if password bigger than 6 give 1 point
	if(password.length==0)
	{ 	  
	  document.getElementById('passwordDescription').style.display="none";
	  document.getElementById('passwordStrength').style.display="none";
	  document.getElementById('up').style.display="none";
	  document.changePassword.verify_password.value='';
	  document.changePassword.verify_password.disabled = true;
	}
	else if(password.length>0 && password.length<4)
	{
	  document.getElementById('passwordDescription').style.display="";
	  document.getElementById('passwordStrength').style.display="none";	 
	  document.getElementById('up').innerHTML=''; 
	  document.getElementById('up').style.display="none";
	  document.changePassword.verify_password.value='';
	  document.changePassword.verify_password.disabled = true;
	}
	else
	{
		document.getElementById('passwordDescription').style.display="";
	    document.getElementById('passwordStrength').style.display="";	     
	    document.getElementById('up').style.display="";
	    document.changePassword.verify_password.disabled = false;
	}
	if (password.length >= 4)
	{
		 //score++;
//		 if(( password.match(/[a-z]/) ) && ( password.match(/[A-Z]/) || password.match(/\d+/))) score++;<br>
//		 if(password.match(/\d+/) && password.match(/[A-Z]/)) score++;<br>
//		 if ( password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/) )	score++;<br>

		if(password.match(/[a-z]/) || password.match(/[A-Z]/) || password.match(/\d+/) || password.match(/[\W_]/)) score=1;
		
		if((password.match(/[a-z]/) && password.match(/[A-Z]/)) || (password.match(/[a-z]/) && password.match(/\d+/)) || (password.match(/[a-z]/) && password.match(/[\W_]/)) || (password.match(/[A-Z]/) && password.match(/\d+/)) || (password.match(/[A-Z]/) && password.match(/[\W_]/)) || (password.match(/\d+/) && password.match(/[\W_]/))) score=2;
		
		if((password.match(/[a-z]/) && password.match(/[A-Z]/) && password.match(/\d+/)) || (password.match(/[a-z]/) && password.match(/[A-Z]/) && password.match(/[\W_]/)) || (password.match(/[\W_]/) && password.match(/\d+/) && password.match(/[a-z]/)) || (password.match(/[\W_]/) && password.match(/\d+/) && password.match(/[A-Z]/))) score=3;
		
		if(password.match(/[a-z]/) && password.match(/[A-Z]/) && password.match(/\d+/) && password.match(/[\W_]/)) score=4;
		 msgrun=pwmsg(password);
		 //alert(msgrun);
		 
	}
	//if password has both lower and uppercase characters give 1 point	
	/*if ( password.length >= 4 &&  )
	{
		 score++;
	}
	//if password has at least one number give 1 point
	if ( password.length >= 4 && )
	{
		 score++;
	}*/
	//if password has at least one special caracther give 1 point
	//if ( password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/) )	score++;

	//if password bigger than 12 give another 1 point
	//if (password.length > 12) score++;

	 document.getElementById("passwordDescription").innerHTML = desc[score]+" "+msg[msgrun];
	 document.getElementById("passwordStrength").className = "strength" + score;
}
function updatePass1()
{
	//alert("asdf");
	var password=document.changePassword.password1.value;
	var verify_password=document.changePassword.password2.value;
	var plen=password.length;
	var vlen=verify_password.length;
	if(verify_password==password.substr(0,vlen) && plen!=vlen)
	{
		if(vlen==0)
		{
			document.getElementById('up').innerHTML="";
		}
		else
		{
			document.getElementById('up').innerHTML="Entry matches so far. Continue typing to verify entire password...";
		}
	}
	else
	{
		if(plen==0 && vlen==0)
		document.getElementById('up').innerHTML="";
		else if(password==verify_password && plen!=0 && vlen!=0)
		document.getElementById('up').innerHTML="<font color='GREEN'>Congratulations!  You have verified your password.</font>";	
		else
		document.getElementById('up').innerHTML="<font color='RED'>Your entry no longer matches your original password.</font>";
	}
}

function varifyPassword(conPasswordObj, passwordObj)
{
  var vpdStr = conPasswordObj.value;	
  var pdStr = passwordObj.value
  if(vpdStr=="")
  {
  	passwordObj.focus();
  	return true;
  }
  else{
	  	if(pdStr=="")
		{
			conPasswordObj.value = "";
			alert('Please create your password in the preceding field,\nand then re-type it in this field to verify it is the one you want.');
	        passwordObj.focus();
		  	return false;
		}
	  	var mediumRegex = new RegExp("^(?=.{6,})(((?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]))).*$", "g");
 
        if(mediumRegex.test(vpdStr)){
	        if(vpdStr!=pdStr)
	        {
	        	 alert('Your password entries do not match!\nPlease re-type your password to verify it is the one you want.');
	             conPasswordObj.value="";
	        	 conPasswordObj.focus();
	             return false;
	        }
	        else{
	        	return true;
	        }
        } else {
            alert('Your password entries do not match!\nPlease re-type your password to verify it is the one you want.');
            conPasswordObj.value="";
            conPasswordObj.focus();
            return false;
        }
  }	
}
