INBOXITEMS_TO_DISPLAY = 7;
 STATIONERY_ICON_ROW_HEIGHT = 36;
 STATIONERYITEMS_TO_DISPLAY = 5;
 PACKAGEITEMS_TO_DISPLAY = 4;
 ATTACHMENTS_MAX = 16;
 ATTACHMENTS_MAX_SEND = 12;
 ATTACHMENTS_PER_ROW_SEND = 7;
 ATTACHMENTS_MAX_ROWS_SEND = 2;
 ATTACHMENTS_MAX_RECEIVE = 16;
 ATTACHMENTS_PER_ROW_RECEIVE = 7;
 ATTACHMENTS_MAX_ROWS_RECEIVE = 3;
 STATIONERY_PATH = "Interface\\Stationery\\";
 MAX_COD_AMOUNT = 10000;
 SEND_MAIL_TAB_LIST = {};
 SEND_MAIL_TAB_LIST[1] = "SendMailNameEditBox";
 SEND_MAIL_TAB_LIST[2] = "SendMailSubjectEditBox";
 SEND_MAIL_TAB_LIST[3] = "SendMailBodyEditBox";
 SEND_MAIL_TAB_LIST[4] = "SendMailMoneyGold";
 SEND_MAIL_TAB_LIST[5] = "SendMailMoneyCopper";
 
 function MailFrame_OnLoad(self)
 	-- Init pagenum
 	InboxFrame.pageNum = 1;
 	-- Tab Handling code
 	self.maxTabWidth = self:GetWidth() / 3;
 	PanelTemplates_SetNumTabs(self, 2);
 	PanelTemplates_SetTab(self, 1);
 	-- Register for events
 	self:RegisterEvent("MAIL_SHOW");
 	self:RegisterEvent("MAIL_INBOX_UPDATE");
 	self:RegisterEvent("MAIL_CLOSED");
 	self:RegisterEvent("MAIL_SEND_INFO_UPDATE");
 	self:RegisterEvent("MAIL_SEND_SUCCESS");
 	self:RegisterEvent("MAIL_FAILED");
 	self:RegisterEvent("MAIL_SUCCESS");	
 	self:RegisterEvent("CLOSE_INBOX_ITEM");
 	self:RegisterEvent("MAIL_LOCK_SEND_ITEMS");
 	self:RegisterEvent("MAIL_UNLOCK_SEND_ITEMS");
 	-- Set previous and next fields
 	MoneyInputFrame_SetPreviousFocus(SendMailMoney, SendMailBodyEditBox);
 	MoneyInputFrame_SetNextFocus(SendMailMoney, SendMailNameEditBox);
 	MoneyFrame_SetMaxDisplayWidth(SendMailMoneyFrame, 160);
 	
 	if IsTrialAccount() then
 		MailFrameTab2:Hide();
 		self.trialError:Show();
 	end
 end
 
 function MailFrame_OnEvent(self, event, ...)
 	if ( event == "MAIL_SHOW" ) then
 		ShowUIPanel(MailFrame);
 		if ( not MailFrame:IsShown() ) then
 			CloseMail();
 			return;
 		end
 
 		-- Update the roster so auto-completion works
 		if ( IsInGuild() and GetNumGuildMembers() == 0 ) then
 			GuildRoster();
 		end
 
 		OpenAllBags(self);
 		SendMailFrame_Update();
 		MailFrameTab_OnClick(nil, 1);
 		CheckInbox();
 		DoEmote("READ", nil, true);
 	elseif ( event == "MAIL_INBOX_UPDATE" ) then
 		InboxFrame_Update();
 		OpenMail_Update();
 	elseif ( event == "MAIL_SEND_INFO_UPDATE" ) then
 		SendMailFrame_Update();
 	elseif ( event == "MAIL_SEND_SUCCESS" ) then
 		SendMailFrame_Reset();
 		PlaySound("igAbiliityPageTurn");
 		-- If open mail frame is open then switch the mail frame back to the inbox
 		if ( SendMailFrame.sendMode == "reply" ) then
 			MailFrameTab_OnClick(nil, 1);
 		end
 	elseif ( event == "MAIL_FAILED" ) then
 		SendMailMailButton:Enable();
 	elseif ( event == "MAIL_SUCCESS" ) then
 		SendMailMailButton:Enable();
-		if ( InboxNextPageButton:IsEnabled() ~= 0 ) then
+		if ( InboxNextPageButton:IsEnabled() ) then
 			InboxGetMoreMail();
 		end
 	elseif ( event == "MAIL_CLOSED" ) then
 		CancelEmote();
 		HideUIPanel(MailFrame);
 		CloseAllBags(self);
 		SendMailFrameLockSendMail:Hide();
 		StaticPopup_Hide("CONFIRM_MAIL_ITEM_UNREFUNDABLE");
 	elseif ( event == "CLOSE_INBOX_ITEM" ) then
 		local arg1 = ...;
 		if ( arg1 == InboxFrame.openMailID ) then
 			HideUIPanel(OpenMailFrame);
 		end
 	elseif ( event == "MAIL_LOCK_SEND_ITEMS" ) then
 		local slotNum, itemLink = ...;
 		SendMailFrameLockSendMail:Show();
 		local itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture = GetItemInfo(itemLink);
 		local r, g, b = GetItemQualityColor(itemRarity)
 		StaticPopup_Show("CONFIRM_MAIL_ITEM_UNREFUNDABLE", nil, nil, {["texture"] = itemTexture, ["name"] = itemName, ["color"] = {r, g, b, 1}, ["link"] = itemLink, ["slot"] = slotNum});
 	elseif ( event == "MAIL_UNLOCK_SEND_ITEMS") then
 		SendMailFrameLockSendMail:Hide();
 		StaticPopup_Hide("CONFIRM_MAIL_ITEM_UNREFUNDABLE");
 	end
 end
 
 function MailFrameTab_OnClick(self, tabID)
 	if ( not tabID ) then
 		tabID = self:GetID();
 	end
 	PanelTemplates_SetTab(MailFrame, tabID);
 	if ( tabID == 1 ) then
 		-- Inbox tab clicked
 		ButtonFrameTemplate_HideButtonBar(MailFrame)
 		MailFrameInset:SetPoint("TOPLEFT", 4, -58);
 		InboxFrame:Show();
 		SendMailFrame:Hide();
 		SetSendMailShowing(false);
 	else
 		-- Sendmail tab clicked
 		ButtonFrameTemplate_ShowButtonBar(MailFrame)
 		MailFrameInset:SetPoint("TOPLEFT", 4, -80);
 		InboxFrame:Hide();
 		SendMailFrame:Show();
 		SendMailFrame_Update();
 		SetSendMailShowing(true);
 
 		-- Set the send mode to dictate the flow after a mail is sent
 		SendMailFrame.sendMode = "send";
 	end
 	PlaySound("igSpellBookOpen");
 end
 
 -- Inbox functions
 
 function InboxFrame_Update()
 	local numItems, totalItems = GetInboxNumItems();
 	local index = ((InboxFrame.pageNum - 1) * INBOXITEMS_TO_DISPLAY) + 1;
 	local packageIcon, stationeryIcon, sender, subject, money, CODAmount, daysLeft, itemCount, wasRead, x, y, z, isGM, firstItemQuantity;
 	local icon, button, expireTime, senderText, subjectText, buttonIcon;
 	
 	if ( totalItems > numItems ) then
 		if ( not InboxFrame.maxShownMails ) then
 			InboxFrame.maxShownMails = numItems;
 		end
 		InboxFrame.overflowMails = totalItems - numItems;
 		InboxFrame.shownMails = numItems;
 	else
 		InboxFrame.overflowMails = nil;
 	end
 	
 	for i=1, INBOXITEMS_TO_DISPLAY do
 		if ( index <= numItems ) then
 			-- Setup mail item
 			packageIcon, stationeryIcon, sender, subject, money, CODAmount, daysLeft, itemCount, wasRead, x, y, z, isGM, firstItemQuantity = GetInboxHeaderInfo(index);
 			
 			-- Set icon
 			if ( packageIcon ) and ( not isGM ) then
 				icon = packageIcon;
 			else
 				icon = stationeryIcon;
 			end
 
 			
 			-- If no sender set it to "Unknown"
 			if ( not sender ) then
 				sender = UNKNOWN;
 			end
 			button = _G["MailItem"..i.."Button"];
 			button:Show();
 			button.index = index;
 			button.hasItem = itemCount;
 			button.itemCount = itemCount;
 			SetItemButtonCount(button, firstItemQuantity);
 			buttonIcon = _G["MailItem"..i.."ButtonIcon"];
 			buttonIcon:SetTexture(icon);
 			subjectText = _G["MailItem"..i.."Subject"];
 			subjectText:SetText(subject);
 			senderText = _G["MailItem"..i.."Sender"];
 			senderText:SetText(sender);
 			
 			-- If hasn't been read color the button yellow
 			if ( wasRead ) then
 				senderText:SetTextColor(0.75, 0.75, 0.75);
 				subjectText:SetTextColor(0.75, 0.75, 0.75);
 				_G["MailItem"..i.."ButtonSlot"]:SetVertexColor(0.5, 0.5, 0.5);
-				SetDesaturation(buttonIcon, 1);
+				SetDesaturation(buttonIcon, true);
 			else
 				senderText:SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b);
 				subjectText:SetTextColor(HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b);
 				_G["MailItem"..i.."ButtonSlot"]:SetVertexColor(1.0, 0.82, 0);
-				SetDesaturation(buttonIcon, nil);
+				SetDesaturation(buttonIcon, false);
 			end
 			-- Format expiration time
 			if ( daysLeft >= 1 ) then
 				daysLeft = GREEN_FONT_COLOR_CODE..format(DAYS_ABBR, floor(daysLeft)).." "..FONT_COLOR_CODE_CLOSE;
 			else
 				daysLeft = RED_FONT_COLOR_CODE..SecondsToTime(floor(daysLeft * 24 * 60 * 60))..FONT_COLOR_CODE_CLOSE;
 			end
 			expireTime = _G["MailItem"..i.."ExpireTime"];
 			expireTime:SetText(daysLeft);
 			-- Set expiration time tooltip
 			if ( InboxItemCanDelete(index) ) then
 				expireTime.tooltip = TIME_UNTIL_DELETED;
 			else
 				expireTime.tooltip = TIME_UNTIL_RETURNED;
 			end
 			expireTime:Show();
 			-- Is a C.O.D. package
 			if ( CODAmount > 0 ) then
 				_G["MailItem"..i.."ButtonCOD"]:Show();
 				_G["MailItem"..i.."ButtonCODBackground"]:Show();
 				button.cod = CODAmount;
 			else
 				_G["MailItem"..i.."ButtonCOD"]:Hide();
 				_G["MailItem"..i.."ButtonCODBackground"]:Hide();
 				button.cod = nil;
 			end
 			-- Contains money
 			if ( money > 0 ) then
 				button.money = money;
 			else
 				button.money = nil;
 			end
 			-- Set highlight
 			if ( InboxFrame.openMailID == index ) then
-				button:SetChecked(1);
+				button:SetChecked(true);
 				SetPortraitToTexture("OpenMailFrameIcon", stationeryIcon);
 			else
-				button:SetChecked(nil);
+				button:SetChecked(false);
 			end
 		else
 			-- Clear everything
 			_G["MailItem"..i.."Button"]:Hide();
 			_G["MailItem"..i.."Sender"]:SetText("");
 			_G["MailItem"..i.."Subject"]:SetText("");
 			_G["MailItem"..i.."ExpireTime"]:Hide();
 		end
 		index = index + 1;
 	end
 
 	-- Handle page arrows
 	if ( InboxFrame.pageNum == 1 ) then
 		InboxPrevPageButton:Disable();
 	else
 		InboxPrevPageButton:Enable();
 	end
 	if ( (InboxFrame.pageNum * INBOXITEMS_TO_DISPLAY) < numItems ) then
 		InboxNextPageButton:Enable();
 	else
 		InboxNextPageButton:Disable();
 	end
 	if ( totalItems > numItems) then
 		InboxTooMuchMail:Show();
 	else
 		InboxTooMuchMail:Hide();
 	end
 end
 
 function InboxFrame_OnClick(self, index)
 	if ( self:GetChecked() ) then
 		InboxFrame.openMailID = index;
 		OpenMailFrame.updateButtonPositions = true;
 		OpenMail_Update();
 		--OpenMailFrame:Show();
 		ShowUIPanel(OpenMailFrame);
 		OpenMailFrameInset:SetPoint("TOPLEFT", 4, -80);
 		PlaySound("igSpellBookOpen");
 	else
 		InboxFrame.openMailID = 0;
 		HideUIPanel(OpenMailFrame);		
 	end
 	InboxFrame_Update();
 end
 
 function InboxFrame_OnModifiedClick(self, index)
 	local _, _, _, _, _, cod = GetInboxHeaderInfo(index);
 	if ( cod <= 0 ) then
 		AutoLootMailItem(index);
 	end
 	InboxFrame_OnClick(self, index);
 end
 
 function InboxFrameItem_OnEnter(self)
 	GameTooltip:SetOwner(self, "ANCHOR_RIGHT");
 	if ( self.hasItem ) then
 		if ( self.itemCount == 1) then
 			local hasCooldown, speciesID, level, breedQuality, maxHealth, power, speed, name = GameTooltip:SetInboxItem(self.index);
 			if(speciesID and speciesID > 0) then
 				BattlePetToolTip_Show(speciesID, level, breedQuality, maxHealth, power, speed, name);
 			end
 		else
 			GameTooltip:AddLine(MAIL_MULTIPLE_ITEMS.." ("..self.itemCount..")");
 		end
 	end
 	if (self.money) then
 		if ( self.hasItem ) then
 			GameTooltip:AddLine(" ");
 		end
-		GameTooltip:AddLine(ENCLOSED_MONEY, "", 1, 1, 1);
+		GameTooltip:AddLine(ENCLOSED_MONEY, nil, nil, nil, true);
 		SetTooltipMoney(GameTooltip, self.money);
 		SetMoneyFrameColor("GameTooltipMoneyFrame1", "white");
 	elseif (self.cod) then
 		if ( self.hasItem ) then
 			GameTooltip:AddLine(" ");
 		end
-		GameTooltip:AddLine(COD_AMOUNT, "", 1, 1, 1);
+		GameTooltip:AddLine(COD_AMOUNT, nil, nil, nil, true);
 		SetTooltipMoney(GameTooltip, self.cod);
 		if ( self.cod > GetMoney() ) then
 			SetMoneyFrameColor("GameTooltipMoneyFrame1", "red");
 		else
 			SetMoneyFrameColor("GameTooltipMoneyFrame1", "white");
 		end
 	end
 	GameTooltip:Show();
 end
 
 function InboxNextPage()
 	PlaySound("igMainMenuOptionCheckBoxOn");
 	InboxFrame.pageNum = InboxFrame.pageNum + 1;
 	InboxGetMoreMail();	
 	InboxFrame_Update();
 end
 
 function InboxPrevPage()
 	PlaySound("igMainMenuOptionCheckBoxOn");
 	InboxFrame.pageNum = InboxFrame.pageNum - 1;
 	InboxGetMoreMail();	
 	InboxFrame_Update();
 end
 
 function InboxGetMoreMail()
 	-- get more mails if there is an overflow and less than max are being shown
 	if ( InboxFrame.overflowMails and InboxFrame.shownMails < InboxFrame.maxShownMails ) then
 		CheckInbox();
 	end
 end
 
 -- Open Mail functions
 
 function OpenMailFrame_OnHide()
 	StaticPopup_Hide("DELETE_MAIL");
 	if ( not InboxFrame.openMailID ) then
 		InboxFrame_Update();
 		PlaySound("igSpellBookClose");
 		return;
 	end
 
 	-- Determine if this is an auction temp invoice
 	local bodyText, texture, isTakeable, isInvoice = GetInboxText(InboxFrame.openMailID);
 	local isAuctionTempInvoice = false;
 	if ( isInvoice ) then
 		local invoiceType, itemName, playerName, bid, buyout, deposit, consignment, moneyDelay, etaHour, etaMin = GetInboxInvoiceInfo(InboxFrame.openMailID);
 		if (invoiceType == "seller_temp_invoice") then
 			isAuctionTempInvoice = true;
 		end
 	end
 	
 	-- If mail contains no items, then delete it on close
 	local packageIcon, stationeryIcon, sender, subject, money, CODAmount, daysLeft, itemCount, wasRead, wasReturned, textCreated  = GetInboxHeaderInfo(InboxFrame.openMailID);
 	if ( money == 0 and not itemCount and textCreated and not isAuctionTempInvoice ) then
 		DeleteInboxItem(InboxFrame.openMailID);
 	end
 	InboxFrame.openMailID = 0;
 	InboxFrame_Update();
 	PlaySound("igSpellBookClose");
 end
 
 function OpenMailFrame_UpdateButtonPositions(letterIsTakeable, textCreated, stationeryIcon, money)
 	if ( OpenMailFrame.activeAttachmentButtons ) then
 		while (#OpenMailFrame.activeAttachmentButtons > 0) do
 			tremove(OpenMailFrame.activeAttachmentButtons);
 		end
 	else
 		OpenMailFrame.activeAttachmentButtons = {};
 	end
 	if ( OpenMailFrame.activeAttachmentRowPositions ) then
 		while (#OpenMailFrame.activeAttachmentRowPositions  > 0) do
 			tremove(OpenMailFrame.activeAttachmentRowPositions );
 		end
 	else
 		OpenMailFrame.activeAttachmentRowPositions = {};
 	end
 
 	local rowAttachmentCount = 0;
 
 	-- letter
 	if ( letterIsTakeable and not textCreated ) then
 		SetItemButtonTexture(OpenMailLetterButton, stationeryIcon);
 		tinsert(OpenMailFrame.activeAttachmentButtons, OpenMailLetterButton);
 		rowAttachmentCount = rowAttachmentCount + 1;
 	else
 		SetItemButtonTexture(OpenMailLetterButton, "");
 	end
 	-- money
 	if ( money == 0 ) then
 		SetItemButtonTexture(OpenMailMoneyButton, "");
 	else
 		SetItemButtonTexture(OpenMailMoneyButton, GetCoinIcon(money));
 		tinsert(OpenMailFrame.activeAttachmentButtons, OpenMailMoneyButton);
 		rowAttachmentCount = rowAttachmentCount + 1;
 	end
 	-- items
 	for i=1, ATTACHMENTS_MAX_RECEIVE do
 		local name, itemTexture, count, quality, canUse = GetInboxItem(InboxFrame.openMailID, i);
 		local attachmentButton = _G["OpenMailAttachmentButton"..i];
 		if ( name ) then
 			tinsert(OpenMailFrame.activeAttachmentButtons, attachmentButton);
 			rowAttachmentCount = rowAttachmentCount + 1;
 
 			SetItemButtonTexture(attachmentButton, itemTexture);
 			SetItemButtonCount(attachmentButton, count);
+
+			if (quality > LE_ITEM_QUALITY_COMMON and BAG_ITEM_QUALITY_COLORS[quality]) then
+				attachmentButton.IconBorder:Show();
+				attachmentButton.IconBorder:SetVertexColor(BAG_ITEM_QUALITY_COLORS[quality].r, BAG_ITEM_QUALITY_COLORS[quality].g, BAG_ITEM_QUALITY_COLORS[quality].b);
+			else
+				attachmentButton.IconBorder:Hide();
+			end
+
 			if ( canUse ) then
 				SetItemButtonTextureVertexColor(attachmentButton, HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b);
 			else
 				SetItemButtonTextureVertexColor(attachmentButton, 1.0, 0.1, 0.1);
 			end
 		else
 			attachmentButton:Hide();
 		end
 
 		if ( rowAttachmentCount >= ATTACHMENTS_PER_ROW_RECEIVE ) then
 			tinsert(OpenMailFrame.activeAttachmentRowPositions, {cursorxstart=0,cursorxend=ATTACHMENTS_PER_ROW_RECEIVE - 1});
 			rowAttachmentCount = 0;
 		end
 	end
 	-- insert last row's position data
 	if ( rowAttachmentCount > 0 ) then
 		local xstart = (ATTACHMENTS_PER_ROW_RECEIVE - rowAttachmentCount) / 2;
 		local xend = xstart + rowAttachmentCount - 1;
 		tinsert(OpenMailFrame.activeAttachmentRowPositions, {cursorxstart=xstart,cursorxend=xend});
 	end
 
 	-- hide unusable attachment buttons
 	for i=ATTACHMENTS_MAX_RECEIVE + 1, ATTACHMENTS_MAX do
 		_G["OpenMailAttachmentButton"..i]:Hide();
 	end
 end
 
 function OpenMail_Update()
 	if ( not InboxFrame.openMailID ) then
 		return;
 	end
 	if ( CanComplainInboxItem(InboxFrame.openMailID) ) then
 		OpenMailReportSpamButton:Enable();
 		OpenMailReportSpamButton:Show();
 	else
 		OpenMailReportSpamButton:Hide();
 	end
 
 	-- Setup mail item
 	local packageIcon, stationeryIcon, sender, subject, money, CODAmount, daysLeft, itemCount, wasRead, wasReturned, textCreated, canReply = GetInboxHeaderInfo(InboxFrame.openMailID);
 	-- Set sender and subject
 	if ( not sender or not canReply or sender == UnitName("player") ) then
 		OpenMailReplyButton:Disable();
 	else
 		OpenMailReplyButton:Enable();
 	end
 	if ( not sender ) then
 		sender = UNKNOWN;
 	end
 	-- Save sender name to pass to a potential spam report
 	InboxFrame.openMailSender = sender;
 	OpenMailSender.Name:SetText(sender);
 	OpenMailSubject:SetText(subject);
 	-- Set Text
 	local bodyText, texture, isTakeable, isInvoice = GetInboxText(InboxFrame.openMailID);
 	OpenMailBodyText:SetText(bodyText, true);
 	if ( texture ) then
 		OpenStationeryBackgroundLeft:SetTexture(STATIONERY_PATH..texture.."1");
 		OpenStationeryBackgroundRight:SetTexture(STATIONERY_PATH..texture.."2");
 	end
 
 	-- Is an invoice
 	if ( isInvoice ) then
 		local invoiceType, itemName, playerName, bid, buyout, deposit, consignment, moneyDelay, etaHour, etaMin, count = GetInboxInvoiceInfo(InboxFrame.openMailID);
 		if ( playerName ) then
 			-- Setup based on whether player is the buyer or the seller
 			local buyMode;
 			if ( count and count > 1 ) then
 				itemName = format(AUCTION_MAIL_ITEM_STACK, itemName, count);
 			end
 			if ( invoiceType == "buyer" ) then
 				if ( bid == buyout ) then
 					buyMode = "("..BUYOUT..")";
 				else
 					buyMode = "("..HIGH_BIDDER..")";
 				end
 				OpenMailInvoiceItemLabel:SetText(ITEM_PURCHASED_COLON.." "..itemName.."  "..buyMode);
 				OpenMailInvoicePurchaser:SetText(SOLD_BY_COLON.." "..playerName);
 				OpenMailInvoiceAmountReceived:SetText(AMOUNT_PAID_COLON);
 				-- Clear buymode
 				OpenMailInvoiceBuyMode:SetText("");
 				-- Update purchase price
 				MoneyFrame_Update("OpenMailTransactionAmountMoneyFrame", bid);	
 				-- Position buy line
 				OpenMailArithmeticLine:SetPoint("TOP", "OpenMailInvoicePurchaser", "BOTTOMLEFT", 125, 0);
 				-- Not used for a purchase invoice
 				OpenMailInvoiceSalePrice:Hide();
 				OpenMailInvoiceDeposit:Hide();
 				OpenMailInvoiceHouseCut:Hide();
 				OpenMailDepositMoneyFrame:Hide();
 				OpenMailHouseCutMoneyFrame:Hide();
 				OpenMailSalePriceMoneyFrame:Hide();
 				OpenMailInvoiceNotYetSent:Hide();
 				OpenMailInvoiceMoneyDelay:Hide();
 			elseif (invoiceType == "seller") then
 				OpenMailInvoiceItemLabel:SetText(ITEM_SOLD_COLON.." "..itemName);
 				OpenMailInvoicePurchaser:SetText(PURCHASED_BY_COLON.." "..playerName);
 				OpenMailInvoiceAmountReceived:SetText(AMOUNT_RECEIVED_COLON);
 				-- Determine if auction was bought out or bid on
 				if ( bid == buyout ) then
 					OpenMailInvoiceBuyMode:SetText("("..BUYOUT..")");
 				else
 					OpenMailInvoiceBuyMode:SetText("("..HIGH_BIDDER..")");
 				end
 				-- Position buy line
 				OpenMailArithmeticLine:SetPoint("TOP", "OpenMailInvoiceHouseCut", "BOTTOMRIGHT", -114, -9);
 				MoneyFrame_Update("OpenMailSalePriceMoneyFrame", bid);
 				MoneyFrame_Update("OpenMailDepositMoneyFrame", deposit);
 				MoneyFrame_Update("OpenMailHouseCutMoneyFrame", consignment);
 				SetMoneyFrameColor("OpenMailHouseCutMoneyFrame", "red");
 				MoneyFrame_Update("OpenMailTransactionAmountMoneyFrame", bid+deposit-consignment);
 
 				-- Show these guys if the player was the seller
 				OpenMailInvoiceSalePrice:Show();
 				OpenMailInvoiceDeposit:Show();
 				OpenMailInvoiceHouseCut:Show();
 				OpenMailDepositMoneyFrame:Show();
 				OpenMailHouseCutMoneyFrame:Show();
 				OpenMailSalePriceMoneyFrame:Show();
 				OpenMailInvoiceNotYetSent:Hide();
 				OpenMailInvoiceMoneyDelay:Hide();
 			elseif (invoiceType == "seller_temp_invoice") then 
 				if ( bid == buyout ) then
 					buyMode = "("..BUYOUT..")";
 				else
 					buyMode = "("..HIGH_BIDDER..")";
 				end
 				OpenMailInvoiceItemLabel:SetText(ITEM_SOLD_COLON.." "..itemName.."  "..buyMode);
 				OpenMailInvoicePurchaser:SetText(PURCHASED_BY_COLON.." "..playerName);
 				OpenMailInvoiceAmountReceived:SetText(AUCTION_INVOICE_PENDING_FUNDS_COLON);
 				-- Clear buymode
 				OpenMailInvoiceBuyMode:SetText("");
 				-- Update purchase price
 				MoneyFrame_Update("OpenMailTransactionAmountMoneyFrame", bid+deposit-consignment);	
 				-- Position buy line
 				OpenMailArithmeticLine:SetPoint("TOP", "OpenMailInvoicePurchaser", "BOTTOMLEFT", 125, 0);
 				-- How long they have to wait to get the money
 				OpenMailInvoiceMoneyDelay:SetFormattedText(AUCTION_INVOICE_FUNDS_DELAY, GameTime_GetFormattedTime(etaHour, etaMin, true));
 				-- Not used for a temp sale invoice
 				OpenMailInvoiceSalePrice:Hide();
 				OpenMailInvoiceDeposit:Hide();
 				OpenMailInvoiceHouseCut:Hide();
 				OpenMailDepositMoneyFrame:Hide();
 				OpenMailHouseCutMoneyFrame:Hide();
 				OpenMailSalePriceMoneyFrame:Hide();
 				OpenMailInvoiceNotYetSent:Show();
 				OpenMailInvoiceMoneyDelay:Show();
 			end
 			OpenMailInvoiceFrame:Show();
 		end
 	else
 		OpenMailInvoiceFrame:Hide();
 	end
 
 	local itemButtonCount, itemRowCount = OpenMail_GetItemCounts(isTakeable, textCreated, money);
 	if ( OpenMailFrame.updateButtonPositions ) then
 		OpenMailFrame_UpdateButtonPositions(isTakeable, textCreated, stationeryIcon, money);
 	end
 	if ( OpenMailFrame.activeAttachmentRowPositions ) then
 		itemRowCount = #OpenMailFrame.activeAttachmentRowPositions;
 	end
 
 	-- record the original number of buttons that the mail needs
 	OpenMailFrame.itemButtonCount = itemButtonCount;
 
 	-- Determine starting position for buttons
 	local marginxl = 10 + 4;
 	local marginxr = 43 + 4;
 	local areax = OpenMailFrame:GetWidth() - marginxl - marginxr;
 	local iconx = OpenMailAttachmentButton1:GetWidth() + 2;
 	local icony = OpenMailAttachmentButton1:GetHeight() + 2;
 	local gapx1 = floor((areax - (iconx * ATTACHMENTS_PER_ROW_RECEIVE)) / (ATTACHMENTS_PER_ROW_RECEIVE - 1));
 	local gapx2 = floor((areax - (iconx * ATTACHMENTS_PER_ROW_RECEIVE) - (gapx1 * (ATTACHMENTS_PER_ROW_RECEIVE - 1))) / 2);
 	local gapy1 = 3;
 	local gapy2 = 3;
 	local areay = gapy2 + OpenMailAttachmentText:GetHeight() + gapy2 + (icony * itemRowCount) + (gapy1 * (itemRowCount - 1)) + gapy2;
 	local indentx = marginxl + gapx2;
 	local indenty = 28 + gapy2;
 	local tabx = (iconx + gapx1) + 6; --this magic number changes the button spacing
 	local taby = (icony + gapy1);
 	local scrollHeight = 305 - areay;
 	if (scrollHeight > 256) then
 		scrollHeight = 256;
 		areay = 305 - scrollHeight;
 	end
 
 	-- Resize the scroll frame
 	OpenMailScrollFrame:SetHeight(scrollHeight);
 	OpenMailScrollChildFrame:SetHeight(scrollHeight);
 	OpenMailHorizontalBarLeft:SetPoint("TOPLEFT", "OpenMailFrame", "BOTTOMLEFT", 2, 39 + areay);
 	OpenScrollBarBackgroundTop:SetHeight(min(scrollHeight, 256));
 	OpenScrollBarBackgroundTop:SetTexCoord(0, 0.484375, 0, min(scrollHeight, 256) / 256);
 	OpenStationeryBackgroundLeft:SetHeight(scrollHeight);
 	OpenStationeryBackgroundLeft:SetTexCoord(0, 1.0, 0, min(scrollHeight, 256) / 256);
 	OpenStationeryBackgroundRight:SetHeight(scrollHeight);
 	OpenStationeryBackgroundRight:SetTexCoord(0, 1.0, 0, min(scrollHeight, 256) / 256);
 
 	-- Set attachment text
 	if ( itemButtonCount > 0 ) then
 		OpenMailAttachmentText:SetText(TAKE_ATTACHMENTS);
 		OpenMailAttachmentText:SetTextColor(HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b);
 		OpenMailAttachmentText:SetPoint("TOPLEFT", "OpenMailFrame", "BOTTOMLEFT", indentx, indenty + (icony * itemRowCount) + (gapy1 * (itemRowCount - 1)) + gapy2 + OpenMailAttachmentText:GetHeight());
 	else
 		OpenMailAttachmentText:SetText(NO_ATTACHMENTS);
 		OpenMailAttachmentText:SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b);
 		OpenMailAttachmentText:SetPoint("TOPLEFT", "OpenMailFrame", "BOTTOMLEFT", marginxl + (areax - OpenMailAttachmentText:GetWidth()) / 2, indenty + (areay - OpenMailAttachmentText:GetHeight()) / 2 + OpenMailAttachmentText:GetHeight());
 	end
 	-- Set letter
 	if ( isTakeable and not textCreated ) then
 		OpenMailLetterButton:Show();
 	else
 		OpenMailLetterButton:Hide();
 	end
 	-- Set Money
 	if ( money == 0 ) then
 		OpenMailMoneyButton:Hide();
 		OpenMailFrame.money = nil;
 	else
 		OpenMailMoneyButton:Show();
 		OpenMailFrame.money = money;
 	end
 	-- Set Items
 	if ( itemRowCount > 0 and OpenMailFrame.activeAttachmentButtons ) then
 		local firstAttachName;
 		local rowIndex = 1;
 		local cursorx = OpenMailFrame.activeAttachmentRowPositions[1].cursorxstart;
 		local cursorxend = OpenMailFrame.activeAttachmentRowPositions[1].cursorxend;
 		local cursory = itemRowCount - 1;
 		for i, attachmentButton in pairs(OpenMailFrame.activeAttachmentButtons) do
 			attachmentButton:SetPoint("TOPLEFT", "OpenMailFrame", "BOTTOMLEFT", indentx + (tabx * cursorx), indenty + icony + (taby * cursory));
 			if ( attachmentButton ~= OpenMailLetterButton and attachmentButton ~= OpenMailMoneyButton ) then
 				local name, itemTexture, count, quality, canUse = GetInboxItem(InboxFrame.openMailID, attachmentButton:GetID());
 				if ( name and cursory >= 0 ) then
 					if ( not firstAttachName ) then
 						firstAttachName = name;
 					end
 
 					attachmentButton:Enable();
 					attachmentButton:Show();
 				else
 					attachmentButton:Hide();
 				end
 			end
 
 			cursorx = cursorx + 1;
 			if (cursorx > cursorxend) then
 				rowIndex = rowIndex + 1;
 
 				cursory = cursory - 1;
 				if ( rowIndex <= itemRowCount ) then
 					cursorx = OpenMailFrame.activeAttachmentRowPositions[rowIndex].cursorxstart;
 					cursorxend = OpenMailFrame.activeAttachmentRowPositions[rowIndex].cursorxend;
 				end
 			end
 		end
 
 		OpenMailFrame.itemName = firstAttachName;
 	else
 		OpenMailFrame.itemName = nil;
 	end
 
 	-- Set COD
 	if ( CODAmount > 0 ) then
 		OpenMailFrame.cod = CODAmount;
 	else
 		OpenMailFrame.cod = nil;
 	end
 	-- Set button to delete or return to sender
 	if ( InboxItemCanDelete(InboxFrame.openMailID) ) then
 		OpenMailDeleteButton:SetText(DELETE);
 	else
 		OpenMailDeleteButton:SetText(MAIL_RETURN);
 	end
 end
 
 function OpenMail_GetItemCounts(letterIsTakeable, textCreated, money)
 	local itemButtonCount = 0;
 	local itemRowCount = 0;
 	local numRows = 0;
 	if ( letterIsTakeable and not textCreated ) then
 		itemButtonCount = itemButtonCount + 1;
 		itemRowCount = itemRowCount + 1;
 	end
 	if ( money ~= 0 ) then
 		itemButtonCount = itemButtonCount + 1;
 		itemRowCount = itemRowCount + 1;
 	end
 	for i=1, ATTACHMENTS_MAX_RECEIVE do
 		local name, itemTexture, count, quality, canUse = GetInboxItem(InboxFrame.openMailID, i);
 		if ( name ) then
 			itemButtonCount = itemButtonCount + 1;
 			itemRowCount = itemRowCount + 1;
 		end
 
 		if ( itemRowCount >= ATTACHMENTS_PER_ROW_RECEIVE ) then
 			numRows = numRows + 1;
 			itemRowCount = 0;
 		end
 	end
 	if ( itemRowCount > 0 ) then
 		numRows = numRows + 1;
 	end
 	return itemButtonCount, numRows;
 end
 
 function OpenMail_Reply()
 	MailFrameTab_OnClick(nil, 2);
 	SendMailNameEditBox:SetText(OpenMailSender.Name:GetText())
 	local subject = OpenMailSubject:GetText();
 	local prefix = MAIL_REPLY_PREFIX.." ";
 	if ( strsub(subject, 1, strlen(prefix)) ~= prefix ) then
 		subject = prefix..subject;
 	end
 	SendMailSubjectEditBox:SetText(subject)
 	SendMailBodyEditBox:SetFocus();
 
 	-- Set the send mode so the work flow can change accordingly
 	SendMailFrame.sendMode = "reply";
 end
 
 function OpenMail_Delete()
 	if ( InboxItemCanDelete(InboxFrame.openMailID) ) then
 		if ( OpenMailFrame.itemName ) then
 			StaticPopup_Show("DELETE_MAIL", OpenMailFrame.itemName);
 			return;
 		elseif ( OpenMailFrame.money ) then
 			StaticPopup_Show("DELETE_MONEY");
 			return;
 		else
 			DeleteInboxItem(InboxFrame.openMailID);
 		end
 	else
 		ReturnInboxItem(InboxFrame.openMailID);
 		StaticPopup_Hide("COD_CONFIRMATION");
 	end
 	InboxFrame.openMailID = nil;
 	HideUIPanel(OpenMailFrame);
 end
 
 function OpenMail_ReportSpam()
 	local dialog = StaticPopup_Show("CONFIRM_REPORT_SPAM_MAIL", InboxFrame.openMailSender);
 	if ( dialog ) then
 		dialog.data = InboxFrame.openMailID;
 	end
 	OpenMailReportSpamButton:Disable();
 end
 
 function OpenMailAttachment_OnEnter(self, index)
 	GameTooltip:SetOwner(self, "ANCHOR_RIGHT");
 	local hasCooldown, speciesID, level, breedQuality, maxHealth, power, speed, name = GameTooltip:SetInboxItem(InboxFrame.openMailID, index);
 	if(speciesID and speciesID > 0) then
 		BattlePetToolTip_Show(speciesID, level, breedQuality, maxHealth, power, speed, name);
 	end
 
 	if ( OpenMailFrame.cod ) then
 		SetTooltipMoney(GameTooltip, OpenMailFrame.cod);
 		if ( OpenMailFrame.cod > GetMoney() ) then
 			SetMoneyFrameColor("GameTooltipMoneyFrame1", "red");
 		else
 			SetMoneyFrameColor("GameTooltipMoneyFrame1", "white");
 		end
 	end
 	GameTooltip:Show();
 end
 
 function OpenMailAttachment_OnClick(self, index)
 	if ( OpenMailFrame.cod and (OpenMailFrame.cod > GetMoney()) ) then
 		StaticPopup_Show("COD_ALERT");
 	elseif ( OpenMailFrame.cod ) then
 		OpenMailFrame.lastTakeAttachment = index;
 		StaticPopup_Show("COD_CONFIRMATION");
 		OpenMailFrame.updateButtonPositions = false;
 	else
 		TakeInboxItem(InboxFrame.openMailID, index);
 		OpenMailFrame.updateButtonPositions = false;
 	end
 	PlaySound("igMainMenuOptionCheckBoxOn");
 end
 
 -- SendMail functions
 
 function SendMailMailButton_OnClick(self)
 	self:Disable();
 	local copper = MoneyInputFrame_GetCopper(SendMailMoney);
 	SetSendMailCOD(0);
 	SetSendMailMoney(0);
 	if ( SendMailSendMoneyButton:GetChecked() ) then
 		-- Send Money
 		if ( copper > 0 ) then
 			-- Open confirmation dialog
 			StaticPopup_Show("SEND_MONEY", SendMailNameEditBox:GetText());
 			return;
 		end
 	else
 		-- Send C.O.D.
 		if ( copper > 0 ) then
 			SetSendMailCOD(copper);
 		end
 	end
 	SendMailFrame_SendMail();
 end
 
 function SendMailFrame_SendMail()
 	SendMail(SendMailNameEditBox:GetText(), SendMailSubjectEditBox:GetText(), SendMailBodyEditBox:GetText());
 end
 
 function SendMailFrame_Update()
 	-- Update the item(s) being sent
 	local itemCount = 0;
 	local itemTitle;
 	local gap;
 	local last = 0;
 	for i=1, ATTACHMENTS_MAX_SEND do
 		-- get info about the attachment
 		local itemName, itemTexture, stackCount, quality = GetSendMailItem(i);
 		-- set attachment texture info
 		_G["SendMailAttachment"..i]:SetNormalTexture(itemTexture);
 		-- set the stack count
 		if ( stackCount <= 1 ) then
 			_G["SendMailAttachment"..i.."Count"]:SetText("");
 		else
 			_G["SendMailAttachment"..i.."Count"]:SetText(stackCount);
 		end
+
+		local attachmentButton = _G["SendMailAttachment"..i];
+		
+		if (quality > LE_ITEM_QUALITY_COMMON and BAG_ITEM_QUALITY_COLORS[quality]) then
+			attachmentButton.IconBorder:Show();
+			attachmentButton.IconBorder:SetVertexColor(BAG_ITEM_QUALITY_COLORS[quality].r, BAG_ITEM_QUALITY_COLORS[quality].g, BAG_ITEM_QUALITY_COLORS[quality].b);
+		else
+			attachmentButton.IconBorder:Hide();
+		end
+
 		-- determine what a name for the message in case it doesn't already have one
 		if ( itemName ) then
 			itemCount = itemCount + 1;
 			if ( not itemTitle ) then
 				if ( stackCount <= 1 ) then
 					itemTitle = itemName;
 				else
 					itemTitle = itemName.." ("..stackCount..")";
 				end
 			end
 			if ((last + 1) ~= i) then
 				gap = 1;
 			end
 			last = i;
 		end
 	end
 	-- Enable or disable C.O.D. depending on whether or not there's an item to send
 	if ( itemCount > 0 ) then
 		SendMailCODButton:Enable();
 		SendMailCODButtonText:SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b);
 
 		if ( SendMailSubjectEditBox:GetText() == "" or SendMailSubjectEditBox:GetText() == SendMailFrame.previousItem ) then
 			SendMailSubjectEditBox:SetText(itemTitle);
 			SendMailFrame.previousItem = itemTitle;
 		end
 	else
 		-- If no itemname see if the subject is the name of the previously held item, if so clear the subject
 		if ( SendMailSubjectEditBox:GetText() == SendMailFrame.previousItem ) then
 			SendMailSubjectEditBox:SetText("");	
 		end
 		SendMailFrame.previousItem = "";
 
 		SendMailRadioButton_OnClick(1);
 		SendMailCODButton:Disable();
 		SendMailCODButtonText:SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b);
 	end
 	-- Update the cost
 	MoneyFrame_Update("SendMailCostMoneyFrame", GetSendMailPrice());	
 	
 	-- Color the postage text
 	if ( GetSendMailPrice() > GetMoney() ) then
 		SetMoneyFrameColor("SendMailCostMoneyFrame", "red");
 	else
 		SetMoneyFrameColor("SendMailCostMoneyFrame", "white");
 	end
 
 	-- Determine how many rows of attachments to show
 	local itemRowCount = 1;
 	local temp = last;
 	while ((temp > ATTACHMENTS_PER_ROW_SEND) and (itemRowCount < ATTACHMENTS_MAX_ROWS_SEND)) do
 		itemRowCount = itemRowCount + 1;
 		temp = temp - ATTACHMENTS_PER_ROW_SEND;
 	end
 	if (not gap and (temp == ATTACHMENTS_PER_ROW_SEND) and (itemRowCount < ATTACHMENTS_MAX_ROWS_SEND)) then
 		itemRowCount = itemRowCount + 1;
 	end
 	if (SendMailFrame.maxRowsShown and (last > 0) and (itemRowCount < SendMailFrame.maxRowsShown)) then
 		itemRowCount = SendMailFrame.maxRowsShown;
 	else
 		SendMailFrame.maxRowsShown = itemRowCount;
 	end
 
 	-- Compute sizes
 	local cursorx = 0;
 	local cursory = itemRowCount - 1;
 	local marginxl = 8 + 6;
 	local marginxr = 40 + 6;
 	local areax = SendMailFrame:GetWidth() - marginxl - marginxr;
 	local iconx = SendMailAttachment1:GetWidth() + 2;
 	local icony = SendMailAttachment1:GetHeight() + 2;
 	local gapx1 = floor((areax - (iconx * ATTACHMENTS_PER_ROW_SEND)) / (ATTACHMENTS_PER_ROW_SEND - 1));
 	local gapx2 = floor((areax - (iconx * ATTACHMENTS_PER_ROW_SEND) - (gapx1 * (ATTACHMENTS_PER_ROW_SEND - 1))) / 2);
 	local gapy1 = 5;
 	local gapy2 = 6;
 	local areay = (gapy2 * 2) + (gapy1 * (itemRowCount - 1)) + (icony * itemRowCount);
 	local indentx = marginxl + gapx2;
 	local indenty = 170 + gapy2 + icony;
 	local tabx = (iconx + gapx1) - 2; --this magic number changes the attachment spacing
 	local taby = (icony + gapy1);
 	local scrollHeight = 249 - areay;
 
 	-- Resize the scroll frame
 	SendMailScrollFrame:SetHeight(scrollHeight);
 	SendMailScrollChildFrame:SetHeight(scrollHeight);
 	SendMailHorizontalBarLeft2:SetPoint("TOPLEFT", "SendMailFrame", "BOTTOMLEFT", 2, 184 + areay);
 	SendScrollBarBackgroundTop:SetHeight(min(scrollHeight, 256));
 	SendScrollBarBackgroundTop:SetTexCoord(0, 0.484375, 0, min(scrollHeight, 256) / 256);
 	SendStationeryBackgroundLeft:SetHeight(min(scrollHeight, 256));
 	SendStationeryBackgroundLeft:SetTexCoord(0, 1.0, 0, min(scrollHeight, 256) / 256);
 	SendStationeryBackgroundRight:SetHeight(min(scrollHeight, 256));
 	SendStationeryBackgroundRight:SetTexCoord(0, 1.0, 0, min(scrollHeight, 256) / 256);
 	
 	-- Set Items
 	for i=1, ATTACHMENTS_MAX_SEND do
 		if (cursory >= 0) then
 			_G["SendMailAttachment"..i]:Enable();
 			_G["SendMailAttachment"..i]:Show();
 			_G["SendMailAttachment"..i]:SetPoint("TOPLEFT", "SendMailFrame", "BOTTOMLEFT", indentx + (tabx * cursorx), indenty + (taby * cursory));
 			
 			cursorx = cursorx + 1;
 			if (cursorx >= ATTACHMENTS_PER_ROW_SEND) then
 				cursory = cursory - 1;
 				cursorx = 0;
 			end
 		else
 			_G["SendMailAttachment"..i]:Hide();
 		end
 	end
 	for i=ATTACHMENTS_MAX_SEND+1, ATTACHMENTS_MAX do
 		_G["SendMailAttachment"..i]:Hide();
 	end
 
 	SendMailFrame_CanSend();
 end
 
 function SendMailFrame_Reset()
 	SendMailNameEditBox:SetText("");
 	SendMailNameEditBox:SetFocus();
 	SendMailSubjectEditBox:SetText("");
 	SendMailBodyEditBox:SetText("");
 	StationeryPopupFrame.selectedIndex = nil;
 	SendMailFrame_Update();
 	StationeryPopupButton_OnClick(nil, 1);
 	MoneyInputFrame_ResetMoney(SendMailMoney);
 	SendMailRadioButton_OnClick(1);
 	SendMailFrame.maxRowsShown = 0;
 end
 
 function SendMailFrame_CanSend()
 	local checks = 0;
 	local checksRequired = 3;
 	-- If has stationery
 	if ( StationeryPopupFrame.selectedIndex ~= nil ) then
 		checks = checks + 1;
 	end
 	-- and has a sendee
 	if ( strlen(SendMailNameEditBox:GetText()) > 0 ) then
 		checks = checks + 1;
 	end
 	-- and has a subject
 	if ( strlen(SendMailSubjectEditBox:GetText()) > 0 ) then
 		checks = checks + 1;
 	end
 	-- check c.o.d. amount
 	if ( SendMailCODButton:GetChecked() ) then
 		checksRequired = 4;
 		-- COD must be less than 10000 gold
 		if ( MoneyInputFrame_GetCopper(SendMailMoney) > MAX_COD_AMOUNT*COPPER_PER_GOLD ) then
 			if ( ENABLE_COLORBLIND_MODE ~= "1" ) then
 				SendMailErrorCoin:Show();
 			end
 			SendMailErrorText:Show();			
 		else
 			SendMailErrorText:Hide();
 			SendMailErrorCoin:Hide();
 			checks = checks + 1;
 		end
 	end
 	
 	if ( checks == checksRequired ) then
 		SendMailMailButton:Enable();
 	else
 		SendMailMailButton:Disable();
 	end
 end
 
 function SendMailRadioButton_OnClick(index)
 	if ( index == 1 ) then
-		SendMailSendMoneyButton:SetChecked(1);
-		SendMailCODButton:SetChecked(nil);
+		SendMailSendMoneyButton:SetChecked(true);
+		SendMailCODButton:SetChecked(false);
 		SendMailMoneyText:SetText(AMOUNT_TO_SEND);
 	else
-		SendMailSendMoneyButton:SetChecked(nil);
-		SendMailCODButton:SetChecked(1);
+		SendMailSendMoneyButton:SetChecked(false);
+		SendMailCODButton:SetChecked(true);
 		SendMailMoneyText:SetText(COD_AMOUNT);
 	end
 	PlaySound("igMainMenuOptionCheckBoxOn");
 end
 
 -- Stationery functions
 
 function StationeryPopupFrame_Update()
 	local numStationeries = GetNumStationeries();
 	local index = FauxScrollFrame_GetOffset(StationeryPopupScrollFrame) + 1;
 	local name, texture, cost;
 	local button;
 	for i=1, STATIONERYITEMS_TO_DISPLAY do
 		button = _G["StationeryPopupButton"..i];
 		if ( index <= numStationeries ) then
 			name, texture, cost = GetStationeryInfo(index);
 			_G["StationeryPopupButton"..i.."Name"]:SetText(name);
 			if ( cost ) then
 				MoneyFrame_Update("StationeryPopupButton"..i.."MoneyFrame", cost);
 				-- If player can't afford
 				if ( cost > GetMoney() ) then
 					button:Disable();
 					SetMoneyFrameColor("StationeryPopupButton"..i.."MoneyFrame", "red");
 				else
 					button:Enable();
 					SetMoneyFrameColor("StationeryPopupButton"..i.."MoneyFrame", "white");
 				end
 			else
 				-- Is a stationery in player's inventory or is free
 				MoneyFrame_Update("StationeryPopupButton"..i.."MoneyFrame", 0);
 			end
 			_G["StationeryPopupButton"..i.."Icon"]:SetTexture(texture);
 			button:Show();
 		else
 			_G["StationeryPopupButton"..i.."Name"]:SetText("");
 			MoneyFrame_Update("StationeryPopupButton"..i.."MoneyFrame", 0);
 			_G["StationeryPopupButton"..i.."Icon"]:SetTexture("");
 			button:Hide();
 		end
 		
 		if ( index == StationeryPopupFrame.selectedIndex ) then
-			button:SetChecked(1);
+			button:SetChecked(true);
 		else
-			button:SetChecked(nil);
+			button:SetChecked(false);
 		end
 		button.index = index;
 		index = index + 1;
 	end
 
 	-- Scrollbar stuff
 	FauxScrollFrame_Update(StationeryPopupScrollFrame, numStationeries , STATIONERYITEMS_TO_DISPLAY, STATIONERY_ICON_ROW_HEIGHT );
 end
 
 function StationeryPopupButton_OnClick(self, index)
 	if ( not index ) then
 		index = self.index;
 	end
 	SelectStationery(index);
 	StationeryPopupFrame.selectedIndex = index;
 	SendMailFrame_CanSend()
 	-- Set the stationery texture
 	local texture = GetSelectedStationeryTexture();
 	if ( texture ) then
 		SendStationeryBackgroundLeft:SetTexture(STATIONERY_PATH..texture.."1");
 		SendStationeryBackgroundRight:SetTexture(STATIONERY_PATH..texture.."2");
 	end
 	StationeryPopupFrame_Update();
 end
 
 function SendMailMoneyButton_OnClick()
 	local cursorMoney = GetCursorMoney();
 	if ( cursorMoney > 0 ) then
 		local money = MoneyInputFrame_GetCopper(SendMailMoney);
 		if ( money > 0 ) then
 			cursorMoney = cursorMoney + money;
 		end
 		MoneyInputFrame_SetCopper(SendMailMoney, cursorMoney);
 		DropCursorMoney();
 	end
 end
 
 function SendMailAttachmentButton_OnClick(self, button)
 	ClickSendMailItemButton(self:GetID(), button == "RightButton");
 end
 
 function SendMailAttachmentButton_OnDropAny()
 	ClickSendMailItemButton();
 end
 
 function SendMailAttachment_OnEnter(self)
 	local index = self:GetID();
 	GameTooltip:SetOwner(self, "ANCHOR_RIGHT");
 	if ( GetSendMailItem(index) ) then
 		local hasCooldown, speciesID, level, breedQuality, maxHealth, power, speed, name = GameTooltip:SetSendMailItem(index);
 		if(speciesID and speciesID > 0) then
 			BattlePetToolTip_Show(speciesID, level, breedQuality, maxHealth, power, speed, name);
 		end
 	else
 		GameTooltip:SetText(ATTACHMENT_TEXT, 1.0, 1.0, 1.0);
 	end
 end