doc/js/scripts.js
function(instance, helper, data){
			
			// this function is pretty dumb and does not check if there is actually
			// enough space available around the tooltip to move it, it just makes it
			// snap to the grid. You might want to do something smarter in your app!
			
			var gridBcr = $('#demo-position-grid')[0].getBoundingClientRect(),
				arrowSize = parseInt($(helper.tooltipClone).find('.tooltipster-box').css('margin-left'));
			
			// override these
			data.coord = {
				// move the tooltip so the arrow overflows the grid
				left: gridBcr.left - arrowSize,
				top: gridBcr.top
			};
			
			return data;
		}
function(instance, helper, data){
			
			// this function is pretty dumb and does not check if there is actually
			// enough space available around the tooltip to move it, it just makes it
			// snap to the grid. You might want to do something smarter in your app!
			
			var gridBcr = $('#demo-position-grid')[0].getBoundingClientRect(),
				arrowSize = parseInt($(helper.tooltipClone).find('.tooltipster-box').css('margin-left'));
			
			// override these
			data.coord = {
				// move the tooltip so the arrow overflows the grid
				left: gridBcr.left - arrowSize,
				top: gridBcr.top
			};
			
			return data;
		}
function ( instance , helper , data ) { // this function is pretty dumb and does not check if there is actually
 // enough space available around the tooltip to move it, it just makes it
 // snap to the grid. You might want to do something smarter in your app!
 var gridBcr = $ ( '#demo-position-grid' ) [ 0 ] . getBoundingClientRect ( ) , arrowSize = parseInt ( $ ( helper . tooltipClone ) . find ( '.tooltipster-box' ) . css ( 'margin-left' ) ) ; // override these
 data . coord = { // move the tooltip so the arrow overflows the grid
 left : gridBcr . left - arrowSize , top : gridBcr . top } ; return data ; }
8 extra pixels for the arrow to overflow the grid
8 extra pixels for the arrow to overflow the grid