(function($,w,undefined){if(w.footable===undefined||w.footable===null){throw new Error('Please check and make sure footable.js is included in the page and is loaded prior to this script.')} var defaults={filter:{enabled:!0,input:'.footable-filter',timeout:300,minimum:2,disableEnter:!1,filterFunction:function(index){var $t=$(this),$table=$t.parents('table:first'),filter=$table.data('current-filter').toUpperCase(),text=$t.find('td').text();if(!$table.data('filter-text-only')){$t.find('td[data-value]').each(function(){text+=$(this).data('value')})} return text.toUpperCase().indexOf(filter)>=0}}};function Filter(){var p=this;p.name='Footable Filter';p.init=function(ft){p.footable=ft;if(ft.options.filter.enabled===!0){if($(ft.table).data('filter')===!1){return} ft.timers.register('filter');$(ft.table).unbind('.filtering').bind({'footable_initialized.filtering':function(e){var $table=$(ft.table);var data={'input':$table.data('filter')||ft.options.filter.input,'timeout':$table.data('filter-timeout')||ft.options.filter.timeout,'minimum':$table.data('filter-minimum')||ft.options.filter.minimum,'disableEnter':$table.data('filter-disable-enter')||ft.options.filter.disableEnter};if(data.disableEnter){$(data.input).keypress(function(event){if(window.event){return(window.event.keyCode!==13)}else{return(event.which!==13)}})} $table.bind('footable_clear_filter',function(){$(data.input).val('');p.clearFilter()});$table.bind('footable_filter',function(event,args){p.filter(args.filter)});$(data.input).keyup(function(eve){ft.timers.filter.stop();if(eve.which===27){$(data.input).val('')} ft.timers.filter.start(function(){var val=$(data.input).val()||'';p.filter(val)},data.timeout)})},'footable_redrawn.filtering':function(e){var $table=$(ft.table),filter=$table.data('filter-string');if(filter){p.filter(filter)}}}).data('footable-filter',p)}};p.filter=function(filterString){var ft=p.footable,$table=$(ft.table),minimum=$table.data('filter-minimum')||ft.options.filter.minimum,clear=!filterString;var event=ft.raise('footable_filtering',{filter:filterString,clear:clear});if(event&&event.result===!1){return} if(event.filter&&event.filter.length tbody > tr').hide().addClass('footable-filtered');var rows=$table.find('> tbody > tr:not(.footable-row-detail)');$.each(filters,function(i,f){if(f&&f.length>0){$table.data('current-filter',f);rows=rows.filter(ft.options.filter.filterFunction)}});rows.each(function(){p.showRow(this,ft);$(this).removeClass('footable-filtered')});$table.data('filter-string',event.filter);ft.raise('footable_filtered',{filter:event.filter,clear:!1})}};p.clearFilter=function(){var ft=p.footable,$table=$(ft.table);$table.find('> tbody > tr:not(.footable-row-detail)').removeClass('footable-filtered').each(function(){p.showRow(this,ft)});$table.removeData('filter-string');ft.raise('footable_filtered',{clear:!0})};p.showRow=function(row,ft){var $row=$(row),$next=$row.next(),$table=$(ft.table);if($row.is(':visible')){return} if($table.hasClass('breakpoint')&&$row.hasClass('footable-detail-show')&&$next.hasClass('footable-row-detail')){$row.add($next).show();ft.createOrUpdateDetailRow(row)}else{$row.show()}}} w.footable.plugins.register(Filter,defaults)})(jQuery,window)