<!--
var cortona = null;
var assemblymode = false;

function init ()
{
	// set up the cortona scene
	cortona = document.getElementById("cortona");

	top.topFrame.enableButton('Components', false, 'disabled', 'images/but_components_O.gif');
	top.topFrame.enableButton('Remove', false, 'disabled', 'images/but_removeParts_O.gif');
	top.topFrame.enableButton('Refit', false, 'disabled', 'images/but_refitParts_O.gif');
	
	top.rightFrame.location.href = "content.html";
}

function setActiveNode(string)
{
	if (cortona)
	{
		cortona.Engine.Nodes("OuterCase").Fields("setActiveNode").value = string;
		cortona.Engine.Nodes("Control").Fields("setActiveNode").value = string;
		cortona.Engine.Nodes("GasValve").Fields("setActiveNode").value = string;
		cortona.Engine.Nodes("CondensateTrap").Fields("setActiveNode").value = string;
		cortona.Engine.Nodes("DiverterValveMotor").Fields("setActiveNode").value = string;
		cortona.Engine.Nodes("DiverterValve").Fields("setActiveNode").value = string;
		cortona.Engine.Nodes("AutoAirVent").Fields("setActiveNode").value = string;
		cortona.Engine.Nodes("FlowSensor").Fields("setActiveNode").value = string;
		cortona.Engine.Nodes("FlowRegulator").Fields("setActiveNode").value = string;
		cortona.Engine.Nodes("HydraulicBlock").Fields("setActiveNode").value = string;
	}

  //show the play controls
  if (top.mainFrame.playcontrolsLayer && top.topFrame.partcontrolsLayer)
  {
    top.mainFrame.playcontrolsLayer.style.visibility = "visible";
    top.topFrame.partcontrolsLayer.style.visibility = "visible";
  }
    
	top.activeNode = string;
}

function resetPage()
{
	if (cortona)
	{
		top.topFrame.enableButton('Components', false, 'disabled', 'images/but_components_O.gif');
		top.topFrame.enableButton('Remove', false, 'disabled', 'images/but_removeParts_O.gif');
		top.topFrame.enableButton('Refit', false, 'disabled', 'images/but_refitParts_O.gif');
		
		//hide the play controls
    if (top.mainFrame.playcontrolsLayer && top.topFrame.partcontrolsLayer)
    {
      top.mainFrame.playcontrolsLayer.style.visibility = "hidden";
      top.topFrame.partcontrolsLayer.style.visibility = "hidden";
    }
    
		top.rightFrame.location.href = "content.html";

		returnToBoiler('HydraulicBlock', false);
		returnToBoiler('FlowRegulator', false);
		returnToBoiler('FlowSensor', false);
		returnToBoiler('AutoAirVent', false);
		returnToBoiler('DiverterValve', false);
		returnToBoiler('DiverterValveMotor', false);
		returnToBoiler('CondensateTrap', false);
		returnToBoiler('GasValve', false);
		returnToBoiler('Control', false);
		returnToBoiler('OuterCase', false);
	}
	top.topFrame.stopAudio();
}

function setAllTouchSensors(val)
{
	setTouchSensors('HydraulicBlock', val);
	setTouchSensors('FlowRegulator', val);
	setTouchSensors('FlowSensor', val);
	setTouchSensors('AutoAirVent', val);
	setTouchSensors('DiverterValve', val);
	setTouchSensors('DiverterValveMotor', val);
	setTouchSensors('CondensateTrap', val);
	setTouchSensors('GasValve', val);
	setTouchSensors('Control', val);
	setTouchSensors('OuterCase', val);

	setTouchSensors(top.activeNode, (!val));
}

function setTouchSensors(node, val)
{
	if (cortona)
	{
		cortona.Engine.Nodes(node).Fields("setTouchSensors").value = val;
	}
}

function returnToBoiler(node, val)
{
	if (cortona)
	{
		cortona.Engine.Nodes(node).Fields("returnToBoiler").value = val;
	}

	top.topFrame.remove_page = null;
	top.topFrame.refit_page = null;
	top.topFrame.components_page = null;

	top.topFrame.enableButton('Components', false, 'disabled', 'images/but_components_O.gif');
	top.topFrame.enableButton('Remove', false, 'disabled', 'images/but_removeParts_O.gif');
	top.topFrame.enableButton('Refit', false, 'disabled', 'images/but_refitParts_O.gif');

	top.topFrame.stopAudio();
}

function animationMode(node, val)
{
	if (cortona)
	{
		cortona.Engine.Nodes(node).Fields("animationMode").value = val;
		assemblymode = val;	
	}
	top.topFrame.stopAudio();
}

function setButtons(node, val)
{
	if (cortona)
	{
		cortona.Engine.Nodes(node).Fields("setButtons").value = val;
	}
}

function highlightPart(node, val)
{
	if (cortona)
	{
		cortona.Engine.Nodes(node).Fields("highlightPart").value = val;
	}
}

function onClick(node)
{
	if (cortona)
	{
		cortona.Engine.Nodes(node).Fields("onClick").value = cortona.Engine.TimeStamp;
	}
}

function skipBackAnimation(node)
{
	if (cortona)
	{
		cortona.Engine.Nodes(node).Fields("skipBackAnimation").value = cortona.Engine.TimeStamp;
	}

	top.topFrame.stopAudio();
}

function skipForwardAnimation(node)
{
	if (cortona)
	{
		cortona.Engine.Nodes(node).Fields("skipForwardAnimation").value = cortona.Engine.TimeStamp;
	}

	top.topFrame.stopAudio();
}

function resetAnimation(node)
{
	if (buttonsEnabled['Reset'] == true)
	{
		if (cortona)
		{	
			cortona.Engine.Nodes(node).Fields("resetAnimation").value = cortona.Engine.TimeStamp;
		
			enableButton('Reset', false, 'disabled', 'images/nav_reset_O.gif');	
	
			enableButton('Stop', false, 'disabled', 'images/nav_stop_O.gif');
	
			enableButton('Pause', false, 'disabled', 'images/nav_pause_O.gif');
			
			enableButton('Previous', false, 'disabled', 'images/nav_previous_O.gif');	
	
			enableButton('Play', true, 'enabled', 'images/nav_play_U.gif');
			
			enableButton('Next', true, 'enabled', 'images/nav_next_U.gif');
			
			enableButton('PlayAll', true, 'enabled', 'images/nav_playAll_U.gif');
			
			buttonsEnabled['Reset'] = false;
		}	
		top.topFrame.stopAudio();
	}
}

function previousAnimation(node)
{
	if (buttonsEnabled['Previous'] == true)
	{
		if (cortona)
		{
			cortona.Engine.Nodes(node).Fields("previousAnimation").value = cortona.Engine.TimeStamp;
			
			enableButton('Reset', false, 'disabled', 'images/nav_reset_O.gif');	

			if (cortona.Engine.Nodes(node).Fields('first_animation').value == false)
			{
				enableButton('Previous', true, 'enabled', 'images/nav_previous_U.gif');
			}
			else
			{
				enableButton('Previous', false, 'disabled', 'images/nav_previous_O.gif');
			}

			enableButton('Stop', true, 'enabled', 'images/nav_stop_U.gif');
	
			enableButton('Pause', true, 'enabled', 'images/nav_pause_U.gif');	
	
			enableButton('Play', false, 'disabled', 'images/nav_play_O.gif');
			
			enableButton('Next', true, 'enabled', 'images/nav_next_U.gif');
			
			enableButton('PlayAll', false, 'disabled', 'images/nav_playAll_O.gif');				
		}

		top.topFrame.stopAudio();
	}
}

function stopAnimation(node)
{
	if (buttonsEnabled['Stop'] == true)
	{
		if (cortona)
		{
			cortona.Engine.Nodes(node).Fields("stopAnimation").value = cortona.Engine.TimeStamp;
		}

		top.topFrame.stopAudio();
	}
}

function pauseAnimation(node)
{
	if (buttonsEnabled['Pause'] == true)
	{
		if (cortona)
		{
			cortona.Engine.Nodes(node).Fields("pauseAnimation").value = true;
		}
	}
}

function playAnimation(node, val)
{
	if (buttonsEnabled['Play'] == true)
	{
		if (cortona)
		{
			cortona.Engine.Nodes(node).Fields("playAnimation").value = val;
		}
	}
}

function nextAnimation(node)
{
	if (buttonsEnabled['Next'] == true)
	{
		if (cortona)
		{
			cortona.Engine.Nodes(node).Fields("nextAnimation").value = cortona.Engine.TimeStamp;
			
			enableButton('Reset', false, 'disabled', 'images/nav_reset_O.gif');	

			enableButton('Previous', true, 'enabled', 'images/nav_previous_U.gif');
	
			enableButton('Stop', true, 'enabled', 'images/nav_stop_U.gif');
	
			enableButton('Pause', true, 'enabled', 'images/nav_pause_U.gif');	
	
			enableButton('Play', false, 'disabled', 'images/nav_play_O.gif');

			if (cortona.Engine.Nodes(node).Fields('last_animation').value == false)
			{
				enableButton('Next', true, 'enabled', 'images/nav_next_U.gif');
			}
			else
			{
				enableButton('Next', false, 'disabled', 'images/nav_next_O.gif');
			}

			enableButton('PlayAll', false, 'disabled', 'images/nav_playAll_O.gif');			
		}
	}
}

function playAllAnimation(node)
{
	if (buttonsEnabled['PlayAll'] == true)
	{
		if (cortona)
		{
			cortona.Engine.Nodes(node).Fields("playAllAnimation").value = cortona.Engine.TimeStamp;				
		}
	}
}

function getCortonaTimeStamp()
{
	if (cortona)
	{
		return cortona.Engine.TimeStamp;
	}
	else
	{
		return null;
	}
}

function setCortonaEvent(node, field, val)
{
	if (cortona)
	{
		cortona.Engine.Nodes(node).Fields(field).value = val;
	}
}

var buttonsEnabled = new Array();

buttonsEnabled['Reset'] = false;
buttonsEnabled['Previous'] = false;
buttonsEnabled['Stop'] = false;
buttonsEnabled['Pause'] = false;
buttonsEnabled['Play'] = false;
buttonsEnabled['Next'] = false;
buttonsEnabled['PlayAll'] = false;
buttonsEnabled['Components'] = false;
buttonsEnabled['Remove'] = false;
buttonsEnabled['Refit'] = false;

function enableButton(stringName, val, className, imageName)
{
	node = document.getElementById(stringName);

	if (node)
	{
		node.className = className;
		node.src = imageName;
		buttonsEnabled[stringName] = val;
	}
}

function disableButtons()
{
	enableButton('Reset', false, 'disabled', 'images/nav_reset_O.gif');
	
	enableButton('Previous', false, 'disabled', 'images/nav_previous_O.gif');	

	enableButton('Stop', false, 'disabled', 'images/nav_stop_O.gif');

	enableButton('Pause', false, 'disabled', 'images/nav_pause_O.gif');	

	enableButton('Play', false, 'disabled', 'images/nav_play_O.gif');
	
	enableButton('Next', false, 'disabled', 'images/nav_next_O.gif');
	
	enableButton('PlayAll', false, 'disabled', 'images/nav_playAll_O.gif');
}

function enableButtons(node)
{
	if (cortona)
	{
		if (cortona.Engine.Nodes(node).Fields('first_animation').value == false)
		{
			enableButton('Reset', true, 'enabled', 'images/nav_reset_U.gif');
			enableButton('Previous', true, 'enabled', 'images/nav_previous_U.gif');
		}
		else
		{
			enableButton('Reset', false, 'disabled', 'images/nav_reset_O.gif');
			enableButton('Previous', false, 'disabled', 'images/nav_previous_O.gif');
		}	

		enableButton('Stop', false, 'disabled', 'images/nav_stop_O.gif');

		enableButton('Pause', false, 'disabled', 'images/nav_pause_O.gif');	

		enableButton('Play', true, 'enabled', 'images/nav_play_U.gif');

		if (cortona.Engine.Nodes(node).Fields('last_animation').value == false)
		{
			enableButton('Next', true, 'enabled', 'images/nav_next_U.gif');
		}
		else
		{
			enableButton('Next', false, 'disabled', 'images/nav_next_O.gif');
		}

		enableButton('PlayAll', true, 'enabled', 'images/nav_playAll_U.gif');
	}
}

function enablePlay(node)
{
	if (cortona)
	{
		enableButton('Reset', false, 'disabled', 'images/nav_reset_O.gif');
		
		if (cortona.Engine.Nodes(node).Fields('first_animation').value == false)
		{
			enableButton('Previous', true, 'enabled', 'images/nav_previous_U.gif');
		}
		else
		{
			enableButton('Previous', false, 'disabled', 'images/nav_previous_O.gif');
		}	

		enableButton('Stop', true, 'enabled', 'images/nav_stop_U.gif');

		enableButton('Pause', true, 'enabled', 'images/nav_pause_U.gif');

		enableButton('Play', true, 'enabled', 'images/nav_play_U.gif');

		if (cortona.Engine.Nodes(node).Fields('last_animation').value == false)
		{
			enableButton('Next', true, 'enabled', 'images/nav_next_U.gif');
		}
		else
		{
			enableButton('Next', false, 'disabled', 'images/nav_next_O.gif');
		}

		enableButton('PlayAll', true, 'enabled', 'images/nav_playAll_U.gif');
	}
}

function enablePause(node)
{
		enableButton('Reset', false, 'disabled', 'images/nav_reset_O.gif');
		
		enableButton('Previous', false, 'disabled', 'images/nav_previous_O.gif');

		enableButton('Stop', true, 'enabled', 'images/nav_stop_U.gif');

		enableButton('Pause', false, 'disabled', 'images/nav_pause_O.gif');

		enableButton('Play', true, 'enabled', 'images/nav_play_U.gif');

		enableButton('Next', false, 'disabled', 'images/nav_next_O.gif');
		
		enableButton('PlayAll', false, 'disabled', 'images/nav_playAll_O.gif');
}

function enablePauseAll(node)
{
		enableButton('Reset', false, 'disabled', 'images/nav_reset_O.gif');
		
		enableButton('Previous', false, 'disabled', 'images/nav_previous_O.gif');

		enableButton('Stop', true, 'enabled', 'images/nav_stop_U.gif');

		enableButton('Pause', false, 'disabled', 'images/nav_pause_O.gif');

		enableButton('Play', false, 'disabled', 'images/nav_play_O.gif');

		enableButton('Next', false, 'disabled', 'images/nav_next_O.gif');
		
		enableButton('PlayAll', true, 'enabled', 'images/nav_playAll_U.gif');
}

function swapImage(string, imageName)
{
	if (buttonsEnabled[string] == true)
	{
		node = document.getElementById(string);
		
		if (node)
		{
			node.src = imageName;
		}
	}
}

//this should update a variable or function in the world to let it know the state of the audio
function updateAudioState(node, val)
{
    if (cortona)
    {
	cortona.Engine.Nodes(node).Fields("updateAudioState").value = val;
    }
}

//this function is called from the wrl to alert the javascript to the 
//current animation that is playing
function currentlyPlayingAnimation(activeAnimation, audioInstructionToPlay)
{
  //highlight the appropriate instruction
  //top.rightFrame.highlightMenu(activeAnimation);
  top.rightFrame.selectMenu(activeAnimation);
  
  var part = top.activeNode.toLowerCase();
  var type = (assemblymode) ? "a" : "d";  //choose assembly mode or disassembly mode
   
  if (audioInstructionToPlay <= 0)
  {
    //don't play audio as this animation is not the first in the sequence
    return;
  }
  
  //play audio instruction
  var audioFile = "audio/" + part + "_" + type + "_" + audioInstructionToPlay + ".mp3";
    
  top.topFrame.playAudio(audioFile);
}

var remove_page = null;
var refit_page = null;
var components_page = null;

function enableComponentsPage()
{
	enableButton('Components', false, 'disabled', 'images/but_components_D.gif');
	enableButton('Remove', true, 'enabled', 'images/but_removeParts_U.gif');
	enableButton('Refit', true, 'enabled', 'images/but_refitParts_U.gif');

	if (top.activeNode == 'OuterCase')
	{
		components_page = 'outer_case_parts.html';
	}
	else if (top.activeNode == 'Control')
	{
		components_page = 'control_parts.html';
	}
	else if (top.activeNode == 'GasValve')
	{
		components_page = 'gas_valve_parts.html';
	}
	else if (top.activeNode == 'DiverterValveMotor')
	{
		components_page = 'diverter_valve_motor_parts.html';
	}
	else if (top.activeNode == 'DiverterValve')
	{
		components_page = 'diverter_valve_parts.html';
	}
	else if (top.activeNode == 'AutoAirVent')
	{
		components_page = 'auto_air_vent_parts.html';
	}
	else if (top.activeNode == 'FlowSensor')
	{
		components_page = 'flow_sensor_parts.html';
	}
	else if (top.activeNode == 'FlowRegulator')
	{
		remove_page = 'flow_regulator_parts.html';
	}
	else if (top.activeNode == 'HydraulicBlock')
	{
		components_page = 'hydraulic_block_parts.html';
	}
	else
	{
		components_page = null;
	}

	top.rightFrame.location.href = components_page;
	top.mainFrame.setButtons(top.activeNode, true);
	top.mainFrame.animationMode(top.activeNode, false);

	if (buttonsEnabled['Components'] == false)
	{
		components_page = null;
	}

	setPages();

}

function enableRemovePage()
{
	enableButton('Components', true, 'enabled', 'images/but_components_U.gif');
	enableButton('Remove', false, 'disabled', 'images/but_removeParts_D.gif');
	enableButton('Refit', true, 'enabled', 'images/but_refitParts_U.gif');

	if (top.activeNode == 'OuterCase')
	{
		remove_page = 'remove_outer_case.html';
	}
	else if (top.activeNode == 'Control')
	{
		remove_page = 'remove_control.html';
	}
	else if (top.activeNode == 'GasValve')
	{
		remove_page = 'remove_gas_valve.html';
	}
	else if (top.activeNode == 'DiverterValveMotor')
	{
		remove_page = 'remove_diverter_valve_motor.html';
	}
	else if (top.activeNode == 'DiverterValve')
	{
		remove_page = 'remove_diverter_valve.html';
	}
	else if (top.activeNode == 'AutoAirVent')
	{
		remove_page = 'remove_auto_air_vent.html';
	}
	else if (top.activeNode == 'FlowSensor')
	{
		remove_page = 'remove_flow_sensor.html';
	}
	else if (top.activeNode == 'FlowRegulator')
	{
		remove_page = 'remove_flow_regulator.html';
	}
	else if (top.activeNode == 'HydraulicBlock')
	{
		remove_page = 'remove_hydraulic_block.html';
	}
	else
	{
		remove_page = null;
	}

	top.rightFrame.location.href = remove_page;
	top.mainFrame.setButtons(top.activeNode, false);
	top.mainFrame.animationMode(top.activeNode, false);

	if (buttonsEnabled['Remove'] == false)
	{
		remove_page = null;
	}

	setPages();
}

function enableRefitPage()
{
	enableButton('Components', true, 'enabled', 'images/but_components_U.gif');
	enableButton('Remove', true, 'enabled', 'images/but_removeParts_U.gif');
	enableButton('Refit', false, 'disabled', 'images/but_refitParts_D.gif');

	if (top.activeNode == 'OuterCase')
	{
		refit_page = 'refit_outer_case.html';
	}
	else if (top.activeNode == 'Control')
	{
		refit_page = 'refit_control.html';
	}
	else if (top.activeNode == 'GasValve')
	{
		refit_page = 'refit_gas_valve.html';
	}
	else if (top.activeNode == 'DiverterValveMotor')
	{
		refit_page = 'refit_diverter_valve_motor.html';
	}
	else if (top.activeNode == 'DiverterValve')
	{
		refit_page = 'refit_diverter_valve.html';
	}
	else if (top.activeNode == 'AutoAirVent')
	{
		refit_page = 'refit_auto_air_vent.html';
	}
	else if (top.activeNode == 'FlowSensor')
	{
		refit_page = 'refit_flow_sensor.html';
	}
	else if (top.activeNode == 'FlowRegulator')
	{
		remove_page = 'refit_flow_regulator.html';
	}
	else if (top.activeNode == 'HydraulicBlock')
	{
		refit_page = 'refit_hydraulic_block.html';
	}
	else
	{
		refit_page = null;
	}

	top.rightFrame.location.href = refit_page;
	top.mainFrame.setButtons(top.activeNode, false);
	top.mainFrame.animationMode(top.activeNode, true);

	if (buttonsEnabled['Refit'] == false)
	{
		refit_page = null;
	}

	setPages();
}

function setPages()
{
	if (buttonsEnabled['Components'] == true)
	{
		if (top.activeNode == 'OuterCase')
		{
			components_page = 'outer_case_parts.html';
		}
		else if (top.activeNode == 'Control')
		{
			components_page = 'control_parts.html';
		}
		else if (top.activeNode == 'GasValve')
		{
			components_page = 'gas_valve_parts.html';
		}
		else if (top.activeNode == 'DiverterValveMotor')
		{
			components_page = 'diverter_valve_motor_parts.html';
		}
		else if (top.activeNode == 'DiverterValve')
		{
			components_page = 'diverter_valve_parts.html';
		}
		else if (top.activeNode == 'AutoAirVent')
		{
			components_page = 'auto_air_vent_parts.html';
		}
		else if (top.activeNode == 'FlowSensor')
		{
			components_page = 'flow_sensor_parts.html';
		}
		else if (top.activeNode == 'FlowRegulator')
		{
			components_page = 'flow_regulator_parts.html';
		}
		else if (top.activeNode == 'HydraulicBlock')
		{
			components_page = 'hydraulic_block_parts.html';
		}
		else
		{
			components_page = null;
		}
	}
	else
	{
		components_page = null;
	}

	if (buttonsEnabled['Remove'] == true)
	{
		if (top.activeNode == 'OuterCase')
		{
			remove_page = 'remove_outer_case.html';
		}
		else if (top.activeNode == 'Control')
		{
			remove_page = 'remove_control.html';
		}
		else if (top.activeNode == 'GasValve')
		{
			remove_page = 'remove_gas_valve.html';
		}
		else if (top.activeNode == 'DiverterValveMotor')
		{
			remove_page = 'remove_diverter_valve_motor.html';
		}
		else if (top.activeNode == 'DiverterValve')
		{
			remove_page = 'remove_diverter_valve.html';
		}
		else if (top.activeNode == 'AutoAirVent')
		{
			remove_page = 'remove_auto_air_vent.html';
		}
		else if (top.activeNode == 'FlowSensor')
		{
			remove_page = 'remove_flow_sensor.html';
		}
		else if (top.activeNode == 'FlowRegulator')
		{
			remove_page = 'remove_flow_regulator.html';
		}
		else if (top.activeNode == 'HydraulicBlock')
		{
			remove_page = 'remove_hydraulic_block.html';
		}
		else
		{
			remove_page = null;
		}
	}
	else
	{
		remove_page = null;
	}

	if (buttonsEnabled['Refit'] == true)
	{
		if (top.activeNode == 'OuterCase')
		{
			refit_page = 'refit_outer_case.html';
		}
		else if (top.activeNode == 'Control')
		{
			refit_page = 'refit_control.html';
		}
		else if (top.activeNode == 'GasValve')
		{
			refit_page = 'refit_gas_valve.html';
		}
		else if (top.activeNode == 'DiverterValveMotor')
		{
			refit_page = 'refit_diverter_valve_motor.html';
		}
		else if (top.activeNode == 'DiverterValve')
		{
			refit_page = 'refit_diverter_valve.html';
		}
		else if (top.activeNode == 'AutoAirVent')
		{
			refit_page = 'refit_auto_air_vent.html';
		}
		else if (top.activeNode == 'FlowSensor')
		{
			refit_page = 'refit_flow_sensor.html';
		}
		else if (top.activeNode == 'FlowRegulator')
		{
			refit_page = 'refit_flow_regulator.html';
		}
		else if (top.activeNode == 'HydraulicBlock')
		{
			refit_page = 'refit_hydraulic_block.html';
		}
		else
		{
			refit_page = null;
		}
	}
	else
	{
		refit_page = null;
	}

}

//-->
