﻿function doMeasure(geometry){

    if( geometry.type != "polygon" ){
        doMeasureByLine(geometry);
    }else{
    
        geometry.spatialReference = map.spatialReference;

        var geometryService = new esri.tasks.GeometryService(geometryServiceUrl);
        
        dojo.connect(geometryService, "onAreasAndLengthsComplete", function(result) {
            //dojo.byId("distance").value = dojo.number.format(result.lengths[0]);
        dojo.byId("distance").innerHTML = Math.floor(result.lengths[0]);
        dojo.byId("area").innerHTML = Math.floor(result.areas[0]);
        });

        identifyLayer.clear();
        var graphic = identifyLayer.add(new esri.Graphic(geometry, new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_NONE, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_NONE, new dojo.Color([255,0,0]), 2), new dojo.Color([255,0,0,0.25]))));
        
        geometryService.simplify([graphic], function(graphics) {
            geometryService.areasAndLengths(graphics);
        });
    }
}

function doMeasureByLine(geometry){

    var geometryService = new esri.tasks.GeometryService(geometryServiceUrl);

    dojo.connect(geometryService, "onLengthsComplete", function(result) {
        dojo.byId("distance").innerHTML = Math.floor(result.lengths[0]);
        dojo.byId("area").innerHTML = "";
    });
    dojo.connect(geometryService, "onProjectComplete", function(graphics) {
      //call GeometryService.lengths() with projected geometry
      geometryService.lengths(graphics);
    });

    identifyLayer.clear();
    var graphic = identifyLayer.add(new esri.Graphic(geometry, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_NONE, new dojo.Color([255,255,255]), 1)));
    //add graphic to the map and then call GeometryService.project() to get graphic into a coordinate system that
    //can be used to generate an accurate length.
    geometryService.project([graphic],map.spatialReference);
}

function toggleMeasureBox( pShow ){
	if ( !pShow ) {
		dojo.query('#measurebox').style('display','none');
	}else{
		dojo.query('#measurebox').style('display','block');
	}
}