mw.loader.implement("jquery.tablesorter",function($,jQuery){(function($,mw){var ts,parsers=[];function getParserById(name){var i,len=parsers.length;for(i=0;i4)?5:rows.length;while(i=needed){return parsers[i];}}else{i++;rowIndex=0;concurrent=0;empty=0;}}else{empty++;rowIndex++;if(rowIndex>=rows.length){if(concurrent>=rows.length-empty){return parsers[i];}i++;rowIndex=0;concurrent=0;empty=0;}}}return parsers[0];}function buildParserCache(table,$headers){var sortType,len,j,parser,rows=table.tBodies[0].rows,config=$(table).data('tablesorter').config,parsers=[];if(rows[0]){len=config.columns;for(j=0;j tbody > tr');if( !$table.get(0).tHead){$thead=$('');$rows.each(function(){if($(this).children('td').length){return false;}$thead.append(this);});$table.find(' > tbody:first').before($thead);}if(!$table.get(0).tFoot){$tfoot=$('');len=$rows.length;for(i=len-1;i>=0;i--){if($($rows[i]).children('td').length){break;}$tfoot.prepend($($rows[i]));}$table.append($tfoot);}}function uniqueElements(array){var uniques=[];$.each(array,function(index,elem){if(elem!==undefined&&$.inArray(elem,uniques)===-1){uniques.push(elem);}});return uniques;}function buildHeaders(table,msg){var config=$(table).data('tablesorter').config,maxSeen=0,colspanOffset=0,columns,k,$cell,rowspan,colspan,headerCount,longestTR,headerIndex,exploded,$tableHeaders=$([]),$tableRows=$('thead:eq(0) > tr',table);if($tableRows.length<=1){$tableHeaders=$tableRows.children('th');}else{exploded=[];$tableRows.each(function(rowIndex,row){$.each(row.cells,function(columnIndex,cell){var matrixRowIndex,matrixColumnIndex;rowspan=Number(cell. rowSpan);colspan=Number(cell.colSpan);while(exploded[rowIndex]&&exploded[rowIndex][columnIndex]!==undefined){++columnIndex;}for(matrixColumnIndex=columnIndex;matrixColumnIndex=maxSeen){maxSeen=headerCount;longestTR=index;}});$tableHeaders=$(uniqueElements(exploded[longestTR])).filter('th');}config.columnToHeader=[];config.headerToColumns=[];config.headerList=[];headerIndex=0;$tableHeaders.each(function(){$cell=$(this);columns=[];if(!$cell.hasClass(config.unsortableClass)){$cell.addClass(config.cssHeader).prop('tabIndex',0).attr({role:'columnheader button',title:msg[1]});for(k=0;kb)?1:0));}function sortTextDesc(a,b){return((ba)?1:0));}function multisort(table,sortList,cache){var i,sortFn=[],len=sortList.length;for(i=0;i tbody > tr > [rowspan]').get();if(!rowspanCells.length){return;}$table.find('> tbody > tr').each(function(){var i,col=0,l=this.cells.length;for(i=0;i=spanningRealCellIndex;}function fixTdCellIndex(){$.data(this,'tablesorter').realCellIndex+=colSpan;if(this.rowSpan>1){$.data(this,'tablesorter').needResort=!0;}}while(rowspanCells.length){if($.data(rowspanCells[0],'tablesorter').needResort){resortCells();}cell=rowspanCells.shift();cellData=$.data(cell,'tablesorter');rowSpan=cell.rowSpan;colSpan=cell.colSpan;spanningRealCellIndex=cellData.realCellIndex;cell.rowSpan=1;$nextRows=$(cell).parent().nextAll();for(i=0;i tbody > tr'),totalRows=$rows.length||0,config=$table.data('tablesorter').config,columns=config.columns,columnToCell,cellsInRow,index;for(i=0;i');cellsInRow++;}for(k=0;k<$row[0].cells[index].colSpan;k++){columnToCell[j++]=index;}}$row.data('columnToCell',columnToCell);}}function buildCollationTable(){ts.collationTable=mw.config.get('tableSorterCollation');ts.collationRegex=null;if(ts.collationTable){var key,keys=[];for(key in ts.collationTable){if(ts.collationTable.hasOwnProperty(key)){keys.push(key);}}if(keys.length){ts.collationRegex=new RegExp('['+keys.join('')+']','ig');}}}function cacheRegexs(){if(ts.rgx){return;}ts.rgx={IPAddress:[new RegExp(/^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$/)],currency:[new RegExp( /(^[£$€¥]|[£$€¥]$)/),new RegExp(/[£$€¥]/g)],url:[new RegExp(/^(https?|ftp|file):\/\/$/),new RegExp(/(https?|ftp|file):\/\//)],isoDate:[new RegExp(/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/)],usLongDate:[new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/)],time:[new RegExp(/^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/)]};}function convertSortList(sortObjects){var sortList=[];$.each(sortObjects,function(i,sortObject){$.each(sortObject,function(columnIndex,order){var orderIndex=(order==='desc')?1:0;sortList.push([parseInt(columnIndex,10),orderIndex]);});});return sortList;}$.tablesorter={defaultOptions:{cssHeader:'headerSort',cssAsc:'headerSortUp',cssDesc:'headerSortDown',cssChildRow:'expand-child',sortMultiSortKey:'shiftKey',unsortableClass:'unsortable',parsers:[],cancelSelection:!0,sortList:[],headerList:[],headerToColumns:[],columnToHeader:[],columns:0},dateRegex:[],monthNames:{}, construct:function($tables,settings){return $tables.each(function(i,table){var $headers,cache,config,sortCSS,sortMsg,$table=$(table),firstTime=!0;if(!table.tBodies){return;}if(!table.tHead){emulateTHeadAndFoot($table);if(!table.tHead){return;}}$table.addClass('jquery-tablesorter');config=$.extend({},$.tablesorter.defaultOptions,settings);$.data(table,'tablesorter',{config:config});sortCSS=[config.cssDesc,config.cssAsc];sortMsg=[mw.msg('sort-descending'),mw.msg('sort-ascending')];$headers=buildHeaders(table,sortMsg);buildTransformTable();buildDateTable();cacheRegexs();function setupForFirstSort(){firstTime=!1;buildCollationTable();var $tfoot,$sortbottoms=$table.find('> tbody > tr.sortbottom');if($sortbottoms.length){$tfoot=$table.children('tfoot');if($tfoot.length){$tfoot.eq(0).prepend($sortbottoms);}else{$table.append($('').append($sortbottoms));}}explodeRowspans($table);manageColspans($table);config.parsers=buildParserCache(table,$headers);}$headers.on('keypress click', function(e){var cell,$cell,columns,newSortList,i,totalRows,j,s,o;if(e.type==='click'&&e.target.nodeName.toLowerCase()==='a'){return true;}if(e.type==='keypress'&&e.which!==13){return true;}if(firstTime){setupForFirstSort();}cache=buildCache(table);totalRows=($table[0].tBodies[0]&&$table[0].tBodies[0].rows.length)||0;if(totalRows>0){cell=this;$cell=$(cell);$cell.data({order:$cell.data('count')%2,count:$cell.data('count')+1});cell=this;columns=config.headerToColumns[$cell.data('headerIndex')];newSortList=$.map(columns,function(c){return[[c,$cell.data('order')]];});i=columns[0];if(!e[config.sortMultiSortKey]){config.sortList=newSortList;}else{if(isValueInArray(i,config.sortList)){for(j=0;j0){sortList=convertSortList(sortList);}setHeadersOrder($headers,sortList,config.headerToColumns);cache=buildCache(table);setHeadersCss(table,$headers,sortList,sortCSS,sortMsg,config.columnToHeader);appendToTable(table,multisort(table,sortList,cache));};if(config.sortList.length>0){config.sortList=convertSortList(config.sortList);$table.data('tablesorter').sort();}});},addParser:function(parser){var i,len=parsers.length,a=!0;for(i=0;i