ETYPE_CC = 1;
ETYPE_DEBUFF = 2;
ETYPE_BUFF = 4;

function QuickLocalize(str)
-- just remove $1 & $2 args because we *know that the order is not changed*.
-- not fail proof if ever it occurs (should be a more clever function, and return found arguments order)
	str = string.gsub(str, ".%$", "");
	str = string.gsub(str, "%%s", "\(.+\)");
	return str;
end

function CCWatch_Globals()

CCWatch_Save = {}

CCWATCH = {}
CCWATCH.PROFILE = ""
CCWATCH.COMBO = 0
CCWATCH.STATUS = 0

CCWATCH.INVERT = false
CCWATCH.GROWTH = 0
CCWATCH.SCALE = 1
CCWATCH.WIDTH = 160
CCWATCH.ALPHA = 1

CCWATCH.VARIABLES_LOADED = false
CCWATCH.VARIABLE_TIMER = 0

-- time threshold before an event is trashed, may need to be raised in high lag situations
CCWATCH.THRESHOLD = 0.25

-- most recent unit aura seen
CCWATCH.UNIT_AURA = {}
CCWATCH.UNIT_AURA.TARGET = ""
CCWATCH.UNIT_AURA.TIME = 0

-- most recent effect seen
CCWATCH.EFFECT = {}
CCWATCH.EFFECT.TYPE = ""
CCWATCH.EFFECT.TARGET = ""
CCWATCH.EFFECT.TIME = 0
CCWATCH.EFFECT.STATUS = 0  -- 0 = no effect, 1 = applied, 2 = broken, 3 = faded

-- effect groups for each bar
CCWATCH.GROUPSCC = {}
CCWATCH.GROUPSCC[1] = {}
CCWATCH.GROUPSCC[1].EFFECT = {}

CCWATCH.GROUPSCC[2] = {}
CCWATCH.GROUPSCC[2].EFFECT = {}

CCWATCH.GROUPSCC[3] = {}
CCWATCH.GROUPSCC[3].EFFECT = {}

CCWATCH.GROUPSCC[4] = {}
CCWATCH.GROUPSCC[4].EFFECT = {}

CCWATCH.GROUPSCC[5] = {}
CCWATCH.GROUPSCC[5].EFFECT = {}

CCWATCH.GROUPSDEBUFF = {}
CCWATCH.GROUPSDEBUFF[1] = {}
CCWATCH.GROUPSDEBUFF[1].EFFECT = {}

CCWATCH.GROUPSDEBUFF[2] = {}
CCWATCH.GROUPSDEBUFF[2].EFFECT = {}

CCWATCH.GROUPSDEBUFF[3] = {}
CCWATCH.GROUPSDEBUFF[3].EFFECT = {}

CCWATCH.GROUPSDEBUFF[4] = {}
CCWATCH.GROUPSDEBUFF[4].EFFECT = {}

CCWATCH.GROUPSDEBUFF[5] = {}
CCWATCH.GROUPSDEBUFF[5].EFFECT = {}

CCWATCH.GROUPSBUFF = {}
CCWATCH.GROUPSBUFF[1] = {}
CCWATCH.GROUPSBUFF[1].EFFECT = {}

CCWATCH.GROUPSBUFF[2] = {}
CCWATCH.GROUPSBUFF[2].EFFECT = {}

CCWATCH.GROUPSBUFF[3] = {}
CCWATCH.GROUPSBUFF[3].EFFECT = {}

CCWATCH.GROUPSBUFF[4] = {}
CCWATCH.GROUPSBUFF[4].EFFECT = {}

CCWATCH.GROUPSBUFF[5] = {}
CCWATCH.GROUPSBUFF[5].EFFECT = {}

-- CC Durations according to rank
-- WARNING : in case of difference between skill and effect, separate strings have to be used.
-- (see Hunter 'Freeze Trap' for instance)

CCWATCH_SPELLS = {}
-- Warrior
CCWATCH_SPELLS[CCWATCH_REND] = {
	RANKS = 7,
	DURATION = {9, 12, 15, 18, 21, 21, 21}
}

-- Mage
CCWATCH_SPELLS[CCWATCH_POLYMORPH] = {
	RANKS = 4,
	DURATION = {20, 30, 40, 50}
}

CCWATCH_SPELLS[CCWATCH_FIREBALL] = {
	RANKS = 11,
	DURATION = {4, 6, 6, 8, 8, 8, 8, 8, 8, 8, 8}
}

CCWATCH_SPELLS[CCWATCH_FROSTBOLT] = {
	RANKS = 10,
	DURATION = {5, 6, 6, 7, 7, 8, 8, 9, 9, 9}
}

-- Priest
CCWATCH_SPELLS[CCWATCH_SHACKLE] = {
	RANKS = 3,
	DURATION = {30, 40, 50}
}

-- Druid
CCWATCH_SPELLS[CCWATCH_ROOTS] = {
	RANKS = 6,
	DURATION = {12, 15, 18, 21, 24, 27}
}

CCWATCH_SPELLS[CCWATCH_BASH] = {
	RANKS = 3,
	DURATION = {2, 3, 4}
}

CCWATCH_SPELLS[CCWATCH_HIBERNATE] = {
	RANKS = 3,
	DURATION = {20, 30, 40}
}

-- Hunter
CCWATCH_SPELLS[CCWATCH_FREEZINGTRAP_SPELL] = {
	RANKS = 3,
	DURATION = {10, 15, 20},
	EFFECTNAME = CCWATCH_FREEZINGTRAP
}

CCWATCH_SPELLS[CCWATCH_SCAREBEAST] = {
	RANKS = 3,
	DURATION = {10, 15, 20}
}

-- Paladin
CCWATCH_SPELLS[CCWATCH_HOJ] = {
	RANKS = 4,
	DURATION = {3, 4, 5, 6}
}

CCWATCH_SPELLS[CCWATCH_TURNUNDEAD] = {
	RANKS = 3,
	DURATION = {10, 15, 20}
}

CCWATCH_SPELLS[CCWATCH_DIVINESHIELD] = {
	RANKS = 2,
	DURATION = {10, 12}
}

-- Warlock
CCWATCH_SPELLS[CCWATCH_FEAR] = {
	RANKS = 3,
	DURATION = {10, 15, 20}
}

CCWATCH_SPELLS[CCWATCH_HOWLOFTERROR] = {
	RANKS = 2,
	DURATION = {10, 15}
}

CCWATCH_SPELLS[CCWATCH_BANISH] = {
	RANKS = 2,
	DURATION = {20, 30}
}

-- Rogue
CCWATCH_SPELLS[CCWATCH_SAP] = {
	RANKS = 3,
	DURATION = {25, 35, 45}
}

CCWATCH.LASTTARGETS = {}

CCWATCH_TEXT_ON = QuickLocalize(AURAADDEDOTHERHARMFUL);
CCWATCH_TEXT_BREAK = QuickLocalize(AURADISPELOTHER);
CCWATCH_TEXT_OFF = QuickLocalize(AURAREMOVEDOTHER);

CCWATCH_TEXT_BUFF_ON = QuickLocalize(AURAADDEDOTHERHELPFUL);
CCWATCH_TEXT_DIE = QuickLocalize(UNITDIESOTHER);
CCWATCH_TEXT_DIEXP = strsub(CCWATCH_TEXT_DIE, 1, -2)..".+";
end
