

// zavislost na zaskrtnuti policka dodaci adresy
                
registrace.rules = 
{
			form_strXX_jmeno:{
          required:true,
          minlength:2
      },
			form_strXX_prijmeni:{
          required:true,
          minlength:2
      },
			form_strXX_ulice:{
          required:true,
          minlength:2
      },
			form_strXX_psc:{
          required:true,
          minlength:5
      },
			form_strXX_mesto:{
          required:true,
          minlength:2
      },
			form_strXX_tel:{
          required:true,
          minlength:13
      },
			form_emailXX_mail:   { 
          required: true, 
          email: true 
       },
			form_strXX_login_jmeno:  {
          required: true,
          minlength:5
      },
      form_strXX_heslo:  { 
          required: true, 
          password:true
      },
			form_strXX_heslo2: { 
          required: true,  
          equalTo: "#form_strXX_heslo" 
      },
      form_strXX_captcha: {
          required:true
      }
};
		
registrace.messages = 
{
			form_strXX_jmeno: {
				required: registrace.txt.prosim+registrace.txt.jmeno,
				minlength: jQuery.format(registrace.txt.nejmeneNznaku)
			},
			form_strXX_prijmeni: {
				required: registrace.txt.prosim+registrace.txt.prijmeni,
				minlength: jQuery.format(registrace.txt.nejmeneNznaku)
			},
			form_strXX_ulice: {
				required: registrace.txt.prosim+registrace.txt.ulice,
				minlength: jQuery.format(registrace.txt.nejmeneNznaku)
			},
			form_strXX_psc: {
				required: registrace.txt.prosim+registrace.txt.psc,
				minlength: jQuery.format(registrace.txt.nejmeneNznaku)
			},
			form_strXX_mesto: {
				required: registrace.txt.prosim+registrace.txt.mesto,
				minlength: jQuery.format(registrace.txt.nejmeneNznaku)
			},
			form_strXX_tel: {
				required: registrace.txt.prosim+registrace.txt.tel,
				minlength: jQuery.format(registrace.txt.nejmeneNznaku)
			},
			form_emailXX_mail: {
				required: registrace.txt.prosim+registrace.txt.mail,
				email: registrace.txt.spatnymail
			},
			form_strXX_login_jmeno:  {
        required: registrace.txt.prosim+registrace.txt.login,
        minlength:jQuery.format(registrace.txt.nejmeneNznaku)
      },

			form_strXX_heslo: {
				required: registrace.txt.prosim+registrace.txt.heslo,
				minlength: jQuery.format(registrace.txt.nejmeneNznaku)
			},
			form_strXX_heslo2: {
				equalTo:  registrace.txt.hesloStejne,
				minlength: jQuery.format(registrace.txt.nejmeneNznaku),
				required: registrace.txt.prosim+registrace.txt.heslo
			},
			form_strXX_captcha: {
          required:registrace.txt.prosim+registrace.txt.captcha
      }

};

/*
upravena funkce element()

original z jquery/validation pluginu
uprava spociva va spusteni funkce invalidHandler po kazdem 
validovacim procesu na jednotlivem invalidnim elementu

*/
$.extend($.validator.prototype,{		

    element: function( element ) {
			element = this.clean( element );
			this.lastElement = element;
			this.prepareElement( element );
			this.currentElements = $(element);
			var result = this.check( element );
			if ( result ) {
				delete this.invalid[element.name];
			} else {
				this.invalid[element.name] = true;
			}
			if ( !this.numberOfInvalids() ) {
				// Hide error containers on last error
				this.toHide = this.toHide.add( this.containers );
			}
			else //*****moje uprava******
			{
          this.settings.invalidHandler(this.currentForm,this)
      }   //***********************
			this.showErrors();
			return result;
		}});


// spusteni validatoru
 $(document).ready(function(){
 	
 	$("div.error").hide();
 	
 	$("div.error").click(function(){
   $("div.error").hide(400);
   });
	
  // validacni metoda password kontroluje silu hesla regexp-em, 
  // pri nevalidite nezobrazi zpravu, ta uz je v html, pouze ji zvyrazni
  jQuery.validator.addMethod("password", function( value, element ) {
		var result = this.optional(element) || value.length >= 5 && /\d/.test(value) && /[a-z]/i.test(value);
		if (!result) {
		  $("#passwordMessage").addClass("invalid");
			element.value = "";
			var validator = this;
			setTimeout(function() {
				validator.blockFocusCleanup = true;
				element.focus();
				validator.blockFocusCleanup = false;
			}, 1);
		} else $("#passwordMessage").removeClass("invalid");
		return result;
	}, "");
	
	
	
	// inicializace validatoru
  $("#reg_form").validate({
	// invalidhandler se spusti pred odeslanim?
  	invalidHandler: function(e, validator) {
      var errors = validator.numberOfInvalids();
			validator.containers.add($("div.error"));
      if (errors) {
				var message = errors == 1
					? registrace.txt.missing1
					: jQuery.format(registrace.txt.missingmore,errors);
				$("div.error h4").html(message);
				if(!$("div.error").is(":visible"))$("div.error").show(100);
			} else {
				$("div.error").hide(100);
			}
		},
		onkeyup: false,
		focusInvalid: false,
		focusCleanup: true,
		submitHandler: function(form) {
			$("div.error").hide();
			//odeslani formulare
			form.submit();
		},
		rules: registrace.rules,    
		messages: registrace.messages,
		errorPlacement: function(error, element) {
       error.insertAfter(element);
    },
    errorClass: "invalid",
    errorElement: "em",
		debug:false
	});
	
  
  $("#form_strXX_tel").mask("+999 999 999 999").blur(function(){$(this).valid();});
  $("#form_strXX_psc").mask("999 99").blur(function(){$(this).valid();});



});

