﻿// JScript File

dojo.addOnLoad(ZoomSetup);

function ZoomSetup()
{

    points = new Array(new VELatLong(32.98562797456919,-97.20462799072267), 
        new VELatLong(32.98562797456919,-97.07656860351564), 
        new VELatLong(32.909568110575655,-97.07656860351564), 
        new VELatLong(32.909568110575655,-97.20462799072267)
        );
    zoomShape = new VEShape(VEShapeType.Polygon, points);
    zoomShape.HideIcon();
    zoomShape.SetLineWidth(2);
    zoomShape.SetLineColor(new VEColor(150,150,150,0.0));
    zoomShape.SetFillColor(new VEColor(0,150,100,0.0));
    
    
    ZoomLayer01 = new VEShapeLayer();
    ZoomLayer01.SetTitle("ZoomLayer01");
    ZoomLayer01.AddShape(zoomShape);
    map.AddShapeLayer(ZoomLayer01);        


}

function ZoomToolClick(evnt)
{
    if (this.checked)
    {
        map.AttachEvent("onmousedown", zoomInStart);
        map.AttachEvent("onmousemove", zoomInBox);
        map.AttachEvent("onmouseup", zoomInEnd);
        document.getElementById("mymap").childNodes[0].style.cursor = "crosshair";
    
        
    }
    else
    {
        detachTools();
    }
}


function detachTools()
{
    document.getElementById("mymap").childNodes[0].style.cursor = "";
    map.DetachEvent("onmousedown", zoomInStart);
    map.DetachEvent("onmousemove", zoomInBox);
    map.DetachEvent("onmouseup", zoomInEnd);
}


var zoomShape   = null;
var ZoomPixel1 = null;
var ZoomPixel2 = null;
var ZoomStartLatLong = null;
var points = null;
var ZoomLayer01 = null;
var drawing = false; 

function zoomInStart(mapEvent)
{
    if (mapEvent.leftMouseButton)
    {
        if (zoomShape)
        {
            ZoomPixel1 = new VEPixel(mapEvent.mapX, mapEvent.mapY);
            ZoomStartLatLong = map.PixelToLatLong(ZoomPixel1);
            ZoomPixel2 = new VEPixel(mapEvent.mapX+1, mapEvent.mapY+1);
            var ZoomCurrentLatLong = map.PixelToLatLong(ZoomPixel2);

            var points = new Array(ZoomStartLatLong, new VELatLong(ZoomStartLatLong.Latitude,ZoomCurrentLatLong.Longitude),ZoomCurrentLatLong, new VELatLong(ZoomCurrentLatLong.Latitude,ZoomStartLatLong.Longitude) );
            try
            {
                zoomShape.SetPoints(points);
                zoomShape.SetLineColor(new VEColor(150,150,150,1.0));
            }
            catch(err)
            {
                var desc = err.description ;

                map.DeleteShapeLayer(ZoomLayer01);

                zoomShape = new VEShape(VEShapeType.Polygon, points);
//                zoomShape.HideIcon();
//                zoomShape.SetLineWidth(2);
//                zoomShape.SetLineColor(new VEColor(150,150,150,0.0));
//                zoomShape.SetFillColor(new VEColor(0,150,100,0.0));
                

                ZoomLayer01 = new VEShapeLayer();
                ZoomLayer01.SetTitle("ZoomLayer01");
                ZoomLayer01.AddShape(zoomShape);
                map.AddShapeLayer(ZoomLayer01);        

            }

                
        }
        drawing = true;
        return true;
    }

}

function zoomInBox(mapEvent)
{
    if (drawing)
    {
        if (mapEvent.leftMouseButton)
        {
            if (zoomShape)
            {
                ZoomPixel2 = new VEPixel(mapEvent.mapX, mapEvent.mapY);
                var ZoomCurrentLatLong = map.PixelToLatLong(ZoomPixel2);

                var points = new Array(ZoomStartLatLong, new VELatLong(ZoomStartLatLong.Latitude,ZoomCurrentLatLong.Longitude),ZoomCurrentLatLong, new VELatLong(ZoomCurrentLatLong.Latitude,ZoomStartLatLong.Longitude) );
                try
                {
                    zoomShape.SetPoints(points);
                }
                catch(err)
                {
                    var desc = err.description ;
                    
                    map.DeleteShapeLayer(ZoomLayer01);

                    zoomShape = new VEShape(VEShapeType.Polygon, points);
//                    zoomShape.HideIcon();
//                    zoomShape.SetLineWidth(2);
//                    zoomShape.SetLineColor(new VEColor(150,150,150,0.0));
//                    zoomShape.SetFillColor(new VEColor(0,150,100,0.0));


                    ZoomLayer01 = new VEShapeLayer();
                    ZoomLayer01.SetTitle("ZoomLayer01");
                    ZoomLayer01.AddShape(zoomShape);
                    map.AddShapeLayer(ZoomLayer01);        
                }
            }

            
            
            
            return true;
        }
    }
}

function zoomInEnd(mapEvent)
{
    if (drawing)
    {
        if (mapEvent.leftMouseButton)
        {
            ZoomPixel2 = new VEPixel(mapEvent.mapX, mapEvent.mapY);
            var ZoomCurrentLatLong = map.PixelToLatLong(ZoomPixel2);
            var points = new Array(ZoomStartLatLong, new VELatLong(ZoomStartLatLong.Latitude,ZoomCurrentLatLong.Longitude),ZoomCurrentLatLong, new VELatLong(ZoomCurrentLatLong.Latitude,ZoomStartLatLong.Longitude) );
            map.SetMapView(points);
            drawing = false;
                try
                {
                    zoomShape.SetLineColor(new VEColor(150,150,150,0.0));
                }
                catch(err)
                {
                    var desc = err.description ;
                }
            return true;

        }
    }

}
