var fadetime = 700;

var currentRum = 5;
var currentHotspot = 0;
var currentHotspotRum = 0;
var currentView = 'forside';
var views = {};
var kurv = [];
var hotspots;
var hjelptekster;
var omsiden;
var interfaceLoaded = false;
var isTNTloaded = false;

var selector_rum;
var selector_hotspot;
var selector_menu;
var selector_nav;
var selector_about;

$(document).ready(function() {
	$.ajax({
		url:"data/json.php", 
		dataType: "json",
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			_error(textStatus);
			_error(errorThrown);
		},
		success: function(json){
			hotspots = json.hotspots;
			hjelptekster = json.hjelp;
			omsiden = json.om;
			
			interfaceLoaded = true;
			callBack();
		}});
	
	views.forside = new view({
		forside:true});
	
	views.tom = new view({iefix:false});
	views.tur = new view({forside:true});
	
	views.rum = new view({
		rum:true});
	
	views.hotspot = new view({
		hotspot:true});
	
	views.hotspotmaximized = new view({
		hotspot:true,
		TNT:false,
		turntoolnavigation:false,
		about:false,
		indberetbutton:false,
		hotspots:false,
		hotspotmaximized:true});
	
	views.tip = new view({
		tip:true});
	
	views.tipmessage = new view({
		tipmessage:true});
	
	views.taenk = new view({
		taenk:true});
	
	views.oversigt = new view({
		oversigt:true});
	
	views.hjelp = new view({
		hjelpside:true});
	
	views.hjelpmaximized = new view({
		hjelp:true,
		hjelpside:true,
		TNT:false,
		turntoolnavigation:false,
		about:false,
		indberetbutton:false,
		hotspots:false});
	
	views.om = new view({
		om:true});
	
	views.ommaximized = new view({
		ommaximized:true,
		TNT:false,
		turntoolnavigation:false,
		about:false,
		indberetbutton:false,
		hotspots:false});
	
	views.indberet = new view({
		indberet:true,
		indberetside:true,
		TNT:false,
		turntoolnavigation:false,
		about:false,
		indberetbutton:false,
		hotspots:false});
	
	views.indberetmessage = new view({
		indberetmessage:true});
	
	views.kurv = new view({
		kurv:true,
		kurvside:true,
		TNT:false,
		turntoolnavigation:false,
		about:false,
		indberetbutton:false,
		hotspots:false});
	
	views.kurvmessage = new view({
		kurv:true,
		kurvmessage:true,
		TNT:false,
		turntoolnavigation:false,
		about:false,
		indberetbutton:false,
		hotspots:false});
	
});

function view(options){
	var defaults = {
		rum:			false,
		hotspot:		false,
		tip:			false,
		tipmessage:		false,
		kurv:			false,
		kurvside:		false,
		kurvmessage:	false,
		hotspotmaximized:false,
		oversigt:		false,
		indberet:		false,
		indberetside:	false,
		indberetmessage:false,
		forside:		false,
		hjelpside:		false,
		hjelp:			false,
		om:				false,
		ommaximized:	false,
		taenk:			false,
		flash:			false,
		TNT:			true,
		turntoolnavigation:true,
		about:			true,
		indberetbutton:	true,
		hotspots:		true,
		iefix:			false
	};
	return $.extend({}, defaults, options);
}

function initialize(){

	

	selector_rum = $( ".selector-rum" );
	
	menupunkter = $( ".selector-rum li" );
	
	jQuery.each(menupunkter, function () {
		$(this).click(function () {
			update_menu(selector_rum, this);

			if(this.id == 99){
				tnt_gaatilstart();
				setView('forside');	
			}else{
				if(currentView == 'oversigt'){
					tnt_exit_oversigt_til_rum(this.id);
				}
				tnt_gaatilrum(this.id);
				SkiftRum(this.id, true);
			}
		});						   
	});	
	
	selector_hotspot = $( ".selector-hotspot" );
	
	selector_hotspottext = $( ".selector-hotspottext" );
	
	menupunkter = $( ".selector-hotspottext li" );
	
	jQuery.each(menupunkter, function () {
		$(this).click(function () {
			update_menu(selector_hotspottext, this);
			onHotspotTextClick($.trim($(this).text()));
		});						   
	});

	
	selector_menu = $( ".selector-menu" );
	
	menupunkter = $( ".selector-menu li" );
	
	jQuery.each(menupunkter, function () {
		$(this).click(function () { 
			update_menu(selector_menu, this);
			menuClick($.trim($(this).text()));
		});						   
	});
	
	selector_nav = $( ".selector-navigation" );
	
	menupunkter = $( ".selector-navigation li" );
	
	jQuery.each(menupunkter, function () {
		$(this).click(function () { 
			update_menu(selector_nav, this);
			menuClick($.trim($(this).text()));
		});						   
	});
	
	selector_about = $( ".selector-about" );
	
	menupunkter = $( ".selector-about li" );
	
	jQuery.each(menupunkter, function () {
		$(this).click(function () { 
			update_menu(selector_about, this);
			menuClick($.trim($(this).text()));
		});						   
	});
	
	selector_help = $( ".selector-helptext" );
	
	menupunkter = $( ".selector-helptext li" );
	
	jQuery.each(menupunkter, function () {
		$(this).click(function () { 
			update_menu(selector_help, this);
			skiftHelpTekst($.trim($(this).text()));
		});						   
	});
	
	update_menu(selector_help, menupunkter[0]);
	
	inputfelter = $( ".string, textarea" );
	
	jQuery.each(inputfelter, function () {
		$(this).focus(function () {
			if( this.value == this.defaultValue) {
				this.value = '';
			}
		});				
		$(this).blur(function () {
			if( this.value === '') {
				this.value = this.defaultValue;
			}
		});						   
	});
	
	$('#hotspot .addbasket').click(function() {
		addToBasket('hotspot', currentRum, currentHotspot);									   
	});
	
	$('.viewbasket').click(function() {
		setView('kurv');								   
	});
	
	$('#rum .addbasket').click(function() {
		addToBasket('rum', currentRum, currentHotspot);									   
	});
	
	$('.printTekst').click(function() {
		doPrint();								   
	});
	
	
	
	jQuery.validator.addMethod("navn", function(value, element) { 
		return element.value != element.defaultValue && element.value !== ''; 
	});

	var tipvalidator = $("#tipform").validate({
		rules: {
			modtagernavn: {
				required: true,
				navn:true
			},
			
			afsendernavn: {
				required: true,
				navn:true
			},

			modtageremail: {
				required: true,
				email: true
			},
			afsenderemail: {
				required: true,
				email: true
			}
		},
		messages: {
			modtagernavn: "Skriv venligst modtagerens navn",
			afsendernavn: "Skriv venligst dit navn",
			modtageremail: {
				required: "Dette felt skal udfyldes.",
				email: "Indtast venligst en gyldig email adresse."
			},
			afsenderemail: {
				required: "Dette felt skal udfyldes.",
				email: "Indtast venligst en gyldig email adresse."
			}
		},					   
		submitHandler: function(form) {
				$.ajax({
				type: "POST",
				url: "tipmail.php",
				data: $("#tipform").serialize(),
				success: function(data){
					if(data != 'succes'){
						alert('Din meddelse kunne desværre ikke sendes.\r\nkontroller de indtastede oplysninger og prøv igen');
						_log(data);
					}else{
						setView('tipmessage');
					}
				}
			});	
		}
	});
	
	var kurvvalidator = $("#kurvform").validate({
		rules: {
			modtagernavn: {
				required: true,
				navn:true
			},
			
			afsendernavn: {
				required: true,
				navn:true
			},

			modtageremail: {
				required: true,
				email: true
			},
			afsenderemail: {
				required: true,
				email: true
			}
		},
		messages: {
			modtagernavn: "Skriv venligst modtagerens navn",
			afsendernavn: "Skriv venligst dit navn",
			modtageremail: {
				required: "Dette felt skal udfyldes.",
				email: "Indtast venligst en gyldig email adresse."
			},
			afsenderemail: {
				required: "Dette felt skal udfyldes.",
				email: "Indtast venligst en gyldig email adresse."
			}
		},					   
		submitHandler: function(form) {
			$.ajax({
				type: "POST",
				url: "kurvmail.php",
				data: $("#kurvform").serialize()+"&kurv="+$.toJSON(kurv),
				success: function(data){
					if(data != 'succes'){
						alert('Din meddelse kunne desværre ikke sendes.\r\nkontroller de indtastede oplysninger og prøv igen');
						_log(data);
					}else{
						setView('kurvmessage');
					}
				}
			});
		}
	});
	
	var indeberetvalidator = $("#indeberetform").validate({
		rules: {
			navn: {
				required: true,
				navn:true
			},
			
			email: {
				required: true,
				email: true
			}
		},
		messages: {
			navn: "Skriv venligst dit navn",
			email: {
				required: "Dette felt skal udfyldes.",
				email: "Indtast venligst en gyldig email adresse."
			}
		},					   
		submitHandler: function(form) {
			$.ajax({
				type: "POST",
				url: "indberet.php",
				data: $("#indeberetform").serialize(),
				success: function(data){
					if(data != 'succes'){
						alert('Din meddelse kunne desværre ikke sendes.\r\nkontroller de indtastede oplysninger og prøv igen');
						_log(data);
					}else{
						setView('indberetmessage');	
					}
				}
			});
		}
	});
	
	$('#hotspotmaximized .tilbage').click(function() {
		setView('hotspot');
	});
	
	$('#tip .tilbage').click(function() {
		setView('hotspot');
	});
	
	$('#kurv .tilbage').click(function() {
		setView('rum');
	});
	
	$('#indberet .tilbage, #indberetmessage .tilbage, #hjelp .tilbage, #ommaximized .tilbage').click(function() {
		setView('rum');									   
	});
	
	$('.indberet, #indberetmessage span').click(function() {
		setView('indberet');									   
	});
	
	$('#tipmessage span').click(function() {
		setView('tip');									   
	});
	
	$('#kurvmessage span').click(function() {
		setView('kurv');									   
	});
	
	$('#kurv .opdater').click(function() {
		opdaterKurv();								   
	});
	
	$('#kurv .ryd').click(function() {
		kurv = [];
		updateBasketHtml();								   
	});
	
	$('#kurv .print').click(function() {
		myWin=window.open("printkurv.php?kurv="+$.toJSON(kurv),"PrintWin","width=1024,height=710,scrollbars=1");
	});
	
	$('#kurv .vis').click(function() {
		myWin=window.open("viskurv.php?kurv="+$.toJSON(kurv),"PrintWin","width=1024,height=710,scrollbars=1");
	});

	listHotspots();
	checkDeepLink();	
	//listKameraPositions();
}

function listKameraPositions(){
	var positioner = {};
	jQuery.each(hotspots, function (indexInArray, valueOfElement) {
		positioner['kamera_rum_'+indexInArray] = getPositionAndRotation('kamera_rum_'+indexInArray);
		jQuery.each(this.hotspots, function (indexInArray, valueOfElement) {
			positioner['kamera_hotspot_'+((indexInArray < 10) ? '0'+indexInArray : indexInArray)] = getPositionAndRotation('kamera_hotspot_'+((indexInArray < 10) ? '0'+indexInArray : indexInArray));
		});
	});
	
	positioner['Camera_oversigt'] = getPositionAndRotation('Camera_oversigt');
	
	_log($.toJSON(positioner));
}

function getPositionAndRotation(elem){
	srcPosX = parseFloat(TNTDoCommand('Objects('+elem+').GetPositionWorldX()'));
	srcPosY = parseFloat(TNTDoCommand('Objects('+elem+').GetPositionWorldY()'));
	srcPosZ = parseFloat(TNTDoCommand('Objects('+elem+').GetPositionWorldZ()'));
	
	srcRotX = parseFloat(TNTDoCommand('Objects('+elem+').GetRotationWorldX()'));
	srcRotY = parseFloat(TNTDoCommand('Objects('+elem+').GetRotationWorldY()'));
	srcRotZ = parseFloat(TNTDoCommand('Objects('+elem+').GetRotationWorldZ()'));
	
	return {x:srcPosX, y:srcPosY, z:srcPosZ, rotx:srcRotX, roty:srcRotY, rotz:srcRotZ}
}

function callBack(){
	if(	isTNTloaded && interfaceLoaded){
		initialize();
	}
}

function onIntroFinish(){
	isTNTloaded = true;
	callBack();
}

function onTNTReady(){
	if(document.location.hash.substring(2).length === 0){
		tnt_intro();
	}else{
		onIntroFinish();
	}
}

function checkDeepLink(){
	_log(document.location.hash.substring(1));
	link = document.location.hash.substring(1);
	
	if(link.length !== 0){
		params = link.split(',');
		_log(params[0]);
		
		switch(params[0]){
			
			case 'hotspot':
				_log('params[1]: '+params[1]);
				_log('params[2]: '+params[2]);
				if(params[1] !== undefined && params[2] !== undefined){
					currentRum = parseInt(params[1],10);
					SkiftHotspot(parseInt(params[2],10));
					tnt_free2free('kamera_hotspot_'+( (params[2] < 10) ? '0'+params[2] : params[2] ), true);
				}
				break;
				
			case 'rum':
				_log('params[1]: '+params[1]);
				if(params[1] !== undefined){
					currentRum = parseInt(params[1],10);
					tnt_free2free('kamera_rum_'+params[1], true);
				}
				break;
				
			case 'oversigt':
				tnt_oversigt();
				break;
				
			case 'guidedtur':
				do_guidedtur();
				break;
				
			case 'indberet':
				tnt_walk();
				setView('indberet');
				break;
				
			case 'om':
				tnt_walk();
				if(omsiden.maximize){
					$('#ommaximized .text').html(omsiden.text);
					setView('ommaximized');
				}else{
					$('#om .text').html(omsiden.text);
					setView('om');
				}
				break;
				
			case 'skip':
				tnt_walk();
				break;
				
			case 'tip':
				setView('tip');
				tnt_walk();
				break;
				
			case 'hjelp':
				tnt_walk();
				skiftHelpTekst('3d visning');
				break;
		}
	}
}

function fbrlink(link){
	
	if(link.length !== 0){
		params = link.split(',');
		_log(params[0]);
		
		switch(params[0]){
			
			case 'hotspot':
				if(params[1] !== undefined && params[2] !== undefined){
					if(currentView == 'oversigt'){
						tnt_exit_oversigt_til_hotspot(parseInt(params[2],10));
					}else{
						tnt_gaatilhotspot(parseInt(params[2],10));
					}
					currentRum = parseInt(params[1],10);
					SkiftHotspot(parseInt(params[2],10));
				}
				break;
				
			case 'rum':
				if(params[1] !== undefined){
					currentRum = parseInt(params[1],10);
					tnt_gaatilrum(currentRum);
				}
				break;
				
			case 'oversigt':
				tnt_oversigt();
				break;
				
			case 'guidedtur':
				do_guidedtur();
				break;
				
			case 'gaa':
				tnt_walk();
				break;
				
			case 'indberet':
				tnt_walk();
				setView('indberet');
				break;
				
			case 'om':
				if(omsiden.maximize){
					$('#ommaximized .text').html(omsiden.text);
					setView('ommaximized');
				}else{
					$('#om .text').html(omsiden.text);
					setView('om');
				}
				break;
				
			case 'indberet':
				if(omsiden.maximize){
					$('#ommaximized .text').html(omsiden.text);
					setView('ommaximized');
				}else{
					$('#om .text').html(omsiden.text);
					setView('om');
				}
				break;
				
			case 'tip':
				setView('tip');
				break;
				
			case 'hjelp':
				skiftHelpTekst('3d visning');
				break;
		}
		
	}
	
}

function toggleSound(){
	try{
		return getFlashMovie("thesoundplayer").toggleMute();
	}catch(e){
		_error(e.description);
		return 1;
	}
}

function playSound(){
	try{
		getFlashMovie("thesoundplayer").playsound();
	}catch(e){
		_error(e.description);
	}
}

function stopSound(){
	try{
		getFlashMovie("thesoundplayer").stopsound();
	}catch(e){
		_error(e.description);
	}
}

function onHotSpotClick(id){
	
	var menupunkter = $( ".selector-rum li" );
	
	for (var rum in hotspots) {
		if(hotspots[rum].hotspots[id] !== undefined){
			currentRum = rum;
			break;
		}
	}
	
	jQuery.each(menupunkter, function () {
		if(this.id == currentRum){
			update_menu(selector_rum, this);
			SkiftRum(this.id, false);
		}					   
	});
	SkiftHotspot(id);
}

function onRumEnter(rum){
	//_info('onRumEnter('+rum+')');
	var rumid = 0;
	
	switch(rum){
		case 'bornevaerelse':
			rumid = 1;
			break;
		case 'stue':
			rumid = 2;
			break;
		case 'kokken':
			rumid = 3;
			break;
		case 'badevaerelse':
			rumid = 4;
			break;
		case 'garage':
			rumid = 5;
			break;
		case 'entre':
			rumid = 6;
			break;
		case 'have':
			rumid = 7;
			break;
	}
	
	if(rumid != currentRum){
		SkiftRum(rumid, (currentView == 'rum'));
		
		var menupunkter = $( ".selector-rum li" );
		jQuery.each(menupunkter, function () {
			if(this.id == rumid){
				update_menu(selector_rum, this);
			}					   
		});
	}
}

function update_menu(menu, item){
	removeHighligths(menu);
	highlight(item);
}

function highlight(item){
	$(item).find('div').addClass("orange").removeClass("item");
	$("<img/>").attr("align", 'top').attr("src", 'images/orange-left.jpg').prependTo(item);
	$("<img/>").attr("align", 'top').attr("src", 'images/orange-right.jpg').appendTo(item);
}

function removeHighligths(menu){
	$(menu).find('li div').addClass("item").removeClass("orange");
	$(menu).find('img[align="top"]').remove();
}

function SkiftRum(rum, updateView){
	//_log('SkiftRum('+rum+', '+updateView+')');
	currentRum = rum;
	if(updateView){
		setView('tom');
		setView('rum');
	}
	$('.hotspots ul').fadeOut('fast', updateHotspots);
}

function SkiftHotspot(hotspot){
	tnt_RemoveHighlightHotspot( (currentHotspot < 10)? "0"+currentHotspot : currentHotspot);
	tnt_highlightHotspot( (hotspot < 10)? "0"+hotspot : hotspot);
	//_log('hotspot: '+hotspot);
	currentHotspot = hotspot;
	currentHotspotRum = currentRum;
	setView('tom');
	setView('hotspot');
}

function listHotspots(){
	var i = 0;
	for (var rum in hotspots) {
		var li = document.createElement("li");

		if(i > 2){
			$(li).text(hotspots[rum].navn).addClass('header').appendTo($('#oversigt .coloum2 ul'));
		}else{
			$(li).text(hotspots[rum].navn).addClass('header').appendTo($('#oversigt .coloum1 ul'));
		}

		for(var hotspot in hotspots[rum].hotspots){
			var _li = document.createElement("li");
			$(_li).click(function () {
				if(currentView == 'oversigt'){
					tnt_exit_oversigt_til_hotspot($$(this).id);
				}else{
					tnt_gaatilhotspot($$(this).id);
				}
				currentRum = $$(this).rum;
				SkiftHotspot($$(this).id);
			});
			$$(_li).rum = rum;
			$$(_li).id = hotspot;
			if(i > 2){
				$(_li).text(hotspots[rum].hotspots[hotspot].navn).appendTo($('#oversigt .coloum2 ul'));
			}else{
				$(_li).text(hotspots[rum].hotspots[hotspot].navn).appendTo($('#oversigt .coloum1 ul'));
			}
			
			elem('hotspotselect').options[elem('hotspotselect').length] = new Option(hotspots[rum].hotspots[hotspot].navn, hotspot);
		}
		i++;
	}
}

function updateHotspots(){
	$('.hotspots li').remove();
	
	for (var property in hotspots[currentRum].hotspots) {

		var hotspot = hotspots[currentRum].hotspots[property];
		var li = document.createElement("li");
		var div = document.createElement("div");
		$(div).addClass('item').text(hotspot.navn);
		$(li).append(div);
		$$(li).id = property;
		$(li).click(function () {
			if(currentView == 'oversigt'){
				tnt_exit_oversigt_til_hotspot($$(this).id);
			}else{
				tnt_gaatilhotspot($$(this).id);
			}
			update_menu(selector_hotspot, this);
			SkiftHotspot($$(this).id);
		});	
		$('.hotspots ul').append(li);
	}
	$('.hotspots ul').fadeIn(fadetime);
}

function onHotspotTextClick(kategori){
	if(kategori == 'Gode råd ved køb'){
		kategori = 'raad';
	}
	if(kategori == ''){
		doPrint();
	}else{
		SkiftHotspottext(kategori);
		
		if(hotspots[currentHotspotRum].hotspots[currentHotspot]["maximize_"+kategori.toLowerCase()]){
			$('.raad-text').html(hotspots[currentHotspotRum].hotspots[currentHotspot][kategori.toLowerCase()]);
			setView('hotspotmaximized');
		}else{
			$('.hotspottext').html(hotspots[currentHotspotRum].hotspots[currentHotspot][kategori.toLowerCase()]);
			setView('hotspot');
		}
	}
}

function SkiftHotspottext(kategori){
	
	if(hotspots[currentHotspotRum].hotspots[currentHotspot]["maximize_"+kategori.toLowerCase()]){
		$('.raad-text').html(hotspots[currentHotspotRum].hotspots[currentHotspot][kategori.toLowerCase()]);
		$('.hotspottext').html('');
	}else{
		$('.hotspottext').html(hotspots[currentHotspotRum].hotspots[currentHotspot][kategori.toLowerCase()]);
		$('.raad-text').html('');
	}
}

function hideHotspotText(){
		showTNT();
		$('#turntool-navigation').show();
		$('#about').show();
		$('#indberet').show();
		$('#hotspots').show();
		$('#raad').hide();
}

function skiftHelpTekst(tekst){
	
	if(tekst == ''){
		doPrint();
	}else{

		setView('tom');
		
		if(tekst == '3d visning'){
			if(hjelptekster.maximize_visning){
				$('#hjelp .hjelptext').html(hjelptekster.visning);
				$('#hjelpside .hjelptext').html('');
				setView('hjelpmaximized');
			}else{
				$('#hjelpside .hjelptext').html(hjelptekster.visning);
				setView('hjelp');
			}
		}else if(tekst == '3d brug'){
			if(hjelptekster.maximize_brug){
				$('#hjelp .hjelptext').html(hjelptekster.brug);
				$('#hjelpside .hjelptext').html('');
				setView('hjelpmaximized');
			}else{
				$('#hjelpside .hjelptext').html(hjelptekster.brug);
				setView('hjelp');
			}
		}else if(tekst == 'Print/mail'){
			if(hjelptekster.maximize_print){
				$('#hjelp .hjelptext').html(hjelptekster.print);
				$('#hjelpside .hjelptext').html('');
				setView('hjelpmaximized');
			}else{
				$('#hjelpside .hjelptext').html(hjelptekster.print);
				setView('hjelp');
			}
		}
	}
}

function setView(view){
	
	if(view == currentView){
		return;
	}
	if(view != 'tip' && view != 'kurv'){
		removeHighligths(selector_menu);
	}
	
	if(view != 'hjælp' && view != 'om'){
		removeHighligths(selector_about);
	}
	
	switch(view){
		case 'rum':
			if(erRumiKurv()){
				$('.addbasket').hide();
				$('.addedbasket').show();
			}else{
				$('.addbasket').show();
				$('.addedbasket').hide();
			}
			$('#rum h1').text(hotspots[currentRum].navn);
			$('#rum .text').html(hotspots[currentRum].text);
			
			pageTracker._trackPageview("/rum/"+hotspots[currentRum].navn );
			break;
			
		case 'hotspot':
			if(erHotspotiKurv()){
				$('.addbasket').hide();
				$('.addedbasket').show();
			}else{
				$('.addbasket').show();
				$('.addedbasket').hide();
			}
			$('#hotspot h1').text('Hotspot: '+hotspots[currentHotspotRum].hotspots[currentHotspot].navn);
			menupunkter = $( ".selector-hotspottext li" );
			update_menu(selector_hotspottext, menupunkter[0]);
			SkiftHotspottext('Sikkerhed');
			
			if(hotspots[currentHotspotRum].hotspots[currentHotspot].extern_animation){ showFlash(); }
			
			pageTracker._trackPageview("/hotspot/"+hotspots[currentHotspotRum].hotspots[currentHotspot].navn );
			break;
			
		case 'kurv':
			updateBasketHtml();
			pageTracker._trackPageview("/kurv/");
			break;
			
		case 'tip':
			if(currentHotspotRum !== 0){
				$('#tip h3').text(hotspots[currentHotspotRum].hotspots[currentHotspot].navn);
			}

			var numoptions = elem('hotspotselect').options.length;
			for (var i=0;i<numoptions;i++){
				if(	elem('hotspotselect').options[i].value == currentHotspot){
					elem('hotspotselect').selectedIndex = i;
					break;
				}
			}
			pageTracker._trackPageview("/tip-en-ven/");
			break;
			
		case 'forside':
			pageTracker._trackPageview("/forside/");
			break;
			
		case 'om':
			pageTracker._trackPageview("/om-siden/");
			break;
			
		case 'om':
			pageTracker._trackPageview("/om-siden/");
			break;
			
		case 'hjelp':
			pageTracker._trackPageview("/hjælp/");
			break;
			
		case 'indberet':
			pageTracker._trackPageview("/indberet/");
			break;
	}
	

	
	for (var element in views[currentView]) {
		if(views[currentView][element] != views[view][element]){
			if(element == 'TNT'){
				if(views[view][element]){
					showTNT();
				}else{
					hideTNT();
				}
			}else if(element == 'flash'){
				if(views[view][element]) { showFlash(); }
			}else{
				if(views[view][element]){
					$('#'+element).fadeIn(fadetime);
				}else{
					$('#'+element).hide();
				}
			}
		}
	}
	currentView = view;
	return;	
}

function hideTNT(){
	$('#TurnTool').css("visibility","hidden"); 

	elem('TNTCtrl').width = 1;
	elem('TNTCtrl').height = 1;	
}

function showTNT(){
	$('#TurnTool').css("visibility","visible");
	
	elem('TNTCtrl').width = 589;
	elem('TNTCtrl').height = 442;
}

function showFlash(){
	_log('showFlash');
	window.open("flash/flash.php?hotspot="+currentHotspot,"FlashWin","width=589,height=442,scrollbars=0");
}

function doPrint(){
	_log('doPrint()');
	if(currentView == 'hotspot' || currentView == 'hotspotmaximized'){
		window.open("print.php?tekst=hotspot&id="+currentHotspot,"PrintWin","width=1024,height=710,scrollbars=1");
	}else if(currentView == 'rum'){
		window.open("print.php?tekst=rum&id="+currentRum,"PrintWin","width=1024,height=710,scrollbars=1");
	}else if(currentView == 'forside'){
		window.open("print.php?tekst=forside","PrintWin","width=1024,height=710,scrollbars=1");
	}else if(currentView == 'hjelp'){
		window.open("print.php?tekst=hjelp","PrintWin","width=1024,height=710,scrollbars=1");
	}else if(currentView == 'om'){
		window.open("print.php?tekst=om","PrintWin","width=1024,height=710,scrollbars=1");
	}else if(currentView == 'tur'){
		window.open("print.php?tekst=forside","PrintWin","width=1024,height=710,scrollbars=1");
	}else if(currentView == 'taenk'){
		window.open("print.php?tekst=taenk","PrintWin","width=1024,height=710,scrollbars=1");
	}
}

function menuClick(item){
	switch(item){
		case 'Tip en ven':
			setView('tip');
			break;
			
		case 'Se din gemte info':
			setView('kurv');
			break;
			
		case 'Print':
			doPrint();
			break;
			
		case 'Oversigt':
			setView('oversigt');
			tnt_oversigt();
			break;
			
		case 'Gå selv rundt':
			if(currentView == 'oversigt'){
				tnt_exit_oversigt_til_walk();
			}else{
				tnt_walk();
			}
			break;
			
		case 'Guidet tur':
			if(currentView == 'oversigt'){
				tnt_exit_oversigt_til_guidedtur();
			}else{
				setView('tur');
				removeHighligths(selector_rum);
				$('.hotspots li').remove();
				tnt_guidedtur();
			}
			break;
			
		case 'Hjælp':
			skiftHelpTekst('3d visning');
			break;
		
		case 'Om siden':
			if(omsiden.maximize){
				$('#ommaximized .text').html(omsiden.text);
				setView('ommaximized');
			}else{
				$('#om .text').html(omsiden.text);
				setView('om');
			}
			break;
	}
}

function erHotspotiKurv(){
	num_items = kurv.length;
	for(i=0;i<num_items;i++){
		if(kurv[i].hotspot == currentHotspot){
			return true;
		}
	}
	return false;
}

function erRumiKurv(){
	num_items = kurv.length;
	for(i=0;i<num_items;i++){
		if(kurv[i].rum == currentRum){
			return true;
		}
	}
	return false;	
}

function addToBasket(type, rum, hotspot){
	_log('addToBasket('+rum+', '+hotspot+')');
	
	if(type == 'hotspot'){
		num_items = kurv.length;
		for(i=0;i<num_items;i++){
			_log(kurv[i]);
			if(kurv[i].hotspot == hotspot && kurv[i].type == 'hotspot'){
				return;	
			}
		}
		
		$('.addbasket').hide();
		$('.addedbasket').show();
		
		kurv.push( new basketItem({
			type:'hotspot',
			rum:rum, 
			hotspot:hotspot,
			sikkerhed:true,
			ulykker:true,
			raad:true
		}));
	}else if(type == 'rum'){
		num_items = kurv.length;
		for(i=0;i<num_items;i++){
			_log(kurv[i]);
			if(kurv[i].rum == rum && kurv[i].type == 'rum'){
				return;
			}
		}
		
		$('.addbasket').hide();
		$('.addedbasket').show();
		
		kurv.push( new basketItem({
			type:'rum',
			rum:rum
		}));
	}
}

function basketItem(options){
	var defaults = {
		type:		'hotspot',
		rum:		-1,
		hotspot:	-1,
		sikkerhed:	true,
		ulykker:	true,
		raad:		true
	};
	
	return $.extend({}, defaults, options);
}

function updateBasketHtml(){
	_log(kurv);
	
	$('#kurv table tr').each(function(){
		if( !$(this).hasClass('header') ) {
			$(this).remove();
		}
	});
	
	num_items = kurv.length;

	for(i=0;i<num_items;i++){
		
		if(i % 2){
			_class = 'gray';
		}else{
			_class ='white';
		}
		
		if(kurv[i].type == 'hotspot'){

			row = document.createElement("tr");
			$('#kurv table').append(row);
			$('<td>').addClass(_class).text('Hotspot: '+hotspots[kurv[i].rum].hotspots[kurv[i].hotspot].navn).appendTo($(row));
			
			checkbox = document.createElement("input");
			checkbox.type = "checkbox";
			$$(checkbox).kategori = 'sikkerhed';
			$$(checkbox).kurvid = i;
			$('<td>').addClass(_class).addClass('center').append(checkbox).appendTo($(row));
			checkbox.checked = kurv[i].sikkerhed;
			
			checkbox = document.createElement("input");
			checkbox.type = "checkbox";
			$$(checkbox).kategori = 'ulykker';
			$$(checkbox).kurvid = i;
			$('<td>').addClass(_class).addClass('center').append(checkbox).appendTo($(row));
			checkbox.checked = kurv[i].ulykker;
			
			checkbox = document.createElement("input");
			checkbox.type = "checkbox";
			$$(checkbox).kategori = 'råd';
			$$(checkbox).kurvid = i;
			$('<td>').addClass(_class).addClass('center').append(checkbox).appendTo($(row));
			checkbox.checked = kurv[i].raad;
			
			checkbox = document.createElement("input");
			checkbox.type = "checkbox";
			$$(checkbox).kategori = 'alt';
			$$(checkbox).kurvid = i;
			$('<td>').addClass(_class).addClass('center').append(checkbox).appendTo($(row));
			checkbox.checked =  (kurv[i].sikkerhed && kurv[i].raad && kurv[i].sikkerhed);
			
			checkbox = document.createElement("input");
			checkbox.type = "checkbox";
			$$(checkbox).kategori = 'fjern';
			$$(checkbox).kurvid = i;
			$('<td>').addClass(_class).addClass('center').append(checkbox).appendTo($(row));
			checkbox.checked =  false;
			
		}else if(kurv[i].type == 'rum'){
			row = document.createElement("tr");
			$('#kurv table').append(row);
			$('<td>').addClass(_class).text('Rum: '+hotspots[kurv[i].rum].navn).appendTo($(row));
			
			$('<td>&nbsp;</td>').addClass(_class).appendTo($(row));
			$('<td>&nbsp;</td>').addClass(_class).appendTo($(row));
			$('<td>&nbsp;</td>').addClass(_class).appendTo($(row));
			$('<td>&nbsp;</td>').addClass(_class).appendTo($(row));
			
			checkbox = document.createElement("input");
			checkbox.type = "checkbox";
			$$(checkbox).kategori = 'fjern';
			$$(checkbox).kurvid = i;
			$('<td>').addClass(_class).addClass('center').append(checkbox).appendTo($(row));
			checkbox.checked =  false;
		}
		
		
	}


	$('#kurv table input').click(function() {
		switch($$(this).kategori){
			case 'sikkerhed':
				kurv[$$(this).kurvid].sikkerhed = this.checked;
				break;
			case 'ulykker':
				kurv[$$(this).kurvid].ulykker = this.checked;
				break;
			case 'råd':
				kurv[$$(this).kurvid].raad = this.checked;
				break;
			case 'alt':
				kurv[$$(this).kurvid].raad = this.checked;
				kurv[$$(this).kurvid].ulykker = this.checked;
				kurv[$$(this).kurvid].sikkerhed = this.checked;
				
				$(this).parent().parent().find('input').each(function(){
					if( $$(this).kategori == 'sikkerhed' || $$(this).kategori == 'ulykker' || $$(this).kategori == 'råd'){
						this.checked = kurv[$$(this).kurvid].raad;
					}
				});
				break;
		}
		$(this).parent().parent().find('input').each(function(){
			if( $$(this).kategori == 'alt'){
				this.checked = (kurv[$$(this).kurvid].raad && kurv[$$(this).kurvid].ulykker && kurv[$$(this).kurvid].sikkerhed);
			}
		});
	});
	
}

function opdaterKurv(){
	var itemsRemoved = 0;
	$('#kurv table tr').each(function(){
		if( !$(this).hasClass('header') ){
			$(this).find('input').each(function(){
				if( $$(this).kategori == 'fjern' && this.checked){
					kurv.splice($$(this).kurvid-itemsRemoved, 1);
					itemsRemoved++;
				}
			});
		}
	});
	updateBasketHtml();
}

var $$ = function(param) {
	var node = $(param)[0];
	var id = $.data(node);
	$.cache[id] = $.cache[id] || {};
	$.cache[id].node = node;
	return $.cache[id];
};

_log = function (msg) {
	if(typeof window.console !== 'undefined'){
		console.log("%o", msg);
	}
};

_error = function (msg) {
	if(typeof window.console !== 'undefined'){
		console.error("%o:", msg);
	}else{
		//alert(msg);	
	}
};

_info = function (msg) {
	if(typeof window.console !== 'undefined'){
		console.info("%o:", msg);
	}else{
		//document.title = msg;
	}
};

function elem(id)
{
	return document.getElementById(id);
}




(function ($) {
    var m = {
            '\b': '\\b',
            '\t': '\\t',
            '\n': '\\n',
            '\f': '\\f',
            '\r': '\\r',
            '"' : '\\"',
            '\\': '\\\\'
        },
        s = {
            'array': function (x) {
                var a = ['['], b, f, i, l = x.length, v;
                for (i = 0; i < l; i += 1) {
                    v = x[i];
                    f = s[typeof v];
                    if (f) {
                        v = f(v);
                        if (typeof v == 'string') {
                            if (b) {
                                a[a.length] = ',';
                            }
                            a[a.length] = v;
                            b = true;
                        }
                    }
                }
                a[a.length] = ']';
                return a.join('');
            },
            'boolean': function (x) {
                return String(x);
            },
            'null': function (x) {
                return "null";
            },
            'number': function (x) {
                return isFinite(x) ? String(x) : 'null';
            },
            'object': function (x) {
                if (x) {
                    if (x instanceof Array) {
                        return s.array(x);
                    }
                    var a = ['{'], b, f, i, v;
                    for (i in x) {
                        v = x[i];
                        f = s[typeof v];
                        if (f) {
                            v = f(v);
                            if (typeof v == 'string') {
                                if (b) {
                                    a[a.length] = ',';
                                }
                                a.push(s.string(i), ':', v);
                                b = true;
                            }
                        }
                    }
                    a[a.length] = '}';
                    return a.join('');
                }
                return 'null';
            },
            'string': function (x) {
                if (/["\\\x00-\x1f]/.test(x)) {
                    x = x.replace(/([\x00-\x1f\\"])/g, function(a, b) {
                        var c = m[b];
                        if (c) {
                            return c;
                        }
                        c = b.charCodeAt();
                        return '\\u00' +
                            Math.floor(c / 16).toString(16) +
                            (c % 16).toString(16);
                    });
                }
                return '"' + x + '"';
            }
        };

	$.toJSON = function(v) {
		var f = isNaN(v) ? s[typeof v] : s['number'];
		if (f) {return f(v); }
	};
	
	$.parseJSON = function(v, safe) {
		if (safe === undefined) { safe = $.parseJSON.safe; }
		if (safe && !/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(v)){
			return undefined;
		}
		return eval('('+v+')');
	};
	
	$.parseJSON.safe = false;

})(jQuery);

var flashvars = {};
var params = {allowScriptAccess:"always"};
var attributes = {id:"thesoundplayer",name:"thesoundplayer"};

swfobject.embedSWF("flash/soundplayer.swf", "soundplayer", 1, 1, "9.0.0", "", flashvars, params, attributes);

function getFlashMovie(movieName)
{
	if (window.document[movieName]) {
		return window.document[movieName];
	}
	
	if (navigator.appName.indexOf("Microsoft Internet")==-1){
		if (document.embeds && document.embeds[movieName]) {
			return document.embeds[movieName];
		}
	}else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
	{
		return document.getElementById(movieName);
	}
}
