
	function checkPswdRetype(passValue) {
		if (passValue.length > 0 && document.getElementById("passwordField").value.length > 0) {
			if (document.getElementById("passwordField").value.toString() == passValue.toString()) {
				checkPswd(passValue.toString());
			} else {
				displayMessage('error', xReg["pass_retype"]);
			}
		}
	}
	
	function displayMessage(type, message){
		$('#errorboxcontainer div').html(message);
		$('#errorboxcontainer div').removeClass('info ok error').addClass(type);
		$('#errorboxcontainer').show();
	}
	
	
	function checkPswd(passValue) {
		var ok = 0;
		var st_class = 1;
		var len = passValue.length;
		var name = document.getElementById("nameField").value.toString().toLowerCase();
		var sname = document.getElementById("snameField").value.toString().toLowerCase();
		var passValue = passValue.toString();
		var email = document.getElementById("emailField").value.toString();
		
		var ch_email = email.substr(0,email.indexOf("@")).toLowerCase().replace(","," ").replace("."," ").split(" ");
		var ch_name = name.replace(","," ").replace("."," ").split(" ");
		var ch_sname = sname.replace(","," ").replace("."," ").split(" ");
		
		var ch_val = ch_email.concat(ch_name, ch_sname);
		var ch_passValue = passValue.toLowerCase();
		//- Upper case letters
		if (len > 0) {
			if (passValue.match(/[A-Z]/)) ok++;

			//- Lower case letters
			if (passValue.match(/[a-z]/)) ok++;

			//- Digits
			if (passValue.match(/[0-9]/)) ok++;

			//- Special characters (!, @, $, %, etc.)
			if (passValue.match(/[@#$%&!*)(-+=^]/)) ok++;
			// check for email, name, sname, nick in new password
			for (val in ch_val) {
				if (val.length > 3) {
					if (ch_passValue == val) ok = 0;
				}
			}
			if (passValue == email) ok = 0;
			if (ch_passValue == name+sname) ok = 0;
			if (ch_passValue == sname+name) ok = 0;
			var chsk = new Array();
			var str_repeat = 0;
			var lastch = "";
			for(i=0;i<len;i++) {
				ch = passValue.substr(0+i,1);
				if (ch == lastch) {
					str_repeat++;
					if (str_repeat > 2) {
						ok = 0;
					}
				} else {
					str_repeat = 0;
				}
				if (chsk[ch]) {
					chsk[ch]++;
				} else {
					chsk[ch] = 1;
				}
				if (len > 7 && chsk[ch] / len >  0.4) {
					ok = 0;
				}
				lastch = ch;
			}
			if (len > 7) {
				if (ok == 1) {
					st_class = 1;
					displayMessage('error', xReg['pass_too_weak']);
				}
				if (ok > 1) {
					st_class = 2;
					displayMessage('info', xReg['pass_average']);
				}
				if (ok > 2) {
					st_class = 3;
					displayMessage('ok', xReg['pass_ok']);
				}
			}else if (len > 10) {
				if (ok == 1) {
					st_class = 2;
					displayMessage('info', xReg['pass_average']);
				}
				if (ok > 1) {
					st_class = 3;
					displayMessage('ok', xReg['pass_ok']);
				}
			}else{
				displayMessage('error', xReg['pass_too_weak']);
			}
			if (len > 25) document.getElementById().value.substr(0,25);
		} else {
			document.getElementById('errorboxcontainer').style.display='none';
		}
		return st_class;
	}
