/** * Created by Alex on 4/21/2015. */ /** * it works like this: * * the toggle row has the onclick with the table id, the parent name and this. The function will look through all trs with matching parent and check the class * if hidden, it shows them, else it hides them. * * The caret is also flipped and the toggle class is changed. * * barnesHut barnesHut.gravitationalConstant barnesHut.centralGravity barnesHut.springLength barnesHut.springConstant barnesHut.damping * * * @param tableId * @param parent * @param clickedRow */ function toggleTable(tableId, parent, clickedRow) { var table = document.getElementById(tableId); var wasOpen = false; for (var i = 0, row; row = table.rows[i]; i++) { if (row.getAttribute('parent') === parent) { if (row.className.indexOf('hidden') !== -1) { row.className = row.className.replace(' hidden','').replace('hidden',''); row.className += ' visible'; } else { row.className = row.className.replace(' visible','').replace('visible','');; row.className += ' hidden'; wasOpen = true; } } } var spans; if (wasOpen === true) { spans = document.getElementsByClassName('caret'); clickedRow.className += ' collapsible'; } else { spans = document.getElementsByClassName('right-caret') clickedRow.className = clickedRow.className.replace(' collapsible','').replace('collapsible','');; } for (var i = 0; i < spans.length; i++) { if (spans[i].getAttribute('parent') === parent) { spans[i].className = wasOpen === true ? 'right-caret' : 'caret'; } } } function toggleTab(tabThis) { var parentNode = tabThis.parentNode; var active = tabThis.className.indexOf('active') !== -1; for (var i = 0; i < parentNode.children.length; i++) { var child = parentNode.children[i]; var targetNodeId = child.getAttribute('targetNode'); if (targetNodeId) { var targetNode = document.getElementById(child.getAttribute('targetNode')); targetNode.className = targetNode.className.replace(' hidden', '').replace('hidden', '') + ' hidden'; } child.className = child.className.replace(' active','').replace('active',''); } // activate the tab tabThis.className += ' active'; var ownTargetNodeId = tabThis.getAttribute('targetNode'); if (ownTargetNodeId) { var ownTargetNode = document.getElementById(ownTargetNodeId); ownTargetNode.className = ownTargetNode.className.replace(' hidden','').replace('hidden',''); } }