// -*-Javascript-*- var hide_nodes = function () { var v = document.getElementById('relnodes').value; for(i = 0; i < last_id; i++) { var id = 'node' + i; var rect = document.getElementById(id); if ((v-0) <= tree[id].max) rect.style.fillOpacity = 1; else rect.style.fillOpacity = 0.3; } }; var activate_parent = function () { if (current_node) activate(tree[current_node].par); }; var activate_previous = function () { if (current_node) activate(tree[current_node].ps); }; var activate_next = function () { if (current_node) activate(tree[current_node].ns); }; var activate_first = function () { if (current_node) activate(tree[current_node].fc); }; var buttons = document.getElementsByTagName("button"); var activate = function (id) { if (id == nil_id) return; if (current_node) { var rect = document.getElementById(current_node); rect.style.fillOpacity = 1.0; rect.style.stroke = 'black'; rect.classList.remove('blink'); }; hide_nodes(); current_node = id; buttons[0].disabled = tree[id].par == nil_id; buttons[1].disabled = tree[id].ps == nil_id; buttons[2].disabled = tree[id].fc == nil_id; buttons[3].disabled = tree[id].ns == nil_id; var node = document.getElementById(id); var div = document.getElementById('svg'); var node_dim = node.getBBox(); var div_dim = div.getBoundingClientRect(); var nx = node_dim.x; var ny = node_dim.y; var hs = nx - (div_dim.width / 2 - node_dim.width / 2); var vs = ny - (div_dim.height / 2 - node_dim.height / 2); div.scrollLeft = hs; div.scrollTop = vs; node.style.stroke = 'red'; old_node = node; node.classList.add('blink'); var d = document.getElementById('data'); var msg = ''; for (i=0; i <= rounds; i++) msg += ('

round ' + i + ':
new states:') + tree[id].dlist[i] + '
all states:' + tree[id].flist[i] + '

\n'; d.innerHTML = msg; return; };