+----------------------+
|        WebDDM        |
|      Changelog       |
+----------------------+

+------------------------------+
|       Changes in 3.4b5       |
+------------------------------+
* Fixed bugs in clipTrans: not always set to desired visibility (rphillips)
* Fixed error in floating menus (josh)

+------------------------------+
|       Changes in 3.4b4       |
+------------------------------+
* Updated HTML changelog
* Added rebuildMenu functionality
* Code style changes

+------------------------------+
|       Changes in 3.4b3       |
+------------------------------+
* I have heard the Opera supports context menus. Well, to try it out, I made WebDDM not use
  only the oncontextmenu event handler -- it now uses onmousedown and checks the button (3 ==
  right click). Context menus still don't show up in Opera 7.
* Fixed event-setting of context menus for browsers that don't follow IE or Mozilla event
  setting standards.
* Updated internal plugin documentation.
* Added "item_init" plugin action.
* Fixed the example menus up a little.
* If you are setting a context menu, the expand type is no longer "right-click", it is "context"!
* Added import plugin and documentation.
* Improved menu stability GREATLY, menus are now MUCH less likely to close accidentaly.
* Tooltips were not working in Safari, because domLib_useLibrary did not check for KHTML: fixed.
* Tooltip dragging was not working correctly and raised errors in some browsers, fixed (domTT line 988).
* Rewrote portions of clipTrans for simplicity, size, and speed purposes.
* Fixed several bugs in clipTrans, including flickering menus, "wavy" slides,
  and runaway slides.
* Fixed some stuff in WebDDM that can cause problems in webserver access logs; links
  to blank images are now directed to the JPortal site.
* Added dynamic shadows plugin, example code and HTML file.


+------------------------------+
|       Changes in 3.4b2       |
+------------------------------+
* Added Auto-URL plugin.
* Fixed bug where default measurement unit would not be set and led to strange errors in IE,
  and item positioning not working right.
* Small bug fixes in core.WebDDM.js and alphaAPI.WebDDM.js to make Javascript compression
  less buggy. Some lines did not end in a semicolon so errors occurred when the
  files were compressed.


+------------------------------+
|       Changes in 3.4b1       |
+------------------------------+
* Optimized action code
* Implemented "action" plugin system, works with tooltips currently
* domTT dragging actually works now... ugh...
* Removed ALL tooltip code from WebDDM code base - tooltips are now completely separate! :)
* Removed all alphaTrans/alphaAPI clipTrans/clipAPI code from WebDDM code base.
* Fixed issue with menus opening parent items... then any auto-opening children would
  open, even if they were supposed to be opened with onclick, on onmouseover. Fixed.
* Removed usage of "url", "status", and "target" attributes from base code.
* Further optimized styling system :p
* Fixed bug in IE where individual CSS styles would throw errors because of spaces
  in the values. For instance, this would cause errors:
  "line-height: 1px;"
  Whereas this would not:
  "line-height:1px;"
  But it's all good now.
* Fixed issue of using the same menu data for different menus on one page.
* Made WebDDM automatically upgrade the z-index of all shown items.
* Changed subitem container positioning system, to prevent confusion and make it easier
  to use. Positions and heights for submenu containers are also optional now.
* Implemented background item system. Now clipTrans and alphaTrans modify the appearance
  of the background item, not the item container. I was able to remove several workarounds
  that are no longer needed. w00t!
* Height and width no longer needed for items container.
* Items container now overflows.
* Implemented native scrolling with menus
* Cut menu generation time in half by setting item events with innerHTML instead of the DOM;
  also a workaround for the IE memory leak.
* Chopped another 50+ ms off genereration time by re-organizing the buildMenu methoC: now
  the methods document.createElement() and el.appendChild() are only called ONCE, and the
  innerHTML of the items container is set ONCE; everything else is done by modifying HTML
  strings! :D
* Changed all string functions for timeouts to real anonymous functions, using arguments.
  This is just better, faster, etc, and it also solved some problems that occurred with
  multiple menus on one page.
* Added workaround for Gecko based browsers where events fire before WebDDM.js is completely
  loaded.
* Moved (most) FloatAPI code to js/FloatAPI.js
* Menus are no longer closed on document.onblur/document.onclick if "none" is found
  in the "contract_menu" string.
* Created global stylesheet object for item containers. Great speedup.
* Now using el.attachEvent and el.addEventListener where possible. Using this has also
  COMPLETELY fixed the IE memory leak bug, 100%! :)
* Removed 'filter' attribute. The same effect can be achieved using the CSS string.
* If the cursor attribute is not set, no cursor CSS is set. (set to "cursor:default" in
  previous versions)
* Menu cleaning now stops when a new menu is shown.
* Greatly improved (smaller, faster, prettier) menu cleaning.
* Split up source files more.
* Changed positioning system to use offsets and relative positions... now use offsetLeft and
  offsetTop IN ITEMS when possible. Or, to use old system, set 'useOldPositioning' in the items
  array or in the base items array.
* Improvements with delayed menu opening... if you mouse over an item with a non-zero open
  delay, and then mouse off, the timeout call to showMenu is killed.
* Major improvements and bugfixes with mouseoff-to-close context menus.
* domLib_detectCollisions works again with object and applet tags, I think, but needs to be
  tested a lot more.
* Fixed a bug in WebDDM_preloadImages that caused a loading message to always display in the
  status bar in Firefox. The message still shows sometimes if images are used in items.
* Added usability of 'defaultMeasurementUnit' attribute.
* Greatly improved ability to use measurement units other than px.

+----------------------------+
|       Changes in 3.2       |
+----------------------------+
* Made changes in arguments of showMenu, hideMenu, and other methods to accept "itemHash"
  as the argument rather than "itemId".
* Reorganized "mouseAction" code. The flow is a lot easier to follow now, and it's faster
  because less action-type checking goes on.
* I think I've FINALLY fixed the horrible Mozilla bug that's been bugging me - when you click
  on an item, the menu opens, and then you have to click AGAIN for any other events to
  register. For some reason there are problems when "onclick" and "onmouseup" both call
  "showMenu".
* Fixed WebDDM.hideMenu method automatically setting the mouseover status to false.
* Finally fixed the bug where calling buildMenu would (seemingly??) not complete before
  showMenu started executing again. All I did is remove the workaround code and it still
  works - I really have no idea what was causing it in the first place. I KNOW it's not
  a browser-dependant thing, since it's been consistent across ALL browsers.
* Fixed minor submenu container zIndex bug. The submenu of the first item with a menu
  in a set of items would go behind the menu.
* Added "WebDDM loading" text to item container; #1 for slooooow computers, #2 just to
  reset the innerHTML of the item container. Funny thing: I have a slooooow computer, and
  WebDDM is so fast that I haven't yet seen the loading message! :)

+----------------------------+
|     Changes in 3.2rc1      |
+----------------------------+
* Fixed browser detection.
* Moved most code from inner functions (for item event code) to the mouseAction method.
* Fixed parentId setting code.
* Fixed major bugs in showMenu code and hideMenusOnLevel code; parents hiding children
  menus, menus not re-using openMenuData keys, etc.
* Fixed weird bug in IE, caused by the fact that it has a weird event system - multiple
  items would be in "rollover" status at once. Opera's still acting funky, but I think
  that's just because it's so horribly slow.
* Used ugly (but luckily small and extremely commented) workaround in WebDDM.buildMenu
  method to fix IE's horrible closure memory leak bug. There's still some leaking going on,
  but it's been reduced about 70%! :D
* Made more changes in favor of "_pressed" styles.


+----------------------------+
|     Changes in 3.2b3       |
+----------------------------+
* During testing 3.2b2 I made domLib_detectCollisions ALWAYS hide selects, no
  matter what browser was being used. This made it hide selects in Firefox,
  where it's not a problem. Fixed.
* Fixed browser detection for alpha transitions.
* Use of the Hash library for eval codes (WebDDM.getItemArray).
* Use of the Hash library for openMenuData.
* Use of the Hash library for mouseover statuses.
* Use of the Hash library for menuIsOpen statuses.
* Fixed potential conflict between WebDDM.menuIsOpen array and WebDDM.menuIsOpen
  function... they were named the same thing, for some reason, and it still worked.
  Anyway, they've been renamed now.
* Use of the Hash library for alphaAPI objects and clipAPI objects (for alpha
  and clip transitions).
* Removed the mouseoutTimeouts array/Hash; it's not needed anymore but the actual
  timeout is still set.
* Updated timeout libraries.
* More stable menu cleaning and better context menus on rollout.
* Better tooltip closing.
* MAJOR bugfix with _pressed style.
* Speedups with item element actions (onmouseover, onclick, etc).
* Changes in the dynamic item attributes system.
* MAJOR improvements to styling system. Wow.
* Implemented fallback styles.
* Documented the Hash class.
* Removed WebDDM, clipAPI, and FloatAPI inner functions (changed to prototype).
  This saves memory on all browsers, not just IE.

+----------------------------+
|     Changes in 3.2b2       |
+----------------------------+
* Made clipAPI more stable.
* Added the ability for different units of measurement for positions and dimensions.
* Event position code fixxored for IE.
* Some changes made to clipAPI to make it work with different units of measurement ^^.
* Fixed bug that prevented IE from fading (or even showing!) items.
* More general improvements with the alpha transition.
* Switched TT library back to domTT.
* Fixed bug having to do with context menus.
* Made some improvements so that you can't select text in menu items (works in IE and Moz).
* clipTrans is about 99% not buggy now... hrmm....
* Upgraded to a more stable version of alphaAPI.
* Integrated domLib into WebDDM.
* Removed use of the isset() function.


+----------------------------+
|     Changes in 3.2b1       |
+----------------------------+

* Documented ALL functions and code.
* Added ability to hide applet and object tags that are obscuring layers,
  instead of just SELECT tags.
* Changed all WebDDM functions to methods of the WebDDM object.
* Better context-menu controlling.
* Added the "none" option for "contract_menu"
* New and better floating system (less buggy and rewritten) and better
  float controls.
* A new visibility transition system and three transitions: alphaTrans,
  clipTrans, or nothing. I was going to implement IE's filter system,
  but it REALLY sucks so unless someone really wants it I'm not putting that
  trash into WebDDM.
* Added "pressed" and "menuopen_pressed" styles.
* Configurable openDelay and closeDelay.
* Removed "status" property for items.
* Added the image preloader.
* Removed domTT; replaced with WebTT.

+----------------------------+
|      Changes in 3.0.3      |
+----------------------------+

* WebDDM wasn't changing the z-index of the base menu.
* WebDDM works in standards-compliance mode for Mozilla browsers!

+----------------------------+
|      Changes in 3.0.2      |
+----------------------------+

* Fixed bug: menus would NOT close on rollout if the also closed on
  "click".
* Updated browser chart.

+----------------------------+
|     Changes in 3.0.1.1     |
+----------------------------+

* Updated examples

+----------------------------+
|      Changes in 3.0.1      |
+----------------------------+

* Some features didn't work in the compressed version because phpJSO
  had some bugs. So, this is a fix for both WebDDM and phpJSO :)

+----------------------------+
|       Changes in 3.0.0     |
+----------------------------+

* If the mouse rolls over a click-to-expand menu, and there
  is already a click-to-expand menu open on the same level,
  open the one that was just rolled over and close the previous menu.
* Added 'isContainerItem' attribute. Items on the same level are
  not closed if you rollover an item with this attribute set to
  'true'.
* WebDDM_activate_menu renamed to WebDDM_activateMenu.
* Changed "css*" attributes to strings instead of arrays to make
  use seem more like using the style="" attributes.
* RegExp is now used when checking expand_menu and contract_menu,
  so multiple *_menu types can be used.
* Regular items can now use "auto" successfully as the expand_menu
  type.

+----------------------------+
|    Changes in 3.0.0 RC 2   |
+----------------------------+

* Changed WebDDM_hide_menu code to resolve a bug
  that sometimes sticks menus open. I think that
  the bug is caused by two top-level menus being
  closed at the same time, which results in a
  max_array_key ID of -1, WHICH in turn prevents
  menus from closing each other. Now the max_array_key
  is only decremented if we can get the top item of
  the open_menu_data array.
* IE only executes onmouseout/onmouseover code if the element
  has a non-transparent background (not including transparent images).
  To resolve a problem, the subitem container now has a fake
  background image, which makes the background transparent
  but IE still executes the onmouseover code.
* Fixed "cursor" code to fix "cursor flickering".
* Fixed bug with the first item of a menu automatically having its
  mouseover_status set to true.
* Changed "actions" code to allow user to define actions not
  automatically defined by WebDDM, like "oncontextmenu" or
  "onmousemove", in addition to onclick - onmouseover - onmouseout,
  for items.
* Bug fix with fade:in/out and fade_in_delay and fade_out_delay.
  WebDDM wouldn't fade an element unless both fade_in_delay and fade_out_delay
  were non-zero, which it shouldn't in case 'fade' is set to
  'out' or 'in'.
* 'fade_delay' now automatically sets 'fade_in_delay' and 'fade_out_delay'.
* Bugfix in alphaAPI - now the fadeIn() thread is _actually_ stopped from
  continuing when the fadeOut() thread is started. Strangely enough, the
  vice-versa of this wasn't a problem - the element fading out and then
  fading started, and the element continuing to fade out...
* Added support for CSS3 'opacity' style object, and 'KhtmlOpacity' object
  for KHTML browsers (Konqueror and Safari 1.1).
* Improved browser detection.
* Improved rendering with Netscape (not Mozilla).
* Removed all try { ... } catch () {} statements, for (eventually full?)
  compatability with NS4.
* If menu_id (passed to WebDDM_activateMenu) is not a valid ID, WebDDM
  will create the container element.
* Expand_menu = 'click' -- implemented for base menu, works like 'expand_menu' = 'context'
  but works in Opera and uses left click instead of right click.
* Browser detection improvements: Opera detection fixed, Konqueror spoofing prevente.
* Rendering improved in Konqueror.
* Changed submenu container positioning system.
* Functions set by WebDDM - document.onclick, document.onblur, document.oncontextmenu,
  and document.onmousemove - can now "co-exist" with functions set by other applications/
  or the <body> tag.
* Bugfix with domTT and WebDDM changing boolean values to strings.
* Bug fix with domTT - after tooltips are hidden they are moved offscreen to prevent them
  from laying over menus and creating problems
* More code optimization and compression, mostly with domTT, but
  a lot also with WebDDM_clean_menus(), WebDDM_show_menu(), and
  WebDDM_hide_menu().
