var leftClass=[],rightClass=[],headClass=[],headAndLeftClass=[],headAndRightClass=[],rightColumns,leftColumns,headColumns,headAndLeftColumns,headAndRightColumns;rightColumns=$();leftColumns=$();headAndRightColumns=$();headAndLeftColumns=$();headColumns=$();
(function(e){e.fn.tableHeadFixer=function(q){function r(){function d(){var a=c.scrollTop(),b=c.scrollLeft(),d=c[0].scrollWidth-c[0].clientWidth-b+"px";g&&headColumns.css("top",a);s&&leftColumns.css("left",b);h&&(headAndLeftColumns.css("left",b),headAndLeftColumns.css("top",a));k&&(headAndRightColumns.css("right",d),headAndRightColumns.css("top",a));t&&rightColumns.css("right",d)}var c=e(b.parent),a=e(b.table);c.append(a);c.css({"overflow-x":"auto","overflow-y":"auto"});var s=0<b.left||null!==leftClass&&
0<leftClass.length,t=0<b.right||null!==rightClass&&0<rightClass.length,g=null!==headClass&&0<headClass.length,h=null!==headAndLeftClass&&0<headAndLeftClass.length,k=null!==headAndRightClass&&0<headAndRightClass.length,l;-1<u()&&(l=e.debounce(1,d));void 0!==l?c.scroll(l):c.scroll(d)}function v(){headColumns=e();for(var d=0;d<headClass.length;d++)for(var c=e(b.parent).find("."+headClass[d]),a=0;a<c.length;a++)headColumns=headColumns.add(c[a])}function w(){headAndRightColumns=e();for(var d=0;d<headAndRightClass.length;d++)for(var c=
e(b.parent).find("."+headAndRightClass[d]),a=0;a<c.length;a++)headAndRightColumns=headAndRightColumns.add(c[a])}function x(){headAndLeftColumns=e();for(var d=0;d<headAndLeftClass.length;d++)for(var c=e(b.parent).find("."+headAndLeftClass[d]),a=0;a<c.length;a++)headAndLeftColumns=headAndLeftColumns.add(c[a])}function y(){rightColumns=e();for(var d=0;d<rightClass.length;d++)for(var c=e(b.parent).find("."+rightClass[d]),a=0;a<c.length;a++)rightColumns=rightColumns.add(c[a])}function z(){leftColumns=
e();for(var d=0;d<leftClass.length;d++)for(var c=e(b.parent).find("."+leftClass[d]),a=0;a<c.length;a++)leftColumns=leftColumns.add(c[a])}function h(d){headColumnsAux=e();A(function(c){headColumns=headColumns.add(c);headColumnsAux=headColumnsAux.add(c)});headColumnsAux.each(function(c,a){a=e(a);g(a);null!==b.headZIndex&&b.headZIndex&&null!==b.headClassI&&void 0!==b.headClassI?0<=a[0].className.indexOf(b.headClassI)&&a.css({position:"relative","z-index":"1"}):a.css({position:"relative"})})}function k(b){headAndLeftColumnsAux=
e();B(function(c){headAndLeftColumns=headAndLeftColumns.add(c);headAndLeftColumnsAux=headAndLeftColumnsAux.add(c)});headAndLeftColumnsAux.each(function(c,a){a=e(a);g(a);a.css({position:"relative","z-index":50})})}function m(b){headAndRightColumnsAux=e();C(function(c){headAndRightColumns=headAndRightColumns.add(c);headAndRightColumnsAux=headAndRightColumnsAux.add(c)});headAndRightColumnsAux.each(function(c,a){a=e(a);g(a);a.css({position:"relative","z-index":50})})}function n(d){d=e(b.table).find("tr");
leftColumnsAux=e();d.each(function(c,a){null!==leftClass&&0<leftClass.length&&D(a,function(a){leftColumns=leftColumns.add(a);leftColumnsAux=leftColumnsAux.add(a)})});leftColumnsAux.each(function(c,a){a=e(a);g(a);a.css({position:"relative"})})}function p(d){d=e(b.table);rightColumnsAux=e();d.find("tr").each(function(c,a){E(a,function(a){rightColumns=rightColumns.add(a);rightColumnsAux=rightColumnsAux.add(a)})});rightColumnsAux.each(function(c,a){a=e(a);g(a);a.css({position:"relative"})})}function g(b){b.each(function(c,
a){a=e(a);var b=e(a).parent(),d=a.css("background-color"),d="transparent"==d||"rgba(0, 0, 0, 0)"==d?null:d,b=b.css("background-color"),b="transparent"==b||"rgba(0, 0, 0, 0)"==b?null:b,d=d?d:b?b:"white";a.css("background-color",d)})}function D(d,c){var a=b.leftClassI;cellsFromClass=e(d).find("."+a);if(0<cellsFromClass.length)for(f=0;f<cellsFromClass.length;f++)c(cellsFromClass[f])}function E(d,c){var a=b.rightClassI;cellsFromClass=e(d).find("."+a);if(0<cellsFromClass.length)for(f=0;f<cellsFromClass.length;f++)c(cellsFromClass[f])}
function A(d){for(var c=b.headClassI,c=e(b.parent).find("."+c),a=0;a<c.length;a++)d(c[a])}function B(d){for(var c=b.headAndLeftClassI,c=e(b.parent).find("."+c),a=0;a<c.length;a++)d(c[a])}function C(d){for(var c=b.headAndRightClassI,c=e(b.parent).find("."+c),a=0;a<c.length;a++)d(c[a])}function u(){var b=-1;if("Microsoft Internet Explorer"==navigator.appName){var c=navigator.userAgent,a=/MSIE ([0-9]{1,}[.0-9]{0,})/;null!=a.exec(c)&&(b=parseFloat(RegExp.$1))}else"Netscape"==navigator.appName&&(c=navigator.userAgent,
a=/Trident\/.*rv:([0-9]{1,}[.0-9]{0,})/,null!=a.exec(c)&&(b=parseFloat(RegExp.$1)));return b}var b=e.extend({},{"z-index":0,leftClassI:null,rightClassI:null,headClassI:null,headAndLeftClassI:null,headAndRightClassI:null,headZIndex:null,removeHeadAndRightClass:null,removeHeadAndLeftClass:null,removeHeadClass:null,removeRightClass:null,removeLeftClass:null},q);return this.each(function(){b.table=this;b.parent=e(b.table).parent();null!==b.leftClassI&&(-1==jQuery.inArray(b.leftClassI,leftClass)?(leftClass.push(b.leftClassI),
n(!1)):n(!0));null!==b.rightClassI&&(-1==jQuery.inArray(b.rightClassI,rightClass)?(rightClass.push(b.rightClassI),p(!1)):p(!0));null!==b.headClassI&&(-1==jQuery.inArray(b.headClassI,headClass)?(headClass.push(b.headClassI),h(!1)):h(!0));null!==b.headAndLeftClassI&&(-1==jQuery.inArray(b.headAndLeftClassI,headAndLeftClass)?(headAndLeftClass.push(b.headAndLeftClassI),k(!1)):k(!0));null!=b.headAndRightClassI&&(-1==jQuery.inArray(b.headAndRightClassI,headAndRightClass)?(headAndRightClass.push(b.headAndRightClassI),
m(!1)):m(!0));null!==b.removeHeadAndRightClass&&-1!==jQuery.inArray(b.removeHeadAndRightClass,headAndRightClass)&&(headAndRightClass=e.grep(headAndRightClass,function(d,c){return d!=b.removeHeadAndRightClass}),w());null!==b.removeHeadAndLeftClass&&-1!==jQuery.inArray(b.removeHeadAndLeftClass,headAndLeftClass)&&(headAndLeftClass=e.grep(headAndLeftClass,function(d,c){return d!=b.removeHeadAndLeftClass}),x());null!==b.removeHeadClass&&-1!==jQuery.inArray(b.removeHeadClass,headClass)&&(headClass=e.grep(headClass,
function(d,c){return d!=b.removeHeadClass}),v());null!==b.removeRightClass&&-1!==jQuery.inArray(b.removeRightClass,rightClass)&&(rightClass=e.grep(rightClass,function(d,c){return d!=b.removeRightClass}),y());null!==b.removeLeftClass&&-1!==jQuery.inArray(b.removeLeftClass,leftClass)&&(leftClass=e.grep(leftClass,function(d,c){return d!=b.removeLeftClass}),z());r();e(b.parent).trigger("scroll")})}})(jQuery);
