Changelog for Q2 - 2007 release

This is the biggest change log I've ever made between two so close releases in my lifetime.
First of all because the Q1 release (our first ever release of Gaia Ajax Widgets) was
very IMMATURE and contained LOTS of TODOs and bugs. Second because we have added virtually
TONS of features in the Q2 release, we've added up LOTS of controls in addition to adding tons
of features to existing controls.
Since this text is written AFTER we did most of those changes it might not be an exhaustive source
of information regarding EVERYTHING we've done, but we'll try to at least say something about MOST
of the parts we've done something about...
I hope you have as much fun using the Q2 as we had making it! :)


BREAKING changes:

* The Gaia.Menu has slightly changed its interface to become more alike the TreeView.
- The "Id" property is now named "Value"
- The inner children menuitems are now called "Children" instead of "MenuItems"
This makes the way to work with the Menu widget and the TreeView widget similar all though you will probably have
to change both your markup and possibly some of your code.
Though the nice thing about this is that it's now possible to add, remove and change the nodes in the Menu Widgets :)

* To invoke a Method on a Control, Page, MasterPage, UserControl etc you now need to TAG that method with the Gaia.WebWidgets.Method attribute!
This is a security fix to make sure users can't get to call OTHER methods on your page unless you WANT them to...!!

* The ForceUpdate property is marked as DEPRECATED since it created too much confusion anyway since users were using it from the
designer (which they were not suppose to do)
It's been replaced by ForceAndUpdate() METHOD since this is more intuitively for users since it then becomes impossible to set
in the design-view.

* Changed the name of the MenuClickedEventArgs.MenuItemId to MenuItemValue since when declaring the menu you set the Value property
but when you handle the MenuItemClicked event handler you got the MenuItemId which was not intuitive and consistent!

Other changes

* Added a TreeView control.

* Added an Accordion Control.

* Partial Opera support!
(Gaia doesn't work 100% with Opera YET but thanx to Matthew on the Core Team it will function at least partially until we
come with the Opera fix later in a service pack)

* Added Toolbox icons for the controls.

* It is now possible to edit, delete and add new MenuItems in a Gaia Ajax CallBack.
This basically works such that you can just modify, delete or add to the MenuItems collection or
any children (and childrens children etc) of any MenuItem and it "just works"... ;)

* Fixed a bug in the DateTimePicker that made it impossible to set the value of the date and then have the DateTimePicker
register that new date and use it as the "starting point" when clicking down the dropper.

* Fixed bug in DynamicImage that makes it impossible to set the ImageId of the control in PageLoad method

* Fixed a bug in AutoCompleter that makes the DropDownButton visible even if the AutoCompleter is IN-Visible.

* Fixed a bug in HiddenField that generates a runtime failure when a hidden field is default in-visible or
contained within a Container widget which is set to visible within an Ajax CallBack.

* Added support for AltText ("alt" attribute on img HTML element) in the DynamicImage

* It is now possible to set the HEIGHT and the WIDTH of the Gaia.Window in an Ajax CallBack!

* The DateTimePicker can now be LOCALIZED!!

* Fixed several minor bugs in CheckBox that made it in some circumstances impossible to set the text and the
background color of your CheckBox widgets in Ajax callbacks.

* The "ForceUpdate" property is removed from the Window, PlaceHolder, Accordion, Panel and PlaceHolder designer
properties (since they should NEVER be used from the Designer anyway ;)

* Fixed bug in IN-Visible controls hen setting their properties.
This would "crash" the browser since it would trigger a "null reference client-side exception"
This should work now on all controls (you can now set the properties for IN-Visible controls without
crashing the browser)

* Added lots of more samples in the TestWebWidgets project.

* Fixed the Enabled property of the Timer Control (you couldn't neither disable/enable the timer
nor create a timer in disabled mode before)

* Fixed a bug in the DateTimePicker that made the browser crash if you write some "bumbo jumbo" text
into it before clicking it to make the DateTimePicker dropper drop down...

* Fixed bug in LinkButton that makes it impossible to set the text of the LinkButton in Ajax Callbacks.

* Fixed a bug in the Panel class which made it run the setVisible(false) property if it was initially
"invisible" and therefore kill the execution on the Client-Side if you made an InVisible Panel InVisible...
(If you had a panel which was INVisible and called the "Visible = false" property on it)

* Fixed the Window control so that it is "modal" even if you scroll or resize the browser window
(we're manipulating the size and position of the "obscurer" which is behind the window)

* Fixed the Window so that it can be absolutely positioned in both pixels and percentage through the
style element (if you want to have it in e.g. 280 pixels from the left and 50% of the browser window
from the top you give it the style tag of'style="left:280px;top:50%;"'...)

* Added AutoCenter property to the Window control, if this property is TRUE the window will
"stick" to the center of the form, even if you scroll or resize the browser window.

* Fixed all the container widgets so that they now actually DESTROYS their child widgets when
they are being hidden from server code.

* Fixed all container widgets so that it now is possible to dynamically ADD controls from the
codebehind file in events or code without this creating obscure hard to debug bugs.

* Added DYNAMIC inclusion of JavaScript files, this means that the theoretical minimal size of a
WebPage with Gaia controls are roughly about 70-80 Kb, then when you click a button you can
instantiate controls which you still haven't loaded the JavaScript for and the Gaia framework
will automatically ensure that the browser loads those JavaScript files whenever needed!

(On to the to be continued page of the changelog...