function FerramentaConfiguracaoMarkers(data) {
    var mSelf = this;

    mSelf.Data = ko.observable(new FerramentaConfiguracaoMarkersData(data.Data));

    mSelf.FerramentaId = data.FerramentaId;

    mSelf.Template = data.Template;

    mSelf.Nome = data.Nome;

    mSelf.Titulo = data.Titulo;

    mSelf.Ordem = 2;

    mSelf.Icone = data.Icone;

    mSelf.Init = function () {
        mSelf.Data().Init();
    };
}

function FerramentaConfiguracaoMarkersData(data) {
    var mSelf = this;

    mSelf.Deslize = data.Deslize;

    mSelf.Agrupamento = data.Agrupamento;

    mSelf.ListaAgrupamento = ko.observableArray([5, 10, 15]);
    mSelf.ListaDeslize = ko.observableArray([10, 20, 30, 40, 50]);

    if (mSelf.ListaAgrupamento.indexOf(mSelf.Agrupamento()) < 0)
        mSelf.Agrupamento(5);

    if (mSelf.ListaDeslize.indexOf(mSelf.Deslize()) < 0)
        mSelf.Deslize(50);

    mSelf.Init = function () {
        mSelf.SetarConfiguracoesMapa();
    };

    mSelf.AplicarConfiguracao = function () {
        mSelf.SetarConfiguracoesMapa();
        mSelf.SalvarConfiguracoesVeiculosMarkers();
    };

    mSelf.SetarConfiguracoesMapa = function () {
        vm.Perspectiva.SetoresMapa.Mapa.AlterarConfiguracoesMarkers(true, mSelf.Agrupamento(), 19, mSelf.Deslize());
        vm.Perspectiva.SetoresMapa.Mapa.RefreshCluster();
    };

    mSelf.SalvarConfiguracoesVeiculosMarkers = function () {
        var configuracoes = ko.toJSON(mSelf);

        var url = urlGlobal + "SetoresShape/SetoresShape/SalvarConfiguracoesVeiculosMarkers";
        $(".loading-div").fadeIn();
        $.ajax({
            url: url,
            contentType: 'application/json; charset=utf-8',
            dataType: "json",
            type: "POST",
            data: configuracoes,
            success: function (data) {
                vm.ShowMensagemSucesso("Configurações salvas com sucesso.");
            },
            complete: function () {
                $(".loading-div").fadeOut();
            },
            error: function () {
                vm.ShowMensagemErro("Ocorreu algum erro ao salvar as configurações!");
            }
        });
    };
}