Container Release Notes

*** version 2.8.1 ***
+ No changes.

*** version 2.8.0 ***

Bug Fixes:
----------

+ setHeader, setBody, setFooter will create the respective section element
  and add it to the DOM if called after render has already been invoked.

+ preventoverlap repositioning logic is now applied for cases where the 
  constrained Overlay is larger than the viewport also, and takes 
  precedence over the default behavior for constrained Overlays which are
  larger than the viewport.

+ Overlay unsubscribes all context trigger listeners on destroy. Trigger
  listeners bound to global custom events such as windowScroll and 
  windowResize cause JS execptions if left attached after the 
  Overlay was destroy.

New Features:
-------------

+ Added support for an xy offset parameter to the context argument array.

  This allows the user to offset the Overlay by an XY pixel value in cases
  where they don't want precise alignment, e.g.:

     context:["contextEl", "tl", "tr", ["beforeShow"]]
 
  Would align the overlays top left corner with the top right corner of the 
  context element exactly.

  Using the offset parameter, the Overlay can be offset by a pixel amount 
  if desired, e.g.:  

     context:["contextEl", "tl", "tr", ["beforeShow"], [5, 0]]

  Would align the overlay's top left corner with the top right corner of the
  context element, but offset it along the X axis by 5 pixels, providing a gap
  between the overlay and context element edges.

+ Added support for an "xyoffset" parameter to Tooltip, to configure the 
  offset from the mouse XY position at which the Tooltip should be displayed.

Changes:
--------

+ Users can now prevent Dialog form submission by returning false from a beforeSubmit 
  event subscriber  

*** version 2.7.0 ***

Changes:
--------

+ Added a "yui-overlay-hidden" class to hidden Overlays (and derived widgets).
  This class can be used to define CSS properties to work around bugs in 
  IE6 and IE7's handling of tables with captions, or tables with border-collapse 
  set to "collapse".
  
  In IE6 and IE7, if the overlay contains tables with captions, the 
  user will not be able to interact with element which lie underneath
  the table, even when the overlay is hidden.
  
  The above marker class can be used to hide tables when the overlay is hidden
  to workaround the IE bug:
  
    #containerWithTable.yui-overlay-hidden table {
        // Display is used here as an example, you could also
        // set the height, or margin, or position for the table to 
        // hide it if required.
        display:none;
    }

  Also, in IE6 and IE7, if the overlay contains tables with border-collapse
  set to "collapse", as is the case for the YUI Calendar's default Sam skin,
  the borders will remain visible even when the overlay is hidden.

  The above marker class can be used to flip the tables border-collapse setting,
  to workaround the IE bug:
  
    #containerWithTable.yui-overlay-hidden table {
	    // IE hides the border correctly if it is set to "separate"
	    border-collapse:separate;
    }
	
+ Added tab-index = -1, to iframe shim to take it out of tab flow.

+ Module id is generated using Dom.generateId, if the element 
  passed to the constructor does not have an id set.

+ Added Module.forceDocumentRedraw method which can be used to
  fix occasional content dependant rendering glitches in Opera.

+ Resize monitor is now only positioned offset top, instead of both 
  offset top and offset left, to avoid scrollbars in RTL pages. A buffer 
  constant (Module.RESIZE_MONITOR_BUFFER) is also provided, to add a buffer
  amount to the offscreen position.

Bug Fixes:
----------

+ Fixed focusFirst behavior to give the default button priority over 
  the first button if defined.
  
+ Fixed erratic scrolling when clicking on the scrollbar in IE when a 
  modal panel is visible.

+ Removed suppressEvent from autofillheight in overlay, was causing 
  "autofillheight" to not be honored in Panel.
  
+ Added < 0 check for "autofillheight".

+ Fixed "autofillheight", so that it only takes effect if a non "auto" 
  height has been set on the container.

+ Fixed shadow in IE6 not being resized correctly when autofillheight 
  is set, and text is resized.
  
+ Fixed opacity flash seen when a tooltip with ContainerEffect.FADE 
  applied, is hidden.

+ Fixed incorrect tooltip width, for the case where the width is 
  set dynamically (see Tooltip's width configuration property), 
  and the user moves from one of the Tooltip's context elements 
  to another, without the tooltip being hidden.

+ Autofillheight if enabled, is recalculated whenever content 
  changes, to account for changes in section height.

+ Fixed faulty repaint on Safari 3.2/MacOS 10.5, when using fixed
  center, by forcing redraw after centering.
  
New Features:
-------------

+ Dialog now supports a "postdata" configuration parameter which can be
  used to define post data to be sent along with any data mined from the 
  form, for async post requests.
  
+ Dialog now provides the connection object, as the first argument to
  subscribers of the "asyncSubmit" event.
  
+ Added support for fixedcenter:"contained", which acts like 
  fixedcenter:true, enabling the user to keep the Overlay centered in 
  the viewport when scrolling or resizing the window. 
  
  However when fixedcenter is set to "contained", if the Overlay is 
  too big for the viewport, re-centering on scroll will be disabled 
  until the viewport is large enough to contain the Overlay 
  completely. This allows the user to scroll the viewport to 
  access sections of the Overlay outside the current viewport.

*** version 2.6.0 ***

Changes:
--------

+ 1px rounded corners in Sam-Skin, added in 2.3.0, are no longer
  rendered in IE6 or IE7.
  
  hasLayout and relative positioning applied 
  to the header, body and footer elements to achieve the 1px 
  rounded corners had functional side effects (such as the inability
  to shrink-wrap auto width containers, and the creation of invalid
  stacking contexts)
  
  1px rounded corners can be re-applied with a CSS patch if required,
  as discussed on the container documentation web page.
  
+ We now attempt to focus the first focusable element inside a Panel,
  when it is shown (as is done with Dialog).
  
+ Setting the "height" configuration property will now result in the 
  container's body element being resized to fill out any empty 
  vertical space. This behavior can be configured using the 
  "autofillheight" configuration property discussed below.

New Features:
-------------

+ Added a new "preventcontextoverlap" configuration property used 
  to manage whether or not an Overlay instance should overlap its 
  context element (defined using the "context" configuration property)
  when the "constraintoviewport" configuration property is set 
  to "true".

+ Added ability to specify event triggers when using the "context"
  configuration property. The container wil re-align itself with 
  the context element in response to these trigger events.

  See context configuration property documentation for usage details.
  
+ Added "autofillheight" configuration property, which is set to "body"
  by default. This configuration property can be used to specify which
  of the 3 container element - "header", "body", "footer" should be
  resized to fill out any remaining vertical space when the container's
  "height" configuration property is set.

  The property can be set to false/null to disable the feature if 
  desired.
  
+ Panel now supports focusFirst and focusLast methods, as 
  well as tab, shift-tab looping when modal (similar to Dialog).

Bug Fixes:
-------------------------

+ Fixed issue with tooltip iframe remaining visible in situations
  where the page was scrolled down.
  
+ Fixed OverlayManager.find to return null, if the Overlay cannot
  be found.

+ OverlayManager no longer overwrites focus or blur methods on the 
  registered container, if they already exist (e.g. for Menu). Instead
  it registers focus/blur event listeners to maintain OverlayManager
  state in such situations.
  
+ Panels/Dialogs without a fixed width specified (auto width containers) 
  now shrink-wrap correctly in IE6, IE7 (see 1px rounded corner discussion 
  above)

+ Added text to the close icon, to enhance accessibility for screen 
  readers. Also changed the close icon element from a span, to an anchor
  to facilate keyboard tab access.
  
+ Added title to text resize monitor iframe, to assist screen readers.

+ Fixed modal mask resizing when going from a larger to a smaller window
  size.
  
+ hideMaskEvent is now fired after all modal mask relatd state changes 
  (including changes to the document.body) have taken place. 
  
  Originally it was fired before removing the "masked" class from 
  document.body.
  
+ Fixed Sam Skin look/feel for default Dialog buttons. Originally 
  disabled default buttons looked the same as enabled default buttons.
  
+ Fixed asynchronous Dialog submission failure for cases where the form
  contained elements named "action" or "method".
  
+ Fixed Dialog button focus methods when using YUI Buttons.

+ Modal Dialogs buttons are now included in the tab, shift-tab flow. 
  Originally buttons in Modal dialogs were unreachable when tabbing.
  
+ Individual focus handlers attached to all non-container focusable
  elements (used to enforce modality), resulted in poor performance 
  when showing/hiding modal Panels, especially in IE, on pages with
  a large number of focusable elements.
  
  Instead of individual listeners, Panel now registers a single 
  focus listener on the document to enforce modality, improving
  performance and scalability for modal solutions.
  
+ Files for optional component dependencies (e.g. animation, dragdrop,
  connection) can now be included after container's js files, without
  breaking related functionality.
  
+ Fixed Config to remove (null out) current entry from the 
  config queue, before invoking fireEvent for the entry, to 
  keep it from being re-added to the end of the queue if 
  listeners were to set a property which superceded the entry.

*** version 2.5.2 ***

+ No change.

*** version 2.5.1 ***

Bug Fixes:
-------------------------

+ Module.setBody, setHeader and setFooter methods now accept
  DocumentFragments. This feature was implicitly available
  in versions prior to 2.5.0 and is now officially supported.

Changes:
--------

+ Optimized addition of Modality focus handlers on masked
  elements (which are used to enforce modality) and added 
  ability to disable feature, to avoid timeout script errors 
  in IE if your page contains a very large number of focusable 
  elements.

  Additionally changes to Event in 2.5.1 should allow
  for increased scalability, when using Modal panels containing
  large numbers of focusable elements on the page.

  Added a YAHOO.widget.Panel.FOCUSABLE property, defining 
  the set of elements which should have focus handlers applied 
  when covered by the Modal mask.

  If you wish to disable the addition of focus handlers to all
  focusable elements on the page when a Modal Panel is displayed,
  the property can be set to an empty array:

        YAHOO.widget.Panel.FOCUSABLE = [];

  NOTE: This will mean that elements under mask may still be
  accessible using the keyboard, however the mask will still 
  prevent mouse access to elements.

*** version 2.5.0 ***

Bug Fixes:
-------------------------

+ We now add the text resize monitor iframe to the DOM in a timeout,
  to help alleviate the perpetual loading indicator seen in 
  Firefox 2.0.0.8 (Gecko 1.8.1.8) and above on Windows.

+ Changed the closing script tag string used in the resize monitor, to 
  allow container-min.js, container_core-min.js content to be used inline.

+ Fixed problem with underlay size being too short in IE6 when setting up
  an initially visible Dialog with buttons.
  
+ Removed overflow:auto applied to the modal mask for all browsers other 
  than gecko/MacOS to help avoid the "missing text cursor" Gecko bug. 
  Overflow:auto is still applied to for Gecko/MacOS to help avoid 
  scrollbar bleedthrough, another Gecko bug (discussed in Container's 
  known issues section).
  
New Features:
-----------------------------

+ Added a "hideaftersubmit" config property to Dialog, to allow the end
  user to configure whether or not the Dialog should be hidden after
  it has been submitted. By default it is set to false, to provide 
  backwards compatibility.
  
+ Added contextMouseOverEvent, contextMouseOutEvent and 
  contextTriggerEvent events to Tooltip, which provide access to the 
  context element when the user mouses over a context element, mouses 
  out of a context element, and before a tooltip is about to be 
  triggered (displayed) for a context element. See the API docs for
  these events for futher details.
  
+ Added a "disabled" config property to Tooltip, to allow the user
  to dynamically disable a tooltip.
  
Changes:
--------

+ Optimized constraintoviewport handling for Overlays which haven't
  been specifically positioned, so that the constraint checks aren't
  made before every show.

*** version 2.4.0 ***

Bug Fixes:
-------------------------

+ constraintoviewport and fixedcenter now handle Overlays which are 
  larger than the viewport. The Overlay will be positioned such that
  it's top, left corner is in the viewport. Panel's draggable 
  behavior now also honors constraintoviewport, if the panel is 
  larger than the viewport.

+ constrainToViewport will now correctly constrain Overlays which 
  haven't been specifically positioned (don't have an XY value set).

+ Overlay/OverlayManager bringToTop methods will bring Overlays to 
  the top of the stack, even if their current zindex is the same as 
  other Overlays on the page.

+ Fixed double textResizeEvents fired on gecko based browsers (e.g
  Firefox 2.x).

+ Panel underlay now resizes correctly in Safari 2.x, when the 
  content of the Panel is modified (e.g. when setBody() is called).
  
+ Tooltip "text" configuration property is no longer overridden by
  the "title" attribute value on the context element if both are
  set. The "text" configuration property takes precedence 
  (as indicated in the Tooltip documentation).

+ Transparent shadows no longer become opaque (black) in IE6/IE7 
  when a Panel with ContainerEffect.FADE is hidden and then 
  shown again. Also on IE6/IE7 transparent shadows no longer 
  appear opaque while animation is in progress.

+ An empty header is no longer created for non-draggable 
  Dialogs/SimpleDialogs which don't provide their own headers.
  By design, an empty header is still created for draggable 
  Dialogs/SimpleDialogs which don't provide a header, in order 
  to provide a drag handle.
  
+ Select boxes inside Modal Panels on IE6 are no longer hidden.

+ In Sam Skin, Dialog/SimpleDialog default and non-default HTML 
  buttons (used when YUI Button is not included on the page) now 
  have a consistent look. Previously style properties intended 
  for default YUI Buttons, were being incorrectly applied to 
  default HTML buttons, giving them a look inconsistent with 
  non-default buttons.

New Features:
-----------------------------

+ Added "dragOnly" configuration property to Panel, to leverage
  the "dragOnly" configuration property added to the DragDrop 
  utility for 2.4.0.

  When the "dragOnly" configuration property is set to true,
  the DD instance created for the Panel will not check for drop 
  targets on the page, improving performance during drag operations 
  which don't require drop target interaction.

  The property is set to "false" by default to maintain backwards
  compatibility with older 2.x releases, but should be set to "true"
  if no drop targets for the Panel exist on the page.

  See the DragDrop utilities 2.4.0 README for additional information.

*** version 2.3.1 ***

Bug Fixes:
-------------------------

+ To help reduce the occurrence of "Operation Aborted" errors in IE, 
  containers which are rendered to the document's BODY element (e.g. 
  myOverlay.render(document.body)) are now inserted before the first
  child of the BODY element. This applies to both the container 
  element as well as the iframe shim if enabled.

  Prior to 2.3.1, these two elements were appended as the last 
  children of the BODY element.

  When rendering to any other element on the page, the behavior is 
  unchanged and both the container and shim are appended as the last 
  children of the element.

  Upgrade Impact For Containers Rendered To Document.Body
  -------------------------------------------------------
  If you have an xy coordinate and non-zero z-index specified for 
  your container there should be no negative impact.
  
  If you haven't specified an xy position, the fix could result
  in a shift in your container position, depending on other elements
  on the page.

  If you haven't specified a z-index and are relying on DOM order to 
  stack the container, you may see a change in stacking order of 
  the container or iframe shim.

  Both these changes can be resolved by setting a specific z-index
  and position based on the layout of other elements on your page.
  
  If you do need to revert to 2.3.0 behavior, a configuration property
  "appendtodocumentbody" has been added to Module, which can be set to
  true.

  The change to stacking order is discussed in detail below in 
  relation to other z-index fixes made for 2.3.1.

+ Z-index is now applied correctly for Overlay/Panel elements, their 
  corresponding iframe shims, and modal masks (for Panels).
  This fix applies to both the default z-index based on the CSS 
  for the Overlay/Panel and specific z-indices set using the 
  "zindex" configuration parameter.

  Default z-index values are:

     Overlay/Panel element: 2
     Iframe shim: 1
     Mask: 1
  
  The iframe shim and modal mask z-index will always be set to one less
  than the Overlay/Panel z-index.

  PLEASE NOTE:
  
  As a result of the fix to reduce "Operation Aborted" errors,
  setting a z-index of 1 on an Overlay/Panel rendered to document.body 
  will result in its iframe shim and modal mask (which will have a 
  z-index of 0) being rendered behind other positioned elements in the 
  document.

  This is because the Overlay/Panel, iframe shim and mask are 
  inserted as the first children of the BODY element and hence any 
  positioned elements with a z-index of 0 or auto which occur after 
  them in the document will be stacked on top of them as per W3C spec.

  If you need to keep the Overlay/Panel above positioned elements on your 
  page, it's z-index needs to be set to 2 or more.

  In general it's advisable to manage the z-index of positioned elements 
  on your page deliberately by setting a z-index, to avoid having their 
  order in the document define their stacking order.
  
  For detailed stacking order information see:
  - http://www.w3.org/TR/CSS21/visuren.html#layers
  - http://developer.mozilla.org/en/docs/Understanding_CSS_z-index:The_st
    acking_context

+ Module now correctly recognizes standard module header, body and footer 
  DIVs when they have extra CSS classes applied in addition to the 
  required hd, bd, and ft classes. e.g. <div class="bd news"></div>.

+ An empty header (set to $#160;) is created for draggable Panels which
  don't have a header specified, to provide a drag handle. This fixes a
  regression introduced in 2.3.0 so that 2.2.2 behavior is restored.
  
+ Dialog.destroy has been fixed to account for Dialog form elements which 
  may not be direct children of the standard module body ("bd") element.

+ SimpleDialog.destory now completes successfully if the optional 
  button-beta.js dependancy is not included on the page.
  
+ Destroying Overlays registered with the OverlayManager no longer results in a 
  JavaScript error. The Overlay is destroyed and removed from the 
  OverlayManager correctly.
  
+ Submitting a Dialog form directly (e.g. using a "submit" button, hitting
  enter on a single text field form) no longer throws a JavaScript error.

Known Issues
------------

+ IE: Borders for tables with border-collapse:collapse remain visible
  -------------------------------------------------------------------
  If an Overlay, or any of its subclasses, contains a table with its
  border-collapse CSS property set to "collapse" instead of the default 
  value of "separate", the borders of the table will remain visible, when 
  the Overlay is configured to be hidden initially. The table contents 
  will be hidden correctly.
  
  This is due to an IE bug, reproducible by the basic test case below:
  
     <style type="text/css">
        .box  {visibility:hidden;}
        td    {border:1px solid red;}
        table {border-collapse:collapse;}
     </style>

     <div class="box">
        <table>
           <tr>
               <td>1</td>
               <td>2</td>
           </tr>
        </table>
     </div>

  Setting the DIV elements "style.visibility" JS property fixes the 
  problem with the simple test case. NOTE: Setting the style in markup 
  using the DIV's style attribute does not.

  Extending this to Container, the simplest workaround if you're not 
  using effects, is to use Overlay's hide() method to setup visibility. 
  This will set the Overlay's element "style.visibility" property. e.g.

      // Start visible, then hide.
      var ovr = YAHOO.widget.Overlay("ovr");
      ovr.render();
      ovr.hide();
      
  You can also apply this workaround if you want to use effects by 
  setting the effect up after you hide. e.g.
  
      // Start visible, but don't apply effects, 
      // to avoid initial animation.
      var ovr = YAHOO.widget.Overlay("ovr");
      ovr.render();
      ovr.hide();
      ovr.cfg.setProperty("effect", {effect:.....});

  If initial flicker is a problem with the above, you can set the 
  visibility directly on the Overlay element after rendering e.g.

      var ovr = YAHOO.widget.Overlay("ovr", {visible:false});
      ovr.render();
      YAHOO.util.Dom.setStyle(ovr.element, "visibility", "hidden");

  but if possible one of the previous methods should be used since 
  they use the public API as opposed to manipulating the DOM directly.

*** version 2.3.0 ***

Bug Fixes:
-------------------------

+ Improved creation of the <iframe> element used to monitor changes to the 
  browser's font size so that:
  
    - Safari's status bar no longer displays a "Loading..." message after the 
      page has loaded.
  
    - Firefox no longer reports duplicate cookie information.
    
    - The browser scrollbars no longer flash on and off in Firefox.

+ It is now possible to set the "button" configuration property of a 
  YAHOO.widget.Dialog instance after it has be rendered.

+ Form elements appended to a YAHOO.widget.Dialog instance via the "setBody"
  method are now automatically registered using the "registerForm" method.

+ The "focusFirst" method of YAHOO.widget.Dialog will no longer result in a 
  JavaScript error in IE if the first element in the Dialog instance's form
  is a radio button.

+ YAHOO.widget.Panel instances whose "draggable" property is set to "true" and
  "width" property is set to "auto" are now able to be dragged in IE 6 (Quirks
  and Strict Mode) and IE 7 Quirks Mode.

+ Updated focus methods of YAHOO.widget.Dialog to prevent JavaScript errors 
  that result from trying to set focus to elements that hidden or disabled.

+ Pressing the enter key will no longer result in a YAHOO.widget.Dialog 
  instance's "validate" method being called twice.

+ Pressing the enter key while focused on a form field inside a Dialog will no
  longer trigger the "click" event handler defined by the Dialog's default 
  button in IE and Firefox.

+ Pressing the enter key when focused on a form field inside a 
  YAHOO.widget.Dialog instance with no buttons created via its "buttons" 
  configuration property will no longer result in a JavaScript error.

+ Aqua scrollbars will no longer bleed through Container widgets in Firefox
  for Mac OS X.

+ The "width" and "height" configuration properties of YAHOO.widget.Overlay
  now supersede the "fixedcenter" and "context" configuration properties to 
  ensure correct positioning of Overlay instances using the "fixedcenter" 
  and "context" configuration properties.

+ Calling the "destroy" method on a YAHOO.widget.Overlay instance no longer 
  results in a JavaScript error on the subsequent focus of another 
  Overlay instance.

+ YAHOO.widget.Tooltip instances without a value specified for the "width" 
  configuration property will be rendered at a width equal to the offsetWidth
  of their root <DIV/> element to prevent their width from being clipped or 
  constrained by their parent HTML element.


Changes:
--------

+ Rendering of YAHOO.widget.Tooltip instances is now deferred using the 
  "onDOMReady" event handler of YAHOO.util.Event rather than waiting until 
  the "load" event of the Tooltip's parent window fires.

+ Deprecated "browser" property of YAHOO.widget.Module in favor 
  of YAHOO.env.ua.

+ The "moveEvent" of a YAHOO.widget.Panel instance now also fires with the 
  "endDrag" event of the its YAHOO.util.DD instance.

+ Updated modal functionality of YAHOO.widget.Panel:
    
    - The creation of a Panel instance's modality mask is now deferred until it
      is initially made visible.

    - Showing a modal Panel instance will now result in the Panel and its 
      associated modality mask element having a higher z-index than all other
      YAHOO.widget.Overlay instances and Overlay subclasses.

+ Updated the "underlay" configuration property of YAHOO.widget.Panel:

    - The creation of the underlay element is deferred until the Panel
      instance is initially made visible.

    - For Gecko-based browsers on Mac OS X the underlay elment is always 
      created as it is used as a shim to prevent Aqua scrollbars below a Panel 
      instance from poking through it.

    - For IE 7 (Quirks Mode) and IE 6 (Quirks Mode and Standard Mode) the 
      underlay element is resized in response to a change to a Panel instance's 
      "width" or "height" configuration properties, a change to the browser's 
      font size or the firing of the contentChangedEvent (triggered by use of  
      the "setHeader," "appendToHeader," "setBody," "appendToBody," 
      "setFooter," or "appendToFooter" methods). 

+ Updated the "iframe" configuration property of YAHOO.widget.Overlay:

    - The creation of the <iframe> shim element is deferred until the Overlay
      instance is initially made visible.

    - The <iframe> shim element is resized when a change to an Overlay 
      instance's content is made at runtime via the "setHeader," 
      "appendToHeader," "setBody," "appendToBody," "setFooter," or 
      "appendToFooter" methods.

+ Updated the "buttons" configuration property of YAHOO.widget.Dialog:

    - YAHOO.widget.Button is now an optional dependancy, and if included, each
      button in a Dialog will be an instance of Button.

    - The "text" property of each button now accepts HTML
    
    - The "handler" property of each button can now be set to:
    
        + A reference to a function that should fire when the button is 
          clicked.  (In this case scope of this function is always its 
          Dialog instance.)

        + An object literal representing the code to be executed when the 
          button is clicked.  The format is:  
          {
            fn: Function (The handler to call when the event fires.),
            obj: Object (An object to pass back to the handler.),
            scope: Object (The object to use for the scope of the handler.)
          }   


New Features:
-----------------------------

+ Added ability for YAHOO.widget.Tooltip instances to have shadow:

    - The shadow for a Tooltip is implemented by appending a new element as the 
      last child of its root <DIV/> element:

        <DIV class="yui-tt">
            <DIV class="bd"> ... </DIV>
            <DIV class="yui-tt-shadow"/>
        </DIV>

    - The code that creates the shadow element resides inside the Tooltip's 
      public "onRender" prototype method.  To disable the creation of a 
      Tooltip's shadow override the prototype of the "onRender" method:
      
      YAHOO.widget.Tooltip.prototype.onRender = function () {};
      
    - The actual creation of the shadow element is deferred until the Tooltip 
      is made visible for the first time.

    - A Tooltip's shadow element can be styled via two CSS classes:

        + "yui-tt-shadow"  - Applied to the shadow element when it is created.
        + "yui-tt-shadow-visible" - Applied to the shadow element when the  
          Tooltip is visible; it is removed the Tooltip is hidden.

    - The shadow element is only styled when using the new "Sam" skin, for
      the previous default skin its "display" property is set to "none."

+ Prototype of all classes (Module, Overlay, Panel, Dialog, SimpleDialog,  
  Tooltip, Config, and ContainerEffect) are augmented with 
  YAHOO.util.EventProvider, facilitating subscribing to an instance's 
  Custom Events by name via a "subscribe" method that is a direct member of 
  the class.  For example:
  
    var oOverlay = new YAHOO.widget.Overlay("myoverlay");
    
    oOverlay.subscribe("show", onShow);

+ Added a new "bringToTop" method to YAHOO.widget.Overlay that places the 
  Overlay on top of all other Overlay instances.

+ Added a new "bringToTop" method to YAHOO.widget.OverlayManager that places 
  the specified Overlay instance on top of all other Overlay instances.  This 
  method is called on each Overlay instance that is registered with an 
  OverlayManager instance.

+ Dialog instances are now able to upload files should the Dialog instance's 
  form contain <input type="file"/> elements.  PLEASE NOTE: If a Dialog 
  instance will be handling asyncronous file uploads, its "callback" property 
  will need to be setup with an "upload" handler rather than the standard 
  "success" and, or "failure" handlers.  For more information, see the 
  Connection Manager documenation on file uploads:
  http://developer.yahoo.com/yui/connection/#file

+ Added a new "getButtons" method to YAHOO.widget.Dialog that returns an array 
  containing each of the Dialog's buttons; by default an array of HTML <BUTTON>
  elements.  If the Dialog's buttons were created using the 
  YAHOO.widget.Button class (via the inclusion of the optional Button
  dependancy on the page), an array of YAHOO.widget.Button instances 
  is returned.

+ Added a "destroy" method to YAHOO.util.Config that sets all properties to 
  null, unsubscribes all listeners from each property's change event and all 
  listeners from the configChangedEvent.  The "destroy" method of 
  YAHOO.widget.Module now automatically calls the "destroy" method of its
  configuation object.

+ Added a "IFRAME_OFFSET" constant to YAHOO.widget.Overlay that controls how 
  much the <iframe> shim should be offset from each side of an 
  Overlay instance.

+ Added a new "syncIframe" method to YAHOO.widget.Overlay that syncronizes the 
  size and position of the <iframe> shim to that of the Overlay.

+ Added a "ICON_CSS_CLASSNAME" constant to YAHOO.widget.SimpleDialog that 
  represents the name of the CSS class applied to the element created by the 
  "icon" configuration property.

  
Known Issues
------------

+ "Sam" skin Panel missing left and right borders when declared with a height
  ---------------------------------------------------------------------------
  If the height of a Panel instance exceeds the total height of its header, 
  body and footer elements, the space not filled with content will lack a left 
  and right border.  Therefore, to set a Panel instance to a fixed height 
  when using the "Sam" skin, apply the desired height to the body element, 
  taking into account the height of the header and footer elements.  To set the 
  height of a Panel instance's body via CSS:
  
  #mypanel .bd {
    height: 100px;
  }
  
  Or via JavaScript:
  
  oMyPanel.body.style.height = "100px";

+ Elements with scrollbars poke through Overlay instances floating above them
  ---------------------------------------------------------------------------
  There is a bug in Gecko-based browsers for Mac OS X where an element's 
  scrollbars will poke through absolutely positioned elements floating above
  them.  To fix this problem the "overflow" property of an Overlay instance's 
  root element is toggled between "hidden" and "auto" (through the application 
  and removal of the "hide-scrollbars" and "show-scrollbars" CSS classes) as its 
  "visibility" configuration property is toggled between "false" and "true."
  
  PLEASE NOTE:  
  
  1) The "hide-scrollbars" and "show-scrollbars" CSS classes classes are 
     applied only for Gecko on Mac OS X and are added/removed to/from the 
     Overlay's root HTML element (DIV) via the "hideMacGeckoScrollbars" and 
     "showMacGeckoScrollbars" methods of YAHOO.widget.Overlay.
     
  2) For Panel (and its subclasses) it is the underlay element, not the root 
     element, whose "overflow" property is toggled between "hidden" and "auto."
     The underlay element therefore acts as a shim to correct the 
     scrollbar problem.
     
  3) For Tooltip instances using the "Sam" skin it is the shadow element, not 
     the root element, whose "overflow" property is toggled between "hidden" 
     and "auto."  The shadow element therefore acts as a shim to correct the 
     scrollbar problem.
     
  4) Once the fix is applied the bug will reappear if the window loses focus.  
     This can be remedied via Javascript by hiding and showing the Overlay 
     instance when the window receives focus:

        YAHOO.util.Event.on(window, "focus", function () {
        
            oMyOverlay.hide();
            oMyOverlay.show();
        
        });

    ** For more information see 
     https://bugzilla.mozilla.org/show_bug.cgi?id=187435

+ Scrollbars remain visible after an Overlay is hidden
  ----------------------------------------------------
  There is a bug in Gecko-based browsers for Mac OS X where an element's 
  scrollbars and the scrollbars of its child nodes remain visible when its 
  "visibility" property property is set to "hidden."  To fix this problem,
  the "overflow" property of an Overlay instance's root element and child nodes
  is toggled between "hidden" and "auto" (through the application and removal 
  of the "hide-scrollbars" and "show-scrollbars" CSS classes) as its 
  "visibility" configuration property is toggled between "false" and "true."

  PLEASE NOTE:  
  
  1) The "hide-scrollbars" and "show-scrollbars" CSS classes classes are 
     applied only for Gecko on Mac OS X and are added/removed to/from the 
     Overlay's root HTML element (DIV) via the "hideMacGeckoScrollbars" and 
     "showMacGeckoScrollbars" methods of YAHOO.widget.Overlay.
  
  2) There may be instances where the CSS for a web page or application 
     contains style rules whose specificity override the rules implemented by 
     the Container CSS files to fix this bug.  In such cases, is necessary to 
     leverage the provided "hide-scrollbars" and "show-scrollbars" classes to 
     write custom style rules to guard against this bug.  For example:
  
     To fix the scrollbars issue for an Overlay instance with an id of 
     "myoverlay" whose body element has scrollbars applied by default:

        #myoverlay .bd {
        
            height: 100px;
        
            /* Apply scrollbars for all browsers. */
            overflow: auto;
        
        }
        
        #myoverlay.hide-scrollbars .bd {
        
            /* Hide scrollbars by default for Gecko on OS X */
            overflow: hidden;
            
        }
        
        #myoverlay.show-scrollbars .bd {
        
            /* Show scrollbars for Gecko on OS X when the Overlay is visible */
            overflow: auto;
            
        }        
    
     To fix the scrollbars issue for a Panel instance with an id of "mypanel" 
     whose body element has scrollbars applied by default:
    
        #mypanel .bd {
        
            height: 100px;
        
            /* Apply scrollbars for all browsers. */
            overflow: auto;
        
        }
        
        .yui-panel-container.hide-scrollbars #mypanel .bd {
        
            /* Hide scrollbars by default for Gecko on OS X */
            overflow: hidden;
            
        }
        
        .yui-panel-container.show-scrollbars #mypanel .bd {
        
            /* Show scrollbars for Gecko on OS X when the Panel is visible  */
            overflow: auto;
            
        }

    ** For more information see 
       https://bugzilla.mozilla.org/show_bug.cgi?id=187435

+ Flash Movies appear on top of Overlay instances
  -----------------------------------------------
  Flash movies can appear on top of Overlay instances in IE and Gecko-based
  browsers.  To fix this problem, set the "wmode" of the Flash movie to either
  "transparent" or "opaque" as indicated below: 

  Via the <object> tag:

    <object>
        <param name="wmode" value="opaque">
    </object>

    <object>
        <param name="wmode" value="transparent"> 
    </object>

  Via the <embed> tag:
    
    <embed wmode="transparent"> ... </embed>
    <embed wmode="opaque"> ... </embed>

    ** For more information see 
       http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15523

+ Overlay instances not rendered at correct z-index in IE
  -------------------------------------------------------
  In IE, when an Overlay instance is rendered inside a relatively positioned 
  element the z-index of the Overlay instance is now relative to its 
  relatively positioned parent element.  This is not a bug in the 
  Overlay class, but rather a bug in IE where relatively positioned elements 
  establish a new stacking context for their child nodes.  To avoid this 
  bug it is recommend that all Overlay instances that need to be able to float
  above any other element in the document be made direct descendants of the 
  <body> element.

  ** For more information see 
   http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html

+ Header elements for Panel instances using "Sam" skin shrinkwrap in IE 7
  -----------------------------------------------------------------------
  In IE 7 (Standards Mode) if a Panel instance is created without specifying a
  value for the "width" configuration property the width of the Panel's 
  header element will shrinkwrap to the width of its text node.  To avoid 
  triggering this bug in IE always specify a value for the "width" 
  configuration property when using Panel.

+ Panel instances render at 100% of the browser viewport
  ------------------------------------------------------
  In IE 7 (Quirks Mode) and IE 6 (Quirks Mode and Standards Mode) if any of the 
  child nodes of a Panel instance's root element have "layout" 
  (http://msdn2.microsoft.com/en-us/library/ms533776.aspx) and no value
  has been specified for the "width" configuration property, the Panel will 
  render at 100% of the width of browser's viewport.  This bug will manifest
  when using the "Sam" skin as layout is applied to the header, body and 
  footer elements (by setting the CSS "zoom" property of the element to "1" ) 
  in order to get the negative margins required for the rounded corners to 
  render correctly.  To avoid triggering this bug in IE always specify a value
  for the "width" configuration property when using Panel.

+ Panel instances render at 2px wider when using "Sam" skin 
  ---------------------------------------------------------
  For the "Sam" skin a Panel instance's rounded corners are created via the 
  application of negative 1px left and right margins on the header, body and 
  footer elements.  These negative margins will cause a Panel instance to be 
  rendered at 2px wider than the value specified by the "width" configuration 
  property.  Therefore, when using the "Sam" skin consider the negative left 
  and right margins and subtract 2 from the value passed to the "width" 
  configuration property in order to have the Panel render at the desired 
  width.  For example, to render a Panel 300px wide, pass a value of "298px" 
  to the "width" configuration property.


*** version 2.2.2 ***

+ Clicking the close button of a Panel (or any instance of a Panel subclass) 
  registered with an OverlayManager will no longer result in the Panel 
  receiving focus.

+ Overlay instances registered with an OverlayManager will now correctly 
  blur themselves when hidden.

+ Calling the "destroy" method of an Overlay instance will now result in it 
  being removed from its OverlayManager instance(s).

+ The DOM event listener for the event defined by the "focusevent" 
  configuration property of an OverlayManager instance is now removed from each 
  Overlay instance when it is removed from its OverlayManager.

+ All subscribers for an Overlay instance's "focus" and "blur" events are 
  now unsubscribed when it is removed from its OverlayManager.


*** version 2.2.1 ***

+ Made the default scope for all Custom Events published by Module, Overlay, 
  Panel, Tooltip, Dialog and SimpleDialog the widget instance.  Previously the 
  default scope for Custom Events was inconsistent across classes; the default
  scope for Custom Events published by Overlay was always the Overlay instance
  whereas the Custom Events published by all of the other classes had no 
  default scope.  

+ Added default scope for CustomEvents published by YAHOO.util.Config:
  - Default scope for the "configChangedEvent" is now the Config instance.
  - Default scope for Config property events is now the Config's owner (widget).

+ Panel and Tooltip now always convert the value of a DOM element's "tagName" 
  property to uppercase before evaluating it.  This improves 
  XHTML compatibility.
  
+ Pressing the enter key while focused on a form field inside a Dialog will 
  now trigger the "click" event handler defined by the Dialog's default 
  button in IE and Firefox.  Previously, this behavior only worked in Safari 
  and Opera.

+ Added a "yui" prefix to the default CSS class name for Module to be 
  consistent with the other Container family widgets.

+ Container/Panel's underlay shadow is now defined as partially-transparent
  black rather than gray.  This prevents the shadow from lightening the 
  background color of elements beneath it.

+ Fixed memory leaks in Panel and Dialog.

+ The Drag and Drop library is now a truly optional dependency for Panel and its 
  subclasses.

+ Panel "focus" and "blur" events are now fired when Panels are focused and 
  blurred via the "focus" and "blurAll" methods of YAHOO.widget.OverlayManager.

+ Panel instances rendered without setting the value for the "width" 
  configuration property will now have their "width" configuration 
  property set to the value of the Panel's element's "offsetWidth" property 
  when rendered.  This fixes an issue in IE 6 and 7 where Panels that are 
  rendered without setting the "width" configuration property will only be 
  draggable by mousing down on the text inside the header, rather than anywhere 
  inside the header.
  
+ Refactored the Container family including the Config class to improve 
  performance, especially when working with a large number of instances in IE6.



*** version 2.2.0 ***

    Module
       - Removed hardcoded file paths for image roots.  Affected properties
       include:
        - YAHOO.widget.Module.IMG_ROOT
        - YAHOO.widget.Module.IMG_ROOT_SSL
       - HTML elements, created via createElement, now use lowercase.

    Panel
       - To shield against CSS class collision, the following references now
       have a "yui-" prefix:
          - YAHOO.widget.Panel.CSS_PANEL now references CSS class "yui-
          panel".
          - YAHOO.widget.Panel.CSS_PANEL_CONTAINER now references CSS class
          "yui-panel-container".
       -  Close button can now be configured via the CSS class "container-
       close".
       - HTML elements, created via createElement, now use lowercase.

    Dialog
       - To shield against CSS class collision, the following references now
       have a "yui-" prefix:
        - YAHOO.widget.Dialog.CSS_DIALOG now references CSS class "yui-
        dialog".
       - HTML elements, created via createElement, now use lowercase.

    SimpleDialog
       - Removed hardcoded file paths for SimpleDialog icons, which are now
       configurable in CSS:
          - YAHOO.widget.SimpleDialog.ICON_BLOCK now references CSS class
          "blckicon".
          - YAHOO.widget.SimpleDialog.ICON_ALARM now references CSS class
          "alrticon".
          - YAHOO.widget.SimpleDialog.ICON_HELP now references CSS class
          "hlpicon".
          - YAHOO.widget.SimpleDialog.ICON_INFO now references CSS class
          "infoicon".
          - YAHOO.widget.SimpleDialog.ICON_WARN now references CSS class
          "warnicon".
          - YAHOO.widget.SimpleDialog.ICON_TIP now references CSS class
          "tipicon".
       - To provide shield against CSS class collision the following
       references now have a "yui-" prefix:
          - YAHOO.widget.SimpleDialog.CSS_SIMPLEDIALOG now references CSS
          class "yui-simple-dialog";

    Tooltip
       - To shield against CSS class collision, the following references now
       have a "yui-" prefix:
          - YAHOO.widget.Tooltip.CSS_TOOLTIP now references CSS class "yui-
          tipicon" "yui-tt";

*** version 0.12.2 ***

    Module
       - Corrected issue where listener was not properly removed from resize
       monitor element when "monitorresize" is disabled

    Panel
       - Fixed issue that would sometimes prevent select lists from working
       properly in Firefox

    Dialog
       - Fixed error that would occur when trying to create a Dialog where
       the first form element is set to "disabled"
       - Modified "close" property handler for Dialog/SimpleDialog to call
       "cancel" instead of "hide"

*** version 0.12.1 ***

    All Classes
       - "monitorresize" property now functions in situations where
       document.domain has been modified.
       - YAHOO.widget.Module.textResizeEvent now fires when the font size is
       changed (except for Opera, which uses "zoom" functionality that
       prevents this)
       - Event listeners attached to container elements are now properly
       purged on destroy using YAHOO.util.Event.purgeElement

    Panel
       - Fixed issue where focus events were broken on the page when a modal
       Panel was created

    Dialog
       - Fixed bug where hitting "enter" on a Dialog was forcing the default
       submission behavior of the form's action to execute
       - Dialog no longer tries to give focus to hidden form elements.
       - Replaced &nbsp; references in Panel with &#160; for XHTML
       compliance.
       - Fixed issue that was preventing Safari from successfully using the
       getData() function

*** version 0.12 ***

    All Classes
       - New documentation format implemented, and removed unnecessary
       prototype null references previously used for generating
       documentation

    Config
       - Added 'undefined' check when reading initial properties for
       .reset()
       - Fixed Firefox warning on .resetProperty()
       - Fixed issue preventing resetProperty() from resetting values
       correctly

    Module
       - Removed unused "childNodesInDom" property

    Overlay
       - Converted center() to use Dom utility
       - Fixed configVisible() to properly detect actual visible/hidden
       status in Internet Explorer, which reports "inherit" for all elements
       by default.
       - Updated onDomResize to properly reapply "context" property
       - Unified scroll/resize handlers so that they fire properly (when the
       event has completed) as opposed to constantly (as seen in Mozilla-
       based browsers)

    Panel
       - Modified modality mask to show before Panel is shown (prior to any
       animation)
       - Modified buildWrapper to eliminate cloning of the initial markup
       module, which fixes issues with select options not maintaining their
       default selections in IE
       - Modality mask is now z-indexed properly so that the mask z-index is
       always one less than the Panel z-index

    Dialog
       - Fixed Connection to get "action" attribute using getAttribute, to
       allow for form fields named "action"
       - Added support for "GET" by retrieving the form "method" rather than
       always defaulting to "POST"

    KeyListener
       - Fixed to work properly with Safari 2.0 by matching against keyCode
       or charCode

*** version 0.11.4 ***

    - Panel: Modality mask is now properly removed from DOM on Panel
    destroy.

*** version 0.11.3 ***

    - Module: Fixed SSL warning issue in IE
    - Overlay: Fixed memory leak related to iframe shim in IE
    - Panel: No focusable elements under the mask can now be tabbed to
    - Panel: Set Panel container overflow to hidden to fix scrolling issue
    in Opera 9

*** version 0.11.2 ***

    - All: JsLint optimization
    - Overlay: Fixed SSL issues with monitorresize property
    - OverlayManager: Fixed z-index incrementing issues
    - Dialog: Form elements called "name" will now function properly
    - Dialog: Removed unnecessary scope:this reference

*** version 0.11.1 ***

    - Tooltip: Removed incorrect logger statement
    - Dialog: Corrected logic that was causing browser lockup in IE for
    SimpleDialog
    - Dialog: Fixed "firstButtom" typo

*** version 0.11.0 ***

    - toString function added to all classes for easy logging
    - YAHOO.extend is now being used for inheritance on all container
    classes
    - Module: monitorresize feature now works on all browsers
    - Module: Fixed bug with image root and isSecure
    - Overlay: Fixed bugs related to IFRAME shim positioning
    - Overlay: center() now works in quirks mode
    - Overlay: Overlay now has a custom destroy() method that also removes
    the IFRAME shim
    - OverlayManager: Fixed bug in the prototype that was preventing
    multiple Managers on one page
    - OverlayManager: focusEvent now fires at all appropriate times
    - Tooltip: context can now be specified as an array, so Tooltips can be
    reused across multiple context elements
    - Tooltip: preventoverlap now functions properly for large context
    elements (i.e, images)
    - Tooltip: fixed bugs regarding setTimeout
    - Tooltip: added mousemove event to allow for more accurate Tooltip
    positioning
    - Panel: added dragEvent for monitoring all event handlers for drag and
    drop
    - Panel: modality mask is now resized on scroll
    - Panel: KeyListeners are now properly destroyed when the Panel is
    destroyed
    - Panel: Header is now sized properly in quirks mode
    - Dialog: Blinking cursor issue is fixed for Firefox
    - Dialog: callback object for Connection is now public (this.callback)
    - Dialog: onsuccess/onfailure properties removed (as a result of the
    public callback object)
    - Dialog: Dialog is now invisible by default
    - Dialog: Buttons are now properly cleaned up on destroy

*** version 0.10.0 ***

* Initial release
