Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <html>
- <head>
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
- <title>Entropia Universe Inventory Diff Tool</title>
- <script>
- function fstr (s, n) {
- return s + Array(n - s.length).join(' ');
- }
- function fnumu (x, m, n) {
- var s = x.toFixed(m);
- if (typeof n == 'undefined') return s;
- return Array(n + 2 - s.length).join(' ') + s;
- }
- function fnum (x, m, n) {
- var s = ((x > 0) ? '+' : '') + x.toFixed(m);
- if (typeof n == 'undefined') return s;
- return Array(n + 2 - s.length).join(' ') + s;
- }
- function fline (t, q, v, f) {
- if (f == 'f') return "[tr][td]" + t + "[/td][td][right]" + fnum(q, 0) + "[/right][/td][td][right]" + fnum(v, 2) + " PED[/right][/td][/tr]\n";
- if (f == 's') return t + "\t" + q + "\t" + fnum(v, 2) + "\n";
- return fstr(t, 50) + fnum(q, 0, 7) + fnum(v, 2, 9) + " PED\n";
- }
- function fcsum (t, r, f, n1, n2) {
- if (f == 'f') return "[tr][td]" + t + "[/td][td].[/td][td][/td][td][right]" + fnum(r, 2) + " PED[/right][/td][/tr]\n";
- if (f == 't') return fstr(t, 58) + fnum(r, 2, 9) + " PED\n";
- return t + "\t\t=SUM(C" + n1 + ":C" + n2 + ")\n";
- }
- function ftsum (t, p, r, f, n1, n2) {
- if (f == 'f') return "[tr][td]" + t + "[/td][td][right]" + fnumu(p, 2) + "%[/right][/td][td][right]" + fnum(r, 2) + " PED[/right][/td][/tr]\n";
- if (f == 't') return fstr(t, 50) + fnumu(p, 2, 6) + "%" + fnum(r, 2, 9) + " PED\n";
- return t + "\t" + fnumu(p, 2) + "%\t" + fnum(r, 2) + "\n";
- }
- function fhead (f) {
- if (f == 'f') return "[table]\n";
- return "";
- }
- function ffoot (r, p, f, n1, n2) {
- if (f == 's') return "Result\t=ABS(C" + n2 + "/C" + n1 + ")\t=C" + n1 + "+C" + n2 + "\n";
- return ftsum("Result", p, r, f) + ((f == 'f') ? "[/table]" : "");
- }
- function fempty (f) {
- if (f == 'f') return "[tr][td].[/td][td].[/td][td].[/td][/tr]\n";
- return "\n";
- }
- function cdiff () {
- var diff = [];
- var re = /^\d+\s+(.*?)\s+(\d+)\s+(\d+\.\d+)\s+PED/gm;
- var e;
- while ((e = re.exec(document.frm.after.value)) !== null) {
- if (diff[e[1]]) {
- diff[e[1]].q += parseInt(e[2]);
- diff[e[1]].v += parseFloat(e[3]);
- }
- else diff[e[1]] = {q: parseInt(e[2]), v: parseFloat(e[3])};
- }
- while ((e = re.exec(document.frm.before.value)) !== null) {
- if (diff[e[1]]) {
- diff[e[1]].q -= parseInt(e[2]);
- diff[e[1]].v -= parseFloat(e[3]);
- }
- else diff[e[1]] = {q: -parseInt(e[2]), v: -parseFloat(e[3])};
- }
- var c = d = '';
- var g = h = n1 = n2 = 0;
- var f = document.frm.format.value;
- for (var p in diff) {
- if (!diff.hasOwnProperty(p)) continue;
- if (Math.abs(diff[p].q) == 0 && Math.abs(diff[p].v) < 0.01) continue;
- if (diff[p].q <= 0) {
- h += diff[p].v;
- c += fline(p, diff[p].q, diff[p].v, f);
- n1++;
- }
- else {
- g += diff[p].v;
- d += fline(p, diff[p].q, diff[p].v, f);
- n2++;
- }
- }
- c += fcsum('Total expenses', h, f, 1, n1) + fempty(f);
- d += fcsum('Total returns', g, f, n1+3, n1+2+n2) + fempty(f);
- document.frm.result.value = fhead(f) + c + d + ffoot(g + h, Math.abs(g / h) * 100, f, n1+1, n1+2+n2+1);
- return false;
- }
- </script>
- </head>
- <body>
- <h2>Entropia Universe Inventory Diff Tool</h2>
- <p><a href="https://account.entropiauniverse.com/account/my-account/my-items/" target="_blank">My items</a> /
- <a href="http://arkadiaforum.com/threads/a-geeky-tool-for-measuring-eco.12205/" target="_blank">Instructions</a></p>
- <form name="frm" method="post" onsubmit="return cdiff()">
- <p></p>Before:<br/><textarea name="before" cols="100" rows="10"></textarea></p>
- <p></p>After:<br/><textarea name="after" cols="100" rows="10"></textarea></p>
- <p><input type="submit" value="Calculate difference"></p>
- <p></p>Result (format as
- <input type="radio" name="format" value="f" onchange="return this.form.result.value.length && cdiff()"> forum table /
- <input type="radio" name="format" value="s" onchange="return this.form.result.value.length && cdiff()"> spreadsheet /
- <input type="radio" name="format" value="t" checked="checked" onchange="return this.form.result.value.length && cdiff()"> plain text):<br/>
- <textarea name="result" cols="100" rows="10"></textarea></p>
- </form>
- <p><small>Author: Sandal San Tolk</small></p>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement