function fnc_passwordStrength(password)
{
	var desc = new Array();
	desc[0] = "Very Weak";
	desc[1] = "Weak";
	desc[2] = "Better";
	desc[3] = "Medium";
	desc[4] = "Strong";
	desc[5] = "Strongest";

	var score   = 0;

	//if password bigger than 6 give 1 point
	if (password.length > 6) score++;

	//if password has both lower and uppercase characters give 1 point
	if ( ( password.match(/[a-z]/) ) && ( password.match(/[A-Z]/) ) ) score++;

	//if password has at least one number give 1 point
	if (password.match(/\d+/)) 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++;

	if(document.getElementById('passwordDescription'))
	{
	 document.getElementById('passwordDescription').innerHTML = desc[score];
	}
	if(document.getElementById('passwordStrengthClass'))
	{
	 document.getElementById('passwordStrengthClass').className = "strength" + score;
	}
}
function validatePassword()
{
	formObj = document.forms[0];
	
	if(formObj.new_password)
	{
		
		Obj = formObj.new_password;
		var password = formObj.new_password.value;
	}
	else if(formObj.Password_c)
	{
		ID = formObj.PrimaryID;
		Obj = formObj.Password_c;
		Obj1 = formObj.OldPassword;
		if(Obj1.value!='')
		{
			if(ID.value!=='' && Obj.value!=Obj1.value)
			{
				var password = formObj.Password_c.value;
			}
			else
			{
				var password = '';
			}
		}
		else
		{
			var password = formObj.Password_c.value;
		}
	}
	else if(formObj.password1)
	{// this is for my account
		
		Obj = formObj.password1;
		Obj1 = formObj.OldPassword;
		if(Obj1.value!='')
		{
			if(Obj.value!=Obj1.value)
			{
				var password = formObj.password1.value;
			}
			else
			{
				var password = '';
			}
		}
		else
		{
			var password = formObj.password1.value;
		}
	}
	//alert(password);
	if(password!='')
	{
		var passed = validatePasswordConfig(password, {
		length:   [6, Infinity],
		lower:    1,
		upper:    1,
		numeric:  1,
		special:  0
	
	});
	// passed: false
		if(passed==false)
		{
			alert("You must enter a password with a minimum of six (6) characters and use at least one uppercase letter, one lowercase letter and a number.");
			Obj.focus();
			return false;
		}
	}
	return true;
}
/*
	Password Validator 0.1
	(c) 2007 Steven Levithan <stevenlevithan.com>
	MIT License
*/

function validatePasswordConfig(pw, options) {
	// default options (allows any password)
	var o = {
		lower:    0,
		upper:    0,
		alpha:    0, /* lower + upper */
		numeric:  0,
		special:  0,
		length:   [0, Infinity],
		custom:   [ /* regexes and/or functions */ ],
		badWords: [],
		badSequenceLength: 0,
		noQwertySequences: false,
		noSequential:      false
	};

	for (var property in options)
		o[property] = options[property];

	var	re = {
			lower:   /[a-z]/g,
			upper:   /[A-Z]/g,
			alpha:   /[A-Z]/gi,
			numeric: /[0-9]/g,
			special: /[\W_]/g
		},
		rule, i;

	// enforce min/max length
	if (pw.length < o.length[0] || pw.length > o.length[1])
		return false;

	// enforce lower/upper/alpha/numeric/special rules
	for (rule in re) {
		if ((pw.match(re[rule]) || []).length < o[rule])
			return false;
	}

	// enforce word ban (case insensitive)
	for (i = 0; i < o.badWords.length; i++) {
		if (pw.toLowerCase().indexOf(o.badWords[i].toLowerCase()) > -1)
			return false;
	}

	// enforce the no sequential, identical characters rule
	if (o.noSequential && /([\S\s])\1/.test(pw))
		return false;

	// enforce alphanumeric/qwerty sequence ban rules
	if (o.badSequenceLength) {
		var	lower   = "abcdefghijklmnopqrstuvwxyz",
			upper   = lower.toUpperCase(),
			numbers = "0123456789",
			qwerty  = "qwertyuiopasdfghjklzxcvbnm",
			start   = o.badSequenceLength - 1,
			seq     = "_" + pw.slice(0, start);
		for (i = start; i < pw.length; i++) {
			seq = seq.slice(1) + pw.charAt(i);
			if (
				lower.indexOf(seq)   > -1 ||
				upper.indexOf(seq)   > -1 ||
				numbers.indexOf(seq) > -1 ||
				(o.noQwertySequences && qwerty.indexOf(seq) > -1)
			) {
				return false;
			}
		}
	}

	// enforce custom regex/function rules
	for (i = 0; i < o.custom.length; i++) {
		rule = o.custom[i];
		if (rule instanceof RegExp) {
			if (!rule.test(pw))
				return false;
		} else if (rule instanceof Function) {
			if (!rule(pw))
				return false;
		}
	}

	// great success!
	return true;
}
function fnc_checkConfirmPassword()
{
	formObj = document.forms[0];
	if(formObj.old_password)
	{
		if(formObj.old_password.value=='')
		{
			alert("Old password cannot be left blank");
			formObj.old_password.focus();
			return false;
		}
	}
	if(formObj.new_password.value=='')
	{
		alert("New password cannot be left blank");
		formObj.new_password.focus();
		return false;
	}
	if(formObj.confirm_new_password.value=='')
	{
		alert("Confirm new password cannot be left blank");
		formObj.confirm_new_password.focus();
		return false;
	}
	if(formObj.old_password)
	{
		if(formObj.old_password.value==formObj.new_password.value)
		{
			alert("Old and new password cannot be same");
			formObj.old_password.focus();
			return false;
		}
	}
	//alert("----"+formObj.new_password.value);return;
	if(formObj.new_password.value!=formObj.confirm_new_password.value)
	{
		alert("Confirm password mismatches new password");
		formObj.confirm_new_password.focus();
		return false;
	}
	if(validatePassword()==false)
	{
		return false;
	}
	return true;
}
