/***********************************************
* Password Strength Script
* albert@filella.net
***********************************************/
	
	security_status = new Array();
	
	//CONFIGURATION BLOCK
	var min_length = 14; // minimum password length
	security_status[0] = new Array (25, 'Weak', '#ff0000'); // define status & color
	security_status[1] = new Array (50, 'Fair', '#CC33CC'); // define status & color
	security_status[2] = new Array (75, 'Good', '#ffcc00'); // define status & color
	security_status[3] = new Array (100, 'Strong', '#008000'); // define status & color
	
	minimum=new Array (5, 'Too short', '#676767'); // define status & color. Status if password length is < min_length
	//END CONFIGURATION BLOCK

	function pwd_rating (id, div)
	{		
		final_status = verifications (id, security_status, minimum);
		print_status (id, div, final_status);
	}
	
	function verifications (id, security_status, minimum)
	{
		var value = document.getElementById(id).value;
		var size = value.length;
		var i = 0, found = 0, security_level = 0;
		final_status = new Array();
	
		if (isMayus(value) == true) security_level+=1;
		for (i=0; i<size; i++) 
			if (isNum(value.charAt(i)) == true)  
				found=1; 			
		if (found==1) security_level+=1;
		if (isSymbol(value) == false) security_level+=1;
		if (size<=min_length-1) final_status = minimum;
		if (size>=min_length) final_status = security_status[security_level];
		
		return final_status;	
	}
	
	function print_status (id, div, final_status)
	{
		var strength_zone = document.getElementById(div);
		var field_size = document.getElementById(id).offsetWidth;
		var HTMLcode ="";
		
		strength_zone.innerHTML = HTMLcode;
		HTMLcode="<table cellspacing='0' cellpadding='0' width='"+field_size+"' class='pwd_s'>";
		   HTMLcode+="<tr>";
			   HTMLcode+="<td>Strength:&nbsp;<span  style='color: "+final_status[2]+"'>"+final_status[1]+"</span></td>";
		   HTMLcode+="</tr>";
		   HTMLcode+="<tr>";
			   HTMLcode+="<td>";
				   HTMLcode+="<table width='100%' border='0' cellpadding='0' cellspacing='0' class='pwd_s'>";
					   HTMLcode+="<tr>";
						   HTMLcode+="<td width='"+final_status[0]+"%' bgcolor='"+final_status[2]+"' height='8'></td>";
						   HTMLcode+="<td bgcolor='#e0e0e0' height='4'></td>";
					  HTMLcode+="</tr>";
				   HTMLcode+="</table>";
			  HTMLcode+="</td>";
		   HTMLcode+="</tr>";
		HTMLcode+="</table>";	
		strength_zone.innerHTML=HTMLcode;
	}
	
	function isNum(value)
	{ 
		var num = parseInt(value);
		var x = num/2;
		
		if (num==0) return true;
		if (!x) return false;
		else return true;
	}
	
	function isMayus(value)
	{ 
		var value_low = value.toLowerCase();
		
		if (value_low != value)  return true;
		else return false;
	}
	
	function isSymbol(value)
	{ 
		var alpha_numeric = /^([a-z]|[0-9])+$/i;
		
		if (value.length>0)
		{ 
			var ok = alpha_numeric.test(value);
			return ok;
		} else return true;
	}
      
