1. Differentiate between the horizontal and the vertical bars when
calculating their positions in the scroll bars to avoid wrong
calculation when the scroll bars are hidden.
2. Changed the implementation of the function "getHScrollBarHeight" and
"getVScrollBarWidth".
3. Removed the unnecessary checking on "_bAutoHide" in the functions
"hideScrollBars" and "showScrollBars".
4. Added the function to move the wrapped element by code which enables
to implementation of "revealRecord" or "snap".
5. The width of the vertical scroll bar and the height of the horizontal
scroll bar have been taken out of account the calculation of the range
of the movement of the wrapped element.
1. Added a counter to the id of the wrapper element to make it unique.
2. Corrected the way of calculating the sizes and positions of the bars
when rendering the bars.
3. The height of the horizontal scroll bar and the width of the vertical
scroll bar have been completely taken out of the calculations which are
done to determine the range of movement of the wrapped element.
4. Corrected the observation of the scroll bars visibility when they're
and aren't automatically hidden.
5. Added two functions to calculate the ratio of the distances that the
wrapped element can be moved to the distances that the bars can be
moved.
6. Renamed the "observeScrollBars", "observeHScrollBar" and
"observeVScrollBar" functions to "observeScrollBarsMove",
"observeHScrollBarMove" and "observeVScrollBarMove" to eliminate
ambiguity.
7. Removed the "refreshScrollBars" function as it's just the
"renderScrollBars" function while it's made public.