var FixedHeader;(function(window,document,undefined){var factory=function($,DataTable){"use strict";FixedHeader=function(mTable,oInit){if(!this instanceof FixedHeader) {alert("FixedHeader warning: FixedHeader must be initialised with the 'new' keyword.");return;} var that=this;var oSettings={"aoCache":[],"oSides":{"top":true,"bottom":false,"left":0,"right":0},"oZIndexes":{"top":104,"bottom":103,"left":102,"right":101},"oCloneOnDraw":{"top":false,"bottom":false,"left":true,"right":true},"oMes":{"iTableWidth":0,"iTableHeight":0,"iTableLeft":0,"iTableRight":0,"iTableTop":0,"iTableBottom":0},"oOffset":{"top":0},"nTable":null,"bFooter":false,"bInitComplete":false};if($('body').hasClass('fixed-header')){oSettings.oOffset.top=50;} this.fnGetSettings=function(){return oSettings;};this.fnUpdate=function(){this._fnUpdateClones();this._fnUpdatePositions();};this.fnPosition=function(){this._fnUpdatePositions();};var dt=$.fn.dataTable.Api?new $.fn.dataTable.Api(mTable).settings()[0]:mTable.fnSettings();dt._oPluginFixedHeader=this;this.fnInit(dt,oInit);};FixedHeader.prototype={fnInit:function(oDtSettings,oInit) {var s=this.fnGetSettings();var that=this;this.fnInitSettings(s,oInit);if(oDtSettings.oScroll.sX!==""||oDtSettings.oScroll.sY!=="") {alert("FixedHeader 2 is not supported with DataTables' scrolling mode at this time");return;} s.nTable=oDtSettings.nTable;oDtSettings.aoDrawCallback.unshift({"fn":function(){FixedHeader.fnMeasure();that._fnUpdateClones.call(that);that._fnUpdatePositions.call(that);},"sName":"FixedHeader"});s.bFooter=($('>tfoot',s.nTable).length>0)?true:false;if(s.oSides.top) {s.aoCache.push(that._fnCloneTable("fixedHeader","FixedHeader_Header",that._fnCloneThead));} if(s.oSides.bottom) {s.aoCache.push(that._fnCloneTable("fixedFooter","FixedHeader_Footer",that._fnCloneTfoot));} if(s.oSides.left) {s.aoCache.push(that._fnCloneTable("fixedLeft","FixedHeader_Left",that._fnCloneTLeft,s.oSides.left));} if(s.oSides.right) {s.aoCache.push(that._fnCloneTable("fixedRight","FixedHeader_Right",that._fnCloneTRight,s.oSides.right));} FixedHeader.afnScroll.push(function(){that._fnUpdatePositions.call(that);});$(window).resize(function(){FixedHeader.fnMeasure();that._fnUpdateClones.call(that);that._fnUpdatePositions.call(that);});$(s.nTable).on('column-reorder.dt',function(){FixedHeader.fnMeasure();that._fnUpdateClones(true);that._fnUpdatePositions();}).on('column-visibility.dt',function(){FixedHeader.fnMeasure();that._fnUpdateClones(true);that._fnUpdatePositions();});FixedHeader.fnMeasure();that._fnUpdateClones();that._fnUpdatePositions();s.bInitComplete=true;},fnInitSettings:function(s,oInit) {if(oInit!==undefined) {if(oInit.top!==undefined){s.oSides.top=oInit.top;} if(oInit.bottom!==undefined){s.oSides.bottom=oInit.bottom;} if(typeof oInit.left=='boolean'){s.oSides.left=oInit.left?1:0;} else if(oInit.left!==undefined){s.oSides.left=oInit.left;} if(typeof oInit.right=='boolean'){s.oSides.right=oInit.right?1:0;} else if(oInit.right!==undefined){s.oSides.right=oInit.right;} if(oInit.zTop!==undefined){s.oZIndexes.top=oInit.zTop;} if(oInit.zBottom!==undefined){s.oZIndexes.bottom=oInit.zBottom;} if(oInit.zLeft!==undefined){s.oZIndexes.left=oInit.zLeft;} if(oInit.zRight!==undefined){s.oZIndexes.right=oInit.zRight;} if(oInit.offsetTop!==undefined){s.oOffset.top=oInit.offsetTop;} if(oInit.alwaysCloneTop!==undefined){s.oCloneOnDraw.top=oInit.alwaysCloneTop;} if(oInit.alwaysCloneBottom!==undefined){s.oCloneOnDraw.bottom=oInit.alwaysCloneBottom;} if(oInit.alwaysCloneLeft!==undefined){s.oCloneOnDraw.left=oInit.alwaysCloneLeft;} if(oInit.alwaysCloneRight!==undefined){s.oCloneOnDraw.right=oInit.alwaysCloneRight;}}},_fnCloneTable:function(sType,sClass,fnClone,iCells) {var s=this.fnGetSettings();var nCTable;if($(s.nTable.parentNode).css('position')!="absolute") {s.nTable.parentNode.style.position="relative";} nCTable=s.nTable.cloneNode(false);nCTable.removeAttribute('id');var nDiv=document.createElement('div');nDiv.style.position="absolute";nDiv.style.top="0px";nDiv.style.left="0px";nDiv.className+=" FixedHeader_Cloned "+sType+" "+sClass;if(sType=="fixedHeader") {nDiv.style.zIndex=s.oZIndexes.top;} if(sType=="fixedFooter") {nDiv.style.zIndex=s.oZIndexes.bottom;} if(sType=="fixedLeft") {nDiv.style.zIndex=s.oZIndexes.left;} else if(sType=="fixedRight") {nDiv.style.zIndex=s.oZIndexes.right;} nCTable.style.margin="0";nDiv.appendChild(nCTable);document.body.appendChild(nDiv);return{"nNode":nCTable,"nWrapper":nDiv,"sType":sType,"sPosition":"","sTop":"","sLeft":"","fnClone":fnClone,"iCells":iCells};},_fnMeasure:function() {var s=this.fnGetSettings(),m=s.oMes,jqTable=$(s.nTable),oOffset=jqTable.offset(),iParentScrollTop=this._fnSumScroll(s.nTable.parentNode,'scrollTop'),iParentScrollLeft=this._fnSumScroll(s.nTable.parentNode,'scrollLeft');m.iTableWidth=jqTable.outerWidth();m.iTableHeight=jqTable.outerHeight();m.iTableLeft=oOffset.left+ s.nTable.parentNode.scrollLeft;m.iTableTop=oOffset.top+ iParentScrollTop;m.iTableRight=m.iTableLeft+ m.iTableWidth;m.iTableRight=FixedHeader.oDoc.iWidth- m.iTableLeft- m.iTableWidth;m.iTableBottom=FixedHeader.oDoc.iHeight- m.iTableTop- m.iTableHeight;},_fnSumScroll:function(n,side) {var i=n[side];while(n=n.parentNode) {if(n.nodeName=='HTML'||n.nodeName=='BODY') {break;} i=n[side];} return i;},_fnUpdatePositions:function() {var s=this.fnGetSettings();this._fnMeasure();for(var i=0,iLen=s.aoCache.length;ioWin.iScrollTop+ s.oOffset.top) {this._fnUpdateCache(oCache,'sPosition',"absolute",'position',nTable.style);this._fnUpdateCache(oCache,'sTop',oMes.iTableTop+"px",'top',nTable.style);this._fnUpdateCache(oCache,'sLeft',oMes.iTableLeft+"px",'left',nTable.style);} else if(oWin.iScrollTop+ s.oOffset.top>oMes.iTableTop+iTbodyHeight) {this._fnUpdateCache(oCache,'sPosition',"absolute",'position',nTable.style);this._fnUpdateCache(oCache,'sTop',(oMes.iTableTop+iTbodyHeight)+"px",'top',nTable.style);this._fnUpdateCache(oCache,'sLeft',oMes.iTableLeft+"px",'left',nTable.style);} else {this._fnUpdateCache(oCache,'sPosition','fixed','position',nTable.style);this._fnUpdateCache(oCache,'sTop',s.oOffset.top+"px",'top',nTable.style);this._fnUpdateCache(oCache,'sLeft',(oMes.iTableLeft-oWin.iScrollLeft)+"px",'left',nTable.style);}},_fnUpdateCache:function(oCache,sCache,sSet,sProperty,oObj) {if(oCache[sCache]!=sSet) {oObj[sProperty]=sSet;oCache[sCache]=sSet;}},_fnClassUpdate:function(source,dest) {var that=this;if(source.nodeName.toUpperCase()==="TR"||source.nodeName.toUpperCase()==="TH"||source.nodeName.toUpperCase()==="TD"||source.nodeName.toUpperCase()==="SPAN") {dest.className=source.className;} $(source).children().each(function(i){that._fnClassUpdate($(source).children()[i],$(dest).children()[i]);});},_fnCloneThead:function(oCache) {var s=this.fnGetSettings();var nTable=oCache.nNode;if(s.bInitComplete&&!s.oCloneOnDraw.top) {this._fnClassUpdate($('thead',s.nTable)[0],$('thead',nTable)[0]);return;} var iDtWidth=$(s.nTable).outerWidth();oCache.nWrapper.style.width=iDtWidth+"px";nTable.style.width=iDtWidth+"px";while(nTable.childNodes.length>0) {$('thead th',nTable).unbind('click');nTable.removeChild(nTable.childNodes[0]);} var nThead=$('thead',s.nTable).clone(true)[0];nTable.appendChild(nThead);var a=[];var b=[];$("thead>tr th",s.nTable).each(function(i){a.push($(this).width());});$("thead>tr td",s.nTable).each(function(i){b.push($(this).width());});$("thead>tr th",s.nTable).each(function(i){$("thead>tr th:eq("+i+")",nTable).width(a[i]);$(this).width(a[i]);});$("thead>tr td",s.nTable).each(function(i){$("thead>tr td:eq("+i+")",nTable).width(b[i]);$(this).width(b[i]);});$('th.sorting, th.sorting_desc, th.sorting_asc',nTable).bind('click',function(){this.blur();});},_fnCloneTfoot:function(oCache) {var s=this.fnGetSettings();var nTable=oCache.nNode;oCache.nWrapper.style.width=$(s.nTable).outerWidth()+"px";while(nTable.childNodes.length>0) {nTable.removeChild(nTable.childNodes[0]);} var nTfoot=$('tfoot',s.nTable).clone(true)[0];nTable.appendChild(nTfoot);$("tfoot:eq(0)>tr th",s.nTable).each(function(i){$("tfoot:eq(0)>tr th:eq("+i+")",nTable).width($(this).width());});$("tfoot:eq(0)>tr td",s.nTable).each(function(i){$("tfoot:eq(0)>tr td:eq("+i+")",nTable).width($(this).width());});},_fnCloneTLeft:function(oCache) {var s=this.fnGetSettings();var nTable=oCache.nNode;var nBody=$('tbody',s.nTable)[0];while(nTable.childNodes.length>0) {nTable.removeChild(nTable.childNodes[0]);} nTable.appendChild($("thead",s.nTable).clone(true)[0]);nTable.appendChild($("tbody",s.nTable).clone(true)[0]);if(s.bFooter) {nTable.appendChild($("tfoot",s.nTable).clone(true)[0]);} var sSelector='gt('+(oCache.iCells- 1)+')';$('thead tr',nTable).each(function(k){$('th:'+ sSelector,this).remove();});$('tfoot tr',nTable).each(function(k){$('th:'+ sSelector,this).remove();});$('tbody tr',nTable).each(function(k){$('td:'+ sSelector,this).remove();});this.fnEqualiseHeights('thead',nBody.parentNode,nTable);this.fnEqualiseHeights('tbody',nBody.parentNode,nTable);this.fnEqualiseHeights('tfoot',nBody.parentNode,nTable);var iWidth=0;for(var i=0;i0) {nTable.removeChild(nTable.childNodes[0]);} nTable.appendChild($("thead",s.nTable).clone(true)[0]);nTable.appendChild($("tbody",s.nTable).clone(true)[0]);if(s.bFooter) {nTable.appendChild($("tfoot",s.nTable).clone(true)[0]);} $('thead tr th:lt('+(iCols-oCache.iCells)+')',nTable).remove();$('tfoot tr th:lt('+(iCols-oCache.iCells)+')',nTable).remove();$('tbody tr',nTable).each(function(k){$('td:lt('+(iCols-oCache.iCells)+')',this).remove();});this.fnEqualiseHeights('thead',nBody.parentNode,nTable);this.fnEqualiseHeights('tbody',nBody.parentNode,nTable);this.fnEqualiseHeights('tfoot',nBody.parentNode,nTable);var iWidth=0;for(var i=0;i