var request = null; var cache = {}; function previous() { if (request) { return false; } var select = document.getElementById('themeSelect'); var selectedIndex = select.selectedIndex; var length = select.length; if (selectedIndex === 0) { select.selectedIndex = length - 1; } else { select.selectedIndex = selectedIndex - 1; } loadStyle(); return false; } function next() { if (request) { return false; } var select = document.getElementById('themeSelect'); var selectedIndex = select.selectedIndex; var length = select.length; if (selectedIndex === length - 1) { select.selectedIndex = 0; } else { select.selectedIndex = selectedIndex + 1; } loadStyle(); return false; } function setStyle(text) { var style = document.getElementsByTagName('style').item(0); if (style.styleSheet) { style.styleSheet.cssText = text; } else { while (style.hasChildNodes()) { style.removeChild(style.firstChild); } style.appendChild(document.createTextNode(text)); } } function handler() { if (request.readyState === 4) { try { if (request.status === 0 || request.status === 200) { setStyle(request.responseText); var themeCode = document.getElementById('themeCode'); var value = themeCode.innerHTML; cache[value] = request.responseText; } } finally { request = null; var select = document.getElementById('themeSelect'); select.disabled = false; var caption = document.getElementById('caption'); caption.style.display = 'block'; var throbber = document.getElementById('throbberImg'); throbber.style.display = 'none'; } } } function loadStyle() { var select = document.getElementById('themeSelect'); var value = select.options[select.selectedIndex].innerHTML; var themeCode = document.getElementById('themeCode'); themeCode.innerHTML = value; var cachedText = cache[value]; if (cachedText) { setStyle(cachedText); return; } select.disabled = true; var caption = document.getElementById('caption'); caption.style.display = 'none'; var throbber = document.getElementById('throbberImg'); throbber.style.display = 'block'; request = sh_getXMLHttpRequest(); var url = 'css/sh_' + value + '.min.css'; request.open('GET', url, true); request.onreadystatechange = handler; request.send(null); } function body_load() { if (/Konqueror/.test(navigator.userAgent)) { var previous = document.getElementById('previous'); previous.innerHTML = '<'; var next = document.getElementById('next'); next.innerHTML = '>'; } loadStyle(); sh_highlightDocument(); // Opera needs this, or else it truncates the pre var pre = document.getElementById('codePre'); var width = pre.scrollWidth + 'px'; pre.style.width = width; // freeze the width of the caption var caption = document.getElementById('caption'); caption.style.width = width; }