function DefaultNodeAPI()
{
	this.id = null;
}
DefaultNodeAPI.prototype.canGotoNode = function () {return false};
DefaultNodeAPI.prototype.gotoNode = function () {};
DefaultNodeAPI.prototype.gosubNode = function () {};
DefaultNodeAPI.prototype.canContinue = function () {return false};
DefaultNodeAPI.prototype.canPrevious = function () {return false};
DefaultNodeAPI.prototype.navContinue = function () {};
DefaultNodeAPI.prototype.navPrevious = function () {};
DefaultNodeAPI.prototype.setNodeScore = function () {};
DefaultNodeAPI.prototype.getNodeScore = function () {return 0};
DefaultNodeAPI.prototype.getNodeChildIds = function () {return new Array()};
DefaultNodeAPI.prototype.getNodeTitle = function () {return ""};
DefaultNodeAPI.prototype.getNodeUrl = function () {return ""};
DefaultNodeAPI.prototype.getNodeTag = function () {return ""};
DefaultNodeAPI.prototype.getNodeAttempted = function () {return false};
DefaultNodeAPI.prototype.setNodeAttempted = function () {};
DefaultNodeAPI.prototype.getNodeCompleted = function () {return false};
DefaultNodeAPI.prototype.setNodeCompleted = function () {};
DefaultNodeAPI.prototype.getNodeSatisfied = function () {return false};
DefaultNodeAPI.prototype.setNodeSatisfied = function () {};
DefaultNodeAPI.prototype.getNodeSkip = function () {return false};
DefaultNodeAPI.prototype.setNodeSkip = function () {};
DefaultNodeAPI.prototype.getNodeChoice = function () {return false};
DefaultNodeAPI.prototype.setNodeChoice = function () {};
DefaultNodeAPI.prototype.getNodeFlow = function () {return false};
DefaultNodeAPI.prototype.setNodeFlow = function () {};
DefaultNodeAPI.prototype.getNodeForwardOnly = function () {return false};
DefaultNodeAPI.prototype.setNodeForwardOnly = function () {};
DefaultNodeAPI.prototype.getNodeBlock = function () {return false};
DefaultNodeAPI.prototype.setNodeBlock = function () {};
DefaultNodeAPI.prototype.getNodeEnabled = function () {return false};
DefaultNodeAPI.prototype.setNodeEnabled = function () {};
DefaultNodeAPI.prototype.getNodeVisible = function () {return false};
DefaultNodeAPI.prototype.setNodeVisible = function () {};
DefaultNodeAPI.prototype.resetNode = function () {};
DefaultNodeAPI.prototype.refreshNode = function () {};
DefaultNodeAPI.prototype.getNodeId = function () {return ""};
DefaultNodeAPI.prototype.getNodeRef = function () {return null};
DefaultNodeAPI.prototype.verifyUrl = function () {return null};
DefaultNodeAPI.prototype.registerEvent = function () {return null};
DefaultNodeAPI.prototype.unregisterEvent = function () {return null};
DefaultNodeAPI.prototype.getChoice = function () {return false};
DefaultNodeAPI.prototype.getFlow = function () {return false};

function DefaultMapAPI()
{
	this.id = null;
}
DefaultMapAPI.prototype.getChildren = function () {return null};
DefaultMapAPI.prototype.getSiblings = function () {return null};
DefaultMapAPI.prototype.getSubtree = function () {return null};
DefaultMapAPI.prototype.getParentId = function () {return ""};
DefaultMapAPI.prototype.getRootId = function () {return ""};
DefaultMapAPI.prototype.getMainRootId = function () {return ""};
DefaultMapAPI.prototype.createMapNode = function () {return null};
DefaultMapAPI.prototype.getRootToNode = function () {return null};
DefaultMapAPI.prototype.getLessonTitle = function () {return ""};
DefaultMapAPI.prototype.getLessonDescription = function () {return ""};

function DefaultToolbarAPI()
{
	this.id = null;
}
DefaultToolbarAPI.prototype.setProperty = function () {return null};
DefaultToolbarAPI.prototype.getProperty = function () {return null};
DefaultToolbarAPI.prototype.setVar = function () {return null};
DefaultToolbarAPI.prototype.getVar = function () {return null};
DefaultToolbarAPI.prototype.executeMethod = function () {return null};
DefaultToolbarAPI.prototype.persistData = function () {return null};
DefaultToolbarAPI.prototype.registerEvent = function () {return null};
DefaultToolbarAPI.prototype.raiseEvent = function () {return null};
DefaultToolbarAPI.prototype.unregisterEvent = function () {return null};

function DefaultLMSAPI()
{
	this.id = null;
}
DefaultLMSAPI.prototype.STATUS_NOT_ATTEMPTED = 0;
DefaultLMSAPI.prototype.STATUS_INCOMPLETE = 1;
DefaultLMSAPI.prototype.STATUS_COMPLETED = 2;
DefaultLMSAPI.prototype.STATUS_PASSED = 3;
DefaultLMSAPI.prototype.STATUS_FAILED = 4;
DefaultLMSAPI.prototype.STATUS_UNKNOWN = 5;
DefaultLMSAPI.prototype.INT_TRUE_FALSE = 0;
DefaultLMSAPI.prototype.INT_CHOICE = 1;
DefaultLMSAPI.prototype.INT_FILL_IN = 2;
DefaultLMSAPI.prototype.INT_NUMERIC = 3;
DefaultLMSAPI.prototype.INT_LIKERT = 4;
DefaultLMSAPI.prototype.INT_MATCHING = 5;
DefaultLMSAPI.prototype.INT_PERFORMANCE = 6;
DefaultLMSAPI.prototype.INT_SEQUENCING = 7;
DefaultLMSAPI.prototype.INT_CORRECT = 8;
DefaultLMSAPI.prototype.INT_WRONG = 9;
DefaultLMSAPI.prototype.MODE_NORMAL = 0;
DefaultLMSAPI.prototype.MODE_BROWSE = 1;
DefaultLMSAPI.prototype.MODE_REVIEW = 2;
DefaultLMSAPI.prototype.ENTRY_INIT = 0;
DefaultLMSAPI.prototype.ENTRY_RESUME = 1;
DefaultLMSAPI.prototype.ENTRY_NULL = 2;
DefaultLMSAPI.prototype.EXIT_NONE = 0;
DefaultLMSAPI.prototype.EXIT_SUSPEND = 1;
DefaultLMSAPI.prototype.EXIT_LOGOUT = 2;
DefaultLMSAPI.prototype.EXIT_TIMEOUT = 3;
DefaultLMSAPI.prototype.getLessonSuccessStatus = function () {return 5};
DefaultLMSAPI.prototype.setLessonSuccessStatus = function () {return true};
DefaultLMSAPI.prototype.getLessonCompletionStatus = function () {return 1};
DefaultLMSAPI.prototype.setLessonCompletionStatus = function () {return true};
DefaultLMSAPI.prototype.initLMSComm = function () {return true};
DefaultLMSAPI.prototype.terminateLMSComm = function () {return true};
DefaultLMSAPI.prototype.setLessonScore = function () {return true};
DefaultLMSAPI.prototype.getLessonScore = function () {return 0};
DefaultLMSAPI.prototype.objectivesSupported = function () {return false};
DefaultLMSAPI.prototype.getNextFreeObjectiveIndex = function () {return 0};
DefaultLMSAPI.prototype.initObjective = function () {return true};
DefaultLMSAPI.prototype.getObjectiveSuccessStatus = function () {return 5};
DefaultLMSAPI.prototype.setObjectiveSuccessStatus = function () {return true};
DefaultLMSAPI.prototype.getObjectiveCompletionStatus = function () {return 1};
DefaultLMSAPI.prototype.setObjectiveCompletionStatus = function () {return true};
DefaultLMSAPI.prototype.setObjectiveScore = function () {return true};
DefaultLMSAPI.prototype.getObjectiveScore = function () {return 0};
DefaultLMSAPI.prototype.interactionsSupported = function () {return false};
DefaultLMSAPI.prototype.getNextFreeInteractionIndex = function () {return 0};
DefaultLMSAPI.prototype.initInteraction = function () {return true};
DefaultLMSAPI.prototype.scoreInteraction = function () {return true};
DefaultLMSAPI.prototype.getSuspendData = function () {return ""};
DefaultLMSAPI.prototype.setSuspendData = function () {return true};
DefaultLMSAPI.prototype.getLessonLocation = function () {return ""};
DefaultLMSAPI.prototype.setLessonLocation = function () {return true};
DefaultLMSAPI.prototype.getLessonMode = function () {return 0};
DefaultLMSAPI.prototype.getEntryCode = function () {return 0};
DefaultLMSAPI.prototype.setExitCode = function () {return true};
DefaultLMSAPI.prototype.commitData = function () {return true};

// These functions are used to locate the NavEngine Object
// and its API's. You may need to change the way these
// functions work depending on where the NavEngine Object
// resides in relation to the window that this JS file
// will be loading in.
function getNodeAPIRef()
{
	var retVal = null;
	if (NAV_ENGINE != null)
	{
		retVal = NAV_ENGINE.nodeAPI;
	}
	else
	{
		retVal = new DefaultNodeAPI();
	}
	
	return retVal;
}

function getMapAPIRef()
{
	var retVal = null;
	if (NAV_ENGINE != null)
	{
		retVal = NAV_ENGINE.mapAPI;
	}
	else
	{
		retVal = new DefaultMapAPI();
	}
	
	return retVal;
}

function getFrameworkAPIRef()
{
	var retVal = findObject(window, "frameworkAPI");
	if (retVal == null)
	{
		retVal = new DefaultToolbarAPI();
	}
	return retVal;
}

function getLMSAPIRef()
{
	var retVal = findObject(window, "lmsAPI");
	if (retVal == null)
	{
		retVal = new DefaultLMSAPI();
	}
	return retVal;
}

// findObject() is a recursive function that is used to locate
// the NavEngine Object (navEngine).
var NAV_ENGINE = null;
NAV_ENGINE = findObject(window, "navEngine");

var nodeAPI = getNodeAPIRef();
var mapAPI = getMapAPIRef();
var frameworkAPI = getFrameworkAPIRef();
var lmsAPI = getLMSAPIRef();

var nodeId = nodeAPI.getNodeId();
var	nodeTag = "";
if (nodeId != null)
{
	nodeTag = nodeAPI.getNodeTag();
}


