// Validation settings
var minLength = 6;             // Minimum length of password
var maxLength = 12;            // Maximum length of password
var noSpecialChars = false;     // Sets if special characters (punctuation etc.) can be in password
var isPasswordRequired = true;  // Sets if the password is a required field
var showTip = true;             // Show a tip to users if their password is not perfect

// Custom strings for personalisation or i18n
var strRequired = "";     // Displays when nothing is entered & password is required
var strTooShort = "Wachtwoord is (te) kort";   // Displays when password is less than minLength 
var strTooLong = "Wachtwoord is te lang";      // Displays when password is too long
var strSpecialChars = "Alleen letters en nummers zijn toegestaan <br><i>(geen leestekens en spaties ed)</i>";     // Displays when user enters special chars
var strWeak = "Dit wachtwoord zou makkelijk te raden zijn";       // Displays when password is weak strength
var strMedium = "Goed wachtwoord";   // Displays when password is medium strength
var strStrong = "Erg goed wachtwoord gekozen!";          // Displays when password is perfect

// UI settings
var BackgroundColor = "";     // Background color of validator 
var TextColor = "gray";           // Text color of validator 
var TextFontFamily = "Verdana,Arial"; // Font Family
var TextSize = "9px";               // Text font size
var TextBold = false;              // Is text bold?

  
/*************** End of user specified settings **********/
/*************** DO NOT EDIT BELOW THIS LINE ****************/


var tip = 'Een wachtwoord zou ongeveer tussen de '+minLength+' en '+maxLength+' karacters moeten zijn.<br><br>Het is verstandig een wachtwoord te gebruiken dat niet in een woordenboek voor komt. Deze wachtwoorden zijn namelijk erg makkelijk te kraken!<br><br>Tevens is het aan te raden grote en kleine letters -maar ook getallen en letters- door elkaar heen te gebruiken.';
//POP up settings

  var jsmsg = tip;
  var aWidth = 420;
  var aHeight = 120;
  var msgTitle = 'Tips voor het maken van een veilig wachtwoord:';
  var msgTime = 9999999999;
  
   
   
  
  
/************** Create the validator **************/
function show_hidePasswordValidator(elementToValidate){
			if(document.getElementById('disp_'+elementToValidate).style.display == 'inline'){
				document.getElementById('disp_'+elementToValidate).style.display = 'none';
				
				
			}	
			else{
				document.getElementById('disp_'+elementToValidate).style.display = 'inline';
				validatePassword(elementToValidate);
				
			}
				
	
}
function createPasswordValidator(elementToValidate)
	{	
		// Initialise display
		var validatorStyle = '<style type="text/css"> .pwdvalid { background-color:'+BackgroundColor+'; color:'+TextColor+'; font-family:'+TextFontFamily+'; font-size:'+TextSize+';';
		if(TextBold)
			validatorStyle += 'font-weight: bold;';
		validatorStyle +='}</style>';
		document.write(validatorStyle);
		
		// Get the element to validate
		var elm;
		if(!(elm = document.getElementById(elementToValidate)))
		{
			//alert('Password Validator could not find your password field identified by id='+elementToValidate);
			return;
		}
		
		// Create visual output
		var output = '<div id="_pwdvalid'+elementToValidate+'" class="pwdvalid">&nbsp;</div>';
		document.write(output);
		
		// Register event handlers
		// Use quirksmode idea for flexible registration by copying existing events
		// onKeyUp
		var oldEventCode = (elm.onkeyup) ? elm.onkeyup : function () {};
		elm.onkeyup = function () {oldEventCode(); validatePassword(elm.id)};
		// onmouseout
		oldEventCode = (elm.onmouseout) ? elm.onmouseout : function () {};
		elm.onmouseout = function() {oldEventCode(); validatePassword(elm.id)};		
	}
	
function validatePassword(elementToValidate) 
	{
		var elm;
		if(!(elm = document.getElementById(elementToValidate)))
		{
			return;
		}
		var passwordDiv = document.getElementById("_pwdvalid"+elementToValidate);
		var passwordString = elm.value;
		if(passwordString.length == 0)
		{
			passwordDiv.innerHTML = strRequired;
			displayTip(passwordDiv);
			return;
		}
		if(passwordString.length < minLength)
		{
			passwordDiv.innerHTML = strTooShort;
			displayTip(passwordDiv);
			return;
		}
		if(passwordString.length > maxLength)
		{
			passwordDiv.innerHTML = strTooLong;
			return;
		}
		// Match special characters
		if(passwordString.match(/\W/))
		{
			passwordDiv.innerHTML = strSpecialChars;
			return;
		}			
		var strength = 0;
		// Match upper case characters
		if(passwordString.match(/[a-z]/))
		{
			strength++;
		}
		// Match lower case characters
		if(passwordString.match(/[A-Z]/))
		{
			strength++;
		}
		// Match digits
		if(passwordString.match(/\d/))
		{
			strength++;
		}		
		switch(strength)
		{
			case 1: passwordDiv.innerHTML = strWeak;
					displayTip(passwordDiv);
					break;
			case 2: passwordDiv.innerHTML = strMedium;
					displayTip(passwordDiv);
					break;
			case 3: passwordDiv.innerHTML = strStrong;
					break;
		}				


			
	}
		
	function displayTip(div)
	{		
		// Show tip
		if(showTip)		
			div.innerHTML += '&nbsp;'+'<a href="#" onclick="displayMsg();" style="font-size:smaller; text-decoration: none">Tip</a>';
	}

							
							 
		
	