
function getMap()
{
	return parent.map.map;
}
function aboutMapGuide()
{
	getMap().aboutDLG();
}
function showScale(name)
{
	var map = getMap();
    // confirm ( "Scale is 1:" + map.getScale() + ".");
    // map.setScale(1200.0)
    var zoomScale = map.getScale();
    if (zoomScale > 1200)
    {
		if(confirm("Current zoom scale is 1:" + map.getScale() + "\nSet to 1:1000 to see " + name)) 
		{
			map.setAutoRefresh(false);
			map.setScale(1200.0);
			layerToggle(name);
			map.refresh();
		}
	}
	else
		layerToggle(name);
	map.setAutoRefresh(true);
}
function showLayerToggle()
{
	var map = getMap();
   
    if (map.LayersViewWidth > 1)
        map.LayersViewWidth = 1;
    else
        map.LayersViewWidth = 150;
}
function layerwarn(l_name)
{
	alert("This layer may take a few seconds to load");
	var map = getMap();
	var layer = map.getMapLayer(l_name);
	if (layer == null)
	alert("layer not found.");
	else
	{
		layer.setVisibility(!layer.getVisibility());
		map.refresh();
	}
}
function layerToggle(l_name)
{
	var map = getMap();
	var layer = map.getMapLayer(l_name);
	if (layer == null)
	alert("layer not found.");
	else
	{
		layer.setVisibility(!layer.getVisibility());
		map.refresh();
	}
}
function groupwarn(g_name)
{
	alert("This layer may take a few seconds to load");
	var map = getMap();
	var group = map.getMapLayerGroup(g_name);
	if (group == null)
	alert("Group not found.");
	else
	{
		group.setVisibility(!group.getVisibility());
		map.refresh();
	}
}

function groupToggle(g_name)
{
	var map = getMap();
	var group = map.getMapLayerGroup(g_name);
	if (group == null)
	alert("Group not found.");
	else
	{
		group.setVisibility(!group.getVisibility());
		map.refresh();
	}
}

function zoomTo(layerKey, layerName, zoomScaleFT)
{
	//alert(layerKey);
	//alert(layerName);
	var map = getMap();
	var ZoomScale = map.getScale()/700;  //some zoom scale
	
	var layer = map.getMapLayer(layerName);
	
	//get the object 
	var mapobj = layer.getMapObject(layerKey);
	
	map.setAutoRefresh(false);

	//Select object
	map.getSelection().clear();
	map.getSelection().addObject(mapobj,false);
	
	//Zoom Selected
	map.zoomSelected();
	//map.zoomOut();
	map.setWidth(zoomScaleFT, "FT");
	map.setAutoRefresh(true);
	map.refresh();	
	return;
}
function zoomToCanadInn()
{
	//alert(layerKey);
	var map = getMap();
	var ZoomScale = map.getScale()/700;  //some zoom scale
	
	var layer = map.getMapLayer("Parcels");
	
	//get the object 
	var mapobj = layer.getMapObject('1421.011.00');
	
	map.setAutoRefresh(false);

	//Select object
	map.getSelection().clear();
	map.getSelection().addObject(mapobj,false);
	
	//Zoom Selected
	map.zoomSelected();
	//map.zoomOut();
	map.setWidth(8500, "FT");
	map.getSelection().clear();
	map.setAutoRefresh(false);
	map.refresh();	
	return;
}
function zoomToAVLSimulation()
{
	//alert(layerKey);
	var map = getMap();
	var ZoomScale = map.getScale()/700;  //some zoom scale
	
	var layer = map.getMapLayer("Parcels");
	
	//get the object 
	var mapobj = layer.getMapObject('206315');
	
	map.setAutoRefresh(false);

	//Select object
	map.getSelection().clear();
	map.getSelection().addObject(mapobj,false);
	
	//Zoom Selected
	map.zoomSelected();
	//map.zoomOut();
	map.setWidth(2500, "FT");
	map.getSelection().clear();
	map.setAutoRefresh(true);
	map.refresh();	
	return;
}
function getCustomLiteviewPopup()
{
    var map = getMap();
    // Assign collection of selected features to variable
    var selected = map.getSelection().getMapObjectsEx(null);
    // If collection is not empty, step through its members
    if (selected.size() == 1)
    {
        // ...get name and extents
        name = selected.item(0).getName();
        ext = selected.item(0).getExtent();
        // ...and display alert showing lat/lon values for object's extents
        var txt = (ext.getMinLon()* 0.9999).toFixed(2) + "," + (ext.getMinLat()* 0.9999).toFixed(2) + "," + (ext.getMaxLon()*1.0001).toFixed(2) + "," + (ext.getMaxLat()*1.0001).toFixed(2);
        //alert(txt);
    }
    // If collection is empty, display alert
    else
        alert("Please select a parcel to purchase.");

    window.open("reports/Administrative/SetParcelBoundingBox.aspx?OBJ_KEYS=" + name + "&BB=" + txt, 'reports')
	return;
}
function getIEReport(reportUrl, keys)
{
	//alert(reportUrl);
	//alert(chr(39) + keys + chr(39));
	window.open(reportUrl + '?OBJ_KEYS=' + "'" + keys + "'", 'reports');
}
// This function is an alternative to the MapGuide reporting engine,
// and passes the object keys with the quotes.
// It is most usefull for working with keys that need to be textual.
function getCustomReport(reportUrl, layername)
{
	// alert(layername);
	var map = getMap();
	if (map.getSelection().getNumObjects() == 0)
	{
		alert ("Please make a selection first.");
		return;
	}
	var sel = map.getSelection();
	var keys = sel.getAsString(layername,"'");
	window.open(reportUrl + '?OBJ_KEYS=' + keys, 'reports');
}
// This function is an alternative to the MapGuide reporting engine,
// and passes the object keys without the quotes.
// It is most usefull for working with keys that need to be numeric.
function getCustomReportNumeric(reportUrl, layername)
{
	// alert(layername);
	var map = getMap();
	if (map.getSelection().getNumObjects() == 0)
	{
		alert ("Please make a selection first.");
		return;
	}
	var sel = map.getSelection();
	var keys = sel.getAsString(layername,"");
	window.open(reportUrl + '?OBJ_KEYS=' + keys, 'reports');
}
function getMultipleReports(reportRight, reportBottom, layername)
{
	var map = getMap();
	if (map.getSelection().getNumObjects() == 0)
	{
		alert ("Please make a selection first.");
		return;
	}
	var sel = map.getSelection();
	var keys = sel.getAsString(layername,"'");
	// alert(msg);
	window.open(reportRight + '?OBJ_KEYS=' + keys, 'right');
	window.open(reportBottom + '?OBJ_KEYS=' + keys, 'reports');
}
function refreshWorkOrders()
{	
	var map = getMap();
	var layer = map.getMapLayer("WM Valves");
	layer.setRebuild(true);
	map.refresh();
}
function refreshPProjects()
{	
	var map = getMap();
	var layer = map.getMapLayer("PProjects");
	layer.setRebuild(true);
	map.refresh();
}
function refreshSite()
{	
	var map = getMap();
	var layer = map.getMapLayer("Site Plans");
	layer.setRebuild(true);
	map.refresh();
}
function incrementCarPosition()
{
	var map = getMap();
	var layer = map.getMapLayer("AVL Simulation");
	var sqlWhere;
	var position;
	if (!map.isBusy()) 
	{	
		sqlWhere = layer.getSQLWhere();
		sqlWhere = sqlWhere.substring(13,layer.getSQLWhere().length);
		
		if ((parseInt(sqlWhere)) > 550)
		{
			position = 1;
			//alert(position);
		}
		else
		{
			position = parseInt(sqlWhere);
			//alert(position);
		}
		layer.setSQLWhere("FEATURE_ID = " + (parseInt(position) + 7));
		layer.setRebuild(true);
		map.refresh();
	}	
	return;
}
function trackCarPosition()
{
	var map = getMap();
	var layer = map.getMapLayer("AVL Simulation");
	var sqlWhere;
	var position;
	if (!map.isBusy()) 
	{	
		sqlWhere = layer.getSQLWhere();
		sqlWhere = sqlWhere.substring(13,layer.getSQLWhere().length);
		
		if ((parseInt(sqlWhere)) > 550)
		{
			position = 1;
			//alert(position);
		}
		else
		{
			position = parseInt(sqlWhere);
			//alert(position);
		}
		
		var ZoomScale = map.getScale()/700;  //some zoom scale
		
		//get the object 
		var mapobj = layer.getMapObject(position);
		//alert(position)
		map.setAutoRefresh(false);

		//Select object
		map.getSelection().clear();
		map.getSelection().addObject(mapobj,false);
		
		
		//Zoom Selected
		map.zoomSelected();
		//map.zoomOut();
		map.setWidth(1500, "FT");
		map.getSelection().clear();
		map.setAutoRefresh(true);
		//map.refresh();	
		
		layer.setSQLWhere("FEATURE_ID = " + (parseInt(position) + 7));
		layer.setRebuild(true);
		map.refresh();
		
		//alert(position);
	}	
	return;
}
function getReport(reportName)
{
	var myMap = getMap();
	//if (myMap.getSelection().getNumObjects() == 0)
	//{
		//alert ("Please make a selection first.");
		//return;
	//}
	//myMap.SetReportTarget("reports");
	myMap.viewReport(reportname);
}
function removeBuffers()
{
	// getMap().setAutoRefresh(false);
	getMap().removeMapLayer("Buffer");
}
function availableStyles()
{
	getMap().setAutoRefresh(false);
	getMap().removeMapLayer("Buffer");
	buffer();
	while (getMap().isBusy()) 
	{}
	while (getMap().isBusy() == false){
	 buffer2();
	 getMap().setAutoRefresh(true);
	 getMap().refresh();
	 }
}

function buffer()
{
	var map = getMap();
	map.removeMapLayer("Buffer");
	var buffSet = map.getBufferSetup();
	buffSet.setUnit('ft');
	var distance = prompt("Enter the buffer radius (ft)","250"); 
	// verify integer
	if(parseInt(distance) == distance-0 && distance > 0) {
		buffSet.setDistance(distance);
		buffSet.setLayerName("Buffer");
		buffSet.setOneObject(true);
		var edge = buffSet.getEdgeAttr();
		edge.setColor(4);
		edge.setStyle("Solid");
		edge.setThickness(3);
		edge.setVisible(true);
		var fill = buffSet.getFillAttr();
		fill.setStyle("Hatch");
		fill.setHatchPattern("Diagonal135");
		fill.setColor(5);
		map.viewBuffer();		
	}
	// otherwise give error
	else {
		alert('Please enter a positive integer for the buffer radius.');
	}
	return;
}
		
function buffer2()
{
	var map = getMap();
    var MyBuffLayer = map.getMapLayer("Buffer");
	var MySelection = map.getSelection();
    //MySelection.clear();
    //var BuffObjs = MyBuffLayer.getMapObjectsEx();
    //MySelection.addObjectsEx(BuffObjs, true);
    var CurScale = map.getScale();                
    var SelLayer = map.getMapLayer("Parcels");
	map.setSelectionMode("Intersection") 
    //var ReportName = "Notification";
    var LayerCol = map.createObject("MGCollection");
    LayerCol.add(SelLayer);
    map.selectWithin(LayerCol);
    //map.viewReport(ReportName);
	map.setAutoRefresh (false)
	var theLayer = map.getMapLayer('Buffer');
	//theLayer.setVisibility(true);
	//theLayer.setShowInLegend(true);
	map.setAutoRefresh (true)
	map.refresh();
}

function enable_printey_vents()
{
	var map = getMap();
	map.enablePrintingEvents();
}

function printmap(map)
{
		alert("This will print only the map. If you want to have a legend, North arrrow, Etc. Right click the map and go to -Print, -Page Setup");

	var map = getMap();
	var pgSetup = map.getPageSetup();
		pgSetup.setInclude("mg_legend", false);
		pgSetup.setInclude("mg_northarrow", false);
		pgSetup.setInclude("mg_scalebar", false);
		pgSetup.setInclude("mg_title", false);
		pgSetup.setInclude("mg_timestamp", false);
		pgSetup.setInclude("mg_url", false);
		pgSetup.setInclude("mg_legend", false);
		map.printdlg();
}


function runreport(r_name)
{
	var map = getMap();
	var report = map.viewreport(r_name);

}
function disclaimer()
{
		alert("This will print only the map. If you want to have a legend, North arrrow, Etc. Right click the map and go to -Print, -Page Setup");

}
