vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
--[[
        Auctioneer Addon for World of Warcraft(tm).
        Version: 3.9.0.1000 (Kangaroo)
        Revision: $Id: AucCommand.lua 994 2006-09-07 01:30:33Z mentalpower $

        Auctioneer command functions.
        Functions to allow setting of values, switching commands etc.

        License:
                This program is free software; you can redistribute it and/or
                modify it under the terms of the GNU General Public License
                as published by the Free Software Foundation; either version 2
                of the License, or (at your option) any later version.

                This program is distributed in the hope that it will be useful,
                but WITHOUT ANY WARRANTY; without even the implied warranty of
                MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                GNU General Public License for more details.

                You should have received a copy of the GNU General Public License
                along with this program(see GPL.txt); if not, write to the Free Software
                Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
]]

--Local function prototypes
local register, convertKhaos, getKhaosDefault, setKhaosSetKeyParameter, setKhaosSetKeyValue, getKhaosLocaleList, getKhaosDurationsList, getKhaosProtectionList, getKhaosFinishList, registerKhaos, buildCommandMap, commandMap, commandMapRev, command, chatPrintHelp, onOff, clear, alsoInclude, isValidLocale, setLocale, default, getFrameNames, getFrameIndex, setFrame, protectWindow, auctionDuration, finish, genVarSet, percentVarSet, numVarSet, setFilter, getFilterVal, getFilter, findFilterClass, setFilter, getLocale


function register()
        if (Khaos) then
                if (not Auctioneer_Khaos_Registered) then
                        registerKhaos();
                end
        end
end

-- Convert a single key in a table of configuration settings
function convertConfig(t, key, values, ...) --Local
        local modified = false;
        local v = nil;

        for i,localizedKey in ipairs(arg) do
                if (t[localizedKey] ~= nil) then
                        v = t[localizedKey];
                        t[localizedKey] = nil;
                        modified = true;
                end
        end
        if (t[key] ~= nil) then v = t[key]; end

        if (v ~= nil) then
                if (values[v] ~= nil) then
                        t[key] = values[v];
                        modified = true;
                else
                        t[key] = v;
                end
        end

        return modified;
end

-- Convert Khaos options to standardized keys and values
function convertKhaos()
        if (not Khaos_Configurations) then return; end

        -- Array that maps localized versions of strings to standardized
        local convertOnOff = {  ['apagado'] = 'off',    -- esES
                                                        ['prendido'] = 'on',    -- esES
                                                        }

        local localeConvMap = { ['apagado'] = 'default',
                                                        ['prendido'] = 'default',
                                                        ['off'] = 'default',
                                                        ['on'] = 'default',
                                                        }

        -- Format: standardizedKey,                     valueMap,               esES,                                           localizedKey
        local conversions = {
                        -- Localized stuff to get rid of
                        { 'show-warning',                       convertOnOff,   'ver-advertencia' },
                        { 'show-verbose',                       convertOnOff,   'ver-literal' },
                        { 'show-stats',                         convertOnOff,   'ver-estadisticas'},
                        { 'show-average',                       convertOnOff,   'ver-promedio' },
                        { 'show-median',                        convertOnOff,   'ver-mediano' },
                        { 'show-suggest',                       convertOnOff,   'ver-sugerencia' },
                        { 'embed',                                      convertOnOff,   'integrado' },
                        { 'show-embed-blankline',       convertOnOff,   'ver-integrado-lineavacia' },
                        { 'pct-bidmarkdown',            convertOnOff,   'pct-menosoferta' },
                        { 'pct-markup',                         convertOnOff,   'pct-mas' },
                        { 'pct-maxless',                        convertOnOff,   'pct-sinmaximo' },
                        { 'pct-nocomp',                         convertOnOff,   'pct-sincomp' },
                        { 'pct-underlow',                       convertOnOff,   'pct-bajomenor' },
                        { 'pct-undermkt',                       convertOnOff,   'pct-bajomercado' },
                        { 'autofill',                           convertOnOff,   'autoinsertar' },
                        { 'show-link',                          convertOnOff,   'ver-enlace' },

                        -- Changed key names
                        { 'locale',                                     convertOnOff,   'AuctioneerLocale' },
                        { 'printframe',                         convertOnOff,   'AuctioneerPrintFrame' },
                        { 'also',                                       convertOnOff,   'AuctioneerInclude' },
                        { 'enabled',                            convertOnOff,   'AuctioneerEnable' },
                }

        -- Prepend placeholder for the table parameter
        for i,c in ipairs(conversions) do
                table.insert(c, 1, nil)
        end

        for i,config in ipairs(Khaos_Configurations) do
                if (config.configuration and config.configuration.Auctioneer) then
                        local converted = false;
                        -- Run the defined conversions
                        for i,c in ipairs(conversions) do
                                -- Replace first parameter with actual table to process
                                -- Inserting here will cause problems for the second iteration
                                c[1] = config.configuration.Auctioneer
                                converted = convertConfig(unpack(c)) or converted
                        end

                        if (converted) then
                                Auctioneer.Util.ChatPrint("Converted old Khaos configuration \"" .. config.name .. "\"")
                        end
                end
        end
end

function getKhaosDefault(filter)
        if (filter == "also") then
                return Auctioneer.Core.Constants.FilterDefaults[filter];
        elseif (Auctioneer.Core.Constants.FilterDefaults[filter] == 'on') then
                return true;
        elseif (Auctioneer.Core.Constants.FilterDefaults[filter] == 'off') then
                return false;
        else
                return Auctioneer.Core.Constants.FilterDefaults[filter];
        end
end


function setKhaosSetKeyParameter(key, parameter, value) --Local
        if (Auctioneer_Khaos_Registered) then
                if (Khaos.getSetKey("Auctioneer", key)) then
                        Khaos.setSetKeyParameter("Auctioneer", key, parameter, value)
                else
                        EnhTooltip.DebugPrint("setKhaosSetKeyParameter(): key " .. key .. " does not exist")
                end
        end
end

function setKhaosSetKeyValue(key, value) --Local
        if (Auctioneer_Khaos_Registered) then
                local kKey = Khaos.getSetKey("Auctioneer", key)

                if (not kKey) then
                        EnhTooltip.DebugPrint("setKhaosSetKeyParameter(): key " .. key .. " does not exist")
                elseif (kKey.checked ~= nil) then
                        if (type(value) == "string") then value = (value == "on"); end
                        Khaos.setSetKeyParameter("Auctioneer", key, "checked", value)
                elseif (kKey.value ~= nil) then
                        Khaos.setSetKeyParameter("Auctioneer", key, "value", value)
                else
                        EnhTooltip.DebugPrint("setKhaosSetKeyValue(): don't know how to update key ", key)
                end
        end
end

function getKhaosLocaleList() --Local
        local options = { [_AUCT('CmdDefault')] = 'default' };
        for locale, data in pairs(AuctioneerLocalizations) do
                options[locale] = locale;
        end
        return options
end

function getKhaosLoadList() --Local
        return {
                [_AUCT('GuiLoad_Always')] = 'always',
                [_AUCT('GuiLoad_Never')] = 'never',
                [_AUCT('GuiLoad_AuctionHouse')] = 'auctionhouse'
        }
end

function getKhaosDurationsList() --Local
        local list = {}
        for i = 0, 3 do
                list[_AUCT('CmdAuctionDuration'..i)] = i
        end
        return list
end

function getKhaosProtectionList() --Local
        local list = {}
        for i = 0, 2 do
                list[_AUCT('CmdProtectWindow'..i)] = i
        end
        return list
end

function getKhaosFinishList() --Local
        local list = {}
        for i = 0, 2 do
                list[_AUCT('CmdFinish'..i)] = i
        end
        return list
end

function registerKhaos()

        -- Convert old Khaos settings to current optionSet
        convertKhaos();

        local optionSet = {
                id="Auctioneer";
                text="Auctioneer";
                helptext=function()
                        return _AUCT('GuiMainHelp')
                end;
                difficulty=1;
                default={checked=true};
                options={
                        {
                                id="Header";
                                text="Auctioneer";
                                helptext=function()
                                        return _AUCT('GuiMainHelp')
                                end;
                                type=K_HEADER;
                                difficulty=1;
                        };
                        {
                                id="enabled";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiMainEnable')
                                end;
                                helptext=function()
                                        return _AUCT('HelpOnoff')
                                end;
                                callback=function(state)
                                        Auctioneer.Command.OnOff(state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return _AUCT('StatOn');
                                        else
                                                return _AUCT('StatOff');
                                        end
                                end;
                                check=true;
                                default={checked=true};
                                disabled={checked=false};
                                difficulty=1;
                        };
                        {
                                id="LoadSettings";
                                type=K_PULLDOWN;
                                setup = {
                                        options = getKhaosLoadList;
                                        multiSelect = false;
                                };
                                text=function()
                                        return _AUCT('GuiLoad')
                                end;
                                helptext=function()
                                        return _AUCT('HelpLoad')
                                end;
                                callback=function(state) end;
                                feedback=function(state)
                                        mainHandler("load " .. state.value, "GUI")
                                end;
                                default={value = 'auctionhouse'};
                                disabled={value = 'never'};
                                difficulty=1;
                        };
                        {
                                id="locale";
                                type=K_PULLDOWN;
                                setup = {
                                        options = getKhaosLocaleList;
                                        multiSelect = false;
                                };
                                text=function()
                                        return _AUCT('GuiLocale')
                                end;
                                helptext=function()
                                        return _AUCT('HelpLocale')
                                end;
                                callback = function(state)
                                end;
                                feedback = function (state)
                                        Auctioneer.Command.SetLocale(state.value);
                                        return string.format(_AUCT('FrmtActSet'), _AUCT('CmdLocale'), state.value);
                                end;
                                default = {
                                        value = Auctioneer.Command.GetLocale();
                                };
                                disabled = {
                                        value = Auctioneer.Command.GetLocale();
                                };
                                dependencies={enabled={checked=true;}};
                                difficulty=2;
                        };
                        {
                                id="AuctioneerStatsHeader";
                                type=K_HEADER;
                                text=function()
                                        return _AUCT('GuiStatsHeader')
                                end;
                                helptext=function()
                                        return _AUCT('GuiStatsHelp')
                                end;
                                difficulty=2;
                        };
                        {
                                id="show-stats";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiStatsEnable')
                                end;
                                helptext=function()
                                        return _AUCT('HelpStats')
                                end;
                                callback=function(state)
                                        Auctioneer.Command.GenVarSet("show-stats", state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (string.format(_AUCT('FrmtActEnable'), _AUCT('ShowStats')));
                                        else
                                                return (string.format(_AUCT('FrmtActDisable'), _AUCT('ShowStats')));
                                        end
                                end;
                                check=true;
                                default={checked=getKhaosDefault('show-stats')};
                                disabled={checked=false};
                                dependencies={enabled={checked=true;}};
                                difficulty=1;
                        };
                        {
                                id="show-average";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiAverages')
                                end;
                                helptext=function()
                                        return _AUCT('HelpAverage')
                                end;
                                callback=function(state)
                                        Auctioneer.Command.GenVarSet("show-average", state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (string.format(_AUCT('FrmtActEnable'), _AUCT('ShowAverage')));
                                        else
                                                return (string.format(_AUCT('FrmtActDisable'), _AUCT('ShowAverage')));
                                        end
                                end;
                                check=true;
                                default={checked=getKhaosDefault('show-average')};
                                disabled={checked=false};
                                dependencies={enabled={checked=true;}};
                                difficulty=2;
                        };
                        {
                                id="show-median";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiMedian')
                                end;
                                helptext=function()
                                        return _AUCT('HelpMedian')
                                end;
                                callback=function(state)
                                        Auctioneer.Command.GenVarSet("show-median", state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (string.format(_AUCT('FrmtActEnable'), _AUCT('ShowMedian')));
                                        else
                                                return (string.format(_AUCT('FrmtActDisable'), _AUCT('ShowMedian')));
                                        end
                                end;
                                check=true;
                                default={checked=getKhaosDefault('show-median')};
                                disabled={checked=false};
                                dependencies={enabled={checked=true;}};
                                difficulty=2;
                        };
                        {
                                id="show-suggest";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiSuggest')
                                end;
                                helptext=function()
                                        return _AUCT('HelpSuggest')
                                end;
                                callback=function(state)
                                        Auctioneer.Command.GenVarSet("show-suggest", state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (string.format(_AUCT('FrmtActEnable'), _AUCT('ShowSuggest')));
                                        else
                                                return (string.format(_AUCT('FrmtActDisable'), _AUCT('ShowSuggest')));
                                        end
                                end;
                                check=true;
                                default={checked=getKhaosDefault('show-suggest')};
                                disabled={checked=false};
                                dependencies={enabled={checked=true;}};
                                difficulty=2;
                        };
                        {
                                id="show-verbose";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiVerbose')
                                end;
                                helptext=function()
                                        return _AUCT('HelpVerbose')
                                end;
                                callback=function(state)
                                        Auctioneer.Command.GenVarSet("show-verbose", state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (string.format(_AUCT('FrmtActEnable'), _AUCT('ShowVerbose')));
                                        else
                                                return (string.format(_AUCT('FrmtActDisable'), _AUCT('ShowVerbose')));
                                        end
                                end;
                                check=true;
                                default={checked=getKhaosDefault('show-verbose')};
                                disabled={checked=false};
                                dependencies={enabled={checked=true;}};
                                difficulty=1;
                        };
                        {
                                id="AuctioneerAuctionHouseHeader";
                                type=K_HEADER;
                                text=function()
                                        return _AUCT('GuiAuctionHouseHeader')
                                end;
                                helptext=function()
                                        return _AUCT('GuiAuctionHouseHeaderHelp')
                                end;
                                difficulty=1;
                        };
                        {
                                id="autofill";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiAutofill')
                                end;
                                helptext=function()
                                        return _AUCT('HelpAutofill')
                                end;
                                callback=function(state)
                                        Auctioneer.Command.GenVarSet("autofill", state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (string.format(_AUCT('FrmtActEnable'), _AUCT('CmdAutofill')));
                                        else
                                                return (string.format(_AUCT('FrmtActDisable'), _AUCT('CmdAutofill')));
                                        end
                                end;
                                check=true;
                                default={checked=getKhaosDefault('autofill')};
                                disabled={checked=false};
                                dependencies={enabled={checked=true;}};
                                difficulty=1;
                        };
                        {
                                id="auction-duration";
                                type=K_PULLDOWN;
                                setup = {
                                        options = getKhaosDurationsList;
                                        multiSelect = false;
                                };
                                text=function()
                                        return _AUCT('GuiAuctionDuration')
                                end;
                                helptext=function()
                                        return _AUCT('HelpAuctionDuration')
                                end;
                                callback=function(state)
                                        Auctioneer.Command.AuctionDuration(state.value);
                                end;
                                feedback=function(state)
                                        return string.format(_AUCT('FrmtAuctionDuration'), _AUCT('CmdAuctionDuration'..Auctioneer.Command.GetFilterVal('auction-duration')));
                                end;
                                default = { value = _AUCT('CmdAuctionDuration'..Auctioneer.Core.Constants.FilterDefaults['auction-duration']) };
                                disabled = { value = _AUCT('CmdAuctionDuration'..Auctioneer.Core.Constants.FilterDefaults['auction-duration']) };
                                dependencies={enabled={checked=true;}};
                                difficulty=2;
                        };
                        {
                                id="protect-window";
                                type=K_PULLDOWN;
                                setup = {
                                        options = getKhaosProtectionList;
                                        multiSelect = false;
                                };
                                text=function()
                                        return _AUCT('GuiProtectWindow')
                                end;
                                helptext=function()
                                        return _AUCT('HelpProtectWindow')
                                end;
                                callback=function(state)
                                        Auctioneer.Command.ProtectWindow(state.value);
                                end;
                                feedback=function(state)
                                        return string.format(_AUCT('FrmtProtectWindow'), _AUCT('CmdProtectWindow'..Auctioneer.Command.GetFilterVal('protect-window')));
                                end;
                                default = { value = _AUCT('CmdProtectWindow'..Auctioneer.Core.Constants.FilterDefaults['protect-window']) };
                                disabled = { value = _AUCT('CmdProtectWindow'..Auctioneer.Core.Constants.FilterDefaults['protect-window']) };
                                dependencies={enabled={checked=true;}};
                                difficulty=3;
                        };
                        {
                                id="finish";
                                type=K_PULLDOWN;
                                setup = {
                                        options = getKhaosFinishList;
                                        multiSelect = false;
                                };
                                text=function()
                                        return _AUCT('GuiFinish')
                                end;
                                helptext=function()
                                        return _AUCT('HelpFinish')
                                end;
                                callback=function(state)
                                        Auctioneer.Command.Finish(state.value);
                                end;
                                feedback=function(state)
                                        return string.format(_AUCT('FrmtFinish'), _AUCT('CmdFinish'..Auctioneer.Command.GetFilterVal('finish')));
                                end;
                                default = { value = _AUCT('CmdFinish'..Auctioneer.Core.Constants.FilterDefaults['finish']) };
                                disabled = { value = _AUCT('CmdFinish'..Auctioneer.Core.Constants.FilterDefaults['finish']) };
                                dependencies={enabled={checked=true;}};
                                difficulty=3;
                        };
                        {
                                id="show-warning";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiRedo')
                                end;
                                helptext=function()
                                        return _AUCT('HelpRedo')
                                end;
                                callback=function(state)
                                        Auctioneer.Command.GenVarSet("show-warning", state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (string.format(_AUCT('FrmtActEnable'), _AUCT('ShowRedo')));
                                        else
                                                return (string.format(_AUCT('FrmtActDisable'), _AUCT('ShowRedo')));
                                        end
                                end;
                                check=true;
                                default={checked=getKhaosDefault('show-warning')};
                                disabled={checked=false};
                                dependencies={enabled={checked=true;}};
                                difficulty=1;
                        };
                        {
                                id="warn-color";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiWarnColor')
                                end;
                                helptext=function()
                                        return _AUCT('HelpWarnColor')
                                end;
                                callback=function(state)
                                        Auctioneer.Command.GenVarSet("warn-color", state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (string.format(_AUCT('FrmtActEnable'), _AUCT('CmdWarnColor')));
                                        else
                                                return (string.format(_AUCT('FrmtActDisable'), _AUCT('CmdWarnColor')));
                                        end
                                end;
                                check=true;
                                default={checked=getKhaosDefault('warn-color')};
                                disabled={checked=false};
                                dependencies={enabled={checked=true;}};
                                difficulty=1;
                        };
                        {
                                id="finish-sound";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiFinishSound')
                                end;
                                helptext=function()
                                        return _AUCT('HelpFinishSound')
                                end;
                                callback=function(state)
                                        Auctioneer.Command.GenVarSet("finish-sound", state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (string.format(_AUCT('FrmtActEnable'), _AUCT('CmdFinishSound')));
                                        else
                                                return (string.format(_AUCT('FrmtActDisable'), _AUCT('CmdFinishSound')));
                                        end
                                end;
                                check=true;
                                default={checked=getKhaosDefault('warn-color')};
                                disabled={checked=false};
                                dependencies={enabled={checked=true;}};
                                difficulty=1;
                        };
                        {
                                id="AuctioneerEmbedHeader";
                                type=K_HEADER;
                                text=function()
                                        return _AUCT('GuiEmbedHeader')
                                end;
                                helptext=function()
                                        return _AUCT('HelpEmbed')
                                end;
                                difficulty=1;
                        };
                        {
                                id="embed";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiEmbed')
                                end;
                                helptext=function()
                                        return _AUCT('HelpEmbed')
                                end;
                                callback=function(state)
                                        Auctioneer.Command.GenVarSet("embed", state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (string.format(_AUCT('FrmtActEnable'), _AUCT('CmdEmbed')));
                                        else
                                                return (string.format(_AUCT('FrmtActDisable'), _AUCT('CmdEmbed')));
                                        end
                                end;
                                check=true;
                                default={checked=getKhaosDefault('embed')};
                                disabled={checked=false};
                                dependencies={enabled={checked=true;}};
                                difficulty=1;
                        };
                        {
                                id="show-embed-blankline";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiEmbedBlankline')
                                end;
                                helptext=function()
                                        return _AUCT('HelpEmbedBlank')
                                end;
                                callback=function(state)
                                        Auctioneer.Command.GenVarSet("show-embed-blankline", state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (string.format(_AUCT('FrmtActEnable'), _AUCT('ShowEmbedBlank')));
                                        else
                                                return (string.format(_AUCT('FrmtActDisable'), _AUCT('ShowEmbedBlank')));
                                        end
                                end;
                                check=true;
                                default={checked=getKhaosDefault('show-embed-blankline')};
                                disabled={checked=false};
                                dependencies={embed={checked=true;}, enabled={checked=true;}};
                                difficulty=1;
                        };
                        {
                                id="AuctioneerClearHeader";
                                type=K_HEADER;
                                text=function()
                                        return _AUCT('GuiClearHeader')
                                end;
                                helptext=function()
                                        return _AUCT('GuiClearHelp')
                                end;
                                difficulty=3;
                        };
                        {
                                id="AuctioneerClearAll";
                                type=K_BUTTON;
                                setup={
                                        buttonText=function()
                                                return _AUCT('GuiClearallButton')
                                        end;
                                };
                                text=function()
                                        return _AUCT('GuiClearall')
                                end;
                                helptext=function()
                                        return _AUCT('GuiClearallHelp')
                                end;
                                callback=function()
                                        Auctioneer.Command.Clear("all");
                                end;
                                feedback=function()
                                        return string.format(_AUCT('FrmtActClearall'),  _AUCT('GuiClearallNote'));
                                end;
                                dependencies={enabled={checked=true;}};
                                difficulty=3;
                        };
                        {
                                id="AuctioneerClearSnapshot";
                                type=K_BUTTON;
                                setup={
                                        buttonText=function()
                                                return _AUCT('GuiClearsnapButton')
                                        end;
                                };
                                text=function()
                                        return _AUCT('GuiClearsnap')
                                end;
                                helptext=function()
                                        return _AUCT('GuiClearsnapHelp')
                                end;
                                callback=function()
                                        Auctioneer.Command.Clear(_AUCT('CmdClearSnapshot'));
                                end;
                                feedback=function()
                                        return _AUCT('FrmtActClearsnap');
                                end;
                                dependencies={enabled={checked=true;}};
                                difficulty=3;
                        };
                        {
                                id="AuctioneerPercentsHeader";
                                type=K_HEADER;
                                text=function()
                                        return _AUCT('GuiPercentsHeader')
                                end;
                                helptext=function()
                                        return _AUCT('GuiPercentsHelp')
                                end;
                                difficulty=4;
                        };
                        {
                                id="pct-bidmarkdown";
                                type=K_EDITBOX;
                                setup = {
                                        callOn = {"tab", "escape", "enter"};
                                };
                                text=function()
                                        return _AUCT('GuiBidmarkdown')
                                end;
                                helptext=function()
                                        return _AUCT('HelpPctBidmarkdown')
                                end;
                                callback = function(state)
                                        Auctioneer.Command.PercentVarSet("pct-bidmarkdown", state.value);
                                end;
                                feedback = function (state)
                                        return string.format(_AUCT('FrmtActSet'), _AUCT('CmdPctBidmarkdown'), state.value.."%");
                                end;
                                default = {     value = getKhaosDefault('pct-bidmarkdown') };
                                disabled = { value = getKhaosDefault('pct-bidmarkdown') };
                                dependencies={enabled={checked=true;}};
                                difficulty=4;
                        };
                        {
                                id="pct-markup";
                                type=K_EDITBOX;
                                setup = {
                                        callOn = {"tab", "escape", "enter"};
                                };
                                text=function()
                                        return _AUCT('GuiMarkup')
                                end;
                                helptext=function()
                                        return _AUCT('HelpPctMarkup')
                                end;
                                callback = function(state)
                                        Auctioneer.Command.PercentVarSet("pct-markup", state.value);
                                end;
                                feedback = function (state)
                                        return string.format(_AUCT('FrmtActSet'), _AUCT('CmdPctMarkup'), state.value.."%");
                                end;
                                default = {     value = getKhaosDefault('pct-markup') };
                                disabled = { value = getKhaosDefault('pct-markup') };
                                dependencies={enabled={checked=true;}};
                                difficulty=4;
                        };
                        {
                                id="pct-maxless";
                                type=K_EDITBOX;
                                setup = {
                                        callOn = {"tab", "escape", "enter"};
                                };
                                text=function()
                                        return _AUCT('GuiMaxless')
                                end;
                                helptext=function()
                                        return _AUCT('HelpPctMaxless')
                                end;
                                callback = function(state)
                                        Auctioneer.Command.PercentVarSet("pct-maxless", state.value);
                                end;
                                feedback = function (state)
                                        return string.format(_AUCT('FrmtActSet'), _AUCT('CmdPctMaxless'), state.value.."%");
                                end;
                                default = {     value = getKhaosDefault('pct-maxless') };
                                disabled = { value = getKhaosDefault('pct-maxless') };
                                dependencies={enabled={checked=true;}};
                                difficulty=4;
                        };
                        {
                                id="pct-nocomp";
                                type=K_EDITBOX;
                                setup = {
                                        callOn = {"tab", "escape", "enter"};
                                };
                                text=function()
                                        return _AUCT('GuiNocomp')
                                end;
                                helptext=function()
                                        return _AUCT('HelpPctNocomp')
                                end;
                                callback = function(state)
                                        Auctioneer.Command.PercentVarSet("pct-nocomp", state.value);
                                end;
                                feedback = function (state)
                                        return string.format(_AUCT('FrmtActSet'), _AUCT('CmdPctNocomp'), state.value.."%");
                                end;
                                default = {     value = getKhaosDefault('pct-nocomp') };
                                disabled = { value = getKhaosDefault('pct-nocomp') };
                                dependencies={enabled={checked=true;}};
                                difficulty=4;
                        };
                        {
                                id="pct-underlow";
                                type=K_EDITBOX;
                                setup = {
                                        callOn = {"tab", "escape", "enter"};
                                };
                                text=function()
                                        return _AUCT('GuiUnderlow')
                                end;
                                helptext=function()
                                        return _AUCT('HelpPctUnderlow')
                                end;
                                callback = function(state)
                                        Auctioneer.Command.PercentVarSet("pct-underlow", state.value);
                                end;
                                feedback = function (state)
                                        return string.format(_AUCT('FrmtActSet'), _AUCT('CmdPctUnderlow'), state.value.."%");
                                end;
                                default = {     value = getKhaosDefault('pct-underlow') };
                                disabled = { value = getKhaosDefault('pct-underlow') };
                                dependencies={enabled={checked=true;}};
                                difficulty=4;
                        };
                        {
                                id="pct-undermkt";
                                type=K_EDITBOX;
                                setup = {
                                        callOn = {"tab", "escape", "enter"};
                                };
                                text=function()
                                        return _AUCT('GuiUndermkt')
                                end;
                                helptext=function()
                                        return _AUCT('HelpPctUndermkt')
                                end;
                                callback = function(state)
                                        Auctioneer.Command.PercentVarSet("pct-undermkt", state.value);
                                end;
                                feedback = function (state)
                                        return string.format(_AUCT('FrmtActSet'), _AUCT('CmdPctUndermkt'), state.value.."%");
                                end;
                                default = {     value = getKhaosDefault('pct-undermkt') };
                                disabled = { value = getKhaosDefault('pct-undermkt') };
                                dependencies={enabled={checked=true;}};
                                difficulty=4;
                        };
                        {
                                id="AuctioneerAskPriceHeader";
                                type=K_HEADER;
                                text=function()
                                        return _AUCT('GuiAskPriceHeader')
                                end;
                                helptext=function()
                                        return _AUCT('GuiAskPriceHeaderHelp')
                                end;
                                difficulty=2;
                        };
                        {
                                id="askprice";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiAskPrice')
                                end;
                                helptext=function()
                                        return _AUCT('HelpAskPrice')
                                end;
                                callback=function(state)
                                        if (state.checked) then
                                                Auctioneer.AskPrice.OnOff("on");
                                        else
                                                Auctioneer.AskPrice.OnOff("off");
                                        end
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (_AUCT('StatAskPriceOn'))
                                        else
                                                return (_AUCT('StatAskPriceOff'))
                                        end
                                end;
                                check=true;
                                default={getKhaosDefault('askprice')};
                                disabled={checked=false};
                                dependencies={enabled={checked=true;}};
                                difficulty=2;
                        };
                        {
                                id="askprice-trigger";
                                type=K_EDITBOX;
                                setup = {
                                        callOn = {"tab", "escape", "enter"};
                                };
                                text=function()
                                        return _AUCT('GuiAskPriceTrigger')
                                end;
                                helptext=function()
                                        return _AUCT('HelpAskPriceTrigger')
                                end;
                                callback = function(state)
                                        Auctioneer.AskPrice.SetTrigger(state.value)
                                end;
                                feedback = function (state)
                                        return string.format(_AUCT('FrmtActSet'), "askprice ".._AUCT('CmdAskPriceTrigger'), state.value);
                                end;
                                default = { value = getKhaosDefault('askprice-trigger') };
                                disabled = { value = getKhaosDefault('askprice-trigger') };
                                dependencies={askprice={checked=true}, enabled={checked=true;}};
                                difficulty=3;
                        };
                        {
                                id="askprice-whispers";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiAskPriceWhispers')
                                end;
                                helptext=function()
                                        return _AUCT('HelpAskPriceWhispers')
                                end;
                                callback=function(state)
                                        Auctioneer.AskPrice.GenVarSet("whispers", state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (string.format(_AUCT('FrmtAskPriceEnable'), "askprice ".._AUCT('CmdAskPriceWhispers')))
                                        else
                                                return (string.format(_AUCT('FrmtAskPriceDisable'), "askprice ".._AUCT('CmdAskPriceWhispers')))
                                        end
                                end;
                                check=true;
                                default={getKhaosDefault('askprice-whispers')};
                                disabled={checked=false};
                                dependencies={askprice={checked=true}, enabled={checked=true;}};
                                difficulty=2;
                        };
                        {
                                id="askprice-vendor";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiAskPriceVendor')
                                end;
                                helptext=function()
                                        return _AUCT('HelpAskPriceVendor')
                                end;
                                callback=function(state)
                                        Auctioneer.AskPrice.GenVarSet("vendor", state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (string.format(_AUCT('FrmtAskPriceEnable'), "askprice ".._AUCT('CmdAskPriceVendor')))
                                        else
                                                return (string.format(_AUCT('FrmtAskPriceDisable'), "askprice ".._AUCT('CmdAskPriceVendor')))
                                        end
                                end;
                                check=true;
                                default={getKhaosDefault('askprice-vendor')};
                                disabled={checked=false};
                                dependencies={askprice={checked=true}, enabled={checked=true;}};
                                difficulty=2;
                        };
                        {
                                id="askprice-party";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiAskPriceParty')
                                end;
                                helptext=function()
                                        return _AUCT('HelpAskPriceParty')
                                end;
                                callback=function(state)
                                        Auctioneer.AskPrice.GenVarSet("party", state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (string.format(_AUCT('FrmtAskPriceEnable'), "askprice ".._AUCT('CmdAskPriceParty')))
                                        else
                                                return (string.format(_AUCT('FrmtAskPriceDisable'), "askprice ".._AUCT('CmdAskPriceParty')))
                                        end
                                end;
                                check=true;
                                default={getKhaosDefault('askprice-party')};
                                disabled={checked=false};
                                dependencies={askprice={checked=true}, enabled={checked=true;}};
                                difficulty=2;
                        };
                        {
                                id="askprice-guild";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiAskPriceGuild')
                                end;
                                helptext=function()
                                        return _AUCT('HelpAskPriceGuild')
                                end;
                                callback=function(state)
                                        Auctioneer.AskPrice.GenVarSet("guild", state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (string.format(_AUCT('FrmtAskPriceEnable'), "askprice ".._AUCT('CmdAskPriceGuild')))
                                        else
                                                return (string.format(_AUCT('FrmtAskPriceDisable'), "askprice ".._AUCT('CmdAskPriceGuild')))
                                        end
                                end;
                                check=true;
                                default={getKhaosDefault('askprice-guild')};
                                disabled={checked=false};
                                dependencies={askprice={checked=true}, enabled={checked=true;}};
                                difficulty=2;
                        };
                        {
                                id="askprice-smart";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiAskPriceSmart')
                                end;
                                helptext=function()
                                        return _AUCT('HelpAskPriceSmart')
                                end;
                                callback=function(state)
                                        Auctioneer.AskPrice.GenVarSet("smart", state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (string.format(_AUCT('FrmtAskPriceEnable'), "askprice ".._AUCT('CmdAskPriceSmart')))
                                        else
                                                return (string.format(_AUCT('FrmtAskPriceDisable'), "askprice ".._AUCT('CmdAskPriceSmart')))
                                        end
                                end;
                                check=true;
                                default={getKhaosDefault('askprice-smart')};
                                disabled={checked=false};
                                dependencies={askprice={checked=true}, enabled={checked=true;}};
                                difficulty=2;
                        };
                        {
                                id="askprice-word1";
                                type=K_EDITBOX;
                                setup = {
                                        callOn = {"tab", "escape", "enter"};
                                };
                                text=function()
                                        return string.format(_AUCT('GuiAskPriceWord'), 1)
                                end;
                                helptext=function()
                                        return _AUCT('HelpAskPriceWord')
                                end;
                                callback = function(state)
                                        Auctioneer.AskPrice.SetCustomSmartWords(nil, 1, state.value)
                                end;
                                feedback = function (state)
                                        return string.format(_AUCT('FrmtActSet'), "askprice ".._AUCT('CmdAskPriceWord').." 1", Auctioneer.Command.GetFilterVal('askprice-word1'))
                                end;
                                default = { value = getKhaosDefault('askprice-word1') };
                                disabled = { value = getKhaosDefault('askprice-word1') };
                                dependencies={askprice={checked=true}, enabled={checked=true;}};
                                difficulty=3;
                        };
                        {
                                id="askprice-word2";
                                type=K_EDITBOX;
                                setup = {
                                        callOn = {"tab", "escape", "enter"};
                                };
                                text=function()
                                        return string.format(_AUCT('GuiAskPriceWord'), 2)
                                end;
                                helptext=function()
                                        return _AUCT('HelpAskPriceWord')
                                end;
                                callback = function(state)
                                        Auctioneer.AskPrice.SetCustomSmartWords(nil, 2, state.value)
                                end;
                                feedback = function (state)
                                        return string.format(_AUCT('FrmtActSet'), "askprice ".._AUCT('CmdAskPriceWord').." 2", Auctioneer.Command.GetFilterVal('askprice-word2'))
                                end;
                                default = { value = getKhaosDefault('askprice-word2') };
                                disabled = { value = getKhaosDefault('askprice-word2') };
                                dependencies={askprice={checked=true}, enabled={checked=true;}};
                                difficulty=3;
                        };
                        {
                                id="askprice-ad";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiAskPriceAd')
                                end;
                                helptext=function()
                                        return _AUCT('HelpAskPriceAd')
                                end;
                                callback=function(state)
                                        Auctioneer.AskPrice.GenVarSet("ad", state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (string.format(_AUCT('FrmtAskPriceEnable'), "askprice ".._AUCT('CmdAskPriceAd')))
                                        else
                                                return (string.format(_AUCT('FrmtAskPriceDisable'), "askprice ".._AUCT('CmdAskPriceAd')))
                                        end
                                end;
                                check=true;
                                default={getKhaosDefault('askprice-ad')};
                                disabled={checked=false};
                                dependencies={askprice={checked=true}, enabled={checked=true;}};
                                difficulty=2;
                        };
                        {
                                id="AuctioneerOtherHeader";
                                type=K_HEADER;
                                text=function()
                                        return _AUCT('GuiOtherHeader')
                                end;
                                helptext=function()
                                        return _AUCT('GuiOtherHelp')
                                end;
                                difficulty=1;
                        };
                        {
                                id="also";
                                type=K_EDITBOX;
                                setup = {
                                        callOn = {"tab", "escape", "enter"};
                                };
                                text=function()
                                        return _AUCT('GuiAlso')
                                end;
                                helptext=function()
                                        return _AUCT('HelpAlso')
                                end;
                                callback = function(state)
                                        Auctioneer.Command.AlsoInclude(state.value);
                                end;
                                feedback = function (state)
                                        if ((state.value == _AUCT('CmdOff')) or (state.value == "off")) then
                                                return _AUCT('GuiAlsoOff');
                                        elseif ((state.value == _AUCT('CmdAlsoOpposite')) or (state.value == "opposite")) then
                                                return _AUCT('GuiAlsoOpposite');
                                        elseif (not Auctioneer.Util.IsValidAlso(state.value)) then
                                                return string.format(_AUCT('FrmtUnknownArg'), state.value, _AUCT('CmdAlso'))
                                        else
                                                return string.format(_AUCT('GuiAlsoDisplay'), state.value);
                                        end
                                end;
                                default = { value = getKhaosDefault('also') };
                                disabled = { value = getKhaosDefault('also') };
                                dependencies={enabled={checked=true;}};
                                difficulty=2;
                        };
                        {
                                id="printframe";
                                type=K_PULLDOWN;
                                setup = {
                                        options = Auctioneer.Command.GetFrameNames;
                                        multiSelect = false;
                                };
                                text=function()
                                        return _AUCT('GuiPrintin')
                                end;
                                helptext=function()
                                        return _AUCT('HelpPrintin')
                                end;
                                callback=function(state)
                                        Auctioneer.Command.SetFrame(state.value);
                                end;
                                feedback=function(state)
                                        local _, frameName = Auctioneer.Command.GetFrameNames(state.value)
                                        return string.format(_AUCT('FrmtPrintin'), frameName);
                                end;
                                default = { value = getKhaosDefault('printframe') };
                                disabled = { value = getKhaosDefault('printframe') };
                                dependencies={enabled={checked=true;}};
                                difficulty=3;
                        };
                        {
                                id="show-link";
                                type=K_TEXT;
                                text=function()
                                        return _AUCT('GuiLink')
                                end;
                                helptext=function()
                                        return _AUCT('HelpLink')
                                end;
                                callback=function(state)
                                        Auctioneer.Command.GenVarSet("show-link", state.checked);
                                end;
                                feedback=function(state)
                                        if (state.checked) then
                                                return (string.format(_AUCT('FrmtActEnable'), _AUCT('ShowLink')))
                                        else
                                                return (string.format(_AUCT('FrmtActDisable'), _AUCT('ShowLink')))
                                        end
                                end;
                                check=true;
                                default={getKhaosDefault('show-link')};
                                disabled={checked=false};
                                dependencies={enabled={checked=true;}};
                                difficulty=3;
                        };
                        {
                                id="DefaultAll";
                                type=K_BUTTON;
                                setup={
                                        buttonText = function()
                                                return _AUCT('GuiDefaultAllButton')
                                        end;
                                };
                                text=function()
                                        return _AUCT('GuiDefaultAll')
                                end;
                                helptext=function()
                                        return _AUCT('GuiDefaultAllHelp')
                                end;
                                callback=function()
                                        Auctioneer.Command.Default(_AUCT('CmdClearAll'));
                                end;
                                feedback=function()
                                        return _AUCT('FrmtActDefaultall');
                                end;
                                dependencies={enabled={checked=true;}};
                                difficulty=1;
                        };
                        {
                                id="DefaultOption";
                                type=K_EDITBOX;
                                setup = {
                                        callOn = {"tab", "escape", "enter"};
                                };
                                text=function()
                                        return _AUCT('GuiDefaultOption')
                                end;
                                helptext=function()
                                        return _AUCT('HelpDefault')
                                end;
                                callback = function(state)
                                        Auctioneer.Command.Default(state.value);
                                end;
                                feedback = function (state)
                                        if (state.value == _AUCT('CmdClearAll')) then
                                                return _AUCT('FrmtActDefaultall');
                                        else
                                                return string.format(_AUCT('FrmtActDefault'), state.value);
                                        end
                                end;
                                default = {
                                        value = "";
                                };
                                disabled = {
                                        value = "";
                                };
                                dependencies={enabled={checked=true;}};
                                difficulty=4;
                        };
                };
        };

        Khaos.registerOptionSet("tooltip", optionSet);
        Auctioneer_Khaos_Registered = true;
        Khaos.refresh();

        -- This setting is not actually stored in the Khaos option set and
        -- requires special treatment to be updated
        local loadType = Stubby.GetConfig("Auctioneer", "LoadType")
        if (not loadType) then loadType = "auctionhouse"; end
        setKhaosSetKeyValue("LoadSettings", loadType)
end


function buildCommandMap()
        Auctioneer.Command.CommandMap = nil;
        Auctioneer.Command.CommandMapRev = nil;

        commandMap = {
                [_AUCT('CmdOn')]                                =       'on',
                [_AUCT('CmdOff')]                               =       'off',
                [_AUCT('CmdHelp')]                              =       'help',
                [_AUCT('CmdToggle')]                    =       'toggle',
                [_AUCT('CmdDisable')]                   =       'disable',
                [_AUCT('CmdClear')]                             =       'clear',
                [_AUCT('CmdLocale')]                    =       'locale',
                [_AUCT('CmdDefault')]                   =       'default',
                [_AUCT('CmdPrintin')]                   =       'print-in',
                [_AUCT('CmdAlso')]                              =       'also',
                [_AUCT('CmdEmbed')]                             =       'embed',
                [_AUCT('CmdPercentless')]               =       'percentless',
                [_AUCT('CmdPercentlessShort')]  =       'percentless',
                [_AUCT('CmdCompete')]                   =       'compete',
                [_AUCT('CmdScan')]                              =       'scan',
                [_AUCT('CmdAutofill')]                  =       'autofill',
                [_AUCT('CmdWarnColor')]                 =       'warn-color',
                [_AUCT('CmdFinishSound')]               =       'finish-sound',
                [_AUCT('CmdAuctionDuration')]   =       'auction-duration',
                [_AUCT('CmdProtectWindow')]             =       'protect-window',
                [_AUCT('CmdFinish')]                    =       'finish',
                [_AUCT('CmdBroker')]                    =       'broker',
                [_AUCT('CmdBidbroker')]                 =       'bidbroker',
                [_AUCT('CmdBidbrokerShort')]    =       'bidbroker',
                [_AUCT('CmdAuctionClick')]              =       'auction-click',
                [_AUCT('CmdPctBidmarkdown')]    =       'pct-bidmarkdown',
                [_AUCT('CmdPctMarkup')]                 =       'pct-markup',
                [_AUCT('CmdPctMaxless')]                =       'pct-maxless',
                [_AUCT('CmdPctNocomp')]                 =       'pct-nocomp',
                [_AUCT('CmdPctUnderlow')]               =       'pct-underlow',
                [_AUCT('CmdPctUndermkt')]               =       'pct-undermkt',

                --AskPrice related commands
                [_AUCT('CmdAskPriceWhispers')]  =       'whispers',
                [_AUCT('CmdAskPriceVendor')]    =       'vendor',
                [_AUCT('CmdAskPriceGuild')]             =       'guild',
                [_AUCT('CmdAskPriceParty')]             =       'party',
                [_AUCT('CmdAskPriceSmart')]             =       'smart',
                [_AUCT('CmdAskPriceWord')]              =       'word',
                [_AUCT('CmdAskPriceAd')]                =       'ad',

                -- Post/Search Tab related commands
                [_AUCT('CmdBidLimit')]                  =       'bid-limit',
                [_AUCT('CmdUpdatePrice')]               =       'update-price',
        }

        commandMapRev = {}
        for k,v in pairs(commandMap) do
                commandMapRev[v] = k;
        end

        Auctioneer.Command.CommandMap = commandMap;
        Auctioneer.Command.CommandMapRev = commandMapRev;
end

--Cleaner Command Handling Functions (added by MentalPower)
function mainHandler(command, source)

        --To print or not to print, that is the question...
        local chatprint = nil;

        if (source == "GUI") then
                chatprint = false;

        else
                chatprint = true;
        end;

        --Divide the large command into smaller logical sections (Shameless copy from the original function)
        local i,j, cmd, param = string.find(command, "^([^ ]+) (.+)$");

        if (not cmd) then cmd = command; end
        if (not cmd) then cmd = ""; end
        if (not param) then     param = ""; end
        cmd = Auctioneer.Util.DelocalizeCommand(cmd);

        --Now for the real Command handling

        --/auctioneer help
        if ((cmd == "") or (cmd == "help")) then
                chatPrintHelp();

        --/auctioneer (on|off|toggle)
        elseif (cmd == 'on' or cmd == 'off' or cmd == 'toggle') then
                onOff(cmd, chatprint);

        --/auctioneer disable
        elseif (cmd == 'disable') then
                Auctioneer.Util.ChatPrint(_AUCT('DisableMsg'));
                Stubby.SetConfig("Auctioneer", "LoadType", "never");
                setKhaosSetKeyValue("LoadSettings", "never")

        --/auctioneer load (always|never|auctionhouse)
        elseif (cmd == 'load') then
                if (param == "always") or (param == "never") or (param == "auctionhouse") then
                        Stubby.SetConfig("Auctioneer", "LoadType", param);
                        if (chatprint) then
                                Auctioneer.Util.ChatPrint("Setting Auctioneer to "..param.." load for this toon");
                                setKhaosSetKeyValue("LoadSettings", param)
                        end
                end

        --/auctioneer clear (all|snapshot|item)
        elseif (cmd == 'clear') then
                clear(param, chatprint);

        --/auctioneer also ReamName-Faction
        elseif (cmd == 'also') then
                alsoInclude(param, chatprint);

        --/auctioneer locale
        elseif (cmd == 'locale') then
                setLocale(param, chatprint);

        --/auctioneer default (all|option)
        elseif (cmd == 'default') then
                default(param, chatprint);

        --/auctioneer print-in (FrameName|FrameNumber)
        elseif (cmd == 'print-in') then
                setFrame(param, chatprint)

        --/auctioneer broker
        elseif (cmd == 'broker') then
                Auctioneer.Filter.DoBroker(param);

        --/auctioneer bidbroker
        elseif (cmd == 'bidbroker' or cmd == "bb") then
                Auctioneer.Filter.DoBidBroker(param);

        --/auctioneer percentless
        elseif (cmd == 'percentless' or cmd == "pl") then
                Auctioneer.Filter.DoPercentLess(param);

        --/auctioneer compete
        elseif (cmd == 'compete') then
                Auctioneer.Filter.DoCompeting(param);

        --/auctioneer scan
        elseif (cmd == 'scan') then
                Auctioneer.Scanning.RequestAuctionScan(chatPrint);

        --/auctioneer protect-window
        elseif (cmd == 'protect-window') then
                protectWindow(param, chatprint);

        --/auctioneer auction-duration (2h|8h|24h)
        elseif (cmd == 'auction-duration') then
                auctionDuration(param, chatprint);

        --/auctioneer finish (off|logout|exit)
        elseif (cmd == 'finish') then
                finish(param, chatprint);

        --/auctioneer low
        elseif (cmd == 'low') then
                Auctioneer.Statistic.DoLow(param);

        --/auctioneer med
        elseif (cmd == 'med') then
                Auctioneer.Statistic.DoMedian(param);

        --/auctioneer hsp
        elseif (cmd == 'hsp') then
                Auctioneer.Statistic.DoHSP(param);

        --/auctioneer askprice (vendor|guild|party|smart|trigger|ad)
        elseif (cmd == 'askprice') then
                Auctioneer.AskPrice.CommandHandler(param, source);

        --/auctioneer (GenVars)
        elseif (
                cmd == 'embed'                                  or cmd == 'autofill'            or cmd == 'auction-click'       or
                cmd == 'show-verbose'                   or cmd == 'show-average'        or cmd == 'show-link'           or
                cmd == 'show-median'                    or cmd == 'show-stats'          or cmd == 'show-suggest'        or
                cmd == 'show-embed-blankline'   or cmd == 'show-warning'        or cmd == 'warn-color'          or
                cmd == 'update-price'                   or cmd == 'finish-sound'
        ) then
                genVarSet(cmd, param, chatprint);

        --/auctioneer (PercentVars)
        elseif (
                cmd == 'pct-bidmarkdown'                or cmd == 'pct-markup'          or cmd == 'pct-maxless'         or
                cmd == 'pct-nocomp'                             or cmd == 'pct-underlow'        or cmd == 'pct-undermkt'
        ) then
                percentVarSet(cmd, param, chatprint);

        --/auctioneer (NumVars)
        elseif (cmd == 'bid-limit') then
                numVarSet(cmd, param, chatprint);

        --Command not recognized
        else
                if (chatprint) then
                        Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActUnknown'), cmd));
                end
        end
end

--Help ME!! (The Handler) (Another shameless copy from the original function)
function chatPrintHelp()
        Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtWelcome'), Auctioneer.Version), 0.8, 0.8, 0.2);

        local onOffToggle = " (".._AUCT('CmdOn').."|".._AUCT('CmdOff').."|".._AUCT('CmdToggle')..")";

        local _, frameName = getFrameNames(getFrameIndex())

        Auctioneer.Util.ChatPrint(_AUCT('TextUsage'));
        Auctioneer.Util.ChatPrint("  |cffffffff/auctioneer "..onOffToggle.."|r |cff2040ff["..Auctioneer.Util.GetLocalizedFilterVal("all").."]|r\n          " .. _AUCT('HelpOnoff') .. "\n\n");
        Auctioneer.Util.ChatPrint("  |cffffffff/auctioneer ".._AUCT('CmdDisable').."|r\n          " .. _AUCT('HelpDisable') .. "\n\n");

        local lineFormat = "  |cffffffff/auctioneer %s "..onOffToggle.."|r |cff2040ff[%s]|r\n          %s\n\n";
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('ShowVerbose'),               Auctioneer.Util.GetLocalizedFilterVal('show-verbose'),                  _AUCT('HelpVerbose')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('ShowAverage'),               Auctioneer.Util.GetLocalizedFilterVal('show-average'),                  _AUCT('HelpAverage')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('ShowMedian'),                Auctioneer.Util.GetLocalizedFilterVal('show-median'),                   _AUCT('HelpMedian')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('ShowSuggest'),               Auctioneer.Util.GetLocalizedFilterVal('show-suggest'),                  _AUCT('HelpSuggest')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('ShowStats'),                 Auctioneer.Util.GetLocalizedFilterVal('show-stats'),                    _AUCT('HelpStats')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('ShowLink'),                  Auctioneer.Util.GetLocalizedFilterVal('show-link'),                             _AUCT('HelpLink')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdAutofill'),               Auctioneer.Util.GetLocalizedFilterVal('autofill'),                              _AUCT('HelpAutofill')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdEmbed'),                  Auctioneer.Util.GetLocalizedFilterVal('embed'),                                 _AUCT('HelpEmbed')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('ShowEmbedBlank'),    Auctioneer.Util.GetLocalizedFilterVal('show-embed-blankline'),  _AUCT('HelpEmbedBlank')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('ShowRedo'),                  Auctioneer.Util.GetLocalizedFilterVal('show-warning'),                  _AUCT('HelpRedo')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdAuctionClick'),   Auctioneer.Util.GetLocalizedFilterVal('auction-click'),                 _AUCT('HelpAuctionClick')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdWarnColor'),              Auctioneer.Util.GetLocalizedFilterVal('warn-color'),                    _AUCT('HelpWarnColor')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdUpdatePrice'),    Auctioneer.Util.GetLocalizedFilterVal('update-price'),                  _AUCT('HelpUpdatePrice')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdFinishSound'),    Auctioneer.Util.GetLocalizedFilterVal('finish-sound'),                  _AUCT('HelpFinishSound')));

        lineFormat = "  |cffffffff/auctioneer %s %s|r |cff2040ff[%s]|r\n          %s\n\n";
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdProtectWindow'),          _AUCT('OptProtectWindow'),              _AUCT('CmdProtectWindow'..Auctioneer.Command.GetFilterVal('protect-window')),           _AUCT('HelpProtectWindow')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdAuctionDuration'),        _AUCT('OptAuctionDuration'),    _AUCT('CmdAuctionDuration'..Auctioneer.Command.GetFilterVal('auction-duration')),       _AUCT('HelpAuctionDuration')));

        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdLocale'),                         _AUCT('OptLocale'),                             Auctioneer.Util.GetLocalizedFilterVal("locale"),                                                                        _AUCT('HelpLocale')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdPrintin'),                        _AUCT('OptPrintin'),                    frameName, _AUCT('HelpPrintin')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdFinish'),                         _AUCT('OptFinish'),                             _AUCT('CmdFinish'..Auctioneer.Command.GetFilterVal('finish')),                                          _AUCT('HelpFinish')));

        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdPctMarkup'),                      _AUCT('OptPctMarkup'),                  Auctioneer.Command.GetFilterVal('pct-markup'),                                                                          _AUCT('HelpPctMarkup')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdPctBidmarkdown'),         _AUCT('OptPctBidmarkdown'),             Auctioneer.Command.GetFilterVal('pct-bidmarkdown'),                                                                     _AUCT('HelpPctBidmarkdown')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdPctNocomp'),                      _AUCT('OptPctNocomp'),                  Auctioneer.Command.GetFilterVal('pct-nocomp'),                                                                          _AUCT('HelpPctNocomp')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdPctUnderlow'),            _AUCT('OptPctUnderlow'),                Auctioneer.Command.GetFilterVal('pct-underlow'),                                                                        _AUCT('HelpPctUnderlow')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdPctUndermkt'),            _AUCT('OptPctUndermkt'),                Auctioneer.Command.GetFilterVal('pct-undermkt'),                                                                        _AUCT('HelpPctUndermkt')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdPctMaxless'),                     _AUCT('OptPctMaxless'),                 Auctioneer.Command.GetFilterVal('pct-maxless'),                                                                         _AUCT('HelpPctMaxless')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdBidLimit'),                       _AUCT('OptBidLimit'),                   Auctioneer.Command.GetFilterVal('bid-limit'),                                                                           _AUCT('HelpBidLimit')));

        Auctioneer.AskPrice.ChatPrintHelp()

        lineFormat = "  |cffffffff/auctioneer %s %s|r\n          %s\n\n";
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdClear'),                  _AUCT('OptClear'),                      _AUCT('HelpClear')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdAlso'),                   _AUCT('OptAlso'),                       _AUCT('HelpAlso')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdBroker'),                 _AUCT('OptBroker'),                     _AUCT('HelpBroker')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdBidbroker'),              _AUCT('OptBidbroker'),          _AUCT('HelpBidbroker')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdPercentless'),    _AUCT('OptPercentless'),        _AUCT('HelpPercentless')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdCompete'),                _AUCT('OptCompete'),            _AUCT('HelpCompete')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdScan'),                   _AUCT('OptScan'),                       _AUCT('HelpScan')));
        Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdDefault'),                _AUCT('OptDefault'),            _AUCT('HelpDefault')));
end
--[[
        The onOff(state, chatprint) function handles the state of the Auctioneer AddOn (whether it is currently on or off)
        If "on" or "off" is specified in the first argument then Auctioneer's state is changed to that value,
        If "toggle" is specified then it will toggle Auctioneer's state (if currently on then it will be turned off and vice-versa)

        If a boolean (or nil) value is passed as the first argument the conversion is as follows:
        "true" is the same as "on"
        "false" is the same as "off"
        "nil" is the same as "toggle"

        If chatprint is "true" then the state will also be printed to the user.
]]
function onOff(state, chatprint)
        if (type(state) == "string") then
                state = Auctioneer.Util.DelocalizeFilterVal(state);

        elseif (state == true) then
                state = 'on'

        elseif (state == false) then
                state = 'off'

        elseif (state == nil) then
                state = 'toggle'
        end

        if (state == 'on' or state == 'off') then
                setFilter('all', state);

        elseif (state == 'toggle') then
                setFilter('all', not getFilter('all'));
        end

        --Print the change and alert the GUI if the command came from slash commands. Do nothing if they came from the GUI.
        if (chatprint) then
                state = getFilter('all')
                setKhaosSetKeyValue("enabled", state)

                if (state) then
                        Auctioneer.Util.ChatPrint(_AUCT('StatOn'));

                else
                        Auctioneer.Util.ChatPrint(_AUCT('StatOff'));
                end
        end
end

--The following functions are almost verbatim copies of the original functions but modified in order to make them compatible with direct GUI access.
function clear(param, chatprint)
        if (not (type(param) == "string")) then
                return
        end

        local aKey = Auctioneer.Util.GetAuctionKey();

        if ((param == _AUCT('CmdClearAll')) or (param == "all")) then

                AuctionConfig.info = {};
                AuctionConfig.data[aKey] = {};
                AuctionConfig.stats.histmed[aKey] = {};
                AuctionConfig.stats.histcount[aKey] = {};
                clear("snapshot");
        elseif ((param == _AUCT('CmdClearSnapshot')) or (param == "snapshot")) then

                AuctionConfig.snap[aKey] = {};
                AuctionConfig.sbuy[aKey] = {};
                Auctioneer_HSPCache[aKey] = {};
                AuctionConfig.stats.snapmed[aKey] = {};
                AuctionConfig.stats.snapcount[aKey] = {};
                Auctioneer.Core.Variables.SnapshotItemPrices = {};
        else

                local items = Auctioneer.Util.GetItems(param);
                local itemLinks = Auctioneer.Util.GetItemHyperlinks(param);

                if (items) then
                        for pos,itemKey in ipairs(items) do

                                if (AuctionConfig.data[aKey][itemKey]) then
                                        AuctionConfig.data[aKey][itemKey] = nil;

                                        AuctionConfig.stats.snapmed[aKey][itemKey] = nil;
                                        AuctionConfig.stats.histmed[aKey][itemKey] = nil;
                                        AuctionConfig.stats.histcount[aKey][itemKey] = nil;
                                        AuctionConfig.stats.snapcount[aKey][itemKey] = nil;
                                        AuctionConfig.sbuy[aKey][itemKey] = nil;

                                        local count = 0;
                                        while (AuctionConfig.snap[aKey][count]) do
                                                AuctionConfig.snap[aKey][count][itemKey] = nil;
                                                count = count+1;
                                        end

                                        Auctioneer_HSPCache[aKey][itemKey] = nil;

                                        --These are not included in the print statement below because there could be the possiblity that an item's data was cleared but another's was not
                                        if (chatprint) then
                                                Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActClearOk'), itemLinks[pos]));
                                        end
                                else
                                        if (chatprint) then
                                                Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActClearFail'), itemLinks[pos]));
                                        end
                                end
                        end
                end
        end

        if (chatprint) then
                if ((param == _AUCT('CmdClearAll')) or (param == "all")) then
                        Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActClearall'), aKey));

                elseif ((param == _AUCT('CmdClearSnapshot')) or (param == "snapshot")) then
                        Auctioneer.Util.ChatPrint(_AUCT('FrmtActClearsnap'));
                end
        end
end


function alsoInclude(param, chatprint)
        local localizedParam = param;
        param = Auctioneer.Util.DelocalizeFilterVal(param);
        if ((param == _AUCT('CmdAlsoOpposite')) or (param == "opposite")) then
                param = "opposite";
        end

        if (not Auctioneer.Util.IsValidAlso(param)) then
                if (chatprint) then
                        Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtUnknownRf'), param));
                end
                return
        end

        setFilter('also', param);

        if (chatprint) then
                setKhaosSetKeyValue('also', param);

                if (param == "off") then
                        Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActDisable'), _AUCT('CmdAlso')));

                else
                        Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActSet'), _AUCT('CmdAlso'), localizedParam));
                end
        end
end


function isValidLocale(param)
        return (AuctioneerLocalizations and AuctioneerLocalizations[param])
end


function setLocale(param, chatprint)
        param = Auctioneer.Util.DelocalizeFilterVal(param);
        local validLocale;

        if (param == 'default') or (param == 'off') then
                Babylonian.SetOrder('');
                validLocale = true;

        elseif (Auctioneer.Command.IsValidLocale(param)) then
                Babylonian.SetOrder(param);
                validLocale = true;

        else
                validLocale = false;
        end


        if (chatprint) then
                if (validLocale) then
                        Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActSet'), _AUCT('CmdLocale'), param));
                        setKhaosSetKeyValue('locale', Babylonian.GetOrder());

                else
                        Auctioneer.Util.ChatPrint(string.format(_AUCT("FrmtUnknownLocale"), param));
                        local locales = "    ";
                        for locale, data in pairs(AuctioneerLocalizations) do
                                locales = locales .. " '" .. locale .. "' ";
                        end
                        Auctioneer.Util.ChatPrint(locales);
                end
        end

        if (Auctioneer_Khaos_Registered) then
                Khaos.refresh(nil, nil, true)
        end

        commandMap = nil;
        commandMapRev = nil;
end


function default(param, chatprint)
        local paramLocalized

        if ( (param == nil) or (param == "") ) then
                return

        elseif ((param == _AUCT('CmdClearAll')) or (param == "all")) then
                param = "all"
                AuctionConfig.filters = {};

        else
                paramLocalized = param
                param = Auctioneer.Util.DelocalizeCommand(param)
                setFilter(param, nil);
        end

        Auctioneer.Util.SetFilterDefaults();            -- Apply defaults for settings that went missing

        if (chatprint) then
                if (param == "all") then
                        Auctioneer.Util.ChatPrint(_AUCT('FrmtActDefaultall'));
                        for k,v in pairs(AuctionConfig.filters) do
                                setKhaosSetKeyValue(k, Auctioneer.Command.GetFilterVal(k));
                        end

                else
                        Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActDefault'), paramLocalized));
                        setKhaosSetKeyValue(param, Auctioneer.Command.GetFilterVal(param));
                end
        end
end

--The following three functions were added by MentalPower to implement the /auc print-in command
function getFrameNames(index)

        local frames = {};
        local frameName = "";

        for i=1, 10 do
                local name, fontSize, r, g, b, a, shown, locked, docked = GetChatWindowInfo(i);

                if ( name == "" ) then
                        if (i == 1) then
                                frames[_AUCT('TextGeneral')] = 1;

                        elseif (i == 2) then
                                frames[_AUCT('TextCombat')] = 2;
                        end

                else
                        frames[name] = i;
                end
        end

        if (type(index) == "number") then
                local name, fontSize, r, g, b, a, shown, locked, docked = GetChatWindowInfo(index);

                if ( name == "" ) then
                        if (index == 1) then
                                frameName = _AUCT('TextGeneral');

                        elseif (index == 2) then
                                frameName = _AUCT('TextCombat');
                        end

                else
                        frameName = name;
                end
        end

        return frames, frameName;
end


function getFrameIndex()
        if (not AuctionConfig.filters) then AuctionConfig.filters = {}; end
        local value = AuctionConfig.filters["printframe"];

        if (not value) then
                return 1;
        end
        return value;
end


function setFrame(frame, chatprint)
        local frameNumber
        local frameVal
        frameVal = tonumber(frame)

        --If no arguments are passed, then set it to the default frame.
        if not (frame) then
                frameNumber = 1;

        --If the frame argument is a number then set our chatframe to that number.
        elseif ((frameVal) ~= nil) then
                frameNumber = frameVal;

        --If the frame argument is a string, find out if there's a chatframe with that name, and set our chatframe to that index. If not set it to the default frame.
        elseif (type(frame) == "string") then
                allFrames = getFrameNames();
                if (allFrames[frame]) then
                        frameNumber = allFrames[frame];
                else
                        frameNumber = 1;
                end

        --If the argument is something else, set our chatframe to its default value.
        else
                frameNumber = 1;
        end

        local _, frameName
        if (chatprint == true) then
                _, frameName = getFrameNames(frameNumber);
                if (getFrameIndex() ~= frameNumber) then
                        Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtPrintin'), frameName));
                end
        end

        setFilter("printframe", frameNumber);

        if (chatprint == true) then
                Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtPrintin'), frameName));
                setKhaosSetKeyValue("printframe", frameNumber);
        end
end

function protectWindow(param, chatprint)
        local mode;

        if (param == 'never' or param == 'off' or param == _AUCT('CmdProtectWindow0') or param == _AUCT('CmdOff') or tonumber(param) == 0) then
                mode = 0;

        elseif (param == 'scan' or param == _AUCT('CmdProtectWindow1') or tonumber(param) == 1) then
                mode = 1;

        elseif (param == 'always' or param == _AUCT('CmdProtectWindow2') or tonumber(param) == 2) then
                mode = 2;

        else
                Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtUnknownArg'), param, Auctioneer.Util.LocalizeCommand("protect-window")));
                return
        end

        setFilter("protect-window", mode);

        if (chatprint) then
                Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtProtectWindow'), _AUCT('CmdProtectWindow' .. mode)));
                setKhaosSetKeyValue("protect-window", mode);
        end
end

function auctionDuration(param, chatprint)
        local mode;

        if (param == 'last' or param == _AUCT('CmdAuctionDuration0') or tonumber(param) == 0) then
                mode = 0;

        elseif (param == '2h' or param == _AUCT('CmdAuctionDuration1') or tonumber(param) == 1) then
                mode = 1;

        elseif (param == '8h' or param == _AUCT('CmdAuctionDuration2') or tonumber(param) == 2) then
                mode = 2;

        elseif (param == '24h' or param == _AUCT('CmdAuctionDuration3') or tonumber(param) == 3) then
                mode = 3;

        else
                Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtUnknownArg'), param, Auctioneer.Util.LocalizeCommand("auction-duration")));
                return
        end

        setFilter("auction-duration", mode);

        if (chatprint) then
                Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtAuctionDuration'), _AUCT('CmdAuctionDuration' .. mode)));
                setKhaosSetKeyValue("auction-duration", mode);
        end
end

function finish(param, chatprint)
        local mode;

        if (param == 'off' or param == _AUCT('CmdFinish0') or tonumber(param) == 0) then
                mode = 0;

        elseif (param == 'logout' or param == _AUCT('CmdFinish1') or tonumber(param) == 1) then
                mode = 1;

        elseif (param == 'exit' or param == _AUCT('CmdFinish2') or tonumber(param) == 2) then
                mode = 2;

        else
                Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtUnknownArg'), param, Auctioneer.Util.LocalizeCommand("finish")));
                return
        end

        setFilter("finish", mode);

        if (chatprint) then
                Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtFinish'), _AUCT('CmdFinish' .. mode)));
                setKhaosSetKeyValue("finish", mode);
        end
end

function genVarSet(variable, param, chatprint)
        if (type(param) == "string") then
                param = Auctioneer.Util.DelocalizeFilterVal(param);
        end

        if (param == "on" or param == "off" or type(param) == "boolean") then
                setFilter(variable, param);
        elseif (param == "toggle" or param == nil or param == "") then
                param = setFilter(variable, not getFilter(variable));
        end

        if (chatprint) then
                if (getFilter(variable)) then
                        Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActEnable'), Auctioneer.Util.LocalizeCommand(variable)));
                        setKhaosSetKeyValue(variable, true)
                else
                        Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActDisable'), Auctioneer.Util.LocalizeCommand(variable)));
                        setKhaosSetKeyValue(variable, false)
                end
        end
end


function percentVarSet(variable, param, chatprint)
        local paramVal = tonumber(param);
        if paramVal == nil then
                -- failed to convert the param to a number

                if chatprint then
                        Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtUnknownArg'), param, variable));
                end
                return -- invalid argument, don't do anything
        end
        -- param is a valid number, save it
        setFilter(variable, paramVal);

        --Clear the HSP Cache since the profitability numbers have been updated.
        Auctioneer_HSPCache = {};

        if (chatprint) then
                Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActSet'), variable, paramVal.."%"));
                setKhaosSetKeyValue(variable, paramVal);
        end
end

function numVarSet(variable, param, chatprint)
        local paramVal = tonumber(param);
        if paramVal == nil then
                -- failed to convert the param to a number

                if chatprint then
                        Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtUnknownArg'), param, variable));
                end
                return -- invalid argument, don't do anything
        end
        -- param is a valid number, save it
        setFilter(variable, paramVal);

        if (chatprint) then
                Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActSet'), variable, paramVal));
                setKhaosSetKeyValue(variable, paramVal);
        end
end

--This marks the end of the New Command processing code.


function setFilter(key, value)
        if (not AuctionConfig.filters) then AuctionConfig.filters = {}; end
        if (type(value) == "boolean") then
                if (value) then
                        AuctionConfig.filters[key] = 'on';

                else
                        AuctionConfig.filters[key] = 'off';
                end

        else
                AuctionConfig.filters[key] = value;
        end
end

function getFilterVal(type)
        if (not AuctionConfig.filters) then
                AuctionConfig.filters = {};
                Auctioneer.Util.SetFilterDefaults();
        end
        local val = AuctionConfig.filters[type];
        if (val == nil) then
                val = Auctioneer.Core.Constants.FilterDefaults[type];
        end
        return val;
end

function getFilter(filter)
        value = getFilterVal(filter);
        if ((value == _AUCT('CmdOn')) or (value == "on")) then return true;

        elseif ((value == _AUCT('CmdOff')) or (value == "off")) then return false; end
        return true;
end

function findFilterClass(text)
        local totalFilters = getn(CLASS_FILTERS);
        for currentFilter=1, totalFilters do
                if (text == CLASS_FILTERS[currentFilter]) then
                        return currentFilter, totalFilters;
                end
        end
        return 0, totalFilters;
end

function filterSetFilter(checkbox, filter)
        checkbox.filterVal = filter;
        checkbox:SetChecked(getFilter(filter));
        checkbox:Show();
end

function getLocale()
        local locale = Auctioneer.Command.GetFilterVal('locale');
        if (locale == 'on') or (locale == 'off') or (locale == 'default') then
                return GetLocale();
        end
        return locale;
end


Auctioneer.Command = {
        Register = register,
        ConvertKhaos = convertKhaos,
        GetKhaosDefault = getKhaosDefault,
        RegisterKhaos = registerKhaos,
        BuildCommandMap = buildCommandMap,
        CommandMap = commandMap,
        CommandMapRev = commandMapRev,
        MainHandler = mainHandler,
        ChatPrintHelp = chatPrintHelp,
        OnOff = onOff,
        Clear = clear,
        AlsoInclude = alsoInclude,
        IsValidLocale = isValidLocale,
        SetLocale = setLocale,
        Default = default,
        GetFrameNames = getFrameNames,
        GetFrameIndex = getFrameIndex,
        SetFrame = setFrame,
        ProtectWindow = protectWindow,
        AuctionDuration = auctionDuration,
        Finish = finish,
        GenVarSet = genVarSet,
        PercentVarSet = percentVarSet,
        NumVarSet = numVarSet,
        SetFilter = setFilter,
        GetFilterVal = getFilterVal,
        GetFilter = getFilter,
        FindFilterClass = findFilterClass,
        FilterSetFilter = filterSetFilter,
        GetLocale = getLocale,
}