$(document).ready(function() {
  var top = $('#settings_sections').offset().top - parseFloat($('#settings_sections').css('marginTop').replace(/auto/, 0));
  $(window).scroll(function (event) {
    var y = $(this).scrollTop();
    if (y >= top) {
      $('#settings_sections').addClass('fixed');
    } else {
      $('#settings_sections').removeClass('fixed');
    }
  });

  $("#settings_sections li").each(function(index) {
    $(this).click(function(e) {
      var id = $(this).data("gazelle-section-id");
      if (id) {
        e.preventDefault();
        if (id == "all_settings" || id == "live_search") {
          $("#userform table").show();
        } else {
          $("#userform table").hide();
          $("#" + id).show();
        }
      }
    });
  });

  $("#settings_search").on("keyup", function() {
    var search = $(this).val().toLowerCase();
    if ($.trim(search).length > 0) {
      $("#userform tr").not(".colhead_dark").each(function(index) {
        var text = $(this).find("td:first").text().toLowerCase();
        if (text.length > 0 && search.length > 0 && fuzzyMatch(text, search)) {
          $(this).show();
        }
        else {
          $(this).hide();
        }
      });
    } else {
      $("#userform tr").show();
    }
  });

  // I'm sure there is a better way to do this but this will do for now.
  $("#notifications_Inbox_traditional").click(function() {
    $("#notifications_Inbox_popup").prop('checked', false);
  });
  $("#notifications_Inbox_popup").click(function() {
    $("#notifications_Inbox_traditional").prop('checked', false);
  });
  $("#notifications_Torrents_traditional").click(function() {
    $("#notifications_Torrents_popup").prop('checked', false);
  });
  $("#notifications_Torrents_popup").click(function() {
    $("#notifications_Torrents_traditional").prop('checked', false);
  });
});

function fuzzyMatch(str, pattern){
  pattern = pattern.split("").reduce(function(a,b){ return a+".*"+b; });
  return new RegExp(pattern).test(str);
};
