function pass_strength(input_id, bar_div_id, bar_txt_id, pass_len)
	{
	this.pass_len = pass_len;	
	
	/////////////////////////////////
	var input_obj = this.input_obj = document.getElementById(input_id);
	var bar_obj = this.bar_obj = document.getElementById(bar_div_id);
	var bar_txt_obj = this.bar_obj = document.getElementById(bar_txt_id);
	
	input_obj.onkeyup = function() {
		
		var curr_value = input_obj.value;
		var curr_len = curr_value.length;
		
		//ce ima pod min znakov
		if (curr_len < pass_len)
			{bar_obj.style.width = '0%';
			
			if (curr_len >= 1)
				{bar_txt_obj.innerHTML = 'Prekratko geslo';}
			else
				{bar_txt_obj.innerHTML = '';}
			}
		//ce ima vsaj min znakov
		else
			{var point = new Array();
			point['uppercase'] = false;
			point['lowercase'] = false;
			point['numbers'] = false;
			point['other'] = false;
			
			for (var i = 0;i < curr_len;i++)
				{var ascii = curr_value.charCodeAt(i);				
				var ok = false;
				
				//A-Z, ÈÆ®©Ð
				if ((ascii >= 65 && ascii <= 90) || ascii == 268 || ascii == 262 || ascii == 381 || ascii == 272 || ascii == 352)
					{point['uppercase'] = true;
					ok = true;
					}
				//a-z, èæ¾¹ð
				if (!ok && (ascii >= 97 && ascii <= 122) || ascii == 269 || ascii == 263 || ascii == 382 || ascii == 273 || ascii == 353)
					{point['lowercase'] = true;
					ok = true;
					}
				//0-9
				if (!ok && ascii >= 48 && ascii <= 57)
					{point['numbers'] = true;
					ok = true;
					}
				
				if (!ok)
					{point['other'] = true;}
				}
			
			proc_value = 0;
			if (point['uppercase'] || point['lowercase'])
				{proc_value += 33;}			
			if ((point['uppercase'] && point['lowercase']) || point['other'])
				{proc_value += 33;}
			if (point['numbers'])
				{proc_value += 33;}
			
			
			//output text
			switch(proc_value)
				{case 33: var output_txt = "Slabo"; break;
				case 66: var output_txt = "Dobro"; break;
				case 99:
					var output_txt = "<b>Odlično!</b>";
					proc_value = 100;
				break;
				}
			
			//izpis
			bar_obj.style.width = proc_value + '%';
			bar_txt_obj.innerHTML = output_txt;
			}
		}
	}
