/** 
* The form replacer.
* 
* version = 2.3
* core = 2.x
* author = Kovács László
* nickname = Aideluxe
* email = kovacslaci87@gmail.com
* date = 2009.12.16.
* All rights reserved!
*/

function illegal_chars_check(object)
{
	object.value = object.value.replace(/[^a-z0-9]/ig, "");
	return true;
}

function illegal_chars_check_email(object)
{
	object.value = object.value.replace(/[^a-z0-9@.áéűúőöüóí\-]/ig, "");
	return true;
}

function illegal_chars_check_name(object)
{
	object.value = object.value.replace(/[^a-z0-9áéűúőöüóí\s]/ig, "");
	return true;
}

function illegal_chars_check_sn(object)
{
	object.value = object.value.replace(/[^a-z0-9\-]/ig, "");
	return true;
}

function illegal_chars_check_url(object)
{
	object.value = object.value.replace(/[^a-z0-9_.\/\-]/ig, "");
	return true;
}

function illegal_chars_check_number(object)
{
	object.value = object.value.replace(/^[0123456789\-]/ig, "");
	return true;
}

function illegal_chars_check_positive_number(object)
{
	object.value = object.value.replace(/[^0123456789]/ig, "");
	return true;
}

function password_quality_check(object, quality, sweak, snormal, sgood, sstrong)
{
	value = 0;
	result = object.value.length;
	if(result>=15) value += 3;
	else if(result>=11) value += 2;
	else if(result>=6) value += 1;
	else value += 0;
	
	result = 0;
	upbool=true;
	lowbool=true;
	hunbool=true;
	numbool=true;
	specbool=true;
	
	uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	lowercase = "abcdefghijklmnopqrstuvwxyz";
	huncase = "ÁÉÓÖŐÚÜŰáéóöőúüű";
	numbers = "0123456789";
	speccase = "~ˇ^˘°˛`˙´˝¨¸\\|€÷×đĐ[]łŁß¤<>#&@{};>*§'\"+!%/=()?:_,.-/*-+";
	
	for(i=0;i<object.value.length;i++)
	{
		if(upbool)
		{
			for(j=0;j<uppercase.length;j++)
			{
				if(object.value.charAt(i) == uppercase.charAt(j))
				{
					result += 1.5;
					upbool=false;
					break;
				}
			}
		}
		
		if(lowbool)
		{
			for(j=0;j<lowercase.length;j++)
			{
				if(object.value.charAt(i) == lowercase.charAt(j))
				{
					result += 1.5;
					lowbool=false;
					break;
				}
			}
		}
		
		if(hunbool)
		{
			for(j=0;j<huncase.length;j++)
			{
				if(object.value.charAt(i) == huncase.charAt(j))
				{
					result += 1.5;
					hunbool=false;
					break;
				}
			}
		}
		
		if(numbool)
		{
			for(j=0;j<numbers.length;j++)
			{
				if(object.value.charAt(i) == numbers.charAt(j))
				{
					result += 1;
					numbool=false;
					break;
				}
			}
		}
		
		if(specbool)
		{
			for(j=0;j<speccase.length;j++)
			{
				if(object.value.charAt(i) == speccase.charAt(j))
				{
					result += 2.5;
					specbool=false;
					break;
				}
			}
		}
	}
	
	if(result>=6) value += 2;
	else if(result>=4) value += 1;
	else value += 0;
	
	
	
	key_a="0123456789abcdefghijklmnopqrstuvwxyz";
	k_1=0;
	k_2=1;
	count=0;
	if(object.value.length>8)
	{
		for(i=0;i<object.value.length;i++)
		{
			if(object.value.charAt(i)==key_a.charAt(k_1))
			{
				k_1++;
			}
			if(object.value.charAt(i)==key_a.charAt(k_2))
			{
				k_2++;
			}
		}
		tmp=object.value;
		for(i=0;i<object.value.length;i++)
		{
			if(tmp.charAt(i)!=key_a.charAt(k_2))
			{
				tmp=tmp.replace(object.value.charAt(i),key_a.charAt(k_1));
				count--;
				for(j=0;j<object.value.length;j++)
				{
					if(tmp.charAt(j)==key_a.charAt(k_1))
					{					
						count++;
					}
				}
				tmp=tmp.replace(key_a.charAt(k_1),key_a.charAt(k_2));
			}
		}
	}
	else
	{
		count=10;
	}
	
	if(count>=10) value += 0;
	else if(count>=5) value += 1;
	else if(count>=3) value += 2;
	else value += 3;
	
	
	
	if(value >=7) valuequality = "strong" ;
	else if(value >=5) valuequality = "good";
	else if(value >=3) valuequality = "normal";
	else valuequality = "weak";
	
	if(valuequality=="strong")
	{
		quality.style.backgroundColor  = "#117600";
		quality.value = sstrong;
	}
	else if(valuequality=="good")
	{
		quality.style.backgroundColor  = "#00a8ff";
		quality.value = sgood;
	}
	else if(valuequality=="normal")
	{
		quality.style.backgroundColor  = "#dab712";
		quality.value = snormal;
	}
	else if(valuequality=="weak")
	{
		quality.style.backgroundColor  = "#da1212";
		quality.value = sweak;
	}
	return true;
	
}
