$(function(){

	var divLogin = $("#loginFormData"),
		loginForm = $(divLogin).find("#loginform"),
		defMsg = $(divLogin).find("#loginMessage").text(),
        submBtn = $(divLogin).find("#loginsubmit"),
        flagEnable = true;

	$.validator.addMethod('validRus', function (value) {
		var result = true;
	    var iChars = "абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
	      for (var i = 0; i < value.length; i++) {
	          if (iChars.indexOf(value.charAt(i)) != -1) {
	              return false;
	          }
	      }
	      return result;
	});

	$(loginForm).validate({
	  	submitHandler: function(form) {
			var options = { dataType: 'jsonp',
		 		type: 'GET',
                beforeSubmit: disableButton,
				success: loginResults
			};
            if (flagEnable){
                flagEnable = false;
			    setTimeout(function(){
                    $(form).ajaxSubmit(options)
                }, 100);
            }
	    },
	    focusInvalid: false,
	    focusCleanup: true,
	    rules: {
	    	username: { required: true, validRus: true},
	    	password: { required: true, validRus: true}
	    },
	    messages: {
	    	username: { required: "Укажите Ваш логин, пожалуйста.",
	    				validRus: "Вы ввели русские символы!" },
	    	password: { required: "Укажите пароль, пожалуйста.",
	    				validRus: "Вы ввели русские символы!" }
	    },
	    errorPlacement: function(error, element) {
	        var er = element.attr("name");
	        error.appendTo( element.parent().find("label[for='" + er + "']").find("em") );
	    }
	});

	$("#TB_closeWindowButton").click(function(){
		$(divLogin).find('#loginMessage').text(defMsg);
		tb_remove();
	});

    function disableButton(formData, jqForm, options){
        flagEnable = false;
        $(submBtn).attr('disabled', 'disabled');
        return true;
    };

	function loginResults(json){
		var msg = $("#loginFormData #loginMessage");
		$(msg).fadeOut(200);
		if (json.result == 'ok'){
			setTimeout(function(){$(msg).css('color', 'green')
				  .text(json.message).fadeIn('slow');}, 150);
			if (json.redirect){
				setTimeout(function(){location.href = json.redirect}, 1000);
			} else {
				setTimeout(function(){location.reload(true)}, 1000);
			}
		} else {
            $(submBtn).removeAttr('disabled');
            flagEnable = true;
			setTimeout(function(){ $(msg).css('color', 'red')
                    .text(json.message).fadeIn('slow'); }, 150);
		}
	};
});

