function updateMeter() {
	var password_1 = document.getElementById('new_password_1').value;
	var password_2 = document.getElementById('new_password_2').value;

	if (password_1 != "" && password_2 == "") performUpdate(password_1);
	else if (password_2 != "" && password_1 == "") performUpdate(password_2);
	else if (password_2 == password_1 && password_1 != "") performUpdate(password_1);
	else hideMeter();
}

function performUpdate(password) {
	var score = getPasswordScore(password);
	document.getElementById('meter_text').innerHTML=getScoreString(score);
	document.getElementById('meter_graphic').style.backgroundColor=getScoreColor(score);
	document.getElementById('meter_graphic').style.width=score + "%";
	showMeter();
}

function showMeter() {
	document.getElementById('meter').style.visibility='visible';
}

function hideMeter() {
	document.getElementById('meter').style.visibility='hidden';
}

function getPasswordScore(password) {
	var score = 0;
	var diffgroups=0;

	if (password.match(/[a-z]/)) diffgroups++;
	if (password.match(/[A-Z]/)) diffgroups++;
	if (password.match(/\d+/)) diffgroups++;
	if (password.match(/.[^a-zA-Z0-9]/)) diffgroups+=2;
	
	score += Math.floor(password.length*diffgroups*2);
	
	if (password.length<6) score = Math.min(score,30);
	
    if (score>100) score=100;
    
	return score;	
}

function getScoreString(score) {
	if (score<15) return 'Meget lav';
	else if (score<40) return 'Lav';
	else if (score<55) return 'Nogenlunde';
	else if (score<70) return 'God';
	else return 'Meget god';
}

function getScoreColor(score) {
	if (score<50) return "rgb(255," + Math.floor(255*score/50) + ",0)";
	else if (score<100) return "rgb(" + (255-Math.floor(255*(score-50)/50)) + ",255,0)";
	else return "rgb(0,255,0)";
}

function killFrames() {
	if (parent.frames.length > 0) top.location.replace(document.location);
}

