var illegalChars = /[\W_]/   // allow only letters and numbers		
var error = ''
var errorF = ''
var erCnt = 0


$(document).ready(function() { 

	var options = { 
			target: '#registrace-c',
			beforeSubmit: validate,
			success: function() {
				$("#formFields").empty();
				$("#formStatus").empty();
			},
			url: 'query.php',
			clearForm: false
	}; 

	$('#registrace').submit(function() { 
		$(this).ajaxSubmit(options); 
		return false; 
	}); 

// Validate on the fly

$('input[name="login"]').change(function() { 
		var vl = $(this).val();
		var inpt = $(this);
		$.post("query.php", { username: vl, act: "zkontroluj-login" }, 
			function(data) { 
				switch(data) {
					case "1": errorF = ''; break;
					case "2": errorF = "Nezadali jste žádné přihlasovací jméno.\n"; break;
					default: errorF = "Užívatel již existuje. Zvolte si jiné přihlasovací jméno.\n"; break;
				}
				
				if(illegalChars.test(vl)) errorF = "Přihlasovací jméno může obsahovat pouze písmena a číslice.\n"	
		
				if(errorF) { inpt.css('border-color','#cd0a0a'); $("#login-res").html('<div class="ui-state-error ui-corner-all" style="padding:5px;"><p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span><strong>Chyba:</strong> '+errorF+'</p></div>'); } else { inpt.css('border-color','#224e0c'); $("#login-res").html(''); }
				
			});

	});
	
	$('input[name="pwd1"]').change(function() {
		var passwd = $(this).val();
		var inpt = $(this);
		if (passwd == "") { errorF = "Nezadali ste žádné heslo.\n"; }
	  if ((passwd.length < 6) || (passwd.length > 20)) { errorF = "Minimální délka hesla je 6 znaků, maximální 20 znaků.\n"; }
	  else if (illegalChars.test(passwd)) { errorF = "Heslo může obsahovat pouze písmena a číslice.\n"; }
	  else if (!((passwd.search(/[a-z]+/) > -1)	&& (passwd.search(/[A-Z]+/) > -1)	&& (passwd.search(/[0-9]+/) > -1))) { errorF = "Heslo musí obsahovat nejméně jedno velké písmeno, jedno malé písmeno, a jednu číslici.\n";	}
		if(errorF) {	inpt.css('border-color','#cd0a0a'); $("#pwd1-res").html('<div class="ui-state-error ui-corner-all" style="padding:5px;"><p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span><strong>Chyba:</strong> '+errorF+'</p></div>');
		} else { inpt.css('border-color','#224e0c'); $("#pwd1-res").html('');	}
		
	});
	
	$('input[name="pwd2"]').change(function() {
		var passwd = $(this).val();
		var inpt = $(this)
		var passwdOr = $('input[name="pwd1"]').val()
		if(passwdOr!=passwd) errorF = "Heslo se musí zhodovat s prvním zadaným heslem.\n"; else error = '';
		
		if(errorF) {	inpt.css('border-color','#cd0a0a'); $("#pwd2-res").html('<div class="ui-state-error ui-corner-all" style="padding:5px;"><p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span><strong>Chyba:</strong> '+errorF+'</p></div>');
		} else { inpt.css('border-color','#224e0c'); $("#pwd2-res").html(''); }
	});
	
	$('input[name="email"]').change(function() { 
		var email = $(this).val();
		var inpt = $(this);
		
		if(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(email)) { inpt.css('border-color','#224e0c'); $("#email-res").html(''); } else { errorF = "Zadaná e-mailová adresa je nefunkční.\n"; }

		if(errorF) {	inpt.css('border-color','#cd0a0a'); $("#email-res").html('<div class="ui-state-error ui-corner-all" style="padding:5px;"><p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span><strong>Chyba:</strong> '+errorF+'</p></div>');
		} else { inpt.css('border-color','#224e0c'); $("#email-res").html(''); }	
	});
	
	// End validation on the fly

});


function validate() {

var erCnt = 0

// Validate display name

var dn = $('input[name="jmeno"]')
var dnValue = dn.val()
if(dnValue=='') error = "Nezadali jste žádné jméno."; else error = '';
if(error) { erCnt++; dn.css('border-color','#cd0a0a'); $("#jmeno-res").html('<div class="ui-state-error ui-corner-all" style="padding:5px;"><p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span><strong>Chyba:</strong> '+error+'</p></div>'); } else { dn.css('border-color','#224e0c'); $("#jmeno-res").html(''); }
				

// Validate login name

var login = $('input[name="login"]')
var loginValue = login.val()
$.post("query.php", { username: loginValue, act: "zkontroluj-login" }, 
	function(data) { 
		switch(data) {
			case "1": error = ''; break;
			case "2": error = "Nezadali jste žádné přihlasovací jméno.\n"; break;
			default: error = "Užívatel již existuje. Zvolte si jiné přihlasovací jméno.\n"; break;
		}
		
		if(illegalChars.test(loginValue)) error = "Přihlasovací jméno může obsahovat pouze písmena a číslice.\n"
	
		if(error) { erCnt++; login.css('border-color','#cd0a0a'); $("#login-res").html('<div class="ui-state-error ui-corner-all" style="padding:5px;"><p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span><strong>Chyba:</strong> '+error+'</p></div>'); } else { login.css('border-color','#224e0c'); $("#login-res").html(''); }
				
});


// Validate password

var pwd1 = $('input[name="pwd1"]')
var pwd1Value = pwd1.val()
if (pwd1Value == "") { error = "Nezadali ste žádné heslo.\n"; }
if ((pwd1Value.length < 6) || (pwd1Value.length > 20)) { error = "Minimální délka hesla je 6 znaků, maximální 20 znaků.\n"; } else if (illegalChars.test(pwd1Value)) { error = "Heslo může obsahovat pouze písmena a číslice.\n"; }
else if (!((pwd1Value.search(/[a-z]+/) > -1)	&& (pwd1Value.search(/[A-Z]+/) > -1)	&& (pwd1Value.search(/[0-9]+/) > -1))) { error = "Heslo musí obsahovat nejméně jedno velké písmeno, jedno malé písmeno, a jednu číslici.\n";	} else { error = '' }
if(error) {	erCnt++; pwd1.css('border-color','#cd0a0a'); $("#pwd1-res").html('<div class="ui-state-error ui-corner-all" style="padding:5px;"><p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span><strong>Chyba:</strong> '+error+'</p></div>');
} else { pwd1.css('border-color','#224e0c'); $("#pwd1-res").html('');	}

// Validate if the second password is the same

var pwd2 = $('input[name="pwd2"]')
var pwd2Value = pwd2.val()
if(pwd1Value!=pwd2Value) { error = "Heslo se musí zhodovat s prvním zadaným heslem."; } else error = '';

if(error) {	erCnt++; pwd2.css('border-color','#cd0a0a'); $("#pwd2-res").html('<div class="ui-state-error ui-corner-all" style="padding:5px;"><p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span><strong>Chyba:</strong> '+error+'</p></div>');
} else { pwd2.css('border-color','#224e0c'); $("#pwd2-res").html(''); }

// Validate e-mail

var email = $('input[name="email"]')
var emailValue = email.val()

if(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(emailValue)) { error = ''; email.css('border-color','#224e0c'); $("#email-res").html(''); } else { error = "Zadaná e-mailová adresa je nefunkční.\n"; }

if(error) {	erCnt++; email.css('border-color','#cd0a0a'); $("#email-res").html('<div class="ui-state-error ui-corner-all" style="padding:5px;"><p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span><strong>Chyba:</strong> '+error+'</p></div>'); } else { email.css('border-color','#224e0c'); $("#email-res").html(''); }	

// Validate the secret question

var scrt = $('input[name="bezp"]')
var scrtValue = scrt.val()
if((scrtValue=="Kamelot")||(scrtValue=="kamelot")) { error = ''; } else { error = "Nesprávně vyplněna bezpečnostní otázka."; }

if(error) {	erCnt++; scrt.css('border-color','#cd0a0a'); $("#bezp-res").html('<div class="ui-state-error ui-corner-all" style="padding:5px;"><p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span><strong>Chyba:</strong> '+error+'</p></div>'); } else { scrt.css('border-color','#224e0c'); $("#bezp-res").html(''); }	

// Deal with the form

if(erCnt>0) { return false; } else {
	$("#formStatus").html('<strong>Počkejte prosím, Vaše registrace probíhá&hellip;</strong>');
	$("#formSubmit").hide();
}

}