bqc.unitToggler = {

    members: {},

    addMember: function(member) {
        bqc.ut.members[member.id] = member;
        if (bqc.params.p_unit == 'mi') {
            member.setToMiles();
        } else {
            member.setToKM();
        }
    },

    removeMember: function(member) {
        if (member != null) {
            delete bqc.ut.members[member.id];
        }
    },

    applyDistances: function() {
        for (var key in bqc.ut.members) {
            bqc.ut.members[key].applyDistances();
        }
    },

    setTo: function(unit, setter) {
        bqc.params.p_unit = unit;
        for (var key in bqc.ut.members) {
            setter(bqc.ut.members[key])
        }
        bqc.ut.applyDistances();
    },

    setToKM: function() {
        bqc.ut.setTo('km', function(member) {
            member.setToKM();
        });
    },

    setToMiles: function() {
        bqc.ut.setTo('mi', function(member) {
            member.setToMiles();
        });
    }
}
bqc.ut = bqc.unitToggler;
