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.

