		function slidingMenu()
		{
			//	hungdn - add code to read the position of div by document
			var menuWrapper = null;
			menuWrapper = window.document.getElementById("MenuWrapper");
			var menuWrapperTop = 0;
			if (menuWrapper != null) {
				menuWrapperTop = menuWrapper.offsetTop;
			}
			
			this.steps = 4;		// total menu items
			var max = 260 + menuWrapperTop;		// higher of background image
			var min = 0 + menuWrapperTop;
			var h = 65;			// height of arrow
				
			this.animInterval = null;
			this.targetY = 0;
			this.currentY = 0;
			this.stepSize = 0;
			this.arrowEl = null;
			var self = this;
			
			this.mouseOver = function ( e ) 
			{
				//alertObj( e );	
				//alert( e.x + ', ' + e.y );
				//alert( e.clientX + ', ' + e.clientY );
				
				var segHeight = (max - min) / self.steps;
				
				var y = e.clientY;
				if( y < min ) y = min;
				if( y >= max ) y = max-1;
				
				y = y - menuWrapperTop;
								
				var seg =  y / segHeight;
				seg = parseInt(seg);
				var setY = parseInt( seg * segHeight );
				
				
				if( !self.arrowEl ) {
					self.arrowEl = document.getElementById( 'arrow' );
				}
				
				self.setAnimTarget( setY );
			}
			
			this.startArrow = function (target) {
				// start the animation from an event on the target, rather than
				// from an event on the container
				
				var myTargets = new Object();
				myTargets['slideItem01'] = 0;
				myTargets['slideItem02'] = 65;
				myTargets['slideItem03'] = 130;
				myTargets['slideItem04'] = 195;
				
				var setY = myTargets[target];
				
				if( !self.arrowEl ) {
					self.arrowEl = document.getElementById( 'arrow' );
				}
			
				self.setAnimTarget( setY );
			}
			
			this.setAnimTarget =  function( ty )
			{
				self.targetY = ty;
				
				var diff = Math.abs( self.targetY - self.currentY );
				self.stepSize = diff / self.steps;
				
				if( self.animInterval == null && self.targetY != self.currentY ) {
					self.animInterval = setInterval( self.animLoop, 20 );
				}
			}
			
			this.animLoop = function()
			{
				var diff = self.targetY - self.currentY;
				var step = diff / Math.abs( diff );
				var step = step * self.stepSize;
				
				if( Math.abs( step ) > Math.abs( diff ) ) step = diff;
				
				self.currentY += step;
				self.arrowEl.style.top = parseInt( self.currentY ) + 'px';
				
				if( self.targetY == self.currentY ) {
					clearInterval( self.animInterval );
					self.animInterval = null;
				}	
			}
		}		