jQuery(function ($) {
    // kontextnavigation nur fixed, wenn notwendig
    (function () {
        var lulHead = $('div.contextHead:first');
        var pageList = $('div.contentNavigator ul.pageList');
        var isFixed = false;
        $(window).bind('scroll resize', function () {
            if (lulHead.is(':above-the-top')) {
                if (!isFixed) {
                    isFixed = true;
                    pageList.addClass('fixedPageList');
                }
            } else if (isFixed) {
                isFixed = false;
                pageList.removeClass('fixedPageList');
            }
        });
    })();
    
    (function () {
      var filterForm = $('.complexBar form[name="frm_objects_filter"]');
      var filterControls = filterForm.find('select');
      
      //submit on change
      var bindFilterControls = function()	{
        filterControls.each(function(index){
          $(this).bind('change.submission', function()	{
            consolidateFilterState($(this));
            filterForm.submit();
          });
        });    	  
      }
      
      var unBindFilterControls = function()	{
        filterControls.each(function(index){
          $(this).unbind('change.submission');
        });    	  
      }
      
      var consolidateFilterState = function(currentFilterControl)	{
        var levelAttrName = 'data-filter-level';
        if(currentFilterControl.attr(levelAttrName))	{
          unBindFilterControls();
          filterControls.each(function(index){
            if(+currentFilterControl.attr(levelAttrName) < +$(this).attr(levelAttrName))	{
              $(this).val('');
            }        	  
          });
        }
      }
      
      //init
      bindFilterControls();
      $('#btnClearFilterValues').bind('click.reset', function(){
        filterControls.each(function(index){
          if($(this).attr('data-filter-level'))	{
            this.selectedIndex = 0;
          }
        });
        filterForm.submit();
      });
    })();
});

