﻿var bufferToolbarPane;
var bufferResultsPane;

function ncsStartBuffer(bufferType, bufferDistance, showToolbar)
{
    if (!bufferToolbarPane)
    {
        bufferToolbarPane = new Ext.Window({
            id:'bufferToolbarPane',
            layout:'fit',
            width:650,
            height:75,
            closeAction:'hide',
            plain: true,
            contentEl: 'BufferToolbarContainer',
            title: 'Buffer/Select',
            resizable: false
        });
        bufferToolbarPane.on('hide', function(){
//                                FCMapsResults_Buffer1.ClearResults();
                                ncsSetActiveTool('Toolbar1', 'MapPan', 'Tool');
                                BufferToolbar.IsBufferToolClick(false);
                            },
                            this,
                            {
                                single:false
                            }
                        );
        bufferToolbarPane.on('minimize', MinimizeWindow, bufferToolbarPane);
        bufferToolbarPane.show();        
    }
    else
    {
        bufferToolbarPane.show();
    } 
    
    BufferToolbar.Init();
}
var m_bufferGraphicFeature;
function removeBufferGraphic() {
    var map = $find('Map1');
    if (m_bufferGraphicFeature != null) {
        map.removeGraphic(m_bufferGraphicFeature);
        m_bufferGraphicFeature.dispose();
        m_bufferGraphicFeature = null;
    }

}
// Handler for BufferFeaturePoint clicks
function BufferFeatureMapCoords(geom, e) {
    ShowBufferWorking();
    
    var map = $find('Map1');
    var geomString = '';
    var type = '';
    removeBufferGraphic();
    var style = null;
    if (ESRI.ADF.Geometries.Point.isInstanceOfType(geom)) {
        geomString = geom.toString(':');
        type = 'point';
        style = new ESRI.ADF.Graphics.MarkerSymbol("images/crosshair.png", 6, 6);
    }
    else if (ESRI.ADF.Geometries.Polyline.isInstanceOfType(geom)) {
        geomString = geom.getPath(0).toString('|', ':');
        type = 'polyline';
        style = new ESRI.ADF.Graphics.LineSymbol("black", 2);
    }
    else if (ESRI.ADF.Geometries.Polygon.isInstanceOfType(geom)) {
        geomString = geom.getRing(0).toString('|', ':');
        type = 'polygon';
        style = new ESRI.ADF.Graphics.FillSymbol("black", "black", 2);
        style.set_opacity(0.2);
    }
    m_bufferGraphicFeature = $create(ESRI.ADF.Graphics.GraphicFeature,
		        { "id": "MeasurePointIcon", "geometry": geom, "symbol": style });
    map.addGraphic(m_bufferGraphicFeature);
    coordString = geomString;
    var radius = BufferToolbar.BufferRadius();
    var units = 'feet';
    var layername = BufferToolbar.BufferLayer();

    var argument = bufferFeatureDelimiter + "eventarg=point" + bufferFeatureDelimiter + "coord=" + coordString + bufferFeatureDelimiter + "radius=" + radius + bufferFeatureDelimiter + "units=" + units + bufferFeatureDelimiter + "layername=" + layername + bufferFeatureDelimiter;
    var context = map.controlName + ",point";
    eval(bufferCallbackFunctionInvocationString);
    
//	var vo = map.vectorObject;
//	var pix = vo.pixelObject;
//	var xycoord = vo.xyCoord;
//	getXY(e);
//	zleft = mouseX - map.containerLeft;
//	ztop = mouseY - map.containerTop;
//	vo.clear();
//	vo.crosshair(zleft, ztop);
//	vo.draw();
//	
//    // Draw the point on the screen
//    var vo = map.vectorObject;
//    var pix = vo.pixelObject;
//    var xycoord = vo.xyCoord;
//    getXY(e);
//    zleft = mouseX - map.containerLeft;
//    var box = calcElementPosition('Map1');
//    ztop = mouseY - box.top;
//    vo.clear();
//    vo.crosshair(zleft, ztop);
//    vo.draw();

//    map.xMin = zleft;
//    map.yMin = ztop;
//    map.getTopLeftTile();
//    
//    coordString = zleft + ":" + ztop;
//        
//    var radius = BufferToolbar.BufferRadius();
//    var units = 'feet';
//    var layername = BufferToolbar.BufferLayer();
//        
//    var argument = bufferFeatureDelimiter + "eventarg=point" + bufferFeatureDelimiter + "x=" + zleft + bufferFeatureDelimiter + "y=" + ztop + bufferFeatureDelimiter + "radius=" + radius + bufferFeatureDelimiter + "units=" + units + bufferFeatureDelimiter + "layername=" + layername + bufferFeatureDelimiter;
//    var context = map.controlName + ",point";
//    eval(bufferCallbackFunctionInvocationString);
}

