changes that will be made once php supports it:
===============================================================================
 1. custom superglobals: $APP will be defined as superglobal.
    what to do with pseudostatic things like $HtmlUtil, $Bs_String etc?
 2. exception handling (php5): try/catch/finally will be used.
 3. make use of __FUNCTION__ and __CLASS__ after some time. needs php 4.3



version 4.5
 1. Bs_Form: a container can now have a template assigned directly via a string var. 
    before, only file-based templates were possible. 
    Bs_FormContainer: added var templateString. 
    Bs_FormTemplateParser: added loadTemplateFromString().
    2003-08-10 --andrej
 2. Bs_FormFieldRadioJs: fixed a typo that rendered the (rarely used) elementList 
    param in getField() useless. Anyway, it's still a problem to render the 
    different options of a radio-js field to different locations. need to work 
    on the generated javascript code. 2003-08-10 --andrej
 3. Bs_FormFieldSelect.class.js: setTo() now has a 2nd param 'type' to specify 
    if the comparison should be done on the 'value' or 'text'.
    added method setText() to set a new caption for an existing entry.
    added method removeElement(). 2003-08-12 --andrej
 4. added application IndexedListManager. 2003-08-12 --andrej
 5. Bs_Tree: implemented a cheap version of lookAhead (preload down). works 
    well. even with large trees that have 1000 nodes. added example 12 to 
    show it. by default a lookAhead of 2 (not -1 which means unlimited) 
    is used. 2003-08-12 --andrej
 6. Bs_Dropdown.class.js: added the rememberNewInCookie option, and example 4 
    that shows its use. 2003-08-14 --andrej
 7. added bs_addIncludePath to Bs_Misc.lib.js. 2003-08-15 --andrej
 8. Bs_FormFieldSelect now supports to use the FlipFlop js component. 
    2003-08-18 --andrej
 9. Bs_FlipFlop: fixed a bug that made a dblclick on the 'selected' field not 
    update the hidden field (hidden, in form submitted value). 2003-08-18 --andrej
10. Bs_Logger: fixed a bug in setDir(). it checked the old dir if it's 
    writeable instead of the new given one. 2003-08-18 --andrej
11. Bs_Form fields now support field names like 'bs_todo[dataHash][frameName]'. 
    these produce arrays in the form post, and are now read in correctly after 
    the post. 2003-08-18 --andrej
12. Bs_FileManager: fixed 2 warnings. 2003-08-20 --andrej
13. added js component Bs_DataGrid (very basic). 2003-08-20 --andrej
14. added core/text/Bs_Ocr.class.php (very basic). 2003-08-20 --andrej
15. Bs_DataGrid: extended. lots of work still to do. 2003-08-24 --andrej
16. Bs_Radio: added the vars imgType, pixelate, invertActive, iconType. added 
    exaple 6 that shows these features. changed captionAsAltText to 
    captionAsTitleText and kept it backward compatible. reimplemented useMouseover.
    implemented the attachEvent methods, example 1 now shows this.
    2003-08-25 --andrej
17. Bs_FormItAble now also supports the mode 'view', and not only 'add', 
    'edit' and 'delete'. 2003-08-25 --andrej
18. This change affects quite a few things. Fact: strip_tags() from php converts 
    '<b>bold</b><i>italic</i>' to 'bolditalic' and not 'bold italic'. it merges the 
    words. Bs_HtmlInfo uses that php function in htmlToText(), which is used in 
    the Bs_FileConverter, which is used for pretty much any file conversion 
    (word, excel, pdf, html, finally to plain text). so it affected the index 
    server as well. this is now changed, in that '<' is simply converted to 
    '< ' before doing strip_tags(). cheap, but ok here. 2003-08-28 --andrej
19. renamed Bs_Url->getUrlJunk() to getUrlChunk(). :-) kept it backward compatible. 
    2003-08-29 --andrej
20. Bs_FormItAble: does not set submitted form values to the object we're handling 
    in cases of 'view' and 'delete', since it makes no sense. 2003-08-29 --andrej
21. Bs_Form: does not validate user input in case of 'view' and 'delete' since 
    it makes no sense. 2003-08-29 --andrej
22. Bs_TextUtil->parseSearchQuery() now supports the 'fuzzy' operator. example:
    +~"Bill Gates" and ~Microsoft
    might also find something that includes "Bills gate" and "Micro$oft.
    2003-09-02 --andrej
23. IndexServer, namely Bs_Is_Indexer: implemented the fuzzy search logic on a 
    per-phrase basis. the new feature in Bs_TextUtil->parseSearchQuery() now 
    allows it to do fuzzy searches on parts of the query, instead of all/nothing. 
    2003-09-02 --andrej
24. Bs_FlipFlop now supports to disable the field using setDisabled(). see 
    the new example 4. 
    http://www.blueshoes.org/_bsJavascript/components/flipflop/examples/example4.html
    2003-09-02 --andrej
25. Bs_DatePicker: added a reset function and the possibility to set
    an "" (empty) date. 2003-08-28 --sam
26. Bs_FileSystem->makeValidFileName() added, with ecg tests. 2003-09-04 --andrej
27. Bs_String->clean() has a new 3rd param $allowThese. 2003-09-04 --andrej
28. Bs_Editor javascript component: when the unlink (opposite of createlink) 
    was unset (to hide it), quite some cpu was wasted. (an exception got 
    thrown, invisible for the user, but required cpu, in cycels). fixed.
    2003-09-04 --andrej
29. bs_undoMagicQuotes() now also works on $_REQUEST. before, only get, post and 
    cookies were done. 2003-09-08 --andrej
30. bs_undoMagicQuotes() is now executed on every page request. it is directly built 
    into blueshoes.ini.php. 2003-09-08 --andrej
31. IndexServer: implemented the collocations feature. this allows us to 
    recommend related words to the user. added the lyrics example to test and show it.
    example: someone is searching for "morissette". now we know which words occure the 
    most together with morissette, so we can recommend them. the #1 is alanis.
    this helps the user to better find what he's looking for, especially when there 
    are many results found. 2003-09-08 --andrej
32. Bs_Db: getNumRecords() is now optimized in that no data is fetched from the 
    db. the query is modified on the fly to a "select count(*)" query. debedoo 
    certainly likes this. 2003-09-08 --andrej
33. Bs_Editor js component: now the style of the editor window can be customized 
    using the vars editorCssString and editorCssFile. want smaller fonts? or 
    load your custom css settings for header tags? there you go. 2003-09-09 --andrej
34. Bs_DataGrid: added more css class names, see the example. the sorting 
    column can be visualized, see the example. lots of work still to do. 
    2003-09-10 --andrej
35. Bs_XmlParser.class.js: optimization that also affects jsrs. speeds up parsing 
    a large xml string by many times. the problem was: in javascript, if you do:
    var string = "fffffffffffffffffffffffffffffff";
    for (var i=0; i<string.length; i++) {
      string = string.substr(1);
    }
    that will make the string one char smaller each loop. and it reassigns the new 
    string to the var 'string' each time. with large strings (some thousand characters), 
    that is a very, very, very slow thing in javascript. and a longer string 
    makes it slower *superproportionally*. it throws away the whole string each time, 
    and makes a new one. no optimization is built in. 
    the optimization in the parser is that we now don't work on the full string 
    when it's not needed. we only pick a part, work on it, and expand it when needed. 
    little benchmark:
    an array with 400 elements, each being a hash itself having 5 strings, structured 
    as xml (using Bs_Wddx.class.js), took 300 seconds on a 2ghz machine. it's now down 
    to 5 seconds.
    2003-09-15 --andrej
36. Bs_SimpleObjPersister: the bs_sop_postStore() callback now has a 3rd param.
    bs_sop_preStore() has the 2 params: $sopAgent and $fields. 
    bs_sop_postStore() had the 2 params: $sopAgent and $success.
    now it receives the $fields too, as 3rd param. it is a list of the fields 
    that are affected (by default, all fields are stored). 2003-09-15 --andrej
37. Bs_Checkbox: Fixed a bug i implemented in bs-4.4. When the checkbox was submitted 
    along with a form to the server, the values were not right. No updates of the 
    value was done on clicks. So the initial value was taken all the time. very 
    bad, i'm sorry. 2003-09-16 --andrej
38. Bs_TreeElement: since bs-4.4, the tree sometimes used 17 pixel per node instead 
    of 16 in height. this was because of a css setting which worked fine with larger 
    tree icons (see example 13), but not the standard ones. it most cases it wasn't 
    a big deal, but sometimes it was ugly. fixed now. 2003-09-17 --andrej
39. Bs_Slider: small change in internal _roundToGrid() method to avoid unwanted 
    fractions when using a 'valueInterval' setting that is smaller than 1 (for 
    example 0.1). 2003-09-17 --andrej
40. Bs_Radio: the caption is used as alt text. that causes problems if the caption 
    uses html (tags). so now it's only used as alt text if the caption has no 
    tags in it. a strip_tag() would be another idea. 2003-09-23 --andrej
41. Bs_Form: moved getVisibility() and the vars visibility and accessRights from 
    Bs_FormField to Bs_FormElement (field is a subclass of element). this means that 
    all fields still have the same functionality, but the other elements (text, 
    html, image ...) now have that too. they can be set to hidden by code or 
    by user rights. it was a design mistake that this has not been in 
    Bs_FormElement from the start. 
    Bs_FormField->editability, which belongs to the same family, stays in the 
    field class, that makes sense if you think about it. 2003-09-25 --andrej
42. Bs_Editor: made the toolbar buttons "compatible" to use with multiple instances 
    on one page. didn't fully work in 'toolbar' mode before. 
    added the 'x' to close the toolbar. an image would be nicer.
    2003-10-15 --andrej
43. Bs_TabSet.class.js from (javascript\components\): The function switchTo() also accepts 
    the tab's-caption name as parameter (used to only accept the tab-index). 
    Also added an onTabSelect(myTabEventHandler) function and an example to show the use.
    2003-10-17 --sam
44. Bs_ResizeGrip.class.js from (javascript\components\): Was not usable with Mozilla. Now 
    it works (more or less), but is still a little clumsy. 
    2003-10-17 --sam
45. Bs_Browscap: 
    modified the value of browserLanguages. 
    referrer: is now passed along even if runTest() is used. so it's not lost.
    userType: if there is no KB installed, the most important spiders like googlebot are 
              still detected.
    connectionType: now works.
    cookiesSession and cookiesPermanent: set to null if unknown, not false.
    same with javaScript and javaScriptEnabled. 
    added a howto and 3 examples for this class.
    2003-10-18 --andrej
46. Bs_ColorPicker: made it mozilla-compatible (without the picker itself, that is omitted 
    in mozilla). 2003-10-18 --andrej
47. Corrected bug reported by fklee at isuisse dot com: commented out empty <div></div>. 
    It randomly caused an empty line in the tree in ie.
    2003-10-18 --sam
48. Bs_SimpleSession.class.php has now it's own default data and is not depending on data 
    set in $GLOBAL['APP']['sess']. Also added some examples.
    2003-10-19 --sam
49. Bs_Db: added getAssoc3(). 2003-10-21 --andrej
50. Bs_FormItAble: Fixed a bug that overwrote valueDefault in mode "add" which should not 
    have happened. thanks to Thomas A. Johnson from mailroute.net for the notice.
    2003-10-23 --andrej
51. Bs_TreeElement: the var 'icon' can now include a path. added example 15 that shows it. 
    added the events 'onBeforeOpen', 'onAfterOpen', 'onBeforeClose' and 'onAfterClose'. 
    extended example 6 to show it. 2003-10-27 --andrej
52. Bs_Slider: small change in internal _roundToGrid() method for better number 
    rounding. especially useful when using fractions. added the green slider to example 1. 
    2003-10-27 --andrej
53. Bs_Tree: optimized the lookAhead feature (a lot). the tree can now be used with an 
    unlimited amount of nodes (theoretically). the node objects are not all instanciated 
    when initiating the tree with the data anymore. before, only the rendering of hidden 
    nodes had been postponed to the moment when the nodes were used. 
    unfortunately when the checkbox system is used with the walking-down feature 
    (checkboxSystemWalkTree >= 2) then this optimization is disabled. (think about it)
    2003-10-29 --andrej
54. Bs_SpreadSheet: implemented the paste-functionality for mozilla using a workaround 
    (because moz lacks access to the clipboard). also removed the description line of 
    the toolbar, i don't think it's useful here, it only wastes space. added the 
    field/value line below the toolbar. it displays the cell name (for example C4) and 
    the value of that cell. especially useful when not all content is displayed in the 
    cell because the value is too long. 2003-11-04 --andrej
55. Bs_Form->includeOnceToHtml(): i am not sure how this happened, but the function 
    used the keys of the given $includeOnce vector as value (instead of using the 
    values). this resulted in returning garbage like:
    <script type="text/javascript" language="JavaScript" src="0"></script>
    it's fixed now. in case someone is relying on that wrong implementation from 
    before: if the key is a string and the value is not, the key is used.
    2003-11-05 --andrej
56. Bs_FileConverter: wvWare needs a capital W, at least on linux. fixed. 
    2003-11-05 --andrej
57. onomastics: made an editor for the relations using jsrs. 2003-11-08 --andrej
58. Bs_TextType: now supports the lineSpacing param. 2003-11-12 --andrej
59. Bs_FileUtil->decodeFilename() and encodeFilename(): now handles all chars.
    is used by Bs_TextType. 2003-11-12 --andrej
60. Bs_TextType: images where the width/height was autocalcualted had a +20 in width 
    and +10 in height to make sure it's engouh. the +20 is not needed anymore, the 
    +10 is but only for multiline images. the return value of php's ImageFtBbox() is 
    still undocumented, and i guess the behavior of the function will change in the 
    future. 
    sometimes the images don't have enough width, and a bit is cut off. will have to 
    work on that. 
    apache sends a 'forbidden' for url's equal or longer than 230 chars, but only 
    if the directory to the url exists and the file does not. this can be handled 
    by linking a 403 to the 404.php file too.
    2003-11-18 --andrej
61. Bs_HtmlNavigation: changes i have to document, everything is backward compatible, 
    added __CAPTION_UPPER__ and __CAPTION_LOWER__ (caption in uppercase, ...)
    2003-11-18 --andrej
62. Bs_HtmlInfo: fetchLinks() uses the alt tag of images if the link has an image only. 
    it now also works if the link looks like <a>&nbsp;<img>&nbsp;</a> ... the 
    &nbsp; tags are now treated like spaces. if there is no alt tag but a title tag, 
    that one will be used. 
    getTagParam() now does not care about the case anymore.
    added fetchImageTexts().
    2003-11-19 --andrej
63. Bs_Tree: getElementByCaptionPath() did not work with the new lookAhead feature. 
    it now does. 2003-11-19 --andrej
60. Bs_TextType: added new feature: you can now have the width/height autocalculated 
    and then extended by some pixels, by specifying imgWidth = "+20". same for 
    imgHeight. 2003-11-21 --andrej
61. Bs_Slider: Slider was broken by change Nr.52. Added a change that works  
    2003-11-26 --sam
62. Bs_Slider: The Events attachOnSlideEnd() and attachOnSlideStart() should work now.
    Also removed some deprecated code. 2003-11-26 --sam
63. Bs_HtmlTag: added getTokens(). 2003-11-26 --andrej
64. Bs_Editor: added example 5 and 6. 2003-11-28 --andrej
65. Bs_Editor: when the editor was used as toolbar, and it was closed while being in 
    html (not wysiwyg) mode, the last changes were lost, and getValue() returned 
    the text-version of the value (not the html value). fixed. 2003-12-02 --andrej
66. Bs_FormFieldFile: fixed a bug that prevented file type checks (eg .gif) to work.
    thanks to Peter Lindstrom. 2003-12-14 --andrej
67. Bs_FormItAble: extended the 'dataPrefix' feature. 2003-12-14 --andrej
68. Bs_FormFieldTextarea: implemented the bgColorWarning feature (from the 
    Bs_LimitedTextarea javascript component). 2003-12-22 --andrej
69. Bs_TreeElement: the element now receives the colored background (default is yellow) 
    also if the caption is a link, and has no js event attached. it used to be like 
    that in a previous version. 2003-12-23 --andrej
70. Bs_FileCache: there was a rare case where fetch() did not return the cache even 
    when it was available. it did not cause problems; the only thing was that the 
    cache was not used. fixed.
    setVerboseCacheNames(): only the first 60 chars of the origin file 
    are used now, no longer 100. 2003-12-27 --andrej
71. Bs_HnXmlHandler (the xml handler for Bs_HtmlNavigation) now uses a cache for the 
    parsed xml files. this increases the speed *a lot*. there is an origin check; 
    when the origin xml file changes, the cache is dropped and regenerated. no 
    need to do anything. 2003-12-27 --andrej





version 4.4
===============================================================================
 1. Bs_Form: added new specialfield Bs_FormFieldFileBrowser. 2003-04-28 --andrej
 2. added Array.prototype.deleteItemHash() in Bs_Array.class.js to be able to 
    remove elements from hashes, not only vectors. 2003-04-29 --andrej
 3. updated the Bs_Tree (js tree) to support drag&drop. experimental. added 
    example 9 for it. 2003-04-29 --andrej
 4. added 4 new functions in Bs_Array.class.js: moveUp, moveDown, moveToTop, moveToBottom.
    2003-05-01 --andrej
 5. js toolbar now supports groups. and thus toggle-style buttons. 2003-05-02 --andrej
 6. many features for the filebrowser application. preview of files, for example.
    2003-05-02 --andrej
 7. filemanager: fixed a js problem with sorting of files. added a gif for sorting 
    up and down. 2003-05-03 --andrej
 8. js tree: for some reason the code for the autocollapse feature was commented out. 
    dunno why. but i've reactivated it. everything seems to work fine. 2003-05-05 --andrej
 9. js tree: added the openPath() feature. for this some changes in open() were needed. 
    the new example 10 shows how it works. 2003-05-05 --andrej
10. Bs_Dir: added the functions cp() and cpDir() to copy dirs recursively, by keeping 
    the chmod. 2003-05-05 --andrej
11. Bs_FileSystem: added getWithoutFileExtension(). 2003-05-06 --andrej
12. Bs_Dir: added rm(), which is different to emptyDir(). 2003-05-06 --andrej
13. js dropdown component: onChange now fires also when text has been typed and the 
    text field lost the focus. thanks to Winnie Chou for reporting the problem. 
    added example3.html to show the component in a form. 2003-05-12 --andrej
14. Bs_Cug now creates a Bs_SimpleSession and not a Bs_SessionFile anymore if there 
    isn't a global session instance already available. Bs_SessionFile is deprecated 
    anyway. i don't expect this to cause problems in existing code. but then i'm 
    not that sure. anyway, it can be worked around it by making sure the session 
    exists before using Bs_Cug. 2003-05-13 --andrej
15. spreadsheet editor now uses our js buttonbar and button classes instead of domapi.
    the context menu still uses domapi. 2003-05-15 --andrej
16. added Bs_CsvUtil->guessSeparator() with ecg test. 2003-05-15 --andrej
17. Bs_Dropdown.class.js: better switching from text field to select field and back. 
    no listens onkeydown (enter, escape, F2). 2003-05-15 --andrej
18. wysiwyg editor: now supports different levels of pasting. allow formatting (html) 
    in pasted content? see Bs_Wysiwyg.class.js._fireEditareaOnPaste(). 
    example1.html shows it in instance 2. 2003-05-16 --andrej
19. Bs_HtmlUtil.lib.js: added bs_stripTags() (dirty version). 2003-05-16 --andrej
20. Bs_HtmlUtil->arrayToJsArray() can now deal with empty or non-array input. 
    2003-05-17 --andrej
21. Bs_Button.class.js now shows buttons inactive if set to status 0 using ms filters, 
    thus ie only at the moment. looks really good. a mozilla workaround will follow 
    somewhen. 2003-05-16 --andrej
22. Bs_HtmlTableWindrose and Bs_TableStyler are updated to support meta information 
    about styles. the meta information is: 
      The first row is a title row
      The last row is a title row
      The first column is a title column
      The last column is a title column
    with this information we can present the best table styles from the available ones 
    to a user for his specfic table. also there is the key 'tableTag', it's a hint 
    that's not used from Bs_HtmlTable but can used from other scripts. 2003-05-21 --andrej
23. Bs_HtmlTable: added 3rd param 'tableTag' to renderTable(). 2003-05-21 --andrej
24. added Bs_HtmlTableWindrose->readByString(). 2003-05-21 --andrej
25. Bs_SimpleObjPersister: fixed typo 'ignoreData' and 'ignorData' are now valid 
    attributs 2003-05-23 --sam
26. Bs_SimpleObjPersister: Bug correction : Adding a new field to the hint hash
    and reading the object (without writing any data) would leave the table 
    unchanged (thus the new field was not added). Instead 'unknow field' warnings 
    were thrown. This is corrected.  2003-05-23 --sam
27. Bs_SimpleObjPersister: Bug correction : related to the bug above an
    other bug was corrected too. When adding a new hint field and following load it
    happend that the new field would receive the field-neighbors value.
    This is corrected.  2003-05-24 --sam
28. Bs_Form: better support for multilevel forms. misc stuff. 2003-05-23 --andrej
29. Bs_FormFieldCheckbox->getFieldText() now uses the label tag instead of javascript 
    to allow clicking the text instead of the checkbox. the radio field did this 
    already before. the getFieldCaption() still uses the js way. 
    it matters with onClick: onclick only fires when you click the checkbox directly, 
    or you click the text between the label tags. a js event that changes the checkbox 
    value won't fire the onclick event, it won't even fire the onchange event in ie6! :/
    2003-05-23 --andrej
30. filemanager: added new features: create folder, delete folders recursively (not 
    only files), made it compatible to use without register_globals, create text files.
    cut/copy/paste files around with a virtual clipboard. 2003-05-25 --andrej
31. Bs_File->_write() returned FALSE instead of TRUE if you wrote an empty string to a 
    file, and it succeeded. this was the case because fwrite() returns the number of 
    bytes written, and not bool. thus 0 bytes was interpreted as false. fixed. 
    2003-05-25 --andrej
32. added Bs_File->move(), it is like PHP's rename() but can overwrite existing 
    destinations. 2003-05-25 --andrej
33. Bs_TextType can not print text strings with an angle (rotation). 2003-05-26 --andrej
34. Bs_ButtonBar.class.js and Bs_Button.class.js: added the "multiple choice" feature, 
    the visible caption, and the option to draw the toolbar vertically. added examples 4-6.
    2003-05-28 --andrej
35. Added Bs_CsvUtil.class.js, it is a translation of the php class. not everything done 
    yet, but usable. 2003-05-28 --andrej
36. Added Bs_String.lib.js, it has the bs_trim(), bs_ltrim() and bs_rtrim() functions.
    i am sure that it will grow. 2003-05-28 --andrej
37. Bs_SpreadSheet: pasting is now possible, just hit ctrl-v on your cell. even areas 
    from excel can be pasted, multiple cols/rows are detected and pasted correctly. 
    addRow() and addCol() can now be called without param to have a new one at the 
    end. it now uses Bs_CsvUtil.class.js, which uses Bs_String.lib.js. 
    need to recode the redraw() logic, it's no good that after every small change 
    redraw() is called. also the col width should not be lost. 2003-05-28 --andrej
38. index server: Bs_Is_Searcher returned results that matched -words when the 
    exclude word (-word) was at the last position, and there was no 'may' word 
    (only must words "+word"). fixed. 
    removed a 'var not set' warning that appeard when using phrase search. does not 
    change anything, just no warning anymore. 
    Bs_Is_Searcher->hintString ("did you mean: xy") is set to empty if no similar 
    words found.
    2003-05-31 --andrej
39. Bs_FormItAble not only listens on the $overwriteFormProps param in 
    doItYourself(). 2003-06-02 --andrej
40. Bs_FormFieldRadio now handles '0' values correctly (usual problem with empty().)
    doItYourself(). 2003-06-02 --andrej
41. Bs_HtmlNavigation: fixed a side-effect of a new feature in _locateCurrentPage().
42. Removed all deprecated bigbrother methodes from Bs_Object like bbXfoo().
    Also removed any use of it in BS. 2003-06-02 --sam
43. Wenn using PHP 4.3 and up all calls to Bs_Error::setError can be simplified
    The last 3 parameters can safely be omited.
    Old: Bs_Error::setError('test_1', 'FATAL', __LINE__, 'function name', __FILE__);
    NEW: Bs_Error::setError('test_1', 'FATAL');   2003-06-07 --sam
44. Bs_Debedoo: updated the howto and example, and fixed a notice that showed up 
    when set to. 2003-06-09 --andrej
45. updated most howtos to use the new style. some content editing here and there. 
    2003-06-09 --andrej
46. added bs_isEmpty() into Bs_Misc.lib.js. added other prototype-things to better 
    support mozilla. compatibility ... :/ 2003-06-14 --andrej
47. added new javascript component: tabset. with example. a web page for it will 
    follow. 2003-06-17 --andrej
48. added new javascript component: numberfield. with example. a web page for it
    will follow. 2003-06-18 --andrej
49. added new js file: core/gfx/Bs_ColorUtil.lib.js 2003-06-19 --andrej
50. Bs_Button: dragging of the button icons is not possible anymore. newbies 
    sometimes don't click 'properly', and drag the button. 2003-06-20 --andrej
51. Corrected a few bugs and added some features in component Bs_Slider.class.js: 
    bug 1) Clicking on the slider-handle (without moving it) passed an unrounded 
           value (e.g. 3.234043) to attached functions waiting for an event.
    bug 1.1) Correcting above bug showed that returned value was also small.
    bug 2) If no fieldName was set, it had the value of 'undefined' instead of a 
           unique name. Now it's set to the instance name of the component 
           followed by the string '_value'.
    bug 3) Rendering was wrong if the range was above 0 and the default was given
           E.g. range 10-20 default 11 would render totally wrong.
    new 1) Replaced the dirty global functions with clean methods calls.
    new 2) You may pass the instance name directly in the constructor. 
           E.g. mySlider = new Bs_Slider('mySlider'); 
    2003-06-21  --sam 
52. lang/Bs_Misc.lib.js: added queryStringToHash() 2003-06-21 --andrej
53. html/Bs_HtmlUtil.lib.js: added the functions: bs_parseSimpleTagProps(), 
    findWrappingElement(), expandSelectionToSimpleTag(). 2003-06-22 --andrej
54. Bs_NumberField: added mouse wheel support. (note: only ie6 supports the 
    onmousewheel event). 2003-06-23 --andrej
55. added new javascript component: resizegrip. with example. a web page 
    will follow. 2003-06-23 --andrej
56. Bs_Misc.lib.js: added 2nd param 'stopIfAbsolute' to getAbsolutePos().
    2003-06-24 --andrej
57. added new javascript component: LimitedTextarea. with example. 
    2003-06-25 --andrej
58. added web pages for all the new javascript components, see 
    http://work.www.blueshoes.org/en/javascript/ 
    also added a 'misc' page. 2003-06-25 --andrej
59. Bs_DatePicker now uses the Bs_NumberField for the year field. 2003-06-26 --andrej
60. added new javascript component: Bs_FlipFlop. with example. see 
    http://www.blueshoes.org/en/javascript/flipflop/ 2003-06-29 --andrej
61. Bs_Checkbox: added convertField() and the var imgStyle. added example 2 for it:
    http://www.blueshoes.org/_bsJavascript/components/checkbox/examples/example2.html 
    a value change (eg a click) now updates the icon itself, and does not require 
    a rerendering of the full checkbox element. 2003-06-30 --andrej
62. Bs_Dropdown: added convertField() to start with an existing text field, 
    added example 2, fixed the autoAdd feature (in javascript, a class can never 
    have a var and a method with the same name. one overwrites the other.) 
    added the maxLength feature. added setSize() and documented the options to 
    define the width of the fields. 
    nicer rendering of the text field with the arrow button, it now nearly looks 
    like a real dropdown. the button looks like it's inside the text field because 
    of the border handling.
    added var fieldName, _updateHiddenField() etc to support an auto-updated 
    hidden form field. 
    2003-07-01 --andrej
63. Bs_Button.class.js: added setTitle(), deactivated the ondrag code which was there 
    for better mouse handling - it has issues. better off without. 2003-07-02 --andrej
64. Bs_DatePicker: added convertField() to start with an existing text field and 
    added example 3 to show this. using a Bs_Button instead of +/- chars to toggle 
    the calendar layer now. 
    When there was no default date, and the picker was opened, it showed the current 
    day of the LAST month. the idea was to use the current date. fixed. if you know 
    about javascript's date handling, you know how that happened. 2003-07-02 --andrej
65. Bs_NumberField: added "drawButtonsInside" and "zeroFill" feature, added 
    example 2 to show it. 2003-07-02 --andrej
66. Bs_LimitedTextarea: added the setBgColorWarning() feature. the new example 2 
    shows its use. 2003-07-02 --andrej
67. Bs_Slider: added example4_smiley.html. 
    added method setValue() and deprecated onChangeByApi(), it is the same but 
    a better name. added the 4th param 'cssStyle' in setArrowIconLeft() and 
    setArrowIconRight(). 2003-07-03 --andrej
68. Bs_TreeElement: The tree allowed to visually select any element, even if it had 
    no onclick event attached. the mouse over the element showed the hand instead 
    of the cursor, and it was clickable. and it got the yellow background and the 
    focus after a click. now it only allows this if there is some sort of 
    onClick/onClickCaption attached. i don't think it will cause any harm, but then 
    i'm not 100% sure either. 
    The changes were around the lines 564 and 1279. 2003-07-03 --andrej
69. Bs_Radio: implemented the allowNoSelection feature. 2003-07-03 --andrej
70. Bs_Slider: added setDisabled() to disable/re-enalbe the slider. added 
    example 3 for it. 2003-07-06 --andrej
71. Bs_NumberField: added window resize handling and added a 1second interval to 
    check the buttons position. added example 3 that shows it. 2003-07-18 --andrej
72. Bs_SpreadSheet now works in mozilla 1.4. 2003-07-30 --andrej
73. Bs_Tree: extendend example 10 to show how different icons can be used for the 
    same tree. 
    added Bs_Tree.elementCloseWalkDown() and Bs_Tree.elementCloseWalkUp().
    added example 11 that shows how the tree status (checkbox values, open nodes) 
    can be fetched and how these settings can be applied to the tree again.
    2003-07-30 --andrej
74. Bs_Browscap.class.php: better opera handling. does not execute unsupported 
    ie code anymore. opera likes to identify itself as ie so it is not blocked 
    out of websites.
    2003-07-31 --andrej
75. Bs_LimitedTextarea is now mozilla and opera compatible. 2003-07-31 --andrej
76. Bs_TitleToTooltip: mozilla and opera compatible. 2003-08-01 --andrej



version 4.3
===============================================================================
 1. the javascript tree can now be closed and reopened in mozilla aswell. mozilla 
    does not support style="display:" it only supports style="display:block". 2002/11/12 --andrej
 2. the javascript slider now updates the text value in mozilla aswell. this did not work 
    before because mozilla only supports innerHTML not innerText (yet?). also the colorbar 
    feature works now. the problem was caused by a mozilla js bug. 2002/11/12 --andrej
 3. the javascript Bs_FormFieldSelect.class.js can now sortByText(). with example html file. 2002/11/13 --andrej
 4. added $APP['path']['toolbox'] as path in the blueshoes.ini.php 2002/11/14 --andrej
 5. Country.sql from the kb has been changed (the english and german spellings of cote d'ivoire:
    old: INSERT INTO BsKb.Country VALUES(NULL, 'ci', 'Elfenbeinküste; Cote d\'Ivoire', 'Côte d\'Ivoire', 'Côte d\'Ivoire');
    new: INSERT INTO BsKb.Country VALUES(NULL, 'ci', 'Cote d\'Ivoire', 'Elfenbeinküste', 'Côte d\'Ivoire');
    --andrej
 6. added new sql file to the kb: CountryCapital.sql (with php source file for import into the kb) --andrej
 7. updated the list of freemail providers (web.de, yahoo.some) --andrej
 8. updated the BsKb.Country table. added the BsKbCountrySononym table. --andrej
 9. updated bsSessionBrowscap() in Bs_Misc.lib.php, it won't forget posted data even after a redirect. 2002/11/19 --andrej
10. New basic error handling concept was implemented with Class Bs_Error.class.php. Bs_Error.class.php is a so called 
    "BS Language Component" (= *not* inherited by Bs_Object). For comfort some short hand function have been defined that 
    base on this class: E.g. The global function bs_setError($msg, $msgType, $_line_, $_func_, $_file_). (sam)
11. Bs_Object change. Including Bs_Error.class.php into Bs_Object and added new methodes (that use Bs_Error) in Bs_Object: 
    setError(), getLastError(), getLastErrors(), getErrors()       (sam)
12. New basic debugging concept was implemented with Class Bs_XRay.class.php. Bs_XRay.class.php is a so called 
    "BS Language Component" (= *not* inherited by Bs_Object). For comfort some short hand function have been defined that 
    base on this class: E.g. The global function XR_dump($foo, $_line_, $_func_, $_file_).  
    Bs_XRay.class.php is the *first* class that is included by default (in blueshoes.ini.php) (sam)
    (again, reported twice...)
    New basic Logging concept was implemented with Class Bs_Logger.class.php. Bs_Logger.class.php is a so called 
    "BS Language Component" (= *not* inherited by Bs_Object). For comfort some short hand function have been defined that 
    base on this class: E.g. The global function bs_logIt($msg, $msgType, $_line_, $_func_, $_file_).  
14. added core/html/Bs_HtmlEntities.class.php 2002/11/19 --andrej
15. Bs_Array: re-added randVal(), updated hashKeysToLower() and hashKeysToUpper() 
    to use array_change_key_case() if possible and return a new empty array 
    if no array was passed as param. 2002/11/19  --sam/andrej
16. fixed a bug in core/gfx/Bs_ColorCodes->rgbToHex(). 2002/11/20 --andrej
17. added createDifferentColors() to core/gfx/Bs_ColorCodes. 2002/11/20 --andrej
18. fixed a bug in Bs_Form that occured with php 4.2.2 but not 4.2.3, together with ie6 and some 
    circumstances, not with mozilla/netscape. ask for details. 2002/11/15 --andrej
19. updated Bs_ColorCodes->createDifferentColors() to use predefined colors (by default). 2002/11/26 --andrej
20. changed Bs_SessionFile and Bs_Browscap to not create 2 sessions when using the redirection. 2002/11/27 --andrej
21. updated instanthelp to use innerHTML instead of innerText cause mozilla still does not support it. 
    todo: convert nl to br etc. 2002/12/02/ --andrej
22. fixed a bug in the javascript slider that occured when typing in values and the minVal was not 0. 2002/12/09 --andrej
23. fixed the tree so that it does not wrap anymore. was fixed in 4.2.5 --andrej
24. added the toolbar control. ~2002/12/09 --andrej
25. fixed css support for mozilla in the toolbar control. 
    thanks to "Flying" (flying at dom dot natm dot ru) for information and the fixed code. 2002/12/12 --andrej
26. added sams Bs_HtmlTableParser.class.php to core/html/table. it has been in the toolbox before. also 
    updated the toolbox (and the website). 2002/12/12 --andrej
27. Updated BS-framework to use the global function isEx() instead of $this->isException()  2002/12/11/ --sam
28. Added new class Bs_SimpleObjPersister.class.php to core/storage/objectpersister. 
    I think it's the bettre implementation of Bs_ObjPersister and may replace it.  2002/12/12 --sam
29. updated the Bs_HtmlTable class to use &nbsp; for empty cells. 2002/12/14 --andrej
30. fixed the Bs_HtmlTableStyle class when used with arrays and "firstcell" style settings 
    (instead of xml). also added an example. 2002/12/14 --andrej
31. updated the FileManager to use our Bs_Toolbar instead of domapi. 2002/12/15 --andrej
32. added an example to the FileManager. 2002/12/15 --andrej
33. added bs_lazyLoadClass() and bs_lazyLoadPackage() to core/lang/Bs_Misc.lib.php, have a look.
    2002/12/16 --andrej
34. added studlyCapsToSeparated() to Bs_String. 2002/12/16 --andrej
35. Bs_Form: added the Bs_Form->user and Bs_FormField->accessRights functionality. 2002/12/17 --andrej
36. now document everything using 2002-12-17 instead of 2002/12/17. this is sam's wish for xmas. 2002-12-17 --andrej
37. Bs_Form: added <bs_formbuttons /> for templates. added Bs_FormField->hideCaption. 
    added Bs_FormFieldCheckbox->textStyles. fixed some bugs, misc changes. 2002-12-19 --andrej
38. added Bs_Array->arrayToText(). 2002-12-22 --andrej
39. added bs_undoMagicQuotes()  # Check if magic-quotes are on, and if so strip all slashes from 
    $_POST, $_GET and $_COOKIE and set magic-quotes flag to off. --sam
40. bs_recursiveStripSlashes    # Strips all slashes from an string or array/hash recursively  --sam
41. added Bs_Array->arrayMergeRecursive() because the php function array_merge_recursive() fucks up 
    hashes with numeric keys. 2002-12-27 --andrej
42. added Bs_HtmlUtil->arrayToHiddenFormFields() with ecg. 2002-12-28 --andrej
43. we are now using tabs instead of spaces. files will have mixed 2-spaces and tabs until sam cleans 
    this using our code-stripper and a regexp. in the end only tabs will be used. currently you need to 
    set your editors tab width to 2, otherwise the files look crappy. 2002-12-31 --andrej
44. added new Bs_FormFieldSlider class, the implementation of the javascript slider as form field. 
    2002-12-31 --andrej
45. javascript slider: added examples 3 (for non-framework users) and 4 (with the smiley). 2002-12-31 --andrej
46. javascrpit slider: added/updated the class documentation for many class vars. 2002-12-31 --andrej
47. updated Bs_HtmlUtil->arrayToJsArray() to accept vectors and treat them differently. added ecg 
    tests. 2003-01-01 --andrej
48. added new class: Bs_FormIniHandler to make ini files directly usable with web forms. 2003-01-01 --andrej
49. added Bs_Array->copyValuesToKeys(). 2003-01-02 --andrej
50. Bs_Form: added example 'renderMyself.php' to show how one can use selfmade form fields. 2003-01-02 --andrej
51. added new class Bs_HnXmlHandler.class.php to deal with xml style and data files for the 
    Bs_HtmlNavigation.class.php. 2003-01-02 --andrej
52. fixed Bs_HtmlUtil->filterForJavaScript() to convert int 0 to '0' instead of ''. 
    the problem was that php interprets (0 == '') as true. we need ===. 2003-01-03 --andrej
53. updated Bs_TextType->save() to auto-create a path if it does not exist. 2003-01-04 --andrej
54. javascript tree: fixed a bug in Bs_TreeElement.initByArray() with the 'isChecked' default value. 
    conversion to int is needed, otherwise the value '0' is interpreted wrong. 2003-01-05 --andrej
55. javascript tree: added new radio button feature and example 8 to show it. 2003-01-05 --andrej
56. fixed a possible bug in the global function getTmp(). if the temp dir could not be determined the 
    function tried to create /tmp. but even if it succeeded the function returned FALSE instead of /tmp/.
    2003-01-08 --andrej
57. Bs_Form now has full support for file uploads using the Bs_FormFieldFile class. this has not really been 
    implemented before. there are quite some special cases for it. have a look at the class doc. 2003-01-08 --andrej
58. Bs_CugDb now has the 'isUserError' field in the log db table to make a difference of user errors like 
    wrong password and system/account errors like 'account expired'. on system/account errors we don't double 
    the login timeout. the user-supplied data was ok. 2003-01-10 --andrej
59. added new class html/Bs_HtmlInfo to fetch information about an html page. 2003-01-11 --andrej
60. fixed a bug in Bs_Url->parseUrlExtended() that occured when there was no path part in the url. 2003-01-12 --andrej
61. Extended Bs_HtmlNavigation.class.php in that you may pass your own unique key for every navigation entry 
    and only if no key is given then the url is taken (instead of only using the url as key). 2003-01-14 --sam
62. Added the new placeholder __KEY__ in Bs_HtmlNavigation.class.php and user-placeholders. User-placeholders 
    all start with '__USER_' e.g. '__USER_foo'. 2003-01-14 --sam
63. added new Bs_Odbc class for db access. untested. 2003-01-16 --andrej
64. added Bs_Url->realUrl(). it works like php's realpath(). ecg tests added aswell. 2003-01-18 --andrej
65. updated phpunit to work with php4.3 (a method was defined twice). 2003-01-19 --andrej
66. extended Bs_Url->parseUrlExtended() to return 'extension' aswell, if present. that is the file 
    extension, for example 'php' for http://www.blueshoes.org/foo.php. updated the ecg. 2003-01-19 --andrej
67. added file/converter/Bs_FileConverterPdf.class.php 2003-01-19 --andrej
68. added 'cpdf', a set of php classes to generate pdf files. it's to pdf what jpgraph is to charts. 
    2003-01-20 --andrej
69. fixed a possible bug in the Bs_Smtp class that made the body appear in the header when using 
    some sort of mailserver. 2003-01-22 --andrej
70. added param $makeVarGlobal in Bs_HtmlUtil->arrayToJsArray(). 2003-01-23 --andrej
71. Bs_FormContainer: added new option $pseudoIfNada. the container becomes a pseudoContainer if 
    there is nothing to show. active by default. 2003-01-23 --andrej
72. Bs_FormFieldRadio: implemented modes 'read', 'readonly' and 'show'. using images. 2003-01-23 --andrej
73. javascript Bs_Slider and Bs_FormFieldSlider have the new options moveX and moveY for easy and 
    fast positioning (correction of positioning) by pixels. 2003-01-23 --andrej
74. $_SERVER['DOCUMENT_ROOT'] was not alway ending with a slash '/' because some ppl just dont 
    add the slash at the end of the htdoc dir-path (what we think is a bad habbit). fixed by sam.
75. Bs_Form: added new special field: Bs_FormFieldDatePicker.class.php. with example. 2003-02-03 --andrej
76. added new Bs_DatePicker javascript component. with example. 2003-02-03 --andrej
77. finally implemented the hidden field of the Bs_Slider (javascript component and Bs_Form field) properly. 
    before it had a bad field name. sam hacked it to get it to work in the meantime. 2003-02-03 --andrej
78. Bs_SimpleSession: added the feture to destroy  session data by passing the session ID (SID). 
    Bs_SimpleSession::destroySID($sid, $destroySessName). 
79. Js Wysiwyg editor: added new 'custom 1' tab for full customization. buttons can be added, whatever. 
    2003-02-06 --andrej
80. Js Toolbar: buttonbar help bar can now have the ? icon. 2003-02-06 --andrej
81. Onomastics plugin: added the option to define your own communicator (serverside php script). 2003-02-07 --andrej
82. Bs_UnitConverter->bitsAndBytes(): added 4th param $round to round the returned value with a default 
    of 2 (digits). 2003-02-08 --andrej
83. Bs_Form: added new onEnter option: "js:doThis" (read doc for var Bs_Form->onEnter). 2003-02-10 --andrej
84. updated Bs_DatePicker, added many new features. added 2nd example. 2003-02-11 --andrej
85. lots of work on the indexserver plugin, new application based on it named websearchengine. 2003-02-11 --andrej
86. Wrote a new Javascript XML-Parser (Bs_XmlParser.class.js) and a WDDX-de/serializer(Bs_Wddx.class.js).
    JS-RS should now be able to transfer *all* data transparently (and mutch faster :). Data is now passed using 
    http-post by default (instead of http-get; http-get still has a problem) 2003-02-11 --sam
87. added 2 new Bs_Form examples using the wysiwyg widget. 2003-02-11 --andrej
88. Bs_InstantHelp (tooltip): it now renders to left/right bottom/top, wherever there is enough room. 
    2003-02-11 --andrej
89. Bs_FormFiled has now a server side syntax check for URL and a rudimentary IP 2003-02-14 --sam
90. Bs_Form: moved vars caption, hideCaption from Bs_FormField to Bs_FormElement, that's where they 
    really belong to. that means all non-field elements now can have a caption aswell, but don't 
    use it by default. backward compatibility is given. 
91. Bs_FormFieldFile: with var $showCurrentFile one can now specify if and how a currently stored file 
    should be made visible in the form. 2003-02-18 --andrej
92. Bs_CugDb: new methods killOldSessions() and getOldSids() to prevent account-sharing.  2003-02-18 --andrej
93. javascript tree: new method Bs_Tree->elementOpenWalkUp(). 2003-02-20 --andrej
94. added new class: core/gfx/chart/Bs_IntervalChart. 2003-02-20 --andrej
95. extended the Bs_Browscap class to detect pdf/svg/windows media and a few others on ie (win) and 
    on mozilla. flash has already been detected. 2003-02-20 --andrej
96. added new experimentary class core/text/Bs_DailyText. 2003-02-20 --andrej
97. added new method Bs_Array->reindex(). it takes an array and creates a new index, starting 
    at pos 0 (vector). does php really not have such a function? did not find one. 2003-02-20 --andrej
98. added new "example" (or web frontend) for the Bs_Stripper class, available at 
    /_bsCore/util/examples/Bs_Stripper.php. 2003-02-23 --andrej
99. Bs_TreeElement.class.js: added new var dataContainer. 2003-02-23 --andrej
100. Bs_Form: lots of new examples. some minor changes. 2003-03-02 --andrej
101. Bs_Tree: new methods getActiveElement() and setActiveElement(). 2003-03-03 --andrej
102. bsSessionBrowscap(): when the browscap kicks in, post data is persisted in a temp file. 
     when browscap redirected the temp file is read and $_POST is made available again. this 
     is how it was. now $_REQUEST is available too. 2003-03-03 --andrej (and sam)
103. Bs_Form: fixed support for Bs_FormField->mustOneOf. it was broken. 2003-03-03 --andrej
104. Plugin InstantHelp: made the ToolTip work in Mozilla (1.3b), and made it respect scrollTop and 
     scrollLeft. 2003-03-05 --andrej
105. Bs_Form: added new classes Bs_FormFieldCheckboxJs and Bs_FormFieldRadioJs. these are bs_form 
     implementation of the javascript components. 2003-03-06 --andrej
106. Added new icons for javascript components Bs_Radio and Bs_Checkbox (mainly disabled icons). 2003-03-06 --andrej
107. 2 new global bs-fuctions (def. in  Bs_Misc): bs_storeVar($aPhpVar, $file)/bs_loadVar(&$aPhpVar, $file) 
     These 2 functions are very useful for saving(/reading) PHP vars in an *easy-to-read format* to disk. 2003-03-06  --sam
108. Updated Bs_Misc.lib.js to emulate the IE-DOM functions innerText(), insertAdjacentElement() insertAdjacentHTML()and 
     insertAdjacentText() in Mozilla1.2+/Gecko/NS6+ 2003-03-19 --sam
109. updated Bs_IniHandler to allow [] chars in the value. 2003-03-22 --andrej



version 4.2  2002/11/06
===============================================================================
a lot of these are structural changes.
1.  javascript directory moved completely out of core, one up. (andrej)
2.  moved plugin directory out of core, one up. (andrej)
3.  smartshop is now an application, not a plugin anymore. (andrej)
4.  moved the cms dir out of the core, it is not an application for itself. (andrej)
5.  the deprecated core/lang/bs_map.class.php has been removed. such a hash-map is not needed [anymore] in php. (andrej)
6.  all directories are now written in lowercase. class files are still the exceptions, starting with an uppercase letter. other files use “studly caps”. (andrej)
7.  imagearchive is now an app, not a plugin anymore. (andrej)
8.  updated the coding guidelines.
9.  splitted jsrs into client and server part, so the server is now a plugin, and the client is in javascripts plugin directory. (andrej)
10.  cleaned up everything in javascript. for the new rules see the coding guidelines. (andrej)
11.  updated md5.js to avoid possible conflicts because of poor naming in the global scope, and renamed it to md5.lib.js.
12.  renamed Bs_Slider.class.js, Bs_Array.lib.js, Bs_Misc.lib.js Bs_Soundex.class.js, Bs_Number.lib.js, these are the new names. (andrej)
13.  moved the wddx js libs into the util folder and renamed them. they don’t belong to jsrs. (andrej)
14.  Bs_TemplateParser now extends the Bs_XmlParser and not the deprecated Bs_HtmlParser anymore. moved the templateparser into the html/form directory, renamed it to formtemplateparser, it’s only used there. the old cmt directory has been removed. (andrej)
15.  Bs_Misc.inc.php is now Bs_Misc.lib.php.
16.  moved the Bs_LanguageHandler from util to text.
17.  the js stopwatch is now Bs_StopWatch.class.js, updated the file name, class name and the example. the example is now in a subdir.
18.  javascript jumpToFirstError() is now bsFormJumpToFirstError(), same with bsFormToggleCheckbox() and bsFormToggleContainer() (used from bs_form).
19.  javascript: form/utit.js and formUtil.js merged, now called form/Bs_FormUtil.lib.js
20.  oodb and objectpersister moved into subdirs, those are packages.
21.  moved the 3 table classes into core/html/table, they deserve their own package.
22.  the javascript select fields are now in it’s own class, Bs_FormFieldSelect.class.php.
23.  the 3 cug classes are now in the subdir core/auth/cug.
24.  howtos, examples and manuals are now directly where they belong, in subdirs named “howtos”, “manuals” and “examples”. so they’re on the same level as “ecg” directories. 
25.  moved the fileconverter classes from /core/util/ to /core/file/converter/.
26.  moved debedoo from /core/storage/debedoo/ to /applications/debedoo/
27.  moved core/phpunit/ to core/lang/phpunit/
28.  added the new php-doc lines @since and @status, examples:
  @since bs4.1 
  @since php4.3
  @since bs4.1, php4.3
  @status stable|experimental
        you may want to check the codingGuidelines.txt for all @vars.
29.  New include philosophy for require_once($APP['path']... 
  All path parts are small letters and the subpath is part of the 'right side'
  E.g.
  OLD: require_once($APP['path']['core/Html'] . 'foo.class.php');
  NEW : require_once($APP['path']['core'] . 'html/foo.class.php');
30. extended the javascript tree control when working with the checkbox system. (a few special cases)
31. added the javascript dropdown control
32. added the javascript radio control
33. In Bs_IniHandler.class.php corrected quote-handling. Added file write function. (sam)
34. updated the slider to work with mozilla (tested 1.0 and 1.2beta).
35. updated the wysiwyg editor and the spreadsheet editor for bs4.2, and made them much more usable using a class.
36. added the filebrowser "application" to the codebase. it's not mentioned on the website yet. i am not sure 
    if it will remain there. so far it's used for the wysiwyg editor as image selector.
37. In Bs_Dir. function getFileList() 3x faster. 
    Corrected a potential bug (file with name 'false').
    Added bettre comment. Added fuctionality: new ['returnType'] = 'cascade2  (sam) 
38. In Bs_FileSystem added getRealPathSplit() and realPathSplit(). Both accept a path and retun a hash that
    with canonicalized real pathname split in ['pathRoot']  <- Things like '/', 'c:/', 'http://',  'ftp://'
    ['pathCore']  <- e.g. 'path/to/a/subdir/' and ['file']  <- if a file was in the path find it here
39. Changes in Bs_Array.class.php: 
     - Removed obsolet functions and code. 
     - Simplified getPos() 
     - hashKeysToLower() and hashKeysToUpper() us PHP-function if version is >=4.2 
     - New Set-function intersect(), diff(), complement(). (PHP-function are similar but are not censequent with hash-arrays)

