var sf_request_timedout = true;
$(document).ready(function(){
  onChangeFilter();
  filterPagerInit();
  
  $('.filter-choose .delete').live('click', function(){
    $(this).addClass('load');
    var id = $(this).attr('rel');
    if($('input[id^="'+id+'"]').attr('type') == 'checkbox') {
      $('input[id^="'+id+'"]').removeAttr('checked').change();
    } else {
      $('input[id^="'+id+'"]').val('').change();
    }
    $('select[id^="'+id+'"]').val(0).change();
  });
});

function onChangeCountry(obj)
{
  var cid = obj.val();
  if(cid > 0)
  {
    $('#select-filter-city').append('<img class="input-loader" src="/images/input-loader.gif"/>');
    $.get(obj.attr('rel')+'?cid='+cid, function(data){
      $('#filter-city').html(data);
      $('#filter-city').val(0);
      $('#select-filter-city').text($('#filter-city option').eq(0).text());
    });
  }
  else
  {
    $('#filter-city').html('<option value="0">выберите страну</option>');
    $('#filter-city').val(0);
    $('#select-filter-city').text($('#filter-city option').eq(0).text());
  }
}

function onChangeFilter()
{
  var form = $('.search-form form');
  $('input[type="text"]', form).bind('change keyup', changeFilterRequest);
  $('select, input[type="checkbox"]', form).bind('change', changeFilterRequest);
}

function onSortFilter(obj)
{
  if(!$(obj).hasClass('active')){
    $('.sort-actions a').removeClass('active');
    $(obj).addClass('active');
    var container = $('.ajax-container').get(0);
    showAjaxLoader(container);
    $.post($(obj).attr('rel'), {}, function(html) {
      $(container).html(html);
    });
  }
	return false;
}

function changeFilterRequest()
{
  if(map != undefined)
  {
    var map_container = $('#map').get(0);
    showAjaxLoader(map_container);
  }
  if (sf_request_timedout) clearTimeout(sf_request_timedout);
  sf_request_timedout = setTimeout(function(){
    var form = $('.search-form form');
    $('#filter-count-object').html('<img style="position: relative; top: 2px; padding: 0 3px;" src="/images/h-loader.gif"/>');
    
    $.post($('#change-filter-url').val(), form.serialize(),
      function(data){
        if(map != undefined)
        {
          updateMapData();
        }
        $('.reset-loader').remove();
        $('#filter-count-object').html(data.count);
        $('.filter-choose').html('');
        
        if(data.filter.length <= 0)
        {
          $('.reset-filter').hide();
          $('.filter-choose').append(
            '<tr>'+
              '<td><strong>Фильтр по предложениям не выбран</strong></td>'+
            '</tr>'+
            '<tr class="delimiter"><td colspan="2"></td></tr>'
          );
        }
        else
        {
          for(var i in data.filter)
          {
            $('.filter-choose').append(
              '<tr>'+
                '<td><strong>'+ data.filter[i].label +'</strong> '+ data.filter[i].title +'</td>'+
                '<th><a rel="'+ data.filter[i].id +'" href="javascript:void(0);" class="delete"></a></th>'+
              '</tr>'+
              '<tr class="delimiter"><td colspan="2"></td></tr>'
            );

          }
          $('.reset-filter').show();
        }
      },
      "json"
    );
  }, 500);
 
}

function resetFilter()
{
  $('.reset-filter').append('<img class="reset-loader" style="position: absolute; top: 8px; right: 13px;" src="/images/h-loader.gif"/>');
  var form = $('.search-form form');
  $('input[type="checkbox"]', form).removeAttr('checked');
  $('input[type="text"],', form).val('');
  $('select[id="filter-country"]', form).val(0).change();
	$('.linkedPicker3').datepick('clear');
}

function onSubmitFilterForm(form)
{
	var container = $('.ajax-container').get(0);
	showAjaxLoader(container);
	var action = $(form).attr('action');
	$.post(action, {}, 
    function(html)
		{
			$(container).html(html);
		}
	);
	return false;
}

function filterPagerInit()
{
  $('#map-point').remove();
  var isCompleted = true;
  var scrollPosition =  0;
  
  $(window).scroll(function () {
    var pager = $('.filter-pager a');
    if( pager.offset() == null) return;
    var container = $('.ajax-container');
    var url = pager.attr('rel');
    var markerPosition = pager.offset().top;
    
    scrollPosition = $(window).height() + $(window).scrollTop();
    
    if( scrollPosition >= markerPosition + 100 && isCompleted){
      isCompleted = false;
      setTimeout(function(){
        pager.hide();
        $('div', pager.parent()).show();
        $.post(url, {}, function(response){
          pager.parent().remove();
          container.append(response);
          isCompleted = true;
        });
      }, 500);
    }
  });
}

function toggleFilterForm(btn)
{
  var slide = $('.sf-advance');
  $('div', slide).css({opacity: 0});
  if(slide.css('display') != 'block')
  {
    $('.sf-body').addClass('expand');
  }
  
  slide.slideToggle('slow', function(){
    if(slide.css('display') == 'block')
    {
      $('div', slide).css({opacity: 1});
      $(btn).text($(btn).text().replace(/>>/, '<<'));
    }
    else
    {
      $('.sf-body').removeClass('expand');
      $(btn).text($(btn).text().replace(/<</, '>>'));
    }
  });
}

function getEmbedCode(obj)
{
  $.get($(obj).attr('rel')+'?count='+$('#embed-count').val(), function(data){
    DPopup.Create('embed', {width: 600});
    DPopup.Text('embed', $('.popup-template').html());
    $('#embed .text').append(data);
    DPopup.Open('embed');
  });
}
