// Include a .js file inside another. Not Used.
var pos_x = 0;
var pos_y = 0;

function inc(filename){
var body = document.getElementsByTagName('body').item(0);
script = document.createElement('script');
script.src = filename;
script.type = 'text/javascript';
body.appendChild(script)
}

// Write session cookie
function writeSessionCookie (cookieName, cookieValue) {
  if (testSessionCookie()) {
    document.cookie = escape(cookieName) + "=" + escape(cookieValue) + "; path=/";
    return true;
  }
  else return false;
}
/***********************************************************************************/
// Write persitent cookie
function writePersistentCookie (CookieName, CookieValue, periodType, offset) {

  var expireDate = new Date ();
  offset = offset / 1;
  
  var myPeriodType = periodType;
  switch (myPeriodType.toLowerCase()) {
    case "years": 
     var year = expireDate.getYear();     
     // Note some browsers give only the years since 1900, and some since 0.
     if (year < 1000) year = year + 1900;     
     expireDate.setYear(year + offset);
     break;
    case "months":
      expireDate.setMonth(expireDate.getMonth() + offset);
      break;
    case "days":
      expireDate.setDate(expireDate.getDate() + offset);
      break;
    case "hours":
      expireDate.setHours(expireDate.getHours() + offset);
      break;
    case "minutes":
      expireDate.setMinutes(expireDate.getMinutes() + offset);
      break;
    default:
      alert ("Invalid periodType parameter for writePersistentCookie()");
      break;
  } 
  
  document.cookie = escape(CookieName ) + "=" + escape(CookieValue) + "; expires=" + expireDate.toGMTString() + "; path=/";
}  
/**************************************************************************************************************************/
// Read the cookie
function getCookieValue (cookieName) {
  var exp = new RegExp (escape(cookieName) + "=([^;]+)");
  if (exp.test (document.cookie + ";")) {
    exp.exec (document.cookie + ";");
    return unescape(RegExp.$1);
  }
  else return false;
}
/*********************************************************/
// Delete cookie.
function deleteCookie (cookieName) {

  if (getCookieValue (cookieName)) writePersistentCookie (cookieName,"Pending delete","years", -1);  
  return true;     
}
/*************************************************************************************************/
// Test session cookie
function testSessionCookie () {
  document.cookie ="testSessionCookie=Enabled";
  if (getCookieValue ("testSessionCookie")=="Enabled")
    return true 
  else
    return false;
}
/****************************************************/
// Test persistent cookie
function testPersistentCookie () {
  writePersistentCookie ("testPersistentCookie", "Enabled", "minutes", 1);
  if (getCookieValue ("testPersistentCookie")=="Enabled")
    return true  
  else 
    return false;
}
/************************************************************************/
// Old write cookie function. Not used.
function createCookie(name,value,days) {
	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=/";
}
// Old read cookie function. Not used
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;
}
/***************************************************************************/
// Old delete cookie function. Not used
function eraseCookie(name) {
	createCookie(name,"",-1);
}
/****************************/
// Convert Y TO LAT
function y2lat(lat_max, lat_min, y_max, y_min, y) {
lat=lat_max-((y-y_min)*(lat_max-lat_min))/(y_max-y_min);
return lat;
}
/***********************************************************/
// Convert LAT TO Y
function lat2y(lat_max, lat_min, y_max, y_min, lat) {
y = (((lat_max-lat)*(y_max-y_min))/(lat_max-lat_min))+y_min; 
return y;
}
/********************************************************/
// Convert LON TO X
function lon2x(lon_max, lon_min, x_max, x_min, lon) {
x = (((lon-lon_min)*(x_max-x_min))/(lon_max-lon_min))+x_min; 
return x;
}
/********************************************************/                                                                                      
// Convert X TO LON
function x2lon(lon_max, lon_min, x_max, x_min, x) {
lon=lon_min+((x-x_min)*(lon_max-lon_min)/(x_max-x_min));
return lon;
}
/********************************************************/
// Convert LON TO TXT
function lon2txt(lon) {
  if (lon>0) {deg = floor(lon);}
 else {deg = ceil(lon);}
 
  min = round(abs(lon - deg)*6000)/100;
  return (lon < 0) ? abs(deg) +"&deg;"+min+"' W" : ""+deg+"&deg; "+min+"' E";
}
/****************************************************************************/
// Convert LAT TO TXT
function lat2txt(lat) {
 if (lat>0) { deg = floor(lat);}
else {deg = ceil(lat);}
  min = round(abs(lat - deg)*6000)/100;
  return (lat < 0) ? abs(deg) +"&deg;"+min+"' S" : ""+deg+"&deg; "+min+"' N";
}
/****************************************************************************/
// Convert string to date including time. Not used.
function convert_str_to_date(date_string)
{
	var year = date_string.substring(0, 4);
	var month = date_string.substring(5, 7);
	var day = date_string.substring(8, 10);
	var hours = date_string.substring(11, 13);
	var minutes = date_string.substring(14, 16);
	var seconds = date_string.substring(17, 19);	
	var theDate = new Date(year, month, day, hours, minutes, seconds);
	return theDate;
}
/*****************************************************************************/
// Gets the mouse X and Y and goes to the function that sends the params to the time series page.
function point_it(event){
	pos_x = event.offsetX?(event.offsetX):event.pageX-document.getElementById("main_img").offsetLeft;
   pos_y = event.offsetY?(event.offsetY):event.pageY-document.getElementById("main_img").offsetTop;
   presentChangeAction();   

}
/***************************************************************************************************/
// Function to show the X and Y. For testing purposes.
function show_it(event){
	pos_x = event.offsetX?(event.offsetX):event.pageX-document.getElementById("main_img").offsetLeft;
   pos_y = event.offsetY?(event.offsetY):event.pageY-document.getElementById("main_img").offsetTop;
   document.getElementById("the_mouse_x").innerHTML = 'X: '+pos_x+'';
   document.getElementById("the_mouse_y").innerHTML = 'Y: '+pos_y+'';
}
/***************************************************************************************************/
// Dave's function to get Mouse X and mouse Y. Slightly modified
function get_mouse_xy(e) {

	if (e.pageX || e.pageY) 	{
		pos_x = e.pageX;
		pos_y = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		pos_x = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		pos_y = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	//return [posx, posy];
	presentChangeAction(); 
}
/*************************************************/
// Dave's function to get Mouse X and mouse Y. Slightly modified
function show_mouse_xy(e) {

	if (e.pageX || e.pageY) 	{
		pos_x = e.pageX;
		pos_y = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		pos_x = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		pos_y = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	// subtract offset of picture from upper left
	var img = document.getElementById('main_img');
	var img_x = findPosX(img);
	var img_y = findPosY(img);
	pos_x -= img_x;
	pos_y -= img_y;
	
	reg_part = is_ny ? 'nynj' : 'nj';

	//return [posx, posy];
	//document.getElementById("the_mouse_x").innerHTML = 'X: '+pos_x+'';
   //document.getElementById("the_mouse_y").innerHTML = 'Y: '+pos_y+'';
	
	var tooltip = loop_sid_array(pr_param, reg_part, pos_x, pos_y, false);
	if (tooltip == null)
	{
		document.getElementById("main_img").style.cursor = "default";
		//document.getElementById("nice_little_box").style.visibility = "hidden";
		document.getElementById("nice_little_div").style.visibility = "hidden";
		//hideddrivetip();
	}
	else
	{
		document.getElementById("main_img").style.cursor = "pointer";
		//document.getElementById("nice_little_box").style.visibility = "visible";
		//document.getElementById("nice_little_box").style.left = (tooltip[0] - 10)+"px";
		//document.getElementById("nice_little_box").style.top = (tooltip[1] - 10)+"px";
		document.getElementById("nice_little_div").innerHTML = tooltip[2];
		document.getElementById("nice_little_div").style.left = (tooltip[0] - 10)+"px";
		document.getElementById("nice_little_div").style.top = (tooltip[1] - 10)+"px";
		document.getElementById("nice_little_div").style.visibility = "visible";
		//ddrivetip(''+tooltip+'','yellow');
		//alert(tooltip);
	}
}
/*************************************************/
// Get pixel position of an element
function findPos(obj) 
{
	var curleft = curtop = 0;
	if (obj.offsetParent) 
	{
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	//return [curleft,curtop];
	alert(curleft+" - "+curtop);
	}
}
/*************************************************/
