Frontend_Catalog_Search_District = function() {
  var self = this;
  self.select_list = [];
  self.display = false;

  self.select = function() {
    var init = this;
    var id = $(init).attr('rel');
    $('.catalog_search_district[rel='+id+']').hide();
    $('.catalog_search_district_selected[rel='+id+']').show();
    $('.catalog_search_district_unselect[rel='+id+']').show();
    self.select_list[id] = true;
    self.updateInput();
  }

  self.deselect = function() {
    var init = this;
    var id = $(init).attr('rel');
    $('.catalog_search_district[rel='+id+']').show();
    $('.catalog_search_district_selected[rel='+id+']').hide();
    $('.catalog_search_district_unselect[rel='+id+']').hide();
    self.select_list[id] = false;
    self.updateInput();
  }

  self.updateInput = function() {
    var update_value = '';
    var first = true;
    $.each(self.select_list, function (id, v) {
      if (v) {
        if (first === true) first = false;
        else update_value += ':';
        update_value += id;
      }
    });
    var selected_object = $("#iid option:selected").val();
    $('#dil').val(update_value);
    $("#catalog_item_id_form_loader").show();
    $.ajax({
      url:"/catalog_search/object_list?districts=" + update_value + "&selected="+
        selected_object+"&type="+$("#tid").val(),
      success: function(r){
        $("#iid").html(r);
      },
      complete: function(r){
        $("#catalog_item_id_form_loader").hide();
      }
    });
  }

  self.toggle = function() {
    if (self.display) {
      $('#catalog_search_district_container').hide();
      if ($.browser.msie && $.browser.version.substr(0,1)<7)
        $("#catalog_item_search_catalog_item_id").show();
    } else {
      if ($.browser.msie && $.browser.version.substr(0,1)<7)
        $("#catalog_item_search_catalog_item_id").hide();
      $('#catalog_search_district_container').show();
      $('#catalog_search_district_container').css('top', $('.choose_region').offset().top + 'px');
    }
    !self.display;
  }

  self.__init__ = function() {
    var div = $('#catalog_search_district_container');
    var div_clone = $(div).clone();
    $(div).empty();
    $(div).remove();
    $('body').prepend(div_clone);
    $(div_clone).hide();
    //$('.catalog_search_district').show();
    $('.catalog_search_district_unselect.selected').each(function(){
      self.select_list[$(this).attr("rel")] = true;
    });
    $('#catalog_search_district_container_init').click(self.toggle);
    $('.catalog_search_district_init').click(self.select);
    $('.catalog_search_district_selected_init').click(self.deselect);
  }

  self.__init__();
}
