var currState = "";
var numBlocks;
var genLevel;
function initChart( level )
{
 var gen = 0;
 
 genLevel = level;
 numBlocks = level.length;
 initMenu("");
 for( var i = 0 ; i < numBlocks ; i++ )
 {
 gen = ( gen < level[i] ) ? level[i] : gen;
 }
 initGenMenu( gen + 1 );
 parseData();
}
function initGenMenu( num )
{
 var txt = "<a class='dummy' href='javascript:void(0)'>" + "Generations:" + "</a>";
 
 for( var i = 0 ; i < num ; i++ )
 {
 txt += "<a href='javascript:setGen(" + (i+1) + ")'>" + (i+1) + "</a>";
 }
 if( document.getElementById("genmenu") )
 {
 document.getElementById("genmenu").innerHTML = txt;
 }
}
 
function parseData()
{
 for( var i = 0 ; i < numBlocks ; i++ )
 {
 currState += "1";
 }
}
function swapState( currState, currVal, n )
{
 var newState = currState.substring( 0, n );
 newState += currVal ^ 1 
 newState += currState.substring( n+1, currState. length );
 return newState;
}
function toggle( blockNum )
{
 var newString = "";
 var expanded, n;
 expanded = currState.charAt( blockNum );
 currState = swapState( currState, expanded, blockNum );
 if (expanded == "0")
 {
 document.getElementById( "divBlock" + blockNum ).style.display = "block";
 document.getElementById( "imgBlock" + blockNum ).src = "cmh.gif";
 } else {
 document.getElementById( "divBlock" + blockNum ).style.display = "none";
 document.getElementById( "imgBlock" + blockNum ).src = "cph.gif";
 }
 status = "";
}
function hilite( img, blockNum )
{
 if( currState.charAt( blockNum ) == "0" )
 {
 img.src = "cph.gif";
 status = "Click to Display Children";
 } else {
 img.src = "cmh.gif";
 status = "Click to Collapse Children";
 }
 return true;
}
function lolite( img, blockNum )
{
 if( currState.charAt( blockNum ) == "0" )
 {
 img.src = "cpl.gif";
 } else {
 img.src = "cml.gif";
 }
 status = "";
 return true;
}
function hilite2( blockNum )
{
 var img = document.getElementById( "imgBlock" + blockNum );
 
 if( currState.charAt( blockNum ) == "0" )
 {
 img.src = "cph.gif";
 } else {
 img.src = "cmh.gif";
 }
 return true;
}
function lolite2( blockNum )
{
 var img = document.getElementById( "imgBlock" + blockNum );
 
 if( currState.charAt( blockNum ) == "0" )
 {
 img.src = "cpl.gif";
 } else {
 img.src = "cml.gif";
 }
 return true;
}
function setGen( gen )
{ 
 currState = "1"; // Always show one generation
 for( var i = 1 ; i < genLevel.length ; i++ )
 {
 if( genLevel[i] < gen )
 {
 document.getElementById( "divBlock" + i ).style.display = "block";
 document.getElementById( "imgBlock" + i ).src = "cml.gif";
 currState += "1";
 } else {
 document.getElementById( "divBlock" + i ).style.display = "none";
 document.getElementById( "imgBlock" + i ).src = "cpl.gif";
 currState += "0";
 }
 }
}


