Dieses Wiki ist nicht die DAoCpedia (daocpedia.eu), sondern ein Backup der DAoCpedia-Inhalte vom 31. März 2016 (mehr erfahren).
MediaWiki:Monobook.js: Unterschied zwischen den Versionen
Aus Backup der DAoCpedia (2016-03-31)
K (URL angepasst) |
K (→Dynamisch sortierbare Tabellen eingefügt) |
||
Zeile 210: | Zeile 210: | ||
aOnloadFunctions[aOnloadFunctions.length] = icoIE7search; | aOnloadFunctions[aOnloadFunctions.length] = icoIE7search; | ||
+ | |||
+ | |||
+ | /* | ||
+ | ====================================================================================================== | ||
+ | SORTIERBARE TABELLEN | ||
+ | ====================================================================================================== | ||
+ | |||
+ | Verwendung: Einfach den zu sortierenden Tabellen die Klasse "sortable" zuweisen | ||
+ | |||
+ | */ | ||
+ | var SORT_COLUMN_INDEX; | ||
+ | |||
+ | function sortables_init() { | ||
+ | // Find all tables with class sortable and make them sortable | ||
+ | if (!document.getElementsByTagName) return; | ||
+ | tbls = document.getElementsByTagName("table"); | ||
+ | for (ti=0;ti<tbls.length;ti++) { | ||
+ | thisTbl = tbls[ti]; | ||
+ | if ((' '+thisTbl.className+' ').indexOf("sortable") != -1) { | ||
+ | ts_makeSortable(thisTbl); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function ts_makeSortable(table) { | ||
+ | if (table.rows && table.rows.length > 0) { | ||
+ | var firstRow = table.rows[0]; | ||
+ | } | ||
+ | if (!firstRow) return; | ||
+ | |||
+ | // We have a first row: assume it's the header, and make its contents clickable links | ||
+ | for (var i=0;i<firstRow.cells.length;i++) { | ||
+ | var cell = firstRow.cells[i]; | ||
+ | var txt = ts_getInnerText(cell); | ||
+ | cell.innerHTML = '<a href="#" class="sortheader" '+ | ||
+ | 'onclick="ts_resortTable(this, '+i+');return false;">' + | ||
+ | txt+'<span class="sortarrow"> •</span></a>'; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function ts_getInnerText(el) { | ||
+ | if (typeof el == "string") return el; | ||
+ | if (typeof el == "undefined") { return el }; | ||
+ | if (el.innerText) return el.innerText; //Not needed but it is faster | ||
+ | var str = ""; | ||
+ | |||
+ | var cs = el.childNodes; | ||
+ | var l = cs.length; | ||
+ | for (var i = 0; i < l; i++) { | ||
+ | switch (cs[i].nodeType) { | ||
+ | case 1: //ELEMENT_NODE | ||
+ | str += ts_getInnerText(cs[i]); | ||
+ | break; | ||
+ | case 3: //TEXT_NODE | ||
+ | str += cs[i].nodeValue; | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | return str; | ||
+ | } | ||
+ | |||
+ | function ts_resortTable(lnk,clid) { | ||
+ | // get the span | ||
+ | var span; | ||
+ | for (var ci=0;ci<lnk.childNodes.length;ci++) { | ||
+ | if (lnk.childNodes[ci].tagName && lnk.childNodes[ci].tagName.toLowerCase() == 'span') span = lnk.childNodes[ci]; | ||
+ | } | ||
+ | var spantext = ts_getInnerText(span); | ||
+ | var td = lnk.parentNode; | ||
+ | var column = clid || td.cellIndex; | ||
+ | var table = getParent(td,'TABLE'); | ||
+ | |||
+ | // Work out a type for the column | ||
+ | if (table.rows.length <= 1) return; | ||
+ | var itm = ts_getInnerText(table.rows[1].cells[column]); | ||
+ | sortfn = ts_sort_caseinsensitive; | ||
+ | if (itm.match(/^[£$]/)) sortfn = ts_sort_currency; | ||
+ | // if (itm=="Q" || itm=="?") sortfn = ts_sort_numeric; | ||
+ | if (itm.indexOf('%')>-1) sortfn = ts_sort_numeric; | ||
+ | if (itm.match(/^[\d\.]+$/)) sortfn = ts_sort_numeric; | ||
+ | if (itm.match(/^\d\d[\.\/-]\d\d[\.\/-]\d\d\d\d$/)) sortfn = ts_sort_date; | ||
+ | if (itm.match(/^\d\d[\.\/-]\d\d[\.\/-]\d\d$/)) sortfn = ts_sort_date; | ||
+ | |||
+ | SORT_COLUMN_INDEX = column; | ||
+ | var firstRow = new Array(); | ||
+ | var newRows = new Array(); | ||
+ | for (i=0;i<table.rows[0].length;i++) { firstRow[i] = table.rows[0][i]; } | ||
+ | for (j=1;j<table.rows.length;j++) { newRows[j-1] = table.rows[j]; } | ||
+ | |||
+ | newRows.sort(sortfn); | ||
+ | |||
+ | if (span.getAttribute("sortdir") == 'down') { | ||
+ | ARROW = ' ↑'; | ||
+ | newRows.reverse(); | ||
+ | span.setAttribute('sortdir','up'); | ||
+ | } else { | ||
+ | ARROW = ' ↓'; | ||
+ | span.setAttribute('sortdir','down'); | ||
+ | } | ||
+ | |||
+ | // We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones | ||
+ | // don't do sortbottom rows | ||
+ | for (i=0;i<newRows.length;i++) { if (!newRows[i].className || (newRows[i].className && (newRows[i].className.indexOf('sortbottom') == -1))) table.tBodies[0].appendChild(newRows[i]);} | ||
+ | // do sortbottom rows only | ||
+ | for (i=0;i<newRows.length;i++) { if (newRows[i].className && (newRows[i].className.indexOf('sortbottom') != -1)) table.tBodies[0].appendChild(newRows[i]);} | ||
+ | |||
+ | // Delete any other arrows there may be showing | ||
+ | var allspans = document.getElementsByTagName("span"); | ||
+ | for (var ci=0;ci<allspans.length;ci++) { | ||
+ | if (allspans[ci].className == 'sortarrow') { | ||
+ | if (getParent(allspans[ci],"table") == getParent(lnk,"table")) { // in the same table as us? | ||
+ | allspans[ci].innerHTML = ' •'; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | var alternate=false; | ||
+ | |||
+ | for (j=1;j<table.rows.length;j++) | ||
+ | { | ||
+ | if(alternate) | ||
+ | table.rows[j].className="dr"; | ||
+ | else | ||
+ | table.rows[j].className=""; | ||
+ | alternate=!alternate; } | ||
+ | |||
+ | span.innerHTML = ARROW; | ||
+ | } | ||
+ | |||
+ | function getParent(el, pTagName) { | ||
+ | if (el == null) return null; | ||
+ | else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase()) // Gecko bug, supposed to be uppercase | ||
+ | return el; | ||
+ | else | ||
+ | return getParent(el.parentNode, pTagName); | ||
+ | } | ||
+ | function ts_sort_date(a,b) { | ||
+ | // y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX | ||
+ | aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]); | ||
+ | bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]); | ||
+ | if (aa.length == 10) { | ||
+ | dt1 = aa.substr(6,4)+aa.substr(3,2)+aa.substr(0,2); | ||
+ | } else { | ||
+ | yr = aa.substr(6,2); | ||
+ | if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; } | ||
+ | dt1 = yr+aa.substr(3,2)+aa.substr(0,2); | ||
+ | } | ||
+ | if (bb.length == 10) { | ||
+ | dt2 = bb.substr(6,4)+bb.substr(3,2)+bb.substr(0,2); | ||
+ | } else { | ||
+ | yr = bb.substr(6,2); | ||
+ | if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; } | ||
+ | dt2 = yr+bb.substr(3,2)+bb.substr(0,2); | ||
+ | } | ||
+ | if (dt1==dt2) return 0; | ||
+ | if (dt1<dt2) return -1; | ||
+ | return 1; | ||
+ | } | ||
+ | |||
+ | function ts_sort_currency(a,b) { | ||
+ | aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'').replace('Q','0'); | ||
+ | bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'').replace('Q','0'); | ||
+ | return parseFloat(aa) - parseFloat(bb); | ||
+ | } | ||
+ | |||
+ | function ts_sort_numeric(a,b) { | ||
+ | aa = parseFloat(ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).replace('%','').replace('Q','0')); | ||
+ | if (isNaN(aa)) aa = 0; | ||
+ | bb = parseFloat(ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).replace('%','').replace('Q','0')); | ||
+ | if (isNaN(bb)) bb = 0; | ||
+ | return aa-bb; | ||
+ | } | ||
+ | |||
+ | function ts_sort_caseinsensitive(a,b) { | ||
+ | aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).toLowerCase(); | ||
+ | bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).toLowerCase(); | ||
+ | if (aa==bb) return 0; | ||
+ | if (aa<bb) return -1; | ||
+ | return 1; | ||
+ | } | ||
+ | |||
+ | function ts_sort_default(a,b) { | ||
+ | aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]); | ||
+ | bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]); | ||
+ | if (aa==bb) return 0; | ||
+ | if (aa<bb) return -1; | ||
+ | return 1; | ||
+ | } | ||
+ | aOnloadFunctions[aOnloadFunctions.length] = sortables_init; | ||
+ | |||
+ | /* | ||
+ | ====================================================================================================== | ||
+ | */ |
Version vom 5. Mai 2006, 03:15 Uhr
/* tooltips and access keys */ ta = new Object(); ta['pt-userpage'] = new Array('.','Meine Benutzerseite'); ta['pt-anonuserpage'] = new Array('.','Die Benutzerseite für die IP-Adresse, über die du gerade auf die Seite zugreifst'); ta['pt-mytalk'] = new Array('n','Meine Diskussionsseite'); ta['pt-anontalk'] = new Array('n','Die Diskussionsseite für die IP-Adresse, über die du gerade auf die Seite zugreifst'); ta['pt-preferences'] = new Array('','Meine Einstellungen'); ta['pt-watchlist'] = new Array('l','Die Liste der Seiten, die du gerade beobachtest.'); ta['pt-mycontris'] = new Array('y','Liste meiner Beiträge'); ta['pt-login'] = new Array('o','Du solltest dich einloggen, obwohl dies nicht zwingend notwendig ist.'); ta['pt-anonlogin'] = new Array('o','Du solltest dich einloggen, obwohl dies nicht zwingend notwendig ist.'); ta['pt-logout'] = new Array('o','Ausloggen'); ta['ca-talk'] = new Array('t','Diskussion über die Indexseite'); ta['ca-edit'] = new Array('e','Du kannst diese Seite bearbeiten. Bitte benutze die Vorschaufunktion bevor du die Änderungen speicherst.'); ta['ca-addsection'] = new Array('+','Füge einen Kommentar zu dieser DIskussion hinzu.'); ta['ca-viewsource'] = new Array('e','Diese Seite ist geschützt. Du kannst dir den Quellcode ansehen.'); ta['ca-history'] = new Array('h','Ältere Versionen dieser Seite.'); ta['ca-protect'] = new Array('=','Diese Seite schützen.'); ta['ca-delete'] = new Array('d','Diese Seite löschen.'); ta['ca-undelete'] = new Array('d','Diese Seite wiederherstellen.'); ta['ca-move'] = new Array('m','Diese Seite verschieben.'); ta['ca-nomove'] = new Array('','Du hast nicht die notwendigen Rechte um diese Seite zu verschieben.'); ta['ca-watch'] = new Array('w','Füge diese Seite zu deiner Beobachtungsliste hinzu.'); ta['ca-unwatch'] = new Array('w','Entferne diese Seite aus deiner Beobachtungsliste.'); ta['search'] = new Array('f','Durchsuche dieses Wiki.'); ta['p-logo'] = new Array('','Hauptseite'); ta['n-mainpage'] = new Array('z','Besuche die Hauptseite.'); ta['n-portal'] = new Array('','Verschiedene Bilder und andere Medien zu besonderen Ereignissen.'); ta['n-currentevents'] = new Array('','Find background information on current events.'); ta['n-recentchanges'] = new Array('r','Eine Liste der letzten Änderungen an Beiträgen.'); ta['n-randompage'] = new Array('x','Zeige eine zufällige Seite an.'); ta['n-help'] = new Array('','Hier findest du Hilfe, wenn du nicht mehr weiter weisst.'); ta['n-sitesupport'] = new Array('','Support us'); ta['t-whatlinkshere'] = new Array('j','Eine Liste der Seiten, die auf diese verweist.'); ta['t-recentchangeslinked'] = new Array('k','Eine Liste von Änderungen in Seiten, die auf dieser Seite verlinkt oder eingebettet sind.'); ta['feed-rss'] = new Array('','Diese Seite als RSS-Dokument herunterladen.'); ta['feed-atom'] = new Array('','Diese Seite als Atom-Dokument herunterladen.'); ta['t-contributions'] = new Array('','Zeige alle Beiträge dieses Nutzers.'); ta['t-emailuser'] = new Array('','Sende eine E-Mailan diesen Nutzer.'); ta['t-upload'] = new Array('u','Lade Bilder oder andere Mediendateien auf den Server.'); ta['t-specialpages'] = new Array('q','Liste aller Spezialseiten.'); ta['ca-nstab-main'] = new Array('c','Zeige den Seiteninhalt.'); ta['ca-nstab-user'] = new Array('c','Zeige die Benutzerseite.'); ta['ca-nstab-media'] = new Array('c','Zeige die Medienseite.'); ta['ca-nstab-special'] = new Array('','Dies ist eine Spezialseite, die du nicht selbst editieren kannst.'); ta['ca-nstab-wp'] = new Array('a','Zeige die Projektseite.'); ta['ca-nstab-image'] = new Array('c','Zeige die Bildseite.'); ta['ca-nstab-mediawiki'] = new Array('c','Zeige die Systemmeldung.'); ta['ca-nstab-template'] = new Array('c','Zeige die Vorlage.'); ta['ca-nstab-help'] = new Array('c','Zeige die Hilfeseite.'); ta['ca-nstab-category'] = new Array('c','Zeige die Kategorienseite'); // ============================================================ // BEGIN Enable multiple onload functions // setup onload functions this way: // aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets! if (!window.aOnloadFunctions) { var aOnloadFunctions = new Array(); } window.onload = function() { if (window.aOnloadFunctions) { for (var _i=0; _i<aOnloadFunctions.length; _i++) { aOnloadFunctions[_i](); } } } // END Enable multiple onload functions // ============================================================ // ============================================================ // BEGIN Dynamic Navigation Bars // set up the words in your language var NavigationBarHide = 'Einklappen'; var NavigationBarShow = 'Ausklappen'; // set up max count of Navigation Bars on page, // if there are more, all will be hidden // NavigationBarShowDefault = 0; // all bars will be hidden // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden var NavigationBarShowDefault = 99; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled function toggleNavigationBar(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == NavigationBarHide) { for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { if (NavChild.className == 'NavPic') { NavChild.style.display = 'none'; } if (NavChild.className == 'NavContent') { NavChild.style.display = 'none'; } if (NavChild.className == 'NavToggle') { NavChild.firstChild.data = NavigationBarShow; } } // if hidden now } else if (NavToggle.firstChild.data == NavigationBarShow) { for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { if (NavChild.className == 'NavPic') { NavChild.style.display = 'block'; } if (NavChild.className == 'NavContent') { NavChild.style.display = 'block'; } if (NavChild.className == 'NavToggle') { NavChild.firstChild.data = NavigationBarHide; } } } } // adds show/hide-button to navigation bars function createNavigationBarToggleButton() { var indexNavigationBar = 0; // iterate over all < div >-elements for( var i=0; NavFrame = document.getElementsByTagName("div")[i]; i++ ) { // if found a navigation bar if (NavFrame.className == "NavFrame") { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');'); var NavToggleText = document.createTextNode(NavigationBarHide); NavToggle.appendChild(NavToggleText); // add NavToggle-Button as first div-element // in < div class="NavFrame" > NavFrame.insertBefore( NavToggle, NavFrame.firstChild ); NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } // if more Navigation Bars found than Default: hide all if (NavigationBarShowDefault < indexNavigationBar) { for( var i=1; i<=indexNavigationBar; i++ ) { toggleNavigationBar(i); } } } aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton; // END Dynamic Navigation Bars // ============================================================ // Popup Funktion für den Iconhelfer function popup(mylink, windowname) { if(!window.focus)return true; var href; if (typeof(mylink) == 'string') href=mylink; else href=mylink.href; window.open(href, windowname, 'width=375,height=605,scrollbars=auto,resizable=yes,location=no,menubar=no,status=no,toolbar=no,hotkeys=no'); return false; } /* Erstellt den Link zum hinzufügen eines Links für die IE7-Suche */ /* Anwendung: einfach irgendeinem HTML-Element an der Wunsch-Stelle die ID "ie7a9link" zuweisen. */ function icoIE7search() { if(document.getElementById("ie7a9link")) { document.getElementById("ie7a9link").outerHTML='<a href="#" onclick="window.external.AddSearchProvider("http://de.daocpedia.eu/daocpedia_a9.xml")" class="external text"><b>Suchmaschineneintrag für Microsoft Internet Explorer</b></a> (ab Version 7)'; } } aOnloadFunctions[aOnloadFunctions.length] = icoIE7search; /* ====================================================================================================== SORTIERBARE TABELLEN ====================================================================================================== Verwendung: Einfach den zu sortierenden Tabellen die Klasse "sortable" zuweisen */ var SORT_COLUMN_INDEX; function sortables_init() { // Find all tables with class sortable and make them sortable if (!document.getElementsByTagName) return; tbls = document.getElementsByTagName("table"); for (ti=0;ti<tbls.length;ti++) { thisTbl = tbls[ti]; if ((' '+thisTbl.className+' ').indexOf("sortable") != -1) { ts_makeSortable(thisTbl); } } } function ts_makeSortable(table) { if (table.rows && table.rows.length > 0) { var firstRow = table.rows[0]; } if (!firstRow) return; // We have a first row: assume it's the header, and make its contents clickable links for (var i=0;i<firstRow.cells.length;i++) { var cell = firstRow.cells[i]; var txt = ts_getInnerText(cell); cell.innerHTML = '<a href="#" class="sortheader" '+ 'onclick="ts_resortTable(this, '+i+');return false;">' + txt+'<span class="sortarrow"> •</span></a>'; } } function ts_getInnerText(el) { if (typeof el == "string") return el; if (typeof el == "undefined") { return el }; if (el.innerText) return el.innerText; //Not needed but it is faster var str = ""; var cs = el.childNodes; var l = cs.length; for (var i = 0; i < l; i++) { switch (cs[i].nodeType) { case 1: //ELEMENT_NODE str += ts_getInnerText(cs[i]); break; case 3: //TEXT_NODE str += cs[i].nodeValue; break; } } return str; } function ts_resortTable(lnk,clid) { // get the span var span; for (var ci=0;ci<lnk.childNodes.length;ci++) { if (lnk.childNodes[ci].tagName && lnk.childNodes[ci].tagName.toLowerCase() == 'span') span = lnk.childNodes[ci]; } var spantext = ts_getInnerText(span); var td = lnk.parentNode; var column = clid || td.cellIndex; var table = getParent(td,'TABLE'); // Work out a type for the column if (table.rows.length <= 1) return; var itm = ts_getInnerText(table.rows[1].cells[column]); sortfn = ts_sort_caseinsensitive; if (itm.match(/^[£$]/)) sortfn = ts_sort_currency; // if (itm=="Q" || itm=="?") sortfn = ts_sort_numeric; if (itm.indexOf('%')>-1) sortfn = ts_sort_numeric; if (itm.match(/^[\d\.]+$/)) sortfn = ts_sort_numeric; if (itm.match(/^\d\d[\.\/-]\d\d[\.\/-]\d\d\d\d$/)) sortfn = ts_sort_date; if (itm.match(/^\d\d[\.\/-]\d\d[\.\/-]\d\d$/)) sortfn = ts_sort_date; SORT_COLUMN_INDEX = column; var firstRow = new Array(); var newRows = new Array(); for (i=0;i<table.rows[0].length;i++) { firstRow[i] = table.rows[0][i]; } for (j=1;j<table.rows.length;j++) { newRows[j-1] = table.rows[j]; } newRows.sort(sortfn); if (span.getAttribute("sortdir") == 'down') { ARROW = ' ↑'; newRows.reverse(); span.setAttribute('sortdir','up'); } else { ARROW = ' ↓'; span.setAttribute('sortdir','down'); } // We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones // don't do sortbottom rows for (i=0;i<newRows.length;i++) { if (!newRows[i].className || (newRows[i].className && (newRows[i].className.indexOf('sortbottom') == -1))) table.tBodies[0].appendChild(newRows[i]);} // do sortbottom rows only for (i=0;i<newRows.length;i++) { if (newRows[i].className && (newRows[i].className.indexOf('sortbottom') != -1)) table.tBodies[0].appendChild(newRows[i]);} // Delete any other arrows there may be showing var allspans = document.getElementsByTagName("span"); for (var ci=0;ci<allspans.length;ci++) { if (allspans[ci].className == 'sortarrow') { if (getParent(allspans[ci],"table") == getParent(lnk,"table")) { // in the same table as us? allspans[ci].innerHTML = ' •'; } } } var alternate=false; for (j=1;j<table.rows.length;j++) { if(alternate) table.rows[j].className="dr"; else table.rows[j].className=""; alternate=!alternate; } span.innerHTML = ARROW; } function getParent(el, pTagName) { if (el == null) return null; else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase()) // Gecko bug, supposed to be uppercase return el; else return getParent(el.parentNode, pTagName); } function ts_sort_date(a,b) { // y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]); bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]); if (aa.length == 10) { dt1 = aa.substr(6,4)+aa.substr(3,2)+aa.substr(0,2); } else { yr = aa.substr(6,2); if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; } dt1 = yr+aa.substr(3,2)+aa.substr(0,2); } if (bb.length == 10) { dt2 = bb.substr(6,4)+bb.substr(3,2)+bb.substr(0,2); } else { yr = bb.substr(6,2); if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; } dt2 = yr+bb.substr(3,2)+bb.substr(0,2); } if (dt1==dt2) return 0; if (dt1<dt2) return -1; return 1; } function ts_sort_currency(a,b) { aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'').replace('Q','0'); bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'').replace('Q','0'); return parseFloat(aa) - parseFloat(bb); } function ts_sort_numeric(a,b) { aa = parseFloat(ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).replace('%','').replace('Q','0')); if (isNaN(aa)) aa = 0; bb = parseFloat(ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).replace('%','').replace('Q','0')); if (isNaN(bb)) bb = 0; return aa-bb; } function ts_sort_caseinsensitive(a,b) { aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).toLowerCase(); bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).toLowerCase(); if (aa==bb) return 0; if (aa<bb) return -1; return 1; } function ts_sort_default(a,b) { aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]); bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]); if (aa==bb) return 0; if (aa<bb) return -1; return 1; } aOnloadFunctions[aOnloadFunctions.length] = sortables_init; /* ====================================================================================================== */