var ie4 = (document.all && !document.getElementById);
var ie5 = (document.all && document.getElementById);
var ns6 = (!document.all && document.getElementById);

var agt=navigator.userAgent.toLowerCase();
var firefox = 0;
if (agt.indexOf("firefox") != -1) firefox=1;

usingCamera02 = true;

function element(id)
{
	if(ie4)	// Explorer 4
		return document.all[id];
	else	// Explorer 5+ Netscape 6+ and Mozilla and Firefox
		return document.getElementById(id);
}

function initTurnTool()
{
	var tntInstalled = isTurnToolInstalled();
 											
	if (tntInstalled==false)
	{
		popInfo({content:'./turntool.html',width:'560',height:'382',hide:['flashfunction','menuflash'],title:'t&eacute;l&eacute;chargement plugin',status:'visimmo3d'});
		checkRefresh();
	}
	else
	{
		if (!(ie4||ie5))
		{
			//element('TurnTool').innerHTML = '<embed id="TNTCtrl" width="640" height="480" src="appart01.TNT" transparent="0" ctrl_color="#D8D8D8" pluginspage="http://www.turntool.com/download/" type="application/tntfile"></embed>';
		}
	}
	
}

function isTurnToolInstalled()
{
	var tntInstalled = false;
	if (ie4||ie5)
	{
		try
		{
			var xObj = new ActiveXObject("TNT.TNTCtrl");
			if (xObj)
			{
				tntInstalled = true;
			}
		}
		catch (e)
		{
		}
	}
	else
	{
		if(navigator.plugins.namedItem("TurnTool XPCOM Plugin"))
		{
			tntInstalled = true;
		}
	}
	return tntInstalled;
}

function installTurnTool()
{
	if (ie4||ie5)
	{
		window.location.href = "http://www.turntool.com/ViewerInstall.exe";
	}
	else
	{
		var xpi = {'TurnTool Viewer Installation':'http://www.turntool.com/ViewerInstall.xpi'};
		InstallTrigger.install(xpi,installFinish);
	}
}

function installFinish(url, result)
{
	window.location.href = window.location;
}

var checkCounter = 0;
function checkRefresh()
{
	var tntInstalled = isTurnToolInstalled();
	if(tntInstalled==false)
	{
		checkCounter++;
		if (checkCounter>20)
		{
			checkCounter=0;
			installTurnTool();
		}
		setTimeout('checkRefresh()',500);
	}
	else
	{
		window.location.href = window.location;
	}
}

function TNTDoCommand(string)
{
	var control = element("TNTCtrl");
	if(control && control.ready)
		return control.TNTDoCommand(string);
	return "";
}

function urlAppart()
{
	var given_url = document.location.href;
	var tab = given_url.split('?');
	//alert(tab[1]);
	if(tab.length > 1){
		return(tab[1]);
	}
	else
	{
		//alert("fichier tnt non trouvé");
	}
}

function GuidedTour()
{
	StartFrame = TNTDoCommand('SceneGraph.ObjectTree(CameraGuided).GetStartFrame()');
	StopFrame = TNTDoCommand('SceneGraph.ObjectTree(CameraGuided).GetStopFrame()');
	TNTDoCommand('SceneGraph.ObjectTree(CameraGuided).StopAnimation()');
	
	TNTDoCommand('SceneGraph.ObjectTree(CameraGuided).SetEnable(true)');
	TNTDoCommand('CameraCtrl.Match("CameraGuided",0)');
	TNTDoCommand('CameraCtrl.SetCurrent("CameraGuided")');

	TNTDoCommand('SceneGraph.ObjectTree(CameraGuided).PlayAnimation(' + StartFrame +',' + StopFrame + ',true, 20)');
	TNTDoCommand('Objects("GeoSphere01").SetVisible(true)');
}

function OnClick(obj)
{
	//alert(obj);
	switch(obj)
	{
		case 'box_03':
		case 'box_17':
		case 'box_27':
		case 'box_37': 
		location.replace('./apparts/apparts.html?t3_72_50');
		break;
		
		case 'box_04':
		case 'box_18':
		case 'box_28':
		case 'box_38': 
		location.replace('./apparts/apparts.html?t4_82_70');
		break;
		
		case 'box_16':
		case 'box_26':
		case 'box_36':
		location.replace('./apparts/apparts.html?t4_84');
		break;
				
		case 'box_05':
		case 'box_19':
		case 'box_29':
		case 'box_39':
		location.replace('./apparts/apparts.html?t2_43');
		break;
		
		case 'box_15':
		case 'box_25':
		case 'box_35':
		location.replace('./apparts/apparts.html?t2_43_60');
		break;
		
		case 'box_14':
		case 'box_24':
		case 'box_33':
		location.replace('./apparts/apparts.html?t3_73_65');
		break;
		
		case 'box_12':
		case 'box_22':
		case 'box_32':
		location.replace('./apparts/apparts.html?t3_72_etages');
		break;
		
		case 'box_07':
		location.replace('./apparts/apparts.html?t3_72_rdc');
		break;
		
		case 'box_13':
		case 'box_23':
		case 'box_34':
		location.replace('./apparts/apparts.html?t3_71_40_etages');
		break;

		case 'box_08':
		location.replace('./apparts/apparts.html?t3_71_40_rdc');
		break;
	}
}

flash_appart=
					"<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' width='970' height='110' id='panel_Bottom_Flash' align='middle'>" +
					"<param name='allowScriptAccess' value='sameDomain' />" +
					"<param name='allowFullScreen' value='false' />" +
					"<param name='flashvars' value='appart=" + urlAppart() + "'/>" +
					"<param name='movie' value='Panel_Bottom.swf' /><param name='quality' value='high' /><param name='bgcolor' value='#ffffff' />" +
					"<embed src='Panel_Bottom.swf' flashvars='appart=" + urlAppart() + "' quality='high' FlashVars='./descriptif.txt' bgcolor='#ffffff' width='970' height='110' name='Panel_Bottom_Flash' align='middle' allowScriptAccess='sameDomain' allowFullScreen='false' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />" +
					"</object>";

function DynamicFlashDeclare()
{
   if (document.getElementById)
   {
   	//alert(urlAppart());
    document.getElementById("banner_appart_flash").innerHTML = flash_appart;
   }
}

function OnReady()
{
	TNTDoCommand('Objects(*).SetOcclusion(0)');
}

function OnMouseEnter(obj){
	TNTDoCommand('Objects("' + obj + '").SetVisible(true)');
}

function OnMouseExit(obj){
	TNTDoCommand('Objects("' + obj + '").SetVisible(false)');
}

function ShowEtg(floornb)
{
	switch(floornb)
	{
		case 0 :
			
			TNTDoCommand('Objects("Toit*").setvisible(false)');
			TNTDoCommand('Objects("R+3*").setvisible(false)');
			TNTDoCommand('Objects("R+2*").setvisible(false)');
			TNTDoCommand('Objects("R+1*").setvisible(false)');
//			TNTDoCommand('Objects("Box_1*").setvisible(false)');
//			TNTDoCommand('Objects("Box_2*").setvisible(false)');
//			TNTDoCommand('Objects("Box_3*").setvisible(false)');
//			TNTDoCommand('Objects("Box_0*").setvisible(true)');
			TNTDoCommand('Objects(Box_1*).SetMouseOverEvent(0)');
			TNTDoCommand('Objects(Box_2*).SetMouseOverEvent(0)');
			TNTDoCommand('Objects(Box_3*).SetMouseOverEvent(0)');
			TNTDoCommand('Objects(Box_0*).SetMouseOverEvent(1)');
			TNTDoCommand('Objects("*").SetOcclusion(0)');
			TNTDoCommand('Objects("Box_0*").SetOcclusion(1)');
			TNTDoCommand('Objects("*").SetMouseClickEvent(0)');
			TNTDoCommand('Objects("Box_0*").SetMouseClickEvent(1)');
			//TNTDoCommand('CameraCtrl.Match("Camera_RDC",1500)');
			//TNTDoCommand('CameraCtrl.SetCurrent("Camera_RDC")');	
			//TNTDoCommand('CameraCtrl.SetCurrent("Camera02")');	
			
		break;
		
		case 1 :
			TNTDoCommand('Objects("Toit*").setvisible(false)');
			TNTDoCommand('Objects("R+3*").setvisible(false)');
			TNTDoCommand('Objects("R+2*").setvisible(false)');
			TNTDoCommand('Objects("R+1*").setvisible(true)');
//			TNTDoCommand('Objects("Box_1*").setvisible(true)');
//			TNTDoCommand('Objects("Box_2*").setvisible(false)');
//			TNTDoCommand('Objects("Box_3*").setvisible(false)');
//			TNTDoCommand('Objects("Box_0*").setvisible(false)');
			TNTDoCommand('Objects(Box_1*).SetMouseOverEvent(1)');
			TNTDoCommand('Objects(Box_2*).SetMouseOverEvent(0)');
			TNTDoCommand('Objects(Box_3*).SetMouseOverEvent(0)');
			TNTDoCommand('Objects(Box_0*).SetMouseOverEvent(0)');
			TNTDoCommand('Objects("*").SetOcclusion(0)');
			TNTDoCommand('Objects("Box_1*").SetOcclusion(1)');
			TNTDoCommand('Objects("*").SetMouseClickEvent(0)');
			TNTDoCommand('Objects("Box_1*").SetMouseClickEvent(1)');
			//TNTDoCommand('CameraCtrl.Match("Camera_R+1",1500)');	
			//TNTDoCommand('CameraCtrl.SetCurrent("Camera_R+1")');
			//TNTDoCommand('CameraCtrl.SetCurrent("Camera02")');	
			
		break;
		
		case 2 :
			TNTDoCommand('Objects("Toit*").setvisible(false)');
			TNTDoCommand('Objects("R+3*").setvisible(false)');
			TNTDoCommand('Objects("R+2*").setvisible(true)');
			TNTDoCommand('Objects("R+1*").setvisible(true)');
//			TNTDoCommand('Objects("Box_1*").setvisible(false)');
//			TNTDoCommand('Objects("Box_2*").setvisible(true)');
//			TNTDoCommand('Objects("Box_3*").setvisible(false)');
//			TNTDoCommand('Objects("Box_0*").setvisible(false)');
			TNTDoCommand('Objects(Box_1*).SetMouseOverEvent(0)');
			TNTDoCommand('Objects(Box_2*).SetMouseOverEvent(1)');
			TNTDoCommand('Objects(Box_3*).SetMouseOverEvent(0)');
			TNTDoCommand('Objects(Box_0*).SetMouseOverEvent(0)');
			TNTDoCommand('Objects("*").SetOcclusion(0)');
			TNTDoCommand('Objects("Box_2*").SetOcclusion(1)');
			TNTDoCommand('Objects("*").SetMouseClickEvent(0)');
			TNTDoCommand('Objects("Box_2*").SetMouseClickEvent(1)');
			//TNTDoCommand('CameraCtrl.Match("Camera_R+2",1500)');
			//TNTDoCommand('CameraCtrl.SetCurrent("Camera_R+2")');	
			//TNTDoCommand('CameraCtrl.SetCurrent("Camera02")');	
		break;
		
		case 3 :
			TNTDoCommand('Objects("Toit*").setvisible(false)');
			TNTDoCommand('Objects("R+3*").setvisible(true)');
			TNTDoCommand('Objects("R+2*").setvisible(true)');
			TNTDoCommand('Objects("R+1*").setvisible(true)');
//			TNTDoCommand('Objects("Box_1*").setvisible(false)');
//			TNTDoCommand('Objects("Box_2*").setvisible(false)');
//			TNTDoCommand('Objects("Box_3*").setvisible(true)');
//			TNTDoCommand('Objects("Box_0*").setvisible(false)');
			TNTDoCommand('Objects(Box_1*).SetMouseOverEvent(0)');
			TNTDoCommand('Objects(Box_2*).SetMouseOverEvent(0)');
			TNTDoCommand('Objects(Box_3*).SetMouseOverEvent(1)');
			TNTDoCommand('Objects(Box_0*).SetMouseOverEvent(0)');
			TNTDoCommand('Objects("*").SetOcclusion(0)');
			TNTDoCommand('Objects("Box_3*").SetOcclusion(1)');
			TNTDoCommand('Objects("*").SetMouseClickEvent(0)');
			TNTDoCommand('Objects("Box_3*").SetMouseClickEvent(1)');
			//TNTDoCommand('CameraCtrl.Match("Camera_R+3",1500)');
			//TNTDoCommand('CameraCtrl.SetCurrent("Camera_R+3")');			
			//TNTDoCommand('CameraCtrl.SetCurrent("Camera02")');	
		break;
		
			case 4 :
			TNTDoCommand('Objects("Toit*").setvisible(true)');
			TNTDoCommand('Objects("R+3*").setvisible(true)');
			TNTDoCommand('Objects("R+2*").setvisible(true)');
			TNTDoCommand('Objects("R+1*").setvisible(true)');
//			TNTDoCommand('Objects("Box_1*").setvisible(false)');
//			TNTDoCommand('Objects("Box_2*").setvisible(false)');
//			TNTDoCommand('Objects("Box_3*").setvisible(true)');
//			TNTDoCommand('Objects("Box_0*").setvisible(false)');
			TNTDoCommand('Objects(Box*).SetMouseOverEvent(0)');
			TNTDoCommand('Objects("*").SetOcclusion(0)');
			//TNTDoCommand('CameraCtrl.Match("Camera_R+3",1500)');
		break;
	}
	
}

function Ballade(camera, physsphere, skysphere)
{
	TNTDoCommand('Objects("*").SetOcclusion(0)');
	TNTDoCommand('Objects("*").SetMouseClickEvent(0)');
	TNTDoCommand('Objects("Toit*").setvisible(true)');
	TNTDoCommand('Objects("R+3*").setvisible(true)');
	TNTDoCommand('Objects("R+2*").setvisible(true)');
	TNTDoCommand('Objects("R+1*").setvisible(true)');
	TNTDoCommand('Objects("Box_*").setvisible(false)');
	
	TNTDoCommand("Objects(*" + physsphere + "*).SetEnable(true)");
	TNTDoCommand("CameraCtrl.SetCurrent('" + camera + "')'");
	usingCamera02 = false;
	TNTDoCommand('SceneGraph.Physics.Reset()');
	
	if (skysphere) TNTDoCommand('Objects("' + skysphere + '").SetVisible(true)');			
	element("TNTCtrl").focus();
}

function WalkInside(skysphere)
{
	TNTDoCommand('SceneGraph.Objects(PhysSphere*).SetEnable(true)');
	TNTDoCommand('CameraCtrl.SetCurrent("Camera01")');
	usingCamera02 = false;
	TNTDoCommand('SceneGraph.Physics.Reset()');
	if (skysphere) TNTDoCommand('Objects("' + skysphere + '").SetVisible(true)');			
	element("TNTCtrl").focus();
}


function LookOutside(skysphere)
{
	TNTDoCommand('Objects("*").SetMouseClickEvent(0)');
	TNTDoCommand('Objects("*").SetOcclusion(0)');
	TNTDoCommand('Objects("Toit*").setvisible(true)');
	TNTDoCommand('Objects("R+*").setvisible(true)');
	TNTDoCommand('Objects("Box_*").setvisible(false)');
  //TNTDoCommand('SceneGraph.Objects(PhysSphere).SetEnable(false)');
  TNTDoCommand('CameraCtrl.SetCurrent("Camera02")');
  usingCamera02 = true;
  //Trick to morph Cameras FOV
  TNTDoCommand('CameraCtrl.Match("Camera02",0)');
		
	if (skysphere) TNTDoCommand('Objects("' + skysphere + '").SetVisible(false)');
}

function HideTrancheB()
{
	TNTDoCommand('Objects("TrancheB*").SetVisible(false)');
}

function ShowTrancheB()
{
	TNTDoCommand('Objects("trancheB*").SetVisible(true)');
}

var renderidx = 0;

function Snapshot()
{
	renderidx += 1 ;
	if (ie4||ie5){
		 	var pos =  documentname() + '_' + renderidx +'.bmp';
		 	if(confirm('Enregistrer la vue 3D actuelle sur votre bureau en tant que "'+pos+' " ?')){
				TNTDoCommand('Renderer.SaveImage("'+pos+'")');
	 			alert("La capture a été placée sur votre bureau : "+pos);
	 		}
		}
	else{
			var pos =  'C:\\'+documentname() + '_' + renderidx +'.bmp';
			if(confirm('Enregistrer la vue 3D actuelle sur votre disque en tant que "'+pos+' " ?')){
				TNTDoCommand('Renderer.SaveImage("'+pos+'")');
		 		alert("La capture a été placée sur C:  : "+pos);
			}
		}
}

function documentname()
{
	var doc = document.location.href;
	var tab = doc.split('/');
	var page = tab[tab.length-1];
	tab = page.split('.');
	var nom = tab[0];
	return(nom);
}


function doCommand()
{
	var retval = TNTDoCommand( element("doCommandEdit").value );
	if(retval)
		element("returnval").innerHTML = 'Return Value = "' + retval + '"';
	else
		element("returnval").innerHTML = "";
}

var objectIndex=0;
function makeObjectList()
{
	var rs = '<br/>';
	var objectCount = TNTDoCommand('SceneGraph.GetMeshCount()');
	rs += '<table width="200" border="0" cellspacing="0" cellpadding="0"><tr><td valign="top">';
	rs += '<table width="200" border="0" cellspacing="0" cellpadding="0"><tr bgcolor="#BCC2C4"><td>';
	rs += '<p><b>Objects:</b></p></td><td><p><b>Hide:</b></p></td>';
	var objectStart = objectIndex;
	var objectEnd = objectIndex+24;
	if (objectEnd>objectCount)
		objectEnd=objectCount;
	for (var i=objectIndex; i<objectEnd; i++)
	{
		objectName = TNTDoCommand('SceneGraph.Mesh(' + i + ').GetName()');
		if(i%2 == 0)
			rs += '<tr bgcolor="#EEEEEE"><td><p>';
		else
			rs += '<tr bgcolor="FFFFFF"><td><p>';
		rs += objectName;
		rs += '</p></td><td align="right">';
		rs += '<input type="checkbox" id="checkbox' + i + '" onClick="JavaScript:HideShowObject(' + i + ');" notab>';
		rs += '</td></tr>';
	}
	rs += '</table><center>';
	rs += '<img src="tnt_mouse_help.gif" alt="Left mousebutton: Rotate\r\nRight mousebutton: Zoom\r\nBoth mousebuttons: Pan">';
	rs += '</center></td></tr></table>';
	LevelTable.innerHTML = rs;
}



function loadExternalTextures()
{
	var texcnt = 0;
	texcnt = TNTDoCommand('SceneGraph.GetBitmapCount()');
	var bExternal = 64;
	var bHasAlpha = 32;
	for( var i=0; i<texcnt; i++ )
	{
		var props = 0;
		props = TNTDoCommand('SceneGraph.Bitmap(' + i + ').GetProperties()');
		if(props & bExternal)
		{
			var name = TNTDoCommand('SceneGraph.Bitmap(' + i + ').GetName()');
			if(props & bHasAlpha)
			{
				name += '.png'; // alpha textures are exported as png
			}
			else
			{
				name += '.jpg'; // non-alpha textures are exported as jpg
			}
			TNTDoCommand('SceneGraph.Bitmap(' + i + ').Load("' + name + '")');
		}
	}
}

function cb(source,target)
{
	TNTDoCommand ('SceneGraph.Bitmap("' + source + '").Load("' + target + '")');
	//Firefox workaround for instant switching textures
	SetObjColor("Dummy01", "#FFFFFF");
}

function Resetb(source,target)
{
	TNTDoCommand ('SceneGraph.Bitmap("' + source + '").Reset()');
}

function TntCtrlBrowserSize(typeobj, typebg, tailleX, tailleY)
{
	var installationIE = '<OBJECT id="TNTCtrl" width="' + tailleX + '" height="' + tailleY + '" classid="CLSID:402ee96e-2ce8-482d-ada5-ceceea07e16d" codebase="http://www.turntool.com/ViewerInstall.exe#version=2,12,0,8">' +
 											'<param name="transparent" value="0">' +
 											'<param name="tnt_back_color" value="' + typebg + '">' +
 											'<param name="ctrl_color" value="#000000">' +
 											'<param name="src" value="' + typeobj + '.tnt">' +
 											'<param name="script" value="ProgressBar.SetDownloadText(\'Téléchargement de la scène 3D en cours (made by VISIMMO 3D)\');ProgressBar.SetCoreDownloadText(\'Mise à jour du plugin 3D\');TNTCtrl.SetLogo(\'None\');">' +
 											'</OBJECT>';
 											
 var installationMozilla = '<embed id="TNTCtrl" width="' + tailleX + '"  height="' + tailleY +  '"src="' + typeobj + '.tnt" transparent="0" ctrl_color="#0000FF"' +
 													 "tnt_back_color='" + typebg + "' pluginspage='http://www.turntool.com/download/' type='application/tntfile'></embed>'" ;
 	
 			if (ie4||ie5)
 			{								
 			document.write(installationIE);								
			}
			else
			{
			document.write(installationMozilla);								
			}
}


function loadScene(tntfile)
{	
	if (firefox)
		alert ("Fonction non compatible avec firefox");
	else
		element('TNTCtrl').src = (tntfile);
} 
