// Template specefic script

/*
----------------------------------------------------------------------------------
						Template for TurnToolBox v. 3.0
----------------------------------------------------------------------------------
	Template Name: 		default
	Template Arthour: 	TurnTool ApS
	Template Date: 		04-07-2006
	Last Update:		04-07-2006
	Template Version:	1.0
	Template Contact:	info@turntool.com
	
	Template features:
		- TurnToolBox version 3 default HTML!
	
	Template maunal: Look in manual.txt
	
	Template files:
		-index.html		-	start page
		-turntool.tnt	-	your TNT file
		-skin.css		-	CSS file for page
		-files			-	folder with files used in template
		-

	
	----------------------------------------------------------------------------------
*/
function OnReady()
{
	loadExternalTextures();
	update_menu("01");
	setTimeout(get_frame, 250);
	focus();
	TNTDoCommand('Objects(loop_*).PlayAnimation(0,15,true)');
}
var language = "DK";
var menu_type = 1;
var menu_item = "01";
var playing = false;
var animations = new Array();
var animations_end = new Array();
var current_anim = 1;

animations[1] = 0;
animations_end[1] = 800;

animations[2] = 1950;
animations_end[2] = 3129;

animations[3] = 4000;
animations_end[3] = 4420;

animations[4] = 6000;
animations_end[4] = 6746;

animations[5] = 8000;
animations_end[5] = 9224;

animations[6] = 9900;
animations_end[6] = 11065;

var animation6_fadestart = 12000;
var animation6_fadeend = 13844;
var animation6_faded = false;

var water_blue_fadestart = 12359;
var water_blue_fadeend = 13043;
var water_blue_faded = false;

var water_red_fadestart = 13200;
var water_red_fadeend = 13750;
var water_red_faded = false;

animations[7] = 12000;
animations_end[7] = 13999;

animations[8] = 14084;
animations_end[8] = 15878;

animations[9] = 16000;
animations_end[9] = 16600;

animations[10] = 18000;
animations_end[10] = 18550;

function get_frame(){
	
	frmcnt = TNTDoCommand('Objects(msv_01).GetFrame()');
	
	for (i=10;i>=1;i--)
	{
		if(frmcnt*1 >= animations[i]*1){
			current_anim = i;
			if(frmcnt*1 >= animations_end[i]*1){
				i++;
				if(i>10){
					i=1;
				}
				jumpto(i);
			}
			break;
		}
	}
	
	if(frmcnt > animation6_fadestart && frmcnt < animation6_fadeend){
		if(!animation6_faded){
			TNTDoCommand('Objects(*_fade).SetVisible(1)');
			TNTDoCommand('Objects(*_visible).SetVisible(0)');
			animation6_faded = true;
		}
	}else{
		if(animation6_faded){
			TNTDoCommand('Objects(*_visible).SetVisible(1)');
			TNTDoCommand('Objects(*_fade).SetVisible(0)');
			animation6_faded = false;
		}
	}
	
	if(frmcnt > water_blue_fadestart && frmcnt < water_blue_fadeend){
		if(!water_blue_faded){
			TNTDoCommand('Objects(loop_water_blue).SetVisible(1)');
			water_blue_faded = true;
		}
	}else{
		if(water_blue_faded){
			TNTDoCommand('Objects(loop_water_blue).SetVisible(0)');
			water_blue_faded = false;
		}
	}
	
	if(frmcnt > water_red_fadestart && frmcnt < water_red_fadeend){
		if(!water_red_faded){
			TNTDoCommand('Objects(loop_Cylinder01).SetVisible(1)');
			water_red_faded = true;
		}
	}else{
		if(water_red_faded){
			TNTDoCommand('Objects(loop_Cylinder01).SetVisible(0)');
			water_red_faded = false;
		}
	}
	
	setTimeout(get_frame, 500);
}

function jumpto(anim){
	TNTDoCommand('CameraCtrl.SetControllable(false)');
	if(current_anim == 8){
		TNTDoCommand('ObjectTree(intro).SetVisible(false)');
		TNTDoCommand('Objects(hider).SetVisible(false)');
	}
	
	switch(anim){
		
		case 8:
		TNTDoCommand('Objects(msv_*).SetFrame('+animations[anim]+')');
		TNTDoCommand('Objects(hider).SetVisible(true)');
		TNTDoCommand('ObjectTree(intro).SetVisible(true)');
		break;
		
		case 1:
		case 10:
		TNTDoCommand('Objects(msv_*).SetFrame('+animations[anim]+')');
		break;
		
		default:
		TNTDoCommand('Objects(msv_*).SetFrame('+animations[anim]+')');
		TNTDoCommand('CameraCtrl.SetControllable(true)');
		break;
	}
	current_anim = anim;
	
	
	if(anim<10){
		_menu_item = '0'+anim;
	}else{
		_menu_item = anim;
	}
	update_menu(_menu_item);
}

function update_menu(new_menu_item){
		
		TNTDoCommand('Objects(menu*_'+menu_item+'*).PlayAnimation(,0)');
		menu_item = new_menu_item;
		TNTDoCommand('Objects(menu*_'+menu_item+'*).PlayAnimation(,5)');
		
		menu_item_int = menu_item*1
		TNTDoCommand('Objects(slide_menu).PlayAnimation(,'+(menu_item_int*4)+')');
		
		TNTDoCommand('SceneGraph.Bitmap("MSV_background_01_DK").Load("files/MSV_background_'+menu_item+'_'+language+'.jpg")');
}

function OnClick(obj)
{
	if(obj.substr(0,4) == "menu"){
		_menu_item = obj.substr(6,7);
		jumpto(_menu_item*1);
	}else{	
		switch(obj){
			case "button_menu":
				switch(menu_type){
					case 1:
						TNTDoCommand('Objects(hide_menu*).SetFrame(2)'); 
						menu_type = 2;
						break;
					case 2:
						TNTDoCommand('Objects(hide_menu*).SetFrame(3)');
						menu_type = 3;
						break;
					case 3:
						TNTDoCommand('Objects(hide_menu*).SetFrame(1)'); 
						menu_type = 1;
						break;
				}
				break;
				
			case "button_prev":
				jumpto(current_anim-1);
				break;
				
			case "button_play":
				if(playing){
					TNTDoCommand('Objects(msv_*).StopAnimation()');
					TNTDoCommand('Objects(controls_*).SetFrame(0)');
					playing = false;
				}else{
					TNTDoCommand('Objects(msv_*).StartAnimation()');
					TNTDoCommand('Objects(controls_*).SetFrame(1)');
					playing = true;
				}
				break;
				
			case "button_next":
				jumpto(current_anim+1);
				break;
				
			case 'button_DataSheet':
				window.open(datasheet_link[language]);
				break;
		}
	}
}

function OnMouseEnter( obj )
{
	if(obj == "hover_top"){
		TNTDoCommand('Objects(slide_menu).PlayAnimation(,0,false,15)');
	}else{
		TNTDoCommand('Objects(slide_menu).PlayAnimation(,40,false,15)');
	}
}

function OnMouseExit( obj )
{
	TNTDoCommand('Objects(slide_menu).StopAnimation()');
}

function reset_cam(){
	TNTDoCommand('CameraCtrl.Match("Camera01",500)');
}

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("files/'+name+'")');
		}
	}
}

function saveImage()
{
	var thisDate = new Date();
	var year = thisDate.getFullYear();
	var month = thisDate.getMonth();
	var day = thisDate.getDate();
	var hours = thisDate.getHours();
	var minutes = thisDate.getMinutes();
	var seconds = thisDate.getSeconds();
	var milliseconds = thisDate.getMilliseconds();
	var sessionID = year+""+month+""+day+""+hours+""+minutes+""+seconds+""+milliseconds;	
	var index = element("ImageSize").selectedIndex;
	TNTDoCommand('Renderer.SaveImage("ScreenShot'+sessionID+'.bmp",'+index+')')
}