-function elementPosition(el) {
- var up = el.offsetTop;
- var left = el.offsetLeft;
- var width = el.offsetWidth;
- var height = el.offsetHeight;
- while (el.offsetParent) {
- el = el.offsetParent;
- up += el.offsetTop;
- left += el.offsetLeft;
- }
- return [up, left, width, height];
+function element_position(el) {
+ var x = el.offsetLeft;
+ var y = el.offsetTop;
+ var width = el.offsetWidth;
+ var height = el.offsetHeight;
+ while (el.offsetParent) {
+ el = el.offsetParent;
+ y += el.offsetTop;
+ x += el.offsetLeft;
+ }
+ return { x: x, y: y, width: width, height: height };
+}
+
+// Simulate a click on the element
+function click_element(target, options) {
+ var event = target.ownerDocument.createEvent('MouseEvents');
+ var pos = element_position(target);
+ options = options || {};
+
+
+ event.initMouseEvent(
+ options.type || 'click',
+ options.canBubble || true,
+ options.cancelable || true,
+ options.view || target.ownerDocument.defaultView,
+ options.detail || 1,
+ options.screenX || pos.x - window.pageXOffset,
+ options.screenY || pos.y - window.pageYOffset,
+ options.clientX || pos.x,
+ options.clientY || pos.y,
+ options.ctrlKey || false,
+ options.altKey || false,
+ options.shiftKey || false,
+ options.metaKey || false,
+ options.button || 0, //0 = left, 1 = middle, 2 = right
+ options.relatedTarget || null
+ );
+
+ target.dispatchEvent(event);