/* * Copyright(c) 2011 * OJC Technologies * all rights reserved * @author: Jake Smith */ function takeClickAction(e) { var ca; try { e.preventDefault(); ca = new ClickActor(e); ca.processClick(); } catch (err) { alert(err); } return false; } function ClickActor(e) { this.event = e || window.event; this.event.stopPropagation(); this.target = this.event.target || this.event.srcElement; if (printer) {printer.reset();} this.processClick = function() { if (cursor.isTarget(this.target)) { return; } cursor.remove(); if (this.target.nodeName == 'BODY' || this.target.nodeName == 'HTML') { return; } this.placeACursor(); } //-----------------------// // "Private" functions // //-----------------------// this.placeACursor = function() { var clickChooser, contenderNodes, posInfo; clickChooser = new ClickChooser(this.event); contenderNodes = this.getTerminalNodes(); posInfo = clickChooser.getPositionInfo(contenderNodes); cursor.placeAt(posInfo); } this.getTerminalNodes = function() { var i, termNodes, termCount; termNodes = new Array(); termCount = 0; for (i = 0; i < this.target.childNodes.length; i++) { var childNode = this.target.childNodes[i]; if (childNode.nodeType == Node.TEXT_NODE) { termNodes[termCount] = childNode; termCount++; } } return termNodes; } } // ClickActor(e) // standalone 'helper' function function makeTempSpan(textNode) { var elem, copyTextNode; copyTextNode = document.createTextNode(textNode.nodeValue); elem = getEmptyTempSpan(); elem.appendChild(copyTextNode); return elem; } // standalone 'helper' function function getEmptyTempSpan() { var elem; elem = document.createElement('span'); elem.setAttribute('class', 'temporarysearchspan'); return elem; }