home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cricao de Sites - 650 Layouts Prontos
/
WebMasters.iso
/
Servidores
/
JanaSetup.exe
/
admin
/
seiten_js
/
table_sort.js
< prev
Wrap
Text File
|
2006-05-08
|
2KB
|
117 lines
// Copyright 2002 by Mike Hall
// Please see http://www.brainjar.com for terms of use.
function sortTable(id, col, rev)
{
var tblEl = document.getElementById(id);
if (tblEl.reverseSort == null)
{
tblEl.reverseSort = new Array();
tblEl.lastColumn = 1;
}
if (tblEl.reverseSort[col] == null)
tblEl.reverseSort[col] = rev;
if (col == tblEl.lastColumn)
tblEl.reverseSort[col] = !tblEl.reverseSort[col];
tblEl.lastColumn = col;
var tmpEl;
var i, j;
var minVal, minIdx;
var testVal;
var cmp;
for (i = 0; i < tblEl.rows.length - 1; i++)
{
minIdx = i;
minVal = getTextValue(tblEl.rows[i].cells[col]);
for (j = i + 1; j < tblEl.rows.length; j++)
{
testVal = getTextValue(tblEl.rows[j].cells[col]);
cmp = compareValues(minVal, testVal);
if (tblEl.reverseSort[col])
cmp = -cmp;
if ((cmp == 0) && (col != 1))
cmp = compareValues(getTextValue(tblEl.rows[minIdx].cells[1]), getTextValue(tblEl.rows[j].cells[1]));
if (cmp > 0)
{
minIdx = j;
minVal = testVal;
}
}
if (minIdx > i)
{
tmpEl = tblEl.removeChild(tblEl.rows[minIdx]);
tblEl.insertBefore(tmpEl, tblEl.rows[i]);
}
}
return false;
}
if (document.ELEMENT_NODE == null)
{
document.ELEMENT_NODE = 1;
document.TEXT_NODE = 3;
}
function getTextValue(el)
{
var i;
var s = '';
for (i = 0; i < el.childNodes.length; i++)
{
if (el.childNodes[i].nodeType == document.TEXT_NODE)
s += el.childNodes[i].nodeValue;
else if ((el.childNodes[i].nodeType == document.ELEMENT_NODE) && (el.childNodes[i].tagName == 'BR'))
s += ' ';
else
s += getTextValue(el.childNodes[i]);
}
return normalizeString(s);
}
function compareValues(v1, v2)
{
var f1, f2;
f1 = parseFloat(v1);
f2 = parseFloat(v2);
if (!isNaN(f1) && !isNaN(f2))
{
v1 = f1;
v2 = f2;
}
if (v1 == v2)
return 0;
if (v1 > v2)
return 1
return -1;
}
var whtSpMult = new RegExp('\\s\\s+', 'g');
var whtSpEnds = new RegExp('^\\s*|\\s*$', 'g');
function normalizeString(s)
{
s = s.replace(whtSpMult, ' ');
s = s.replace(whtSpEnds, '');
s = s.toLowerCase();
return s;
}