// Nykyinen sijainti
var iLev = 72;
var iPit = 38;

// Globaaleita, joilla säädetään sivuja
var iSleep = 250; // animaation nopeus
var iYlakuvat = 11; // arvottavien yläpalkin kuvien lkm

// Muita globaaleita muuttujia
var iOffsetTop = 0;
var iOffsetLeft = 0;

var iX;
var iY;

var oInterval = "";
var ii;
var sFromLink = "";

function turvaposti(nimi, domain) 
{ 
	document.write('<a href=mailto:' + nimi + '@' + domain + '>' + 
		nimi + '@' + domain +' </a>'); 
}

function ArvoKuva()
{
	var iRand = Math.ceil(iYlakuvat * Math.random());
	if (iRand == 0) iRand = 1;
	var oImg = document.getElementById("ylakuva");
	oImg.src = "img/ylapalkki_" + iRand + ".jpg";
}

// Summittainen sijainti yläkuvan logoon
function SetLogoPallukka()
{
	if (aLeirit.length > 0) 
	{
		iLev = aLeirit[aLeirit.length -1][0] + aLeirit[aLeirit.length -1][1]/60;
		iPit = aLeirit[aLeirit.length -1][2] + aLeirit[aLeirit.length -1][3]/60;
	}

	var oElement = document.getElementById("ylaDiv");
	var iTop = 265;
	var iLeft = 880;

	while (oElement.tagName != "BODY")
	{
		iTop += oElement.offsetTop;
		iLeft += oElement.offsetLeft;
		oElement = oElement.offsetParent;
	}
	
	iTop -= (iLev - 60) * 10;
	if (iLev > 78) iTop += (iLev - 78) * 2;
	iLeft += Math.cos((3.1415927/180) * iLev) * (41 - iPit) * 690/iLev;

	var oImg = document.getElementById("logopallukka");
	oImg.style.left = iLeft;
	oImg.style.top = iTop; 
	oImg.border = 0;

	// Tietoa viimeisimmästä leiristä tooltippiin ja linkki päiväkirjaan
	var bEnglish = false;
	var sFile = document.location.pathname;
	if (sFile.substr(sFile.lastIndexOf("/") +1).indexOf("en") != -1) bEnglish = true;

	if (aLeirit.length > 0)
	{
		var i = aLeirit.length -1;
		if (bEnglish)
		{
			oImg.title = aLeirit[i][5] + "\nDistance: " + aLeirit[i][6] + " km Total: " + aLeirit[i][7]; 
			oImg.title +=  " km\nAltitude: " + aLeirit[i][8] + " m\nTemperature: " + aLeirit[i][9];
			oImg.title += "°C\nWind: " +  aLeirit[i][10] + " m/s"; 
		}
		else
		{
			oImg.title = aLeirit[i][5] + "\nMatka: " + aLeirit[i][6] + " km Yhteensä: " + aLeirit[i][7]; 
			oImg.title +=  " km\nKorkeus: " + aLeirit[i][8] + " m\nLämpötila: " + aLeirit[i][9];
			oImg.title += "°C\nTuuli: " +  aLeirit[i][10] + " m/s"; 
		}

		var oLink = document.createElement("a");
		oLink.name = "LogoLinkki";
		if (bEnglish) oLink.href = "en" + aLeirit[i][4];
		else oLink.href = aLeirit[i][4];
		document.body.appendChild(oLink);
		oLink.appendChild(oImg);
	}

}

// Kartan etäisyys ikkunan reunasta
function CalculateOffsets()
{
	iOffsetTop = 0;
	iOffsetLeft = 0;
	var oElement = document.getElementById("kartta");

	while (oElement.tagName != "BODY")
	{
		iOffsetTop += oElement.offsetTop;
		iOffsetLeft += oElement.offsetLeft;
		oElement = oElement.offsetParent;
	}
}

function KoordToPixel(dLev, dPit)
{
	var r = (90 - dLev) * 27; // 27 = 1 lev.aste pikseleinä
	var s = ((-1 * dPit) + 41.9) * (3.1415927/180); // -41.9 = pit.piiri suoraan pohjoiseen
	iY = r * Math.cos(s) - 148; // 148 = matka kuvan yläreunasta navalle pikseleinä
	iX = r * Math.sin(s) + 223; // 223 = matka kuvan vasemmasta reunasta pit.piirille -41.9
}

// Leirit karttasivulle
function LataaLeirit()
{
	window.setTimeout("ShowLeirit()", 4000);
}

function ShowLeirit()
{
	CalculateOffsets();

	for (i = 0; i < aLeirit.length; ++i)
	{
		var bEnglish = false;
		if (document.URL.indexOf("enkartta.html") != -1) bEnglish = true;
		
		KoordToPixel(aLeirit[i][0] + aLeirit[i][1]/60, aLeirit[i][2] + aLeirit[i][3]/60);

		var oImg = document.createElement("img");
		oImg.name= "LeiriPiste";
		oImg.style.left = iX + iOffsetLeft;
		oImg.style.top = iY + iOffsetTop;
		oImg.style.position = "absolute";
		oImg.border = 0;

		if (i == aLeirit.length -1)
		{
			oImg.src = "img/now.gif";
			oImg.style.width = 8;
			oImg.style.height = 8;
		}
		else
		{
			oImg.src = "img/red.gif";
			oImg.style.width = 5;
			oImg.style.height = 5;
		}

		if (bEnglish)
		{
			oImg.title = aLeirit[i][5] + "\nDistance: " + aLeirit[i][6] + " km Total: " + aLeirit[i][7]; 
			oImg.title +=  " km\nAltitude: " + aLeirit[i][8] + " m\nTemperature: " + aLeirit[i][9];
			oImg.title += "°C\nWind: " +  aLeirit[i][10] + " m/s"; 
		}
		else
		{
			oImg.title = aLeirit[i][5] + "\nMatka: " + aLeirit[i][6] + " km Yhteensä: " + aLeirit[i][7]; 
			oImg.title +=  " km\nKorkeus: " + aLeirit[i][8] + " m\nLämpötila: " + aLeirit[i][9];
			oImg.title += "°C\nTuuli: " +  aLeirit[i][10] + " m/s"; 
		}

		var oLink = document.createElement("a");
		oLink.name = "LeiriLinkki";
		if (bEnglish) oLink.href = "en" + aLeirit[i][4];
		else oLink.href = aLeirit[i][4];
		document.body.appendChild(oLink);
		oLink.appendChild(oImg);
	}
}

// Ed. funktion lisäämien pisteiden (linkkien) poisto (name-propertyn perusteella)
function ClearLeirit()
{
	var oLinks = document.links;
	for (i = 0; i < oLinks.length; i++)
	{
		if (oLinks.item(i).name == "LeiriLinkki")
		{
			document.body.removeChild(oLinks.item(i));
			i--;
		}
	}
}

// Alasvetolistalta valittu piste kartalle (koordinaatit tekstikentistä)
function ShowKoordPiste()
{
	CalculateOffsets();

	var lev = document.forms["Form1"].Lev.value;
	var pit = document.forms["Form1"].Pit.value;
	var sNimi = document.forms["Form1"].Nimi.value;

	KoordToPixel(lev, pit);

	var oImg = document.createElement("img");
	oImg.src = "img/red.gif";
	oImg.name= "KoordPiste";
	oImg.alt = sNimi; 
	oImg.style.left = iX + iOffsetLeft;
	oImg.style.top = iY + iOffsetTop;
	oImg.style.position = "absolute";
	oImg.style.width = 6;
	oImg.style.height = 6;

	document.body.appendChild(oImg);
}

// Matkareitit ja infot
function ShowReitti()
{
	ii = 0;
	ClearKartta();
	CalculateOffsets();

	var oLista = document.getElementById("matkalista");
	var oOption = oLista.options[oLista.selectedIndex];
	document.getElementById("showbtn").disabled = true;
	oLista.disabled = true;

	switch(oOption.value)
	{
		case "Alkuajat":
				ShowInfo(sAlkuajat);
				ShowCity("Nuuk");
				ShowCity("Paamiut");
				ShowPaikka("J. A. D. Jensen Nunatakker", 1);
				document.getElementById("showbtn").disabled = false;
				oLista.disabled = false;
				break;
		case "Peary1886":
				ShowInfo(sPeary1886Info);
				ShowCity("Ilulissat");
				oInterval = window.setInterval("ShowPiste(aPeary1886)",iSleep);
				break;
		case "Peary1892":
				ShowInfo(sPeary1892Info);
				ShowPaikka("Independencevuono");
				ShowPaikka("Navy Cliff");
				ShowCity("Qaanaaq");
				oInterval = window.setInterval("ShowPiste(aPeary1892)",iSleep);
				break;
		case "Peary1895":
				ShowInfo(sPeary1895Info);
				ShowPaikka("Independencevuono");
				ShowCity("Qaanaaq");
				oInterval = window.setInterval("ShowPiste(aPeary1895)",iSleep);
				break;
		case "Nansen1888":
				ShowInfo(sNansenInfo);
				ShowCity("Nuuk");
				ShowCity("Ammassalik");
				ShowCity("Qasigiannguit");
				ShowPaikka("Umivik Bugt");
				oInterval = window.setInterval("ShowPiste(aNansen)",iSleep);
				break;
		case "Nordenskiöld1883":
				ShowInfo(sNordenskioldInfo);
				//ShowCity("Qasigiannguit");
				ShowCity("Aasiaat");
				oInterval = window.setInterval("ShowPiste(aNordenskiold)",iSleep);
				break;
		case "Mikkelsen1910":
				ShowInfo(sMikkelsenInfo);
				ShowPaikka("Shannon");
				ShowPaikka("Danmarkshavn", 2);
				ShowPaikka("Danmarkvuono");
				oInterval = window.setInterval("ShowPiste(aMikkelsen)",iSleep);
				break;
		case "Rasmussen1912":
				ShowInfo(sRasmussenInfo);
				ShowCity("Thule");
				ShowCity("Neqe");
				ShowPaikka("Danmarkvuono");
				oInterval = window.setInterval("ShowPiste(aRasmussen)",iSleep);
				break;
		case "Quervain1912":
				ShowInfo(sQuervainInfo);
				ShowCity("Ilulissat");
				ShowCity("Ammassalik");
				oInterval = window.setInterval("ShowPiste(aQuervain)",iSleep);
				break;
		case "Koch1913":
				ShowInfo(sKochInfo);
				ShowCity("Kangersuatsiaq");
				ShowPaikka("Dove Bugt");
				ShowPaikka("Dronning Louise Land");
				oInterval = window.setInterval("ShowPiste(aKoch)",iSleep);
				break;
		case "Wegener1930":
				ShowInfo(sWegenerInfo);
				ShowPaikka("Eismitte", 2);	
				ShowPaikka("Qaamarujukvuono");	
				//ShowCity("Uummannaq");
				ShowCity("Ilulissat");
				oInterval = window.setInterval("ShowPiste(aWegener)",iSleep);
				break;
		case "Pihkala1966":
				ShowInfo(sPihkalaInfo);
				ShowCity("Ammassalik");
				ShowCity("Qasigiannguit");
				ShowCity("Kangerlussuaq");
				ShowPaikka("Dye-2", 2);	
				oInterval = window.setInterval("ShowPiste(aPihkala)",iSleep);
				break;
		case "Petet2003":
				ShowInfo(sPetetInfo);
				ShowCity("Ammassalik");
				ShowCity("Qasigiannguit");
				oInterval = window.setInterval("ShowPiste(aPetet)",iSleep);
				break;
		case "Uemura1978":
				ShowInfo(sUemuraInfo);
				ShowPaikka("Kap Morris Jesup", 3);
				ShowCity("Narsarsuaq");
				oInterval = window.setInterval("ShowPiste(aUemura)",iSleep);
				break;
				
		default:
				ShowInfo("");
				oLista.disabled = false;
				document.getElementById("showbtn").disabled = false;
	}
	return;
}

function ShowInfo(sInfo)
{
	var infoTD = document.getElementById("matkainfo");
	infoTD.innerHTML = "<br><br>" + sInfo + "<br><br>";
}

function ShowPiste(aArray)
{
	if (ii >= aArray.length/2) 
	{
		window.clearInterval(oInterval);
		document.getElementById("matkalista").disabled = false;
		document.getElementById("showbtn").disabled = false;
		return;
	}

	var x = aArray[2* ii] + iOffsetLeft;
	var y = aArray[2 * ii + 1] + iOffsetTop;

	ii++;
	
	var oImg = document.createElement("img");
	oImg.src = "img/red.gif";
	oImg.name= "Piste";
	oImg.style.left = x;
	oImg.style.top = y;
	oImg.style.position = "absolute";
	oImg.style.width = 3;
	oImg.style.height = 3;

	document.body.appendChild(oImg);
}

// Poistaa reittipisteet ja paikat kartalta
function ClearKartta()
{
	var oImages = document.images;
	for (i = 0; i < oImages.length; i++)
	{

		if (oImages.item(i).name == "Piste" || oImages.item(i).name == "City" || 
			oImages.item(i).name == "Paikka")
		{
			document.body.removeChild(oImages.item(i));
			i--;
		}
	}

	var oNameArray = document.getElementsByTagName("DIV");
	for (i = 0; i < oNameArray.length; i++)
	{
		if (oNameArray.item(i).className == "mapname")
		{
			document.body.removeChild(oNameArray.item(i));
			i--;
		}
	}
}

function ShowPaikkaInfo(sInfo)
{
	if (sInfo == null) return;
	var infoTD = document.getElementById("paikkainfo");
	infoTD.innerHTML = "<br>" + sInfo + "<br><br>";
}

// Kaupunkilistalla valinta vaihtunut
function ShowKaupunki()
{
	CalculateOffsets();
	var oLista = document.getElementById("kaupunkilista");
	if (ShowCity(oLista.options[oLista.selectedIndex].value, true) == false)
	{
		ShowPaikka(oLista.options[oLista.selectedIndex].value, 3, true);
	}
}

// Kaupungit ja muut paikat kartalle
function FindCity(sCity)
{
	for (i = 0; i < aKaupungit.length; ++i)
		if (aKaupungit[i][0] == sCity) return i;
	
	return -1;
}

function FindPaikka(sPaikka)
{
	for (i = 0; i < aPaikat.length; ++i)
		if (aPaikat[i][0] == sPaikka) return i;
	
	return -1;
}

function ShowCity(sCity, bShowInfo)
{
	var i = FindCity(sCity);
	if (i < 0) return false;

	KoordToPixel(aKaupungit[i][1], aKaupungit[i][2]);

	var oImg = document.createElement("img");
	oImg.src = "img/city.gif";
	oImg.name= "City";
	oImg.alt = sCity;
	oImg.style.left = iX + iOffsetLeft;
	oImg.style.top = iY + iOffsetTop;
	oImg.style.position = "absolute";
	document.body.appendChild(oImg);

	var oDiv = document.createElement("div");
	oDiv.className  = "mapname";
	oDiv.style.left = iX + iOffsetLeft +10;
	oDiv.style.top = iY + iOffsetTop -10;
	oDiv.style.position = "absolute";
	oDiv.innerHTML = sCity;
	document.body.appendChild(oDiv);

	if (bShowInfo) ShowPaikkaInfo(aKaupungit[i][3]);
	return true;
}

function ShowPaikkaFromLink(sPaikka, iSymbol)
{
	CalculateOffsets();
	ShowPaikka(sPaikka, iSymbol, true);
}

function ShowPaikka(sPaikka, iSymbol, bShowInfo)
{
	var i = FindPaikka(sPaikka);
	if (i < 0) return;

	if (iSymbol == null) iSymbol = 0;
	
	KoordToPixel(aPaikat[i][1], aPaikat[i][2]);

	if (iSymbol > 0)
	{
		var oImg = document.createElement("img");
		switch (iSymbol)
		{
		case 1:
			oImg.src = "img/top.gif";
			break;
		case 2:
			oImg.src = "img/hut.gif";
			break;
		default:
			oImg.src = "img/point.gif";		
		}
		
		oImg.name= "Paikka";
		oImg.style.left = iX + iOffsetLeft;
		oImg.style.top = iY + iOffsetTop;
		oImg.style.position = "absolute";
		document.body.appendChild(oImg);
	}

	var oDiv = document.createElement("div");
	oDiv.className  = "mapname";
	oDiv.style.left = iX + iOffsetLeft;
	oDiv.style.top = iY + iOffsetTop;
	oDiv.style.position = "absolute";
	oDiv.innerHTML = sPaikka;
	if (iSymbol > 0)
	{
		oDiv.style.left = iX + iOffsetLeft + 10;
		oDiv.style.top = iY + iOffsetTop - 10;
	}
	document.body.appendChild(oDiv);

	if (bShowInfo) ShowPaikkaInfo(aPaikat[i][3]);

}

// Reittikartalle siirtyminen linkistä ja paluu takaisin tekstiin
function ShowFromLink(sValue)
{
	var oLista = document.getElementById("matkalista");
	if (oLista.disabled) return;
	oLista.focus();
	document.getElementById("backbtn").disabled = false;
	sFromLink = sValue;

	for (i = 0; i < oLista.options.length; ++i)
	{
		if (oLista.options[i].value == sValue)
		{
 			oLista.selectedIndex = i;
			ShowReitti();
			return;
		}
	}
}

function BackToText()
{
	document.getElementById("backbtn").disabled = true;
	window.location.href = "#" + sFromLink;
}

// Kun ikkunan koko muuttuu, pitää karttamerkinnät poistaa ja piirtää uudestaan oikeaan kohtaan
function SizeChanged()
{
	// Logopallukka kaikilla sivuilla
	SetLogoPallukka();

	if (document.URL.indexOf("tutkimusmatkat.html") != -1)
	{
		var iTmp = iSleep;
		iSleep = 1;
		window.clearInterval(oInterval);
		ShowReitti();
		iSleep = iTmp;
	}
	else if (document.URL.indexOf("kartta.html") != -1)
	{
		ClearLeirit();
		ShowLeirit();
	}
	else if (document.URL.indexOf("gronlanti.html") != -1)
	{
		ClearKartta();
	}
}