code: function () {
  
  		var pointer = this,
  			container = pointer.chart.container,
  			events;
  
  		this._events = events = [
  			[container, 'onmousedown', 'onContainerMouseDown'],
  			[container, 'onmousemove', 'onContainerMouseMove'],
  			[container, 'onclick', 'onContainerClick'],
  			[container, 'mouseleave', 'onContainerMouseLeave'],
  			[doc, 'mousemove', 'onDocumentMouseMove'],
  			[doc, 'mouseup', 'onDocumentMouseUp']
  		];
  
  		if (hasTouch) {
  			events.push(
  				[container, 'ontouchstart', 'onContainerTouchStart'],
  				[container, 'ontouchmove', 'onContainerTouchMove'],
  				[doc, 'touchend', 'onDocumentTouchEnd']
  			);
  		}
  
  		each(events, function (eventConfig) {
  
  			// First, create the callback function that in turn calls the method on Pointer
  			pointer['_' + eventConfig[2]] = function (e) {
  				pointer[eventConfig[2]](e);
  			};
  
  			// Now attach the function, either as a direct property or through addEvent
  			if (eventConfig[1].indexOf('on') === 0) {
  				eventConfig[0][eventConfig[1]] = pointer['_' + eventConfig[2]];
  			} else {
  				addEvent(eventConfig[0], eventConfig[1], pointer['_' + eventConfig[2]]);
  			}
  		});
  
  		
  	}
docs: Set the JS DOM events on the container and document. This method should contain
  a one-to-one assignment between methods and their handlers. Any advanced logic should
  be moved to the handler reflecting the event's name.