Facebook EventsUp

By fewyun Last update Sep 23, 2009 — Installed 667 times.

There are 7 previous versions of this script.

// ==UserScript==
// @name           Facebook EventsUp
// @description    Moves up the Events list to be more visible.
// @include        http://*.facebook.com/*
// @include        http://facebook.com/*
// ==/UserScript==

// By default, page reload is checked by DOMNodeInserted to be most timely.
// But the event is disabled for a moment immediately after to avoid the avalanche of
// function calls due to bubbling events. I welcome a better suggestion.

function setListener() {
  var content = document.getElementById("content");
  if(!content) { setTimeout(setListener, 300); return; }
  content.addEventListener('DOMNodeInserted',eventsUp,false);
}
function stopListener() {
  var content = document.getElementById("content");
  content.removeEventListener('DOMNodeInserted',eventsUp,false);
}

function eventsUp() {
  stopListener();
  setTimeout(setListener, 300);
  try {
    var events = document.getElementsByClassName("UIUpcoming")[0];
    if(!events) return;
    events = events.parentNode.parentNode.parentNode;
    while(events.parentNode.id != "home_sidebar") events = events.parentNode;
    var sidebar = events.parentNode;
    sidebar.removeChild(events);
    sidebar.insertBefore(events, sidebar.firstChild.nextSibling);
  } catch(err) { return; }
}

eventsUp();