﻿var njs;
if (!njs) njs = {}

njs.RadioSet = function(/*[]*/radios) {
    this._radios = (!(radios instanceof Array)) ? this._getRadios(radios) : radios || [];
    this._onInvoke = [];
}
njs.RadioSet.prototype.AddRadio = function(/*object*/radio) {
    radio.SetRadioSet(this);
    this._radios[this._radios.length] = radio;
}
njs.RadioSet.prototype.Invoke = function(/*object*/radio) {
    for (var i = 0; this._radios[i]; i++) {
        this._radios[i].IsActive = (radio === this._radios[i]);
        (this._radios[i].IsActive)
            ? this._radios[i].OnActive() 
            : this._radios[i].OnInactive();
    }
    for (var i = 0; this._onInvoke[i]; i++) {
        this._onInvoke[i]();
    }
}
njs.RadioSet.prototype.Clear = function() {
    this.Invoke(null);
}
njs.RadioSet.prototype.AddOnInvoke = function(/*function*/func) {
    this._onInvoke[this._onInvoke.length] = func;
}
njs.RadioSet.prototype._getRadios = function(/*{}*/obj) {
    var returnValue = [];
    for (var n in obj) { returnValue[returnValue.length] = obj[n]; }
    return returnValue;
}
