# See: http://wiki.flightgear.org/MapStructure
# Class things:
var name ='VOR-g1000';
var parents = [SymbolLayer.Controller];
var __self__ = caller(0)[0];
SymbolLayer.Controller.add(name, __self__);
SymbolLayer.add(name, {
    parents: [NavaidSymbolLayer],
    type: name, # Symbol type
    df_controller: __self__, # controller to use by default -- this one
    df_options: {
        nav1_frq: 'instrumentation/nav/frequencies/selected-mhz',
        nav2_frq: 'instrumentation/nav[1]/frequencies/selected-mhz'
    },
    df_style: {
        scale: 1
    }
});
var new = func(layer) {
    var m = {
        parents: [__self__],
        layer: layer,
        map: layer.map,
        active_vors: [],
        navNs: props.globals.getNode("instrumentation").getChildren("nav"),
        listeners: [],
        query_type:'vor',
    };
    setsize(m.active_vors, size(m.navNs));
    foreach (var navN; m.navNs) {
        append(m.listeners, setlistener(
               navN.getNode("frequencies/selected-mhz"),
            func m.changed_freq()
        ));
    }
    #call(debug.dump, keys(layer));
    m.changed_freq(update:0);
    m.addVisibilityListener();

    return m;
};
var del = func() {
    logprint(_MP_dbg_lvl, name,".lcontroller.del()");
    foreach (var l; me.listeners)
    removelistener(l);
};

# Controller methods
var isActive = func(model) {
    var my_freq = model.frequency/100;
    foreach (var freq; me.active_vors)
    if (freq == my_freq) return 1;
    return 0;
};
var changed_freq = func(update=1) {
    #debug.dump(me.active_vors);
    foreach (var navN; me.navNs)
    me.active_vors[ navN.getIndex() ] = navN.getValue("frequencies/selected-mhz");
    if (update) me.layer.update();
};

var searchCmd = NavaidSymbolLayer.make('vor');