var minpwlength = 4;
var fairpwlength = 7;

var STRENGTH_SHORT = 0;  // less than minpwlength 
var STRENGTH_WEAK = 1;  // less than fairpwlength
var STRENGTH_FAIR = 2;  // fairpwlength or over, no numbers
var STRENGTH_STRONG = 3; // fairpwlength or over with at least one number

var strengthlevel = 0;

var strengthDesc = Array(   strength0,
							strength1,
							strength2,
							strength3 );

function updatestrength( pw ) {

	if( istoosmall( pw ) ) {

		strengthlevel = STRENGTH_SHORT;

	}
	else if( !isfair( pw ) ) { 

		strengthlevel = STRENGTH_WEAK;

	}    
	else if( hasnum( pw ) ) {

		strengthlevel = STRENGTH_STRONG;

	}
	else {

		strengthlevel = STRENGTH_FAIR;

	}
	document.getElementById( 'passwordstrength' ).innerHTML = strengthDesc[ strengthlevel ];

}

function isGoodEnough(pw){
	if( istoosmall( pw ) ) {
		return false;
	}
	else if( !isfair( pw ) ) { 
		return false;
	}    
	else if( hasnum( pw ) ) {
		return true;
	}
	else {
		return true;
	}
}

function isfair( pw ) {

	if( pw.length < fairpwlength ) {

		return false;

	}
	else { 

		return true;

	}

}

function istoosmall( pw ) {

	if( pw.length < minpwlength ) {

		return true;

	}
	else {

		return false;

	}

}

function hasnum( pw ) {

	var hasnum = false;

	for( var counter = 0; counter < pw.length; counter ++ ) {

		if( !isNaN( pw.charAt( counter ) ) ) {

			hasnum = true;

		}

	}


	return hasnum;

}
