(function(n,t){function i(){var n=this;n.id=null;n.busy=!1;n.start=function(t,i){n.busy||(n.stop(),n.id=setTimeout(function(){t();n.id=null;n.busy=!1},i),n.busy=!0)};n.stop=function(){n.id!==null&&(clearTimeout(n.id),n.id=null,n.busy=!1)}}function u(r,u,f){var e=this;e.id=f;e.table=r;e.options=u;e.breakpoints=[];e.breakpointNames="";e.columns={};e.plugins=t.footable.plugins.load(e);var s=e.options,o=s.classes,c=s.events,h=s.triggers,l=0;return e.timers={resize:new i,register:function(n){return e.timers[n]=new i,e.timers[n]}},e.init=function(){var u=n(t),i=n(e.table),r;if(t.footable.plugins.init(e),i.hasClass(o.loaded)){e.raise(c.alreadyInitialized);return}e.raise(c.initializing);i.addClass(o.loading);i.find(s.columnDataSelector).each(function(){var n=e.getColumnData(this);e.columns[n.index]=n});for(r in s.breakpoints)e.breakpoints.push({name:r,width:s.breakpoints[r]}),e.breakpointNames+=r+" ";e.breakpoints.sort(function(n,t){return n.width-t.width});i.unbind(h.initialize).bind(h.initialize,function(){i.removeData("footable_info");i.data("breakpoint","");i.trigger(h.resize);i.removeClass(o.loading);i.addClass(o.loaded).addClass(o.main);e.raise(c.initialized)}).unbind(h.redraw).bind(h.redraw,function(){e.redraw()}).unbind(h.resize).bind(h.resize,function(){e.resize()}).unbind(h.expandFirstRow).bind(h.expandFirstRow,function(){i.find(s.toggleSelector).first().not("."+o.detailShow).trigger(h.toggleRow)}).unbind(h.expandAll).bind(h.expandAll,function(){i.find(s.toggleSelector).not("."+o.detailShow).trigger(h.toggleRow)}).unbind(h.collapseAll).bind(h.collapseAll,function(){i.find("."+o.detailShow).trigger(h.toggleRow)});i.trigger(h.initialize);u.bind("resize.footable",function(){e.timers.resize.stop();e.timers.resize.start(function(){e.raise(h.resize)},s.delay)})},e.addRowToggle=function(){var t,i,u,r,f;if(s.addRowToggle){t=n(e.table);i=!1;t.find("span."+o.toggle).remove();for(u in e.columns)if(r=e.columns[u],r.toggle){i=!0;f="> tbody > tr:not(."+o.detail+",."+o.disabled+") > td:nth-child("+(parseInt(r.index,10)+1)+")";t.find(f).not("."+o.detailCell).prepend(n(s.toggleHTMLElement).addClass(o.toggle));return}i||t.find("> tbody > tr:not(."+o.detail+",."+o.disabled+") > td:first-child").not("."+o.detailCell).prepend(n(s.toggleHTMLElement).addClass(o.toggle))}},e.setColumnClasses=function(){var u,t,i,r;$table=n(e.table);for(u in e.columns)t=e.columns[u],t.className!==null&&(i="",r=!0,n.each(t.matches,function(n,t){r||(i+=", ");i+="> tbody > tr:not(."+o.detail+") > td:nth-child("+(parseInt(t,10)+1)+")";r=!1}),$table.find(i).not("."+o.detailCell).addClass(t.className))},e.bindToggleSelectors=function(){var t=n(e.table);e.hasAnyBreakpointColumn()&&(t.find(s.toggleSelector).unbind(h.toggleRow).bind(h.toggleRow,function(){var t=n(this).is("tr")?n(this):n(this).parents("tr:first");e.toggleDetail(t)}),t.find(s.toggleSelector).unbind("click.footable").bind("click.footable",function(i){t.is(".breakpoint")&&n(i.target).is("td,."+o.toggle)&&n(this).trigger(h.toggleRow)}))},e.parse=function(n,t){var i=s.parsers[t.type]||s.parsers.alpha;return i(n)},e.getColumnData=function(t){var i=n(t),o=i.data("hide"),k=i.index(),r,w,y,p,h,u,f,a,v,b;if(o=o||"",o=jQuery.map(o.split(","),function(n){return jQuery.trim(n)}),r={index:k,hide:{},type:i.data("type")||"alpha",name:i.data("name")||n.trim(i.text()),ignore:i.data("ignore")||!1,toggle:i.data("toggle")||!1,className:i.data("class")||null,matches:[],names:{},group:i.data("group")||null,groupName:null},r.group!==null&&(w=n(e.table).find('> thead > tr.footable-group-row > th[data-group="'+r.group+'"], > thead > tr.footable-group-row > td[data-group="'+r.group+'"]').first(),r.groupName=e.parse(w,{type:"alpha"})),y=parseInt(i.prev().attr("colspan")||0,10),l+=y>1?y-1:0,p=parseInt(i.attr("colspan")||0,10),h=r.index+l,p>1)for(u=i.data("names"),u=u||"",u=u.split(","),f=0;f<p;f++)r.matches.push(f+h),f<u.length&&(r.names[f+h]=u[f]);else r.matches.push(h);r.hide["default"]=i.data("hide")==="all"||n.inArray("default",o)>=0;a=!1;for(v in s.breakpoints)r.hide[v]=i.data("hide")==="all"||n.inArray(v,o)>=0,a=a||r.hide[v];return r.hasBreakpoint=a,b=e.raise(c.columnData,{column:{data:r,th:t}}),b.column.data},e.getViewportWidth=function(){return window.innerWidth||(document.body?document.body.offsetWidth:0)},e.calculateWidth=function(n,t){return jQuery.isFunction(s.calculateWidthOverride)?s.calculateWidthOverride(n,t):(t.viewportWidth<t.width&&(t.width=t.viewportWidth),t.parentWidth<t.width&&(t.width=t.parentWidth),t)},e.hasBreakpointColumn=function(n){for(var t in e.columns)if(e.columns[t].hide[n]){if(e.columns[t].ignore)continue;return!0}return!1},e.hasAnyBreakpointColumn=function(){for(var n in e.columns)if(e.columns[n].hasBreakpoint)return!0;return!1},e.resize=function(){var t=n(e.table),i,r,o,u,s;if(t.is(":visible")&&e.hasAnyBreakpointColumn()){if(i={width:t.width(),viewportWidth:e.getViewportWidth(),parentWidth:t.parent().width()},i=e.calculateWidth(t,i),r=t.data("footable_info"),t.data("footable_info",i),e.raise(c.resizing,{old:r,info:i}),!r||r&&r.width&&r.width!==i.width){for(o=null,s=0;s<e.breakpoints.length;s++)if(u=e.breakpoints[s],u&&u.width&&i.width<=u.width){o=u;break}var f=o===null?"default":o.name,l=e.hasBreakpointColumn(f),a=t.data("breakpoint");t.data("breakpoint",f).removeClass("default breakpoint").removeClass(e.breakpointNames).addClass(f+(l?" breakpoint":""));f!==a&&(t.trigger(h.redraw),e.raise(c.breakpoint,{breakpoint:f,info:i}))}e.raise(c.resized,{old:r,info:i})}},e.redraw=function(){e.addRowToggle();e.bindToggleSelectors();e.setColumnClasses();var t=n(e.table),i=t.data("breakpoint"),r=e.hasBreakpointColumn(i);t.find("> tbody > tr:not(."+o.detail+")").data("detail_created",!1).end().find("> thead > tr:last-child > th").each(function(){var r=e.columns[n(this).index()],u="",h=!0,f;if(n.each(r.matches,function(n,t){h||(u+=", ");var i=t+1;u+="> tbody > tr:not(."+o.detail+") > td:nth-child("+i+")";u+=", > tfoot > tr:not(."+o.detail+") > td:nth-child("+i+")";u+=", > colgroup > col:nth-child("+i+")";h=!1}),u+=', > thead > tr[data-group-row="true"] > th[data-group="'+r.group+'"]',f=t.find(u).add(this),r.hide[i]===!1?f.show():f.hide(),t.find("> thead > tr.footable-group-row").length===1){var l=t.find('> thead > tr:last-child > th[data-group="'+r.group+'"]:visible, > thead > tr:last-child > th[data-group="'+r.group+'"]:visible'),c=t.find('> thead > tr.footable-group-row > th[data-group="'+r.group+'"], > thead > tr.footable-group-row > td[data-group="'+r.group+'"]'),s=0;n.each(l,function(){s+=parseInt(n(this).attr("colspan")||1,10)});s>0?c.attr("colspan",s).show():c.hide()}}).end().find("> tbody > tr."+o.detailShow).each(function(){e.createOrUpdateDetailRow(this)});t.find("> tbody > tr."+o.detailShow+":visible").each(function(){var t=n(this).next();t.hasClass(o.detail)&&(r?t.show():t.hide())});t.find("> thead > tr > th.footable-last-column, > tbody > tr > td.footable-last-column").removeClass("footable-last-column");t.find("> thead > tr > th.footable-first-column, > tbody > tr > td.footable-first-column").removeClass("footable-first-column");t.find("> thead > tr, > tbody > tr").find("> th:visible:last, > td:visible:last").addClass("footable-last-column").end().find("> th:visible:first, > td:visible:first").addClass("footable-first-column");e.raise(c.redrawn)},e.toggleDetail=function(t){var i=t.jquery?t:n(t),r=i.next();i.hasClass(o.detailShow)?(i.removeClass(o.detailShow),r.hasClass(o.detail)&&r.hide(),e.raise(c.rowCollapsed,{row:i[0]})):(e.createOrUpdateDetailRow(i[0]),i.addClass(o.detailShow),r.show(),e.raise(c.rowExpanded,{row:i[0]}))},e.removeRow=function(t){var i=t.jquery?t:n(t),r;i.hasClass(o.detail)&&(i=i.prev());r=i.next();i.data("detail_created")===!0&&r.remove();i.remove();e.raise(c.rowRemoved)},e.appendRow=function(t){var i=t.jquery?t:n(t);n(e.table).find("tbody").append(i);e.redraw()},e.getColumnFromTdIndex=function(t){var r=null,i;for(i in e.columns)if(n.inArray(t,e.columns[i].matches)>=0){r=e.columns[i];break}return r},e.createOrUpdateDetailRow=function(t){var i=n(t),r=i.next(),h,u=[],l,f;return i.data("detail_created")===!0?!0:i.is(":hidden")?!1:(e.raise(c.rowDetailUpdating,{row:i,detail:r}),i.find("> td:hidden").each(function(){var i=n(this).index(),t=e.getColumnFromTdIndex(i),r=t.name;return t.ignore===!0?!0:(i in t.names&&(r=t.names[i]),u.push({name:r,value:e.parse(this,t),display:n.trim(n(this).html()),group:t.group,groupName:t.groupName}),!0)}),u.length===0)?!1:(l=i.find("> td:visible").length,f=r.hasClass(o.detail),f||(r=n('<tr class="'+o.detail+'"><td class="'+o.detailCell+'"><div class="'+o.detailInner+'"><\/div><\/td><\/tr>'),i.after(r)),r.find("> td:first").attr("colspan",l),h=r.find("."+o.detailInner).empty(),s.createDetail(h,u,s.createGroupedDetail,s.detailSeparator,o),i.data("detail_created",!0),e.raise(c.rowDetailUpdated,{row:i,detail:r}),!f)},e.raise=function(t,i){var u,r;return e.options.debug===!0&&n.isFunction(e.options.log)&&e.options.log(t,"event"),i=i||{},u={ft:e},n.extend(!0,u,i),r=n.Event(t,u),r.ft||n.extend(!0,r,u),n(e.table).trigger(r),r},e.reset=function(){var t=n(e.table);t.removeData("footable_info").data("breakpoint","").removeClass(o.loading).removeClass(o.loaded);t.find(s.toggleSelector).unbind(h.toggleRow).unbind("click.footable");t.find("> tbody > tr").removeClass(o.detailShow);t.find("> tbody > tr."+o.detail).remove();e.raise(c.reset)},e.init(),e}t.footable={options:{delay:100,breakpoints:{phone:480,tablet:1024},parsers:{alpha:function(t){return n(t).data("value")||n.trim(n(t).text())},numeric:function(t){var i=n(t).data("value")||n(t).text().replace(/[^0-9.\-]/g,"");return i=parseFloat(i),isNaN(i)&&(i=0),i}},addRowToggle:!0,calculateWidthOverride:null,toggleSelector:" > tbody > tr:not(.footable-row-detail)",columnDataSelector:"> thead > tr:last-child > th, > thead > tr:last-child > td",detailSeparator:":",toggleHTMLElement:"<span />",createGroupedDetail:function(n){for(var i={_none:{name:null,data:[]}},r,t=0;t<n.length;t++)r=n[t].group,r!==null?(r in i||(i[r]={name:n[t].groupName||n[t].group,data:[]}),i[r].data.push(n[t])):i._none.data.push(n[t]);return i},createDetail:function(n,t,i,r,u){var e=i(t),f,o,s;for(f in e)if(e[f].data.length!==0)for(f!=="_none"&&n.append('<div class="'+u.detailInnerGroup+'">'+e[f].name+"<\/div>"),o=0;o<e[f].data.length;o++)s=e[f].data[o].name?r:"",n.append('<div class="'+u.detailInnerRow+'"><div class="'+u.detailInnerName+'">'+e[f].data[o].name+s+'<\/div><div class="'+u.detailInnerValue+'">'+e[f].data[o].display+"<\/div><\/div>")},classes:{main:"footable",loading:"footable-loading",loaded:"footable-loaded",toggle:"footable-toggle",disabled:"footable-disabled",detail:"footable-row-detail",detailCell:"footable-row-detail-cell",detailInner:"footable-row-detail-inner",detailInnerRow:"footable-row-detail-row",detailInnerGroup:"footable-row-detail-group",detailInnerName:"footable-row-detail-name",detailInnerValue:"footable-row-detail-value",detailShow:"footable-detail-show"},triggers:{initialize:"footable_initialize",resize:"footable_resize",redraw:"footable_redraw",toggleRow:"footable_toggle_row",expandFirstRow:"footable_expand_first_row",expandAll:"footable_expand_all",collapseAll:"footable_collapse_all"},events:{alreadyInitialized:"footable_already_initialized",initializing:"footable_initializing",initialized:"footable_initialized",resizing:"footable_resizing",resized:"footable_resized",redrawn:"footable_redrawn",breakpoint:"footable_breakpoint",columnData:"footable_column_data",rowDetailUpdating:"footable_row_detail_updating",rowDetailUpdated:"footable_row_detail_updated",rowCollapsed:"footable_row_collapsed",rowExpanded:"footable_row_expanded",rowRemoved:"footable_row_removed",reset:"footable_reset"},debug:!1,log:null},version:{major:0,minor:5,toString:function(){return t.footable.version.major+"."+t.footable.version.minor},parse:function(n){return version=/(\d+)\.?(\d+)?\.?(\d+)?/.exec(n),{major:parseInt(version[1],10)||0,minor:parseInt(version[2],10)||0,patch:parseInt(version[3],10)||0}}},plugins:{_validate:function(i){if(!n.isFunction(i))return t.footable.options.debug===!0&&console.error('Validation failed, expected type "function", received type "{0}".',typeof i),!1;var r=new i;return typeof r.name!="string"?(t.footable.options.debug===!0&&console.error('Validation failed, plugin does not implement a string property called "name".',r),!1):n.isFunction(r.init)?(t.footable.options.debug===!0&&console.log('Validation succeeded for plugin "'+r.name+'".',r),!0):(t.footable.options.debug===!0&&console.error('Validation failed, plugin "'+r.name+'" does not implement a function called "init".',r),!1)},registered:[],register:function(i,r){t.footable.plugins._validate(i)&&(t.footable.plugins.registered.push(i),typeof r=="object"&&n.extend(!0,t.footable.options,r))},load:function(n){for(var r=[],u,i=0;i<t.footable.plugins.registered.length;i++)try{u=t.footable.plugins.registered[i];r.push(new u(n))}catch(f){t.footable.options.debug===!0&&console.error(f)}return r},init:function(n){for(var i=0;i<n.plugins.length;i++)try{n.plugins[i].init(n)}catch(r){t.footable.options.debug===!0&&console.error(r)}}}};var r=0;n.fn.footable=function(i){i=i||{};var f=n.extend(!0,{},t.footable.options,i);return this.each(function(){r++;var t=new u(this,f,r);n(this).data("footable",t)})}})(jQuery,window)