/*   Copyright (C) 2004 Map Bureau - http://www.mapbureau.com  */



var pmversion = "2.0.0"




function pm_version()
{
  return pmversion;
}


if (typeof(pm_includeZoomify)=="undefined") pm_includeZoomify = false;



if (typeof(pm_color) == "undefined") pm_color = "FFFFFF";




var fratts = "style=\"background-color:#"+pm_color;


if (typeof(pm_style) == "undefined")
   fratts += "\" ";
else
   fratts += (";"+pm_style+"\" ");


if (typeof(pm_class) != "undefined")
   fratts += ("class=\""+pm_class+"\" ");



var helper_file = "pm_helper.html";
if (pm_includeZoomify) helper_file =  "pm_zhelper.html";

var helper = "/pointmapper/2.0/"+helper_file;

if (typeof(pm_location) != "undefined")
   helper = pm_location + "/"+helper_file;

var myloc = document.location;

var iclass = 0;
if (iclass) fratts = fratts + "class=\""+iclass+"\" ";

function testalert(){alert(fratts);}

var pm_queue = new Array();


var pm_busy = 0;

function pm_add_command()
{ 
  var ln = pm_queue.length;
  todebug("<br/>Add command "+ln+" cmd "+arguments[0]);
  if (pm_loaded &&(ln == 0) && (!pm_busy)) pm_exec_command(arguments); else
  pm_queue.push(arguments);
}

// called from iframe
function pm_cmdComplete(idx)
{
  pm_busy = 0;
  var ln = pm_queue.length;
  todebug("<br/>cmdComplete "+ln+" cmd "+arguments);
  if (ln > 0) pm_exec_command(pm_queue.shift()); 
}
  

pm_loaded = false;
function pm_exec_command(cmd)
{
  pm_busy = 1;
  var ln = cmd.length;
  var fn = eval(cmd[0]);
  todebug("<br/>M exec_command "+cmd[0]);
//  fn.apply(null,
  if (ln == 1) fn(); else
  if (ln == 2) fn(cmd[1]); else
  if (ln == 3) fn(cmd[1],cmd[2]); else
  if (ln == 4) fn(cmd[1],cmd[2],cmd[3]); else
  if (ln == 5) fn(cmd[1],cmd[2],cmd[3],cmd[4]); else
  if (ln == 6) fn(cmd[1],cmd[2],cmd[3],cmd[4],cmd[5]); else
  if (ln == 7) fn(cmd[1],cmd[2],cmd[3],cmd[4],cmd[5],cmd[6]); else
  if (ln == 8) fn(cmd[1],cmd[2],cmd[3],cmd[4],cmd[5],cmd[6],cmd[7]); else
  if (ln == 9) fn(cmd[1],cmd[2],cmd[3],cmd[4],cmd[5],cmd[6],cmd[7],cmd[8]); else
  if (ln == 10) fn(cmd[1],cmd[2],cmd[3],cmd[4],cmd[5],cmd[6],cmd[7],cmd[8],cmd[9]); else
  if (ln == 11) fn(cmd[1],cmd[2],cmd[3],cmd[4],cmd[5],cmd[6],cmd[7],cmd[8],cmd[9],cmd[10]);   
}
var iQln = 0;

function pm_iframe_has_loaded()
{
  var ln = pm_queue.length;
  pm_loaded = true;
  iQln = ln;
    if (ln > 0) pm_exec_command(pm_queue.shift()); 
//  for (i=0;i<ln;i++) pm_exec_command(pm_queue[i]);
}

  


var pm_iframe_var;


function xpm_setMapParameters(m0)
{
     pm_iframe.pm_setMapParameters(m0);
}

function pm_setMapParameters(m0)
{
     pm_add_command("xpm_setMapParameters",m0);
}



function xpm_reset()
{
     pm_iframe.pm_reset();
}

function pm_reset()
{
     pm_add_command("xpm_reset");
}




function xpm_loadMap(m0)
{
     pm_iframe.pm_loadMap(m0);
}


function pm_loadMap(m0)
{
     pm_add_command("xpm_loadMap",m0);
}


function xpm_loadJpg(m0)
{
     pm_iframe.pm_loadJpg(m0);
}

function pm_loadJpg(m0)
{
     pm_add_command("xpm_loadJpg",m0);
}




function xpm_createTiling(nm,src)
{
     pm_iframe.pm_addTiling(nm,src);
}


function pm_createTiling(nm,src)
{
     pm_add_command("xpm_createTiling",nm,src);    
}



function xpm_zoomRange(nm,spmin,spmax)
{
     pm_iframe.pm_zoomRange(nm,spmin,spmax);
}


function pm_zoomRange(nm,spmin,spmax)
{
     pm_add_command("xpm_zoomRange",nm,spmin,spmax);    
}

// new name; appears in the docs
function pm_spanRange(nm,spmin,spmax)
{
     pm_add_command("xpm_zoomRange",nm,spmin,spmax);    
}






var dfl_name = "_default_";
var dfl_added = 0;
var dfl_r = 255;
var dfl_g = 0;
var dfl_b = 0;
var dfl_sh = "circle";

function xpm_loadPoints2(nm,src)
{
	    pm_iframe.pm_movePoints(nm,src);
	 }



function xpm_loadPoints1(src)
{
		if (dfl_added)
		   pm_iframe.pm_movePoints(dfl_name,src);
		else
		   {
		   pm_iframe.pm_addPoints(dfl_name,src,dfl_sh,dfl_r,dfl_g,dfl_b);
		   dfl_added = 1;
		  }
}

function pm_loadPoints(nm,src)
{
  var aln = arguments.length;
  if (aln == 2)
	     pm_add_command("xpm_loadPoints2",nm,src);    
  else
  if (aln == 1)
	     pm_add_command("xpm_loadPoints1",nm);    
}

function xpm_createPointLayer(nm,sh,a0,a1,a2)
{
	    pm_iframe.pm_createPointLayer(nm,sh,a0,a1,a2);
}


function pm_createPointLayer(nm,sh,a0,a1,a2)
{
	     pm_add_command("xpm_createPointLayer",nm,sh,a0,a1,a2);    
}




function xpm_createPolylineLayer(nm,wd,r,g,b,a)
{
	    pm_iframe.pm_createPolylineLayer(nm,wd,r,g,b,a);
}


function pm_createPolylineLayer(nm,wd,r,g,b,a)
{
	     pm_add_command("xpm_createPolylineLayer",nm,wd,r,g,b,a);    
}




function xpm_createPolygonLayer(nm,wd,r,g,b,a,fr,fg,fb,fa)
{
	    pm_iframe.pm_createPolygonLayer(nm,wd,r,g,b,a,fr,fg,fb,fa);
}


function pm_createPolygonLayer(nm,wd,r,g,b,a,fr,fg,fb,fa)
{
	     pm_add_command("xpm_createPolygonLayer",nm,wd,r,g,b,a,fr,fg,fb,fa);    
//  var ln = pm_queue.length;
//		 alert(ln + " "+pm_queue[ln-1][0]);
}




function xpm_loadPoly(nm,src)
{
	    pm_iframe.pm_loadPoly(nm,src);
}


function pm_loadPolyline(nm,src)
{
	     pm_add_command("xpm_loadPoly",nm,src);    
}


function pm_loadPolygon(nm,src)
{
	     pm_add_command("xpm_loadPoly",nm,src);    
}




function xpm_drawPolylineRange(nm,lw,hg)
{
	    pm_iframe.pm_drawPolylineRange(nm,lw,hg);
}


function pm_drawPolylineRange(nm,lw,hg)
{
	     pm_add_command("xpm_drawPolylineRange",nm,lw,hg);    
}


function xpm_createImageLayer(nm)
{
	    pm_iframe.pm_createImageLayer(nm);
}



function pm_createImageLayer(nm)
{
	     pm_add_command("xpm_createImageLayer",nm);  
}


function xpm_loadImage(nm,imf)
{
	    pm_iframe.pm_loadImage(nm,imf);
}


function pm_loadImage(nm,imf)
{
	     pm_add_command("xpm_loadImage",nm,imf);    
}




function xpm_loadMarks(nm,imf)
{
	    pm_iframe.pm_loadMarks(nm,imf);
}


function pm_loadMarks(nm,imf)
{
	     pm_add_command("xpm_loadMarks",nm,imf);    
}

function xpm_setPoints2(nm,pnts)
{

	    pm_iframe.pm_resetPoints(nm,pnts);
}

function xpm_setPoints1(nm)
{

		if (dfl_added)
		   pm_iframe.pm_resetPoints(dfl_name,nm);
		else
		   {
		   pm_iframe.pm_setPoints(dfl_name,nm,dfl_sh,dfl_r,dfl_g,dfl_b);
		   dfl_added = 1;
		   }

		
}




function pm_setPoints(nm,pnts)
{
  var aln = arguments.length;

  if (aln == 2)
	     pm_add_command("xpm_setPoints2",nm,pnts);    
  else
  if (aln == 1)
	     pm_add_command("xpm_setPoints1",nm);    

		
}



function xpm_setPolyline(nm,pnts)
{
	    pm_iframe.pm_setPolyline(nm,pnts);
}




function pm_setPolyline(nm,pnts)
{
     pm_add_command("xpm_setPolyline",nm,pnts);  
}



function xpm_setPolygon(nm,pnts)
{
	    pm_iframe.pm_setPolygon(nm,pnts);
}




function pm_setPolygon(nm,pnts)
{
     pm_add_command("xpm_setPolygon",nm,pnts);  
}


function xpm_highlight2(ily,inm)
{
     pm_iframe.pm_highlight(ily,inm);
}


function xpm_highlight1(inm)
{
     pm_iframe.pm_highlight(dfl_name,inm);
}


function pm_highlight(ly,nm)
{
  if (arguments.length == 2) 
     pm_add_command("xpm_highlight2",ly,nm);  
  else   
     pm_add_command("xpm_highlight1",ly);    
}




function xpm_unhighlight2(ily,inm)
{
     pm_iframe.pm_unhighlight(ily,inm);
}


function xpm_unhighlight1(inm)
{
     pm_iframe.pm_unhighlight(dfl_name,inm);
}


function pm_unhighlight(ly,nm)
{
  if (arguments.length == 2) 
     pm_add_command("xpm_unhighlight2",ly,nm);  
  else   
     pm_add_command("xpm_unhighlight1",ly);    
}

var pm_winprops = "width=650,height=500,scrollbars=1,resizable=1,toolbars=1";

function pm_popwin1() {
	pm_poppedwin.focus();
}

function pm_popwin(url)
{
	 pm_poppedwin = window.open(url,"pm_poppedwin",pm_winprops);
     setTimeout('pm_popwin1()',100);
}


function instructions(){pm_popwin("instructions.html")}




function xpm_hideIndicator()
{
     pm_iframe.pm_hideIndicator();
}

function pm_hideIndicator()
{
     pm_add_command("xpm_hideIndicator");    
}




var pm_selectionCB = 0;
var pm_locatorCB = 0;
var pm_tileSelectionCB = 0;
var pm_panCB = 0;
var pm_lodOutCB = 0;
var pm_mapLoadedCB = 0;
var pm_spanCB = 0;




function pm_setMapLoadedCallback(nm)
{
  pm_mapLoadedCB = nm;
}

function pm_lodOut()
{
  if (typeof(pm_lodOutCB ) == "function")
     pm_lodOutCB();
}

function pm_setLodOutCallback(nm)
{
  pm_lodOutCB = nm;
}



function pm_pointSelected(ly,nm)
{
//  alert("M pm_pointSelected "+nm+","+ly);

  if (typeof(pm_selectionCB ) == "function")
     {
//	 alert("arity = "+pm_selectionCB.length);
	 if ((pm_selectionCB.length) == 2) pm_selectionCB(ly,nm);
	 else pm_selectionCB(nm);
	 }
}

function pm_setSelectionCallback(nm)
{
  pm_selectionCB = nm;
}



function pm_setSpan(vl)
{
  var nvl;
  if (typeof(pm_spanCB ) == "function")
     {
	 nvl = Number(vl);
//	 alert("Span "+nvl);
	 pm_spanCB(nvl);
	 }
}

function pm_setSpanCallback(nm)
{
  pm_spanCB = nm;
}






function xpm_setMapTitle(ttl)
{
     pm_iframe.pm_setMapTitle(ttl);
}



function pm_setMapTitle(ttl)
{
     pm_add_command("xpm_setMapTitle",ttl);    
}



function xpm_setMapTitleHtml(ttl)
{
     pm_iframe.pm_setMapTitleHtml(ttl);
}


function pm_setMapTitleHtml(ttl)
{
     pm_add_command("xpm_setMapTitleHtml",ttl);    
}




function pm_setLocatorCallback(nm)
{
  pm_locatorCB = nm;
}


function pm_setMapperReadyCallback(nm)
{
  pm_mapperReadyCB = nm;
}


function pm_mapperReady()
{
   if (typeof(pm_mapperReadyCB) == "function") pm_mapperReadyCB();
}



function xpm_setXY(x,y)
{
     pm_iframe.pm_setXY(x,y);
}




function pm_setXY(x,y)
{
     pm_add_command("xpm_setXY",x,y);    
}




function xpm_setLatLong(x,y)
{
     pm_iframe.pm_setLatLong(x,y);
}




function pm_setLatLong(x,y)
{
     pm_add_command("xpm_setLatLong",x,y);    
}




function xpm_hideLayer(ly)
{
     pm_iframe.pm_hideLayer(ly);
}



function xpm_hideWhileZP(ly)
{
     pm_iframe.pm_hideWhileZP(ly);
}



function pm_hideLayer(ly)
{
     pm_add_command("xpm_hideLayer",ly);    
}



function pm_hideWhileZP(ly)
{
     pm_add_command("xpm_hideWhileZP",ly);    
}

function xpm_showLayer(ly)
{
     pm_iframe.pm_showLayer(ly);
}


function pm_showLayer(ly)
{
     pm_add_command("xpm_showLayer",ly);    
}




function xpm_resetLayer(ly)
{
     pm_iframe.pm_resetLayer(ly);
}




function pm_resetLayer(ly)
{
     pm_add_command("xpm_resetLayer",ly);    
}


function xpm_setMarkScale(sc)
{
     pm_iframe.pm_setMarkScale(sc);
}



function xpm_setMarkScaleRange(sc,lsp,hsp)
{
     pm_iframe.pm_setMarkScaleRange(sc,lsp,hsp);
}



function pm_setMarkScale(sc,lsp,hsp)
{
   var aln = arguments.length;
   if (aln == 1)
    pm_add_command("xpm_setMarkScale",sc);   
   else
     pm_add_command("xpm_setMarkScaleRange",sc,lsp,hsp);   
   
}





function xpm_setRolloverScale(sc)
{
     pm_iframe.pm_setRolloverScale(sc);
}



function pm_setRolloverScale(sc)
{
     pm_add_command("xpm_setRolloverScale",sc);    
}




function xpm_zoomLatLong(ltmin,ltmax,lnmin,lnmax)
{
     pm_iframe.pm_zoomLatLong(ltmin,ltmax,lnmin,lnmax);
}



function pm_zoomLatLong(ltmin,ltmax,lnmin,lnmax)
{
     pm_add_command("xpm_zoomLatLong",ltmin,ltmax,lnmin,lnmax);  
}



function xpm_zoomXY(xmin,xmax,ymin,ymax)

{
     pm_iframe.pm_zoomXY(xmin,xmax,ymin,ymax);
}


function pm_zoomXY(xmin,xmax,ymin,ymax)

{
     pm_add_command("xpm_zoomXY",xmin,xmax,ymin,ymax);  
}


function pm_reportlocation(x)
{ 
  var prj;
  var spl = x.split(",");

  if (typeof(pm_locatorCB ) == "function")
     pm_locatorCB(spl[0],spl[1],spl[2]);
  else
    {
	if (spl[0] == "latitude_longitude") prj = "Latitude,Longitude: ";
	else prj = "X,Y: ";
     alert(prj + spl[1] + "," + spl[2]);
	 }
}



var towrite = '<iframe id="pm_iframe" name="pm_iframe" src="'+helper+'\" '+fratts + '  scrolling=no frameborder=0 marginwidth=0 marginheight=0 >ZZZ</iframe>';

document.writeln(towrite);

var debughist = "";
var debugEnabled = 0;
function todebug(vl)
{
 if (debugEnabled)
 {
 debughist += vl;
 var fr =  document.getElementById("debugf");
 if (fr) fr . innerHTML = debughist;
 }
}

