var flexApp = null;
var pictometry = null;
var proxy;
var tileServer;
var latitude;
var longitude;
var saveTool;
var printTool;
var updateTool;
var clearTool;
var imageWidth;
var imageHeight;
var mapLayersOn;
var printTitle;
var wfsLayers;
var activeTool;
var level;
var type;
var orientation;
var position;
var imageCenterX;
var imageCenterY;
var zoomScale;

function Close()
{
	pictometry.Close();
}

function setLatLon(lat, lon)
{
	latitude = lat;
	longitude = lon;
};

function setScale(scale)
{
	zoomScale = scale;
}

function getImages(lat, lon)
{
	//alert("lat,lon = " + lat + "," + lon);
	//alert("pictometry.js - pictometry = " + pictometry);
	pictometry.getImages(lat, lon);
};

function setFlexApp(objectID)
{
    var rc = false;
    try
    {
        if (navigator.appName.indexOf("Microsoft") == -1)
        {
            flexApp = window[objectID];
            if (flexApp == null)
            {
                flexApp = document.getElementById(objectID);
            }
        }
        else
        {
            flexApp = document[objectID];
        }
        rc = true;
    }
    catch(e)
    {
        alert(e.message);
    }
    return rc;
};

function setConstants(data)
{
	proxy         = data.proxy;
	tileServer    = data.tileserver;
	latitude      = data.lat;
	longitude     = data.lon;
	saveTool      = data.save;
	printTool     = data.print
	updateTool    = data.update;
	clearTool     = data.clear;
	imageWidth    = data.width;
	imageHeight   = data.height;
	mapLayersOn   = data.maplayerson;
	printTitle    = data.printtitle;
	wfsLayers     = data.wfslayers;
}

function moveSymbol(x, y, heading)
{
	//alert("moveSymbol x = " + x + " y = " + y + " heading = " + heading);
	flexApp.moveSymbol(x, y, heading);
};

function updateSymbolOrBoundingBox(centerPoint, boundingBox, heading)
{
	//alert("updateSymbolOrBoundingBox heading = " + heading);
	flexApp.updateSymbolOrBoundingBox(centerPoint, boundingBox, heading);
};

// called by Flex to set the size in response to the small, medium, or large radio button
function changeSize(sizeOld, sizeNew)
{
	// sizeOld and sizeNew are point objects containing the width & height of the old and new image areas
	pictometry.changeSize(sizeOld, sizeNew);
}

// called by Flex to set the scale in response to the zoom slider being changed
function changeScale(scaleNew)
{
	pictometry.changeScale(scaleNew);
}

// called by Flex to set the measureing tool (or "NoTool")
function setMeasureTool(tool)
{
	pictometry.setMeasureTool(tool);
}

function setMapLayerVisibility(isVisible)
{
	pictometry.setMapLayerVisibility(isVisible);
}
