// *************************************************************************************
// MTS3 Plugin Javascript interface
// *************************************************************************************

var isIE4 = navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion.substring(0,1)) >= 4;
var isNav = (navigator.appName.indexOf("Netscape") != -1);
var isIE  = (navigator.appName.indexOf("Microsoft") != -1);
var agt=navigator.userAgent.toLowerCase();
var isWin = agt.indexOf('win') != -1;
var isMac = agt.indexOf('mac') != -1;

function MTSPluginFunction() 
{
	var count = MTSPluginFunction.arguments.length;

	if(count == 0)			return false;
	var argstr = MTSPluginFunction.arguments[0] + '(';
	var last = count-1;
	
	for(i = 1; i < count; i++)
	{
		argstr+= MTSPluginFunction.arguments[i];
		if(i < last)	argstr+= ',';
	}
	argstr+= ')';
	
	if (isIE4)	return document.all.MetaStreamCtl.PluginCommand(argstr, 0, 0);
	else		return document.MetaStreamCtl.DoCommand(argstr);
}

function MTSTriggerAnimation(name)					{MTSPluginFunction ("TriggerAnimation",  	name);				}
function MTSReverseAnimation(name)					{MTSPluginFunction ("ReverseAnimation ", 	name);				}
function MTSStopAnimation 	(name)					{MTSPluginFunction ("StopAnimation ", 		name);				}
function MTSStartAnimation 	(name)					{MTSPluginFunction ("StartAnimation ", 		name);				}
function MTSResetAnimation 	(name)					{MTSPluginFunction ("ResetAnimation ", 		name);				}	
function MTSToggleCollapsed	(name)					{MTSPluginFunction ("ToggleCollapsed", 		name);				}
function MTSToggleVisible	(name)					{MTSPluginFunction ("ToggleVisible", 		name);				}
function MTSTogglePano		(name)					{MTSPluginFunction ("TogglePano", 			name);				}
function MTSRemoveObject	(name)					{MTSPluginFunction ("RemoveObject", 		name);				}
function MTSLoadMTX			(path)					{MTSPluginFunction ("LoadMTX", 				path); 				}
function MTSClearScene		()						{MTSPluginFunction ("ClearScene");								}
function MTSResetCamera		()						{MTSPluginFunction ("ResetCamera");								}
function MTSSetProperty(object, prop, value, type)	{MTSPluginFunction ("SetProperty ", object, prop, value, type); }
function MTSGetProperty(object, prop, type) { return MTSPluginFunction ("GetProperty ", object, prop, type);		}


function MTSSetCollapse(name, value) 
{
	var inst = "MTSInstance." + name;
	MTSSetProperty(inst, 'clps', value.toString(), 'mts_int');
}

// $$$ AH this is just a hack (you have to have MTSInstance called render in the scene)
function MTSRender()								{MTSToggleVisible  ("MTSInstance.render");						}		

