Crime Value Per Nerve

Displays the value per nerve for Disposal and Cracking

// ==UserScript==
// @name         Crime Value Per Nerve
// @namespace    heartflower.torn.com
// @version      1.1
// @description  Displays the value per nerve for Disposal and Cracking
// @author       Heartflower [2626587]
// @match        https://www.torn.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=torn.com
// ==/UserScript==

(function() {
    'use strict';

    let crackingDetailed = true;

    let disposalData = [
        { name: 'Biological Waste', method: 'Abandon', averageMoney: 28012, successRate: 0.74, nerveAmount: 6 },
        { name: 'Biological Waste', method: 'Bury', averageMoney: 28201, successRate: 0.83, nerveAmount: 8 },
        { name: 'Biological Waste', method: 'Burn', averageMoney: 29061, successRate: 0.68, nerveAmount: 10 },
        { name: 'Biological Waste', method: 'Sink', averageMoney: 28477, successRate: 0.99, nerveAmount: 12 },

        { name: 'Body Part', method: 'Abandon', averageMoney: 72044, successRate: 0.60, nerveAmount: 6 },
        { name: 'Body Part', method: 'Bury', averageMoney: 71673, successRate: 0.83, nerveAmount: 8 },
        { name: 'Body Part', method: 'Burn', averageMoney: 70850, successRate: 0.89, nerveAmount: 10 },
        { name: 'Body Part', method: 'Sink', averageMoney: 70913, successRate: 0.89, nerveAmount: 12 },
        { name: 'Body Part', method: 'Dissolve', averageMoney: 70543, successRate: 0.98, nerveAmount: 14 },

        { name: 'Building Debris', method: 'Abandon', averageMoney: 8923, successRate: 0.83, nerveAmount: 6 },
        { name: 'Building Debris', method: 'Bury', averageMoney: 8860, successRate: 0.70, nerveAmount: 8 },
        { name: 'Building Debris', method: 'Sink', averageMoney: 8990, successRate: 0.97, nerveAmount: 12 },

        { name: 'Dead Body', method: 'Abandon', averageMoney: 140755, successRate: 0.81, nerveAmount: 6 },
        { name: 'Dead Body', method: 'Bury', averageMoney: 130663, successRate: 0.92, nerveAmount: 8 },
        { name: 'Dead Body', method: 'Burn', averageMoney: 150350, successRate: 0.50, nerveAmount: 10 },
        { name: 'Dead Body', method: 'Sink', averageMoney: 0, successRate: 0.50, nerveAmount: 12 },
        { name: 'Dead Body', method: 'Dissolve', averageMoney: 137550, successRate: 1.00, nerveAmount: 14 },

        { name: 'Documents', method: 'Abandon', averageMoney: 10118, successRate: 0.67, nerveAmount: 6 },
        { name: 'Documents', method: 'Bury', averageMoney: 9957, successRate: 0.82, nerveAmount: 8 },
        { name: 'Documents', method: 'Burn', averageMoney: 9973, successRate: 0.98, nerveAmount: 10 },
        { name: 'Documents', method: 'Sink', averageMoney: 0, successRate: 0, nerveAmount: 12 },
        { name: 'Documents', method: 'Dissolve', averageMoney: 0, successRate: 0, nerveAmount: 14 },

        { name: 'Firearm', method: 'Abandon', averageMoney: 38433, successRate: 0.76, nerveAmount: 6 },
        { name: 'Firearm', method: 'Bury', averageMoney: 37241, successRate: 0.86, nerveAmount: 8 },
        { name: 'Firearm', method: 'Sink', averageMoney: 38222, successRate: 0.98, nerveAmount: 12 },
        { name: 'Firearm', method: 'Dissolve', averageMoney: 0, successRate: 0, nerveAmount: 14 },

        { name: 'General Waste', method: 'Abandon', averageMoney: 2017, successRate: 0.83, nerveAmount: 6 },
        { name: 'General Waste', method: 'Bury', averageMoney: 2066, successRate: 0.97, nerveAmount: 8 },
        { name: 'General Waste', method: 'Burn', averageMoney: 1994, successRate: 0.96, nerveAmount: 10 },
        { name: 'General Waste', method: 'Sink', averageMoney: 1998, successRate: 0.71, nerveAmount: 12 },
        { name: 'General Waste', method: 'Dissolve', averageMoney: 2000, successRate: 0, nerveAmount: 14 },

        { name: 'Industrial Waste', method: 'Abandon', averageMoney: 24077, successRate: 0.74, nerveAmount: 6 },
        { name: 'Industrial Waste', method: 'Bury', averageMoney: 24375, successRate: 0.83, nerveAmount: 8 },
        { name: 'Industrial Waste', method: 'Sink', averageMoney: 24067, successRate: 0.97, nerveAmount: 12 },

        { name: 'Murder Weapon', method: 'Abandon', averageMoney: 39078, successRate: 0.65, nerveAmount: 6 },
        { name: 'Murder Weapon', method: 'Bury', averageMoney: 38912, successRate: 0.87, nerveAmount: 8 },
        { name: 'Murder Weapon', method: 'Sink', averageMoney: 37359, successRate: 0.98, nerveAmount: 12 },
        { name: 'Murder Weapon', method: 'Dissolve', averageMoney: 0, successRate: 0, nerveAmount: 14 },

        { name: 'Old Furniture', method: 'Abandon', averageMoney: 2885, successRate: 0.83, nerveAmount: 6 },
        { name: 'Old Furniture', method: 'Bury', averageMoney: 2961, successRate: 0.67, nerveAmount: 8 },
        { name: 'Old Furniture', method: 'Burn', averageMoney: 2993, successRate: 0.97, nerveAmount: 10 },
        { name: 'Old Furniture', method: 'Sink', averageMoney: 2970, successRate: 0.85, nerveAmount: 12 },
        { name: 'Old Furniture', method: 'Dissolve', averageMoney: 0, successRate: 0, nerveAmount: 14 },

        { name: 'Broken Appliance', method: 'Abandon', averageMoney: 4535, successRate: 0.81, nerveAmount: 6 },
        { name: 'Broken Appliance', method: 'Bury', averageMoney: 4557, successRate: 0.73, nerveAmount: 8 },
        { name: 'Broken Appliance', method: 'Sink', averageMoney: 4469, successRate: 0.97, nerveAmount: 12 },
        { name: 'Broken Appliance', method: 'Dissolve', averageMoney: 0, successRate: 0, nerveAmount: 14 },

        { name: 'Vehicle', method: 'Abandon', averageMoney: 15070, successRate: 0.83, nerveAmount: 6 },
        { name: 'Vehicle', method: 'Burn', averageMoney: 14994, successRate: 0.96, nerveAmount: 10 },
        { name: 'Vehicle', method: 'Sink', averageMoney: 15017, successRate: 0.98, nerveAmount: 12 },
    ];

    let crackingValues = {};
    if (crackingDetailed == false) {
        crackingValues = {
            'Colleague': { low: 10000, high: 29900, encryption: 0 },
            'Ex-boyfriend': { low: 10000, high: 60100, encryption: 0 },
            'Ex-girlfriend': { low: 10200, high: 99800, encryption: 0 },
            'Ex-husband': { low: 10100, high: 30000, encryption: 0 },
            'Ex-wife': { low: 10000, high: 30000, encryption: 0 },
            'Friend': { low: 10000, high: 25000, encryption: 0 },
            'Informant': { low: 30100, high: 48600, encryption: 0 },
            'Juror': { low: 30000, high: 49500, encryption: 0 },
            'Neighbor': { low: 10000, high: 25000, encryption: 0 },
            'Online adversary': { low: 10000, high: 48000, encryption: 0 },
            'Romantic interest': { low: 10000, high: 29500, encryption: 0 },
            'Doctor': { low: 35100, high: 139200, encryption: 0 },
            'Judge': { low: 41100, high: 96100, encryption: 0 },
            'Hacker': { low: 44400, high: 199700, encryption: 1 },
            'Police officer': { low: 40700, high: 90000, encryption: 1 },
            'Government official': { low: 70300, high: 129500, encryption: 1 },
            'Politician': { low: 60000, high: 115000, encryption: 1 },
            'Pornography network': { low: 72300, high: 145400, encryption: 1 },
            'Campus network': { low: 61000, high: 171300, encryption: 1 },
            'Health service': { low: 86500, high: 148100, encryption: 1 },
            'Games developer': { low: 69800, high: 132900, encryption: 2 },
            'Rival corporation': { low: 88600, high: 199600, encryption: 2 },
            'Police department': { low: 101000, high: 243100, encryption: 3 },
            'Crime syndicate': { low: 117000, high: 342400, encryption: 3 },
            'Government': { low: 190500, high: 297500, encryption: 3 },
            'Internet service provider': { low: 199900, high: 266800, encryption: 3 },
            'Armed forces': { low: 410600, high: 750000, encryption: 9 },
            'Intelligence agency': { low: 460000, high: 880600, encryption: 9 },
        };
    } else if (crackingDetailed == true) {
        crackingValues = {
            'Cell phone record database': {low: 561700, high: 649600, average: 606200, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 9},
            'Contractor supply database': {low: 514400, high: 596300, average: 560538, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 9},
            'Edge firewall': {low: 462600, high: 499400, average: 474250, bruteForceSuccessRate: 96, crackingSuccessRate: 100, encryption: 9},
            'Encrypted communication channel': {low: 623500, high: 768300, average: 695780, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 9},
            'Endpoint detection': {low: 426400, high: 463900, average: 441400, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 9},
            'Enhanced interrogation archive': {low: 677800, high: 710600, average: 688900, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 9},
            'Foreign intelligence records': {low: 504000, high: 516800, average: 511350, bruteForceSuccessRate: 94, crackingSuccessRate: 100, encryption: 9},
            'Level 3 security authentication': {low: 500100, high: 577100, average: 526367, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 9},
            'Military personnel records': {low: 410200, high: 463300, average: 443450, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 9},
            'Mission report log': {low: 474600, high: 517800, average: 490425, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 9},
            'Primary access terminal': {low: 727400, high: 893000, average: 811888, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 9},
            'Primary load balancer': {low: 456800, high: 527800, average: 491800, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 9},
            'Reconnaissance archive': {low: 488700, high: 548600, average: 510814, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 9},
            'Security mainframe': {low: 547400, high: 547400, average: 547400, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 9},
            'Terrorist watch list': {low: 555000, high: 595000, average: 570775, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 9},
            'Arrest records': {low: 126400, high: 172400, average: 149784, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 3},
            'Birth records': {low: 178700, high: 224300, average: 204332, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 3},
            'Bodycam footage repository': {low: 151400, high: 199900, average: 171653, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 3},
            'Cookie log': {low: 191400, high: 199900, average: 195650, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 3},
            'Crime statistics database': {low: 215100, high: 293600, average: 261376, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 3},
            'Cross connect ingress': {low: 198200, high: 222400, average: 207629, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 3},
            'DNA database': {low: 210500, high: 242200, average: 227400, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 3},
            'Encrypted file sharing platform': {low: 117000, high: 122900, average: 119950, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 3},
            'Encrypted target list': {low: 141400, high: 169500, average: 156092, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 3},
            'Foreign exchange account': {low: 220100, high: 285800, average: 243070, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 3},
            'Immigration records': {low: 152000, high: 198300, average: 178248, bruteForceSuccessRate: 99, crackingSuccessRate: 96, encryption: 3},
            'Import / export records': {low: 160700, high: 247500, average: 201777, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 3},
            'Load balancing controller': {low: 190300, high: 233800, average: 211150, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 3},
            'Multi cluster ingress': {low: 229100, high: 273600, average: 245360, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 3},
            'Officer training records': {low: 100200, high: 149900, average: 122653, bruteForceSuccessRate: 99, crackingSuccessRate: 95, encryption: 3},
            'People of interest list': {low: 176300, high: 213800, average: 195714, bruteForceSuccessRate: 97, crackingSuccessRate: 97, encryption: 3},
            'Political donations ledger': {low: 204400, high: 296300, average: 250164, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 3},
            'Secure communications channel': {low: 133800, high: 227800, average: 181894, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 3},
            'Secure data-sharing portal': {low: 209300, high: 286800, average: 255265, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 3},
            'Sensitive financial ledger': {low: 120300, high: 198300, average: 166900, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 3},
            'Slush fund account': {low: 251200, high: 342400, average: 300679, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 3},
            'Stacked network switch': {low: 206600, high: 249900, average: 225675, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 3},
            'Surveillance network access': {low: 201700, high: 249400, average: 228154, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 3},
            'Surveillance records': {low: 125800, high: 173000, average: 150375, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 3},
            'Vacated properties register': {low: 150000, high: 199300, average: 172972, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 3},
            'Voting records': {low: 208100, high: 246200, average: 228600, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 3},
            'VRF router': {low: 259000, high: 266800, average: 262900, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 3},
            'Warrant database': {low: 150200, high: 196400, average: 180164, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 3},
            'Witness protection directory': {low: 350900, high: 498900, average: 422063, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 3},
            'API gateway': {low: 100600, high: 129200, average: 117322, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 2},
            'Business communications platform': {low: 111800, high: 128800, average: 121107, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 2},
            'Client directory': {low: 148700, high: 169900, average: 159825, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 2},
            'Corporate bank account': {low: 117300, high: 244200, average: 198804, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 2},
            'Digital storage platform': {low: 80000, high: 119400, average: 98992, bruteForceSuccessRate: 95, crackingSuccessRate: 100, encryption: 2},
            'Forum administrator access': {low: 71400, high: 112200, average: 90686, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 2},
            'Patent filing catalog': {low: 102000, high: 149500, average: 123724, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 2},
            'Payment processing portal': {low: 120400, high: 146900, average: 132786, bruteForceSuccessRate: 96, crackingSuccessRate: 100, encryption: 2},
            'Pre-release media bucket': {low: 91600, high: 296300, average: 110385, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 2},
            'Research & development databank': {low: 90600, high: 120000, average: 103853, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 2},
            'Reward code directory': {low: 80100, high: 118400, average: 99538, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 2},
            'Sales ledger': {low: 120300, high: 159200, average: 142827, bruteForceSuccessRate: 95, crackingSuccessRate: 100, encryption: 2},
            'Source code repository': {low: 80100, high: 117300, average: 97600, bruteForceSuccessRate: 96, crackingSuccessRate: 100, encryption: 2},
            'Version control system': {low: 60900, high: 121300, average: 71815, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 2},
            'Botnet command module': {low: 70200, high: 99500, average: 86456, bruteForceSuccessRate: 96, crackingSuccessRate: 99, encryption: 1},
            'Coroner post-mortem records': {low: 101300, high: 149200, average: 126707, bruteForceSuccessRate: 98, crackingSuccessRate: 98, encryption: 1},
            'Credit card records': {low: 101200, high: 145600, average: 124700, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 1},
            'Cryptocurrency mining cluster': {low: 93700, high: 149100, average: 123136, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 1},
            'Dark web storefront': {low: 102000, high: 199700, average: 151911, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 1},
            'Document storage platform': {low: 80800, high: 119000, average: 100915, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 1},
            'Drug test results': {low: 60500, high: 90000, average: 79062, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 1},
            'Enrollment documentation archive': {low: 60400, high: 78900, average: 70594, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 1},
            'Gore website': {low: 50100, high: 69900, average: 60896, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 1},
            'Government email account': {low: 87700, high: 95600, average: 92325, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 1},
            'Home printer cache': {low: 100000, high: 129500, average: 114549, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 1},
            'Lobbying minutes archive': {low: 81200, high: 136700, average: 94364, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 1},
            'Malpractice reports archive': {low: 80000, high: 99000, average: 88627, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 1},
            'Master password': {low: 72300, high: 139500, average: 117200, bruteForceSuccessRate: 96, crackingSuccessRate: 100, encryption: 1},
            'Medical records database': {low: 110600, high: 148100, average: 134443, bruteForceSuccessRate: 96, crackingSuccessRate: 100, encryption: 1},
            'Mental health records': {low: 40500, high: 59400, average: 50220, bruteForceSuccessRate: 94, crackingSuccessRate: 100, encryption: 1},
            'Network superadmin authentication': {low: 132400, high: 174400, average: 154907, bruteForceSuccessRate: 99, crackingSuccessRate: 97, encryption: 1},
            'Offshore tax account': {low: 63600, high: 119900, average: 106462, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 1},
            'Online filing system': {low: 66900, high: 100000, average: 89926, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 1},
            'Patient directory': {low: 89400, high: 129800, average: 118535, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 1},
            'Personal email account': {low: 50200, high: 71700, average: 58334, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 1},
            'Private email account': {low: 70300, high: 90000, average: 79596, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 1},
            'Private email account': {low: 60000, high: 79500, average: 69284, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 1},
            'Proxy server access': {low: 50900, high: 75100, average: 59685, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 1},
            'Software development hub': {low: 100300, high: 149900, average: 128420, bruteForceSuccessRate: 96, crackingSuccessRate: 100, encryption: 1},
            'Stolen credit card repository': {low: 81900, high: 119900, average: 98884, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 1},
            'Stolen password repository': {low: 50800, high: 69500, average: 59346, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 1},
            'Student grade records': {low: 70000, high: 89700, average: 80304, bruteForceSuccessRate: 98, crackingSuccessRate: 98, encryption: 1},
            'Student loan ledger': {low: 100100, high: 129800, average: 115202, bruteForceSuccessRate: 95, crackingSuccessRate: 100, encryption: 1},
            'Student personal records': {low: 60000, high: 77600, average: 69054, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 1},
            'Training records': {low: 41100, high: 67400, average: 51622, bruteForceSuccessRate: 94, crackingSuccessRate: 100, encryption: 1},
            'Union membership forum': {low: 60400, high: 80600, average: 70450, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 1},
            'Video comments log': {low: 63400, high: 117600, average: 98096, bruteForceSuccessRate: 96, crackingSuccessRate: 100, encryption: 1},
            'Voicemail account': {low: 60300, high: 88400, average: 71411, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 1},
            'VPN provider authentication': {low: 85400, high: 139700, average: 116998, bruteForceSuccessRate: 96, crackingSuccessRate: 100, encryption: 1},
            'Business communications platform': {low: 15100, high: 25000, average: 20181, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 0},
            'Calendar app': {low: 10100, high: 20000, average: 15127, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 0},
            'Cellphone call history': {low: 35000, high: 44600, average: 40486, bruteForceSuccessRate: 96, crackingSuccessRate: 100, encryption: 0},
            'Cellphone provider': {low: 10000, high: 20000, average: 15084, bruteForceSuccessRate: 96, crackingSuccessRate: 99, encryption: 0},
            'Clothing store account': {low: 20000, high: 30000, average: 24550, bruteForceSuccessRate: 95, crackingSuccessRate: 100, encryption: 0},
            'Cloud storage bucket': {low: 15100, high: 25000, average: 20427, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 0},
            'Cloud storage bucket': {low: 15000, high: 25000, average: 20378, bruteForceSuccessRate: 96, crackingSuccessRate: 100, encryption: 0},
            'Community Q&A site': {low: 30000, high: 40000, average: 34786, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 0},
            'Court docket library': {low: 40200, high: 79200, average: 62388, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 0},
            'Criminal records archive': {low: 50200, high: 86700, average: 63844, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 0},
            'Crowdfunding account': {low: 10000, high: 20000, average: 15001, bruteForceSuccessRate: 98, crackingSuccessRate: 98, encryption: 0},
            'Cryptocurrency exchange': {low: 15600, high: 29400, average: 24636, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 0},
            'Cryptocurrency exchange': {low: 20000, high: 29900, average: 25201, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 0},
            'Dating site': {low: 10600, high: 24600, average: 15433, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 0},
            'Dental records': {low: 30700, high: 39600, average: 34080, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 0},
            'Escort service website': {low: 15100, high: 25000, average: 19866, bruteForceSuccessRate: 96, crackingSuccessRate: 100, encryption: 0},
            'Fantasy sports account': {low: 10000, high: 19800, average: 14799, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 0},
            'Fitness tracker': {low: 10100, high: 19800, average: 15392, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 0},
            'Game streaming account': {low: 10700, high: 22600, average: 15271, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 0},
            'High school records': {low: 11900, high: 73900, average: 40247, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 0},
            'HOA records': {low: 10400, high: 20000, average: 15741, bruteForceSuccessRate: 95, crackingSuccessRate: 100, encryption: 0},
            'Home network access': {low: 30100, high: 39800, average: 35641, bruteForceSuccessRate: 95, crackingSuccessRate: 98, encryption: 0},
            'Home router access': {low: 20200, high: 29300, average: 24261, bruteForceSuccessRate: 95, crackingSuccessRate: 97, encryption: 0},
            'Home security system': {low: 12400, high: 44500, average: 39676, bruteForceSuccessRate: 95, crackingSuccessRate: 100, encryption: 0},
            'Home security system': {low: 10200, high: 24800, average: 19916, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 0},
            'Home wi-fi network': {low: 10200, high: 20000, average: 14829, bruteForceSuccessRate: 94, crackingSuccessRate: 100, encryption: 0},
            'Image board account': {low: 15000, high: 37300, average: 20488, bruteForceSuccessRate: 97, crackingSuccessRate: 99, encryption: 0},
            'Instant messenger': {low: 11500, high: 24300, average: 18845, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 0},
            'Legal advice portal': {low: 20400, high: 30000, average: 26320, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 0},
            'Mental health records': {low: 31500, high: 50000, average: 45165, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 0},
            'MMORPG Account': {low: 15100, high: 25000, average: 20183, bruteForceSuccessRate: 94, crackingSuccessRate: 100, encryption: 0},
            'Mortuary records': {low: 100800, high: 139200, average: 120411, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 0},
            'Music streaming service': {low: 11200, high: 19900, average: 15910, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 0},
            'Nanny-cam access': {low: 15000, high: 39400, average: 20657, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 0},
            'Offshore investment account': {low: 20000, high: 29800, average: 25066, bruteForceSuccessRate: 95, crackingSuccessRate: 98, encryption: 0},
            'Online auction account': {low: 20100, high: 29700, average: 25072, bruteForceSuccessRate: 95, crackingSuccessRate: 100, encryption: 0},
            'Online bank account': {low: 20000, high: 29700, average: 25175, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 0},
            'Online bank account': {low: 37500, high: 49600, average: 44363, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 0},
            'Online forum account': {low: 10200, high: 19800, average: 14626, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 0},
            'Online gambling account': {low: 10000, high: 19500, average: 15113, bruteForceSuccessRate: 95, crackingSuccessRate: 100, encryption: 0},
            'Online payment service': {low: 20100, high: 30000, average: 25263, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 0},
            'Online pharmacy account': {low: 10000, high: 19900, average: 14944, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 0},
            'Online photo collection': {low: 24100, high: 40000, average: 34531, bruteForceSuccessRate: 94, crackingSuccessRate: 98, encryption: 0},
            'Online RPG account': {low: 15100, high: 45300, average: 20823, bruteForceSuccessRate: 94, crackingSuccessRate: 99, encryption: 0},
            'Online therapy account': {low: 10100, high: 23700, average: 15316, bruteForceSuccessRate: 90, crackingSuccessRate: 100, encryption: 0},
            'Online wishlist': {low: 11700, high: 30000, average: 24717, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 0},
            'Patient database': {low: 55800, high: 79900, average: 71049, bruteForceSuccessRate: 98, crackingSuccessRate: 98, encryption: 0},
            'Personal blog': {low: 10000, high: 27200, average: 14942, bruteForceSuccessRate: 98, crackingSuccessRate: 99, encryption: 0},
            'Personal email account': {low: 10100, high: 19800, average: 15538, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 0},
            'Personal email account': {low: 30300, high: 126200, average: 37084, bruteForceSuccessRate: 95, crackingSuccessRate: 100, encryption: 0},
            'Personal email account': {low: 60100, high: 100000, average: 80948, bruteForceSuccessRate: 95, crackingSuccessRate: 100, encryption: 0},
            'Personal website': {low: 15300, high: 24800, average: 20023, bruteForceSuccessRate: 94, crackingSuccessRate: 98, encryption: 0},
            'Political party hub': {low: 20000, high: 30000, average: 24705, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 0},
            'Porn site': {low: 15000, high: 29200, average: 19966, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 0},
            'Portfolio website': {low: 11400, high: 34600, average: 20291, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 0},
            'Prescription generating software': {low: 35100, high: 65300, average: 43167, bruteForceSuccessRate: 96, crackingSuccessRate: 100, encryption: 0},
            'Search engine history': {low: 10000, high: 31600, average: 15719, bruteForceSuccessRate: 97, crackingSuccessRate: 100, encryption: 0},
            'Secure filing system': {low: 47500, high: 91400, average: 59928, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 0},
            'Sentencing history database': {low: 41100, high: 59200, average: 51450, bruteForceSuccessRate: 93, crackingSuccessRate: 93, encryption: 0},
            'Smart heating controls': {low: 10000, high: 57000, average: 15701, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 0},
            'Smart pet feeder': {low: 10400, high: 44900, average: 16180, bruteForceSuccessRate: 94, crackingSuccessRate: 100, encryption: 0},
            'Social media account': {low: 17500, high: 30000, average: 24712, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 0},
            'Social network profile': {low: 10000, high: 20600, average: 15343, bruteForceSuccessRate: 99, crackingSuccessRate: 98, encryption: 0},
            'Stock trading platform': {low: 20000, high: 30000, average: 24541, bruteForceSuccessRate: 98, crackingSuccessRate: 98, encryption: 0},
            'Takeout delivery app': {low: 10000, high: 20000, average: 15400, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 0},
            'University network authentication': {low: 15000, high: 25000, average: 19806, bruteForceSuccessRate: 99, crackingSuccessRate: 100, encryption: 0},
            'Video calling app': {low: 15000, high: 25000, average: 20123, bruteForceSuccessRate: 98, crackingSuccessRate: 99, encryption: 0},
            'Video game storefront': {low: 11600, high: 25000, average: 20248, bruteForceSuccessRate: 95, crackingSuccessRate: 99, encryption: 0},
            'Webcam network access': {low: 40300, high: 49900, average: 44545, bruteForceSuccessRate: 93, crackingSuccessRate: 100, encryption: 0},
            'Work disciplinary records': {low: 30300, high: 62700, average: 35500, bruteForceSuccessRate: 100, crackingSuccessRate: 100, encryption: 0},
            'Work email account': {low: 20000, high: 29900, average: 25164, bruteForceSuccessRate: 98, crackingSuccessRate: 100, encryption: 0},
            'Work email account': {low: 15000, high: 29400, average: 19904, bruteForceSuccessRate: 97, crackingSuccessRate: 99, encryption: 0},
            'Remote PC access': {low: 20600, high: 48000, average: 25097, bruteForceSuccessRate: 96, crackingSuccessRate: 100, encryption: 0},
        }
    };

    function fetchCrimeName() {
        let contentWrapper = document.querySelector('.content-wrapper');

        if(!contentWrapper) {
            return;
        }

        let crimeHeader = document.querySelector('.heading___dOsMq');
        let crimeName = crimeHeader.textContent;

        if (crimeName == 'Disposal') {
            fetchDisposals();
            sortButton('disposal');
        } else if (crimeName == 'Cracking') {
            fetchCrackings();
            sortButton('cracking');
        }

    }

    function fetchDisposals() {
        let highestPayoutElements = [];
        let bestPayoutPerNerve = 0;

        let crimeOptionElements = document.querySelectorAll('.crime-option');

        let existingPayoutElements = document.querySelectorAll('.hf-disposal-payout');

        // If there's already payout divs, remove them first
        if (existingPayoutElements) {
            existingPayoutElements.forEach(existingPayoutElement => {
                existingPayoutElement.remove();
            });
        }

        // Loop through each Disposal crime
        crimeOptionElements.forEach(crimeOptionElement => {
            // Log the name
            let crimeTitleElement = crimeOptionElement.querySelector('.crimeOptionSection___hslpu');
            let crimeTitle = crimeTitleElement.textContent.trim();

            // Check if any method button is selected
            let methodButtons = crimeOptionElement.querySelectorAll('.methodButton___lCgpf');

            // Create the payout div
            let payoutElement = document.createElement('div');
            payoutElement.className = 'hf-disposal-payout';
            payoutElement.style.display = 'flex';
            payoutElement.style.flex = '1';
            payoutElement.style.flexDirection = 'column';
            payoutElement.style.alignItems = 'flex-end';
            payoutElement.style.color = 'var(--default-base-grey1-color)';
            crimeTitleElement.appendChild(payoutElement);

            // Create the paragraph for the amount
            let payoutParagraph = document.createElement('p');
            payoutParagraph.className = 'hf-disposal-payout-amount';
            payoutParagraph.textContent = 'Unknown';
            payoutElement.appendChild(payoutParagraph);

            let selectedButton = false;
            let moneyPerNerve = '';

            // Go through every button and see if they're selected or not
            methodButtons.forEach(button => {
                if (button.classList.contains('selected___TKH3R')) {
                    let methodName = button.getAttribute('aria-label');

                    let selectedData = disposalData.find(data => data.name === crimeTitle && data.method === methodName);

                    if (selectedData) {
                        selectedButton = true;

                        let averageMoney = selectedData.averageMoney;
                        let successRate = selectedData.successRate;
                        let nerveAmount = selectedData.nerveAmount;

                        moneyPerNerve = (averageMoney * successRate) / nerveAmount;

                        if (moneyPerNerve === 0) {
                            payoutParagraph.textContent = 'Unknown';
                        } else {
                            let formattedMoneyPerNerve = '$' + Math.round(moneyPerNerve).toLocaleString('en-US');
                            payoutParagraph.textContent = formattedMoneyPerNerve;
                        }

                        if (moneyPerNerve > bestPayoutPerNerve) {
                            bestPayoutPerNerve = moneyPerNerve;
                            highestPayoutElements = [crimeOptionElement];
                        } else if (bestPayoutPerNerve === moneyPerNerve) {
                            highestPayoutElements.push(crimeOptionElement);
                        }
                    } else {
                        console.log('No corresponding data found');
                    }
                }
            });

            // If not selected, look for the best method for $ / nerve
            if (selectedButton == false) {
                let bestMoneyPerNerve = 0;
                let bestMethod = 'Unknown';
                payoutParagraph.textContent = 'Best';

                disposalData.forEach(data => {
                    if (data.name == crimeTitle) {
                        moneyPerNerve = (data.averageMoney * data.successRate) / data.nerveAmount;

                        if (moneyPerNerve > bestMoneyPerNerve) {
                            bestMoneyPerNerve = moneyPerNerve;
                            bestMethod = data.method;
                        }

                        if (bestMoneyPerNerve === 0) {
                            payoutParagraph.textContent = 'Unknown';
                        }

                        if (bestMoneyPerNerve > bestPayoutPerNerve) {
                            bestPayoutPerNerve = moneyPerNerve;
                            highestPayoutElements = [crimeOptionElement];
                        } else if (bestPayoutPerNerve === moneyPerNerve) {
                            highestPayoutElements.push(crimeOptionElement);
                        }

                    }
                });

                // Write down the best method above the money per nerve
                let bestMethodParagraph = document.createElement('p');
                bestMethodParagraph.textContent = bestMethod;
                bestMethodParagraph.style.paddingBottom = '4px';
                payoutParagraph.parentNode.insertBefore(bestMethodParagraph, payoutParagraph);

                let formattedMoneyPerNerve = '$' + Math.round(bestMoneyPerNerve).toLocaleString('en-US');
                payoutParagraph.textContent = formattedMoneyPerNerve;
            }
        });

        // Unhighlight previous crime options
        crimeOptionElements.forEach(element => {
            element.style.background = '';
        });

        // Highlight the crime options with the highest payout
        highestPayoutElements.forEach(element => {
            element.style.background = 'linear-gradient(180deg, rgba(108, 173, 43, 0.5), rgba(77, 124, 30, 0.5))';
        });

    }

    function fetchCrackings() {
        let highestPayoutValue = 0;
        let highestPayoutElements = [];

        let rigStatusElement = document.querySelector('.rigStatus___PyA3T');
        let bruteForceStrengthElement = rigStatusElement.querySelector('.strength___DM3lW');
        let bruteForceStrength = bruteForceStrengthElement.querySelector('.value___FmWPr').textContent;

        let previousPayoutDivs = document.querySelectorAll('.payoutPerNerve');

        if (previousPayoutDivs) {
            previousPayoutDivs.forEach(element => {
                element.remove();
            });
        }

        let crimeOptionElements = document.querySelectorAll('.crime-option');
        crimeOptionElements.forEach(crimeOptionElement => {
            let targetElement = crimeOptionElement.querySelector('.targetSection___F_nB4');

            let crimeTypeElement = '';

            if (crackingDetailed == false) {
                crimeTypeElement = targetElement.querySelector('.type___T9oMA');
            } else if (crackingDetailed == true) {
                crimeTypeElement = targetElement.querySelector('.service___uYhDL');
            }

            let crimeType = crimeTypeElement.textContent;

            let passwordLength = crimeOptionElement.querySelectorAll('.charSlot___b_S9h').length;

            if (crackingValues.hasOwnProperty(crimeType)) {
                let lowReward = crackingValues[crimeType].low;
                let highReward = crackingValues[crimeType].high;

                let averageReward = '';

                if (crackingDetailed == false) {
                    averageReward = (lowReward + highReward) / 2;
                } else if (crackingDetailed == true) {
                    averageReward = crackingValues[crimeType].average;
                }

                let encryption = crackingValues[crimeType].encryption;

                let payoutPerNerve = '';
                let tries = '';

                if (crackingDetailed == false) {
                    tries = Math.ceil((passwordLength * (encryption + 1)) / bruteForceStrength);
                    payoutPerNerve = averageReward / ((7 * tries) + 5);
                } else if (crackingDetailed == true) {
                    let bruteForceSuccessRate = (crackingValues[crimeType].bruteForceSuccessRate / 100) || 1;
                    let crackingSuccessRate = (crackingValues[crimeType].crackingSuccessRate / 100) || 1;
                    tries = (passwordLength * (encryption + 1)) / (bruteForceStrength * bruteForceSuccessRate);
                    let totalNerve = (7 * tries + 5) / crackingSuccessRate;
                    payoutPerNerve = averageReward / totalNerve;
                }

                let formattedPayoutPerNerve = '$' + Math.round(payoutPerNerve).toLocaleString('en-US');

                let payoutDiv = document.createElement('div');
                payoutDiv.className = 'payoutPerNerve';
                payoutDiv.textContent = formattedPayoutPerNerve;
                payoutDiv.style.display = 'flex';
                payoutDiv.style.flex = '1';
                payoutDiv.style.justifyContent = 'right';

                targetElement.appendChild(payoutDiv);

                // Update highest payout
                if (payoutPerNerve > highestPayoutValue) {
                    highestPayoutValue = payoutPerNerve;
                    highestPayoutElements = [crimeOptionElement];
                } else if (payoutPerNerve === highestPayoutValue) {
                    highestPayoutElements.push(crimeOptionElement);
                }
            }
        });

        crimeOptionElements.forEach(element => {
            element.style.background = '';
        });

        // Highlight the crime options with the highest payout
        highestPayoutElements.forEach(element => {
            element.style.background = 'linear-gradient(180deg, rgba(108, 173, 43, 0.5), rgba(77, 124, 30, 0.5))';
        });
    }

    function sortButton(key) {
        let currentCrime = document.body.querySelector('.currentCrime___MN0T1');
        let titleBar = currentCrime.querySelector('.titleBar___Cci85');

        let existingDiv = document.body.querySelector('.sort-button-div');

        if (existingDiv) {
            return;
        }

        let div = document.createElement('div');
        div.className = 'sort-button-div';
        div.style.display = 'flex';
        div.style.flex = '2';
        div.style.marginLeft = '8px';

        let button = document.createElement('button');
        button.textContent = 'SORT BY VALUE';
        button.style.background = 'linear-gradient(180deg, #008dc3c7, #001f4bad)';
        button.style.color = '#ddd';
        button.style.borderRadius = '10px';
        button.style.borderStyle = 'none';
        button.style.padding = '4px 8px';
        button.style.fontSize = '12px';
        button.style.fontWeight = 'bold';
        button.style.cursor = 'pointer';

        div.appendChild(button);

        titleBar.insertBefore(div, titleBar.lastElementChild);

        button.onclick = function() {
            let container = document.querySelector('.crimeOptionGroup___gQ6rI');
            let crimeOptionElements = document.querySelectorAll('.crime-option');
            let crimeOptionArray = Array.from(crimeOptionElements);

            // Sort the crime options
            let sortedCrimeOptions = crimeOptionArray.sort((a, b) => {
                let payoutA;
                let payoutB;
                if (key === 'cracking') {
                    payoutA = parseInt(a.querySelector('.payoutPerNerve').textContent.replace('$', '').replace(',', '').trim()) || 0;
                    payoutB = parseInt(b.querySelector('.payoutPerNerve').textContent.replace('$', '').replace(',', '').trim()) || 0;
                } else if (key === 'disposal') {
                    payoutA = parseInt(a.querySelector('.hf-disposal-payout-amount').textContent.replace('$', '').replace(',', '').trim()) || 0;
                    payoutB = parseInt(b.querySelector('.hf-disposal-payout-amount').textContent.replace('$', '').replace(',', '').trim()) || 0;
                }
                return payoutB - payoutA;
            });

            // Append the sorted crime options
            sortedCrimeOptions.forEach(option => {
                container.appendChild(option)
            });
        };
    }

    function checkUrl() {
        if (window.location.href.includes('crimes')) {
            fetchCrimeName();
        }
    }

    setInterval(checkUrl, 200);

})();