
standard = new Image;
unsecure = new Image;
secure = new Image;
most_secure = new Image;

standard.src = "/gfx/v4/community/pw_check_bar_default.gif";
unsecure.src = "/gfx/v4/community/pw_check_bar_1.gif";
secure.src = "/gfx/v4/community/pw_check_bar_2.gif";
most_secure.src = "/gfx/v4/community/pw_check_bar_3.gif";

function ChangePicture(Picture_Name, Picture_Object) 
{
	document.images[Picture_Name].src = Picture_Object.src;
}

function checkInput() 
{
	var TestWords = false;
	var TestNumberOfChars = false;
	var TestUppercaseChars = false;
	var TestLowercaseChars = false;
	var TestDigits = false;
	var TestSpecialChars = false;
	var TestCounter = false;
	var TestWhiteSpaces = false;
	var TestSecondPassword = false;
	
	var counter = 0;

	help = document.register.password1.value;
	
	// --- Array für alle hidden field Elemente zusammenstellen ---------------------------------------

	words = new Array();
	words[0]  = document.register.email.value.toLowerCase();
	words[1]  = document.register.nickname.value.toLowerCase();
	
	/* Check if the password contains any words from personal data */
	
	helptest = help.toLowerCase();
	
	for(var i = 0; i < words.length; i++) 
	{
		words_without_brackets = words[i];
		words_without_brackets = words_without_brackets.replace(/ï¿½/,"ae");
		words_without_brackets = words_without_brackets.replace(/ï¿½/,"oe");
		words_without_brackets = words_without_brackets.replace(/ï¿½/,"ue");
		words_without_brackets = words_without_brackets.replace(/ï¿½/,"ss");

		if(words[i] != "" && (helptest.indexOf(words[i]) >= 0 || helptest.indexOf(words_without_brackets) >= 0)) 
		{
			TestWords = false;
			break;
		} 
		else 
		{
			TestWords = true;
		}
	}

	if(help.length == 0) 
	{
		TestWords = false;
	}
	
	// --- Überprüfen ob die Passwortlänge größer als 8 Zeichen ist -------------------------------
	if(help.length >= 8) 
	{	
		if(!TestNumberOfChars) 
		{
			TestNumberOfChars = true;
		}
	} 
	else 
	{
		TestNumberOfChars = false;
	}
	
	
	// --- Prüfe ob zwei Buchstaben als Großbuchstaben vorliegen ----------------------------------
	if(help.match(/[A-Z].*[A-Z]/)) 
	{
		TestUppercaseChars = true;
	}
	else 
	{
		TestUppercaseChars = false;
	}
	
	// --- Prüfe ob zwei Buchstaben als Kleinbuchstaben vorliegen ---------------------------------
	if(help.match(/[a-z].*[a-z]/)) 
	{
		TestLowercaseChars = true;
	}
	else
	{
		TestLowercaseChars = false;
	}
	
	
	// --- Prüfe ob mindestens zwei Zahlen verwendet wurden ---------------------------------------
	if(help.match(/[0-9].*[0-9]/))
	{
		TestDigits = true;
	}
	else
	{
		TestDigits = false;
	}
	
	
	// --- Prüfe ob mindestens zwei Sonderzeichen verwendet wurden --------------------------------
	var specCharCounter = 0;
	
	if(help.length > 0)
	{
		characters = help.split("");
		for(var i = 0; i < characters.length; i++)
		{
			singleChar = characters[i];
			if(singleChar.match(/[^a-zA-Z0-9]/))
			{
				specCharCounter++;
			}
		}
		
		if(specCharCounter >= 2)
		{
			TestSpecialChars = true;
		}
		else
		{
			TestSpecialChars = false;
		}
		
	}
	
	// --- Prüfe auf Leerzeichen oder ESC-Sequenzen -----------------------------------------------
	if(help.match(/\s/))
	{
		TestWhiteSpaces = true;
	}
	else
	{
		TestWhiteSpaces = false;
	}
	
	
	// --- Prüfe ob mindestens zwei oben stehende Bedingungen erfüllt sind ------------------------
	if(TestUppercaseChars)
	{
		counter++;
	}
	
	if(TestLowercaseChars)
	{
		counter++;
	}
	
	if(TestDigits)
	{
		counter++;
	}
	
	if(TestSpecialChars)
	{
		counter++;
	}
	
	if((counter >= 2) && !TestWhiteSpaces)
	{
		if(!TestCounter)
		{
			TestCounter = true;
		}
	}
	else
	{
		TestCounter = false;
	}

	var realcounter = 0;

	if(TestCounter)
	{
		realcounter++;
	}
	
	if(TestWords)
	{
		realcounter++;
	}
	
	if(TestNumberOfChars)
	{
		realcounter++;
	}
	
	if(realcounter == 0)
	{
		ChangePicture('security_level', standard);
	}
	
	if(realcounter == 1)
	{
		ChangePicture('security_level', unsecure);
	}
	
	if(realcounter == 2)
	{
		ChangePicture('security_level', secure);
	}
	
	if(realcounter == 3)
	{
		ChangePicture('security_level', most_secure);
	}
}
