function Circulo() {
    this.center = {}          // LatLng The center
    this.clickable = true;    // boolean Indicates whether this Circle handles mouse events. Defaults to true.
    this.editable = true;     // boolean If set to true, the user can edit this circle by dragging the control points
    //                                    shown at the center and around the circumference of the circle. Defaults to false.
    this.fillColor = "#111";      // string The fill color. All CSS3 colors are supported except for extended named colors.
    this.fillOpacity = 0;     // number The fill opacity between 0.0 and 1.0
    this.map = {};            // Map Map on which to display Circle.
    this.radius = 0;          // number The radius in meters on the Earth's surface
    this.strokeColor = "";    // string The stroke color. All CSS3 colors are supported except for extended named colors.
    this.strokeOpacity = 0;   // number The stroke opacity between 0.0 and 1.0
    this.strokePosition = {}; // StrokePosition The stroke position. Defaults to CENTER.
    //                                    This property is not supported on Internet Explorer 8 and earlier.
    this.strokeWeight = 0;    // number The stroke width in pixels.
    this.visible = true       // boolean Whether this circle is visible on the map. Defaults to true.
    this.zIndex = 0;          // number The zIndex compared to other polys.
}

function CirculoTerminal(o) {
    this.clickable = true;
    this.fillOpacity = 0.4;
    this.strokeColor = o.cor;
    this.strokeOpacity = 1.0;
    this.strokeWeight = 2.0;
    this.zIndex = 1;
    this.center = o.centro;
    this.radius = o.raio;
}

function CirculoTerminalPontoControle(o) {
    this.clickable = true;
    this.fillOpacity = 0.4;
    this.strokeColor = o.cor;
    this.strokeOpacity = 1.0;
    this.strokeWeight = 2.0;
    this.zIndex = 2;
    this.center = o.centro;
    this.radius = o.raio;
    this.editable = o.editable;
}


function CirculoSelecao(o) {
    this.clickable = true;
    this.fillOpacity = 0.8;
    this.strokeColor = "#CCCCCC";
    this.fillColor = "#FF0000";
    this.strokeOpacity = 1.0;
    this.strokeWeight = 1;
    this.zIndex = 1;
    this.center = o.centro;
    this.radius = o.raio;
}

CirculoTerminal.prototype = Circulo;
CirculoSelecao.prototype = Circulo;

function CriarCirculo(options) {
    return new google.maps.Circle(options);
}