/* @author Ian Hickey, Rylan Doherty, David Westgate, William Jellesma, Peter Atashian @fileOverview The event listener, event handler, script writer, and script executer functions of firerecord */ var recording2 = false; var path = null; var page = null; var i = 0; var line1 = new Array(); var line2 = new Array(); var playThis; window.addEventListener("load", function load(event) { window.removeEventListener("load", load, false); firerecord.init(); }, false); var firerecord = function () { var prefManager = Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefBranch); return { init : function() { var appcontent = document.getElementById("appcontent"); // browser if (appcontent) { appcontent.addEventListener("DOMContentLoaded", firerecord.run, true); } }, /* @author Rylan */ running : function() { if (recording2) { recording2 = false; alert("Stop Listen"); openUILinkIn(window.content.location.href, "current"); } else { recording2 = true; alert("Start Listen"); firerecord.run(); } }, openfile : function() { path = io.openPath(); }, newfile : function() { path = io.newPath(); io.createFile(path); }, /* @author Rylan */ checkpage : function() { page = window.content.location.href; if (page != line1) openUILinkIn(line1, "current"); setTimeout(function(){ firerecord.fire(); },5000); }, /* @author Rylan, David */ playback : function() { i = 0; playThis = io.getScript(path); line1 = playThis[0]; line2 = playThis[0+1].split(' :: '); firerecord.checkpage(); }, /* @author Rylan */ fire : function() { if (line2[0]=="key"){ var obj = document.createEvent("KeyboardEvent"); obj.initKeyEvent('keydown', true, true, window, false, false, false, false, 8, 0); document.dispatchEvent(obj); } else{ var all = content.document.getElementsByTagName(line2[1]); for ( var n = 0; n < all.length; n++) { var elem = all[n]; var searchCount = 0; if(line2[0]=="click") searchCount = 2; else if(line2[0]=="type") searchCount = 3; var finding = false; while(searchCount 0) ? " " : "") + "link-target-finder-selected"; elm.addEventListener("change", handleType, false); } else{ elm.className += ((elm.className.length > 0) ? " " : "") + "link-target-finder-selected"; elm.addEventListener("click", handleEvent, false); } } } } } }; /* @author Rylan @description handles click events */ function handleEvent(e) { var targ; if (!e) { var e = window.event; } if (e.target) { targ = e.target; } else if (e.srcElement) { targ = e.srcElement; } var eleArray= ["href","name","id","type","value","form","length", "target","action","src","charset","text","index", "caption","size","summary"]; var validtags = [ "A", "BUTTON", "FORM", "IMG", "INPUT", "LINK", "OPTION", "SELECT", "TABLE", "TEXTAREA" ]; var toWrite = new Array(); toWrite[0] = "click"; toWrite[1] = targ.tagName; var countWrite = 2; var eleCount = 0; var eleHolder; if (validtags.indexOf(toWrite[1]) == -1) { } else{ while(eleCount