diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt
index 74b49b846eddac767b1cae5b9191e919fc1bb5d7..82ec02d2ebc66df50590332039ae8ef11a294cb2 100644
--- a/indra/llui/CMakeLists.txt
+++ b/indra/llui/CMakeLists.txt
@@ -26,7 +26,6 @@ include_directories(
     )
 
 set(llui_SOURCE_FILES
-    llalertdialog.cpp
     llbutton.cpp
     llcheckboxctrl.cpp
     llclipboard.cpp
@@ -112,7 +111,6 @@ set(llui_SOURCE_FILES
 set(llui_HEADER_FILES
     CMakeLists.txt
 
-    llalertdialog.h
     llbutton.h
     llcallbackmap.h
     llcheckboxctrl.h
diff --git a/indra/llui/llpanel.cpp b/indra/llui/llpanel.cpp
index 750b1909538055bcdca79e5799250fcd4ff3979b..de2b43bf135ccaf8f03a588f69bb0d37152dde48 100644
--- a/indra/llui/llpanel.cpp
+++ b/indra/llui/llpanel.cpp
@@ -37,7 +37,6 @@
 #define LLPANEL_CPP
 #include "llpanel.h"
 
-#include "llalertdialog.h"
 #include "llfocusmgr.h"
 #include "llfontgl.h"
 #include "llrect.h"
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index be6bce8054f6c658f563bd205db6e33bdf799f12..a9dc1eed24594516e0078f7d7e03de78d36bc201 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -227,7 +227,6 @@ set(viewer_SOURCE_FILES
     llgroupactions.cpp
     llgrouplist.cpp
     llgroupmgr.cpp
-    llgroupnotify.cpp
     llhomelocationresponder.cpp
     llhudeffect.cpp
     llhudeffectbeam.cpp
@@ -298,7 +297,6 @@ set(viewer_SOURCE_FILES
     llnotificationofferhandler.cpp
     llnotificationscripthandler.cpp
     llnotificationtiphandler.cpp
-    llnotify.cpp
     lloutputmonitorctrl.cpp
     lloverlaybar.cpp
     llpanelavatar.cpp
@@ -734,7 +732,6 @@ set(viewer_HEADER_FILES
     llgroupactions.h
     llgrouplist.h
     llgroupmgr.h
-    llgroupnotify.h
     llhomelocationresponder.h
     llhudeffect.h
     llhudeffectbeam.h
@@ -800,7 +797,6 @@ set(viewer_HEADER_FILES
     llnetmap.h
     llnotificationhandler.h
     llnotificationmanager.h
-    llnotify.h
     lloutputmonitorctrl.h
     lloverlaybar.h
     llpanelavatar.h
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index 3114a37adaf7bf866cabb8372b2adfa6bb8629c3..1e2eac39ebc69676b7d8db70bd3ebc24ed51605b 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -41,7 +41,6 @@
 #include "llinventoryobserver.h"
 #include "llinventorypanel.h"
 #include "llnotificationsutil.h"
-#include "llnotify.h"
 #include "llviewerregion.h"
 #include "llvoavatarself.h"
 #include "llwearable.h"
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 9a1b749ba7f1d2084bc0d267d13858d13d811746..2fc7a630ae602fe877a6b8cda346104c1cbc7b30 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -39,7 +39,6 @@
 #include "llfeaturemanager.h"
 #include "lluictrlfactory.h"
 #include "lltexteditor.h"
-#include "llalertdialog.h"
 #include "llerrorcontrol.h"
 #include "llviewertexturelist.h"
 #include "llgroupmgr.h"
@@ -109,7 +108,6 @@
 #include "apr_dso.h"
 #include <boost/lexical_cast.hpp>
 
-#include "llnotify.h"
 #include "llviewerkeyboard.h"
 #include "lllfsthread.h"
 #include "llworkerthread.h"
diff --git a/indra/newview/llassetuploadresponders.cpp b/indra/newview/llassetuploadresponders.cpp
index 1d03cc88233ae4e7f3fa4c7bd5577ca6449ee246..a2322e28b4f4e752792216fdfaf8f7ab47a20d3b 100644
--- a/indra/newview/llassetuploadresponders.cpp
+++ b/indra/newview/llassetuploadresponders.cpp
@@ -39,7 +39,6 @@
 #include "llcompilequeue.h"
 #include "llfloaterbuycurrency.h"
 #include "llfilepicker.h"
-#include "llnotify.h"
 #include "llinventoryobserver.h"
 #include "llinventorypanel.h"
 #include "llpermissionsflags.h"
diff --git a/indra/newview/llcallingcard.cpp b/indra/newview/llcallingcard.cpp
index 714bd20ab888ab34f32119109590b5d874a3d4c6..82413878adb587611c96c0d48c8a959c57576073 100644
--- a/indra/newview/llcallingcard.cpp
+++ b/indra/newview/llcallingcard.cpp
@@ -55,7 +55,6 @@
 #include "llinventorymodel.h"
 #include "llnotifications.h"
 #include "llnotificationsutil.h"
-#include "llnotify.h"
 #include "llresmgr.h"
 #include "llimview.h"
 #include "llviewercontrol.h"
diff --git a/indra/newview/llchannelmanager.cpp b/indra/newview/llchannelmanager.cpp
index 415c118ff1b5eaa8f936e867e487500db2d06c56..cbb566b3a71805ed91f1ea9c829fc5831c08d9f1 100644
--- a/indra/newview/llchannelmanager.cpp
+++ b/indra/newview/llchannelmanager.cpp
@@ -228,3 +228,14 @@ void LLChannelManager::muteAllChannels(bool mute)
 	}
 }
 
+void LLChannelManager::killToastsFromChannel(const LLUUID& channel_id, const LLScreenChannel::Matcher& matcher)
+{
+	LLScreenChannel
+			* screen_channel =
+					dynamic_cast<LLScreenChannel*> (findChannelByID(channel_id));
+	if (screen_channel != NULL)
+	{
+		screen_channel->killMatchedToasts(matcher);
+	}
+}
+
diff --git a/indra/newview/llchannelmanager.h b/indra/newview/llchannelmanager.h
index 4b66a1ef8922bed27e92d18dd239d5c1b7b687cc..c2be39122f4d106937b718b0f1479d9440af0108 100644
--- a/indra/newview/llchannelmanager.h
+++ b/indra/newview/llchannelmanager.h
@@ -109,6 +109,11 @@ class LLChannelManager : public LLSingleton<LLChannelManager>
 	 */
 	void muteAllChannels(bool mute);
 
+	/**
+	 * Kills matched toasts from specified  toast screen channel.
+	 */
+	void killToastsFromChannel(const LLUUID& channel_id, const LLScreenChannel::Matcher& matcher);
+
 private:
 
 	LLScreenChannel* createChannel(LLChannelManager::Params& p);
diff --git a/indra/newview/lldelayedgestureerror.cpp b/indra/newview/lldelayedgestureerror.cpp
index 411cb331a899e76754e9259a05462cae2078fffb..ead377deb02ab727789d4fb1d2ea55ae7d5cb499 100644
--- a/indra/newview/lldelayedgestureerror.cpp
+++ b/indra/newview/lldelayedgestureerror.cpp
@@ -36,7 +36,6 @@
 
 #include <list>
 #include "llnotificationsutil.h"
-#include "llnotify.h"
 #include "llcallbacklist.h"
 #include "llinventory.h"
 #include "llviewerinventory.h"
diff --git a/indra/newview/lleventnotifier.cpp b/indra/newview/lleventnotifier.cpp
index b64799bd86569d239412902e715ed2099844dc21..edfb9dc864fb78f9e1ee81d40a82dcca42cad211 100644
--- a/indra/newview/lleventnotifier.cpp
+++ b/indra/newview/lleventnotifier.cpp
@@ -37,7 +37,6 @@
 #include "llnotificationsutil.h"
 #include "message.h"
 
-#include "llnotify.h"
 #include "lleventinfo.h"
 #include "llfloaterreg.h"
 #include "llfloaterworldmap.h"
diff --git a/indra/newview/llfirstuse.cpp b/indra/newview/llfirstuse.cpp
index 0bcdad5da1414baf6b9c344f79b8976228d39a82..7fd0e070bef767bc854361a2ad1f71bcb979000f 100644
--- a/indra/newview/llfirstuse.cpp
+++ b/indra/newview/llfirstuse.cpp
@@ -40,7 +40,6 @@
 
 // viewer includes
 #include "llagent.h"	// for gAgent.inPrelude()
-#include "llnotify.h"
 #include "llviewercontrol.h"
 #include "llui.h"
 #include "llappviewer.h"
diff --git a/indra/newview/llfloaterauction.cpp b/indra/newview/llfloaterauction.cpp
index b63bcccf6bf2ac07f7ad67b8c2a05ab8b5237617..c1a4a845e5de2cc03dfedd18b04920aea8252d36 100644
--- a/indra/newview/llfloaterauction.cpp
+++ b/indra/newview/llfloaterauction.cpp
@@ -48,7 +48,6 @@
 #include "llcombobox.h"
 #include "llnotifications.h"
 #include "llnotificationsutil.h"
-#include "llnotify.h"
 #include "llsavedsettingsglue.h"
 #include "llviewertexturelist.h"
 #include "llviewerparcelmgr.h"
diff --git a/indra/newview/llfloaterbuy.cpp b/indra/newview/llfloaterbuy.cpp
index 16a5bb63e700cb80924667a6f7a14bc5f977a465..fba557c65698b72e381f83e9cefe5cecb4463944 100644
--- a/indra/newview/llfloaterbuy.cpp
+++ b/indra/newview/llfloaterbuy.cpp
@@ -41,7 +41,6 @@
 #include "llfloaterbuy.h"
 
 #include "llagent.h"			// for agent id
-#include "llalertdialog.h"
 #include "llinventorymodel.h"	// for gInventory
 #include "llfloaterreg.h"
 #include "llfloaterinventory.h"	// for get_item_icon
diff --git a/indra/newview/llfloaterbuycontents.cpp b/indra/newview/llfloaterbuycontents.cpp
index 39c7bc02af432f5cdefd27624d5d62d46527e846..0daef27af297e4773006969a1b977aab06832437 100644
--- a/indra/newview/llfloaterbuycontents.cpp
+++ b/indra/newview/llfloaterbuycontents.cpp
@@ -43,7 +43,6 @@
 #include "llcachename.h"
 
 #include "llagent.h"			// for agent id
-#include "llalertdialog.h"
 #include "llcheckboxctrl.h"
 #include "llinventoryfunctions.h"
 #include "llinventorymodel.h"	// for gInventory
diff --git a/indra/newview/llfloaterbuyland.cpp b/indra/newview/llfloaterbuyland.cpp
index 3a8c3ab4d20ec0a4a42f9244de994bbf56f1febb..9b88923e7eae962009e83b85c0915b01564798af 100644
--- a/indra/newview/llfloaterbuyland.cpp
+++ b/indra/newview/llfloaterbuyland.cpp
@@ -49,7 +49,6 @@
 #include "lliconctrl.h"
 #include "lllineeditor.h"
 #include "llnotificationsutil.h"
-#include "llnotify.h"
 #include "llparcel.h"
 #include "llslurl.h"
 #include "llstatusbar.h"
diff --git a/indra/newview/llfloaterfriends.cpp b/indra/newview/llfloaterfriends.cpp
index 1482d3fe21e500601e3c53df7258269728cfd19d..56291c57a62fbd68c6cc546bb3aee8682192de71 100644
--- a/indra/newview/llfloaterfriends.cpp
+++ b/indra/newview/llfloaterfriends.cpp
@@ -50,7 +50,6 @@
 #include "llinventorymodel.h"
 #include "llnamelistctrl.h"
 #include "llnotificationsutil.h"
-#include "llnotify.h"
 #include "llresmgr.h"
 #include "llscrolllistctrl.h"
 #include "llscrolllistitem.h"
diff --git a/indra/newview/llfloatergodtools.cpp b/indra/newview/llfloatergodtools.cpp
index 04ba11530add5ba2da00857d8cbb1681ae6ef5c1..e1409b8ad5af90229373e5894d8fc3c21d343b37 100644
--- a/indra/newview/llfloatergodtools.cpp
+++ b/indra/newview/llfloatergodtools.cpp
@@ -45,7 +45,6 @@
 #include "message.h"
 
 #include "llagent.h"
-#include "llalertdialog.h"
 #include "llbutton.h"
 #include "llcheckboxctrl.h"
 #include "llcombobox.h"
@@ -69,7 +68,6 @@
 #include "llviewerwindow.h"
 #include "llworld.h"
 #include "llfloateravatarpicker.h"
-#include "llnotify.h"
 #include "llxfermanager.h"
 #include "llvlcomposition.h"
 #include "llsurface.h"
diff --git a/indra/newview/llfloaterhud.cpp b/indra/newview/llfloaterhud.cpp
index 14cff3bcc3ad654aa74c639c29e7670426686240..d2ee3e44c534a57c8a275e03a1712448e11b1519 100644
--- a/indra/newview/llfloaterhud.cpp
+++ b/indra/newview/llfloaterhud.cpp
@@ -37,7 +37,6 @@
 // Viewer libs
 #include "llviewercontrol.h"
 #include "llmediactrl.h"
-#include "llalertdialog.h"
 
 // Linden libs
 #include "llnotificationsutil.h"
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index ed0f24d16052fce9f35a04ad0e0bb75b1072a4ab..7a4a12d3dcc0e6c936a6f1efc471ee60c2ee9476 100644
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -55,7 +55,6 @@
 #include "llavataractions.h"
 #include "lllineeditor.h"
 #include "llnamelistctrl.h"
-#include "llnotify.h"
 #include "llpanellandaudio.h"
 #include "llpanellandmedia.h"
 #include "llradiogroup.h"
diff --git a/indra/newview/llfloateropenobject.cpp b/indra/newview/llfloateropenobject.cpp
index 56a86c2cb72c09f03781150ae1e96c22611ee437..51c18196f2f5fd76886e1f52a36f0399e7202386 100644
--- a/indra/newview/llfloateropenobject.cpp
+++ b/indra/newview/llfloateropenobject.cpp
@@ -44,7 +44,6 @@
 #include "llnotificationsutil.h"
 #include "lltextbox.h"
 
-#include "llalertdialog.h"
 #include "llinventorybridge.h"
 #include "llfloaterinventory.h"
 #include "llinventorymodel.h"
diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp
index 17bb8221ad5de23d43b3752dc6295094a8fb6833..7edc27d4c3b45e31230ecdbb21d93e02f2ebda0e 100644
--- a/indra/newview/llfloaterperms.cpp
+++ b/indra/newview/llfloaterperms.cpp
@@ -32,7 +32,6 @@
  */
 
 #include "llviewerprecompiledheaders.h"
-#include "llalertdialog.h"
 #include "llcheckboxctrl.h"
 #include "llfloaterperms.h"
 #include "llviewercontrol.h"
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index 05a46ad89451e4b40a34d1acffe2f0bbeb048fe5..4e5b7e45ac72661461cba8b57b3e2a3fec2520b9 100644
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -46,7 +46,6 @@
 #include "message.h"
 
 #include "llagent.h"
-#include "llalertdialog.h"
 #include "llappviewer.h"
 #include "llfloateravatarpicker.h"
 #include "llbutton.h" 
@@ -62,7 +61,6 @@
 #include "llfloaterwindlight.h"
 #include "llinventorymodel.h"
 #include "lllineeditor.h"
-#include "llalertdialog.h"
 #include "llnamelistctrl.h"
 #include "llnotifications.h"
 #include "llnotificationsutil.h"
diff --git a/indra/newview/llfloatersellland.cpp b/indra/newview/llfloatersellland.cpp
index 49e8f9c95678b2637eda063d5fa20a5e7ea660cd..e5260aa7b976598bbc8c9dac0ec5631ec10df4c8 100644
--- a/indra/newview/llfloatersellland.cpp
+++ b/indra/newview/llfloatersellland.cpp
@@ -39,7 +39,6 @@
 #include "lllineeditor.h"
 #include "llnotifications.h"
 #include "llnotificationsutil.h"
-#include "llnotify.h"
 #include "llparcel.h"
 #include "llselectmgr.h"
 #include "lltexturectrl.h"
diff --git a/indra/newview/llgesturemgr.cpp b/indra/newview/llgesturemgr.cpp
index 4f487ddf04ccb65b8be2b57ecd5c01702886594a..df7aa9eabf387adbaaa4e192d3a9a53d0f507a52 100644
--- a/indra/newview/llgesturemgr.cpp
+++ b/indra/newview/llgesturemgr.cpp
@@ -52,7 +52,6 @@
 #include "llagent.h"
 #include "lldelayedgestureerror.h"
 #include "llinventorymodel.h"
-#include "llnotify.h"
 #include "llviewermessage.h"
 #include "llvoavatarself.h"
 #include "llviewerstats.h"
diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp
index e6ded5f371b9b9e05b8fc28d42d9e328b43c18d0..8b6762ce3802f567ad3dc09dbfcc049b5fa63c6e 100644
--- a/indra/newview/llimpanel.cpp
+++ b/indra/newview/llimpanel.cpp
@@ -66,7 +66,6 @@
 #include "llimview.h"                  // for LLIMModel to get other avatar id in chat
 #include "llkeyboard.h"
 #include "lllineeditor.h"
-#include "llnotify.h"
 #include "llpanelimcontrolpanel.h"
 #include "llrecentpeople.h"
 #include "llresmgr.h"
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index fd1fb38914f4062b9ec3a2e3d7b09ff9cef06502..95b4196f5f98dbc7a4cb2b4e9ef505a87f5f5507 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -72,7 +72,6 @@
 #include "llviewerwindow.h"
 #include "llnotifications.h"
 #include "llnotificationsutil.h"
-#include "llnotify.h"
 #include "llnearbychat.h"
 #include "llviewerregion.h"
 #include "llvoicechannel.h"
diff --git a/indra/newview/lllandmarklist.cpp b/indra/newview/lllandmarklist.cpp
index d613cf6ba472acdfedd2e337f70a6ca913446352..bd9d22c32700af69284a7c6e2ddbbc13f305600b 100644
--- a/indra/newview/lllandmarklist.cpp
+++ b/indra/newview/lllandmarklist.cpp
@@ -39,7 +39,6 @@
 
 #include "llappviewer.h"
 #include "llagent.h"
-#include "llnotify.h"
 #include "llvfile.h"
 #include "llviewerstats.h"
 
diff --git a/indra/newview/llmenucommands.cpp b/indra/newview/llmenucommands.cpp
index 28ddaa61c4c811aba63f35168ad0a2b55d4c170b..a2aef9ba63b5c837c4351b853a921a175185fbe6 100644
--- a/indra/newview/llmenucommands.cpp
+++ b/indra/newview/llmenucommands.cpp
@@ -49,7 +49,6 @@
 #include "llfloaterchat.h"
 #include "llfloaterworldmap.h"
 #include "lllineeditor.h"
-#include "llnotify.h"
 #include "llstatusbar.h"
 #include "llimview.h"
 #include "lltextbox.h"
diff --git a/indra/newview/llpanelclassified.cpp b/indra/newview/llpanelclassified.cpp
index 70d92442ad6e69c1eb46bfdac10c16e8212829b0..0dae667e7f477fe980c147454950d63ff49a33ba 100644
--- a/indra/newview/llpanelclassified.cpp
+++ b/indra/newview/llpanelclassified.cpp
@@ -48,7 +48,6 @@
 #include "message.h"
 
 #include "llagent.h"
-#include "llalertdialog.h"
 #include "llavataractions.h"
 #include "llbutton.h"
 #include "llcheckboxctrl.h"
diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp
index b6c58808ae12dfbc86b61efcb899d385ab57ff99..29b647415c3414d7cd20596404d41ea4aeb2d537 100644
--- a/indra/newview/llpanelgrouproles.cpp
+++ b/indra/newview/llpanelgrouproles.cpp
@@ -44,7 +44,6 @@
 #include "llnamelistctrl.h"
 #include "llnotifications.h"
 #include "llnotificationsutil.h"
-#include "llnotify.h"
 #include "llpanelgrouproles.h"
 #include "llscrolllistctrl.h"
 #include "llscrolllistitem.h"
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index a729b8c06ffc994088db83c309753d005797b305..47dc2fb984837df75218249412c3ddd16a7a0e57 100644
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -62,7 +62,6 @@
 #include "llviewermenu.h"			// for handle_preferences()
 #include "llviewernetwork.h"
 #include "llviewerwindow.h"			// to link into child list
-#include "llnotify.h"
 #include "llurlsimstring.h"
 #include "lluictrlfactory.h"
 #include "llhttpclient.h"
diff --git a/indra/newview/llpreviewgesture.cpp b/indra/newview/llpreviewgesture.cpp
index 30cb21c83ccfe0847277a251a412895f5269ceeb..f1891aa421ac2f4648f3da3d004834d744881889 100644
--- a/indra/newview/llpreviewgesture.cpp
+++ b/indra/newview/llpreviewgesture.cpp
@@ -59,7 +59,6 @@
 #include "llinventorymodel.h"
 #include "llkeyboard.h"
 #include "lllineeditor.h"
-#include "llnotify.h"
 #include "llradiogroup.h"
 #include "llscrolllistctrl.h"
 #include "llscrolllistitem.h"
diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp
index 5d675fcda66b57fec9de9428943decc70cce828f..95756ac5f3d849019f08fe1c121b122f4819b7ac 100644
--- a/indra/newview/llpreviewnotecard.cpp
+++ b/indra/newview/llpreviewnotecard.cpp
@@ -44,7 +44,6 @@
 #include "llinventorymodel.h"
 #include "lllineeditor.h"
 #include "llnotificationsutil.h"
-#include "llnotify.h"
 #include "llresmgr.h"
 #include "roles_constants.h"
 #include "llscrollbar.h"
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 8d8031076909abe9e07e43e3c59f684d712a0d8d..646c9fb6a4ca5dc6d46bb664ff915cd0aedbfb2c 100644
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -61,7 +61,6 @@
 #include "llvfile.h"
 
 #include "llagent.h"
-#include "llnotify.h"
 #include "llmenugl.h"
 #include "roles_constants.h"
 #include "llselectmgr.h"
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index d8d1760c385ee741f15fb2dd507e672bdc77e023..84d6d664134c0b43712240c308ec3ba062e6a757 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -121,7 +121,6 @@
 #include "lllogininstance.h" // Host the login module.
 #include "llpanellogin.h"
 #include "llmutelist.h"
-#include "llnotify.h"
 #include "llpanelavatar.h"
 #include "llavatarpropertiesprocessor.h"
 #include "llpanelevent.h"
diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp
index 4915720036d7dd89fad49dd10cf624537be2a797..9e724642379f89b9f8d8f85c981ca3e258cabec0 100644
--- a/indra/newview/llstatusbar.cpp
+++ b/indra/newview/llstatusbar.cpp
@@ -50,7 +50,6 @@
 #include "llkeyboard.h"
 #include "lllineeditor.h"
 #include "llmenugl.h"
-#include "llnotify.h"
 #include "llimview.h"
 #include "llsd.h"
 #include "lltextbox.h"
diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp
index a4f5164a8dd749db733d9462db9a647b600376e6..c48301fa1ef007dc6d5ba503bd2a17eb3ee0e4a9 100644
--- a/indra/newview/lltoastalertpanel.cpp
+++ b/indra/newview/lltoastalertpanel.cpp
@@ -30,10 +30,6 @@
  * $/LicenseInfo$
  */
 
-// *NOTE: this module is a copy-paste of llui/llalertdialog.h
-// Can we re-implement this as a subclass of LLAlertDialog and
-// avoid all this code duplication? It already caused EXT-2232.
-
 #include "llviewerprecompiledheaders.h" // must be first include
 
 #include "linden_common.h"
@@ -60,7 +56,7 @@ const F32 DEFAULT_BUTTON_DELAY = 0.5f;
 const S32 MSG_PAD = 8;
 
 /*static*/ LLControlGroup* LLToastAlertPanel::sSettings = NULL;
-/*static*/ LLAlertURLLoader* LLToastAlertPanel::sURLLoader;
+/*static*/ LLToastAlertPanel::URLLoader* LLToastAlertPanel::sURLLoader;
 
 //-----------------------------------------------------------------------------
 // Private methods
diff --git a/indra/newview/lltoastalertpanel.h b/indra/newview/lltoastalertpanel.h
index 38a635e8a452d78d66ab88b63c8b7a22503e5bc8..875ab82c54119ad252cee5f5d738aa1ed172d48c 100644
--- a/indra/newview/lltoastalertpanel.h
+++ b/indra/newview/lltoastalertpanel.h
@@ -30,10 +30,6 @@
  * $/LicenseInfo$
  */
 
-// *NOTE: this module is a copy-paste of llui/llalertdialog.h
-// Can we re-implement this as a subclass of LLAlertDialog and
-// avoid all this code duplication? It already caused EXT-2232.
-
 #ifndef LL_TOASTALERTPANEL_H
 #define LL_TOASTALERTPANEL_H
 
@@ -41,11 +37,9 @@
 #include "llfloater.h"
 #include "llui.h"
 #include "llnotificationptr.h"
-#include "llalertdialog.h"
 
 class LLButton;
 class LLCheckBoxCtrl;
-class LLAlertDialogTemplate;
 class LLLineEditor;
 
 /**
@@ -62,7 +56,16 @@ class LLToastAlertPanel
 public:
 	typedef bool (*display_callback_t)(S32 modal);
 
-	static void setURLLoader(LLAlertURLLoader* loader)
+	class URLLoader
+	{
+	public:
+		virtual void load(const std::string& url, bool force_open_externally = 0) = 0;
+		virtual ~URLLoader()
+		{
+		}
+	};
+
+	static void setURLLoader(URLLoader* loader)
 	{
 		sURLLoader = loader;
 	}
@@ -95,7 +98,7 @@ class LLToastAlertPanel
 	BOOL hasTitleBar() const;
 
 private:
-	static LLAlertURLLoader* sURLLoader;
+	static URLLoader* sURLLoader;
 	static LLControlGroup* sSettings;
 
 	struct ButtonData
diff --git a/indra/newview/lltoastgroupnotifypanel.cpp b/indra/newview/lltoastgroupnotifypanel.cpp
index eacc077a652d546898ea17226cd3e4c3d86ad58e..e49044cdca39fc88ce8cc41966a839b6234c949a 100644
--- a/indra/newview/lltoastgroupnotifypanel.cpp
+++ b/indra/newview/lltoastgroupnotifypanel.cpp
@@ -40,7 +40,6 @@
 #include "lliconctrl.h"
 #include "llinventoryfunctions.h"
 #include "llnotifications.h"
-#include "llnotify.h"
 #include "llviewertexteditor.h"
 
 #include "lluiconstants.h"
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index 6339d23fa71cd3168407fd1dbd7eb71fcb620232..91de7d9ba2f38cb25e9258e814e4d7cc95a3f52d 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -63,7 +63,6 @@
 #include "llviewerjoystick.h"
 #include "llviewerparcelmgr.h"
 #include "llparcel.h"
-#include "llnotify.h"
 #include "lloverlaybar.h"
 #include "llkeyboard.h"
 #include "llerrorcontrol.h"
@@ -517,14 +516,12 @@ bool toggle_show_snapshot_button(const LLSD& newvalue)
 bool toggle_show_navigation_panel(const LLSD& newvalue)
 {
 	LLRect floater_view_rect = gFloaterView->getRect();
-	LLRect notify_view_rect = gNotifyBoxView->getRect();
 	LLNavigationBar* navbar = LLNavigationBar::getInstance();
 	
 	//if newvalue contains 0 => navbar should turn invisible, so floater_view_rect should get higher, 
 	//and to do this pm=1, else if navbar becomes visible pm=-1 so floater_view_rect gets lower.
 	int pm=newvalue.asBoolean()?-1:1;
 	floater_view_rect.mTop += pm*(navbar->getDefNavBarHeight()-navbar->getDefFavBarHeight());
-	notify_view_rect.mTop += pm*(navbar->getDefNavBarHeight()-navbar->getDefFavBarHeight());
 	gFloaterView->setRect(floater_view_rect);
 	floater_view_rect = gFloaterView->getRect();
 	navbar->showNavigationPanel(newvalue.asBoolean());
@@ -534,14 +531,12 @@ bool toggle_show_navigation_panel(const LLSD& newvalue)
 bool toggle_show_favorites_panel(const LLSD& newvalue)
 {
 	LLRect floater_view_rect = gFloaterView->getRect();
-	LLRect notify_view_rect = gNotifyBoxView->getRect();
 	LLNavigationBar* navbar = LLNavigationBar::getInstance();
 	
 	//if newvalue contains 0 => favbar should turn invisible, so floater_view_rect should get higher, 
 	//and to do this pm=1, else if favbar becomes visible pm=-1 so floater_view_rect gets lower.
 	int pm=newvalue.asBoolean()?-1:1;
 	floater_view_rect.mTop += pm*navbar->getDefFavBarHeight();
-	notify_view_rect.mTop += pm*navbar->getDefFavBarHeight();
 	gFloaterView->setRect(floater_view_rect);
 	navbar->showFavoritesPanel(newvalue.asBoolean());
 	return true;
diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp
index 9856cb2b7fdd671d9746a00a1c19996d75b75203..72031a699f7b509245dd7c8ed6cd34f4063dcfc2 100644
--- a/indra/newview/llviewerinventory.cpp
+++ b/indra/newview/llviewerinventory.cpp
@@ -43,7 +43,6 @@
 #include "llviewercontrol.h"
 #include "llconsole.h"
 #include "llinventorymodel.h"
-#include "llnotify.h"
 #include "llgesturemgr.h"
 
 #include "llinventorybridge.h"
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index bdc996c7d95d69662d41d5759fcc5d41e21ddc5b..8fe18c56c9eced322e1eef440e119534b4e79593 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -59,7 +59,6 @@
 #include "llnearbychat.h"
 #include "llnotifications.h"
 #include "llnotificationsutil.h"
-#include "llnotify.h"
 #include "llpanelgrouplandmoney.h"
 #include "llpanelplaces.h"
 #include "llrecentpeople.h"
@@ -973,16 +972,8 @@ void inventory_offer_mute_callback(const LLUUID& blocked_id,
 		const LLUUID& blocked_id;
 	};
 
-	using namespace LLNotificationsUI;
-	LLChannelManager* channel_manager = LLChannelManager::getInstance();
-	LLScreenChannel
-			* screen_channel =
-					dynamic_cast<LLScreenChannel*> (channel_manager->findChannelByID(
-							LLUUID(gSavedSettings.getString("NotificationChannelUUID"))));
-	if (screen_channel != NULL)
-	{
-		screen_channel->killMatchedToasts(OfferMatcher(blocked_id));
-	}
+	LLNotificationsUI::LLChannelManager::getInstance()->killToastsFromChannel(LLUUID(
+			gSavedSettings.getString("NotificationChannelUUID")), OfferMatcher(blocked_id));
 }
 
 LLOfferInfo::LLOfferInfo(const LLSD& sd)
@@ -4847,24 +4838,25 @@ bool script_question_cb(const LLSD& notification, const LLSD& response)
 		LLMuteList::getInstance()->add(LLMute(item_id, notification["payload"]["object_name"].asString(), LLMute::OBJECT));
 
 		// purge the message queue of any previously queued requests from the same source. DEV-4879
-		class OfferMatcher : public LLNotifyBoxView::Matcher
+		class OfferMatcher : public LLNotificationsUI::LLScreenChannel::Matcher
 		{
 		public:
 			OfferMatcher(const LLUUID& to_block) : blocked_id(to_block) {}
-			BOOL matches(const LLNotificationPtr notification) const
+			bool matches(const LLNotificationPtr notification) const
 			{
 				if (notification->getName() == "ScriptQuestionCaution"
 					|| notification->getName() == "ScriptQuestion")
 				{
 					return (notification->getPayload()["item_id"].asUUID() == blocked_id);
 				}
-				return FALSE;
+				return false;
 			}
 		private:
 			const LLUUID& blocked_id;
 		};
-		// should do this via the channel
-		gNotifyBoxView->purgeMessagesMatching(OfferMatcher(item_id));
+
+		LLNotificationsUI::LLChannelManager::getInstance()->killToastsFromChannel(LLUUID(
+				gSavedSettings.getString("NotificationChannelUUID")), OfferMatcher(item_id));
 	}
 
 	if (response["Details"])
diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp
index 7a1abfd4e84597eaa6e5d65e8656d80b5f588c34..be68a2ef42e7674c74b9fb196ae8d609c0aef0e3 100644
--- a/indra/newview/llviewerparcelmgr.cpp
+++ b/indra/newview/llviewerparcelmgr.cpp
@@ -54,7 +54,6 @@
 #include "llfloatergroups.h"
 #include "llfloatersellland.h"
 #include "llfloatertools.h"
-#include "llnotify.h"
 #include "llparcelselection.h"
 #include "llresmgr.h"
 #include "llsdutil.h"
diff --git a/indra/newview/llviewertexteditor.cpp b/indra/newview/llviewertexteditor.cpp
index e0091145ce4d88614667e6c73536fc092ef88bc1..300aea1620ca099fb8924889898e3c51de867320 100644
--- a/indra/newview/llviewertexteditor.cpp
+++ b/indra/newview/llviewertexteditor.cpp
@@ -51,7 +51,6 @@
 #include "llmenugl.h"
 #include "llnotecard.h"
 #include "llnotificationsutil.h"
-#include "llnotify.h"
 #include "llpanelplaces.h"
 #include "llpreview.h"
 #include "llpreviewnotecard.h"
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 8529a935271a2c2afdd2ce0a404b27897eeb8ab7..79c113f0367ddd37f9859a67520a6106d45bef22 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -82,7 +82,6 @@
 
 // newview includes
 #include "llagent.h"
-#include "llalertdialog.h"
 #include "llbox.h"
 #include "llconsole.h"
 #include "llviewercontrol.h"
@@ -129,7 +128,6 @@
 #include "llmorphview.h"
 #include "llmoveview.h"
 #include "llnavigationbar.h"
-#include "llnotify.h"
 #include "lloverlaybar.h"
 #include "llpreviewtexture.h"
 #include "llprogressview.h"
@@ -1450,7 +1448,6 @@ void LLViewerWindow::initBase()
 
 	gDebugView = getRootView()->getChild<LLDebugView>("DebugView");
 	gDebugView->init();
-	gNotifyBoxView = getRootView()->getChild<LLNotifyBoxView>("notify_container");
 	gToolTipView = getRootView()->getChild<LLToolTipView>("tooltip view");
 
 	// Add the progress bar view (startup view), which overrides everything
@@ -1628,8 +1625,6 @@ void LLViewerWindow::shutdownViews()
 	gMorphView = NULL;
 
 	gHUDView = NULL;
-
-	gNotifyBoxView = NULL;
 }
 
 void LLViewerWindow::shutdownGL()
@@ -1997,9 +1992,6 @@ void LLViewerWindow::draw()
 #if LL_DEBUG
 	LLView::sIsDrawing = FALSE;
 #endif
-	
-	// UI post-draw Updates
-	gNotifyBoxView->updateNotifyBoxView();	
 }
 
 // Takes a single keydown event, usually when UI is visible
@@ -2595,7 +2587,6 @@ void LLViewerWindow::updateUI()
 				else if (dynamic_cast<LLUICtrl*>(viewp) 
 						&& viewp != gMenuHolder
 						&& viewp != gFloaterView
-						&& viewp != gNotifyBoxView
 						&& viewp != gConsole) 
 				{
 					if (dynamic_cast<LLFloater*>(viewp))
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 93b0ad4a5b06b18f23f5b55f28495fc502d628e3..8828ebff6a03a1a6ca2f2c8e5fe67f8c9094221f 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -64,7 +64,6 @@
 #include "llkeyframewalkmotion.h"
 #include "llmutelist.h"
 #include "llmoveview.h"
-#include "llnotify.h"
 #include "llquantize.h"
 #include "llregionhandle.h"
 #include "llresmgr.h"
diff --git a/indra/newview/llwearablelist.cpp b/indra/newview/llwearablelist.cpp
index 31047413efdcee87c56fa73a6be6dd6097260560..bd7619f7e5e39c3c55ad5791d0120ea4831f0090 100644
--- a/indra/newview/llwearablelist.cpp
+++ b/indra/newview/llwearablelist.cpp
@@ -41,7 +41,6 @@
 #include "llviewerinventory.h"
 #include "llviewerstats.h"
 #include "llnotificationsutil.h"
-#include "llnotify.h"
 #include "llinventorymodel.h"
 #include "lltrans.h"
 
diff --git a/indra/newview/llweb.cpp b/indra/newview/llweb.cpp
index 72431bd22f2c7aa148e031cb0bcc617bf19c5f03..c056c84e198c02ba1c2ec12afde1493bcd0a1488 100644
--- a/indra/newview/llweb.cpp
+++ b/indra/newview/llweb.cpp
@@ -42,10 +42,9 @@
 #include "llviewercontrol.h"
 #include "llfloatermediabrowser.h"
 #include "llfloaterreg.h"
-#include "llalertdialog.h"
 #include "lltoastalertpanel.h"
 
-class URLLoader : public LLAlertURLLoader
+class URLLoader : public LLToastAlertPanel::URLLoader
 {
 	virtual void load(const std::string& url , bool force_open_externally)
 	{
@@ -65,7 +64,6 @@ static URLLoader sAlertURLLoader;
 // static
 void LLWeb::initClass()
 {
-	LLAlertDialog::setURLLoader(&sAlertURLLoader);
 	LLToastAlertPanel::setURLLoader(&sAlertURLLoader);
 }