mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-11 05:39:41 +02:00
--HG-- rename : content/xml/content/src/CDATASection.cpp => dom/xml/CDATASection.cpp rename : content/xml/content/src/CDATASection.h => dom/xml/CDATASection.h rename : content/xml/content/src/ProcessingInstruction.cpp => dom/xml/ProcessingInstruction.cpp rename : content/xml/content/src/ProcessingInstruction.h => dom/xml/ProcessingInstruction.h rename : content/xml/document/src/XMLDocument.cpp => dom/xml/XMLDocument.cpp rename : content/xml/document/src/XMLDocument.h => dom/xml/XMLDocument.h rename : content/xml/content/src/XMLStylesheetProcessingInstruction.cpp => dom/xml/XMLStylesheetProcessingInstruction.cpp rename : content/xml/content/src/XMLStylesheetProcessingInstruction.h => dom/xml/XMLStylesheetProcessingInstruction.h rename : content/xml/document/crashtests/136896-1.xml => dom/xml/crashtests/136896-1.xml rename : content/xml/document/crashtests/185285-1.xml => dom/xml/crashtests/185285-1.xml rename : content/xml/document/crashtests/382636-1.xml => dom/xml/crashtests/382636-1.xml rename : content/xml/document/crashtests/382636-2.svg => dom/xml/crashtests/382636-2.svg rename : content/xml/document/crashtests/382636-3.xhtml => dom/xml/crashtests/382636-3.xhtml rename : content/xml/document/crashtests/382636-4.xul => dom/xml/crashtests/382636-4.xul rename : content/xml/content/crashtest/420429.xul => dom/xml/crashtests/420429.xul rename : content/xml/document/crashtests/431703-1.xhtml => dom/xml/crashtests/431703-1.xhtml rename : content/xml/content/crashtest/453278-frame.xml => dom/xml/crashtests/453278-frame.xml rename : content/xml/content/crashtest/453278.html => dom/xml/crashtests/453278.html rename : content/xml/content/crashtest/803586.xhtml => dom/xml/crashtests/803586.xhtml rename : content/xml/document/crashtests/994740-1.xhtml => dom/xml/crashtests/994740-1.xhtml rename : content/xml/document/crashtests/crashtests.list => dom/xml/crashtests/crashtests.list rename : content/xml/document/crashtests/tree.gif => dom/xml/crashtests/tree.gif rename : content/xml/content/src/htmlmathml-f.ent => dom/xml/htmlmathml-f.ent rename : content/xml/content/src/moz.build => dom/xml/moz.build rename : content/xml/document/public/nsIXMLContentSink.h => dom/xml/nsIXMLContentSink.h rename : content/xml/document/src/nsXMLContentSink.cpp => dom/xml/nsXMLContentSink.cpp rename : content/xml/document/src/nsXMLContentSink.h => dom/xml/nsXMLContentSink.h rename : content/xml/content/src/nsXMLElement.cpp => dom/xml/nsXMLElement.cpp rename : content/xml/content/src/nsXMLElement.h => dom/xml/nsXMLElement.h rename : content/xml/document/src/nsXMLFragmentContentSink.cpp => dom/xml/nsXMLFragmentContentSink.cpp rename : content/xml/document/src/nsXMLPrettyPrinter.cpp => dom/xml/nsXMLPrettyPrinter.cpp rename : content/xml/document/src/nsXMLPrettyPrinter.h => dom/xml/nsXMLPrettyPrinter.h rename : content/xml/document/resources/XMLMonoPrint.css => dom/xml/resources/XMLMonoPrint.css rename : content/xml/document/resources/XMLPrettyPrint.css => dom/xml/resources/XMLPrettyPrint.css rename : content/xml/document/resources/XMLPrettyPrint.xml => dom/xml/resources/XMLPrettyPrint.xml rename : content/xml/document/resources/XMLPrettyPrint.xsl => dom/xml/resources/XMLPrettyPrint.xsl rename : content/xml/document/resources/jar.mn => dom/xml/resources/jar.mn rename : content/xml/document/resources/moz.build => dom/xml/resources/moz.build rename : content/xml/document/test/file_bug293347.xml => dom/xml/test/file_bug293347.xml rename : content/xml/document/test/file_bug293347xslt.xml => dom/xml/test/file_bug293347xslt.xml rename : content/xml/document/test/mochitest.ini => dom/xml/test/mochitest.ini rename : content/xml/document/test/moz.build => dom/xml/test/moz.build rename : content/xml/tests/books/bethlehem.gif => dom/xml/test/old/books/bethlehem.gif rename : content/xml/tests/books/bill.gif => dom/xml/test/old/books/bill.gif rename : content/xml/tests/books/books.js => dom/xml/test/old/books/books.js rename : content/xml/tests/books/books.xml => dom/xml/test/old/books/books.xml rename : content/xml/tests/books/charing.gif => dom/xml/test/old/books/charing.gif rename : content/xml/tests/books/classic.css => dom/xml/test/old/books/classic.css rename : content/xml/tests/books/common.css => dom/xml/test/old/books/common.css rename : content/xml/tests/books/kerouac.gif => dom/xml/test/old/books/kerouac.gif rename : content/xml/tests/books/list.css => dom/xml/test/old/books/list.css rename : content/xml/tests/books/road.gif => dom/xml/test/old/books/road.gif rename : content/xml/tests/books/welville.gif => dom/xml/test/old/books/welville.gif rename : content/xml/tests/docbook.css => dom/xml/test/old/docbook.css rename : content/xml/tests/docbooktest.xml => dom/xml/test/old/docbooktest.xml rename : content/xml/tests/flamer.gif => dom/xml/test/old/flamer.gif rename : content/xml/tests/load/display.css => dom/xml/test/old/load/display.css rename : content/xml/tests/load/display.xml => dom/xml/test/old/load/display.xml rename : content/xml/tests/load/load.html => dom/xml/test/old/load/load.html rename : content/xml/tests/load/loadauth.html => dom/xml/test/old/load/loadauth.html rename : content/xml/tests/load/loaddisplay.html => dom/xml/test/old/load/loaddisplay.html rename : content/xml/tests/load/test.xml => dom/xml/test/old/load/test.xml rename : content/xml/tests/script.xml => dom/xml/test/old/script.xml rename : content/xml/tests/simple.xml => dom/xml/test/old/simple.xml rename : content/xml/tests/toc/book.css => dom/xml/test/old/toc/book.css rename : content/xml/tests/toc/irslogo.gif => dom/xml/test/old/toc/irslogo.gif rename : content/xml/tests/toc/minus.gif => dom/xml/test/old/toc/minus.gif rename : content/xml/tests/toc/plus.gif => dom/xml/test/old/toc/plus.gif rename : content/xml/tests/toc/rights.xml => dom/xml/test/old/toc/rights.xml rename : content/xml/tests/toc/toc.css => dom/xml/test/old/toc/toc.css rename : content/xml/tests/toc/toc.js => dom/xml/test/old/toc/toc.js rename : content/xml/tests/xlink/auto.xml => dom/xml/test/old/xlink/auto.xml rename : content/xml/tests/xlink/link.css => dom/xml/test/old/xlink/link.css rename : content/xml/tests/xlink/manual.xml => dom/xml/test/old/xlink/manual.xml rename : content/xml/tests/xmlbase/xmlbase.css => dom/xml/test/old/xmlbase/xmlbase.css rename : content/xml/tests/xmlbase/xmlbase.xml => dom/xml/test/old/xmlbase/xmlbase.xml rename : content/xml/document/test/test_bug232004.xhtml => dom/xml/test/test_bug232004.xhtml rename : content/xml/document/test/test_bug293347.html => dom/xml/test/test_bug293347.html rename : content/xml/document/test/test_bug343870.xhtml => dom/xml/test/test_bug343870.xhtml rename : content/xml/document/test/test_bug355213.xhtml => dom/xml/test/test_bug355213.xhtml rename : content/xml/document/test/test_bug392338.html => dom/xml/test/test_bug392338.html rename : content/xml/document/test/test_bug399502.xhtml => dom/xml/test/test_bug399502.xhtml rename : content/xml/document/test/test_bug445330.html => dom/xml/test/test_bug445330.html rename : content/xml/document/test/test_bug691215.html => dom/xml/test/test_bug691215.html rename : content/xml/document/test/test_viewport.xhtml => dom/xml/test/test_viewport.xhtml
97 lines
2.4 KiB
JavaScript
97 lines
2.4 KiB
JavaScript
|
|
// An inefficient, but effective bubble sort
|
|
function sort(collection, key)
|
|
{
|
|
var i, j;
|
|
var count = collection.length;
|
|
var parent, child;
|
|
|
|
for (i = count-1; i >= 0; i--) {
|
|
for (j = 1; j <= i; j++) {
|
|
if (collection[j-1][key] > collection[j][key]) {
|
|
// Move the item both in the local array and
|
|
// in the tree
|
|
child = collection[j];
|
|
parent = child.parentNode;
|
|
|
|
collection[j] = collection[j-1];
|
|
collection[j-1] = child;
|
|
|
|
parent.removeChild(child);
|
|
parent.insertBefore(child, collection[j]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Set user properties on the nodes in the collection
|
|
// based on information found in its children. For example,
|
|
// make a property "Author" based on the content of the
|
|
// "Author" element found in the childNode list of the node.
|
|
// This makes later sorting more efficient
|
|
function collectInfo(nodes, propNames)
|
|
{
|
|
var i, j, k;
|
|
var ncount = nodes.length;
|
|
var pcount = propNames.length;
|
|
|
|
for (i = 0; i < ncount; i++) {
|
|
var node = nodes[i];
|
|
var childNodes = node.childNodes;
|
|
var ccount = childNodes.length;
|
|
|
|
for (j = 0; j < ccount; j++) {
|
|
var child = childNodes[j];
|
|
|
|
if (child.nodeType == Node.ELEMENT_NODE) {
|
|
var tagName = child.tagName;
|
|
|
|
for (k = 0; k < pcount; k++) {
|
|
var prop = propNames[k];
|
|
if (prop == tagName) {
|
|
node[prop] = child.firstChild.data;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var enabled = true;
|
|
function toggleStyleSheet()
|
|
{
|
|
if (enabled) {
|
|
document.styleSheets[2].disabled = true;
|
|
}
|
|
else {
|
|
document.styleSheets[2].disabled = false;
|
|
}
|
|
|
|
enabled = !enabled;
|
|
}
|
|
|
|
// XXX This is a workaround for a bug where
|
|
// changing the disabled state of a stylesheet can't
|
|
// be done in an event handler. For now, we do it
|
|
// in a zero-delay timeout.
|
|
function initiateToggle()
|
|
{
|
|
setTimeout(toggleStyleSheet, 0);
|
|
}
|
|
|
|
var sortableProps = new Array("Author", "Title", "ISBN");
|
|
var books = new Array();
|
|
|
|
// We uppercase the tagName as a workaround for a bug
|
|
// that loses the original case of the tag.
|
|
var bookset = document.getElementsByTagName("Book");
|
|
|
|
// We need to create a "non-live" array to operate on. Since
|
|
// we'll be moving things around in this array, we can't use
|
|
// the read-only, live one returned by getElementsByTagName.
|
|
for (var i=0; i < bookset.length; i++) {
|
|
books[i] = bookset[i];
|
|
}
|
|
|
|
collectInfo(books, sortableProps);
|
|
|