RTI_text1="";
RTI_text2="";
RTI_text3="";
RTI_text4="";
RTI_text5="";
RTI_text6="";
RTI_text7="";
RTI_text8="";
RTI_AnnounceOn = 0;

function RaidTargetIcon_OnLoad()
	this:RegisterEvent("VARIABLES_LOADED");
	this:RegisterEvent("PLAYER_TARGET_CHANGED");
	this:RegisterEvent("PARTY_MEMBERS_CHANGED");
	this:RegisterEvent("PARTY_LEADER_CHANGED");
	this:RegisterEvent("RAID_ROSTER_UPDATE");

	SlashCmdList["RaidTargetIcon"] = RTI_SlashHandler;
	SLASH_RaidTargetIcon1 = "/rti";
	SLASH_RaidTargetIcon2 = "/타겟아이콘";

	RaidTargetIcon:SetMovable(1);
	RaidTargetIconMoveTap:SetMovable(1);
end

function RaidTargetIcon_OnEvent()
	if ( event == "VARIABLES_LOADED" ) then
		RaidTargetIcon_Tooltip();
	elseif (event == "PLAYER_TARGET_CHANGED" or event == "PARTY_MEMBERS_CHANGED" or event == "PARTY_LEADER_CHANGED" or event == "RAID_ROSTER_UPDATE") then
		RaidTargetIcon_Tooltip();
		if ( IsPartyLeader() and UnitExists("target") ) then
			RaidTargetIcon:Show();
		elseif ( IsRaidOfficer() and UnitExists("target") ) then
			RaidTargetIcon:Show();
		else
			RaidTargetIcon:Hide();
		end
	end
end

function RTI_SlashHandler(msg)
	if (string.lower(msg) == "reset") then
		RaidTargetIcon:ClearAllPoints();
		RaidTargetIcon:SetPoint("TOPLEFT", "TargetFrame", "BOTTOMLEFT", "0", "0");
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon위치가 초기화되었습니다.");
	elseif (string.lower(msg) == "lock") then
		RaidTargetIconMoveTap:Hide();
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon위치가 잠겼습니다.");
	elseif (string.lower(msg) == "unlock") then
		RaidTargetIconMove();
		RaidTargetIcon:Show();
		RaidTargetIconMoveTap:Show();
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon가 이동 가능하게 되었습니다.");
	elseif (string.lower(msg) == "clear") then
		RTI_text1="";
		RTI_text2="";
		RTI_text3="";
		RTI_text4="";
		RTI_text5="";
		RTI_text6="";
		RTI_text7="";
		RTI_text8="";
		RTI_AnnounceOn = 0;
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon의 메세지가 초기화되었습니다.");
	elseif (string.lower(msg) == "msgon") then
		RTI_AnnounceOn = 1;
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon의 메세지 출력이 켜졌습니다.");
	elseif (string.lower(msg) == "msgoff") then
		RTI_AnnounceOn = 0;
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon의 메세지 출력이 꺼졌습니다.");
	elseif (string.lower(msg) == "preset1") then
		RTI_Preset1();
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon의 Preset1을 불러옵니다(인던용).");
	elseif (string.lower(msg) == "preset2") then
		RTI_Preset2();
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon의 Preset2를 불러옵니다(레이드용).");
	elseif (string.lower(msg) == "preset3") then
		RTI_Preset3();
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon의 Preset3을 불러옵니다(레이드용).");
	elseif (string.lower(msg) == "preset4") then
		RTI_Preset4();
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon의 Preset4를 불러옵니다.");
	elseif (string.lower(msg) == "preset5") then
		RTI_Preset5();
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon의 Preset5를 불러옵니다.");
	elseif ( string.sub(msg, 1, 1) == "1" ) then
		if ( string.len(msg) < 3) then
			DEFAULT_CHAT_FRAME:AddMessage("|cffffffff 1 내용  - 별 징표시 출력 메세지 설정");
			return;
		end
		RTI_text1 = string.sub(msg, 3);
		RTI_AnnounceOn = 1;
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon의 1번 메세지가 설정되었습니다.\n"..RTI_text1);
	elseif ( string.sub(msg, 1, 1) == "2" ) then
		if ( string.len(msg) < 3) then
			DEFAULT_CHAT_FRAME:AddMessage("|cffffffff 2 내용  - 동그라미 징표시 출력 메세지 설정");
			return;
		end
		RTI_text2 = string.sub(msg, 3);
		RTI_AnnounceOn = 1;
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon의 2번 메세지가 설정되었습니다.\n"..RTI_text2);
	elseif ( string.sub(msg, 1, 1) == "3" ) then
		if ( string.len(msg) < 3) then
			DEFAULT_CHAT_FRAME:AddMessage("|cffffffff 3 내용  - 다이아몬드 징표시 출력 메세지 설정");
			return;
		end
		RTI_text3 = string.sub(msg, 3);
		RTI_AnnounceOn = 1;
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon의 3번 메세지가 설정되었습니다.\n"..RTI_text3);
	elseif ( string.sub(msg, 1, 1) == "4" ) then
		if ( string.len(msg) < 3) then
			DEFAULT_CHAT_FRAME:AddMessage("|cffffffff 4 내용  - 세모 징표시 출력 메세지 설정");
			return;
		end
		RTI_text4 = string.sub(msg, 3);
		RTI_AnnounceOn = 1;
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon의 4번 메세지가 설정되었습니다.\n"..RTI_text4);
	elseif ( string.sub(msg, 1, 1) == "5" ) then
		if ( string.len(msg) < 3) then
			DEFAULT_CHAT_FRAME:AddMessage("|cffffffff 5 내용  - 달 징표시 출력 메세지 설정");

			return;
		end
		RTI_text5 = string.sub(msg, 3);
		RTI_AnnounceOn = 1;
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon의 5번 메세지가 설정되었습니다.\n"..RTI_text5);
	elseif ( string.sub(msg, 1, 1) == "6" ) then
		if ( string.len(msg) < 3) then
			DEFAULT_CHAT_FRAME:AddMessage("|cffffffff 6 내용  - 네모 징표시 출력 메세지 설정");
			return;
		end
		RTI_text6 = string.sub(msg, 3);
		RTI_AnnounceOn = 1;
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon의 6번 메세지가 설정되었습니다.\n"..RTI_text6);
	elseif ( string.sub(msg, 1, 1) == "7" ) then
		if ( string.len(msg) < 3) then
			DEFAULT_CHAT_FRAME:AddMessage("|cffffffff 7 내용  - 가위표 징표시 출력 메세지 설정");
			return;
		end
		RTI_text7 = string.sub(msg, 3);
		RTI_AnnounceOn = 1;
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon의 7번 메세지가 설정되었습니다.\n"..RTI_text7);
	elseif ( string.sub(msg, 1, 1) == "8" ) then
		if ( string.len(msg) < 3) then
			DEFAULT_CHAT_FRAME:AddMessage("|cffffffff 8 내용  - 해골 징표시 출력 메세지 설정");
			return;
		end
		RTI_text8 = string.sub(msg, 3);
		RTI_AnnounceOn = 1;
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff Raid Target Icon의 8번 메세지가 설정되었습니다.\n"..RTI_text8);
	else
		DEFAULT_CHAT_FRAME:AddMessage("|cffffff00 RaidTargetIcon 명령어 : |r/rti 또는 /타겟아이콘");
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff lock - 잠금");
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff unlock - 이동");
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff clear - 출력 메세지 초기화");
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff msgon - 메세지 출력 ON");
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff msgoff - 메세지 출력 OFF");
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff preset1~5 - 1~5번 출력메세지 프리셋을 불러옴");
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff reset - 위치 초기화");
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff 1 내용  - 별 징표시 출력 메세지 설정");
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff 2 내용  - 동그라미 징표시 출력 메세지 설정");
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff 3 내용  - 다이아몬드 징표시 출력 메세지 설정");
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff 4 내용  - 세모 징표시 출력 메세지 설정");
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff 5 내용  - 달 징표시 출력 메세지 설정");
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff 6 내용  - 네모 징표시 출력 메세지 설정");
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff 7 내용  - 가위표 징표시 출력 메세지 설정");
		DEFAULT_CHAT_FRAME:AddMessage("|cffffffff 8 내용  - 해골 징표시 출력 메세지 설정");
	end
end

function RaidTargetIconMove()
	RaidTargetIconMoveTap:SetScript("OnMouseDown", function() if arg1 == "LeftButton" then RaidTargetIcon:StartMoving(); end end);
	RaidTargetIconMoveTap:SetScript("OnMouseUp", function() RaidTargetIcon:StopMovingOrSizing(); end);
end

function RTI_Announcer(num)
	local announce = getglobal("RaidTargetIconButton"..num.."Announce");
	local name = UnitName("target");
	if RTI_AnnounceOn == 1 then
		if ( GetRaidTargetIndex("target") and GetRaidTargetIndex("target") == num ) then
			if ( GetNumRaidMembers() > 0 ) then
				SendChatMessage(("[[ "..name.." ]] 징표를 취소합니다!  "..announce), "RAID");
			elseif ( GetNumPartyMembers() > 0) then
				SendChatMessage(("[[ "..name.." ]] 징표를 취소합니다!  "..announce), "PARTY");
			end
		else
			if ( GetNumRaidMembers() > 0 ) then
				SendChatMessage(("[[ "..name.." ]] 징표를 찍습니다!  "..announce), "RAID");
			elseif ( GetNumPartyMembers() > 0 ) then
				SendChatMessage(("[[ "..name.." ]] 징표를 찍습니다!  "..announce), "PARTY");
			end
		end
	end
end

function RaidTargetIcon_Tooltip()
	RaidTargetIconButton1ToolTip = ("|cFFFFEB00별: "..RTI_text1);
	RaidTargetIconButton2ToolTip = ("|cFFFA9100동그라미: "..RTI_text2);
	RaidTargetIconButton3ToolTip = ("|cFFD438E6다이아몬드: "..RTI_text3);
	RaidTargetIconButton4ToolTip = ("|cFF0AF300세모: "..RTI_text4);
	RaidTargetIconButton5ToolTip = ("|cFFB3D1E0달: "..RTI_text5);
	RaidTargetIconButton6ToolTip = ("|cFF00B5FF네모: "..RTI_text6);
	RaidTargetIconButton7ToolTip = ("|cFFFF3D2B가위표: "..RTI_text7);
	RaidTargetIconButton8ToolTip = ("|cFFFAFAFA해골: "..RTI_text8);

	RaidTargetIconButton1Announce = ("별: "..RTI_text1);
	RaidTargetIconButton2Announce = ("동그라미: "..RTI_text2);
	RaidTargetIconButton3Announce = ("다이아몬드: "..RTI_text3);
	RaidTargetIconButton4Announce = ("세모: "..RTI_text4);
	RaidTargetIconButton5Announce = ("달: "..RTI_text5);
	RaidTargetIconButton6Announce = ("네모: "..RTI_text6);
	RaidTargetIconButton7Announce = ("가위표: "..RTI_text7);
	RaidTargetIconButton8Announce = ("해골: "..RTI_text8);
end