collapsible.collapsed.content.appendChild(createTag(node,false,false));collapsible.collapsed.content.appendChild(createText('...'));collapsible.collapsed.content.appendChild(createTag(node,true,false));parentElement.appendChild(collapsible);} function processComment(parentElement,node) {if(isShort(node.nodeValue)){var line=createLine();line.appendChild(createComment(''));parentElement.appendChild(line);}else{var collapsible=createCollapsible();collapsible.expanded.start.appendChild(createComment(''));collapsible.collapsed.content.appendChild(createComment(''));parentElement.appendChild(collapsible);}} function processCDATA(parentElement,node) {if(isShort(node.nodeValue)){var line=createLine();line.appendChild(createText(''));parentElement.appendChild(line);}else{var collapsible=createCollapsible();collapsible.expanded.start.appendChild(createText(''));collapsible.collapsed.content.appendChild(createText(''));parentElement.appendChild(collapsible);}} function processProcessingInstruction(parentElement,node) {if(isShort(node.nodeValue)){var line=createLine();line.appendChild(createComment(''));parentElement.appendChild(line);}else{var collapsible=createCollapsible();collapsible.expanded.start.appendChild(createComment(''));collapsible.collapsed.content.appendChild(createComment(''));parentElement.appendChild(collapsible);}} function processText(parentElement,node) {parentElement.appendChild(createText(node.nodeValue));} function isShort(value) {return value.trim().length<=50;} function createHTMLElement(elementName) {return document.createElementNS('http://www.w3.org/1999/xhtml',elementName)} function createCollapsible() {var collapsible=createHTMLElement('div');collapsible.classList.add('collapsible');collapsible.expanded=createHTMLElement('div');collapsible.expanded.classList.add('expanded');collapsible.appendChild(collapsible.expanded);collapsible.expanded.start=createLine();collapsible.expanded.start.appendChild(createCollapseButton());collapsible.expanded.appendChild(collapsible.expanded.start);collapsible.expanded.content=createHTMLElement('div');collapsible.expanded.content.classList.add('collapsible-content');collapsible.expanded.appendChild(collapsible.expanded.content);collapsible.expanded.end=createLine();collapsible.expanded.appendChild(collapsible.expanded.end);collapsible.collapsed=createHTMLElement('div');collapsible.collapsed.classList.add('collapsed');collapsible.collapsed.classList.add('hidden');collapsible.appendChild(collapsible.collapsed);collapsible.collapsed.content=createLine();collapsible.collapsed.content.appendChild(createExpandButton());collapsible.collapsed.appendChild(collapsible.collapsed.content);return collapsible;} function createButton() {var button=createHTMLElement('span');button.classList.add('button');return button;} function createCollapseButton(str) {var button=createButton();button.classList.add('collapse-button');return button;} function createExpandButton(str) {var button=createButton();button.classList.add('expand-button');return button;} function createComment(commentString) {var comment=createHTMLElement('span');comment.classList.add('comment');comment.textContent=commentString;return comment;} function createText(value) {var text=createHTMLElement('span');text.textContent=value.trim();text.classList.add('text');return text;} function createLine() {var line=createHTMLElement('div');line.classList.add('line');return line;} function createTag(node,isClosing,isEmpty) {var tag=createHTMLElement('span');tag.classList.add('tag');var stringBeforeAttrs='<';if(isClosing) stringBeforeAttrs+='/';stringBeforeAttrs+=node.nodeName;var textBeforeAttrs=document.createTextNode(stringBeforeAttrs);tag.appendChild(textBeforeAttrs);if(!isClosing){for(var i=0;i .expanded').className='expanded';document.querySelector('#'+sectionId+' > .collapsed').className='collapsed hidden';};} function collapseFunction(sectionId) {return function(){document.querySelector('#'+sectionId+' > .expanded').className='expanded hidden';document.querySelector('#'+sectionId+' > .collapsed').className='collapsed';};} function initButtons() {var sections=document.querySelectorAll('.collapsible');for(var i=0;i .expanded');var collapseButton=expandedPart.querySelector('.collapse-button');collapseButton.onclick=collapseFunction(sectionId);collapseButton.onmousedown=handleButtonMouseDown;var collapsedPart=sections[i].querySelector('#'+sectionId+' > .collapsed');var expandButton=collapsedPart.querySelector('.expand-button');expandButton.onclick=expandFunction(sectionId);expandButton.onmousedown=handleButtonMouseDown;}} function handleButtonMouseDown(e) { e.preventDefault();}