Frontend_Catalog_Search = function(o) {
  var self = this;
  self.is_ajax = o.is_ajax;
  self.is_custom = false;
  if (o['is_custom']) {
    self.is_custom = o.is_custom;
  }

  self.selectCatalogTypeId = function() {
    var init = this;
    var rel = $(init).attr('rel');
    //$('#catalog_search_result_container').html('');
    $('.catalog_search_catalog_item_type_init').parent('li').removeClass('act');
	$('.catalog_search_catalog_item_type_init').siblings('.act-span').hide();
	$('.catalog_search_catalog_item_type_init').show();
    $(init).parent('li').addClass('act');
	$(init).siblings('.act-span').show();
	$(init).hide();
    $('#tid').val(rel);
    $('#dil').val('');
    self.loadForm();
  }

  self.loadForm = function() {
    var catalog_type_id = $('#tid').val();
    var init = $('.catalog_search_catalog_item_type_init[rel='+catalog_type_id+']')
    if (self.is_custom) {
      var form = $('#catalog_search_form_custom');
      var data = $(form).serialize();
    } else {
      var data = {};
    }
    $('#catalog_search_district_container').remove();
    $('.catalog_search_catalog_item_type_ajax').show();
    $.post(
      $(init).attr('url'),
      data,
      function (data) {
        $('.catalog_search_catalog_search_parameters_container').html(data);
        $('.catalog_search_catalog_item_type_ajax').hide();
        /*if (self.is_custom) {
          $('#catalog_search_form').submit();
        } else {
          self.count();
        }
        $('#catalog_search_form input').keypress(function(e) {
          if (e.keyCode == 13) {
            return false;
          }
        });*/
      }
    );
  }

  self.search = function() {
    if (self.is_custom) {
      var form = $('#catalog_search_form_custom');
    } else {
      var form = this;
    }
    $('#catalog_search_form_ajax').show();
    $('#catalog_search_result_container').html('');
    var form_data =  $(form).serialize();
    self.is_custom = false;
    $.get(
      $(form).attr('action'),
      form_data,
      function (data) {
        $('#catalog_search_form_ajax').hide();
        $('#catalog_search_result_container').html(data);
        document.location.href = '#search_result';
        self.initClear();
      }
    );
    return false;
  }

  self.count = function() {
    if (!self.is_ajax) {
      return false;
    }
    var init = $('#catalog_search_submit');
    var form = $('#catalog_search_form');
    $('#catalog_search_form_ajax').show();
    $.post(
      $(init).attr('url')+'?make_count=true',
      $(form).serialize(),
      function (data) {
        $('#catalog_search_form_ajax').hide();
        $('#catalog_search_submit').html(data);
      }
    );
    return false;
  }

  self.executeClear = function() {
    $('.catalog_search_catalog_item_type_init:first').click();
    document.location.href = '#search_title'
  }

  self.initCatalogTypeId = function() {
    $('.catalog_search_catalog_item_type_init').click(self.selectCatalogTypeId);
    if ($('#tid').val()) {
      $('.catalog_search_catalog_item_type_init[rel='+$('#tid').val()+']').click();
    } else {
      $('.catalog_search_catalog_item_type_init:first').click();
    }
    if (self.is_ajax) {
      $('#catalog_search_form').submit(self.search);
    }
  }

  self.initClear = function() {
    $('.catalog_search_clear_init').click(self.executeClear);
  }

  self.__init__ = function() {
    self.initCatalogTypeId();
    self.initClear();
  }

  self.__init__();
}
