String.prototype.getQueryString = function(name)
        {
            name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
            var regexS = "[\\?#&]"+name+"=([^&#]*)";
            var regex = new RegExp( regexS );
            var results = regex.exec( this );
            if( results == null )
            {
                return "";
            }
            else
            {
                return results[1];
            }
        } 

//Get Parameters
var map0;

// set default values
var g_lat =  25.75869;
var g_lon = -80.37388;
var g_res = 2.4;
var g_level = 16;
var g_panel = "";
var g_legend = "Environment:Hydrology@rtgauges-_7%2Bptrim%2Bprism.t5v;real_estate:MLS_listings_for_sale_and_rent_in_Miami_area@re1n-_2%2Bre2n-_2%2Brntn-_2%2Brinn-_3%2Brldn-_3;--owner:Property_owner@flpropertiesowner-_1;--year_built:Year_property_built_or_renovated@flpropertiesyear-_1;--size:Sizes_of_property_interior_and_lot,_Florida_zoomin_only@flpropertiessize-_1;--appraisal:Property_value,_Florida_zoomin_only@flpropertiesvalue-_1;parcels:Florida_property_data_layers,_shown_at_closeup_zoomins_only:@flproplines-_1.t00;income@blkgrpy.d0v%2Bbg_mhinc;population@blk_pop;food@dining;services@nypages-_2;~places@annomreal%2Bgnis-_3%2Bhotels-_3;road_lines@street.l_;~cities:Cities,_towns@city%2Bincorp.00v;~roads:Roads,_and_streets@street._n;plugin_photo";
var g_address = "Address";
var g_vid = null;
var g_help = "<span style='font:12px arial;'>"+
				"<b>Double Click</b>: Local Data Reports and Queries<br />"+
            	"<b>Drag</b>: Browse the map<br />"+
            	"Buttons on map:<b>Full Screen</b>, <b>Legend</b>, <b>Zoom</b>, <b>Download</b><br /><br />"+
            	"Address bar examples:<br />"+
            	"1 Flagler St, Miami, FL<br />Miami<br />Miami, FL<br />33139<br />25.77 -80.19 (coordinates)"+
            "</span>";
var g_tfFlashPassTrough = "";
var g_tflogo = 1;
var g_type = "hybrid";

var viewCenterLat = 0,
    viewCenterLon = 0;
var g_TerraMapWidth = 0,
    g_TerraMapHeight = 0;
var flyTargetLat = 0,
    flyTargetLon = 0,
    flyTargetLevel = 0;
var IsShowPhoto = false;	//for geoimage, initialized in AddLegend()

function GetURLParas()
{
    var url_lat = null,
    	url_lon = null,
    	url_res = null,
    	url_level = null,
    	url_address = null,
    	url_help = null,
    	url_panel = null,
    	url_legend = null,
    	url_vid = null,
    	url_tfpass = null,
    	url_tflogo = null,
    	url_type = null;
    
    var isURL=location.href;
    
    var paraList;
    if(isURL.indexOf('#')!=-1)    
    	paraList=isURL.split('#');
    else
    	paraList=isURL.split('?');
    if (paraList.length == 1) return;
    
    var queryStr = "#" + (paraList[1]).toLowerCase();
    
    url_lat = queryStr.getQueryString('lat');
    url_lon = queryStr.getQueryString('lon');
    url_res = queryStr.getQueryString('res');
    url_level = queryStr.getQueryString('level');
    url_address = queryStr.getQueryString('address');
    url_help = queryStr.getQueryString('help');
    url_panel = queryStr.getQueryString('panels');
    url_legend = queryStr.getQueryString('legend');
    url_vid = queryStr.getQueryString('vid');
    url_tfpass = queryStr.getQueryString('tf_passtrough');
    url_tflogo = queryStr.getQueryString('tflogo');
    url_type = queryStr.getQueryString('type');
	
	/* Case Sensitive parameters */	
	var paraArray = (paraList[1]).split('&');

	for( i in paraArray )
	{
		var paras = paraArray[i].split('=');
		
		if(paras[0].toLowerCase()=='address')
		{
			url_address = unescape(paraArray[i].substring(8));
		}
		else if( paras[0].toLowerCase()=='help' )
		{
			url_help = paraArray[i].substring(5);
		}
		else if( paras[0].toLowerCase()=='tf_passtrough' )
		{
			url_tfpass = paraArray[i].substring(14);
		}
		else if( paras[0].toLowerCase()=='legend' )
		{
			url_legend = paraArray[i].substring(7);
		}
	}
	
	/* Globalize parameters */	
    g_lat = (url_lat=="")?g_lat:url_lat;
    g_lon = (url_lon=="")?g_lon:url_lon;
    g_res = (url_res=="")?g_res:url_res;
    g_type = (url_type=="")?g_type:url_type;
	g_level = url_level;
    g_legend = (url_legend=="")?g_legend:url_legend;
    g_address = url_address.replace(/\+/g, " ");
    g_vid = url_vid;
    g_tfFlashPassTrough = (url_tfpass=="")?g_tfFlashPassTrough:unescape(url_tfpass);
    g_panel = url_panel;
    g_help = (url_help=="")?g_help:unescape(url_help);
    g_tflogo = (url_tflogo=="1")?true:false;
    document.getElementById("Text_Street").value = g_address;

    /* set view center */
    viewCenterLat = g_lat;
    viewCenterLon = g_lon;
}

var g_eventMapOnClick = "";
var g_eventMapOnDoubleClick = "";
var g_eventMapOnMoveEnd = "";

function on_mapload()
{
    ShowPanels();
    map0.SetBorderVisibility(true);
    
    g_eventMapOnClick		= map0.AddOnClickListener( MapOnClick );
    g_eventMapOnDoubleClick	= map0.AddOnDoubleClickListener( LoadDBPage );
    g_eventMapOnMoveEnd		= map0.AddOnMoveEndListener( MoveEnd );
    
    resizeMap();
    //Add Pass Trough String
    if(typeof(g_tfFlashPassTrough)!= null)
    {
    	map0.SetTFPassTroughString(g_tfFlashPassTrough);
    }
    
    //below for geoimage
    if(IsShowPhoto){
    	gim_layerImage = map0.AddLayer("Photo", "Photos", true, false);
    	MoveEnd(viewCenterLat, viewCenterLon);
	}
}

function ShowPanels()
{
    var strHide = "HIDDEN";
    var strShow = "SHOW";
    //Initial Varities
    var p_nav = strHide,
        p_zoom = strHide,
        p_overview = strHide,
        p_legend = strHide,
        p_download = strHide,
        p_measure = strHide,
        p_type = strHide;
    
    //Get visiblity
    if(g_panel != "")
    {
    	var panelParas = g_panel.split('+');
	    var i;
	    for(i in panelParas)
	    {
	        if(panelParas[i] == "nav")		{ p_nav		= strShow };
	        if(panelParas[i] == "zoom")		{ p_zoom	= strShow };
	        if(panelParas[i] == "overview")	{ p_overview= strShow };
	        if(panelParas[i] == "legend")	{ p_legend	= strShow };
	        if(panelParas[i] == "download") { p_download= strShow };
	        if(panelParas[i] == "measure") 	{ p_measure	= strShow };
	        if(panelParas[i] == "type") 	{ p_type 	= strShow };
	    }
    }
    // show all by default.
    else
    {
    	p_nav = strShow;
        p_zoom = strShow;
        p_overview = strShow;
        p_legend = strShow;
        p_download = strShow;
        p_measure = strShow;
        p_type = strShow;
    }
    
    //Set visiblity
    map0.SetPanelVisibility("FLY", p_nav);
    map0.SetPanelVisibility("ZOOM", p_zoom);
    map0.SetPanelVisibility("OVERVIEW", p_overview);
    map0.SetPanelVisibility("LEGEND", p_legend);
    map0.SetPanelVisibility("BUY", p_download);
    map0.SetPanelVisibility("MEASURE", p_measure);
    map0.SetPanelVisibility("TYPE", p_type);
    //
    map0.SetPanelPosition("ZOOM",	10, 10);
    map0.SetPanelPosition("NAV",	70, 10);
    map0.SetPanelPosition("BUY",	230, 10);
    map0.SetPanelPosition("MEASURE",150, 10);
    
    //
    map0.SetLogoVisibility(g_tflogo);
    //
    //alert(g_type);
    map0.MapMode(g_type.toUpperCase());
    // these 2 panels will be reset in resizemap function
    //map0.SetPanelPosition("TYPE",400, 10);
    //map0.SetPanelPosition("LEGEND",450, 60);
    
    //Add Legend
    if( (p_legend==strShow)&&(g_legend!=null))
    {
    	AddLegend();
    }
    
}

function window_resize()
{
    resizeMap();
}        

function resizeMap()
{
    var winW, winH;
    var borderOffset = 0;
	var scrollOffset = 15;
	var addressBarHeight = 47;
	
    if( TGetBrowserType().type != "msie" )//non IE
    {
        borderOffset = 10;
        if(window.innerWidth)
        {
            winW = window.innerWidth; //window width
            winH = window.innerHeight;//window height
        }
    }
    else //IE
    {     
        borderOffset = 26;
        if(document.body.offsetWidth)
        {
            winW = document.body.offsetWidth;
            winH = document.body.offsetHeight;
        }
    }
	
	if (window.parent != self) //iframed
		winW = winW - borderOffset;
	else
		winW = winW - borderOffset - scrollOffset;    //only has verticle scroll bar offset
	winH = winH - borderOffset - addressBarHeight;
	
    document.getElementById("divTMapContainer0").style.width = winW;
	document.getElementById("divTMapContainer0").style.height = winH;	
	document.getElementById("divAddressBar").style.width = winW;
							
	if ( map0 != null)
	{
	    map0.SetSize(winW, winH);
	    map0.SetPanelPosition("LEGEND", winW - 150 , 10);
	    map0.SetPanelPosition("TYPE", winW - 350 , 10);
	}
	
	g_TerraMapWidth = winW;
	g_TerraMapHeight = winH;
}

function LoadDBPage( latitude, longitute )
{        
    var strURL = "http://vn4.cs.fiu.edu/cgi-bin/gnis.cgi?Lat=" + latitude + "&Long="+ longitute;
    if( g_vid != null ) { strURL += ("&vid=" + g_vid); }
    //if( g_tfFlashPassTrough!= null ) { strURL += g_tfFlashPassTrough; }
	if( g_tfFlashPassTrough!= null ) { 
    	if(g_tfFlashPassTrough.charAt(0)=="&")
    		strURL += g_tfFlashPassTrough;
    	else
    		strURL += "&"+g_tfFlashPassTrough; 
    }
    window.open(strURL, "_top");
}

function AddLegend()
{
    //map0.AddLegend("Miami4sale:MLS_listings_for_sale_and_rent_in_Miami_area@re1n-_2%2Bre2n-_2%2Brntn-_2%2Brinn-_3%2Brldn-_3;--owner:Property_owner@flpropertiesowner-_1;--year_built:Year_property_built_or_renovated@flpropertiesyear-_1;--size:Sizes_of_property_interior_and_lot,_Florida_zoomin_only@flpropertiessize-_1;--appraisal:Property_value,_Florida_zoomin_only@flpropertiesvalue-_1;FL_parcels:Florida_property_data_layers,_shown_at_closeup_zoomins_only:@flproplines-_1.t00;income@blkgrpy.d0v%2Bbg_mhinc;population@blk_pop;food@dining;services@nypages-_2;~places@anno_mreal%2Bgnis-_3%2Bhotels-_3;road_lines@street.l_;~cities:Cities,_towns@city%2Bincorp.00v;~roads:Roads,_and_streets@street._n");
    //map0.AddLegend("~photos:TerraFly_Architecture_Photography_Collection@geoimages-_3");
    var unescapedLegend = unescape(g_legend);    
    var legendArray=unescapedLegend.split(';');
    var legendString="";
    for(i=0;i<legendArray.length;i++){
    	if(legendArray[i].indexOf("plugin_photo")!=-1)
    	{
    		IsShowPhoto=true;
    	}	
    	else
    		legendString+=legendArray[i]+";";
    }
    //alert(IsShowPhoto);
    if(legendString.charAt(legendString.length-1)==";")legendString=legendString.substring(0,legendString.length-1);
    if(legendString=="")return;
    //map0.AddLegend(legendString);
    map0.SetLegend(legendString);
}

function PressEnter(e)
{
    var keynum;
    if(window.event) // IE
    {
        keynum = e.keyCode;
    }
    else if(e.which) // Netscape/Firefox/Opera
    {
        keynum = e.which;
    }
    if(keynum == 13) // press enter
    {
        Button_GoMap_onclick();
    }
}

newAddress = false;
function Button_GoMap_onclick()
{
    var address = document.getElementById("Text_Street").value;
    if(address != "")
    {
	    TGetLatLngByAddress ( address,  geoCode );
	    //StopAni();
	    allowTimeSeries = false;
	    newAddress = true;
	}
}

function Button_GoDB_onclick()
{
    var address = document.getElementById("Text_Street").value;
    if(address != "")
    {
    	TGetLatLngByAddress ( address,  geoCodeDB );
    }
    else
    {
    	var objView = map0.ScreenToGlobal(g_TerraMapWidth/2, g_TerraMapHeight/2);
    	LoadDBPage(objView.Lat, objView.Lon);
    }
}

function Button_Help_onclick()
{
    ShowHelp();
}         

var g_fadeoutTimeoutController = null;

function ShowHelp()
{
	map0.SetMessageText(g_help);
	map0.ShowMessageBar();
	if(g_fadeoutTimeoutController != null)
	{
    	clearTimeout(g_fadeoutTimeoutController);
    	g_fadeoutTimeoutController = null;
	}
    g_fadeoutTimeoutController = setTimeout( fadeOut, 5000 );
}

function HideHelp()
{
	map0.HideMessageBar();
	clearTimeout(g_fadeoutTimeoutController);
    g_fadeoutTimeoutController = null;	
}

function fadeOut()
{
	map0.MBFadeAni(100, 0);
	setTimeout( HideHelp, 5000 );
}

var HelpAtShownTheFirstClick = false;
function MapOnClick( lat, lon )
{
    //map0.PanTo( lat, lon );
    map0.PanToAni( lat, lon , 400, "");
    if(!HelpAtShownTheFirstClick)
    {
    	ShowHelp();
    	HelpAtShownTheFirstClick = true;
    }
}

function MoveEnd(Lat, Lon)
{
	viewCenterLat = Lat;
  	viewCenterLon = Lon;	
  	map0.HideInfoWindow();	//For Geoimage
  	if(IsShowPhoto)gim_RequestGeoimage();	//request geoimage photo
}
       
function geoCode(Lat, Lon, GeocodeLevel, ErrorMsg)
{
    var pointNW = new Object();
    var pointSE = new Object();
    ErrorMsg = Trim( ErrorMsg);
    if(  ErrorMsg != "" ) { alert( ErrorMsg ); }
    if(  Lat != 0.0 || Lon != 0.0  )
    {
    	//alert("move from ( " + viewCenterLat + " , " + viewCenterLon + ") to ( " + Lat + " , " + Lon + " )");
    	if(viewCenterLat >= Lat)
    	{
    		pointNW.latitude = viewCenterLat;
    		pointSE.latitude = Lat;
    	}
    	else
    	{
    		pointNW.latitude = Lat;
    		pointSE.latitude = viewCenterLat;
    	}
    	
    	if(viewCenterLon <= Lon)
    	{
    		pointNW.longitude = viewCenterLon;
    		pointSE.longitude = Lon;
    	}
    	else
    	{
    		pointNW.longitude = Lon;
    		pointSE.longitude = viewCenterLon;
    	}
    	
    	flyTargetLat = Lat;
    	flyTargetLon = Lon;
    	flyTargetLevel = map0.GetLevel();
    	var zoomLevel = TGetBoundsZoomLevel(pointNW, pointSE, g_TerraMapWidth, g_TerraMapHeight);
		
		if(flyTargetLevel < zoomLevel)
		{
			map0.PanToAni( flyTargetLat, flyTargetLon, 200, "");
		}
		else
		{   	
    		aniZoomOut(zoomLevel);
    	}
    	//map0.PanTo(Lat, Lon);
    }
}

function aniZoomOut(zoomLevel)
{
	map0.ZoomToAni( zoomLevel, aniFlyTo );
}

function aniFlyTo()
{
	map0.PanToAni( flyTargetLat, flyTargetLon, 200, aniZoomIn );
}

function aniZoomIn()
{
	map0.ZoomToAni( flyTargetLevel );
	allowTimeSeries = true;
}

function geoCodeDB(Lat, Lon, GeocodeLevel, ErrorMsg)
{
    ErrorMsg = Trim( ErrorMsg);
    if( ErrorMsg != "" ) { alert( ErrorMsg ); }    
    if( Lat != 0.0 || Lon != 0.0 ) { LoadDBPage( Lat, Lon ); }        
}

function Trim(sString) 
{
    while (sString.substring(0,1) == ' ')
    {
        sString = sString.substring(1, sString.length);
    }
    while (sString.substring(sString.length-1, sString.length) == ' ')
    {
        sString = sString.substring(0,sString.length-1);
    }   
    return sString;
}

function InitTFMap()
{
    // Get Size
    var winW, winH;
    var borderOffset = 0;
	var scrollOffset = 15;
	var addressBarHeight = 47;
	
    if( TGetBrowserType().type != "msie" )//non IE
    {
    	borderOffset = 10;
        if(window.innerWidth)
        {
            winW = window.innerWidth; //window width
            winH = window.innerHeight;//window height
        }
    }
    else //IE
    {     
    	borderOffset = 26;
    	if(document.body.offsetWidth)
        {
            winW = document.body.offsetWidth;
            winH = document.body.offsetHeight;
        }
	}
	
	// Get Parameters from URL
	GetURLParas();
	
	if (window.parent != self) //iframed
		winW = winW - borderOffset;
	else
		winW = winW - borderOffset - scrollOffset;    //only has verticle scroll bar offset
	winH = winH - borderOffset - addressBarHeight;
	
	// Set Map Container Size
    document.getElementById("divTMapContainer0").style.width = winW;
	document.getElementById("divTMapContainer0").style.Height = winH;
	
	// Create Map
	CreateTMap();
}

function CreateTMap()
{
	var level = 0;
	if(g_res!=null)
	{
		level = TGetLevelByResolution( g_res );
	}
	else
	{
		level = g_level;	
	}
	/* set view center */
    viewCenterLat = g_lat;
    viewCenterLon = g_lon;
	/* create map */
	map0 = new TMap(document.getElementById("divTMapContainer0"), g_lat, g_lon, level, on_mapload, true);
}

//below is Geo-image module(called gim) ****************************************
var gim_markers = new Array;
var gim_markerContents = new Array; //new
var gim_windowOpen = new Array;
var gim_photoData = new Array;
var gim_photoNum = 0;        
var gim_downloadObj = null;        
var gim_stopTime = 0;
var gim_levelMem = 0;
var gim_markerToShow = -1;
var gim_layerImage;

function gim_RequestGeoimage(){
	var currentLevel = map0.GetLevel();
    if (gim_levelMem != currentLevel) {
        gim_layerImage.Clean();
        gim_photoNum = 0;
        gim_levelMem = currentLevel;
    }
    if (map0.GetFlyMode() == true && gim_stopTime < 30) {
        gim_stopTime++;
    }
    else {
        gim_stopTime = 0;
        var boudary = map0.GetBounds();
        var X1 = boudary.latitude1;
        var Y1 = boudary.longitude1;
        var X2 = boudary.latitude2;
        var Y2 = boudary.longitude2;
        var distance = parseInt(document.getElementById("divTMapContainer0").style.height) / 50;
        var urlToRedirect = "http://geoimage.cs.fiu.edu/stage/search.ashx?"
                          + "lat1=" + X2
                          + "&lat2=" + X1
                          + "&long1=" + Y1
                          + "&long2=" + Y2
                          + "&foreupdate=" + Math.random()
                          + "&Distance=" + distance.toString();
        var urlEncoded = escape(urlToRedirect);
        var strServer = "RedirectStream.aspx?URL=";
        var url = strServer + urlEncoded;
        if (gim_downloadObj != null) {
            gim_downloadObj.Abort();
            gim_downloadObj = null;
        }
        gim_downloadObj = new TDownloadRequest(url, gim_OnPhotoLoaded);
        gim_downloadObj.Send();
    }	
}
function gim_OnPhotoLoaded(http_request, status) {
    if (http_request.status == 200) {
        var xmldoc = http_request.responseXML;
        var doc = http_request.responseText;
        var dataSet = xmldoc.getElementsByTagName("DATASET").item(0);
        if (dataSet == null) {
            //alert("Dataset Return  Error: could not parse the XML");
            return;
        }
        var errorInfoObj = dataSet.getElementsByTagName("ErrorInfo");
        if (errorInfoObj != null) {
            var errorInfo = errorInfoObj.item(0);
            if (errorInfo != null) {
                if (errorInfo.text != null) {
                    if (errorInfo.text.Trim() != "") {
                        //alert(ErrorInfo.text);
                        return;
                    }
                }
            }
        }
        gim_ShowDataset(dataSet);
    }
    else if (http_request.status != 0) {
        //alert("server is current busy or the number of results exceeds 3,000 in this area." + "\n Request to server Error code:" + status );
    }
    gim_downloadObj = null;
}

var gim_fieldsDataset = "TITLE,Comment,Latitude,Longitude,Image,Content,Width,Height,Uploader,Thumbnail,Tiny";
var gim_fieldsArray = gim_fieldsDataset.split(",");

function gim_ShowDataset(dataSet) {
    var RecordSet = dataSet;        
    var dataNum = RecordSet.childNodes.length;
    var iPoint = 0;
    for (iPoint = 0; iPoint < dataNum; iPoint++) {
        var nodePoint = RecordSet.childNodes[iPoint];
        var nodePointValue = new Array();
        for (var i = 0; i < gim_fieldsArray.length; i++) {
            var field = gim_fieldsArray[i];
            if (TGetBrowserType().type == "msie") {
                nodePointValue[field] = nodePoint.getElementsByTagName(field).item(0).text;
            }
            else {
                nodePointValue[field] = nodePoint.getElementsByTagName(field).item(0).textContent;
            }
        }
        if (nodePointValue["Image"] == null || nodePointValue["Image"].length == 0) {
            nodePointValue["Image"] = imageNullURL;
        }
        var flag = false;
        for (var i = 0; i < gim_photoNum; i++) {
            if (nodePointValue["Image"] == gim_photoData[i]["Image"]) {
                flag = true;
                break;
            }
        }
        if (flag == false) {
            gim_photoData[i] = nodePointValue;
            //codes below will adjust picture size to a given box.
            var myWidth, myHeight;
            var image = new Image();
            var iwidth = 96;
            var iheight = 72;
            if (nodePointValue["TITLE"] == "") {
            	iwidth = 200;
            	iheight = 150;
            }
            var imageWidth = parseInt(nodePointValue["Width"]);
            var imageHeight = parseInt(nodePointValue["Height"]);
            if (imageWidth > 0 && imageHeight > 0) {
                flag = true;
                if (imageHeight / imageWidth >= iheight / iwidth) {
                    if (imageHeight > iheight) {
                        myHeight = iheight;
                        myWidth = (imageWidth * iheight) / imageHeight;
                    } else {
                        myWidth = imageWidth;
                        myHeight = imageHeight;
                    }
                }

                else {
                    if (imageWidth > iwidth) {
                        myWidth = iwidth;
                        myHeight = (imageHeight * iwidth) / imageWidth;
                    } else {
                        myWidth = imageWidth;
                        myHeight = imageHeight;
                    }
                }
            }
			var title_comment = (nodePointValue["TITLE"] == "") ? "" : nodePointValue["TITLE"] + ": </b>" + nodePointValue["Comment"];
            //var scaleHeight = 96 * parseInt(nodePointValue["Height"]) / parseInt(nodePointValue["Width"]);
            var ContentValue = "<A href='" + nodePointValue["Image"] + "' target='_blank'><img src='" + nodePointValue["Thumbnail"].toString() + "' width='" + myWidth.toString() + "' height='" + myHeight.toString() + "' hspace='3' vspace='5' title='Click to see full size image.' align='right'/></br></a><b>" + title_comment;
            gim_windowOpen[gim_photoNum] = nodePointValue["Image"];
            if (nodePointValue["Uploader"].toString() == "Terrafly") {
                ContentValue = "<A href='http://vn4.cs.fiu.edu/cgi-bin/gnis.cgi?lat=" + nodePointValue["Latitude"] + "&long=" + nodePointValue["Longitude"] + "&tfaction=photos' target='_blank'><img src='" + nodePointValue["Thumbnail"].toString() + "' width='" + myWidth.toString() + "' height='" + myHeight.toString() + "' hspace='3' vspace='5' title='Click to see full size image.' align='right' /></br></a><b>" + title_comment;
                gim_windowOpen[gim_photoNum] = "http://vn4.cs.fiu.edu/cgi-bin/gnis.cgi?lat=" + nodePointValue["Latitude"] + "&long=" + nodePointValue["Longitude"] + "&tfaction=photos"
            }
            var latValue = parseFloat(nodePointValue["Latitude"]);
            var lonValue = parseFloat(nodePointValue["Longitude"]);
            //markers[photoNum] = layerImage.AddImgMarker( latValue , lonValue , nodePointValue["Tiny"], 20, 15, "0xFFFFFF", 2);//, ContentValue ,ImgWidth, ImgHeight);
            gim_markers[gim_photoNum] = gim_layerImage.AddImgMarker(latValue, lonValue, nodePointValue["Tiny"], "X_OFFSET=20;Y_OFFSET=15;BORDER_COLOR=0xFFFFFF;BORDER_WIDTH=2");
            gim_markerContents[gim_photoNum] = ContentValue;
            gim_SetMarkerListener(gim_photoNum);
            gim_photoNum++;
        }
    }
}

function gim_SetMarkerListener(number) {
    gim_markers[number].SetOnRolloverListener(
        function() {
            gim_markers[number].ShowInfoWindow("width = 200;height=150;border=noborder", "", gim_markerContents[number]);
        }
    );
    gim_markers[number].SetOnClickListener(
        function() {
            window.open(gim_windowOpen[number], "_blank");
        }
    );
}