﻿var _srlManager;

var com = {};
com.timmons = {};
com.timmons.srl = {};

//$(document).ready(function() {

//    _srlManager = new com.timmons.srl.srlManager();

//    _srlManager.initialize();
//    //$("#srlRequestAccordion").accordion('disable');

//});

/* SRL manager which contains the map controller and the interaction controller */

com.timmons.srl.srlManager = function() {

    //Declare private properties here
    
    var _mapManager; // map view
    var _dataManager; // Data Manager
    var _interactionManager; // The rest of the view
    var _configurationSettings = null;  //20090915 nvs

    // Private Methods here

    var _initialize = function() {
        
        _mapManager = new com.timmons.srl.mapManager();        

        _dataManager = new com.timmons.srl.dataManager();
        _dataManager.initialize();

        _interactionManager = new com.timmons.srl.InteractionManager();
        _interactionManager.initialize(_mapManager, _dataManager, _configurationSettings);  //20090915 nvs

        //_getConfigurationSettings();  //20090915 nvs
        _mapManager.initialize(_configurationSettings);  //20090915 nvs
        
    };

    var _getConfigurationSettings = function() {        
        //_dataManager.getDefaultMapSettings(this._setDefaultMapSettings, _setDefaultMapSettings);  //20090915 nvs
        return _configurationSettings;
    };
    var _setConfigurationSettings = function(configurationSettings){
        
        _configurationSettings = configurationSettings;
        
        switch(_configurationSettings.apiType){
            case "Google":
                initializeGoogleMap(configurationSettings);
                break;
            case "ESRI":
                initializeESRIMap(configurationSettings);
                break;
            default:
                break;                
        }        
    }
//    var _setDefaultMapSettings = function(defaultMapSettings) {  //20090915 nvs
//        
//        _mapManager.initialize(defaultMapSettings); // new request map
//        initializeGoogleMap(defaultMapSettings); // find requests map - need to change
//    };
    
    return {
        //Declare public properties here
        //Declare public methods here
        initialize: function() {
            _initialize();
        },
        getConfigurationSettings : function(){  //20090915 nvs
            return _getConfigurationSettings();
        },
        setConfigurationSettings : function(configurationSettings){  //20090915 nvs
            _setConfigurationSettings(configurationSettings);
        },
        getInteractionManager : function(){
            return _interactionManager;
        }
    };
};

