// JavaScript Document
var DEBUG = false;
var FRAME_INTERVAL = 250; // number of milliseconds between frames
var DEACTIVATE_DELAY = 2; // number of frames to pass before deactivating
var MAX_LAYERS = 4; // max layers to check
var MAX_ACTIVES = 8; // max levels of rollover

var time = 0; // counts frames elapsed
var nav_active_level = -1;
var nav_actives = new Array(MAX_ACTIVES);
var nav_activate_action = new Array(MAX_ACTIVES);
var nav_fade_action = new Array(MAX_ACTIVES);
var nav_deactivate_action = new Array(MAX_ACTIVES);
var nav_deactivate_time = new Array(MAX_ACTIVES);
var clickCount = 0;
for (var i = 0; i < MAX_ACTIVES; i++) {
	nav_actives[i] = null;
	nav_activate_action[i] = null;
	nav_fade_action[i] = null;
	nav_deactivate_action[i] = null;
	nav_deactivate_time[i] = 0;
}
var annCState= new Array();
annCState['annc03'] = 0;
annCState['annc01'] = 0;
annCState['annc00'] = 0;
annCState['annc10'] = 0;
annCState['annc12'] = 0;
annCState['annc11'] = 0;
annCState['annc22'] = 0;
annCState['annc21'] = 0;
annCState['annc20'] = 0;

function mainMenuChange(left_menu){
	
	test = clickCount %2 ;
	clickCount += 1;
	
	if( test == 0 ){
		Deactivate();
		document.getElementById(left_menu).style.display = 'none';
		Activate('home', 0, 'homebar_a()', 'homebar_d()', '');
	}else{
		nav_actives[0] = null;	
		nav_activate_action[0] =null;
		Deactivate();
		document.getElementById(left_menu).style.display = 'block';
	}
	
}

function setBackground(url) {
  document.body.style.backgroundImage = "url('"+url+"')";
}
// --- CUSTOM RENDER ENGINE STARTS HERE ---
clock = setInterval("onEnterFrame()", FRAME_INTERVAL);
function onEnterFrame() {
	time++;
	//Watch();
	//document.GetElementById("watch").style.visibility="hidden";
	for (var i = 0; i < MAX_ACTIVES; i++) {
		if (nav_deactivate_time[i] == -1) {
			nav_deactivate_time[i] = 0;
			eval(nav_activate_action[i]);
		}
		if (nav_deactivate_time[i]) {
			if (nav_deactivate_time[i] < time) {
				nav_deactivate_time[i] = 0;
				eval(nav_deactivate_action[i]);
			}
		}
	}
}
function pause() {
	if (DEBUG) trace("pause");
	clearInterval(clock);
}
function play() {
	if (DEBUG) trace("play");
	clock = setInterval("onEnterFrame()", FRAME_INTERVAL);
}
function Watch() {
	var str = "";
	str += "active_level: " + nav_active_level + "<span style='padding-left:400px'>" + time + "</span><br/>";
	str += "nav_actives: " + nav_actives.join("|") + "<br/>";
	str += "nav_activate_action:"+nav_activate_action.join("|")+"<br/>";
	str += "nav_fade_action: " + nav_fade_action.join("|") + "<br/>";
	str += "nav_deactivate_action: " + nav_deactivate_action.join("|") + "<br/>";
	str += "nav_deactivate_time: " + nav_deactivate_time.join("|")+ "<br/>";
	str += "clickCount :"+ clickCount;
	document.getElementById("watch").innerHTML = str;
}


function annActivate(base_name, level, activate_action, deactivate_action, fade_action){
	for( var i in annCState ){
		if(i ==  base_name ){
			if(annCState[i] == 0){
				annCState[i] = 1;
				newAnnactivate(i);
			}else{
				annCState[i] = 0;
				annDeactivate(i);
			}
		}else{
			annCState[i] = 0;
			annDeactivate(i);
		}
	}
	return ;
}
function annDeactivate(base_name){
	bs = base_name +'_over';
	if( document.getElementById(bs) != null ){
		document.getElementById(bs).style.backgroundColor = "#333333";
		//document.getElementById(bs).style.visibility = 'hidden';
		document.getElementById(bs).style.display = "none";
	}
}
function newAnnactivate(base_name){
	bs = base_name + '_over';
	if( document.getElementById(bs) != null ){
		document.getElementById(bs).style.backgroundColor = PAGECOLOR;
		//document.getElementById(bs).style.visibility = 'visible';
		document.getElementById(bs).style.display = "block";
	}
}
function Activate(base_name, level, activate_action, deactivate_action, fade_action) {
	//document.getElementById("watch").innerHTML= "level = "+ level+ " ";
	if (DEBUG) {
		var params = new Array(base_name, level, activate_action, deactivate_action, fade_action);
		//Watch("Activate(" + params.join(", ") + ")");
		//document.getElementById("watch").innerHTML= "test base name= "+ base_name + "  :foo";
	}
	//alert(base_name);
	if (level < MAX_ACTIVES) {	
		for (var i = 0; i <= level; i++) {
			nav_deactivate_time[i] = 0;
			//alert(nav_activate_action[i]);
			eval(nav_activate_action[i]);
		}
		
		if (level > nav_active_level) nav_active_level = level;
		if (nav_actives[level] != null) {
			eval(nav_deactivate_action[level]);
		}
		for (var i = level+2; i < MAX_ACTIVES; i++) {
			if (nav_actives[i] != null) {
				nav_deactivate_time[i] = 0;
				eval(nav_deactivate_action[i]);
			}
		}
		nav_actives[level] = base_name;
		nav_activate_action[level] = ((activate_action != undefined) ? activate_action : "default_activate('" + base_name + "', " + level + ");");
		nav_fade_action[level] = ((fade_action != undefined) ? fade_action : "default_fade('" + base_name + "', " + level + ");");
		nav_deactivate_action[level] = ((deactivate_action != undefined) ? deactivate_action : "default_deactivate('" + base_name + "', " + level + ");");
		eval(nav_activate_action[level]);
		//Watch();
	} else {
		if (DEBUG) trace("Activate():: max level exceeded");
	}
}

function Deactivate() {
	if (DEBUG) trace("Deactivate: "+ nav_active_level);
	for (var i = 0; i < MAX_ACTIVES; i++) {
		eval(nav_fade_action[i]);
		nav_deactivate_time[i] = time+DEACTIVATE_DELAY;
	}
	//Watch();
}

function event_a(id) {
	//document.getElementById(id).style.backgroundColor = PAGECOLOR;
	document.getElementById(id).style.backgroundColor = "#66CCEE";
	document.getElementById(id+'_over').style.backgroundColor = PAGECOLOR;
	document.getElementById(id+'_over').style.display = "block";
	//document.getElementById(id+'_over').style.visibility = "visible";
	//document.getElementById(id+'_over').style.border = "thin solid red";
}
function event_f(id) {
	document.getElementById(id+'_over').style.backgroundColor = "#333333";
}
function event_d(id) {
	document.getElementById(id+'_over').style.backgroundColor = PAGECOLOR;
	document.getElementById(id+'_over').style.visibility = "hidden";
}

function homebar_a() {
	document.getElementById("home_bar").style.backgroundColor = "black";
	document.getElementById("home_link").style.color = "white";
	default_layer_style('home_layer1', 'on');
}
function homebar_f() {
	document.getElementById("home_bar").style.backgroundColor = "#333333";
	document.getElementById("home_link").style.color = "#fcfcfc";
	default_layer_style('home_layer1', 'fade');
}
function homebar_d() {
	document.getElementById("home_bar").style.backgroundColor = "white";
	document.getElementById("home_link").style.color = "#999999";
	default_layer_style('home_layer1', 'off');
}

//var arrowtext = "&nbsp;&nbsp;&nbsp;&gt;"
function default_activate(basename, level) {
	if (DEBUG) trace("A(" + basename + ", " + level + ")");
	if (document.getElementById(basename+'_link')) {
		document.getElementById(basename+'_link').style.color = PAGECOLOR;
		//if (document.getElementById(basename+'_link').innerHTML.indexOf(arrowtext) < 0) {
		//	document.getElementById(basename+'_link').innerHTML = document.getElementById(basename+'_link').innerHTML + arrowtext;
		//}
	}
	for (var i = 0; i < MAX_LAYERS; i++) {
		if (document.getElementById(basename+'_layer'+i)) {
			default_layer_style(basename+'_layer'+i, 'on');
		}
	}
}

function default_fade(basename, level) {
	if (DEBUG) trace("f(" + basename + ", " + level + ")");
	if (document.getElementById(basename+'_link')) {
		document.getElementById(basename+'_link').style.color = '#333333';
	}
	for (var i = 0; i < MAX_LAYERS; i++) {
		if (document.getElementById(basename+'_layer'+i)) {
			default_layer_style(basename+'_layer'+i, 'fade');
		}
	}
}

function default_deactivate(basename, level) {
	if (DEBUG) trace("d(" + basename + ", " + level + ")");
	if (document.getElementById(basename+'_link')) {
		document.getElementById(basename+'_link').style.color = '#666666';
		//var linkHTML = document.getElementById(basename+'_link').innerHTML;
		//if (linkHTML.indexOf(arrowtext) > 0) {
		//	document.getElementById(basename+'_link').innerHTML = linkHTML.substring(0, linkHTML.indexOf(arrowtext));
		//}
	}
	for (var i = 0; i < MAX_LAYERS; i++) {
		if (document.getElementById(basename+'_layer'+i)) {
			default_layer_style(basename+'_layer'+i, 'off');
		}
	}
	nav_actives[level] = null;
	nav_activate_action[level] = null;
	nav_fade_action[level] = null;
	nav_deactivate_action[level] = null;
}

function default_layer_style(layer, state) {
	// *** pre-condition: layer exists ***
	// state = on, fade, off
	if (state == 'on') {
		document.getElementById(layer).style.display = 'block';
		document.getElementById(layer).style.backgroundColor = '#ffffff';
	} else if (state == 'fade') {
		document.getElementById(layer).style.backgroundColor = '#f9f9f9';
	} else {
		document.getElementById(layer).style.display = 'none';
	}
}