$(function() {
	
	// overeni existence loginu
	jQuery.validator.addMethod("loginCheck", function(value, element, params) {
		var isCurrentLogin;
		var isOccupied;
		var validator = this;

		$.ajax({
			url: params.url,
			type: params.type,
			data: 'login='+value,
			dataType : 'json',
			success: function(result) {
				var data = result.data;
				isCurrentLogin = data.login == $(element).val() ? true : false;
				isOccupied = data.login_occupied;

				// login je obsazen
				if (isCurrentLogin && isOccupied) {
					// explicitni pridani chybove hlasky
					var errors = {};
					errors[element.name] = validator.settings.messages[element.name].loginCheck;
					validator.showErrors(errors);
					
					// vypis navrhovanych loginu
					if (params.showSuggestions && data.login_suggestions.length) {
						var login_list = $('<ul class="list-purp-2">');
						var login_suggestion;
						for (var i=0; i<data.login_suggestions.length; i++) {
							login_suggestion = $('<li>').append($('<a>'));
							// odkazi doplnuji login do pole
							login_suggestion.find('a').bind('click',{element: element},function(e) {
								$(element).val($(this).text());
								// revalidace pole
								validator.element(element);
								return false;
							}).text(data.login_suggestions[i]);
							login_list.append(login_suggestion);
						}
						$('.block-login-suggestions ul').remove();
						$('.block-login-suggestions').append(login_list);
						$(element).nextAll('.block-login-suggestions').show();
					}
				// login je volny
				} else {
					$('.block-login-suggestions ul').remove();
					$(element).nextAll('.block-login-suggestions').hide();
				}

			}
		});
		
		// validacni funkce vraci vzdy true, chyba je vytvorena explicitnim volanim pres objekt validator
		return true
	}, '');

});