onmousedown="setPosition(evt, true)" onmouseup="setPosition(evt, false)" onmousemove="moveViewPort(evt)" onload="init(evt)"> var track_mouse_position = false; var original_mouse_position = new Array(); var SVGRoot; function init(evt) { SVGRoot = evt.target.ownerDocument.documentElement; } function setPosition(evt, active) { track_mouse_position = active; if (track_mouse_position) { original_mouse_position['x'] = evt.clientX; original_mouse_position['y'] = evt.clientY; SVGRoot.cursor = 'move'; } else { original_mouse_position = new Array(); SVGRoot.cursor = ''; } } function moveViewPort(evt) { if (track_mouse_position) { viewBox = SVGRoot.getAttribute('viewBox'); var viewVals = viewBox.split(' '); viewVals[0] = original_mouse_position['x'] - evt.clientX; viewVals[1] = original_mouse_position['y'] - evt.clientY; SVGRoot.setAttribute('viewBox', viewVals.join(' ')); } }