
(function() {
  try {
    document.createEvent("TouchEvent");
  } catch(e) {
    return;
  }

  ['touchstart', 'touchmove', 'touchend'].each(function(type){
      Element.NativeEvents[type] = 2;
  });
	
	//document.addEventListener('touchmove', function(e){ e.preventDefault(); });
	
	
  var mapping = {
   // 'click': 'touchstart',
    'mousedown': 'touchstart',
    'mousemove': 'touchmove',
    'mouseup': 'touchend',
    'mouseover': 'touchstart'
	
  };

  var condition = function(event) {
    var touch = event.event.changedTouches[0];
    event.page = {
      x: touch.pageX,
      y: touch.pageY
    };
    return true;
  };

  for (var e in mapping) {
    Element.Events[e] = {
      base: mapping[e],
      condition: condition
    };
  }
})();

function makeScrollbar(content,scrollbar,handle,horizontal,ignoreMouse)
{
	var steps = (horizontal?(content.getScrollSize().x - content.getSize().x):(content.getScrollSize().y - content.getSize().y))
	var slider = new Slider(scrollbar, handle, {	
	steps: steps,
	mode: (horizontal?'horizontal':'vertical'),
	onChange: function(step){
	// Scrolls the content element in x or y direction.
	var x = (horizontal?step:0);
	var y = (horizontal?0:step);
	content.scrollTo(x,y);
	}
	}).set(0);
	if( !(ignoreMouse) ){
	// Scroll the content element when the mousewheel is used within the 
	// content or the scrollbar element.
	$$(content, scrollbar).addEvent('mousewheel', function(e){	
		e = new Event(e).stop();
		var step = slider.step - e.wheel * 30;	
		slider.set(step);					
	});
	
		
	}

	// Stops the handle dragging process when the mouse leaves the document body.
	$(document.body).addEvent('mouseleave',function(){slider.drag.stop()});
}

		
		


