function OnMouseEnter( obj )
{
	//TNTDoCommand('SceneGraph.Objects(' + obj + ').SetDiffuseColor(#FF0000)');
	if (movemode==1)
	{
		if (!moving)
		{
			TNTDoCommand('Objects(' + obj + ').SetSelected(1)');
			TNTDoCommand('Objects(' + obj + ').SetVisible(1)');
		}
	}
}

function OnMouseExit( obj )
{
	//TNTDoCommand('SceneGraph.Objects(' + obj + ').ResetDiffuseColor()');
	if (movemode==1)
	{
		TNTDoCommand('SceneGraph.Objects('+ obj +').SetSelected(0)');
		TNTDoCommand('SceneGraph.Objects(' + obj + ').SetVisible(0)');
	}
}

var movemode=0;
var moving=false;

function OnMoveStart()
{
	moving = true;
	TNTDoCommand('CameraCtrl.SetIgnoreInput(1)');
}

function OnMoveEnd()
{
	moving = false;
	TNTDoCommand('CameraCtrl.SetIgnoreInput(0)');
}

function WalkInside2()
{
	TNTDoCommand('SceneGraph.Objects(PhysSphere).SetEnable(true)');
	TNTDoCommand('CameraCtrl.SetCurrent("Camera01")');
	TNTDoCommand('SceneGraph.Physics.Reset()');
	element("TNTCtrl").focus();
}

function MoveMode_island(on,cameraout)
{
		if (on)
		{
			ShowObj('*');
			HideObj('Box*');
			ShowObj('logo_visimmo3D');
			MoveCamera05Dummy(4);
			changeCamera('Camera05', 500);
			TNTDoCommand('SceneGraph.Objects("Box*").SetMouseOverEvent(1)');	
			TNTDoCommand('SceneGraph.Objects("Box*").SetOcclusion(1)');
			TNTDoCommand('Selection.SetMoveDirectionZ(0)');
			TNTDoCommand('Selection.SetLeftMode(1)'); 
			TNTDoCommand('Selection.SetRightMode(5)'); 
			movemode=1;
		}
		else
		{
			TNTDoCommand('SceneGraph.Objects("Box*").SetMouseOverEvent(0)');	
			TNTDoCommand('SceneGraph.Objects("Box*").SetOcclusion(0)');
			TNTDoCommand('CameraCtrl.SetIgnoreInput(0)');
			MoveCamera05Dummy(4);
			ShowObj('logo_visimmo3D');
			if (cameraout) changeCamera(cameraout,500);
			else
				changeCamera('Camera05', 500);
			movemode=0;
		}
}

function MoveMode_frame(on,cameraout)
{
		if (on)
		{
			ShowObj('*');
			HideObj('Box*');
			ShowObj('logo_visimmo3D');
			MoveCamera05Dummy(3);
			changeCamera('Camera05', 500);
			TNTDoCommand('SceneGraph.Objects("Box*").SetMouseOverEvent(1)');	
			TNTDoCommand('SceneGraph.Objects("Box*").SetOcclusion(1)');
			TNTDoCommand('Selection.SetMoveDirectionZ(0)');
			TNTDoCommand('Selection.SetLeftMode(1)'); 
			TNTDoCommand('Selection.SetRightMode(5)'); 
			movemode=1;
		}
		else
		{
			TNTDoCommand('SceneGraph.Objects("Box*").SetMouseOverEvent(0)');	
			TNTDoCommand('SceneGraph.Objects("Box*").SetOcclusion(0)');
			TNTDoCommand('CameraCtrl.SetIgnoreInput(0)');
			MoveCamera05Dummy(3);
			ShowObj('logo_visimmo3D');
			if (cameraout) changeCamera(cameraout,500);
			else
				changeCamera('Camera05', 500);
			movemode=0;
		}
}

function Assemble_island(config)
{
	switch (config)
	{
		case '1':
			TNTDoCommand('SceneGraph.Objects("Box*").ResetTransformation()');
			ShowObj('logo_visimmo3D');
			if (movemode)	MoveMode_island(0);
		break
		
		case '2':
			TNTDoCommand('SceneGraph.Objects("Box*").ResetTransformation()');		
			TNTDoCommand('SceneGraph.Objects("Box01").SetPositionWorld(148.7,-43.9,0)');
			TNTDoCommand('SceneGraph.Objects("Box02").SetPositionWorld(301,-186,0)');
			TNTDoCommand('SceneGraph.Objects("Box03").SetPositionWorld(301.8,-43.9,0)');
			TNTDoCommand('SceneGraph.Objects("Box04").SetPositionWorld(442,-43.9,0)');
			ShowObj('logo_visimmo3D');
			if (movemode)	MoveMode_island(0);
		break
	}
	ShowObj("*");
	HideObj('Box*');
	//Move to Camera linked to Dummy02
	MoveCamera05Dummy(4);
	changeCamera('Camera05', 500);
}

function Assemble_frame(config)
{
	switch (config)
	{
		case '1':
			TNTDoCommand('SceneGraph.Objects("Box*").ResetTransformation()');	
			ShowObj('logo_visimmo3D');	
			if (movemode)	MoveMode_frame(0);
		break
		
		case '2':
			TNTDoCommand('SceneGraph.Objects("Box*").ResetTransformation()');		
			TNTDoCommand('SceneGraph.Objects("Box02").SetPositionWorld(135,-76.5,0)');
			TNTDoCommand('SceneGraph.Objects("Box03").SetPositionWorld(136.8,-168.6,0)');
			ShowObj('logo_visimmo3D');
			if (movemode)	MoveMode_frame(0);
		break
	}
	ShowObj("*");
	HideObj('Box*');
	//Move to Camera linked to Dummy02
	MoveCamera05Dummy(3);
	changeCamera('Camera05', 500);
}

function HideObj(objname)
{
	TNTDoCommand('Objects("' + objname + '").SetVisible(false)');
}

function MoveCamera05Dummy(nbr)
{
	//nbr = number of Box
	//Move Dummy to Barycenter of the 4 Box
	var xPos=0;
	var yPos=0;
	for (i=1; i<=nbr; i++)
	{
	xPos+=parseInt(TNTDoCommand("SceneGraph.Objects('Box0" + i + "').GetPositionWorldX()"));
	yPos+=parseInt(TNTDoCommand("SceneGraph.Objects('Box0" + i + "').GetPositionWorldY()"));
	}
	xPos/=nbr;
	yPos/=nbr;
	TNTDoCommand("SceneGraph.Objects('Dummy02').SetPositionWorld(" + xPos + "," + yPos + ",0)'");
}


function MoveToObj(obj, camera)
{
	MoveMode_island(0,camera);
	switch (obj) 
	{
		case "CANAPE01":
			HideObj('*');
			ShowGroup('CANAPE01');
			ShowObj('floor01');
			radioobj.ObjSelected[0].checked=1;
			break
		case 'CANAPE02':
			HideObj('*');
			ShowGroup('CANAPE02');
			ShowObj('floor02');
			radioobj.ObjSelected[1].checked=1;
		break
		case 'CANAPE03':
			HideObj('*');
			ShowGroup('CANAPE03');
			ShowObj('floor03');
			radioobj.ObjSelected[2].checked=1;
		break
		case 'CANAPE04':
			HideObj('*');
			ShowGroup('CANAPE04');
			ShowObj('floor04');
			radioobj.ObjSelected[3].checked=1;
		break
	}
}

function MoveToObj_frame(obj, camera)
{
	MoveMode_frame(0,camera);
	switch (obj) 
	{
		case "CANAPE01":
			HideObj('*');
			ShowGroup('CANAPE01');
			ShowObj('floor01');
			radioobj.ObjSelected[0].checked=1;
			break
		case 'CANAPE02':
			HideObj('*');
			ShowGroup('CANAPE02');
			ShowObj('floor02');
			radioobj.ObjSelected[1].checked=1;
		break
		case 'CANAPE03':
			HideObj('*');
			ShowGroup('CANAPE03');
			ShowObj('floor03');
			radioobj.ObjSelected[2].checked=1;
		break
	}
}

function MoveToObj_wave(obj, camera)
{
	switch (obj) 
	{
		case 'CANAPE01':
			HideObj('*');
			ShowGroup(obj);
			radioobj.ObjSelected[0].checked=1;
			element("wave").style.display = '';
			element("shell").style.display = 'none';
			element("wave").style.paddingLeft = 150;
		break
		case 'CANAPE02':
			HideObj('*');
			ShowGroup(obj);
			radioobj.ObjSelected[1].checked=1;
			element("wave").style.display = 'none';
			element("shell").style.display = '';
			element("shell").style.paddingLeft = 150;
		break
			case 'CANAPEALL':
			ShowObj('*');
			radioobj.ObjSelected[2].checked=1;
			element("wave").style.display = '';
			element("shell").style.display = '';
			element("shell").style.paddingLeft = 0;
			element("wave").style.paddingLeft = 0;
		break
	}
	changeCamera(camera, 500);
}
