/**
 * @author nd
 */

var ExtScroller = new Class({

		options: {
		},


		initialize: function(options){
			this.setOptions(options);

			// Content Div 
			this.contentDIV = $('content');
			
			var contentDIVsize = this.contentDIV.getSize();

			// check if the vertical scrollbar is needed
			if (contentDIVsize.scrollSize.y > contentDIVsize.size.y ){
				// init Vertical Scrollbar
				this.initVerticalScrollbar();
			}
		},

		initVerticalScrollbar: function(){
			// 
			this.contentDIV.setStyle('overflow','hidden');			
			// insert the vScrollbar divs to the DOM
			this.insertVerticalScrollbarDivs();
			
			// creat the vertical Mooscroller Object
			this.theMooScroller = new MooScroller(
									$E('div#scrollbar_wrapper div#content'), 
									$E('div#scrollbar_wrapper .vscrollarea .scrollKnob'));
		},

		/*
		 * insertVerticalScrollbarDivs
		 *
		 * This function insert the scrollbar object into the DOM
		 *
		 * 	<div class="vscrollarea">
		 *		<div class="scrollBack"></div>
		 *		<div class="scrollBarContainer">
		 *			<div class="scrollKnob">
		 *				<div class="scrollKnobTop"></div>
		 *				<div class="scrollKnobBottom"></div>
		 *			</div>
		 *		</div>
		 *		<div class="scrollForward"></div>
		 *	</div>
		 */
		insertVerticalScrollbarDivs: function(){
				
			if ($$('.vscrollarea').length <= 0) {
				var vscrollarea = new Element('div', {
					'class': 'vscrollarea'
				});

				var scrollBack = new Element('div', {
					'class': 'scrollBack'
				}).injectInside(vscrollarea);

				var scrollbarcontainer = new Element('div', {
					'class': 'scrollBarContainer'
				});
				var scrollknob = new Element('div', {
					'class': 'scrollKnob'
				});

				var scrollKnobTop = new Element('div', {
					'class': 'scrollKnobTop'
				}).injectInside(scrollknob);
				var scrollKnobBottom = new Element('div', {
					'class': 'scrollKnobBottom'
				}).injectInside(scrollknob);

				scrollknob.injectInside(scrollbarcontainer);
				scrollbarcontainer.injectInside(vscrollarea);

				var scrollForward = new Element('div', {
					'class': 'scrollForward'
				}).injectInside(vscrollarea);

				vscrollarea.injectInside('scrollbar_wrapper');
			}		
		}
});

ExtScroller.implement(new Events());
ExtScroller.implement(new Options());