// 4 cookie see http://techpatterns.com/downloads/javascript_cookies.php


function NavCalcCol(x, nav_coff, nav_cres){
	var retVal;
	retVal=(x/nav_cres+nav_coff);
	// alert("NavCalcCol	: retVal = " + retVal +"\n");
	return (retVal);
}

function NavPolSterLat(x, y, sin_goff_lat){
	var retVal;
	retVal=(Math.atan2(Math.sqrt(x*x+y*y),sin_goff_lat));
	// alert("NavPolSterLat	: retVal = %lf\n",retVal);
	return (retVal);
}

function NavPolSterLon(x, y, nav_goff_lon){
	var retVal;
	retVal=(Math.atan2(x,y)+nav_goff_lon);
	// printf("NavPolSterLon	: retVal = %lf\n",retVal);
	return (retVal);
}

function NavPolSterX( lat, lon, sin_goff_lat, nav_goff_lon){
	var retVal;
	retVal=(sin_goff_lat*Math.tan(lat)*Math.sin(lon-nav_goff_lon));
	// alert("NavPolSterX	: retVal = " + retVal +"\n");
	return (retVal);
}

function NavPolSterY( lat,  lon,  sin_goff_lat,  nav_goff_lon){
	var retVal;
	retVal=(sin_goff_lat*Math.tan(lat)*Math.cos(lon-nav_goff_lon));
	// alert("NavPolSterY	: retVal = " + retVal +"\n");
	return (retVal);
}

function NavCalcLin( y, nav_loff, nav_lres){
	var retVal;
	retVal=(y/nav_lres+nav_loff);
	// alert("NavCalcLin	: retVal = " + retVal +"\n");
	return (retVal);
}

function NavCalcX( col, nav_coff, nav_cres){
	var retVal;
	retVal=(nav_cres*(col-nav_coff));
	// alert("NavCalcX	: retVal = %lf\n",retVal);
	return (retVal);
}

function NavCalcY( lin, nav_loff, nav_lres){
	var retVal;
	retVal=(nav_lres*(lin-nav_loff));
	// alert("NavCalcX	: retVal = %lf\n",retVal);
	return (retVal);
}

function Navigate( lat,  lon){
  var x,y;
  
  lat = lat*(Math.PI/180);
  lon = lon*(Math.PI/180);
  
  var goff_lat = 60*(Math.PI/180);
  var goff_lon = 4.5*(Math.PI/180);
  
  var sin_goff_lat = 1+Math.sin(goff_lat);
  
  var csize = 768;// column size
  var lsize = 576;// line size
  
  var midlat = 50.75*(Math.PI/180);
  var midlon = 4.5*(Math.PI/180);
  
  var cres = 0.000104;//104.e-6;
  var lres = 0.000104;//104.e-6;

	var nav_coff = csize/2 - NavPolSterX( (Math.PI/2 - midlat)/2, midlon, sin_goff_lat, goff_lon) / cres;
	var nav_loff = lsize/2 - NavPolSterY( (Math.PI/2 - midlat)/2, midlon, sin_goff_lat, goff_lon) / lres;

	var Xdest = NavCalcCol( NavPolSterX(((Math.PI/2) - lat)/2, lon, sin_goff_lat, goff_lon), nav_coff, cres);
	var Ydest = NavCalcLin( NavPolSterY(((Math.PI/2) - lat)/2, lon, sin_goff_lat, goff_lon), nav_loff, lres);
	
	return[Xdest, Ydest];
}


// COOKIE MANAGEMENT
// helped by http://www.quirksmode.org/js/cookies.html

function createCookie(name, value, days, path)
{
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/"+path;
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name)
{
	createCookie(name,"",-1);
}

function setCursorTo(imgTitle, yPos, xPos){
  // current settings: center
  	document.getElementById('cursorId').title = imgTitle;
	document.getElementById('cursorId').style.top = yPos - 80;
//document.getElementById('targetImg').height/2

	document.getElementById('cursorId').style.left = xPos - 80;
//document.getElementById('targetImg').width/2
}
function addTarget(imgTitle, yPos, xPos){
  document.write("<div id='cursorId' style='position:absolute;left:43px;top:48px;'><img id='targetImg' class='pic' src='"+targetImg+"' alt='' border='0' /></div>");
  document.getElementById('cursorId').style.position="absolute";

  setCursorTo(imgTitle, yPos, xPos);
}

function moveToCurrentCity(){
  var indx = document.getElementById('locationSelect').selectedIndex;
  createCookie('radarCityId', indx, 365*2, '');
  var xPos = Navigate(cities[indx][1], cities[indx][2]);
  setCursorTo(cities[indx][0], xPos[1], xPos[0]);
}


function initTarget(){
	

  targetImg = "target.gif";
  // preload of the target
  imagePreload = new Image();
  imagePreload.src = targetImg;

  myPos = cities[515];//Uccle


  var xPos = Navigate(myPos[1], myPos[2]);

  addTarget(myPos[0], xPos[1], xPos[0]);


  var optionCounter;

  document.getElementById('locationSelect').options[0] = new Option();
  document.getElementById('locationSelect').options[0].value = -1;
  document.getElementById('locationSelect').options[0].text = "doel selectie";

  for (optionCounter = 1; optionCounter < cities.length; ++optionCounter) {
    document.getElementById('locationSelect').options[optionCounter] = new Option();
    document.getElementById('locationSelect').options[optionCounter].value = optionCounter-1;
    document.getElementById('locationSelect').options[optionCounter].text = cities[optionCounter][0];
  }


   var cityId = readCookie('radarCityId');
	var refreshrateRadar = readCookie('radarRefreshrate');
	
	if(refreshrateRadar != null){
    setSpeed(refreshrateRadar);
  }

  if((cityId != null) && (cityId != -1)){
    document.getElementById('locationSelect').options[cityId].selected = true;
    moveToCurrentCity();
  }

}

