@@ -433,7 +433,7 @@ StaticPopupDialogs["USE_GUILDBANK_REPAIR
 		PlaySound("ITEM_REPAIR");
 	end,
 	OnCancel = function ()
-		RepairAllItems(1);
+		RepairAllItems(true);
 		PlaySound("ITEM_REPAIR");
 	end,
 	timeout = 0,
@@ -491,6 +491,20 @@ StaticPopupDialogs["CONFIRM_BUY_GUILDBAN
 	timeout = 0,
 	hideOnEscape = 1
 };
+StaticPopupDialogs["CONFIRM_BUY_REAGENTBANK_TAB"] = {
+	text = CONFIRM_BUY_REAGNETBANK_TAB,
+	button1 = YES,
+	button2 = NO,
+	OnAccept = function(self)
+		BuyReagentBank();
+	end,
+	OnShow = function(self)
+		MoneyFrame_Update(self.moneyFrame, GetReagentBankCost());
+	end,
+	hasMoneyFrame = 1,
+	timeout = 0,
+	hideOnEscape = 1
+};
 
 StaticPopupDialogs["TOO_MANY_LUA_ERRORS"] = {
 	text = TOO_MANY_LUA_ERRORS,
@@ -637,7 +651,7 @@ StaticPopupDialogs["CONFIRM_BATTLEFIELD_
 		end
 	end,
 	OnAccept = function(self, data)
-		if ( not AcceptBattlefieldPort(data, 1) ) then
+		if ( not AcceptBattlefieldPort(data, true) ) then
 			return 1;
 		end
 		if( StaticPopup_Visible( "DEATH" ) ) then
@@ -645,7 +659,7 @@ StaticPopupDialogs["CONFIRM_BATTLEFIELD_
 		end
 	end,
 	OnCancel = function(self, data)
-		if ( not AcceptBattlefieldPort(data, 0) ) then	--Actually declines the battlefield port.
+		if ( not AcceptBattlefieldPort(data, false) ) then	--Actually declines the battlefield port.
 			return 1;
 		end
 	end,
@@ -725,10 +739,10 @@ StaticPopupDialogs["BFMGR_INVITED_TO_ENT
 		end
 	end,
 	OnAccept = function(self, battleID)
-		BattlefieldMgrEntryInviteResponse(battleID,1);
+		BattlefieldMgrEntryInviteResponse(battleID, true);
 	end,
 	OnCancel = function(self, battleID)
-		BattlefieldMgrEntryInviteResponse(battleID,0);
+		BattlefieldMgrEntryInviteResponse(battleID, false);
 	end,
 	timeout = 0,
 	timeoutInformationalOnly = 1;
@@ -1938,8 +1952,8 @@ StaticPopupDialogs["ABANDON_QUEST"] = {
 	button2 = NO,
 	OnAccept = function(self)
 		AbandonQuest();
-		if ( QuestLogDetailFrame:IsShown() ) then
-			HideUIPanel(QuestLogDetailFrame);
+		if ( QuestLogPopupDetailFrame:IsShown() ) then
+			HideUIPanel(QuestLogPopupDetailFrame);
 		end
 		PlaySound("igQuestLogAbandonQuest");
 	end,
@@ -1954,8 +1968,8 @@ StaticPopupDialogs["ABANDON_QUEST_WITH_I
 	button2 = NO,
 	OnAccept = function(self)
 		AbandonQuest();
-		if ( QuestLogDetailFrame:IsShown() ) then
-			HideUIPanel(QuestLogDetailFrame);
+		if ( QuestLogPopupDetailFrame:IsShown() ) then
+			HideUIPanel(QuestLogPopupDetailFrame);
 		end
 		PlaySound("igQuestLogAbandonQuest");
 	end,
@@ -2608,7 +2622,19 @@ StaticPopupDialogs["INSTANCE_BOOT"] = {
 	interruptCinematic = 1,
 	notClosableByLogout = 1
 };
-
+StaticPopupDialogs["GARRISON_BOOT"] = {
+	text = GARRISON_BOOT_TIMER,
+	OnShow = function(self)
+		self.timeleft = GetInstanceBootTimeRemaining();
+		if ( self.timeleft <= 0 ) then
+			self:Hide();
+		end
+	end,
+	timeout = 0,
+	whileDead = 1,
+	interruptCinematic = 1,
+	notClosableByLogout = 1
+};
 StaticPopupDialogs["INSTANCE_LOCK"] = {
 	-- we use a custom timer called lockTimeleft in here to avoid special casing the static popup code
 	-- if you use timeout or timeleft then you will go through the StaticPopup system's standard OnUpdate
@@ -2763,8 +2789,37 @@ StaticPopupDialogs["CONFIRM_SUMMON"] = {
 	timeout = 0,
 	interruptCinematic = 1,
 	notClosableByLogout = 1,
-	hideOnEscape = 1
+	hideOnEscape = 1,
+};
+
+-- Summon dialog when being summoned when in a starting area
+StaticPopupDialogs["CONFIRM_SUMMON_STARTING_AREA"] = {
+	text = CONFIRM_SUMMON_STARTING_AREA,
+	button1 = ACCEPT,
+	button2 = CANCEL,
+	OnShow = function(self)
+		self.timeleft = GetSummonConfirmTimeLeft();
+	end,
+	OnAccept = function(self)
+		ConfirmSummon();
+	end,
+	OnCancel = function()
+		CancelSummon();
+	end,
+	OnUpdate = function(self, elapsed)
+		if ( UnitAffectingCombat("player") or (not PlayerCanTeleport()) ) then
+			self.button1:Disable();
+		else
+			self.button1:Enable();
+		end
+	end,
+	timeout = 0,
+	interruptCinematic = 1,
+	notClosableByLogout = 1,
+	hideOnEscape = 1,
+	showAlert = 1,
 };
+
 StaticPopupDialogs["BILLING_NAG"] = {
 	text = BILLING_NAG_DIALOG;
 	button1 = OKAY,
@@ -3450,8 +3505,10 @@ function StaticPopup_Show(which, text_ar
 		 (which == "RESURRECT") or
 		 (which == "RESURRECT_NO_SICKNESS") or
 		 (which == "INSTANCE_BOOT") or
+		 (which == "GARRISON_BOOT") or
 		 (which == "INSTANCE_LOCK") or
 		 (which == "CONFIRM_SUMMON") or
+		 (which == "CONFIRM_SUMMON_STARTING_AREA") or
 		 (which == "BFMGR_INVITED_TO_ENTER") or
 		 (which == "AREA_SPIRIT_HEAL") ) then
 		text:SetText(" ");	-- The text will be filled in later.
@@ -3688,19 +3745,21 @@ function StaticPopup_OnUpdate(dialog, el
 			 (which == "QUIT") or
 			 (which == "DUEL_OUTOFBOUNDS") or
 			 (which == "INSTANCE_BOOT") or
+			 (which == "GARRISON_BOOT") or
 			 (which == "CONFIRM_SUMMON") or
+			 (which == "CONFIRM_SUMMON_STARTING_AREA") or
 			 (which == "BFMGR_INVITED_TO_ENTER") or
 			 (which == "AREA_SPIRIT_HEAL") or
 			 (which == "SPELL_CONFIRMATION_PROMPT")) then
 			local text = _G[dialog:GetName().."Text"];
 			timeleft = ceil(timeleft);
-			if ( which == "INSTANCE_BOOT" ) then
+			if ( (which == "INSTANCE_BOOT") or (which == "GARRISON_BOOT") ) then
 				if ( timeleft < 60 ) then
 					text:SetFormattedText(StaticPopupDialogs[which].text, timeleft, SECONDS);
 				else
 					text:SetFormattedText(StaticPopupDialogs[which].text, ceil(timeleft / 60), MINUTES);
 				end
-			elseif ( which == "CONFIRM_SUMMON" ) then
+			elseif ( which == "CONFIRM_SUMMON" or which == "CONFIRM_SUMMON_STARTING_AREA" ) then
 				if ( timeleft < 60 ) then
 					text:SetFormattedText(StaticPopupDialogs[which].text, GetSummonConfirmSummoner(), GetSummonConfirmAreaName(), timeleft, SECONDS);
 				else