$(function () {
  $(".liveCountSearchForm input:not(#savesearch), .liveCountSearchForm select:not(#counties,#areas,#selected_areas)").change(function(){
    updateLiveSearchCount($(this));
  });

  // Search form
  $("#add_areas").click(function(){
    var areas = $('#areas').val();

    if(areas == null)
      return false;

    for(var i=0;i<areas.length;i++) {
      var areaValue = areas[i].replace("'", "\\'");
      if($("#selected_areas option[value='"+areaValue+"']").length <= 0)
        if(areas[i].indexOf("c_") >= 0) {
          $("#selected_areas").append("<option value=\""+areas[i]+"\">"+areas[i].replace("c_","")+"</option>");
        } else {
          $("#selected_areas").append("<option value=\""+areas[i]+"\">- "+areas[i]+"</option>");
        }
    }
    keepAreasSelected();
    updateLiveSearchCount($(this));
  });

  $("#areas").dblclick(function(){
    var areas = $('#areas').val();

    if(areas == null)
      return false;

    for(var i=0;i<areas.length;i++) {
      var areaValue = areas[i].replace("'", "\\'");
      if($("#selected_areas option[value='"+areaValue+"']").length <= 0)
        if(areas[i].indexOf("c_") >= 0) {
          $("#selected_areas").append("<option value=\""+areas[i]+"\">"+areas[i].replace("c_","")+"</option>");
        } else {
          $("#selected_areas").append("<option value=\""+areas[i]+"\">- "+areas[i]+"</option>");
        }
    }
    keepAreasSelected();
    updateLiveSearchCount($(this));
  });

  $("#remove_areas").click(function(){
    var areas = $('#selected_areas').val();

    if(areas == null)
      return false;

    for(var i=0;i<areas.length;i++)
      $("#selected_areas option[value='"+areas[i]+"']").remove();
    keepAreasSelected();
    updateLiveSearchCount($(this));
  });

  $("#counties").change(function(){
    if ($(this).attr("value")) {
      $("#areas").html("<option>Loading Areas...</option>");
      $.post($(this).attr("target"), {county : $(this).attr("value")},
        function(data){
          $("#areas").html(data);
        }
      );
    }
  });

  $('#searchSubmit').mousedown(function() { keepAreasSelected(); });
  $('form').submit(function() {
    keepAreasSelected();
    return true;
  });

  // "Select All Types" checkbox
  $('#type_all').change(function() {
    if ($(this).is(':checked')) {
      $("input[name='type[]']").attr('checked', 'checked');
    } else {
      $("input[name='type[]']").attr('checked', false);
    }
  });
  // And run one so on first load if it's checked, check'em all
  if ($('#type_all').is(':checked')) {
    $('#type_all').change();
  }

  // Just in case we have a different county selected
  $("#counties").change();
});

function keepAreasSelected() {
  $('#selected_areas option').attr('selected','selected');
}

var ajaxUpdateLiveSearchCountPostCall = function(r){
	if (r == '' || r == '0')
	{
	  //alert("ERROR: Could not talk to server.");
	}
	else
	{
		var response = eval('('+r+')');

		if(response.Error)
		{
	    //alert(response.ErrorMessage);
		}
		else
		{
		  $(".liveResults .num").html(response.Count);
		  $(".life-search .num").html(response.Count);
		}
	}
}

function updateLiveSearchCount(obj,formId)
{
  if(formId == undefined)
  {
    var foundForm = false;

    var countdown = 0; // Don`t go more than 10 levels -- avoids an infinite loop, doesn`t count on parent
    while(!foundForm && countdown < 10)
    {
      countdown++;
      obj = $(obj).parent();
      if($(obj).is("form"))
        foundForm = true;
    }

    formId = $(obj).attr("id");
  }

  $(".liveResults .num").html("<img src='"+rel_path+"images/spinner.gif' style='width:18px;' />");
  $(".life-search .num").html("<img src='"+rel_path+"images/spinner.gif' style='width:28px;' />");
  submitForm(formId,ajaxUpdateLiveSearchCountPostCall,rel_path+"properties/updatecount");
}

