Skip to content

Instantly share code, notes, and snippets.

@froller
Created September 10, 2014 10:44
Show Gist options
  • Save froller/b9334661360c4bfbc8e4 to your computer and use it in GitHub Desktop.
Save froller/b9334661360c4bfbc8e4 to your computer and use it in GitHub Desktop.
Adding capabilities of registered users of eCalc to everyone
// ==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