(function($){
	$.fn.liveFilter = function (aType) {
		
		var filterTarget = $(this);
		var child = 'li';
		
		var hide;
		var show;
		var filter;
		
		$('input.filter').keyup(function() {
			filter = "";
			if ($(this).val() != $(this).attr('placeholder') && !disableLive) {
				filter = $(this).val().toLowerCase().replace(/\s/g, '');
			}
			showOnlyChecked = $('#empf_panel').data('showOnlyChecked') == true ? '1' : '0';
			
			hide = $(filterTarget).find(child + ':not(:Contains("' + showOnlyChecked + filter + '"))');
			show = $(filterTarget).find(child + ':Contains("' + showOnlyChecked + filter + '")')

			if ( aType == 'basic' ) {
				hide.hide();
				show.show();
			} else if ( aType == 'slide' ) {
				hide.slideUp(500);
				show.slideDown(500);
			} else if ( aType == 'fade' ) {
				hide.fadeOut(400);
				show.fadeIn(400);
			}	
		});		
		

		jQuery.expr[':'].Contains = function(a,i,m){
		    if (m[3].substr(0,1) == '1' && !jQuery(a).data('checked')) return false;
		    return jQuery(a).data('matchcode').indexOf(m[3].substr(1))>=0;
		}; 

	}

})(jQuery);

jQuery.extend(jQuery.expr[':'], {
    focus: function(element) { 
        return element == document.activeElement;
    }
});

function runLiveFilter(field) {
	if (field.is(':focus')) {
		field.keyup();
	} else {
		oldEl = document.activeElement;
		field.focus();
		field.keyup();
		oldEl.focus();
	}
}

