2011-05-16  Marek Habersack  <grendel@twistedcode.net>

	[asp.net] Fix for bug #650847. Output both tagged and untagged
	UpdatePanel names in AJAX responses.

	Also, update panels which rendered empty string are included in
	the output.

2011-05-04  Marek Habersack  <grendel@twistedcode.net>

	[asp.net] Do not retrieve script's URL in RegisterScriptReference
	if script.Path is set.

2011-04-21  Marek Habersack  <grendel@twistedcode.net>

	[asp.net] Implemented composite scripts support in
	System.Web.Extensions

2011-04-15  Marek Habersack  <grendel@twistedcode.net>

	[asp.net] Fix for bug #685116. AJAX post-back which redirects the
	browser does not need a Page or ScriptManager instance

2011-01-03  Marek Habersack  <grendel@twistedcode.net>

	Fix for bug #659064. Resource URLs must always be the same.
	UpdatePanel triggers must always be initialized.

	String hash cache must not be thread-local. Hashes computed for a
	string once must be shared by all the threads or different URLs
	may be generated for the same assembly+resource pair. UpdatePanel
	triggers must be initialized not only during the Load event but
	also when they are inserted after that point.

2011-01-08  Marek Safar  <marek.safar@gmail.com>

	Fixed missing protected internal modifier

2010-12-13  Marek Habersack  <grendel@twistedcode.net>

	[asp.net] Fix for bug #658278. Panels render children only when
	parent is present and ChildrenAsTriggers is enabled

	Fix from Avior Computing <jmilillo@aviorcomputing.com>, thanks!

2010-11-17  Marek Habersack  <grendel@twistedcode.net>

	[asp.net] Part of fix for bug #653013. AsyncPostBackTrigger must
	react to events generated by the trigger control's children.

2010-11-04  Marek Habersack  <grendel@twistedcode.net>

	[asp.net] Part of fix for bug #649546. Better handling of nested
	UpdatePanels

	Nested update panels don't ever output a script block in
	RenderChildren, they write to the passed HtmlTextWriter instead.

2010-11-03  Marek Habersack  <grendel@twistedcode.net>

	* System.Web.Extensions/System.Web.UI/ScriptManager.cs:
	scriptStartupBlock is a 3.5+ thing

2010-08-13  Marek Habersack  <grendel@twistedcode.net>

	[asp.net] Scripts may be requested also from pages without
	associated ScriptManager

	Make sure ScriptManager exists in the current page before
	attempting to use it.

2010-08-09  Marek Habersack  <grendel@twistedcode.net>

	[asp.net] Fix for bug #618481. AsyncPostBackTrigger.OnEvent must
	call Owner.Update only for conditionally updated panels

	If the owner UpdatePanel has its UpdateMode set to Always, do not
	call Update () as it will cause an InvalidOperationException to be
	thrown.

2010-08-09  Marek Habersack  <grendel@twistedcode.net>

	[asp.net] AsyncPostBackTrigger.HasTriggered must use
	FindTargetControl ()

	When a postback is made to the server,
	AsyncPostBackTrigger.HasTriggered must use FindTargetControl
	(true) to find the associated control and see if its UniqueID
	matches the one of the control which originated the postback. The
	target control may (and most probably is) outside the control
	panel and looking for it only in the collection of child controls
	will make some sites fail to update content on async postback.

2010-08-09  Marek Habersack  <grendel@twistedcode.net>

	[asp.net,bugfix] Fix for bug #620456. AsyncPostBackTrigger must
	look for target control in naming containers

	AsyncPostBackTrigger must search for the associated control in the
	naming containers during intialization because its ControlID
	property is initialized with the unique name of the target
	control.

2010-02-02  Marek Habersack  <mhabersack@novell.com>

	* ScriptManager.cs: adjusted script rendering to match .NET
	formatting.

	* ScriptComponentDescriptor.cs: GetScript adds ID value (if
	present) to the set of properties.
	GetScript rewritten to use StringBuilder.

	* ScriptBehaviorDescriptor.cs: GetScript adds Name, if present and
	set by the user, to the descriptor's set of properties. The name
	must be rendered to the client.

2009-09-28  Marek Habersack  <mhabersack@novell.com>

	* UpdatePanel.cs: RenderChildren stores the alternative writer in
	a private property, for the benefit of nested child panels. Fixes
	bug #542441

	* ScriptManager.cs: don't render invisible panel IDs during async
	request. Fixes bug #542533

2009-05-26  Marek Habersack  <mhabersack@novell.com>

	* ScriptReferenceBase.cs: implemented (3.5 SP1)

	* ScriptReference.cs: now inherits from the ScriptReferenceBase
	class. Implemented all the required methods, removed some
	properties which now live in the base class.

	* ScriptManager.cs: code refactoring - moved parts of script
	registration code to ScriptReference

2009-04-23  Marek Habersack  <mhabersack@novell.com>

	* AsyncPostBackTrigger.cs: HasTriggered () must look up the
	UniqueID of the control specified in the ControlID property or
	otherwise it may miss certain triggers.

2009-04-11  Marek Habersack  <mhabersack@novell.com>

	* UpdatePanel.cs: implemented SingleChildControlCollection to be
	used in CreateControlCollection ().
	RequiresUpdate not only checks the update mode and explicit update
	requests, but also looks if any triggers fired.
	Initialize () initializes triggers only if partial rendering is
	supported by the ScriptManager.
	IsInPartialRendering property no longer returns the value of
	ScriptManager.IsInPartialRendering. Instead, it relies on the
	value of instance field which can be set using new internal
	SetInPartialRendering () method (called from
	ScriptManager.RenderPageCallback ())
	Simplified the logic in RenderChildren ().

	* ScriptManager.cs: no need to register panels for refresh in
	OnPreRenderComplete, this is now done in RenderPageCallback.
	Modified HasBeenRendered () so that it doesn't query whether the
	panel has been explicitly updated by the user, but checks whether
	panel is in the list of panels to refresh.
	RaisePostDataChangedEvent () doesn't update the panel whose id is
	named in the POST request for refresh. This is handled in
	RenderPageCallback.
	Reverted the changes to WriteCallbackPanel and RenderFormCallback
	committed in r129774.
	RenderPageCallback now correctly detects panels to be refreshed
	(and thus included in the async response).

	* AsyncPostBackTrigger.cs, PostBackTrigger.cs: implemented
	HasTriggered ().

2009-04-08  Marek Habersack  <mhabersack@novell.com>

	* ScriptComponentDescriptor.cs: properties/events/references must
	be serialized in alphabetical order. This matches what .NET
	does. Some 3rd party controls depend upon this fact.

2009-04-07  Marek Habersack  <mhabersack@novell.com>

	* ScriptComponentDescriptor.cs: new values replace old in
	AddEntry.

2009-03-19  Marek Habersack  <mhabersack@novell.com>

	* ScriptManager.cs: WriteCallbackPanel is called from
	UpdatePanel.RenderChildren and should not output anything for
	panels registered as the ones to refresh. If such a panel calls
	this method, its output is stored in a dictionary to be used later
	in RenderFormCallback.
	RenderFormCallback first renders all the form controls. In that
	process UpdatePanel instances, if any, may call
	WriteCallbackPanel. After that, if there are panels registered for
	refresh, another loop over the list is made this time checking
	whether any panels left their output in WriteCallbackPanel. If a
	panel hasn't done it it is rendered. And last, another check is
	done to see if the loop described above caused any panels to leave
	output in WriteCallbackPanel. If yes, the output is written to the
	text writer.

2009-01-26  Marek Habersack  <mhabersack@novell.com>

	* ScriptManager.cs: before registering script service reference
	check if the service type is decorated with the [ScriptService]
	custom attribute. Only such service types can be called from
	client JavaScript.

2008-10-02  Marek Habersack  <mhabersack@novell.com>

	* ScriptManager.cs: reverting revision 114552 since the real bug
	was somewhere else. The correct fix is to make sure UpdatePanels
	which output something _or_ have been named in the POST request as
	requiring a refresh are marked as such. Only in that situation
	HasBeenRendered returns true (as it should for those panels)
	Cosmetical output change - the hidden fields are output after the
	update panels contents is sent in an async request. It makes the
	async response look similar to the MS.NET's one but, more
	importantly, makes debugging easier.

2008-09-23  Marek Habersack  <mhabersack@novell.com>

	* ScriptManager.cs: CultureInfoSerializer no longer derives from
	the obsolete LazyDictionary.

2008-09-01  Marek Habersack  <mhabersack@novell.com>

	* UpdatePanel.cs: if the writer passed to RenderChildren is not
	derived from ScriptManager.AlternativeHtmlTextWriter, check
	whether its InnerWriter derives from that type and, if yes, use
	it from that point onwards.

2008-08-13  Marek Habersack  <mhabersack@novell.com>

	* ScriptManager.cs: always request the webform.js script to be
	present. It may happen that a control during a dynamic update will
	need to call one of the WebForm_* functions and the call will fail
	as the script will be absent.
	If debugging is enabled, send the full exception backtrace in
	WriteCallbackException - helps debugging AJAX errors.

2008-08-08  Marek Habersack  <mhabersack@novell.com>

	* UpdatePanel.cs: do not check whether a panel whose children are
	to be rendered has been marked for update in the async postback
	mode. It prevents complex scenarios where there is one superior
	update panel which owns an inferior one, and only the superior one
	has Update called on it.

2008-06-05  Marek Habersack  <mhabersack@novell.com>

	* ScriptManager.cs: do not throw NREX when there are no profile or
	authentication service sections in the config files.

2008-05-15  Marek Habersack  <mhabersack@novell.com>

	* AsyncPostBackTrigger.cs: don't thrown an exception if EventName
	is null or empty and there is no DefaultEventAttribute attached to
	the control.

2008-05-14  Marek Habersack  <mhabersack@novell.com>

	* ScriptComponentDescriptor.cs: do not add the same
	entry twice to a dictionary.

