
//from cp_lpmaps.lp_map_page expects globals lpmap_x_origin and lpmap_y origin  
browser_is_explorer = (document.all)? true:false; 
if (!browser_is_explorer) 
{
	document.captureEvents(Event.CLICK);
	document.onclick = click_handler;
};
 
function findObjectXY(objname)
{	// returns an array with .x and .y having the x,y coordinates of an object relative to the page. 
	var xy = {x:0,y:0};
	if (objname.offsetParent)
	{
		while (objname.offsetParent)
		{	xy.y += objname.offsetTop;
			xy.x += objname.offsetLeft;
			objname = objname.offsetParent;
		}
	}
	else if (objname.x)
		{
		xy.y += objname.y;
		xy.x += objname.x;
		};
	return xy;
}

function getMouseXY(e)
{
	var xy = {x:0,y:0};
	if (!e) var e = window.event;
	if (e.pageX || e.pageY)
	{
		xy.x = e.pageX;
		xy.y = e.pageY;
	}
	else if (e.clientX || e.clientY)
	{
		xy.x =  e.clientX + document.body.scrollLeft;
		xy.y = e.clientY + document.body.scrollTop;
	};
	return xy;

};
 
function lp_xy_to_latlon(pixel_x,pixel_y)
{ latlon =  {'lat':0,'lon':0};latlon.lat = (pixel_y+lpmap_y_origin-6608.39555354)/-120.054446461;latlon.lon = (pixel_x+lpmap_x_origin-15135.1943302)/120.026640412;
	return latlon;  
};

function getTopoURL(latlon)
{return "http://www.topozone.com/map.asp?size=l&s=200&chkDRG=DRG100&lat="+latlon.lat+"&lon="+latlon.lon; 
};

function getRoadMapURL(latlon,mapsize)
{
   //if (!mapsize) mapsize=30;	
   //pat="http://mappoint.msn.com/(e1bfjlvubsdzb345p4bca045)/map.aspx?L=USA&C="+latlon.lat+"%2c"+latlon.lon+"&A="+mapsize+"&P=|60C5|";
   pat="http://maps.google.com/maps?q="+latlon.lat+","+latlon.lon+"&btnG=Search&sc=1&rl=1&spn=0.3,0.3"
   return pat;
};

function getFindChartURL(latlon)
{ return "../cgi-bin/find_chart.py?Mn=apochromatic&type=llmap&olat="+latlon.lat+"&olong="+latlon.lon+"&unit=0&radius=5";
}

//choose_disp radio button indexes
choose_latlong=0;
choose_roadmap=1;
choose_topomap=2;
choose_findchart=3


function click_handler(an_event)
{ 
	if (!an_event) var an_event = window.event;
	mousexy=getMouseXY(an_event);
	imagexy = findObjectXY(document.images.lpmap_image);
	if (browser_is_explorer) correction=-2; //who knows why it's off by 2.
	else correction=0;
	x=mousexy.x - imagexy.x + correction;
	y= mousexy.y - imagexy.y + correction;
	if (x<0 || x>400) return;
	if (y<0 || y>400) return;
	latlon = lp_xy_to_latlon(x,y); 
	document.forms.lpmap.latlong.value="N"+Math.round(latlon.lat*1000)/1000+",  W"+Math.round(-latlon.lon*1000)/1000;    

	newurl="";
	if (document.forms.lpmap.choose_disp[choose_roadmap].checked)
	{   
	    newurl = getRoadMapURL(latlon); 
	}; 

	if (document.forms.lpmap.choose_disp[choose_topomap].checked)
	{   
	    newurl=getTopoURL(latlon);  
	};

	if (document.forms.lpmap.choose_disp[choose_findchart].checked)
	{    
	    newurl=getFindChartURL(latlon);
	};

	if (newurl!="") {
		if (document.forms.lpmap.newwindow.checked) {
			window.status="Opening new window"; 
			window.open(newurl); 
		} else {
			window.status="Going to page "+newurl;
			document.location=newurl;
		}
	}	
	
};
		