Created
September 10, 2014 10:44
-
-
Save froller/b9334661360c4bfbc8e4 to your computer and use it in GitHub Desktop.
Adding capabilities of registered users of eCalc to everyone
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name eCalcHack | |
// @namespace froller | |
// @description Adding capabilities of registered users of eCalc to everyone | |
// @include http://www.ecalc.ch/motorcalc.php* | |
// @include http://www.ecalc.ch/xcoptercalc.php* | |
// @include http://www.ecalc.ch/fancalc.php* | |
// @include http://www.ecalc.ch/helicalc.php* | |
// @version 1 | |
// @grant none | |
// ==/UserScript== | |
var hackables = []; | |
function disableObjects(objects, disable) { | |
for (var idx in objects) { | |
if (disable) { | |
objects[idx].setAttribute("disabled", ""); | |
} else { | |
objects[idx].removeAttribute("disabled"); | |
} | |
} | |
} | |
function hackInputs() { | |
disableObjects(hackables, false); | |
} | |
function unHackInputs() { | |
disableObjects(hackables, true); | |
} | |
function mkHackBtn() { | |
var btn = document.createElement("input"); | |
btn.setAttribute("type", "button"); | |
btn.setAttribute("value", "Hack!"); | |
btn.addEventListener("click", hackInputs, false); | |
return btn; | |
} | |
function addButtons() { | |
var td = document.getElementsByClassName("inputProp")[14]; | |
td.appendChild(document.createElement("br")); | |
td.appendChild(mkHackBtn()); | |
} | |
function getHackables() { | |
var inputs = document.getElementsByTagName("input"); | |
var disabledInputs = []; | |
for (var idx in inputs) { | |
if (inputs[idx].id && inputs[idx].hasAttribute("disabled")) { | |
disabledInputs.push(inputs[idx]); | |
} | |
} | |
disabledInputs.push(document.getElementById("inMLimitType")); | |
return disabledInputs; | |
} | |
function hackedCalculateHandler() { | |
unHackInputs(); | |
calculate(); | |
} | |
function hackCalculate() { | |
var btn = document.getElementsByName("btnCalculate")[0]; | |
btn.removeAttribute("onclick"); | |
btn.removeEventListener("click", calculate); | |
btn.addEventListener("click", hackedCalculateHandler, false); | |
} | |
hackables = getHackables(); | |
addButtons(); | |
hackInputs(); | |
hackCalculate(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment