var newClass = function() {
	return function() {
		return this.init.apply(this, arguments);
	}
}
var Validate = newClass();

Validate.prototype = {
  init: function() {

    var t = this;
    t.email = $("#email");
    t.login = $("#login");
    t.password = $("#password");
    t.confirm_password = $("#confirm_password");
    t.check = $("#NEW_GENERAT_1");
		t.sLastEmail = ''; //храним последний удачно проверенный e-mail
		t.sLastLogin = ''; //храним последний удачно проверенный логин

     //$("#registr_page").find("input").keyup(function(){t.checkField(this)});
     $("#registr_page").find("input").blur(function(e){
			t.checkField(this)
		});
		$("#registr_page").find("input").keypress(function(e){
			if (e.keyCode == 13) {
				t.checkField(this)
			}
		});
     $("#registr_page").find("#NEW_GENERAT_1").change(function(){t.checkedField(this)});
			
		 $('#send_registr').click(function(){
			if (t.checkBtn() === true) {
				return true;
			} else {
				$.each($("#registr_page").find("input"), function(objData){
					t.checkField(this);
				})
				return false;
			}
		 });	
     t.email_err = true;
     t.login_err = true;
     t.password_err = true;
     t.confirm_password_err = true;
     t.check_err = true;

  },

  removeError: function(obj) {
    //$(obj).parents(".FormLine").find("img").attr("src","/i/ok.jpg");
		$(obj).css('borderColor' , '#00AA00');
    switch($(obj).attr("id"))
    {

        case "email":
            t.email_err = false;
            break;
        case "login":
            t.login_err = false;
            break;
        case "password":
            t.password_err = false;
            break;
        case "confirm_password":
            t.confirm_password_err = false;
            break;

    }
  },
  
  checkedField: function(obj) {
    t = this;
    switch($(obj).attr("id"))
    {
      /* --- Флажок--->>> */
      case "NEW_GENERAT_1":
        if ((obj).checked) {
          t.check_err = false;
          t.checkBtn();
        } else {
          t.check_err = true;
          t.checkBtn();
        }
        break;
      /* <<<--- Флажок --- */
    }
  },

  checkField: function(obj) {
    t = this;
		var erOutput = $(obj).parents('.FormLine').find('.ErrorReg');
		erOutput.text('');
    //$(obj).parents(".FormLine").find("img").removeClass("DisplayNone");
    switch($(obj).attr("id"))
    {

       /* --- ПРОВЕРКА E-MAIL --->>> */
      case "email":
        if($(obj).val().length == 0)
        {
          //t.removeError(obj);
          t.email_err = true;
          //$(obj).parents(".FormLine").find("img").attr("src","/i/err.jpg");
					$(obj).css('borderColor' , '#AA0000');
          t.checkBtn();
					erOutput.text('Неверный e-mail');
          //t.showError(obj,"Ошибка, поле не должно быть пустым");
        }
        else
        {
          //if(!/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test($(obj).val()))
          if(!/^[=_\.0-9a-z+~-]+@(([-0-9a-z]+\.)+)[a-z]{2,10}$/i.test($(obj).val()))
          {
            //t.removeError(obj);
            //t.showError(obj,"Ошибка, введен неверный e-mail");
            t.email_err = true;
            //$(obj).parents(".FormLine").find("img").attr("src","/i/err.jpg");
						$(obj).css('borderColor' , '#AA0000');
            t.checkBtn();
						erOutput.text('Неверный e-mail');
          }
          else
          {
            t.removeError(obj);
            var parametr = $(obj).val();
						//если текущий e-mail и прошлый проверенный e-mail не совпдаает проверяем в бд такой e-mail
						if (parametr !== t.sLastEmail) {
							jQuery.get("/personal/registration_ajax.php",{
							param: "email",
							value: parametr
							},
							function name(text) {
								if(text == "false") {
									t.email_err = true;
									//$(obj).parents(".FormLine").find("img").attr("src","/i/err.jpg");
									$(obj).css('borderColor' , '#AA0000');
									erOutput.text('Такой e-mail уже зарегистрирован');
									t.sLastEmail = '';
									t.checkBtn();
									//t.showError(obj,"Такой e-mail уже зарегистрирован");
								} else {
									t.removeError(obj);
									t.sLastEmail = parametr;
									t.checkBtn();
								}
						 });
						}
          }
        }
        break;
      /* <<<--- ПРОВЕРКА E-MAIL --- */

      /* --- ПРОВЕРКА ЛОГИНА --->>> */
      case "login":
				var erOutput = $(obj).parents('.FormLine').find('.ErrorReg');
				erOutput.text('');
        if($(obj).val().length < 3)
        {
          //t.removeError(obj);
          //t.showError(obj,"Ошибка, поле не должно быть пустым");
          //$(obj).parents(".FormLine").find("img").attr("src","/i/err.jpg");
					$(obj).css('borderColor' , '#AA0000');
          t.login_err = true;
          t.checkBtn();
					erOutput.text('Логин должен быть не менее 3 символов');
        }
        else if(/[!\[\]#\$%&'\*\+\/=\?\^`{\|\}~а-яА-Я\\\(\)\.,]/i.test($(obj).val()))
        {
            //t.removeError(obj);
            //t.showError(obj,"Ошибка, введены недопустимые символы");
           // $(obj).parents(".FormLine").find("img").attr("src","/i/err.jpg");
					 $(obj).css('borderColor' , '#AA0000');
            t.login_err = true;
            t.checkBtn();
						erOutput.text('Разрешены только латинские буквы');
        }
        else
        {
					//если текущее имя и прошлое проверенное имя не совпдаает проверяем в бд такой логин
					if ($(obj).val() !== t.sLastLogin) {
						jQuery.get('/personal/registration_ajax.php',{
						param: "login",
						value: $(obj).val()
						 }, function name(text) {
								if(text == "false")
								{
									 //t.removeError(obj);
									 //t.showError(obj,"Такой пользователь уже существует");
									 //$(obj).parents(".FormLine").find("img").attr("src","/i/err.jpg");
									 $(obj).css('borderColor' , '#AA0000');
									 erOutput.text('Такой пользователь уже существует');
									 t.login_err = true;
									 t.sLastLogin = '';
									 t.checkBtn();
								}
								else
								{
									t.removeError(obj);
									t.sLastLogin = $(obj).val();
									
									t.checkBtn();
								}

						});
					}
        }
        break;
      /* <<<--- ПРОВЕРКА ЛОГИНА --- */

      /* --- ПРОВЕРКА ПАРОЛЕЙ --->>> */
      case "password":
				var erOutput = $(obj).parents('.FormLine').find('.ErrorReg');
				erOutput.text('');
        if($(obj).val().length < 6)
        {
          //t.showError(obj,"Ошибка, поле не должно быть пустым");
          t.password_err = true;
          //$(obj).parents(".FormLine").find("img").attr("src","/i/err.jpg");
					$(obj).css('borderColor' , '#AA0000');
          t.checkBtn();
					erOutput.text('Пароль должен быть не менее 6 символов');
        } else if(/[!\[\]#\$%&'\*\+\/=\?\^`{\|\}~а-яА-Я\\\(\)\.,]/i.test($(obj).val())) {
            //t.removeError(obj);
            //t.showError(obj,"Ошибка, введены недопустимые символы");
           // $(obj).parents(".FormLine").find("img").attr("src","/i/err.jpg");
					 $(obj).css('borderColor' , '#AA0000');
            t.password_err = true;
            t.checkBtn();
						erOutput.text('Использование кириллицы запрещено');
        } else {
            t.removeError(obj);
        }
        break;

      case "confirm_password":
				 var erOutput = $(obj).parents('.FormLine').find('.ErrorReg');
				 erOutput.text('');
         if(($(obj).val() == t.password.val()) && ($(obj).val().length > 5)) {
          t.removeError(obj);
         } else {
          //t.showError(obj,"Ошибка, введенные пароли не совпадают");
          t.confirm_password_err = true;
          //$(obj).parents(".FormLine").find("img").attr("src","/i/err.jpg");
					$(obj).css('borderColor' , '#AA0000');
          t.checkBtn();
					erOutput.text('Пароли не совпадают');
         }
         break;
      /* <<<--- ПРОВЕРКА ПАРОЛЕЙ --- */


    }
    t.checkBtn();
  },

  checkBtn: function() {
    t = this;
    if(!(t.email_err || t.login_err || t.password_err || t.confirm_password_err ))//|| t.check_err
    {
      //$("#send_registr").removeAttr("disabled");
      //$("#send_registr").parents(".SendMail").removeClass("Disabled");
      //$("#send").css("color","#000000");
			return true;
    }
    else
    {
      //$("#send_registr").attr("disabled","disabled");
      //$("#send_registr").parents(".SendMail").addClass("Disabled");
      //$("#send").css("color","#999999");
			return false;
    }
  }
}
