Not really a performance problem given what it is, but replace the function grabJumpToContent(elem) with the below to clear it up.
/**
* This function will retrieve the contents needed for the jump to boxes.
*
* @param {type} elem
*/
function grabJumpToContent(elem) {
this.elem = elem;
getXMLDocument(elk_prepareScriptUrl(elk_scripturl) + 'action=xmlhttp;sa=jumpto;xml', onJumpReceived);
}
/**
* Callback function for loading the jumpto box
*
* @param {object} XMLDoc
*/
function onJumpReceived(oXMLDoc) {
var aBoardsAndCategories = [],
i,
n,
items = oXMLDoc.getElementsByTagName('elk')[0].getElementsByTagName('item');
for (i = 0, n = items.length; i < n; i++)
{
aBoardsAndCategories[aBoardsAndCategories.length] = {
id: parseInt(items[i].getAttribute('id')),
isCategory: items[i].getAttribute('type') === 'category',
name: items[i].firstChild.nodeValue.removeEntities(),
is_current: false,
childLevel: parseInt(items[i].getAttribute('childlevel'))
};
}
for (i = 0, n = aJumpTo.length; i < n; i++)
aJumpTo[i].fillSelect(aBoardsAndCategories);
// Internet Explorer needs this to keep the box dropped down.
this.elem.style.width = 'auto';
this.elem.focus();
}