------------------------------------
DynAPI Distribution Revision History
------------------------------------

Please report any bugs to the DynAPI Development Mailing List at
dynapi-dev@lists.sourceforge.net.

TODO
----
- Performance, performance, performance.

[   Legend:                  ]
[ + Added Feature            ]
[ * Improved/Changed Feature ]
[ - Bug Fix                  ]


Version 2.5.7
-------------
This branch ( 2.5.x ) and the newly created 2.9.x ( where new ideas / objects are tested ) are different
things and should not be confused.

While they have undergone some bugfixing, it is obvious that the default group of GUI widgets supplied
with this distro is too buggy / old / obsolete and need to be rewritten. I plan to rewrite them all
for the next release, and probably make them a separate release from the core. This said it is
easy to understand that little to no effort has been dedicated to improve the existing widgets for this
release, so expect more or less the same flaws ( and even some new ones :) ).

[-] Fixed 2.5.6 drag bug
[-] Fixed scrollbar not reaching bottom of the scrolling space when scrolling via 'up' and 'down' buttons
[-] Fixed "removeFromParent is destroying the layer" bug.
[+] Added disabling contextual menus for each dynlayer ( off by default, example page is provided )
[*] By default mouseUps always will happen in the layer were the mousedown happened, even if the mouse
    was dragged outside the layer ( No more stuck scroll buttons ). This behaviour can be disabled from
    within mouse.js ( instructions provided inside the file ).
[*] Only one event is captured per page. I realized I we were using the event's target properties to determine
    the dynlayer where it occured, hence with one single event being captured in the document everything works
    in the same way. Moreover, remember that capturing a layer event was layer.doc.capture....  since all
    layers share the document ( except NS4 ) we were capturing the same events once and again.
    Try the strech tests and see how intializacions are a lot faster now. About 4ks of code are gone, as well [:)]
[+] You can add layers on load time. Yeap no more waiting for the onload event.
[+] Since layers can be added onpage load, they can be made relative.
    Yep, place them within a table which defines your layout and it will work.
    Still some flaws ( see example in tests/ directory where a scrollbar is working inside a relative positioned table )
    but pretty promising. 
    Please consider this inflow stuff as alpha work and do not consider using it in real projects. It won't work


Version 2.5.6
-------------
Notice that we are now using 2.5.6 syntax instead of 2.56. Actually it is the same, but as there's a major
change expected with 2.6 and we will have both branches active during quite a lot of time, it is quite possible that
we reach 2.5.10 and more.

[+] tests/ directori contains sample cases of recently fixed bugs
[-] Fixed zIndex bug in NS4
[-] Fixed layers receiving more than one precreate event
[-] Fixed dragEvent across frames.
[-] Fixed ( finally ) secondary inheritance. You can now safely make widgets inherit from other widgets.
[*] deleted =DynAPI.browser, as it is not being used, and dissallowed including the browser.js
    file before the other DynAPI files
[*] More accurate document size calculations when document is inside a frame
[-] Fixed image animation bug


Version 2.55
------------
[+] Html can now be passed as the 9th parameter of the DynLayer's constructor
[-] Fixed missing clicks were mousedowns were cancelled in NS4
[-] Fixed event cancellation bugs
[-] Fixed the console for Netscape 6
[-] Drag extension should now add the correct document eventlistener when using frames (enableDragEvents)
[-] Fixed select() method to call setSelected() for the selected item ( list widtget )
[*] Context Menu is not removed in IE 5 anymore.
[*] Simple events can now be used with eventlisteners (as long as simple.js is included after listeners.js)
[*] Removed hookLoad/Unload because it is not working correctly
[-] Added a temporary fix to the zIndex problem in Mozilla.  It is now set manually instead of through the div string.
[-] Fixed NS 4 not capturing the mouseevents after a setHTML call.
[-] Viewport content width fix
[-] Scott Severtson's dragdrop fix
[-] Christof Pohl's fix for PathAnimation.run()
[-] Added fix for specialized NS versions detection in browser.js
[+] Added test for Explorer 6
[*] Old IE5.5 event fix, which used a javascript:null as background image for empty layers, had to be
    changed into using a real transparent gif which is supplied with the standard distribution, due
    to that javascript:null image causing a warning when using DynAPI via a secure server (https://)
[-] Fixed keyevent code disabling forms inside DynLayer in NS 4.x

Version 2.54
------------
[+] Added Netscape 4 resize fix (layers are recreated on resize)
[*] Recycled layers in Netscape 4 should now lose previous properties
[-] Event fixes in Netscape 4
[-] Double-click events fix for non windows Netscape 4
[*] setID now removes old references when reassigning ids
[-] ScrollPane fix for setting bar width/height
[-] innerHTML is now only set for IE (not Mozilla/NS6)
[-] setSize will not set the size only if there is no change
[*] Changed setBgColor/setFgColor logic for Netscape 4
[*] DynAPIObject now uses "c=null" instead of "delete c"
[*] LoadPanel should display correctly now on resize in IE
[*] recycled layers are now retrieved from the last array element first

Version 2.53
------------
[*] Improved memory management
[-] Improvements for the Mac
[-] DynImage fixes for Mac
[*] Merged IE4 and IE5 code in LoadPanel
[-] Fixed typo in dynlayer.js (is.win32 --> is.platform=="win32")
[*] Converted for (var i in x) loops (should fix some problems)
[*] toString now uses the format DynObject.all.dynobject1

Version 2.52
------------
[-] Fixed bug causing errors in input boxes using keyevents
[-] Fixed some EventMethod bugs in NS 4

Version 2.51
-----------
[-] cancelBrowserEvent changes for NS 4


Version 2.5
-----------
The internal structure has been completely rewritten in the 2.5 
release.  External changes were kept to a minimum.  Events
are now in dynapi.event.*.  Please look at the examples
to see how they are included.  Also, keyevents has been moved
and renamed to dynapi.event.keyboard.js.  Many other internal
bug fixes have also been made.  

[*] Precreation changes in NS 6 (the div and all its children
    are created at once)
[-] Keyevents should now bubble
[*] Simple events (dynlayer.onresize = function(){}) can be used
    by including simple.js instead of mouse.js.
[*] Mozilla (DOM) support has been improved
[*] DragDrop changes for children layers
[-] Inline layers (inline.js) should now work in NS 6
[-] Image animation fixes
[-] Many other bug fixes


Version 2001.01.25
------------------
This release features many changes to the DynAPI.  Most 
noticable is a new layer creation system, as well as 
requiring the script tags after the DynAPI.include() 
statements must be closed before using any DynAPI 
related functions.  Also, the widgets are finally back.  
There is a new loadPanel widget for loading external 
files as well as list, path animation (slide), button, 
scrollpanel, and label widgets.  This release also 
features the first API documentation for the 
distribution.  Please post and bugs to the mailing 
list.  There are too many changes to list, but 
here are a few:

[-] Many fixes to events
[*] createElement, deleteElement, assignElement, and 
    assignChildren arenow static methods of the DynLayer object.
[-] DynAPI.include() should now work correctly
[+] Libraries are now added dynamically (not hard-coded into DynAPI)
[-] Re-fix for setBgImage in Netscape
[-] Returned setPageX/Y to previous versions
[*] getClip fix
[*] Check for child is created in deleteChildElements
[*] Modified moveTo
[-] InvokeEvent how works properly for double click in NS
[*] Removed .unassigned and .all arrays.  
[*] Renamed .unassignedID and .allID to .unassigned and .all
[-] Fixed DynAPI.removeFromArray with removal of id's
[-] Fixed bug in removal from unassigned array in findLayers
[-] Fixed bug in adding to the all array in findLayers
[+] Added dynapi.ext.loadPanel for loading external files


Version 2000.11.07
------------------
[*] Modified setSize/Height,Width
[*] Removed .onCreate call.  Must use EventListener to capture.
[-] Fixed problem with .allID deletion


Version 2000.11.06
------------------
[-] Fixed conflict with variable name package


Version 2000.11.05
------------------
[*] Removed right and middle mouse event modifications to setEvent
[-] EventMethod modifications (there is only one eventMethod now)
[-] RecreateAll fix
[-] Inline layers fix for IE 4
[-] Many changes to DynLayer
[*] DynLayer onCreate is no longer used.  EventListeners must be used instead.
[*] Files have been renamed.  They no longer include the package name.
[*] Directory lib2.0 is now lib
[*] DynDocument's include method was updated for file name changes.
[+] Added method release releaseMouseEvents to DynDocument
[*] DynDocument and DynLayer EventMethod are now the same method
[+] Added function DynAPI.addPackage(name) to add packages to the lib directory
[*] DynAPI.addLibrary requires the 1st parameter be a complete package name


Version 2000.10.31b
-------------------
[-] Unbroke deleteElement()
[-] Fixed typo in removeChild() (unAssigned->unassigned)
[*] Returned this.children to original state (it is now always an array)
[*] Updated core.ext.inline.js to work with new arrays
[*] Removed old rtmouseup code in EventMethod
[*] Updated handleEvent() to work with rtmouse[up/down] and mdmouse[up/down]
[*] Removed hasChildren() method (no longer needed since .children is always an array)
[*] Updated mouseevents example to demo middle mouse button events


Version 2000.10.30
------------------
[*] Removed DynAPI.Version() (was not ever accurate)
[+] Added modification date to all files
[+] Added DynAPI.addLibrary() to add a new library of files to DynAPI2
[*] MouseEvents now trap and expose the button pressed and any modifier keys (.button, .altKey, .ctrlKey, .shiftKey)
[*] Renamed DynLayer's .IamADynLayer boolean with .isDynLayer
[+] Added DynDocument boolean, isDynDocument, which distinguishes DynDocs from DynLayers during addChild operations
[*] DynAPI.document is assigned at the beginning of DynAPI.loadHandler now
[-] DynAPI.getDocument has been reworked to return the proper DynDocument object
[-] DynDocuments toString method returns a string reference to DynAPI.getDocument()
[-] DynLayers toString method returns a string reference to the array currently holding it (no more this.object references)
[-] DynDocument is no longer attached to top-level window, but the frame it's meant to be assigned for
[*] The resize handler now handles multiple DynDocs, not just DynAPI.document
[*] DynAPI.document is assigned at the beginning of DynAPI.loadHandler now
[+] There are now 2 arrays to hold references to DynLayers, all[] and allID[]. all[] holds only ordinal references, and allID[] holds id references ( allID[dynlayer.id] )
[+] Each DynDocument maintains it's own all and allID arrays
[-] DynLayers are no longer automatically assigned to any all or allID collection when created
[*] core.ext.import.js renamed to core.ext.debug.js (seems more accurate)
[*] core.gui.popup.js renamed to core.ext.menulist.js for old-times sake
[-] Fixed bug in core.ext.debug.js with bgcolor not being returned correctly
[-] Fixed problem in core.ext.inline.js with images and multiple divs
[*] Removed core.ext.addon.js (duplicate file), core.ext.fader.js, core.api.rightevents.js, and core.ext.loadhtml
[*] Removed this.object references from slide method
[*] Removed dragdrop.js from api (its already located in ext dir)
[*] Updated some examples
[*] Children array is now set to null and only assigned when a child is added
[*] Added check for existence of children array in removeChild, removeAllChildren, etc
[+] Added hasChildren method (should be used instead of checking children.length)
[*] DragDrop now checks if children exist first
[*] The EventMethod's are now prototypes
[-] Fixed type in DynLayer (DynAPI->DynLayer in removeChild)
[-] Elements removed from unassigned arrays after adding to dyndoc in createElement


Version 2000.10.24
------------------
[-] Removed function parameter in slideBy()
[-] Fixed corestyle to verify style argument
[*] Inline div layers now get the HTML property set (sadly only ie.. any work arounds for ns?)
[*] Minor speed optimizations to the dynlayer creation
[-] Included deleteElement fix (the outterhtml -> outerhtml spelling :)
[*] Changed getHTML() to always return the layer.html property.
[-] Fixed DynDocument.load() 
[+] Included object properties to DynLayer and DynDocument.
[-] Modified DynLayer.toString() should now return correct layer name (with correct parent)
[-] Fixed some mouseevents problems
[-] Included new findLayers() code. Should make child divs be "parsed" correctly in both NS AND IE.
[-] Fixed bug with events not being triggered on images in inline layers.
[-] Included dragging fix (making layers stick to the correct mouse location)
[-] Fixed some broken examples
[-] Included deleteChildElements() and deleteElement() and recreateAll() fix.
[*] Renamed DynAPI.unload to DynAPI.unloadHandler


Version 2000.09.30
------------------
[*] Restored the old getImage() speed up, it now checks to make sure every image is only preloaded once
[-] Fixed setHTML (thanks to marstr)
[-] Fixed mouseevents for inline layers
[*] Removed setParentComponent() and getParentComponent()
[-] Fixed dragging problems
[*] Included "target dragging" enhancement


Version 2000.08.29
------------------
[-] Added a small Mac hack in getClip()
[-] Fixed "resize" event in setSize()
[-] setLibraryPath() will add a slash if needed
[-] Fixed problem with slide extension (slideend was called before cleartimeout)
[*] Included new setWidth() and setHeight() methods (can now handle events)
[*] Renamed core.ext.addon to core.ext.inline
[*] Moved DynLayer.updateValues() method to core.ext.inline
[-] Included nested layers code into findLayers()
[-] Minor bug fix in findLayers() (with all[] array)


Version 2000.08.18
------------------
[*] Removed fx and gui widgets from the package, updated text files.


Version 2000.08.17
------------------
[*] Split the core.ext.addon into two files: core.ext.addon.js andcore.ext.images.js 
[-] Fixed problem in deleteElement() under Mozilla
[+] Included fx widgets (old Widgetx effects) - note VERY slow on Mozilla)
[+] Included core.ext.functions containing some miscellaneous functions
[+] Added new Lite classes.


Version 2000.08.15
------------------
[+] Included plugin system, makes it possible for 3rd party code to do advanced handling of events - use mountplugin() to add a new plugin
[+] Reintroduced DynAPI.getDocument()
[+] Added "onrtmouseup" and "onrtmousedown" for layers and documents, and made it working under Mozilla.
[-] Fixed findLayers() for framesets (dyndocuments)
[+] Included DynAPI2 beginners tutorials.
[-] Style fix for gui widgets.
[+] Added getModel() method to core.ext.addon. It can be used to display Object Model of the DynAPI.


Version 2000.07.30
------------------
[-] Included IE5.5 fix.


Version 2000.07.17
------------------
[-] Fixed other bug in core.api.dragevent, now you if you specify no drag boundaries the layer will be dragable anywhere. (or set dragBoundary property of layer to null)


Version 2000.07.16
------------------
[-] Fixed a bug in setDragBoundaries() and the dragging of layers within a specified area.


Version 2000.07.14
------------------
[+] Added ie55 property to Browser class
[-] Added slideTo() object fix, so sliding works with widgets
[*] Code optimizing and removing of unneeded characters
[*] Moved all dynlayer event code to core.api.events
[*] Moved dragdrop code to core.ext.dragdrop
[-] Included fix for setSize()
[-] Fixed problem with imageloader


Version 2000.07.11
------------------
[+] Added core.ext.addon, now contains the findLayers(), getImage() and the imageloader methods
[*] Removed the methods mentioned above from the core DynAPI object 
[+] Added core.ext.layer, contains setMaxSize(), setPadding() and getPadding()
[*] Removed the methods mentioned above from the DynLayer object


Version 2000.07.05
------------------
[+] Added initial draganddrop support (use ondrop eventlistener)
[+] Added dragobject property to dyndocument
[*] Removed deleteAllChildren() call on dyndocument.unload
[+] Added onUnload() event to DynAPI constructor


Version 2000.07.03
------------------
[+] Added findDimensions() call in loadhandler
[+] Added deleteAllChildren() method to the DynDocument
[+] Added unload handler, automaticlly calls deleteAllChildren() of the default dyndocument
[*] Changed filestructure, and updated loadhandler()


Version 2000.07.01
------------------
[-] Fixed mousevents recursion for Mozilla
[-] Fixed setBgColor(null) for Mozilla
[*] Added DOM browsercheck
[+] Added new array properties: api[] gui[] and ext[] for use with new include()
[+] Added librarypath property, and setLibraryPath() method
[*] Changed include() method can now handle wildcards, use following:
	DynAPI.include('core.api.*')  - will link in all known API classes
	DynAPI.include('core.gui.*')  - will link in all known GUI classes
[*] The include() method now also contains a path parameter to specify the file path, if no path is selected the librarypath property will be used.
	

Version 2000.06.26
------------------
[*] Changed: made Mozilla/NS6 support working. (tested with milestone16)
[*] File including should now be done from within own code


Version 2000.06.25
------------------
[*] Splited every class in multiple files.
[+] Added include property to DynAPI class, to load extra files
[+] Added root property to specify root of DynAPI library
[*] Small code-cleaning (removing unneeded comments and extra characters)
[+] Incorporated getImage and imageloader functions into DynAPI constructor
[*] Made the EventListener class an extension (only link it if needed)