﻿var AddressForm = {
  assign:function(no){
    var f = $('#reg_form [name]').each(function(){
        var me = $(this);
        me.attr("value", MyContacts[no][me.attr("name")]);
        if (me.attr("name")=="district") var aa = me.change();
        var changeCity = function(){
          me.val(MyContacts[no]['city']);
          if (me.val()!=MyContacts[no]['city']) setTimeout(changeCity, 40);
        }
        if (me.attr("name")=="city") changeCity();
      });
  },
  clear:function(){/*:not([name=telephone])*/
    var f = $('#reg_form input').each(function(){
      this.value="";
    });
    $('#reg_form select').each(function(){
      this.value="0";
    });
  },
  init:function(form){
    var container = $(".address_pages");
    container.html("Ваши адреса: ");
    var j=1;
    var firstAddr = 0;
    for (var i in MyContacts){
      if (j==1) firstAddr = i;
      container.append("<a href=\"javascript:AddressForm.assign("+i+");void(0);\">"+(j++)+"</a>&nbsp;");
    }
      container.append("<a href=\"javascript:AddressForm.clear();void(0);\">+</a>");
    this.assign((SelectedContact&&!(typeof(MyContacts[SelectedContact])=='undefined'))?SelectedContact:firstAddr);
  }
};

$().ready(function() {
  var authForm = $("#auth_form");
  if (authForm.length){
   /* var onLogIn = function(){
      $("#upload").html($("#text_for_regged_user").html());
      $.getScript("/explorer/AjaxUserContacts", function(){
      AddressForm.init("#reg_form");
      });
    };*/
    var subm = authForm.find("[type='submit']").click(function(){
        authForm.ajaxSubmit({
          dataType:"json",
          success:function(data){if (data[0]==1)location.reload();/*onLogIn();*/
                                 else alert("Неправильный e-mail или пароль.");}
        });
        return false;
      }).removeAttr("disabled");
  } else $("#alt3_data").removeClass('hidden');
  
  /***********************************/
  var patterns = {
    def:"^[a-zA-Zа-яА-Я0-9_іІїЇґҐєЄ]+( +[a-zA-Zа-яА-Я0-9_іІїЇґҐєЄ]+)*$",
    telephone:"^\\(\\d{3}\\) \\d{3} \\d{2} \\d{2}$",
    zip:"^\\d{5}$",
    allow_all:"^.+$",
    allow_empty:""
  };

  validateSelect = function(me){
    var ok = (me.val()=='0')?false:true;
    if (ok) me.css("border", "1px solid green");
    else me.css("border", "1px solid red");
    return ok;
  };

  var validate = function(me){
    var ok = true;
    var pattern;
    
    switch(me.attr("name")){
      case "house_no": pattern = patterns.allow_all; break;
      case "telephone": pattern = patterns.telephone; break;
      case "zip": pattern = patterns.zip; break;
      case "alt_telephone":
      case "apartment": 
      case "intercom": pattern = patterns.allow_empty; break;
      default: ok = pattern = patterns.allow_all;
    }
    
    var val_check = new RegExp(pattern, "g");
    if (!val_check.test(me.attr("value")))  ok = false;
    
    if (ok) me.css("border", "1px solid green");
    else me.css("border", "1px solid red");
    return ok;
  };

  $("#reg_form select").blur(function(){
    var me = $(this);
    validateSelect(me);
  });

  $("#reg_form input").each(function(){
    var me = $(this);
    var ok = true;
    switch (me.attr("name")){
      case "telephone":
      case "alt_telephone": me.mask("(999) 999 99 99"); break;
      case "zip": me.mask("99999"); break;
    }
  }).blur(function(){
    var me = $(this);
    validate(me);
  });

  $("#submit").click(function(){
    var ok = true;
    $("#reg_form").find("input,select").each(function(){
      var me = $(this);
      if (me.attr("name")=="district"||me.attr("name")=="city") {
        ok = (validateSelect(me)&&ok);
      } else {
        ok = (validate(me)&&ok);
      }
    });
  if (ok) {
    $("#reg_form").ajaxSubmit({
        dataType:"json",
        success:function(data){if(data=="1") location.href="/"+curLang+"/deliveryandpayment/"; else alert("Серйозна помилка");}
      });
  } else alert("Не все поля правильно заполнены!");
    return false;
  });
  
  if (typeof(MyContacts)!='undefined'){
    AddressForm.init("#reg_form");
  }

});

