
function showNumPatterns(){
  var num_patterns = $H($('json_num_patterns').innerHTML.unescapeHTML().evalJSON());
  var data = "<h2>Number of Patterns</h2>";
  data += "<table>"
  data += "<tr><th>Rank</th><th>Num of Patterns</th></tr>"
  for(i = 0; i < num_patterns.keys().size() - 1; i++){
    data += "<tr><td>" + i + "</td><td style='background-color:white;'>" +  num_patterns.get(i) + "</td></tr>";
  }
  data += "<tr><td>Total</td><td>" + num_patterns.get("total") + "</td></tr>"
  data += "</table>"
  $('information').update(data)
}

function showNodeData(node_id) {
  var node_data = $('json_node_data').innerHTML.unescapeHTML().evalJSON();
  var node_info = node_data[node_id];
  if(node_info.extent){
	var ex = "<table>"
	ex += "<tr><th>Extension</th></tr>"
	node_info.extent.each(function(e){
		if(node_info.extent_this.indexOf(e)){
		  ex += "<tr><td> " + e + "</td></tr>";				
		} else {
		  ex += "<tr><td> " + e + "*</td></tr>";
		}
	});
	ex += "</table>"
	var it = "<table>"
	it += "<tr><th>Intension</th></tr>"
	node_info.intent.each(function(i){
		if(!i.match(/^\d+$/)){
			if(node_info.intent_this.indexOf(i)){
			  it += "<tr><td> " + i + "</td></tr>";				
			} else {
			  it += "<tr><td> " + i + "*</td></tr>";
			}
		}
	});
	it += "</table>"
    var data = "<h2>Node ID: " + node_info.id +"</h2>" + it + ex ;
	data += "<a onClick='showNumPatterns();'>» [number of patterns]</a>";
    $('information').update(data);
  } else {
	var seq_array = [];
	node_info.name.scan(/.+?(\s|$)/, function(i){
		i.each(function(j){
			if(!j.match(/^\s*$/)){
			    seq_array.push(j);				
			}
    	});
	});
	
	var regex1 = /\b_\b/;
　　　　var regex2 = RegExp(node_info.name.gsub(regex1, "(.+?)") + "$");
	var pv = "<table>";
	var values = [];
	node_info.possible_values.each(function(v){
		v.scan(regex2, function(m){
			var index = 0;
			var sub_values = [];
			m.each(function(n){
			  if(!index == 0){
				if(!n == ""){
    		      sub_values.push(n);
                } 
              }
              index += 1;
		    });
            values.push(sub_values);				
		});
	});

    seq_array.each(function(th){
		pv += "<th>" + th + "</th>";
	});
	
	values.each(function(k){
		pv += "<tr>"
		seq_array.each(function(l){	
			if(l.match(/^_\s?$/)){
				pv += "<td style='text-align:center;background-color:white;'>" + k.shift() + "</td>";
			} else {
			  	pv += "<td style='text-align:center;background-color:#DDDDDD;'>" + l + "</td>";
			}				
		});
		pv += "</tr>"
	});
	pv += "</table></p>";
	
	if(node_info.zscore){
		var zscore = node_info.zscore.toFixed(2);		
	}else{
		var zscore = 0.0;		
	}
	
    var data = "<h2>Node ID: " + node_info.id +"</h2>" +
             "<p>Position: " + node_info.position + "<br />" +
             "<p>Z-score: " + zscore + "<br />" +
             "<p>Possible values for variables:<br />" + pv;
	data += "<a onClick='showNumPatterns();'>» [number of patterns]</a>";
    $('information').update(data);  
  }
}
