﻿
function Styles(iBaseClass)
{
    var This = this;

    // Data members
    This.Classes = {};
    This.BaseClass = iBaseClass;
    This.Default = iBaseClass;

    // Methods
    This.Set = function(iName, iClass)
    { This.Classes[iName] = iClass; }

    This.Unset = function(iName)
    { throw "Not implemented"; }

    This.Get = function(iName)
    {
        if (iName == null)
            return This.Default;
        else if (typeof iName == 'object')
        {
            var classes = '';
            for (var i = 0; i < iName.length; i++)
                classes += ((i) ? ' ' : '') + This.Get(iName[i]);
            return classes;
        }
        else
        {
            if (defined(This.Classes[iName]))
                return This.Classes[iName];
            else
                return This.BaseClass + '-' + iName;
        }
    }

    // Initialize
    {
        This.BaseClass = (iBaseClass) ? iBaseClass : '';
        This.Default = (iBaseClass) ? iBaseClass : '';
    }
}
