$(document).ready(function() {
  window.Addoptions = { 
                url: "/registration/process/reguser.php",
		beforeSend: function(data)
		{
                  $("#idRegSubmit").attr("disabled","disabled");

		},
		success: function(data) 
		{
                    if (data.Error==1)
		    {
	               $("#idRegSubmit").attr("disabled","");
                       $("#ErrorText").html(data.Message);
		       $("#TB_ajaxContent").animate({scrollTop:0},"slow");
		    }
		    else
		    {			
		       $("#ErrorText").html("<CENTER>"+data.Message+"</CENTER>");
		       $("#CloseLink").html("Закрыть окно");
		       $("#TB_ajaxContent").animate({scrollTop:0, height:"100"},"slow");
		       $("#idRegFormDiv").animate({opacity: "hide" },"slow");
		    }	
		},
		complete: function(data) 						
		{			
		       $("#ErrorText").html("<CENTER>Выполнено!</CENTER>");
		       $("#CloseLink").html("Закрыть окно");
		       $("#TB_ajaxContent").animate({scrollTop:0, height:"100"},"slow");
		       $("#idRegFormDiv").animate({opacity: "hide" },"slow");
		},
		dataType:  'json',
    		timeout: 6000 // тайм-аут
  };

  window.Editoptions = { 
                url: "/registration/process/updateuser.php",
		beforeSend: function(data)
		{
                  $("#idRegSubmit").attr("disabled","disabled");
		},
		success: function(data) 
		{
                    if (data.Error==1)
		    {
	               $("#idRegSubmit").attr("disabled","");
                       $("#ErrorText").html(data.Message);
		       $("#TB_ajaxContent").animate({scrollTop:0},"slow");
		    }
		    else
		    {			
		       $("#ErrorText").html("<CENTER>"+data.Message+"</CENTER>");
		       $("#CloseLink").html("Закрыть окно");
		       $("#TB_ajaxContent").animate({scrollTop:0, height:"100"},"slow");
		       $("#idRegFormDiv").animate({opacity: "hide" },"slow");
		    }
		
		},
		dataType:  'json',
    		timeout: 6000
  	};

  window.ForgotOptions = { 
                url: "/registration/process/forgot.php",
		beforeSend: function(data)
		{
                  $("#idRegSubmit").attr("disabled","disabled");

		},
		success: function(data) 
		{
                    if (data.Error==1)
		    {
	               $("#idRegSubmit").attr("disabled","");
                       $("#ErrorText").html(data.Message);
		       $("#TB_ajaxContent").animate({scrollTop:0},"slow");
		    }
		    else
		    {			
		       $("#ErrorText").html("<CENTER>"+data.Message+"</CENTER>");
		       $("#CloseLink").html("Закрыть окно");
		       $("#TB_ajaxContent").animate({scrollTop:0, height:"100"},"slow");
		       $("#idRegFormDiv").animate({opacity: "hide" },"slow");
		    }	
		},
		dataType:  'json',
    		timeout: 6000 // тайм-аут
  };



  function StartValidateForm(opt)
  {
    $(".idClose").click(function(){tb_remove();return false;});

    jQuery.validator.addMethod("password", function( value, element ) {
		var result = this.optional(element) || value.length >= 5 && /\d/.test(value) && /[a-z]/i.test(value);
		return result;
    }, "Пароль должен быть не менее 5 символов, содержать цифры и буквы");


    jQuery.validator.addMethod("phone_req", function( value, element ) {

	$("#user_phone1").next().html("");
	$("#user_phone2").next().html("");

	if ($("#user_phone1").val().replace(/^\s+|\s+$/g, '').length < 1 && $("#user_phone2").val().replace(/^\s+|\s+$/g, '').length < 1) return false;
	return true;

    }, "Нужно указать хотя бы один телефон");

    jQuery.validator.addMethod("address_req", function( value, element ) {

	$("#user_address1").next().html("");
	$("#user_address2").next().html("");
	$("#user_address3").next().html("");

	if ($("#user_address1").val().replace(/^\s+|\s+$/g, '').length < 1 && $("#user_address2").val().replace(/^\s+|\s+$/g, '').length < 1 && $("#user_address3").val().replace(/^\s+|\s+$/g, '').length < 1) return false;
	return true;

    }, "Нужно указать хотя бы один адрес");

    jQuery.validator.addMethod("RussianDate", function( value, element ) {

	var bits = value.match( /([0-9]+)/gi ), str;
        if ( ! bits )
            return this.optional(element) || false;
        str = bits[ 1 ] + '/' + bits[ 0 ] + '/' + bits[ 2 ];
	flag = value.match(/^\d\d?\/\d\d?\/\d\d\d\d$/);

        return (this.optional(element) || !/Invalid|NaN/.test(new Date( str ))) && flag;

    }, "Укажите дату в формате дд/мм/гггг");

    $("#idRegForm").validate({

	submitHandler: function(form) {
		  $(form).ajaxSubmit(opt);
		  return false;
	},
 
	rules: {

		user_login: 
		{
			required: true,
			minlength: 3,
			maxlength: 100,
			remote: 
			{
				url: "/registration/process/check_login.php",
				type: "post",
				data: {
						id: function() {
							return $("#uid").val();
							}
				      }
			}
		},
		user_name: 
		{
			required: true,
			minlength: 3,
			maxlength: 100
		},
		user_birthday: 
		{
			RussianDate: true
		},
		user_email:
		{
                    required: true,
		    email:true,
		    remote: 
		    {
				url: "/registration/process/check_email.php",
				type: "post",
				data: {
						id: function() {
							return $("#uid").val();
							}
				      }
		    }
		},
		user_icq:
		{
		    digits:true
		},
		user_phone1:
		{
                    phone_req: true
		},
		user_phone2:
		{
                    phone_req: true
		},
		user_address1:
		{
                    address_req: true
		},
		user_address2:
		{
                    address_req: true
		},
		user_address3:
		{
                    address_req: true
		},
		imgcode:
                {
                    required: true,
		    remote: 
		    {
				url: "/registration/process/check_imagecode.php",
				type: "post",
				data: {
						str: function() {
							return $("#str").val();
							}
				      }
		    }
		}
	},
	messages: {
		user_login: {
			required: "Необходимо придумать логин",
			minlength: "Логин не может быть таким коротким",
			maxlength: "Логин не может быть таким длинным",
			remote: "Tакой логин уже есть"
		},
		user_name: {
			required: "Укажите ФИО",
			minlength: "Подозрительно коротко",
			maxlength: "Слишком длинно"
		},
		user_birthday: 
		{
			date: "Укажите дату в формате дд-мм-гггг"
		},
		user_email:
		{
                    required: "Укажите e-mail",
		    email:"Странный адрес",
		    remote: "Такой адрес уже есть"
		},
		user_icq:
		{
		    digits:"Только цифры, пожалуйста"
		},
		imgcode:
                {
                    required: "Укажите код с картинки",
		    remote: "Код не верен"
		}

	},
    	errorPlacement: function(error, element) {
			error.appendTo(element.next());
		}
    });       
  }


  function PrepareForgotForm()
  {   
        $(".idClose").click(function(){tb_remove();return false;});

        $("#idForgotForm").validate({

		submitHandler: function(form) {
		  	$(form).ajaxSubmit(window.ForgotOptions);
		  	return false;
		},
 
		rules: {

			user_email: 
			{
				required: true,
				email: true
			},
			imgcode:
                	{
                    		required: true,
		    		remote: 
		    		{
					url: "/registration/process/check_imagecode.php",
					type: "post",
					data: {
						str: function() {
							return $("#str").val();
							}
				              }
		   	       }
			}
		},
                messages: {
			user_email:
			{
                	    required: "Укажите e-mail",
			    email:"Странный адрес"
			},
			imgcode:
                	{
                    		required: "Укажите код с картинки",
		 	        remote: "Код не верен"
			}
		},
    		errorPlacement: function(error, element) {
			error.appendTo(element.next());
		}
        });  
  }

  function PrepareRegForm()
  {                       
	StartValidateForm(window.Addoptions);

	$("#user_password1").rules("add", {
                 required: true,
		 password:true,
		 messages: {
                    required: "Придумайте пароль"
		 }
	});

        $("#user_password2").rules("add", {
                 required: true,
		 equalTo: "#user_password1",
		 messages: {
                    required: "Повторите пароль",
                    equalTo: "Не совпадает"
		 }
	});

  }

  function PrepareUpdForm()
  {                       
	StartValidateForm(window.Editoptions);
        $("#user_login").attr("readonly","readonly");

        $("#user_password1").rules("add", {
                 required: true,
		 messages: {
                    required: "Введите свой пароль"
		 }
	});

        $("#user_password2").rules("add", {
		 password:true
	});

        $("#user_password3").rules("add", {
		 equalTo: "#user_password2",
		 messages: {
                    equalTo: "Не совпадает с новым паролем"
		 }
	});

  }


  $('#idRegistration').click(function(){

      var t = null;
      var a = $(this).attr('href')+"?width=700&modal=true";
      var g = false;
      tb_show(t,a,g,PrepareRegForm);
      this.blur();     

      return false;
  });

  $('#idUpdateProfile').click(function(){

      var t = null;
      var a = $(this).attr('href')+"?width=700&modal=true";
      var g = false;
      tb_show(t,a,g,PrepareUpdForm);
      this.blur();     

      return false;
  });

  $('#idForgotPassword').click(function(){
      var t = null;
      var a = $(this).attr('href')+"&width=625&height=340&modal=true";
      var g = false;
      tb_show(t,a,g,PrepareForgotForm);
      this.blur();     

      return false;
  });

  $('#idSendActivation').click(function(){

      var t = null;
      var a = $(this).attr('href')+"?width=625&height=100&modal=true";
      var g = false;
      tb_show(t,a,g,function(){$(".idClose").click(function(){tb_remove();return false;});});
      this.blur();     

      return false;
  });

});
