var minpwlength = 6;
var fairpwlength = 9;
    
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 class_0 = 'strength_tooshort';
var class_1 = 'strength_fair';    
var class_2 = 'strength_medium';
var class_3 = 'strength_strong';      

var strengthlevel = 0;                            

var strengthimages = Array( class_0,  
                            class_1,  
                            class_2,  
                            class_3 );


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;    
    }

    if(!$('strength').hasClassName(strengthimages[strengthlevel])) {
    	$('strength').className=(strengthimages[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;    
}