/* Outline rendering functions version: 1.2 last modified 10-Oct-2002 created by Marc Barrot, with help from Aaron Straup Cope, DJ Adams and Sjoerd Visscher copyright 2002 by Precision IT Management,Inc. You may use and distribute this code freely, just keep this header information intact. */ var img_expanded = 'http://radio.weblogs.com/0107145/gems/activeRenderer/ol3.gif'; var img_collapsed = 'http://radio.weblogs.com/0107145/gems/activeRenderer/ol2.gif'; var img_rotating = 'http://radio.weblogs.com/0107145/gems/activeRenderer/globe.gif'; new Image(15,15),src = img_expanded; // caching new Image(15,15),src = img_collapsed; // caching new Image(15,15),src = img_rotating; // caching function expand(ioNode) { ioWedge = "i" + ioNode.substr(1); if (document.getElementById && document.getElementById(ioNode) != null) { document.getElementById(ioWedge).src=img_collapsed; document.getElementById(ioWedge).title='collapse'; document.getElementById(ioNode).className='expanded'; } } function collapse(ioNode) { ioWedge = "i" + ioNode.substr(1); if (document.getElementById && document.getElementById(ioNode) != null) { document.getElementById(ioWedge).src=img_expanded; document.getElementById(ioWedge).title='expand'; document.getElementById(ioNode).className='collapsed'; } } function ioSwitch(ioNode) { if (document.getElementById && document.getElementById(ioNode) != null) { nodeState = document.getElementById(ioNode).className; } if (nodeState == 'collapsed') { expand(ioNode); } else { collapse(ioNode); } } function expandAll(divName) { if (document.getElementsByTagName) { nodeList = document.getElementsByTagName('div'); for (var i = 0; i < nodeList.length; i++) { if (nodeList.item(i).getAttribute('name') == divName) { expand(nodeList.item(i).id); } } } else { alert ("Sorry, don't know how to make this run in your browser."); } } function collapseAll(divName) { if (document.getElementsByTagName) { nodeList = document.getElementsByTagName('div'); for (var i = 0; i < nodeList.length; i++) { if (nodeList.item(i).getAttribute('name') == divName) { collapse(nodeList.item(i).id); } } } else { alert ("Sorry, don't know how to make this run in your browser."); } } function normalizeAll(spanName) { if (document.getElementsByTagName) { nodeList = document.getElementsByTagName('span'); for (var i = 0; i < nodeList.length; i++) { if (nodeList.item(i).getAttribute('name') == spanName) { nodeList.item(i).style.fontWeight = 'normal'; } } } else { alert ("Sorry, don't know how to make this run in your browser."); } } function expandBold(ioNode) { ioWedge = "i" + ioNode.substr(1); ioTitle = "t" + ioNode.substr(1); if (document.getElementById && document.getElementById(ioNode) != null) { document.getElementById(ioWedge).src=img_collapsed; document.getElementById(ioWedge).title='collapse'; document.getElementById(ioNode).className='expanded'; document.getElementById(ioTitle).style.fontWeight = 'bold'; } } function expandByDate(n) { if (n.nodeType == 1) { if (n.tagName.toLowerCase() == 'div') { if (n.getAttribute('name') == 'item') { expandBold(n.id); } } } var children = n.childNodes; for (var i=0; i < children.length; i++ ) { expandByDate(children[i]); } } function daySwitch(postDate) { var hasItems = 0; if (document.getElementsByTagName) { nodeList = document.getElementsByTagName('span'); for (var i = 0; i < nodeList.length; i++) { if (nodeList.item(i).getAttribute('name') == 'itemTitle') { hasItems = 1; break; } } } if (hasItems) { collapseAll('item'); normalizeAll('itemTitle'); if (document.getElementById) { expandByDate(document.getElementById(postDate)); } } else { collapseAll('day'); ioSwitch(postDate); } } var targetNode; var targetRoot; function transclude(ioNode, url) { var serverUrl = 'http://www.w3.org/2000/06/webdata/xslt'; var xsltUrl = 'http://radio.weblogs.com/0107145/gems/activeRenderer/outliner_js_xsl.txt'; var xsltUrl2 = 'http://radio.weblogs.com/0107145/gems/activeRenderer/outliner_xsl.txt'; var renderRequest = serverUrl + '?xslfile=' + xsltUrl + '&xmlfile=' + url + '&transform=Submit'; var renderRequest2 = serverUrl + '?xslfile=' + xsltUrl2 + '&xmlfile=' + url + '&transform=Submit'; var ioWedge = "i" + ioNode.substr(1); var ioRoot = "r" + ioNode.substr(1); var ioTitle = "t" + ioNode.substr(1); if (document.getElementById ) { // create buffer if needed if (! document.getElementById ('buffer')) { // if buffer does not already exist var buffer = document.createElement('div'); buffer.setAttribute ('id', 'buffer'); document.body.appendChild (buffer); // add buffer as last element of body } // test for Mac MSIE var macMSIE = navigator.userAgent.search (/MSIE.*Mac/i) + 1; if (macMSIE) { // open new window for transcluded content var xAnchor = screen.width - (640 + 20); var yAnchor = 5; var xWidth = 640; var yHeight = 400; window.open (renderRequest2, 'Related', 'width=' + xWidth + ', left=' + xAnchor + ', height=' + yHeight + ', top=' + yAnchor); } else { // expand node var imgNode = document.getElementById (ioWedge); // wedge image node var rootNode = document.getElementById (ioRoot); // embedding div node var spanNode = document.getElementById (ioTitle); // title span node var title = spanNode.firstChild.firstChild.data; var newTitle = document.createTextNode (title); var expandedNode = document.createElement ('div'); expandedNode.setAttribute ('name', 'active'); expandedNode.setAttribute ('class', 'expanded'); expandedNode.setAttribute ('id', ioNode); expandedNode.style.marginLeft = '15px'; imgNode.src = img_rotating; imgNode.title = 'loading'; imgNode.parentNode.setAttribute ('href', 'javascript:ioSwitch(\'' + ioNode + '\')'); spanNode.removeChild (spanNode.firstChild); spanNode.appendChild (newTitle); rootNode.appendChild (expandedNode); targetNode = expandedNode; targetRoot = imgNode; // load buffer with rendered outline script var theEl=document.createElement('script'); theEl.src = renderRequest; document.getElementById('buffer').appendChild(theEl); } } } function retrieveHtml(s) { // clean-up entity encoded HTML s = s.replace (/</g, '<'); s = s.replace (/>/g, '>'); s = s.replace (/&/g, '&'); // generate random key var rnd = Math.random(); var rnd_key = String (rnd).substr(1,6); s = s.replace (/(id="[rpti][^"][^"]*)/g, '$1' + rnd_key); s = s.replace (/(\('p[^'][^']*)/g, '$1' + rnd_key); // insert transcluded HTML targetNode.innerHTML = s; targetRoot.src = img_collapsed; targetRoot.title = 'collapse'; }