﻿GbgMap = {
    UI: {},
    API: {
        Configuration: {},
        Actions: {},
        Search: {}
    },
    Resources: {},
    PortalConfiguration: {}
}

GbgMap.createConfiguration = function (portalConfiguration, resources, configurationCreatedCallback) {

    if (portalConfiguration != null && resources != null) {

        GbgMap.API.Configuration = {};

        var c = GbgMap.API.Configuration;
        var pc = portalConfiguration;
        var r = resources;

        c.mapDiv = pc.mapDiv;

        c.width = pc.width;

        c.height = pc.height;

        c.layoutType = pc.layoutType;

        c.mouseMapControls = pc.mouseMapControls;

        c.mapSettings = r.mapSettings;

        c.bgLayers = [];

        for (var i = 0; i < pc.bgLayers.length; i++) {
            for (var j = 0; j < r.bgLayers.length; j++) {
                if (pc.bgLayers[i] == r.bgLayers[j].name) {
                    c.bgLayers.push(r.bgLayers[j]);
                }
            }
        }

        c.startBgLayer = pc.startBgLayer;

        c.startXY = pc.startXY;

        c.startZoomLevel = pc.startZoomLevel;

        /*c.searchLayers = [];

        for (var i = 0; i < pc.searchLayers.length; i++) {
            for (var j = 0; j < r.datasets.length; j++) {
                if (pc.searchLayers[i] == r.datasets[j].name) {
                    c.searchLayers.push(r.datasets[j]);
                }
            }
        }

        c.publicLayers = [];

        for (var i = 0; i < pc.publicLayers.length; i++) {
            for (var j = 0; j < r.datasets.length; j++) {
                if (pc.publicLayers[i] == r.datasets[j].name) {
                    c.publicLayers.push(r.datasets[j]);
                }
            }
        }*/

        c.featureUrl = pc.featureUrl;

        if (configurationCreatedCallback) {
            configurationCreatedCallback(c);
        }
    }
}

GbgMap.getDatasetById = function (datasetId) {

    if (GbgMap.Resources != null) {

        for (var i = 0; i < GbgMap.Resources.datasets.length; i++) {

            if (GbgMap.Resources.datasets[i].name == datasetId) {
                return GbgMap.Resources.datasets[i];
            }
        }
    }
}
