All pastes #393469 Raw Edit

xorc

public javascript v1 · immutable
·published 2007-03-13 16:13 UTC
rendered paste body
function get_valid_action_buttons () {  // Labels to identify the buttons  var LABEL_TORRENT_DELETE= 'Delete';  var LABEL_TORRENT_STOP  = 'Stop Torrent';  var LABEL_TORRENT_SEED  = 'Seed Torrent';  var LABEL_TORRENT_START = 'Run Torrent';  // Register nodes, and calculate the size, from the delete_button's view, that saves alot of checking which elements to get.  var listRows          = document.evaluate ("//img[@title='Delete']/../../../parent::tr", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);  var listRowsPointer   = listRows.snapshotLength;  var listReturn        = [];  var listReturnPointer = 0;  // Pointer points to pointee  while (listRowsPointer > 0) {    // Register domItem.    var listDomRow = listRows.snapshotItem (--listRowsPointer);    // Ah, here are those nifty buttons.    var domButtons        = listDomRow.lastChild.firstChild.childNodes;    var domButtonsPointer = domButtons.length;    while (domButtonsPointer > 0) {      // Decrease domButtons pointer.      --domButtonsPointer;      // DOM Object      var domButton = domButtons[domButtonsPointer].firstChild;      // Check which button we have by title.      switch (domButton.title) {        case LABEL_TORRENT_DELETE:          listReturn[listReturnPointer] = {'delete' : domButton.parentNode};          break;        case LABEL_TORRENT_START:          listReturn[listReturnPointer] = {'start' : domButton.parentNode};          break;        case LABEL_TORRENT_STOP:          listReturn[listReturnPointer] = {'stop' : domButton.parentNode};          break;        case LABEL_TORRENT_SEED:          listReturn[listReturnPointer] = {'seed' : domButton.parentNode};          break;        // No valid entry point, decrease pointer.        default: --listReturnPointer; break;      }      // Increase return pointer.      listReturnPointer++;    }  }  return listReturn;}console.log (get_valid_action_buttons ());