local _detalhes = _G._detalhes
local L = LibStub ("AceLocale-3.0"):GetLocale ( "Details" )

--> default weaktable
_detalhes.weaktable = {__mode = "v"}

--> globals
--[[global]] DETAILS_WA_AURATYPE_ICON = 1
--[[global]] DETAILS_WA_AURATYPE_TEXT = 2
--[[global]] DETAILS_WA_AURATYPE_BAR = 3

--[[global]] DETAILS_WA_TRIGGER_DEBUFF_PLAYER = 1
--[[global]] DETAILS_WA_TRIGGER_DEBUFF_TARGET = 2
--[[global]] DETAILS_WA_TRIGGER_DEBUFF_FOCUS = 3

--[[global]] DETAILS_WA_TRIGGER_BUFF_PLAYER = 4
--[[global]] DETAILS_WA_TRIGGER_BUFF_TARGET = 5
--[[global]] DETAILS_WA_TRIGGER_BUFF_FOCUS = 6

--[[global]] DETAILS_WA_TRIGGER_CAST_START = 7
--[[global]] DETAILS_WA_TRIGGER_CAST_OKEY = 8

--[[global]] DETAILS_WA_TRIGGER_DBM_TIMER = 9
--[[global]] DETAILS_WA_TRIGGER_BW_TIMER = 10

--[[global]] DETAILS_WA_TRIGGER_INTERRUPT = 11
--[[global]] DETAILS_WA_TRIGGER_DISPELL = 12

local text_dispell_prototype = {
    ["outline"] = true,
    ["fontSize"] = 24,
    ["color"] = {1, 1, 1, 1},
    ["displayText"] = "%c\n",
    ["customText"] = "function()\n    return aura_env.text\nend \n\n",
    ["untrigger"] = {
        ["custom"] = "function()\n    return not InCombatLockdown()\nend",
    },
    ["regionType"] = "text",
    ["customTextUpdate"] = "event",
    ["actions"] = {
        ["start"] = {
            ["do_custom"] = false,
            ["custom"] = "",
        },
        ["init"] = {
            ["do_custom"] = true,
            ["custom"] = "aura_env.text = \"\"\naura_env.success = 0\naura_env.dispelled = 0\naura_env.dispels_by = {}",
        },
        ["finish"] = {
        },
    },
    ["anchorPoint"] = "CENTER",
    ["additional_triggers"] = {
    },
    ["trigger"] = {
        ["spellId"] = "",
        ["message_operator"] = "==",
        ["unit"] = "player",
        ["debuffType"] = "HELPFUL",
        ["custom_hide"] = "custom",
        ["spellName"] = "",
        ["type"] = "custom",
        ["subeventSuffix"] = "_CAST_SUCCESS",
        ["custom_type"] = "event",
        ["unevent"] = "timed",
        ["use_addon"] = false,
        ["event"] = "Health",
        ["events"] = "COMBAT_LOG_EVENT_UNFILTERED, ENCOUNTER_START",
        ["use_spellName"] = false,
        ["use_spellId"] = false,
        ["custom"] = "function (event, time, token, hidding, who_serial, who_name, who_flags, who_flags2, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spelltype, extraSpellID, extraSpellName, extraSchool)\n    if (event == \"COMBAT_LOG_EVENT_UNFILTERED\") then\n        \n        if ((token == \"SPELL_DISPEL\" or token == \"SPELL_STOLEN\") and extraSpellID == 159947) then\n            aura_env.dispelled = aura_env.dispelled + 1\n            aura_env.dispels_by [who_name] = (aura_env.dispels_by [who_name] or 0) + 1\n            \n            aura_env.text = aura_env.text .. \"|cffd2e8ff\" .. who_name ..  \" (\" .. aura_env.dispels_by [who_name] .. \") \".. \"|r\\n\"\n            \n            if (select (2, aura_env.text:gsub (\"\\n\", \"\")) == 9) then\n                aura_env.text = aura_env.text:gsub (\".-\\n\", \"\", 1)\n            end\n            return true\n        end        \n    else\n        aura_env.text = \"\"\n        aura_env.success = 0\n        aura_env.dispelled = 0\n        wipe (aura_env.dispels_by)\n        return true        \n    end\nend",
        ["spellIds"] = {
        },
        ["use_message"] = true,
        ["subeventPrefix"] = "SPELL",
        ["use_unit"] = true,
        ["names"] = {},
    },
    ["justify"] = "LEFT",
    ["selfPoint"] = "BOTTOM",
    ["disjunctive"] = true,
    ["frameStrata"] = 1,
    ["width"] = 1.46286010742188,
    ["animation"] = {
        ["start"] = {
            ["type"] = "none",
            ["duration_type"] = "seconds",
        },
        ["main"] = {
            ["type"] = "none",
            ["duration_type"] = "seconds",
        },
        ["finish"] = {
            ["type"] = "none",
            ["duration_type"] = "seconds",
        },
    },
    ["font"] = "Friz Quadrata TT",
    ["numTriggers"] = 1,
    ["xOffset"] = -403.999786376953,
    ["height"] = 47.3586845397949,
    ["displayIcon"] = "Interface\\Icons\\inv_misc_steelweaponchain",
    ["load"] = {
        ["talent"] = {
            ["multi"] = {
            },
        },
        ["encounterid"] = "1721",
        ["use_encounterid"] = true,
        ["difficulty"] = {
            ["multi"] = {
            },
        },
        ["role"] = {
            ["multi"] = {
            },
        },
        ["class"] = {
            ["multi"] = {
            },
        },
        ["race"] = {
            ["multi"] = {
            },
        },
        ["spec"] = {
            ["multi"] = {
            },
        },
        ["size"] = {
            ["multi"] = {
            },
        },
    },
    ["yOffset"] = 174.820495605469,
}

local text_interrupt_prototype = {
    ["outline"] = true,
    ["fontSize"] = 12,
    ["color"] = {1, 1, 1, 1},
    ["displayText"] = "%c\n",
    ["customText"] = "function()\n    return aura_env.text\nend \n\n",
    ["yOffset"] = 174.820495605469,
    ["anchorPoint"] = "CENTER",
    ["customTextUpdate"] = "event",
    ["actions"] = {
        ["start"] = {
            ["do_custom"] = false,
            ["custom"] = "",
        },
        ["finish"] = {
        },
        ["init"] = {
            ["do_custom"] = true,
            ["custom"] = "aura_env.text = \"\"\naura_env.success = 0\naura_env.interrupted = 0",
        },
    },
    ["untrigger"] = {
        ["custom"] = "function()\n    return not InCombatLockdown()\nend\n",
    },
    ["trigger"] = {
        ["spellId"] = "",
        ["message_operator"] = "==",
        ["subeventPrefix"] = "SPELL",
        ["unit"] = "player",
        ["debuffType"] = "HELPFUL",
        ["names"] = {},
        ["use_addon"] = false,
        ["use_unit"] = true,
        ["subeventSuffix"] = "_CAST_SUCCESS",
        ["spellName"] = "",
        ["type"] = "custom",
        ["event"] = "Health",
        ["spellIds"] = {
        },
        ["use_spellName"] = false,
        ["use_spellId"] = false,
        ["custom"] = "function (evento, time, token, hidding, who_serial, who_name, who_flags, who_flags2, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spelltype, extraSpellID, extraSpellName, extraSchool)\n    \n    if (evento == \"COMBAT_LOG_EVENT_UNFILTERED\") then\n        \n        if (token == \"SPELL_CAST_SUCCESS\" and spellid == 165416) then\n            aura_env.success = aura_env.success + 1\n            aura_env.text = aura_env.text .. \"SUCCESS! (\" .. aura_env.success .. \")\\n\"\n            \n            return true\n            \n        elseif (token == \"SPELL_INTERRUPT\" and extraSpellID == 165416) then\n            aura_env.interrupted = aura_env.interrupted + 1\n            aura_env.text = aura_env.text .. who_name ..  \" (\" .. aura_env.interrupted .. \") \".. \"\\n\"\n            return true\n        end\n    else\n        aura_env.text = \"\"\n        aura_env.success = 0\n        aura_env.interrupted = 0\n        return true        \n    end\n    \nend\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
        ["events"] = "COMBAT_LOG_EVENT_UNFILTERED, ENCOUNTER_START",
        ["use_message"] = true,
        ["unevent"] = "timed",
        ["custom_type"] = "event",
        ["custom_hide"] = "custom",
    },
    ["justify"] = "LEFT",
    ["selfPoint"] = "BOTTOM",
    ["additional_triggers"] = {
    },
    ["xOffset"] = -403.999786376953,
    ["frameStrata"] = 1,
    ["width"] = 1.46286010742188,
    ["animation"] = {
        ["start"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
        ["main"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
        ["finish"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
    },
    ["font"] = "Friz Quadrata TT",
    ["numTriggers"] = 1,
    ["height"] = 23.6792984008789,
    ["regionType"] = "text",
    ["load"] = {
        ["talent"] = {
            ["multi"] = {
            },
        },
        ["class"] = {
            ["multi"] = {
            },
        },
        ["use_encounterid"] = true,
        ["difficulty"] = {
            ["multi"] = {
            },
        },
        ["role"] = {
            ["multi"] = {
            },
        },
        ["spec"] = {
            ["multi"] = {
            },
        },
        ["race"] = {
            ["multi"] = {
            },
        },
        ["size"] = {
            ["multi"] = {
            },
        },
    },
    ["disjunctive"] = true,
}

local group_prototype_boss_mods = {
    ["grow"] = "DOWN",
    ["controlledChildren"] = {
    },
    ["borderBackdrop"] = "Blizzard Tooltip",
    ["xOffset"] = 0,
    ["yOffset"] = 0,
    ["anchorPoint"] = "CENTER",
    ["borderColor"] = {
        0, -- [1]
        0, -- [2]
        0, -- [3]
        1, -- [4]
    },
    ["space"] = 2,
    ["actions"] = {
        ["start"] = {
        },
        ["finish"] = {
        },
        ["init"] = {
        },
    },
    ["triggers"] = {
        {
            ["trigger"] = {
                ["debuffType"] = "HELPFUL",
                ["type"] = "aura2",
                ["spellIds"] = {
                },
                ["subeventSuffix"] = "_CAST_START",
                ["unit"] = "player",
                ["subeventPrefix"] = "SPELL",
                ["event"] = "Health",
                ["names"] = {
                },
            },
            ["untrigger"] = {
            },
        }, -- [1]
    },
    ["columnSpace"] = 1,
    ["radius"] = 200,
    ["selfPoint"] = "TOP",
    ["align"] = "CENTER",
    ["stagger"] = 0,
    ["subRegions"] = {
    },
    ["load"] = {
        ["spec"] = {
            ["multi"] = {
            },
        },
        ["class"] = {
            ["multi"] = {
            },
        },
        ["size"] = {
            ["multi"] = {
            },
        },
    },
    ["backdropColor"] = {
        1, -- [1]
        1, -- [2]
        1, -- [3]
        0.5, -- [4]
    },
    ["animate"] = false,
    ["arcLength"] = 360,
    ["scale"] = 1,
    ["fullCircle"] = true,
    ["border"] = false,
    ["borderEdge"] = "Square Full White",
    ["regionType"] = "dynamicgroup",
    ["borderSize"] = 2,
    ["sort"] = "none",
    ["internalVersion"] = 35,
    ["rotation"] = 0,
    ["constantFactor"] = "RADIUS",
    ["useLimit"] = false,
    ["borderOffset"] = 4,
    ["limit"] = 5,
    ["gridType"] = "RD",
    ["id"] = "Details! Boss Mods Group",
    ["borderInset"] = 1,
    ["frameStrata"] = 1,
    ["anchorFrameType"] = "SCREEN",
    ["gridWidth"] = 5,
    ["uid"] = "I7Y0mTf5KSP",
    ["rowSpace"] = 1,
    ["authorOptions"] = {
    },
    ["conditions"] = {
    },
    ["animation"] = {
        ["start"] = {
            ["easeStrength"] = 3,
            ["type"] = "none",
            ["duration_type"] = "seconds",
            ["easeType"] = "none",
        },
        ["main"] = {
            ["easeStrength"] = 3,
            ["type"] = "none",
            ["duration_type"] = "seconds",
            ["easeType"] = "none",
        },
        ["finish"] = {
            ["easeStrength"] = 3,
            ["type"] = "none",
            ["duration_type"] = "seconds",
            ["easeType"] = "none",
        },
    },
    ["config"] = {
    },
}

local group_prototype = {
    ["grow"] = "DOWN",
    ["controlledChildren"] = {
    },
    ["borderBackdrop"] = "Blizzard Tooltip",
    ["xOffset"] = 0,
    ["yOffset"] = 0,
    ["anchorPoint"] = "CENTER",
    ["borderColor"] = {
        0, -- [1]
        0, -- [2]
        0, -- [3]
        1, -- [4]
    },
    ["space"] = 2,
    ["actions"] = {
        ["start"] = {
        },
        ["finish"] = {
        },
        ["init"] = {
        },
    },
    ["triggers"] = {
        {
            ["trigger"] = {
                ["debuffType"] = "HELPFUL",
                ["type"] = "aura2",
                ["spellIds"] = {
                },
                ["subeventSuffix"] = "_CAST_START",
                ["unit"] = "player",
                ["subeventPrefix"] = "SPELL",
                ["event"] = "Health",
                ["names"] = {
                },
            },
            ["untrigger"] = {
            },
        }, -- [1]
    },
    ["columnSpace"] = 1,
    ["radius"] = 200,
    ["selfPoint"] = "TOP",
    ["align"] = "CENTER",
    ["stagger"] = 0,
    ["subRegions"] = {
    },
    ["load"] = {
        ["spec"] = {
            ["multi"] = {
            },
        },
        ["class"] = {
            ["multi"] = {
            },
        },
        ["size"] = {
            ["multi"] = {
            },
        },
    },
    ["backdropColor"] = {
        1, -- [1]
        1, -- [2]
        1, -- [3]
        0.5, -- [4]
    },
    ["animate"] = false,
    ["arcLength"] = 360,
    ["scale"] = 1,
    ["fullCircle"] = true,
    ["border"] = false,
    ["borderEdge"] = "Square Full White",
    ["regionType"] = "dynamicgroup",
    ["borderSize"] = 2,
    ["sort"] = "none",
    ["internalVersion"] = 35,
    ["rotation"] = 0,
    ["constantFactor"] = "RADIUS",
    ["useLimit"] = false,
    ["borderOffset"] = 4,
    ["limit"] = 5,
    ["gridType"] = "RD",
    ["id"] = "Details! Aura Group",
    ["borderInset"] = 1,
    ["frameStrata"] = 1,
    ["anchorFrameType"] = "SCREEN",
    ["gridWidth"] = 5,
    ["uid"] = "I7Y0mTf5KSP",
    ["rowSpace"] = 1,
    ["authorOptions"] = {
    },
    ["conditions"] = {
    },
    ["animation"] = {
        ["start"] = {
            ["easeStrength"] = 3,
            ["type"] = "none",
            ["duration_type"] = "seconds",
            ["easeType"] = "none",
        },
        ["main"] = {
            ["easeStrength"] = 3,
            ["type"] = "none",
            ["duration_type"] = "seconds",
            ["easeType"] = "none",
        },
        ["finish"] = {
            ["easeStrength"] = 3,
            ["type"] = "none",
            ["duration_type"] = "seconds",
            ["easeType"] = "none",
        },
    },
    ["config"] = {
    },
}

local bar_dbm_timerbar_prototype = {
        ["sparkWidth"] = 30,
        ["stacksSize"] = 12,
        ["xOffset"] = -102.999938964844,
        ["stacksFlags"] = "None",
        ["yOffset"] = 328.723449707031,
        ["anchorPoint"] = "CENTER",
        ["borderColor"] = {0, 0, 0, 1},
        ["rotateText"] = "NONE",
        ["backgroundColor"] = {
            0, -- [1]
            0, -- [2]
            0, -- [3]
            0.5, -- [4]
        },
        ["fontFlags"] = "OUTLINE",
        ["icon_color"] = {
            1, -- [1]
            1, -- [2]
            1, -- [3]
            1, -- [4]
        },
        ["selfPoint"] = "CENTER",
        ["barColor"] = {
            0.976470588235294, -- [1]
            0.992156862745098, -- [2]
            1, -- [3]
            0.683344513177872, -- [4]
        },
        ["desaturate"] = false,
        ["sparkOffsetY"] = 0,
        ["load"] = {
            ["difficulty"] = {
                ["multi"] = {
                },
            },
            ["race"] = {
                ["multi"] = {
                },
            },
            ["role"] = {
                ["multi"] = {
                },
            },
            ["talent"] = {
                ["multi"] = {
                },
            },
            ["class"] = {
                ["multi"] = {
                },
            },
            ["spec"] = {
                ["multi"] = {
                },
            },
            ["faction"] = {
                ["multi"] = {
                },
            },
            ["size"] = {
                ["multi"] = {
                },
            },
        },
        ["timerColor"] = {
            1, -- [1]
            1, -- [2]
            1, -- [3]
            1, -- [4]
        },
        ["regionType"] = "aurabar",
        ["stacks"] = false,
        ["sparkDesaturate"] = false,
        ["texture"] = "Blizzard Raid Bar",
        ["textFont"] = "Friz Quadrata TT",
        ["zoom"] = 0.3,
        ["spark"] = true,
        ["timerFont"] = "Friz Quadrata TT",
        ["alpha"] = 1,
        ["borderInset"] = 4,
        ["displayIcon"] = "REPLACE-ME",
        ["textColor"] = {
            1, -- [1]
            1, -- [2]
            1, -- [3]
            1, -- [4]
        },
        ["borderBackdrop"] = "Blizzard Tooltip",
        ["barInFront"] = true,
        ["sparkRotationMode"] = "AUTO",
        ["displayTextLeft"] = "REPLACE-ME",
        ["animation"] = {
            ["start"] = {
                ["duration_type"] = "seconds",
                ["type"] = "none",
            },
            ["main"] = {
                ["duration_type"] = "seconds",
                ["type"] = "none",
            },
            ["finish"] = {
                ["duration_type"] = "seconds",
                ["type"] = "none",
            },
        },
        ["trigger"] = {
            ["type"] = "custom",
            ["subeventSuffix"] = "_CAST_START",
            ["custom"] = "function() return true end",
            ["event"] = "Health",
            ["unit"] = "player",
            ["customDuration"] = "function()\n    return aura_env.reimaningTime, (aura_env.enabledAt or 0) + aura_env.reimaningTime\nend",
            ["custom_type"] = "status",
            ["spellIds"] = {
            },
            ["custom_hide"] = "timed",
            ["check"] = "update",
            ["subeventPrefix"] = "SPELL",
            ["names"] = {},
            ["debuffType"] = "HELPFUL",
        },
        ["text"] = true,
        ["stickyDuration"] = false,
        ["height"] = 40,
        ["timerFlags"] = "None",
        ["sparkBlendMode"] = "ADD",
        ["backdropColor"] = {
            0, -- [1]
            0, -- [2]
            0, -- [3]
            1, -- [4]
        },
        ["additional_triggers"] = {
            {
                ["trigger"] = {
                    ["type"] = "status",
                    ["spellId"] = "999999",
                    ["subeventSuffix"] = "_CAST_START",
                    ["use_spellId"] = true,
                    ["remaining_operator"] = "<=",
                    ["event"] = "DBM Timer",
                    ["subeventPrefix"] = "SPELL",
                    ["remaining"] = "5",
                    ["unit"] = "player",
                    ["use_unit"] = true,
                    ["unevent"] = "auto",
                    ["use_remaining"] = true,
                },
                ["untrigger"] = {
                },
            }, -- [1]
        },
        ["actions"] = {
            ["start"] = {
                ["do_custom"] = true,
                ["custom"] = "aura_env.enabledAt = GetTime()",
            },
            ["finish"] = {
            },
            ["init"] = {
                ["do_custom"] = true,
                ["custom"] = "aura_env.reimaningTime = 5",
            },
        },
        ["untrigger"] = {
        },
        ["textFlags"] = "None",
        ["border"] = false,
        ["borderEdge"] = "1 Pixel",
        ["sparkOffsetX"] = 1,
        ["borderSize"] = 1,
        ["stacksFont"] = "Friz Quadrata TT",
        ["icon_side"] = "LEFT",
        ["textSize"] = 16,
        ["timer"] = true,
        ["sparkHeight"] = 73,
        ["sparkRotation"] = 0,
        ["customTextUpdate"] = "update",
        ["stacksColor"] = {
            1, -- [1]
            1, -- [2]
            1, -- [3]
            1, -- [4]
        },
        ["displayTextRight"] = "%p",
        ["icon"] = true,
        ["inverse"] = false,
        ["frameStrata"] = 1,
        ["width"] = 450,
        ["sparkColor"] = {
            0.976470588235294, -- [1]
            0.992156862745098, -- [2]
            1, -- [3]
            0.355040311813355, -- [4]
        },
        ["timerSize"] = 16,
        ["numTriggers"] = 2,
        ["sparkDesature"] = false,
        ["orientation"] = "HORIZONTAL",
        ["borderOffset"] = 10,
        ["auto"] = true,
        ["sparkTexture"] = "Interface\\CastingBar\\UI-CastingBar-Spark",
}

local icon_dbm_timerbar_prototype = {
    ["xOffset"] = -110,
    ["yOffset"] = 182.978759765625,
    ["anchorPoint"] = "CENTER",
    ["customTextUpdate"] = "update",
    ["icon"] = true,
    ["fontFlags"] = "OUTLINE",
    ["selfPoint"] = "CENTER",
    ["trigger"] = {
        ["type"] = "custom",
        ["subeventSuffix"] = "_CAST_START",
        ["event"] = "Health",
        ["unit"] = "player",
        ["customDuration"] = "function()\n    return aura_env.reimaningTime, (aura_env.enabledAt or 0) + aura_env.reimaningTime\nend",
        ["custom"] = "function() return true end",
        ["spellIds"] = {
        },
        ["custom_type"] = "status",
        ["check"] = "update",
        ["subeventPrefix"] = "SPELL",
        ["names"] = {},
        ["debuffType"] = "HELPFUL",
    },
    ["desaturate"] = false,
    ["font"] = "Friz Quadrata TT",
    ["height"] = 200.170227050781,
    ["load"] = {
        ["difficulty"] = {
            ["multi"] = {
            },
        },
        ["race"] = {
            ["multi"] = {
            },
        },
        ["role"] = {
            ["multi"] = {
            },
        },
        ["talent"] = {
            ["multi"] = {
            },
        },
        ["spec"] = {
            ["multi"] = {
            },
        },
        ["class"] = {
            ["multi"] = {
            },
        },
        ["faction"] = {
            ["multi"] = {
            },
        },
        ["size"] = {
            ["multi"] = {
            },
        },
    },
    ["fontSize"] = 24,
    ["displayStacks"] = "",
    ["regionType"] = "icon",
    ["init_completed"] = 1,
    ["actions"] = {
        ["start"] = {
            ["do_custom"] = true,
            ["custom"] = "aura_env.enabledAt = GetTime()\n\n\n\n",
        },
        ["finish"] = {
        },
        ["init"] = {
            ["do_custom"] = true,
            ["custom"] = "aura_env.reimaningTime = 5",
        },
    },
    ["cooldown"] = false,
    ["stacksContainment"] = "OUTSIDE",
    ["zoom"] = 0.3,
    ["auto"] = true,
    ["additional_triggers"] = {
        {
            ["trigger"] = {
                ["type"] = "status",
                ["spellId"] = "999999",
                ["subeventSuffix"] = "_CAST_START",
                ["use_spellId"] = true,
                ["remaining_operator"] = "<=",
                ["event"] = "DBM Timer",
                ["subeventPrefix"] = "SPELL",
                ["remaining"] = "5",
                ["unit"] = "player",
                ["use_unit"] = true,
                ["unevent"] = "auto",
                ["use_remaining"] = true,
            },
            ["untrigger"] = {
            },
        }, -- [1]
    },
    ["color"] = {
        1, -- [1]
        1, -- [2]
        1, -- [3]
        1, -- [4]
    },
    ["frameStrata"] = 1,
    ["width"] = 206.000076293945,
    ["untrigger"] = {
    },
    ["inverse"] = false,
    ["numTriggers"] = 2,
    ["animation"] = {
        ["start"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
        ["main"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
        ["finish"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
    },
    ["stickyDuration"] = false,
    ["displayIcon"] = "Interface\\Icons\\Spell_Fire_Fire",
    ["stacksPoint"] = "BOTTOM",
    ["textColor"] = {
        1, -- [1]
        1, -- [2]
        1, -- [3]
        1, -- [4]
    },
}

local text_dbm_timerbar_prototype = {
    ["outline"] = true,
    ["fontSize"] = 60,
    ["color"] = {0.8, 1, 0.8, 1},
    ["displayText"] = "%c\n",
    ["customText"] = "function()\n    local at = aura_env.untrigger_at\n    if (at) then\n        return \"\" .. aura_env.ability_text .. \"\\n==>     \" .. format (\"%.1f\", at - GetTime()) .. \"     <==\"\n    else\n        return \"\"\n    end    \n    \nend\n",
    ["yOffset"] = 157.554321289063,
    ["anchorPoint"] = "CENTER",
    ["customTextUpdate"] = "update",
    ["actions"] = {
        ["start"] = {
            ["do_custom"] = true,
            ["custom"] = "aura_env.untrigger_at = GetTime() + aura_env.remaining_trigger",
        },
        ["finish"] = {
        },
        ["init"] = {
            ["do_custom"] = true,
            ["custom"] = "",
        },
    },
    ["justify"] = "CENTER",
    ["selfPoint"] = "BOTTOM",
    ["trigger"] = {
        ["remaining_operator"] = "<=",
        ["message_operator"] = "find('%s')",
        ["names"] = {},
        ["remaining"] = "6",
        ["debuffType"] = "HELPFUL",
        ["use_id"] = true,
        ["subeventSuffix"] = "_CAST_START",
        ["id"] = "Timer186333cd asd",
        ["use_remaining"] = true,
        ["event"] = "DBM Timer",
        ["unevent"] = "auto",
        ["message"] = "",
        ["use_spellId"] = false,
        ["spellIds"] = {
        },
        ["type"] = "status",
        ["use_message"] = false,
        ["unit"] = "player",
        ["use_unit"] = true,
        ["subeventPrefix"] = "SPELL",
    },
    ["untrigger"] = {
    },
    ["frameStrata"] = 1,
    ["width"] = 3.2914137840271,
    ["animation"] = {
        ["start"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
        ["main"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
        ["finish"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
    },
    ["font"] = "Friz Quadrata TT",
    ["numTriggers"] = 1,
    ["xOffset"] = -18.0000610351563,
    ["height"] = 114.000053405762,
    ["load"] = {
        ["difficulty"] = {
            ["multi"] = {
            },
        },
        ["race"] = {
            ["multi"] = {
            },
        },
        ["talent"] = {
            ["multi"] = {
            },
        },
        ["role"] = {
            ["multi"] = {
            },
        },
        ["spec"] = {
            ["multi"] = {
            },
        },
        ["class"] = {
            ["multi"] = {
            },
        },
        ["size"] = {
            ["multi"] = {
            },
        },
    },
    ["regionType"] = "text",
}

local text_prototype = {
    ["outline"] = true,
    ["fontSize"] = 12,
    ["color"] = {1, 1, 1, 1},
    ["displayText"] = "",
    ["yOffset"] = 0,
    ["anchorPoint"] = "CENTER",
    ["customTextUpdate"] = "update",
    ["actions"] = {
        ["start"] = {
        },
        ["finish"] = {
        },
        ["init"] = {
        },
    },
    ["justify"] = "LEFT",
    ["selfPoint"] = "BOTTOM",
    ["trigger"] = {
        ["type"] = "aura",
        ["spellId"] = "0",
        ["subeventSuffix"] = "_CAST_START",
        ["custom_hide"] = "timed",
        ["event"] = "Health",
        ["subeventPrefix"] = "SPELL",
        ["debuffClass"] = "magic",
        ["use_spellId"] = true,
        ["spellIds"] = {},
        ["name_operator"] = "==",
        ["fullscan"] = true,
        ["unit"] = "player",
        ["names"] = {},
        ["debuffType"] = "HARMFUL",
    },
    ["untrigger"] = {
    },
    ["frameStrata"] = 1,
    ["width"] = 31.0000057220459,
    ["animation"] = {
        ["start"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
        ["main"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
        ["finish"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
    },
    ["font"] = "Friz Quadrata TT",
    ["numTriggers"] = 1,
    ["xOffset"] = 0,
    ["height"] = 11.8704862594604,
    ["load"] = {
        ["use_combat"] = true,
        ["race"] = {
            ["multi"] = {
            },
        },
        ["talent"] = {
            ["multi"] = {
            },
        },
        ["role"] = {
            ["multi"] = {
            },
        },
        ["spec"] = {
            ["multi"] = {
            },
        },
        ["class"] = {
            ["multi"] = {
            },
        },
        ["size"] = {
            ["multi"] = {
            },
        },
    },
    ["regionType"] = "text",
}

local aurabar_prototype = {
    ["sparkWidth"] = 10,
    ["stacksSize"] = 12,
    ["xOffset"] = 0,
    ["stacksFlags"] = "None",
    ["yOffset"] = 0,
    ["anchorPoint"] = "CENTER",
    ["borderColor"] = {1, 1, 1, 0.5},
    ["rotateText"] = "NONE",
    ["backgroundColor"] = { 0, 0, 0, 0.5,},
    ["fontFlags"] = "OUTLINE",
    ["icon_color"] = {1, 1, 1, 1},
    ["selfPoint"] = "CENTER",
    ["barColor"] = {1, 0, 0, 1},
    ["desaturate"] = false,
    ["sparkOffsetY"] = 0,
    ["load"] = {
        ["use_combat"] = true,
        ["race"] = {
            ["multi"] = {
            },
        },
        ["talent"] = {
            ["multi"] = {
            },
        },
        ["role"] = {
            ["multi"] = {
            },
        },
        ["spec"] = {
            ["multi"] = {
            },
        },
        ["class"] = {
            ["multi"] = {
            },
        },
        ["size"] = {
            ["multi"] = {
            },
        },
    },
    ["timerColor"] = {1, 1, 1, 1},
    ["regionType"] = "aurabar",
    ["stacks"] = true,
    ["texture"] = "Skyline",
    ["textFont"] = "Friz Quadrata TT",
    ["zoom"] = 0,
    ["spark"] = false,
    ["timerFont"] = "Friz Quadrata TT",
    ["alpha"] = 1,
    ["borderInset"] = 11,
    ["textColor"] = {1, 1, 1, 1},
    ["borderBackdrop"] = "Blizzard Tooltip",
    ["barInFront"] = true,
    ["sparkRotationMode"] = "AUTO",
    ["displayTextLeft"] = "%n",
    ["animation"] = {
        ["start"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
        ["main"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
        ["finish"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
    },
    ["trigger"] = {
        ["type"] = "aura",
        ["spellId"] = "0",
        ["subeventSuffix"] = "_CAST_START",
        ["custom_hide"] = "timed",
        ["event"] = "Health",
        ["subeventPrefix"] = "SPELL",
        ["debuffClass"] = "magic",
        ["use_spellId"] = true,
        ["spellIds"] = {},
        ["name_operator"] = "==",
        ["fullscan"] = true,
        ["unit"] = "player",
        ["names"] = {},
        ["debuffType"] = "HARMFUL",
    },
    ["text"] = true,
    ["stickyDuration"] = false,
    ["height"] = 15,
    ["timerFlags"] = "None",
    ["sparkBlendMode"] = "ADD",
    ["backdropColor"] = {1, 1, 1, 0.5},
    ["untrigger"] = {
    },
    ["actions"] = {
        ["start"] = {
        },
        ["finish"] = {
        },
        ["init"] = {
        },
    },
    ["textFlags"] = "None",
    ["border"] = false,
    ["borderEdge"] = "None",
    ["sparkOffsetX"] = 0,
    ["borderSize"] = 16,
    ["stacksFont"] = "Friz Quadrata TT",
    ["icon_side"] = "RIGHT",
    ["textSize"] = 12,
    ["timer"] = true,
    ["sparkHeight"] = 30,
    ["sparkRotation"] = 0,
    ["customTextUpdate"] = "update",
    ["stacksColor"] = {1, 1, 1, 1},
    ["displayTextRight"] = "%p",
    ["icon"] = true,
    ["inverse"] = false,
    ["frameStrata"] = 1,
    ["width"] = 200,
    ["sparkColor"] = {1, 1, 1, 1},
    ["timerSize"] = 12,
    ["numTriggers"] = 1,
    ["sparkDesature"] = false,
    ["orientation"] = "HORIZONTAL",
    ["borderOffset"] = 5,
    ["auto"] = true,
    ["sparkTexture"] = "Interface\\CastingBar\\UI-CastingBar-Spark",
}

local icon_prototype = {
    {
        ["authorOptions"] = {
        },
        ["yOffset"] = 0,
        ["anchorPoint"] = "CENTER",
        ["cooldownSwipe"] = true,
        ["cooldownEdge"] = false,
        ["actions"] = {
            ["start"] = {
            },
            ["finish"] = {
            },
            ["init"] = {
            },
        },
        ["triggers"] = {
            {
                ["trigger"] = {
                    ["type"] = "aura2",
                    ["subeventSuffix"] = "_CAST_START",
                    ["event"] = "Health",
                    ["names"] = {
                    },
                    ["spellIds"] = {
                    },
                    ["auranames"] = {
                        "Aspect of the Wild", -- [1]
                    },
                    ["useName"] = true,
                    ["subeventPrefix"] = "SPELL",
                    ["unit"] = "player",
                    ["debuffType"] = "HELPFUL",
                },
                ["untrigger"] = {
                },
            }, -- [1]
            ["activeTriggerMode"] = -10,
        },
        ["internalVersion"] = 35,
        ["keepAspectRatio"] = false,
        ["animation"] = {
            ["start"] = {
                ["easeStrength"] = 3,
                ["type"] = "none",
                ["duration_type"] = "seconds",
                ["easeType"] = "none",
            },
            ["main"] = {
                ["easeStrength"] = 3,
                ["type"] = "none",
                ["duration_type"] = "seconds",
                ["easeType"] = "none",
            },
            ["finish"] = {
                ["easeStrength"] = 3,
                ["type"] = "none",
                ["duration_type"] = "seconds",
                ["easeType"] = "none",
            },
        },
        ["desaturate"] = false,
        ["subRegions"] = {
            {
                ["text_shadowXOffset"] = 0,
                ["text_text_format_s_format"] = "none",
                ["text_text"] = "%s",
                ["text_shadowColor"] = {
                    0, -- [1]
                    0, -- [2]
                    0, -- [3]
                    1, -- [4]
                },
                ["text_selfPoint"] = "AUTO",
                ["text_automaticWidth"] = "Auto",
                ["text_fixedWidth"] = 64,
                ["anchorYOffset"] = 0,
                ["text_justify"] = "CENTER",
                ["rotateText"] = "NONE",
                ["type"] = "subtext",
                ["text_color"] = {
                    1, -- [1]
                    1, -- [2]
                    1, -- [3]
                    1, -- [4]
                },
                ["text_font"] = "Friz Quadrata TT",
                ["text_shadowYOffset"] = 0,
                ["text_wordWrap"] = "WordWrap",
                ["text_visible"] = true,
                ["text_anchorPoint"] = "INNER_BOTTOMRIGHT",
                ["text_fontSize"] = 12,
                ["anchorXOffset"] = 0,
                ["text_fontType"] = "OUTLINE",
            }, -- [1]
            {
                ["glowFrequency"] = 0.25,
                ["type"] = "subglow",
                ["useGlowColor"] = false,
                ["glowType"] = "buttonOverlay",
                ["glowLength"] = 10,
                ["glowYOffset"] = 0,
                ["glowColor"] = {
                    1, -- [1]
                    1, -- [2]
                    1, -- [3]
                    1, -- [4]
                },
                ["glowXOffset"] = 0,
                ["glow"] = false,
                ["glowScale"] = 1,
                ["glowThickness"] = 1,
                ["glowLines"] = 8,
                ["glowBorder"] = false,
            }, -- [2]
        },
        ["height"] = 64,
        ["load"] = {
            ["spec"] = {
                ["multi"] = {
                },
            },
            ["class"] = {
                ["multi"] = {
                },
            },
            ["size"] = {
                ["multi"] = {
                },
            },
        },
        ["regionType"] = "icon",
        ["selfPoint"] = "CENTER",
        ["width"] = 64,
        ["frameStrata"] = 1,
        ["zoom"] = 0,
        ["auto"] = true,
        ["xOffset"] = 0,
        ["id"] = "+++Buff+++",
        ["color"] = {
            1, -- [1]
            1, -- [2]
            1, -- [3]
            1, -- [4]
        },
        ["alpha"] = 1,
        ["anchorFrameType"] = "SCREEN",
        ["icon"] = true,
        ["uid"] = "he8Lr19gc64",
        ["inverse"] = false,
        ["cooldownTextDisabled"] = false,
        ["conditions"] = {
        },
        ["cooldown"] = false,
        ["config"] = {
        },
    }
}

local actions_prototype = {
    ["start"] = {
        ["do_glow"] = true,
        ["glow_action"] = "show",
        ["do_sound"] = true,
        ["glow_frame"] = "WeakAuras:Crystalline Barrage Step",
        ["sound"] = "Interface\\AddOns\\WeakAuras\\Media\\Sounds\\WaterDrop.ogg",
        ["sound_channel"] = "Master",
    },
    ["finish"] = {},
}

local debuff_prototype = {
    ["cooldown"] = false,
    ["trigger"] = {
        ["type"] = "aura2",
        ["subeventSuffix"] = "_CAST_START",
        ["event"] = "Health",
        ["names"] = {},
        ["spellIds"] = {},
        ["subeventPrefix"] = "SPELL",
        ["unit"] = "player",
        ["debuffType"] = "HARMFUL",

        ["auraspellids"] = {},
        ["useExactSpellId"] = false,
        ["auranames"] = {},
        ["useName"] = true,
    },
}

local buff_prototype = {
    ["trigger"] = {
        ["type"] = "aura2",
        ["subeventSuffix"] = "_CAST_START",
        ["event"] = "Health",
        ["names"] = {},
        ["spellIds"] = {},
        ["subeventPrefix"] = "SPELL",
        ["unit"] = "player",
        ["debuffType"] = "HELPFUL",

        ["auraspellids"] = {},
        ["useExactSpellId"] = false,
        ["auranames"] = {},
        ["useName"] = true,
    },
}

local cast_prototype = {
    ["trigger"] = {
        ["type"] = "event",
        ["spellId"] = "0",
        ["subeventSuffix"] = "_CAST_SUCCESS",
        ["unevent"] = "timed",
        ["duration"] = "4",
        ["event"] = "Combat Log",
        ["subeventPrefix"] = "SPELL",
        ["use_spellId"] = true,
    }
}

local stack_prototype = {
    ["trigger"] = {
        ["countOperator"] = ">=",
        ["count"] = "0",
        ["useCount"] = true,
    },
}

local sound_prototype = {
    ["actions"] = {
        ["start"] = {
            ["do_sound"] = true,
            ["sound"] = "Interface\\Quiet.ogg",
            ["sound_channel"] = "Master",
        },
    },
}

local sound_prototype_custom = {
    ["actions"] = {
        ["start"] = {
            ["do_sound"] = true,
            ["sound"] = " custom",
            ["sound_path"] = "Interface\\Quiet.ogg",
            ["sound_channel"] = "Master",
        },
    },
}

local chat_prototype = {
    ["actions"] = {
        ["start"] = {
            ["message"] = "",
            ["message_type"] = "SAY",
            ["do_message"] = true,
        },
    },
}

local widget_text_prototype = {
    ["fontSize"] = 20,
    ["displayStacks"] = "",
    ["stacksPoint"] = "BOTTOM",
    ["stacksContainment"] = "OUTSIDE",
}

local glow_prototype = {
    ["actions"] = {
        ["start"] = {
            ["do_glow"] = true,
            ["glow_frame"] = "",
            ["glow_action"] = "show",
        },
    },
}

function _detalhes:CreateWeakAura (aura_type, spellid, use_spellid, spellname, name, icon_texture, target, stacksize, sound, chat, icon_text, icon_glow, encounter_id, group, icon_size, other_values, in_combat, cooldown_animation)

    --print (aura_type, spellid, use_spellid, spellname, name, icon_texture, target, stacksize, sound, chat, icon_text, icon_glow, encounter_id, group, icon_size, other_values)

    --> check if wa is installed
    if (not WeakAuras or not WeakAurasSaved) then
        return
    end
    
    --> check if there is a group for our auras
--[=[
    if (not WeakAurasSaved.displays ["Details! Aura Group"]) then
        local group = _detalhes.table.copy ({}, group_prototype)
        WeakAuras.Add (group)
    end
    
    if (not WeakAurasSaved.displays ["Details! Boss Mods Group"]) then
        local group = _detalhes.table.copy ({}, group_prototype_boss_mods)
        WeakAuras.Add (group)
    end
--]=]

    if (true) then
        return Details:Msg("feature disabled due to 9.0 changes.")
    end

    --> create the icon table
    local new_aura
    icon_size = icon_size or 40
    
    if (target == 41) then -- interrupt
        
        chat = nil
        sound = nil
        icon_glow = nil
        group = nil
        
        new_aura = _detalhes.table.copy ({}, text_interrupt_prototype)
        
        new_aura.trigger.custom = [[
            function (event, time, token, hidding, who_serial, who_name, who_flags, who_flags2, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spelltype, extraSpellID, extraSpellName, extraSchool)
                if (event == "COMBAT_LOG_EVENT_UNFILTERED") then
                    if (token == "SPELL_CAST_SUCCESS" and spellid == @spellid) then
                        aura_env.success = aura_env.success + 1
                        aura_env.text = aura_env.text .. "|cffffc5c5@spell_casted (" .. aura_env.success .. ")|r\n"
                    elseif (token == "SPELL_INTERRUPT" and extraSpellID == @spellid) then
                        aura_env.interrupted = aura_env.interrupted + 1
                        aura_env.text = aura_env.text .. "|cffc5ffc5" .. who_name ..  " (" .. aura_env.interrupted .. ") ".. "|r\n"
                    end
                    if (select (2, aura_env.text:gsub ("\n", "")) == 9) then
                        aura_env.text = aura_env.text:gsub (".-\n", "", 1)
                    end
                    return true
                else
                    aura_env.text = ""
                    aura_env.success = 0
                    aura_env.interrupted = 0
                    return true        
                end
            end
        ]]
        
        new_aura.trigger.custom = new_aura.trigger.custom:gsub ("@spellid", spellid)
        new_aura.trigger.custom = new_aura.trigger.custom:gsub ("@spell_casted", icon_text)
        
        --> size
        new_aura.fontSize = min (icon_size, 24)
        
        --> combat only
        if (in_combat) then
            new_aura.load.use_combat = true
        else
            new_aura.load.use_combat = nil
        end
        
    elseif (target == 42) then -- dispell
    
        chat = nil
        sound = nil
        icon_glow = nil
        group = nil
        
        new_aura = _detalhes.table.copy ({}, text_dispell_prototype)
        
        new_aura.trigger.custom = [[
            function (event, time, token, hidding, who_serial, who_name, who_flags, who_flags2, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spelltype, extraSpellID, extraSpellName, extraSchool)
                if (event == "COMBAT_LOG_EVENT_UNFILTERED") then
                    if ((token == "SPELL_DISPEL" or token == "SPELL_STOLEN") and extraSpellID == @spellid) then
                        aura_env.dispelled = aura_env.dispelled + 1
                        aura_env.dispels_by [who_name] = (aura_env.dispels_by [who_name] or 0) + 1
                        aura_env.text = aura_env.text .. "|cffd2e8ff" .. who_name ..  " (" .. aura_env.dispels_by [who_name] .. ") ".. "|r\n"

                        if (select (2, aura_env.text:gsub ("\n", "")) == 11) then
                            aura_env.text = aura_env.text:gsub (".-\n", "", 2)
                            aura_env.text = "@title\n" .. aura_env.text
                        end
                        return true
                    end
                else
                    aura_env.text = "@title\n"
                    aura_env.success = 0
                    aura_env.dispelled = 0
                    wipe (aura_env.dispels_by)
                    return true
                end
            end
        ]]
        
        new_aura.trigger.custom = new_aura.trigger.custom:gsub ("@spellid", spellid)
        new_aura.trigger.custom = new_aura.trigger.custom:gsub ("@title", icon_text)

        --> size
        new_aura.fontSize = min (icon_size, 24)
    
        --> combat only
        if (in_combat) then
            new_aura.load.use_combat = true
        else
            new_aura.load.use_combat = nil
        end
    
    elseif (other_values.dbm_timer_id or other_values.bw_timer_id) then --boss mods
    
        --> create the default aura table
        if (aura_type == "icon") then
            new_aura = _detalhes.table.copy ({}, icon_dbm_timerbar_prototype)
        elseif (aura_type == "aurabar") then
            new_aura = _detalhes.table.copy ({}, bar_dbm_timerbar_prototype)
        elseif (aura_type == "text") then
            new_aura = _detalhes.table.copy ({}, text_dbm_timerbar_prototype)
        end

        --> text and icon
        if (aura_type == "aurabar") then
            icon_text = icon_text:gsub ("= ", "")
            icon_text = icon_text:gsub (" =", "")
            icon_text = icon_text:gsub ("=", "")
            new_aura.displayTextLeft = icon_text
            new_aura.displayIcon = icon_texture
        elseif (aura_type == "icon") then
            new_aura.displayStacks = icon_text
            new_aura.displayIcon = icon_texture
        end
        
        --> size
        if (aura_type == "icon") then
            new_aura.width = icon_size
            new_aura.height = icon_size
        elseif (aura_type == "aurabar") then
            new_aura.width = max (icon_size, 370)
            new_aura.height = 38
        elseif (aura_type == "text") then
            new_aura.fontSize = min (icon_size, 72)
        end
        
        --> trigger
        if (aura_type == "text") then
            local init_start = [[
                aura_env.ability_text = "@text"
                aura_env.remaining_trigger = @countdown
            ]]

            init_start = init_start:gsub ("@text", icon_text)
            init_start = init_start:gsub ("@countdown", floor (stacksize))
            new_aura.trigger.remaining = tostring (floor (stacksize))
            new_aura.actions.init.custom = init_start

            if (other_values.dbm_timer_id) then
                new_aura.trigger.event = "DBM Timer"
                local timerId = tostring (other_values.dbm_timer_id)
                
                --print ("timerId:", other_values.dbm_timer_id, type (other_values.dbm_timer_id), timerId:find ("%s"))
                --other_values.spellid
                
                --if (timerId:find ("%s")) then
                    --spellid timers
                    new_aura.trigger.id = ""
                    new_aura.trigger.use_id = false
                    new_aura.trigger.spellId_operator = "=="
                    new_aura.trigger.use_spellId = true
                    new_aura.trigger.spellId = tostring (other_values.spellid)
                --else
                    --ej timers
                --	new_aura.trigger.id = timerId
                --end
            elseif (other_values.bw_timer_id) then
                new_aura.trigger.id = ""
                new_aura.trigger.use_id = false
                new_aura.trigger.spellId_operator = "=="
                new_aura.trigger.use_spellId = true
                new_aura.trigger.spellId = tostring (other_values.bw_timer_id)
                new_aura.trigger.event = "BigWigs Timer"
            end
            
        elseif (aura_type == "aurabar" or aura_type == "icon") then
            local trigger = new_aura.additional_triggers[1].trigger
            
            local init_start = [[
                aura_env.reimaningTime = @countdown
            ]]
            init_start = init_start:gsub ("@countdown", floor (stacksize))
            trigger.remaining = tostring (floor (stacksize))
            new_aura.actions.init.custom = init_start
            
            if (other_values.dbm_timer_id) then
                trigger.event = "DBM Timer"
                trigger.spellId = tostring (other_values.spellid)
                
            elseif (other_values.bw_timer_id) then
                trigger.event = "BigWigs Timer"
                trigger.spellId = tostring (other_values.bw_timer_id)
                trigger.spellId_operator = "=="
            end
        end
        
    else
    
        if (aura_type == "icon") then
            new_aura = _detalhes.table.copy ({}, icon_prototype)
        elseif (aura_type == "aurabar") then
            new_aura = _detalhes.table.copy ({}, aurabar_prototype)
        elseif (aura_type == "text") then
            new_aura = _detalhes.table.copy ({}, text_prototype)
            new_aura.displayText = spellname
        end
    
        if (target) then
            if (target == 1) then --Debuff on Player
                local add = _detalhes.table.copy ({}, debuff_prototype)
                add.trigger.spellId = tostring (spellid)
                add.trigger.spellIds[1] = "" --spellid
                add.trigger.names  = nil --spellname
                add.trigger.auranames = {tostring(spellid)}
                add.trigger.unit = "player"
                add.trigger.useName = true
                add.trigger.type = "aura2"
                add.trigger.matchesShowOn = "showOnActive"
                add.trigger.unitExists = false
                add.trigger.name_operator = nil
                add.trigger.genericShowOn = "showOnActive"
                add.trigger.debuffClass = nil


                _detalhes.table.overwrite (new_aura, add)
                
            elseif (target == 2) then --Debuff on Target
                local add = _detalhes.table.copy ({}, debuff_prototype)
                add.trigger.spellId = tostring (spellid)
                add.trigger.spellIds[1] = "" --spellid
                add.trigger.names = nil --spellname
                add.trigger.auranames = {tostring(spellid)}
                add.trigger.unit = "target"
                add.trigger.useName = true
                add.trigger.type = "aura2"
                add.trigger.matchesShowOn = "showOnActive"
                add.trigger.unitExists = false
                add.trigger.name_operator = nil
                add.trigger.genericShowOn = "showOnActive"
                add.trigger.debuffClass = nil
                
                --set as own only to avoid being active by other players
                add.trigger.ownOnly = true
                
                _detalhes.table.overwrite (new_aura, add)

            elseif (target == 3) then --Debuff on Focus
                local add = _detalhes.table.copy ({}, debuff_prototype)
                add.trigger.spellId = tostring (spellid)
                add.trigger.spellIds[1] = "" --spellid
                add.trigger.names = nil --spellname
                add.trigger.auranames = {tostring(spellid)}
                add.trigger.unit = "focus"
                add.trigger.useName = true
                add.trigger.type = "aura2"
                add.trigger.matchesShowOn = "showOnActive"
                add.trigger.unitExists = false
                add.trigger.name_operator = nil
                add.trigger.genericShowOn = "showOnActive"
                add.trigger.debuffClass = nil

                _detalhes.table.overwrite (new_aura, add)
                
            elseif (target == 11) then --Buff on Player
                local add = _detalhes.table.copy ({}, buff_prototype)
                add.trigger.names = nil --spellname
                add.trigger.unit = "player"
                add.trigger.useName = true
                add.trigger.type = "aura2"
                add.trigger.matchesShowOn = "showOnActive"
                add.trigger.unitExists = false
                add.trigger.name_operator = nil
                add.trigger.genericShowOn = "showOnActive"
                add.trigger.debuffClass = nil

                _detalhes.table.overwrite (new_aura, add)
                
            elseif (target == 12) then --Buff on Target
                local add = _detalhes.table.copy ({}, buff_prototype)
                add.trigger.spellId = tostring (spellid)
                add.trigger.spellIds[1] = "" --spellid
                add.trigger.names = nil --spellname
                add.trigger.unit = "target"
                add.trigger.type = "aura2"
                add.trigger.matchesShowOn = "showOnActive"
                add.trigger.unitExists = false
                add.trigger.name_operator = nil
                add.trigger.genericShowOn = "showOnActive"
                add.trigger.debuffClass = nil

                _detalhes.table.overwrite (new_aura, add)
                
            elseif (target == 13) then --Buff on Focus
                local add = _detalhes.table.copy ({}, buff_prototype)
                add.trigger.spellId = tostring (spellid)
                add.trigger.spellIds[1] = "" --spellid
                add.trigger.names = nil --spellname
                add.trigger.auranames = {tostring(spellid)}
                add.trigger.unit = "focus"
                add.trigger.useName = true
                add.trigger.type = "aura2"
                add.trigger.matchesShowOn = "showOnActive"
                add.trigger.unitExists = false
                add.trigger.name_operator = nil
                add.trigger.genericShowOn = "showOnActive"
                add.trigger.debuffClass = nil

                _detalhes.table.overwrite (new_aura, add)
                
            elseif (target == 21) then --Spell Cast Started
                local add = _detalhes.table.copy ({}, cast_prototype)
                add.trigger.spellId = tostring (spellid)
                add.trigger.spellName = spellname
                add.trigger.subeventSuffix = "_CAST_START"
                add.trigger.duration = stacksize
                if (not use_spellid) then
                    add.trigger.use_spellName = true
                    add.trigger.use_spellId = false
                end
                _detalhes.table.overwrite (new_aura, add)
                
            elseif (target == 22) then --Spell Cast Successful
                local add = _detalhes.table.copy ({}, cast_prototype)
                add.trigger.spellId = tostring (spellid)
                add.trigger.spellName = spellname
                if (not use_spellid) then
                    add.trigger.use_spellName = true
                    add.trigger.use_spellId = false
                end
                _detalhes.table.overwrite (new_aura, add)
            end
            
            --> combat only
            if (in_combat) then
                new_aura.load = new_aura.load or {}
                new_aura.load.use_combat = true
            else
                new_aura.load.use_combat = nil
            end

        else
            new_aura.trigger.spellId = tostring (spellid)
            new_aura.trigger.name = spellname
            tinsert (new_aura.trigger.spellIds, spellid)
        end
        
        --> if is a regular aura without using spells ids
        if (not use_spellid) then
            new_aura.trigger.useExactSpellId = false
            new_aura.useName = true
            new_aura.auranames = {spellname}
        else
            new_aura.trigger.useExactSpellId = true
            new_aura.useName = false
            new_aura.auraspellids = {tostring(spellid)}
        end
        
        --> check stack size
        if (stacksize and stacksize >= 1) then
            stacksize = floor (stacksize)
            local add = _detalhes.table.copy ({}, stack_prototype)
            add.trigger.count = tostring (stacksize)
            _detalhes.table.overwrite (new_aura, add)
        end
        
        --> icon text
        if (icon_text and icon_text ~= "") then
            if (aura_type == "text") then
                new_aura.displayText = icon_text
            else
                local add = _detalhes.table.copy ({}, widget_text_prototype)
                add.displayStacks = icon_text
                _detalhes.table.overwrite (new_aura, add)
            end
        end
        
        --> size
        if (aura_type == "icon") then
            new_aura.width = icon_size
            new_aura.height = icon_size
        elseif (aura_type == "aurabar") then
            new_aura.width = min (icon_size, 250)
            new_aura.height = 24
        elseif (aura_type == "text") then
            new_aura.fontSize = min (icon_size, 24)
        end
    end
    
    new_aura.id = name
    new_aura.displayIcon = icon_texture		

    --> load by encounter id
    if (encounter_id) then
        new_aura.load = new_aura.load or {}
        new_aura.load.use_encounterid = true
        new_aura.load.encounterid = tostring (encounter_id)
    end

    --> using sound
    if (sound and type (sound) == "table") then
        local add = _detalhes.table.copy ({}, sound_prototype_custom)
        add.actions.start.sound_path = sound.sound_path
        add.actions.start.sound_channel = sound.sound_channel or "Master"
        _detalhes.table.overwrite (new_aura, add)
        
    elseif (sound and sound ~= "" and not sound:find ("Quiet.ogg")) then
        local add = _detalhes.table.copy ({}, sound_prototype)
        add.actions.start.sound = sound
        _detalhes.table.overwrite (new_aura, add)
    end
    
    --> chat message
    if (chat and chat ~= "") then
        local add = _detalhes.table.copy ({}, chat_prototype)
        add.actions.start.message = chat
        _detalhes.table.overwrite (new_aura, add)
    end
    
    --> check if already exists a aura with this name
    if (WeakAurasSaved.displays [new_aura.id]) then
        for i = 2, 100 do
            if (not WeakAurasSaved.displays [new_aura.id .. " (" .. i .. ")"]) then
                new_aura.id = new_aura.id .. " (" .. i .. ")"
                break
            end
        end
    end
    
    --> check is is using glow effect
    if (icon_glow) then
        local add = _detalhes.table.copy ({}, glow_prototype)
        add.actions.start.glow_frame = "WeakAuras:" .. new_aura.id
        _detalhes.table.overwrite (new_aura, add)
    end
    
    if (cooldown_animation) then
        new_aura.cooldown = true
        new_aura.cooldownTextEnabled = true
    end
    
    --> add the aura on a group
    if (group) then
        new_aura.parent = group
        
        if (new_aura.regionType == "icon") then
            --> adjust the width and height of the new aura following the existing auras on the group
            local normalWidth, normalHeight, amount = 0, 0, 0
            local allAurasInTheGroup = WeakAurasSaved.displays [group].controlledChildren
            
            for index, auraname in ipairs (allAurasInTheGroup) do
                local auraObject = WeakAurasSaved.displays [auraname]
                if (auraObject and auraObject.regionType == "icon") then
                    amount = amount + 1
                    normalWidth = normalWidth + auraObject.width
                    normalHeight = normalHeight + auraObject.height
                end
            end
            
            if (normalWidth > 0) then
                normalWidth = normalWidth / amount
                normalHeight = normalHeight / amount
                new_aura.width = normalWidth
                new_aura.height = normalHeight
            end
        end
        
        tinsert (WeakAurasSaved.displays [group].controlledChildren, new_aura.id)
    else
        new_aura.parent = nil
    end
    
    --> add the aura
    WeakAuras.Add (new_aura)
    
    --> check if the options panel has loaded
    local options_frame = WeakAuras.OptionsFrame and WeakAuras.OptionsFrame()
    if (options_frame) then
        if (options_frame and not options_frame:IsShown()) then
            WeakAuras.ToggleOptions()
        end
        WeakAuras.NewDisplayButton (new_aura)
    end

end


-- other_values DBM:
-- text_size 72
-- dbm_timer_id Timer183254cd
-- text Next Allure of Flames In
-- spellid 183254
-- icon Interface\Icons\Spell_Fire_FelFlameStrike

-- other_values BW:
-- bw_timer_id 183828
-- text Next Death Brand In
-- icon Interface\Icons\warlock_summon_doomguard
-- text_size 72

function _detalhes:InitializeAuraCreationWindow()
    local DetailsAuraPanel = CreateFrame ("frame", "DetailsAuraPanel", UIParent,"BackdropTemplate")
    DetailsAuraPanel.Frame = DetailsAuraPanel
    DetailsAuraPanel.__name = L["STRING_CREATEAURA"]
    DetailsAuraPanel.real_name = "DETAILS_CREATEAURA"
    
    if (_G.WeakAuras) then 
        DetailsAuraPanel.__icon = [[Interface\AddOns\WeakAuras\Media\Textures\icon]]
    else
        DetailsAuraPanel.__icon = [[Interface\BUTTONS\UI-GroupLoot-DE-Up]]
    end
    
    DetailsPluginContainerWindow.EmbedPlugin (DetailsAuraPanel, DetailsAuraPanel, true)

    function DetailsAuraPanel.RefreshWindow()
        _detalhes:OpenAuraPanel() --spellid, spellname, spellicon, encounterid, triggertype, auratype, other_values
    end
end

local empty_other_values = {}
function _detalhes:OpenAuraPanel (spellid, spellname, spellicon, encounterid, triggertype, auratype, other_values)
    
    if (not spellname) then
        spellname = select (1, GetSpellInfo (spellid))
    end

    wipe (empty_other_values)
    other_values = other_values or empty_other_values
    
    if (not DetailsAuraPanel or not DetailsAuraPanel.Initialized) then
        
        DetailsAuraPanel.Initialized = true
        
        --> check if there is a group for our auras
        if (WeakAuras and WeakAurasSaved) then
            if (not WeakAurasSaved.displays ["Details! Aura Group"]) then
                local group = _detalhes.table.copy ({}, group_prototype)
                WeakAuras.Add (group)
            end
            if (not WeakAurasSaved.displays ["Details! Boss Mods Group"]) then
                local group = _detalhes.table.copy ({}, group_prototype_boss_mods)
                WeakAuras.Add (group)
            end
        end

        local f = DetailsAuraPanel or CreateFrame ("frame", "DetailsAuraPanel", UIParent,"BackdropTemplate")
        f:SetSize (800, 600)
        f:SetPoint ("center", UIParent, "center", 0, 150)
        f:SetFrameStrata ("DIALOG")
        f:EnableMouse (true)
        f:SetMovable (true)
        f:SetToplevel (true)
        
        --background
        f.bg1 = f:CreateTexture (nil, "background")
        f.bg1:SetTexture ([[Interface\AddOns\Details\images\background]], true)
        f.bg1:SetAlpha (0.8)
        f.bg1:SetVertexColor (0.27, 0.27, 0.27)
        f.bg1:SetVertTile (true)
        f.bg1:SetHorizTile (true)
        f.bg1:SetSize (790, 454)
        f.bg1:SetAllPoints()
        f:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\AddOns\Details\images\background]], tileSize = 64, tile = true})
        f:SetBackdropColor (.5, .5, .5, .7)
        f:SetBackdropBorderColor (0, 0, 0, 1)
        
        --register to libwindow
        local LibWindow = LibStub ("LibWindow-1.1")
        LibWindow.RegisterConfig (f, _detalhes.createauraframe)
        LibWindow.RestorePosition (f)
        LibWindow.MakeDraggable (f)
        LibWindow.SavePosition (f)
        
        f:SetScript ("OnMouseDown", function (self, button)
            if (button == "RightButton") then
                f:Hide()
            end
        end)
        
        --titlebar
        f.TitleBar = CreateFrame ("frame", "$parentTitleBar", f,"BackdropTemplate")
        f.TitleBar:SetPoint ("topleft", f, "topleft", 2, -3)
        f.TitleBar:SetPoint ("topright", f, "topright", -2, -3)
        f.TitleBar:SetHeight (20)
        f.TitleBar:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true})
        f.TitleBar:SetBackdropColor (.2, .2, .2, 1)
        f.TitleBar:SetBackdropBorderColor (0, 0, 0, 1)
        
        --close button
        f.Close = CreateFrame ("button", "$parentCloseButton", f, "BackdropTemplate")
        f.Close:SetPoint ("right", f.TitleBar, "right", -2, 0)
        f.Close:SetSize (16, 16)

        f.Close:SetNormalTexture ([[Interface\GLUES\LOGIN\Glues-CheckBox-Check]])
        f.Close:SetHighlightTexture ([[Interface\GLUES\LOGIN\Glues-CheckBox-Check]])
        f.Close:SetPushedTexture ([[Interface\GLUES\LOGIN\Glues-CheckBox-Check]])
        f.Close:GetNormalTexture():SetDesaturated(true)
        f.Close:GetHighlightTexture():SetDesaturated(true)
        f.Close:GetPushedTexture():SetDesaturated(true)

        f.Close:SetAlpha (0.7)
        f.Close:SetScript ("OnClick", function() f:Hide() end)
        
        --title
        f.Title = f.TitleBar:CreateFontString ("$parentTitle", "overlay", "GameFontNormal")
        f.Title:SetPoint ("center", f.TitleBar, "center")
        f.Title:SetText ("Details! Create Aura")

        local fw = _detalhes:GetFramework()
        
        local text_template = fw:GetTemplate ("font", "OPTIONS_FONT_TEMPLATE")
        local dropdown_template = fw:GetTemplate ("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")
        local switch_template = fw:GetTemplate ("switch", "OPTIONS_CHECKBOX_TEMPLATE")
        local slider_template = fw:GetTemplate ("slider", "OPTIONS_SLIDER_TEMPLATE")
        local button_template = fw:GetTemplate ("button", "OPTIONS_BUTTON_TEMPLATE")
        
        --aura name
        local name_label = fw:CreateLabel (f, "Aura Name: ", nil, nil, "GameFontNormal")
        local name_textentry = fw:CreateTextEntry (f, _detalhes.empty_function, 150, 20, "AuraName", "$parentAuraName")
        name_textentry:SetTemplate (slider_template)
        name_textentry:SetPoint ("left", name_label, "right", 2, 0)
        f.name = name_textentry
        
        --aura type
        local on_select_aura_type = function (_, _, aura_type)
            if (f.UpdateLabels) then
                f:UpdateLabels()
            end
        end
        local aura_type_table = {
            {label = "Icon", value = "icon", onclick = on_select_aura_type}, --, icon = aura_on_icon
            {label = "Text", value = "text", onclick = on_select_aura_type},
            {label = "Progress Bar", value = "aurabar", onclick = on_select_aura_type},
        }
        local aura_type_options = function()
            return aura_type_table
        end
        local aura_type = fw:CreateDropDown (f, aura_type_options, 1, 150, 20, "AuraTypeDropdown", "$parentAuraTypeDropdown")
        local aura_type_label = fw:CreateLabel (f, "Aura Type: ", nil, nil, "GameFontNormal")
        aura_type:SetPoint ("left", aura_type_label, "right", 2, 0)
        aura_type:Hide()
        
        local Icon_IconAuraType = fw:CreateImage (f, [[Interface\AddOns\Details\images\icons2]], 32, 32, "overlay", {200/512, 232/512, 336/512, 368/512}, nil, nil)
        Icon_IconAuraType:SetPoint ("topleft", aura_type_label, "bottomleft", 10, -16)
        
        local Icon_StatusbarAuraType = fw:CreateImage (f, [[Interface\AddOns\Details\images\icons2]], 92, 12, "overlay", {235/512, 327/512, 336/512, 348/512}, nil, nil)
        Icon_StatusbarAuraType:SetPoint ("topleft", aura_type_label, "bottomleft", 60, -26)
        
        local Icon_TextOnlyAuraType = fw:CreateImage (f, [[Interface\AddOns\Details\images\icons2]], 57, 8, "overlay", {250/512, 306/512, 360/512, 367/512}, nil, nil)
        Icon_TextOnlyAuraType:SetPoint ("topleft", aura_type_label, "bottomleft", 170, -28)
        
        local AuraTypeSelectedColor = {1, 1, 1, 0.3}
        local AuraTypeBorderColor = {.3, .3, .3, 0.5}
        local AuraTypeBorderSelectedColor = {1, 1, 1, 0.4}
        
        local OnSelectAuraType = function (self, fixedParam, auraType, noUpdate)
        
            if (type (auraType) == "number") then
                if (auraType == 1) then
                    auraType = "icon"
                elseif (auraType == 2) then
                    auraType = "text"
                elseif (auraType == 3) then
                    auraType = "aurabar"
                end
            end
            
            f.IconAuraTypeButton:SetBackdropColor (0, 0, 0, 0.05)
            f.StatusbarAuraTypeButton:SetBackdropColor (0, 0, 0, 0.05)
            f.TextOnlyAuraTypeButton:SetBackdropColor (0, 0, 0, 0.05)
            
            f.IconAuraTypeButton:SetBackdropBorderColor (unpack (AuraTypeBorderColor))
            f.StatusbarAuraTypeButton:SetBackdropBorderColor (unpack (AuraTypeBorderColor))
            f.TextOnlyAuraTypeButton:SetBackdropBorderColor (unpack (AuraTypeBorderColor))
            
            if (auraType == "icon") then
                f.IconAuraTypeButton:SetBackdropColor (unpack (AuraTypeSelectedColor))
                f.IconAuraTypeButton:SetBackdropBorderColor (unpack (AuraTypeBorderSelectedColor))
            elseif (auraType == "aurabar") then
                f.StatusbarAuraTypeButton:SetBackdropColor (unpack (AuraTypeSelectedColor))
                f.StatusbarAuraTypeButton:SetBackdropBorderColor (unpack (AuraTypeBorderSelectedColor))
            elseif (auraType == "text") then
                f.TextOnlyAuraTypeButton:SetBackdropColor (unpack (AuraTypeSelectedColor))
                f.TextOnlyAuraTypeButton:SetBackdropBorderColor (unpack (AuraTypeBorderSelectedColor))
            end
            
            aura_type:SetValue (auraType)
            if (f.UpdateLabels and not noUpdate) then
                f:UpdateLabels()
            end
        end
        f.OnSelectAuraType = OnSelectAuraType
        
        local AuraTypeBackground = f:CreateTexture (nil, "border")
        AuraTypeBackground:SetColorTexture (.4, .4, .4, .1)
        AuraTypeBackground:SetHeight (64)
        AuraTypeBackground:SetPoint ("topleft", f, "topleft", 10, -79)
        AuraTypeBackground:SetPoint ("topright", f, "topright", -10, -79)
        
        local Icon_IconAuraTypeButton = fw:CreateButton (f, OnSelectAuraType, 46, 46, "", "icon", nil, nil, "IconAuraTypeButton")
        local Icon_StatusbarAuraTypeButton = fw:CreateButton (f, OnSelectAuraType, 100, 46, "", "aurabar", nil, nil, "StatusbarAuraTypeButton")
        local Icon_TextOnlyAuraTypeButton = fw:CreateButton (f, OnSelectAuraType, 69, 46, "", "text", nil, nil, "TextOnlyAuraTypeButton")
        
        Icon_IconAuraTypeButton:SetPoint ("center", Icon_IconAuraType, "center")
        Icon_StatusbarAuraTypeButton:SetPoint ("center", Icon_StatusbarAuraType, "center")
        Icon_TextOnlyAuraTypeButton:SetPoint ("center", Icon_TextOnlyAuraType, "center")
        
        Icon_IconAuraTypeButton:SetBackdrop ({edgeFile = [[Interface\AddOns\Details\images\dotted]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true})
        Icon_IconAuraTypeButton:SetBackdropColor (unpack (AuraTypeSelectedColor))
        Icon_IconAuraTypeButton:SetBackdropBorderColor (unpack (AuraTypeBorderColor))
        
        Icon_StatusbarAuraTypeButton:SetBackdrop ({edgeFile = [[Interface\AddOns\Details\images\dotted]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true})
        Icon_StatusbarAuraTypeButton:SetBackdropColor (0, 0, 0, 0.05)
        Icon_StatusbarAuraTypeButton:SetBackdropBorderColor (unpack (AuraTypeBorderColor))
        
        Icon_TextOnlyAuraTypeButton:SetBackdrop ({edgeFile = [[Interface\AddOns\Details\images\dotted]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true})
        Icon_TextOnlyAuraTypeButton:SetBackdropColor (0, 0, 0, 0.05)
        Icon_TextOnlyAuraTypeButton:SetBackdropBorderColor (unpack (AuraTypeBorderColor))
        
        --trigger list
        --target
        local on_select_aura_trigger = function (_, _, aura_trigger)
            if (f.UpdateLabels) then
                f:UpdateLabels()
            end
        end
        
        local aura_on_icon = [[Interface\Buttons\UI-GroupLoot-DE-Down]]
        local aura_on_table = {
            {label = "Debuff on You", value = 1, icon = aura_on_icon, onclick = on_select_aura_trigger},
            {label = "Debuff on Target", value = 2, icon = aura_on_icon, onclick = on_select_aura_trigger},
            {label = "Debuff on Focus", value = 3, icon = aura_on_icon, onclick = on_select_aura_trigger},
            
            {label = "Buff on You", value = 11, icon = aura_on_icon, onclick = on_select_aura_trigger},
            {label = "Buff on Target", value = 12, icon = aura_on_icon, onclick = on_select_aura_trigger},
            {label = "Buff on Focus", value = 13, icon = aura_on_icon, onclick = on_select_aura_trigger},
            
            {label = "Spell Cast Started", value = 21, icon = aura_on_icon, onclick = on_select_aura_trigger},
            {label = "Spell Cast Successful", value = 22, icon = aura_on_icon, onclick = on_select_aura_trigger},
            
            {label = "DBM Time Bar", value = 31, icon = aura_on_icon, onclick = on_select_aura_trigger},
            {label = "BigWigs Time Bar", value = 32, icon = aura_on_icon, onclick = on_select_aura_trigger},
            
            {label = "Spell Interrupt", value = 41, icon = aura_on_icon, onclick = on_select_aura_trigger},
            {label = "Spell Dispell", value = 42, icon = aura_on_icon, onclick = on_select_aura_trigger},
        }
        local aura_on_options = function()
            return aura_on_table
        end
        local aura_on = fw:CreateDropDown (f, aura_on_options, 1, 150, 20, "AuraOnDropdown", "$parentAuraOnDropdown")
        local aura_on_label = fw:CreateLabel (f, "Trigger On: ", nil, nil, "GameFontNormal")
        aura_on:SetPoint ("left", aura_on_label, "right", 2, 0)
        aura_on:Hide()
        
        local triggerList = {
            {name = "Debuff on You", value = 1},
            {name = "Debuff on Target", value = 2}, --2
            {name = "Debuff on Focus", value = 3},
            {name = "Buff on You", value = 11}, --4
            {name = "Buff on Target", value = 12},
            {name = "Buff on Focus", value = 13},
            {name = "Spell Cast Started", value = 21}, --7
            {name = "Spell Cast Successful", value = 22},
            {name = "DBM Time Bar", value = 31},
            {name = "BigWigs Time Bar", value = 32},
            {name = "Spell Interrupt", value = 41},
            {name = "Spell Dispell", value = 42},
        }
        
        local SetTriggerState = function (triggerID)
            for i = 1, #triggerList do
                triggerList[i].checkBox:SetValue (false)
                if (triggerList[i].value == triggerID) then
                    triggerList[i].checkBox:SetValue (true)
                end
            end
        end
        
        f.SetTriggerState = SetTriggerState
        f.TriggerList = triggerList
        
        local OnChangeTriggerState = function (self, triggerID, state)
            SetTriggerState (triggerID)
            aura_on:SetValue (triggerID)
            
            if (f.UpdateLabels) then
                f:UpdateLabels()
            end
        end
        
        for i = 1, #triggerList do
            local checkBox = fw:CreateSwitch (f, OnChangeTriggerState, i == 1)
            checkBox:SetTemplate (fw:GetTemplate ("switch", "OPTIONS_CHECKBOX_TEMPLATE"))
            checkBox:SetAsCheckBox()
            checkBox:SetFixedParameter (triggerList [i].value)
            
            checkBox:SetSize (20, 20)
            checkBox:SetPoint ("topleft", aura_on_label, "bottomleft", 0, 12 + (-i*20))
            local label = fw:CreateLabel (f, triggerList [i].name)
            label:SetPoint ("left", checkBox, "right", 2, 0)
            
            triggerList [i].checkBox = checkBox
        end
        

        
        
        --spellname
        local spellname_label = fw:CreateLabel (f, "Spell Name: ", nil, nil, "GameFontNormal")
        local spellname_textentry = fw:CreateTextEntry (f, _detalhes.empty_function, 150, 20, "SpellName", "$parentSpellName")
        spellname_textentry:SetTemplate (slider_template)
        spellname_textentry:SetPoint ("left", spellname_label, "right", 2, 0)
        f.spellname = spellname_textentry
        spellname_textentry.tooltip = "Spell/Debuff/Buff to be tracked."
        
        --spellid
        local auraid_label = fw:CreateLabel (f, "Spell Id: ", nil, nil, "GameFontNormal")
        local auraid_textentry = fw:CreateTextEntry (f, _detalhes.empty_function, 150, 20, "AuraSpellId", "$parentAuraSpellId")
        auraid_textentry:SetTemplate (slider_template)
        auraid_textentry:Disable()
        auraid_textentry:SetPoint ("left", auraid_label, "right", 2, 0)
        
        --use spellid
        local usespellid_label = fw:CreateLabel (f, "Use SpellId: ", nil, nil, "GameFontNormal")
        local aura_use_spellid = fw:CreateSwitch (f, function(_, _, state) if (state) then auraid_textentry:Enable() else auraid_textentry:Disable() end end, false, nil, nil, nil, nil, "UseSpellId")
        aura_use_spellid:SetTemplate (fw:GetTemplate ("switch", "OPTIONS_CHECKBOX_TEMPLATE"))
        aura_use_spellid:SetAsCheckBox()			
        
        aura_use_spellid:SetPoint ("left", usespellid_label, "right", 2, 0)
        aura_use_spellid.tooltip = "Use the spell id instead of the spell name, for advanced users."
        
        --in combat only
        local incombat_label = fw:CreateLabel (f, "Only in Combat: ", nil, nil, "GameFontNormal")
        local aura_incombat = fw:CreateSwitch (f, function(_, _, state) end, true, nil, nil, nil, nil, "UseInCombat")
        aura_incombat:SetTemplate (fw:GetTemplate ("switch", "OPTIONS_CHECKBOX_TEMPLATE"))
        aura_incombat:SetAsCheckBox()			
        aura_incombat:SetPoint ("left", incombat_label, "right", 2, 0)
        aura_incombat.tooltip = "Only active when in combat."

        --aura icon
        local icon_label = fw:CreateLabel (f, "Icon: ", nil, nil, "GameFontNormal")
        local icon_button_func = function (texture)
            f.IconButton.icon.texture = texture
        end
        local icon_pick_button = fw:NewButton (f, nil, "$parentIconButton", "IconButton", 20, 20, function() fw:IconPick (icon_button_func, true) end)
        local icon_button_icon = fw:NewImage (icon_pick_button, [[Interface\ICONS\TEMP]], 19, 19, "background", nil, "icon", "$parentIcon")
        icon_pick_button:InstallCustomTexture()
        
        icon_pick_button:SetPoint ("left", icon_label, "right", 2, 0)
        icon_button_icon:SetPoint ("left", icon_label, "right", 2, 0)
        
        f.icon = icon_button_icon
        
        --is cooldown
        local iscooldown_label = fw:CreateLabel (f, "Cooldown Animation: ", nil, nil, "GameFontNormal")
        local aura_iscooldown = fw:CreateSwitch (f, function(_, _, state) end, true, nil, nil, nil, nil, "IsCooldown")
        aura_iscooldown:SetTemplate (fw:GetTemplate ("switch", "OPTIONS_CHECKBOX_TEMPLATE"))
        aura_iscooldown:SetAsCheckBox()			
        aura_iscooldown:SetPoint ("left", iscooldown_label, "right", 2, 0)
        aura_iscooldown.tooltip = "Only active when in combat."
        
        --stack
        local stack_slider = fw:NewSlider (f, f, "$parentStackSlider", "StackSlider", 150, 20, 0, 30, 1, 0, true)
        stack_slider.useDecimals = true
        stack_slider:SetTemplate (slider_template)
        local stack_label = fw:CreateLabel (f, "Trigger Stack Size: ", nil, nil, "GameFontNormal")
        stack_slider:SetPoint ("left", stack_label, "right", 2, 0)
        stack_slider.tooltip = "Minimum amount of stacks to trigger the aura."
        
        --sound effect
        local play_sound = function (self, fixedParam, file)
            if (type (file) == "table") then
                PlaySoundFile (file.sound_path, "Master")
            else
                PlaySoundFile (file, "Master")
            end
        end
        
        local sort = function (t1, t2)
            return t1.name < t2.name
        end
        local titlecase = function (first, rest)
            return first:upper()..rest:lower()
        end
        local iconsize = {14, 14}
        
        local game_sounds = {
        --8.2 broke file paths, removing them until a way of converting to soundIds is possible
            --[=[
            ["Horde Banner Down"] = [[Sound\event\EVENT_VashjirIntro_HordeBannerDown_01.ogg]],
            ["Mast Crack"] = [[Sound\event\EVENT_VashjirIntro_MastCrack_01.ogg]],
            ["Orc Attack "] = [[Sound\event\EVENT_VashjirIntro_OrcAttackVox_03.ogg]],
            ["Ship Hull Impact"] = [[Sound\event\EVENT_VashjirIntro_ShipHullImpact_03.ogg]],
            ["Run! 01"] = [[Sound\character\Scourge\ScourgeVocalFemale\UndeadFemaleFlee01.ogg]],
            ["Run! 02"] = [[Sound\creature\HoodWolf\HoodWolfTransformPlayer01.ogg]],
            ["Danger!"] = [[Sound\character\Scourge\ScourgeVocalMale\UndeadMaleIncoming01.ogg]],
            ["Wing Flap 01"] = [[Sound\creature\Illidan\IllidanWingFlap2.ogg]],
            ["Wing Flap 02"] = [[Sound\Universal\BirdFlap1.ogg]],
            ["Not Prepared"] = [[Sound\creature\Illidan\BLACK_Illidan_04.ogg]],
            ["Cannon Shot"] = [[Sound\DOODAD\AGS_BrassCannon_Custom0.ogg]],
            ["Click 01"] = [[Sound\DOODAD\HangingBones_BoneClank06.ogg]],
            ["Click 02"] = [[Sound\DOODAD\HangingBones_BoneClank02.ogg]],
            ["Click 03"] = [[Sound\DOODAD\HangingBones_BoneClank03.ogg]],
            ["Click 04"] = [[Sound\DOODAD\HangingBones_BoneClank09.ogg]],
            ["Click 05"] = [[Sound\DOODAD\FX_Emote_Chopping_Wood08.ogg]],
            ["Click 06"] = [[Sound\DOODAD\FX_Emote_Chopping_Wood04.ogg]],
            ["Click 07"] = [[Sound\DOODAD\FX_BoardTilesDice_02.OGG]],
            ["Click 08"] = [[Sound\Spells\IceCrown_Bug_Attack_08.ogg]],
            ["Click 09"] = [[Sound\Spells\Tradeskills\BlackSmithCraftingE.ogg]],
            ["Chest 01"] = [[Sound\DOODAD\G_BarrelOpen-Chest1.ogg]],
            ["Beat 01"] = [[Sound\DOODAD\GO_PA_Kungfugear_bag_Left08.OGG]],
            ["Beat 02"] = [[Sound\DOODAD\GO_PA_Kungfugear_bag_Left04.OGG]],
            ["Water Drop"] = [[Sound\DOODAD\Hellfire_DW_Pipe_Type4_01.ogg]],
            ["Frog"] = [[Sound\EMITTERS\Emitter_Dalaran_Petstore_Frog_01.ogg]],
            --]=]
        }
        
        local sound_options = function()
            local t = {{label = "No Sound", value = "", icon = [[Interface\Buttons\UI-GuildButton-MOTD-Disabled]], iconsize = iconsize}}
            
            local sounds = {}
            local already_added = {}
            
            for name, soundFile in pairs (game_sounds) do
                name = name:gsub ("(%a)([%w_']*)", titlecase)
                if (not already_added [name]) then
                    sounds [#sounds+1] = {name = name, file = soundFile, gamesound = true}
                    already_added [name] = true
                end
            end
            
            for name, soundFile in pairs (LibStub:GetLibrary("LibSharedMedia-3.0"):HashTable ("sound")) do
                name = name:gsub ("(%a)([%w_']*)", titlecase)
                if (not already_added [name]) then
                    sounds [#sounds+1] = {name = name, file = soundFile}
                    already_added [name] = true
                end
            end
            
            if (WeakAuras and WeakAuras.sound_types) then
                for soundFile, name in pairs (WeakAuras.sound_types) do
                    name = name:gsub ("(%a)([%w_']*)", titlecase)
                    if (not already_added [name]) then
                        sounds [#sounds+1] = {name = name, file = soundFile}
                    end
                end
            end
            
            table.sort (sounds, sort)
            
            for _, sound in ipairs (sounds) do
                if (sound.name:find ("D_")) then --> details sound
                    tinsert (t, {color = "orange", label = sound.name, value = sound.file, icon = [[Interface\Buttons\UI-GuildButton-MOTD-Up]], onclick = play_sound, iconsize = iconsize})
                elseif (sound.gamesound) then --> game sound
                    tinsert (t, {color = "yellow", label = sound.name, value = {sound_path = sound.file}, icon = [[Interface\Buttons\UI-GuildButton-MOTD-Up]], onclick = play_sound, iconsize = iconsize})
                else
                    tinsert (t, {label = sound.name, value = sound.file, icon = [[Interface\Buttons\UI-GuildButton-MOTD-Up]], onclick = play_sound, iconsize = iconsize})
                end
            end
            return t
        end
        local sound_effect = fw:CreateDropDown (f, sound_options, 1, 150, 20, "SoundEffectDropdown", "$parentSoundEffectDropdown")
        sound_effect:SetTemplate (slider_template)
        local sound_effect_label = fw:CreateLabel (f, "Play Sound: ", nil, nil, "GameFontNormal")
        sound_effect:SetPoint ("left", sound_effect_label, "right", 2, 0)
        sound_effect.tooltip = "Sound played when the aura triggers."
        
        --say something
        local say_something_label = fw:CreateLabel (f, "/Say on Trigger: ", nil, nil, "GameFontNormal")
        local say_something = fw:CreateTextEntry (f, _detalhes.empty_function, 150, 20, "SaySomething", "$parentSaySomething")
        say_something:SetTemplate (slider_template)
        say_something:SetPoint ("left", say_something_label, "right", 2, 0)
        say_something.tooltip = "Your character /say this phrase when the aura triggers."
        
        --aura text
        local aura_text_label = fw:CreateLabel (f, "Aura Text: ", nil, nil, "GameFontNormal")
        local aura_text = fw:CreateTextEntry (f, _detalhes.empty_function, 150, 20, "AuraText", "$parentAuraText")
        aura_text:SetTemplate (slider_template)
        aura_text:SetPoint ("left", aura_text_label, "right", 2, 0)
        aura_text.tooltip = "Text shown at aura's icon right side."
        
        --apply glow
        local useglow_label = fw:CreateLabel (f, "Glow Effect: ", nil, nil, "GameFontNormal")
        local useglow = fw:CreateSwitch (f, function(self, _, state) 
            if (state and self.glow_test) then  
                self.glow_test:Show()
                self.glow_test.animOut:Stop()
                self.glow_test.animIn:Play()
            elseif (self.glow_test) then
                self.glow_test.animIn:Stop()
                self.glow_test.animOut:Play()
            end 
        end, false, nil, nil, nil, nil, "UseGlow")
        
        useglow:SetTemplate (fw:GetTemplate ("switch", "OPTIONS_CHECKBOX_TEMPLATE"))
        useglow:SetAsCheckBox()			
        
        useglow:SetPoint ("left", useglow_label, "right", 2, 0)
        useglow.tooltip = "Do not rename the aura on WeakAuras options panel or the glow effect may not work."
        
        useglow.glow_test = CreateFrame ("frame", "DetailsAuraTextGlowTest", useglow.widget, "ActionBarButtonSpellActivationAlert")
        useglow.glow_test:SetPoint ("topleft", useglow.widget, "topleft", -20, 2)
        useglow.glow_test:SetPoint ("bottomright", useglow.widget, "bottomright", 20, -2)
        useglow.glow_test:Hide()

        --encounter id
        local encounterid_label = fw:CreateLabel (f, "Encounter ID: ", nil, nil, "GameFontNormal")
        local encounterid = fw:CreateTextEntry (f, _detalhes.empty_function, 150, 20, "EncounterIdText", "$parentEncounterIdText")
        encounterid:SetTemplate (slider_template)
        encounterid:SetPoint ("left", encounterid_label, "right", 2, 0)
        encounterid.tooltip = "Only load this aura for this raid encounter."
        
        --size
        local icon_size_slider = fw:NewSlider (f, f, "$parentIconSizeSlider", "IconSizeSlider", 150, 20, 8, 256, 1, 64)
        local icon_size_label = fw:CreateLabel (f, "Size: ", nil, nil, "GameFontNormal")
        icon_size_slider:SetTemplate (slider_template)
        icon_size_slider:SetPoint ("left", icon_size_label, "right", 2, 0)
        icon_size_slider.tooltip = "Icon size, width and height."
        
        --aura addon
        local addon_options = function()
            local t = {}
            if (WeakAuras) then
                tinsert (t, {label = "Weak Auras 2", value = "WA", icon = [[Interface\AddOns\WeakAuras\Media\Textures\icon]]})
            end
            return t
        end
        local aura_addon = fw:CreateDropDown (f, addon_options, 1, 150, 20, "AuraAddonDropdown", "$parentAuraAddonDropdown")
        aura_addon:SetTemplate (slider_template)
        local aura_addon_label = fw:CreateLabel (f, "Addon: ", nil, nil, "GameFontNormal")
        aura_addon:SetPoint ("left", aura_addon_label, "right", 2, 0)
        
        --weakauras - group
        
        local folder_icon = [[Interface\AddOns\Details\images\icons]]
        local folder_texcoord = {435/512, 469/512, 189/512, 241/512}
        local folder_iconsize = {14, 14}

        local sort_func = function (t1, t2) return t1.label < t2.label end
        
        local weakauras_folder_options = function()
            local t = {}
            if (WeakAuras and WeakAurasSaved) then
                for display_name, aura_table in pairs (WeakAurasSaved.displays) do
                    if (aura_table.regionType == "dynamicgroup" or aura_table.regionType == "group") then
                        tinsert (t, {label = display_name, value = display_name, icon = folder_icon, texcoord = folder_texcoord, iconsize = folder_iconsize})
                    end
                end
            end
            table.sort (t, sort_func)
            tinsert (t, 1, {label = "No Group", value = false, icon = folder_icon, texcoord = folder_texcoord, iconcolor = {0.8, 0.2, 0.2}, iconsize = folder_iconsize})
            return t
        end
        
        local weakauras_folder_label = fw:CreateLabel (f, "WeakAuras Group: ", nil, nil, "GameFontNormal")
        local weakauras_folder = fw:CreateDropDown (f, weakauras_folder_options, 1, 150, 20, "WeakaurasFolderDropdown", "$parentWeakaurasFolder")
        weakauras_folder:SetTemplate (slider_template)
        weakauras_folder:SetPoint ("left", weakauras_folder_label, "right", 2, 0)
        
        --make new group
        local create_wa_group = function()
        
            local weakauras_newgroup_textentry = f.NewWeakaurasGroupTextEntry
        
            if (not WeakAurasSaved or not WeakAurasSaved.displays) then
                print ("nop, weakauras not found")
                return
            end
        
            local groupName = weakauras_newgroup_textentry.text
            
            if (string.len (groupName) == 0) then
                print ("nop, group name is too small")
                return
            end
            
            if (WeakAurasSaved.displays [groupName]) then
                print ("nop, group already exists")
                return
            end
            
            --make a copy of the prototype
            local newGroup = _detalhes.table.copy ({}, group_prototype)
            
            --set group settings
            newGroup.id = groupName
            newGroup.animate = false
            newGroup.grow = "DOWN"
            
            --add the gorup
            WeakAuras.Add (newGroup)
            
            --clear the text box
            weakauras_newgroup_textentry.text = ""
            weakauras_newgroup_textentry:ClearFocus()
            
            --select the new group in the dropdown
            weakauras_folder:Refresh()
            weakauras_folder:Select (groupName)
        end			
        
        local weakauras_newgroup_label = fw:CreateLabel (f, "New WeakAuras Group: ", nil, nil, "GameFontNormal")
        local weakauras_newgroup_textentry = fw:CreateTextEntry (f, create_wa_group, 150, 20, "NewWeakaurasGroupTextEntry", "$parentNewWeakaurasGroup")
        weakauras_newgroup_textentry:SetTemplate (slider_template)
        weakauras_newgroup_textentry:SetPoint ("left", weakauras_newgroup_label, "right", 2, 0)
        f.weakauras_newgroup = weakauras_newgroup_textentry
        weakauras_newgroup_textentry.tooltip = "Enter the name of the new group"
        
        local weakauras_newgroup_button = fw:CreateButton (f, create_wa_group, 106, 20, "Create Group")
        weakauras_newgroup_button:SetTemplate (slider_template)
        weakauras_newgroup_button:SetTemplate (_detalhes.gump:GetTemplate ("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE"))
        weakauras_newgroup_button:SetWidth (100)
        weakauras_newgroup_button:SetPoint ("left", weakauras_newgroup_textentry, "right", 2, 0)
        
        
        --create
        local create_func = function()
            
            local name = f.AuraName.text
            local aura_type_value = f.AuraTypeDropdown.value
            local spellname = f.SpellName.text
            local use_spellId = f.UseSpellId.value
            local spellid = f.AuraSpellId.text
            local icon = f.IconButton.icon.texture
            local target = f.AuraOnDropdown.value
            local stacksize = f.StackSlider.value
            local sound = f.SoundEffectDropdown.value
            local chat = f.SaySomething.text
            local addon = f.AuraAddonDropdown.value
            local folder = f.WeakaurasFolderDropdown.value
            local iconsize = f.IconSizeSlider.value
            local incombat = f.UseInCombat.value
            local iscooldown = f.IsCooldown.value
            
            local icon_text = f.AuraText.text
            local icon_glow = f.UseGlow.value
            
            local eid = DetailsAuraPanel.EncounterIdText.text
            if (eid == "") then
                eid = nil
            end
            
            if (addon == "WA") then
                _detalhes:CreateWeakAura (aura_type_value, spellid, use_spellId, spellname, name, icon, target, stacksize, sound, chat, icon_text, icon_glow, eid, folder, iconsize, f.other_values, incombat, iscooldown)
            else
                _detalhes:Msg ("No Aura Addon selected. Addons currently supported: WeakAuras 2.")
            end
            
            f:Hide()
        end
        
        local create_button = fw:CreateButton (f, create_func, 106, 20, L["STRING_CREATEAURA"])
        create_button:SetTemplate (slider_template)
        create_button:SetTemplate (_detalhes.gump:GetTemplate ("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE"))
        create_button:SetWidth (160)
        
        local cancel_button = fw:CreateButton (f, function() name_textentry:ClearFocus(); f:Hide() end, 106, 20, "Cancel")
        cancel_button:SetTemplate (_detalhes.gump:GetTemplate ("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE"))
        cancel_button:SetWidth (160)
        
        
        create_button:SetIcon ([[Interface\Buttons\UI-CheckBox-Check]], nil, nil, nil, {0.125, 0.875, 0.125, 0.875}, nil, 4, 2)
        cancel_button:SetIcon ([[Interface\Buttons\UI-GroupLoot-Pass-Down]], nil, nil, nil, {0.125, 0.875, 0.125, 0.875}, nil, 4, 2)
        
        local x_start = 20
        local x2_start = 420
        local y_start = 21

        --aura name and the type
        name_label:SetPoint ("topleft", f, "topleft", x_start, ((y_start*1) + (25)) * -1)
        aura_type_label:SetPoint ("topleft", f, "topleft", x_start, ((y_start*2) + (25)) * -1)
        
        --triggers
        aura_on_label:SetPoint ("topleft", f, "topleft", x_start, ((y_start*4) + (65)) * -1)
        stack_label:SetPoint ("topleft", f, "topleft", x_start, ((y_start*17) + (65)) * -1)
        encounterid_label:SetPoint ("topleft", f, "topleft", x_start, ((y_start*18) + (65)) * -1)
        
        --about the spell
        spellname_label:SetPoint ("topleft", f, "topleft", x_start, ((y_start*20) + (45)) * -1)
        usespellid_label:SetPoint ("topleft", f, "topleft", x_start, ((y_start*21) + (45)) * -1)
        auraid_label:SetPoint ("topleft", f, "topleft", x_start, ((y_start*22) + (45)) * -1)
        incombat_label:SetPoint ("topleft", f, "topleft", x_start, ((y_start*23) + (45)) * -1)

        --configuration
        icon_label:SetPoint ("topleft", f, "topleft", x2_start, ((y_start*6) + (47)) * -1)
        sound_effect_label:SetPoint ("topleft", f, "topleft", x2_start, ((y_start*7) + (47)) * -1)
        say_something_label:SetPoint ("topleft", f, "topleft", x2_start, ((y_start*8) + (47)) * -1)
        aura_text_label:SetPoint ("topleft", f, "topleft", x2_start, ((y_start*9) + (47)) * -1)
        useglow_label:SetPoint ("topleft", f, "topleft", x2_start, ((y_start*10) + (47)) * -1)
        iscooldown_label:SetPoint ("topleft", f, "topleft", x2_start, ((y_start*11) + (47)) * -1)
        icon_size_label:SetPoint ("topleft", f, "topleft", x2_start, ((y_start*12) + (47)) * -1)
        
        aura_addon_label:SetPoint ("topleft", f, "topleft", x2_start, ((y_start*17) + (60)) * -1)
        weakauras_folder_label:SetPoint ("topleft", f, "topleft", x2_start, ((y_start*18) + (60)) * -1)
        weakauras_newgroup_label:SetPoint ("topleft", f, "topleft", x2_start, ((y_start*19) + (60)) * -1)
        
        
        create_button:SetPoint ("topleft", f, "topleft", x2_start, ((y_start*21) + (60)) * -1)
        cancel_button:SetPoint ("left", create_button, "right", 20, 0)
        
        function f:UpdateLabels()
        
            local aura_type = f.AuraTypeDropdown.value
            local trigger = f.AuraOnDropdown.value
            
            f.StackSlider:Enable()
            f.StackSlider.tooltip = "Minimum amount of stacks to trigger the aura."
            f.StackSlider:SetValue (0)
            f.SpellName:Enable()
            f.UseSpellId:Enable()
            f.AuraSpellId:Enable()
            f.AuraName:Enable()
            f.IconSizeSlider:Enable()
            f.AuraTypeDropdown:Enable()
            f.SoundEffectDropdown:Enable()
            f.SaySomething:Enable()
            f.IconButton:Enable()
            f.AuraOnDropdown:Enable()
            f.AuraText:Enable()
            f.AuraText:SetText ("")
            aura_text_label.text = "Aura Text: "
            f.UseGlow:Enable()
            f.IsCooldown:Enable()
            
            if (aura_type == "icon") then
                aura_text_label:SetText ("Icon Text: ")
                icon_size_label:SetText ("Width/Height: ")
                f.IconSizeSlider:SetValue (64)
                
            elseif (aura_type == "text") then
                aura_text_label:SetText ("Text: ")
                icon_size_label:SetText ("Font Size: ")
                f.IconSizeSlider:SetValue (12)
                f.IsCooldown:Disable()
                
            elseif (aura_type == "aurabar") then
                aura_text_label:SetText ("Left Text: ")
                icon_size_label:SetText ("Bar Width: ")
                f.IconSizeSlider:SetValue (250)
                f.IsCooldown:Disable()
            end

            if (trigger >= 1 and trigger <= 19) then --buff and debuff
                stack_label:SetText ("Trigger Stack Size: ")
            
            elseif (trigger >= 20 and trigger <= 29) then --cast end cast start
                stack_label:SetText ("Cast Duration: ")
                f.StackSlider:SetValue (2)
            
            elseif (trigger >= 30 and trigger <= 39) then --boss mods
                stack_label:SetText ("Trigger Remaining Time:")
                f.StackSlider:SetValue (4)
                f.StackSlider.tooltip = "Will trigger when the bar remaining time reach this value."
                f.IconSizeSlider:SetValue (64)
                f.SpellName:Disable()
                f.UseSpellId:Disable()
                
            elseif (trigger == 41 or trigger == 42) then --interrupt or dispel
                f.StackSlider:Disable()
                f.SpellName:Disable()
                f.UseSpellId:Disable()
                DetailsAuraPanel.AuraTypeDropdown:Select (2, true)
                DetailsAuraPanel.OnSelectAuraType (nil, nil, 2, true)
                f.IsCooldown:Disable()
                
                f.SoundEffectDropdown:Disable()
                f.SaySomething:Disable()
                f.IconButton:Disable()
                f.UseGlow:Disable()
                icon_size_label:SetText ("Text Size: ")
                f.IconSizeSlider:SetValue (11)
                if (trigger == 41) then
                    f.AuraText:SetText ("=Not Interrupted!=")
                    aura_text_label.text = "Not Interrupted: "
                elseif (trigger == 42) then
                    f.AuraText:SetText (DetailsAuraPanel.name.text:gsub ("%(d!%)", "") .. "Dispells")
                    aura_text_label.text = "Title Text: "
                end
            end
            
            if (DetailsAuraPanel.other_values and DetailsAuraPanel.other_values.text) then
                DetailsAuraPanel.AuraText:SetText (DetailsAuraPanel.other_values.text)
            end
            
        end
        
    end
    
    DetailsAuraPanel.spellid = spellid
    DetailsAuraPanel.encounterid = encounterid
    DetailsAuraPanel.EncounterIdText.text = encounterid or ""
    
    DetailsAuraPanel.other_values = other_values
    
    DetailsAuraPanel.WeakaurasFolderDropdown:Refresh()
    if (encounterid) then
        DetailsAuraPanel.WeakaurasFolderDropdown:Select ("Details! Aura Group")
        DetailsAuraPanel.IconSizeSlider:SetValue (128)
    else
        DetailsAuraPanel.WeakaurasFolderDropdown:Select (1, true)
        DetailsAuraPanel.IconSizeSlider:SetValue (64)
    end
    
    if (DetailsAuraPanel.other_values.dbm_timer_id or DetailsAuraPanel.other_values.bw_timer_id) then
        DetailsAuraPanel.WeakaurasFolderDropdown:Select ("Details! Boss Mods Group")
    end
    
    if (DetailsAuraPanel.other_values.text_size) then
        DetailsAuraPanel.IconSizeSlider:SetValue (DetailsAuraPanel.other_values.text_size)
    end
    
    spellname = spellname or ""
    
    DetailsAuraPanel.name.text = spellname .. " (d!)"
    DetailsAuraPanel.spellname.text = spellname
    DetailsAuraPanel.AuraSpellId.text = tostring (spellid)
    DetailsAuraPanel.icon.texture = spellicon
    
    DetailsAuraPanel.UseGlow.glow_test.animIn:Stop()
    DetailsAuraPanel.UseGlow.glow_test.animOut:Play()
    DetailsAuraPanel.UseGlow:SetValue (false)
    
    DetailsAuraPanel.StackSlider:SetValue (0)
    DetailsAuraPanel.SoundEffectDropdown:Select (1, true)
    DetailsAuraPanel.AuraText:SetText (DetailsAuraPanel.other_values.text or "")
    DetailsAuraPanel.SaySomething:SetText ("")
    
    if (triggertype and type (triggertype) == "number") then
        DetailsAuraPanel.AuraOnDropdown:Select (triggertype, true)
        DetailsAuraPanel.SetTriggerState (DetailsAuraPanel.TriggerList [triggertype].value) --passed by index not by the trigger ID
    else
        DetailsAuraPanel.AuraOnDropdown:Select (1, true)
        DetailsAuraPanel.SetTriggerState (1)
    end
    
    if (auratype and type (auratype) == "number") then
        DetailsAuraPanel.AuraTypeDropdown:Select (auratype, true)
        DetailsAuraPanel.OnSelectAuraType (nil, nil, auratype)
    else
        DetailsAuraPanel.AuraTypeDropdown:Select (1, true)
        DetailsAuraPanel.OnSelectAuraType (nil, nil, "icon")
    end
    
    DetailsAuraPanel:UpdateLabels()
    
    DetailsAuraPanel:Show()
    DetailsPluginContainerWindow.OpenPlugin (DetailsAuraPanel)
    
end