(function(context,$) {

    "use strict";

    context.JK = context.JK || {};
    context.JK.SessionTrack = function(clientId) {
        var logger = context.JK.logger;
        var selectorTemplate = '[client-id="' + clientId + '"] [track-role="{role}"]';
        var parts = ['latency', 'vu', 'gain', 'mute', 'name', 'part', 'avatar'];
        var $parts = {};
        $.each(parts, function() {
            var selector = context.JK.fillTemplate(selectorTemplate, {role: this});
            $parts[this] = $(selector);
            //logger.debug(this + ":" + $parts[this]);
        });

        function events() {}

        /**
        * Set latency. val = [good,medium,bad]
         */
        this.setLatency = function(val) {
            $parts.latency.html(val);
        };

        /**
        * Set VU level. val = 0.0-1.0
        */
        this.setVolumeUnit = function(val) {
            $parts.vu.html(val);
        };

        /**
        * Set the track's gain. val = 0.0-1.0
        * Allows external control of channel fader.
        */
        this.setGain = function(val) {
            logger.debug('setGain:' + val);
            $parts.gain.html("Gain: " + val);
        };

        /**
        * Get the track's gain from current fader. Returns 0.0-1.0
        */
        this.getGain = function() {
            return $parts.gain.html().split("Gain: ")[1];
        };

        /**
        * Set whether this channel is muted. Takes a boolean where
        * true means mute, false, means unmuted.
        */
        function _mute(muted) {
        }

        /**
        * Return whether the channel is currently muted.
        */
        function _isMute() {
        }

        /**
        * Set the name (typically user name)
        */
        function _setName(name) {
        }

        /**
        * Set the part this user is performing. If part is
        * one of ENUM.FIGURE_ME_OUT then it is a recognized
        * part with an icon, otherwise it is an 'other' value
        * with a default icon.
        */
        function _setPart(part) {
        }

        /**
        * Set the channel's avatar. Typically the user's profile
        * avatar url.
        */
        function _setAvatar(avatar_url) {
        }

        this.initialize = function() {
            events();
        };

    };

 })(window,jQuery);