
    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

    function testPasswordStrength( pw ) {
        if( istoosmall( pw ) ) {
            strengthlevel = STRENGTH_SHORT;
        }
        else if( !isfair( pw ) ) { 
            strengthlevel = STRENGTH_WEAK;
        }    
        else if( hasnum( pw ) && haschar( pw ) ) {
            strengthlevel = STRENGTH_STRONG;
        }
        else {
            strengthlevel = STRENGTH_FAIR;
        }
        return strengthlevel;
    }
    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;
    }
    function haschar( pw ) {
        var haschar = false;
        if( pw.match(/[!@#\$%\^&\*\(\)]/) ) {
// ~!@#$%^&*_-+=;:?,.	
                haschar = true;
        }
        return haschar;
    }

