Neopets Hidden Shopkeepers

Access shopkeeper options that Neopets.com has hidden

当前为 2024-10-14 提交的版本,查看 最新版本

// ==UserScript==
// @name         Neopets Hidden Shopkeepers
// @version      2024.10.14
// @description  Access shopkeeper options that Neopets.com has hidden
// @match        https://www.neopets.com/select_shopkeeper.phtml*
// @icon         https://images.neopets.com/new_shopkeepers/t_1900.gif
// @author       Posterboy
// @namespace    https://gf.qytechs.cn/users/1277376
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

// Define categories and their images
const categories = {
    Faeries: [
        { src: 'https://images.neopets.com/new_shopkeepers/t_1000.gif', name: 'Faerie 1', value: '1000' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1012.gif', name: 'Faerie 2', value: '1012' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1017.gif', name: 'Faerie 3', value: '1017' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1018.gif', name: 'Faerie 4', value: '1018' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1019.gif', name: 'Faerie 5', value: '1019' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1020.gif', name: 'Faerie 6', value: '1020' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1128.gif', name: 'Faerie 7', value: '1128' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1129.gif', name: 'Faerie 8', value: '1129' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1130.gif', name: 'Faerie 9', value: '1130' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1131.gif', name: 'Faerie 10', value: '1131' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_122.gif', name: 'Faerie 11', value: '122' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1222.gif', name: 'Faerie 12', value: '1222' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1224.gif', name: 'Faerie 13', value: '1224' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1254.gif', name: 'Faerie 14', value: '1254' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1307.gif', name: 'Faerie 15', value: '1307' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1308.gif', name: 'Faerie 16', value: '1308' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1309.gif', name: 'Faerie 17', value: '1309' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1432.gif', name: 'Faerie 18', value: '1432' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1433.gif', name: 'Faerie 19', value: '1433' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1434.gif', name: 'Faerie 20', value: '1434' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1435.gif', name: 'Faerie 21', value: '1435' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1498.gif', name: 'Faerie 22', value: '1498' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1499.gif', name: 'Faerie 23', value: '1499' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1500.gif', name: 'Faerie 24', value: '1500' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1530.gif', name: 'Faerie 25', value: '1530' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1531.gif', name: 'Faerie 26', value: '1531' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1532.gif', name: 'Faerie 27', value: '1532' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_1533.gif', name: 'Faerie 28', value: '1533' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_199.gif', name: 'Faerie 29', value: '199' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_202.gif', name: 'Faerie 30', value: '202' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_203.gif', name: 'Faerie 31', value: '203' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_204.gif', name: 'Faerie 32', value: '204' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_206.gif', name: 'Faerie 33', value: '206' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_207.gif', name: 'Faerie 34', value: '207' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_2130.gif', name: 'Faerie 35', value: '2130' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_2131.gif', name: 'Faerie 36', value: '2131' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_29.gif', name: 'Faerie 37', value: '29' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_318.gif', name: 'Faerie 38', value: '318' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_319.gif', name: 'Faerie 39', value: '319' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_320.gif', name: 'Faerie 40', value: '320' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_321.gif', name: 'Faerie 41', value: '321' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_322.gif', name: 'Faerie 42', value: '322' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_323.gif', name: 'Faerie 43', value: '323' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_330.gif', name: 'Faerie 44', value: '330' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_333.gif', name: 'Faerie 45', value: '333' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_334.gif', name: 'Faerie 46', value: '334' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_336.gif', name: 'Faerie 47', value: '336' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_847.gif', name: 'Faerie 48', value: '847' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_848.gif', name: 'Faerie 49', value: '848' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_849.gif', name: 'Faerie 50', value: '849' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_887.gif', name: 'Faerie 51', value: '887' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_888.gif', name: 'Faerie 52', value: '888' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_889.gif', name: 'Faerie 53', value: '889' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_890.gif', name: 'Faerie 54', value: '890' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_891.gif', name: 'Faerie 55', value: '891' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_892.gif', name: 'Faerie 56', value: '892' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_893.gif', name: 'Faerie 57', value: '893' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_894.gif', name: 'Faerie 58', value: '894' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_895.gif', name: 'Faerie 59', value: '895' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_903.gif', name: 'Faerie 60', value: '903' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_904.gif', name: 'Faerie 61', value: '904' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_905.gif', name: 'Faerie 62', value: '905' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_914.gif', name: 'Faerie 63', value: '914' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_915.gif', name: 'Faerie 64', value: '915' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_916.gif', name: 'Faerie 65', value: '916' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_933.gif', name: 'Faerie 66', value: '933' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_934.gif', name: 'Faerie 67', value: '934' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_935.gif', name: 'Faerie 68', value: '935' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_936.gif', name: 'Faerie 69', value: '936' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_950.gif', name: 'Faerie 70', value: '950' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_997.gif', name: 'Faerie 71', value: '997' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_998.gif', name: 'Faerie 72', value: '998' },
        { src: 'https://images.neopets.com/new_shopkeepers/t_999.gif', name: 'Faerie 73', value: '999' }
    ],
    Petpets: [
        { src: 'https://images.neopets.com/new_shopkeepers/2180.gif', name: 'Petpet 1', value: '2180' },
        { src: 'https://images.neopets.com/new_shopkeepers/2181.gif', name: 'Petpet 2', value: '2181' },
        { src: 'https://images.neopets.com/new_shopkeepers/2186.gif', name: 'Petpet 3', value: '2186' },
        { src: 'https://images.neopets.com/new_shopkeepers/2187.gif', name: 'Petpet 4', value: '2187' },
        { src: 'https://images.neopets.com/new_shopkeepers/2188.gif', name: 'Petpet 5', value: '2188' },
        { src: 'https://images.neopets.com/new_shopkeepers/2190.gif', name: 'Petpet 6', value: '2190' },
        { src: 'https://images.neopets.com/new_shopkeepers/2191.gif', name: 'Petpet 7', value: '2191' },
        { src: 'https://images.neopets.com/new_shopkeepers/2194.gif', name: 'Petpet 8', value: '2194' },
        { src: 'https://images.neopets.com/new_shopkeepers/2196.gif', name: 'Petpet 9', value: '2196' },
        { src: 'https://images.neopets.com/new_shopkeepers/2197.gif', name: 'Petpet 10', value: '2197' },
        { src: 'https://images.neopets.com/new_shopkeepers/2202.gif', name: 'Petpet 11', value: '2202' },
        { src: 'https://images.neopets.com/new_shopkeepers/2203.gif', name: 'Petpet 12', value: '2203' },
        { src: 'https://images.neopets.com/new_shopkeepers/2206.gif', name: 'Petpet 13', value: '2206' },
        { src: 'https://images.neopets.com/new_shopkeepers/2207.gif', name: 'Petpet 14', value: '2207' },
        { src: 'https://images.neopets.com/new_shopkeepers/2212.gif', name: 'Petpet 15', value: '2212' },
        { src: 'https://images.neopets.com/new_shopkeepers/2213.gif', name: 'Petpet 16', value: '2213' },
        { src: 'https://images.neopets.com/new_shopkeepers/2214.gif', name: 'Petpet 17', value: '2214' },
        { src: 'https://images.neopets.com/new_shopkeepers/2215.gif', name: 'Petpet 18', value: '2215' },
        { src: 'https://images.neopets.com/new_shopkeepers/2218.gif', name: 'Petpet 19', value: '2218' },
        { src: 'https://images.neopets.com/new_shopkeepers/2221.gif', name: 'Petpet 20', value: '2221' },
        { src: 'https://images.neopets.com/new_shopkeepers/2222.gif', name: 'Petpet 21', value: '2222' },
        { src: 'https://images.neopets.com/new_shopkeepers/2226.gif', name: 'Petpet 22', value: '2226' },
        { src: 'https://images.neopets.com/new_shopkeepers/2227.gif', name: 'Petpet 23', value: '2227' },
        { src: 'https://images.neopets.com/new_shopkeepers/2229.gif', name: 'Petpet 24', value: '2229' },
        { src: 'https://images.neopets.com/new_shopkeepers/2230.gif', name: 'Petpet 25', value: '2230' },
        { src: 'https://images.neopets.com/new_shopkeepers/2231.gif', name: 'Petpet 26', value: '2231' },
        { src: 'https://images.neopets.com/new_shopkeepers/2235.gif', name: 'Petpet 27', value: '2235' },
        { src: 'https://images.neopets.com/new_shopkeepers/2236.gif', name: 'Petpet 28', value: '2236' },
        { src: 'https://images.neopets.com/new_shopkeepers/224.gif', name: 'Petpet 29', value: '224' },
        { src: 'https://images.neopets.com/new_shopkeepers/2244.gif', name: 'Petpet 30', value: '2244' },
        { src: 'https://images.neopets.com/new_shopkeepers/2245.gif', name: 'Petpet 31', value: '2245' },
        { src: 'https://images.neopets.com/new_shopkeepers/2246.gif', name: 'Petpet 32', value: '2246' },
        { src: 'https://images.neopets.com/new_shopkeepers/2253.gif', name: 'Petpet 33', value: '2253' },
        { src: 'https://images.neopets.com/new_shopkeepers/2255.gif', name: 'Petpet 34', value: '2255' },
        { src: 'https://images.neopets.com/new_shopkeepers/2268.gif', name: 'Petpet 35', value: '2268' },
        { src: 'https://images.neopets.com/new_shopkeepers/630.gif', name: 'Petpet 36', value: '630' },
        { src: 'https://images.neopets.com/new_shopkeepers/631.gif', name: 'Petpet 37', value: '631' },
        { src: 'https://images.neopets.com/new_shopkeepers/632.gif', name: 'Petpet 38', value: '632' },
        { src: 'https://images.neopets.com/new_shopkeepers/633.gif', name: 'Petpet 39', value: '633' },
        { src: 'https://images.neopets.com/new_shopkeepers/638.gif', name: 'Petpet 40', value: '638' },
        { src: 'https://images.neopets.com/new_shopkeepers/639.gif', name: 'Petpet 41', value: '639' },
        { src: 'https://images.neopets.com/new_shopkeepers/640.gif', name: 'Petpet 42', value: '640' },
        { src: 'https://images.neopets.com/new_shopkeepers/641.gif', name: 'Petpet 43', value: '641' },
        { src: 'https://images.neopets.com/new_shopkeepers/743.gif', name: 'Petpet 44', value: '743' },
        { src: 'https://images.neopets.com/new_shopkeepers/744.gif', name: 'Petpet 45', value: '744' },
        { src: 'https://images.neopets.com/new_shopkeepers/745.gif', name: 'Petpet 46', value: '745' },
        { src: 'https://images.neopets.com/new_shopkeepers/749.gif', name: 'Petpet 47', value: '749' },
        { src: 'https://images.neopets.com/new_shopkeepers/812.gif', name: 'Petpet 48', value: '812' },
        { src: 'https://images.neopets.com/new_shopkeepers/813.gif', name: 'Petpet 49', value: '813' },
        { src: 'https://images.neopets.com/new_shopkeepers/814.gif', name: 'Petpet 50', value: '814' },
        { src: 'https://images.neopets.com/new_shopkeepers/815.gif', name: 'Petpet 51', value: '815' },
        { src: 'https://images.neopets.com/new_shopkeepers/819.gif', name: 'Petpet 52', value: '819' },
        { src: 'https://images.neopets.com/new_shopkeepers/820.gif', name: 'Petpet 53', value: '820' },
        { src: 'https://images.neopets.com/new_shopkeepers/821.gif', name: 'Petpet 54', value: '821' },
        { src: 'https://images.neopets.com/new_shopkeepers/822.gif', name: 'Petpet 55', value: '822' },
        { src: 'https://images.neopets.com/new_shopkeepers/861.gif', name: 'Petpet 56', value: '861' },
        { src: 'https://images.neopets.com/new_shopkeepers/911.gif', name: 'Petpet 57', value: '911' },
        { src: 'https://images.neopets.com/new_shopkeepers/912.gif', name: 'Petpet 58', value: '912' },
        { src: 'https://images.neopets.com/new_shopkeepers/913.gif', name: 'Petpet 59', value: '913' },
        { src: 'https://images.neopets.com/new_shopkeepers/937.gif', name: 'Petpet 60', value: '937' },
        { src: 'https://images.neopets.com/new_shopkeepers/938.gif', name: 'Petpet 61', value: '938' },
        { src: 'https://images.neopets.com/new_shopkeepers/939.gif', name: 'Petpet 62', value: '939' },
        { src: 'https://images.neopets.com/new_shopkeepers/940.gif', name: 'Petpet 63', value: '940' },
        { src: 'https://images.neopets.com/new_shopkeepers/941.gif', name: 'Petpet 64', value: '941' },
        { src: 'https://images.neopets.com/new_shopkeepers/942.gif', name: 'Petpet 65', value: '942' },
        { src: 'https://images.neopets.com/new_shopkeepers/946.gif', name: 'Petpet 66', value: '946' },
        { src: 'https://images.neopets.com/new_shopkeepers/947.gif', name: 'Petpet 67', value: '947' },
        { src: 'https://images.neopets.com/new_shopkeepers/948.gif', name: 'Petpet 68', value: '948' },
        { src: 'https://images.neopets.com/new_shopkeepers/949.gif', name: 'Petpet 69', value: '949' },
        { src: 'https://images.neopets.com/new_shopkeepers/1848.gif', name: 'Petpet 70', value: '1848' },
        { src: 'https://images.neopets.com/new_shopkeepers/1849.gif', name: 'Petpet 71', value: '1849' },
        { src: 'https://images.neopets.com/new_shopkeepers/1850.gif', name: 'Petpet 72', value: '1850' },
        { src: 'https://images.neopets.com/new_shopkeepers/1871.gif', name: 'Petpet 73', value: '1871' },
        { src: 'https://images.neopets.com/new_shopkeepers/1872.gif', name: 'Petpet 74', value: '1872' },
        { src: 'https://images.neopets.com/new_shopkeepers/1873.gif', name: 'Petpet 75', value: '1873' },
        { src: 'https://images.neopets.com/new_shopkeepers/1874.gif', name: 'Petpet 76', value: '1874' },
        { src: 'https://images.neopets.com/new_shopkeepers/1883.gif', name: 'Petpet 77', value: '1883' },
        { src: 'https://images.neopets.com/new_shopkeepers/1884.gif', name: 'Petpet 78', value: '1884' },
        { src: 'https://images.neopets.com/new_shopkeepers/1885.gif', name: 'Petpet 79', value: '1885' },
        { src: 'https://images.neopets.com/new_shopkeepers/1886.gif', name: 'Petpet 80', value: '1886' },
        { src: 'https://images.neopets.com/new_shopkeepers/1891.gif', name: 'Petpet 81', value: '1891' },
        { src: 'https://images.neopets.com/new_shopkeepers/1892.gif', name: 'Petpet 82', value: '1892' },
        { src: 'https://images.neopets.com/new_shopkeepers/1893.gif', name: 'Petpet 83', value: '1893' },
        { src: 'https://images.neopets.com/new_shopkeepers/1894.gif', name: 'Petpet 84', value: '1894' },
        { src: 'https://images.neopets.com/new_shopkeepers/1955.gif', name: 'Petpet 85', value: '1955' },
        { src: 'https://images.neopets.com/new_shopkeepers/1967.gif', name: 'Petpet 86', value: '1967' },
        { src: 'https://images.neopets.com/new_shopkeepers/2048.gif', name: 'Petpet 87', value: '2048' },
        { src: 'https://images.neopets.com/new_shopkeepers/2049.gif', name: 'Petpet 88', value: '2049' },
        { src: 'https://images.neopets.com/new_shopkeepers/2068.gif', name: 'Petpet 89', value: '2068' },
        { src: 'https://images.neopets.com/new_shopkeepers/2069.gif', name: 'Petpet 90', value: '2069' },
        { src: 'https://images.neopets.com/new_shopkeepers/2070.gif', name: 'Petpet 91', value: '2070' },
        { src: 'https://images.neopets.com/new_shopkeepers/2071.gif', name: 'Petpet 92', value: '2071' },
        { src: 'https://images.neopets.com/new_shopkeepers/2089.gif', name: 'Petpet 93', value: '2089' },
        { src: 'https://images.neopets.com/new_shopkeepers/2090.gif', name: 'Petpet 94', value: '2090' },
        { src: 'https://images.neopets.com/new_shopkeepers/2091.gif', name: 'Petpet 95', value: '2091' },
        { src: 'https://images.neopets.com/new_shopkeepers/2114.gif', name: 'Petpet 96', value: '2114' },
        { src: 'https://images.neopets.com/new_shopkeepers/2115.gif', name: 'Petpet 97', value: '2115' },
        { src: 'https://images.neopets.com/new_shopkeepers/2154.gif', name: 'Petpet 98', value: '2154' },
        { src: 'https://images.neopets.com/new_shopkeepers/2155.gif', name: 'Petpet 99', value: '2155' },
        { src: 'https://images.neopets.com/new_shopkeepers/2157.gif', name: 'Petpet 100', value: '2157' },
        { src: 'https://images.neopets.com/new_shopkeepers/2164.gif', name: 'Petpet 101', value: '2164' },
        { src: 'https://images.neopets.com/new_shopkeepers/2165.gif', name: 'Petpet 102', value: '2165' },
        { src: 'https://images.neopets.com/new_shopkeepers/2168.gif', name: 'Petpet 103', value: '2168' },
        { src: 'https://images.neopets.com/new_shopkeepers/2169.gif', name: 'Petpet 104', value: '2169' }
    ],
    Petpets2: [
        { src: 'https://images.neopets.com/new_shopkeepers/1025.gif', name: 'Shopkeeper 1', value: '1025' },
        { src: 'https://images.neopets.com/new_shopkeepers/1029.gif', name: 'Shopkeeper 2', value: '1029' },
        { src: 'https://images.neopets.com/new_shopkeepers/1030.gif', name: 'Shopkeeper 3', value: '1030' },
        { src: 'https://images.neopets.com/new_shopkeepers/1031.gif', name: 'Shopkeeper 4', value: '1031' },
        { src: 'https://images.neopets.com/new_shopkeepers/1040.gif', name: 'Shopkeeper 5', value: '1040' },
        { src: 'https://images.neopets.com/new_shopkeepers/1041.gif', name: 'Shopkeeper 6', value: '1041' },
        { src: 'https://images.neopets.com/new_shopkeepers/1042.gif', name: 'Shopkeeper 7', value: '1042' },
        { src: 'https://images.neopets.com/new_shopkeepers/1043.gif', name: 'Shopkeeper 8', value: '1043' },
        { src: 'https://images.neopets.com/new_shopkeepers/1070.gif', name: 'Shopkeeper 9', value: '1070' },
        { src: 'https://images.neopets.com/new_shopkeepers/1071.gif', name: 'Shopkeeper 10', value: '1071' },
        { src: 'https://images.neopets.com/new_shopkeepers/1072.gif', name: 'Shopkeeper 11', value: '1072' },
        { src: 'https://images.neopets.com/new_shopkeepers/1073.gif', name: 'Shopkeeper 12', value: '1073' },
        { src: 'https://images.neopets.com/new_shopkeepers/1074.gif', name: 'Shopkeeper 13', value: '1074' },
        { src: 'https://images.neopets.com/new_shopkeepers/1075.gif', name: 'Shopkeeper 14', value: '1075' },
        { src: 'https://images.neopets.com/new_shopkeepers/1076.gif', name: 'Shopkeeper 15', value: '1076' },
        { src: 'https://images.neopets.com/new_shopkeepers/1100.gif', name: 'Shopkeeper 16', value: '1100' },
        { src: 'https://images.neopets.com/new_shopkeepers/1101.gif', name: 'Shopkeeper 17', value: '1101' },
        { src: 'https://images.neopets.com/new_shopkeepers/1102.gif', name: 'Shopkeeper 18', value: '1102' },
        { src: 'https://images.neopets.com/new_shopkeepers/1153.gif', name: 'Shopkeeper 19', value: '1153' },
        { src: 'https://images.neopets.com/new_shopkeepers/1154.gif', name: 'Shopkeeper 20', value: '1154' },
        { src: 'https://images.neopets.com/new_shopkeepers/1155.gif', name: 'Shopkeeper 21', value: '1155' },
        { src: 'https://images.neopets.com/new_shopkeepers/1160.gif', name: 'Shopkeeper 22', value: '1160' },
        { src: 'https://images.neopets.com/new_shopkeepers/1161.gif', name: 'Shopkeeper 23', value: '1161' },
        { src: 'https://images.neopets.com/new_shopkeepers/1162.gif', name: 'Shopkeeper 24', value: '1162' },
        { src: 'https://images.neopets.com/new_shopkeepers/1174.gif', name: 'Shopkeeper 25', value: '1174' },
        { src: 'https://images.neopets.com/new_shopkeepers/1175.gif', name: 'Shopkeeper 26', value: '1175' },
        { src: 'https://images.neopets.com/new_shopkeepers/1176.gif', name: 'Shopkeeper 27', value: '1176' },
        { src: 'https://images.neopets.com/new_shopkeepers/1200.gif', name: 'Shopkeeper 28', value: '1200' },
        { src: 'https://images.neopets.com/new_shopkeepers/1201.gif', name: 'Shopkeeper 29', value: '1201' },
        { src: 'https://images.neopets.com/new_shopkeepers/1202.gif', name: 'Shopkeeper 30', value: '1202' },
        { src: 'https://images.neopets.com/new_shopkeepers/1219.gif', name: 'Shopkeeper 31', value: '1219' },
        { src: 'https://images.neopets.com/new_shopkeepers/1220.gif', name: 'Shopkeeper 32', value: '1220' },
        { src: 'https://images.neopets.com/new_shopkeepers/1221.gif', name: 'Shopkeeper 33', value: '1221' },
        { src: 'https://images.neopets.com/new_shopkeepers/1229.gif', name: 'Shopkeeper 34', value: '1229' },
        { src: 'https://images.neopets.com/new_shopkeepers/1230.gif', name: 'Shopkeeper 35', value: '1230' },
        { src: 'https://images.neopets.com/new_shopkeepers/1231.gif', name: 'Shopkeeper 36', value: '1231' },
        { src: 'https://images.neopets.com/new_shopkeepers/1281.gif', name: 'Shopkeeper 37', value: '1281' },
        { src: 'https://images.neopets.com/new_shopkeepers/1282.gif', name: 'Shopkeeper 38', value: '1282' },
        { src: 'https://images.neopets.com/new_shopkeepers/1283.gif', name: 'Shopkeeper 39', value: '1283' },
        { src: 'https://images.neopets.com/new_shopkeepers/1284.gif', name: 'Shopkeeper 40', value: '1284' },
        { src: 'https://images.neopets.com/new_shopkeepers/1314.gif', name: 'Shopkeeper 41', value: '1314' },
        { src: 'https://images.neopets.com/new_shopkeepers/1316.gif', name: 'Shopkeeper 42', value: '1316' },
        { src: 'https://images.neopets.com/new_shopkeepers/1317.gif', name: 'Shopkeeper 43', value: '1317' },
        { src: 'https://images.neopets.com/new_shopkeepers/1330.gif', name: 'Shopkeeper 44', value: '1330' },
        { src: 'https://images.neopets.com/new_shopkeepers/1331.gif', name: 'Shopkeeper 45', value: '1331' },
        { src: 'https://images.neopets.com/new_shopkeepers/1332.gif', name: 'Shopkeeper 46', value: '1332' },
        { src: 'https://images.neopets.com/new_shopkeepers/1333.gif', name: 'Shopkeeper 47', value: '1333' },
        { src: 'https://images.neopets.com/new_shopkeepers/1334.gif', name: 'Shopkeeper 48', value: '1334' },
        { src: 'https://images.neopets.com/new_shopkeepers/1359.gif', name: 'Shopkeeper 49', value: '1359' },
        { src: 'https://images.neopets.com/new_shopkeepers/1360.gif', name: 'Shopkeeper 50', value: '1360' },
        { src: 'https://images.neopets.com/new_shopkeepers/1361.gif', name: 'Shopkeeper 51', value: '1361' },
        { src: 'https://images.neopets.com/new_shopkeepers/1362.gif', name: 'Shopkeeper 52', value: '1362' },
        { src: 'https://images.neopets.com/new_shopkeepers/1371.gif', name: 'Shopkeeper 53', value: '1371' },
        { src: 'https://images.neopets.com/new_shopkeepers/1372.gif', name: 'Shopkeeper 54', value: '1372' },
        { src: 'https://images.neopets.com/new_shopkeepers/1373.gif', name: 'Shopkeeper 55', value: '1373' },
        { src: 'https://images.neopets.com/new_shopkeepers/1386.gif', name: 'Shopkeeper 56', value: '1386' },
        { src: 'https://images.neopets.com/new_shopkeepers/1387.gif', name: 'Shopkeeper 57', value: '1387' },
        { src: 'https://images.neopets.com/new_shopkeepers/1388.gif', name: 'Shopkeeper 58', value: '1388' },
        { src: 'https://images.neopets.com/new_shopkeepers/1389.gif', name: 'Shopkeeper 59', value: '1389' },
        { src: 'https://images.neopets.com/new_shopkeepers/1406.gif', name: 'Shopkeeper 60', value: '1406' },
        { src: 'https://images.neopets.com/new_shopkeepers/1407.gif', name: 'Shopkeeper 61', value: '1407' },
        { src: 'https://images.neopets.com/new_shopkeepers/1408.gif', name: 'Shopkeeper 62', value: '1408' },
        { src: 'https://images.neopets.com/new_shopkeepers/1409.gif', name: 'Shopkeeper 63', value: '1409' },
        { src: 'https://images.neopets.com/new_shopkeepers/1456.gif', name: 'Shopkeeper 64', value: '1456' },
        { src: 'https://images.neopets.com/new_shopkeepers/1457.gif', name: 'Shopkeeper 65', value: '1457' },
        { src: 'https://images.neopets.com/new_shopkeepers/1458.gif', name: 'Shopkeeper 66', value: '1458' },
        { src: 'https://images.neopets.com/new_shopkeepers/1468.gif', name: 'Shopkeeper 67', value: '1468' },
        { src: 'https://images.neopets.com/new_shopkeepers/1469.gif', name: 'Shopkeeper 68', value: '1469' },
        { src: 'https://images.neopets.com/new_shopkeepers/1470.gif', name: 'Shopkeeper 69', value: '1470' },
        { src: 'https://images.neopets.com/new_shopkeepers/1487.gif', name: 'Shopkeeper 70', value: '1487' },
        { src: 'https://images.neopets.com/new_shopkeepers/1490.gif', name: 'Shopkeeper 71', value: '1490' },
        { src: 'https://images.neopets.com/new_shopkeepers/1491.gif', name: 'Shopkeeper 72', value: '1491' },
        { src: 'https://images.neopets.com/new_shopkeepers/1492.gif', name: 'Shopkeeper 73', value: '1492' },
        { src: 'https://images.neopets.com/new_shopkeepers/1493.gif', name: 'Shopkeeper 74', value: '1493' },
        { src: 'https://images.neopets.com/new_shopkeepers/1505.gif', name: 'Shopkeeper 75', value: '1505' },
        { src: 'https://images.neopets.com/new_shopkeepers/1506.gif', name: 'Shopkeeper 76', value: '1506' },
        { src: 'https://images.neopets.com/new_shopkeepers/1507.gif', name: 'Shopkeeper 77', value: '1507' },
        { src: 'https://images.neopets.com/new_shopkeepers/1511.gif', name: 'Shopkeeper 78', value: '1511' },
        { src: 'https://images.neopets.com/new_shopkeepers/1512.gif', name: 'Shopkeeper 79', value: '1512' },
        { src: 'https://images.neopets.com/new_shopkeepers/1513.gif', name: 'Shopkeeper 80', value: '1513' },
        { src: 'https://images.neopets.com/new_shopkeepers/1514.gif', name: 'Shopkeeper 81', value: '1514' },
        { src: 'https://images.neopets.com/new_shopkeepers/1519.gif', name: 'Shopkeeper 82', value: '1519' },
        { src: 'https://images.neopets.com/new_shopkeepers/1520.gif', name: 'Shopkeeper 83', value: '1520' },
        { src: 'https://images.neopets.com/new_shopkeepers/1521.gif', name: 'Shopkeeper 84', value: '1521' },
        { src: 'https://images.neopets.com/new_shopkeepers/1534.gif', name: 'Shopkeeper 85', value: '1534' },
        { src: 'https://images.neopets.com/new_shopkeepers/1535.gif', name: 'Shopkeeper 86', value: '1535' },
        { src: 'https://images.neopets.com/new_shopkeepers/1542.gif', name: 'Shopkeeper 87', value: '1542' },
        { src: 'https://images.neopets.com/new_shopkeepers/1565.gif', name: 'Shopkeeper 88', value: '1565' },
        { src: 'https://images.neopets.com/new_shopkeepers/1566.gif', name: 'Shopkeeper 89', value: '1566' },
        { src: 'https://images.neopets.com/new_shopkeepers/1567.gif', name: 'Shopkeeper 90', value: '1567' },
        { src: 'https://images.neopets.com/new_shopkeepers/1568.gif', name: 'Shopkeeper 91', value: '1568' },
        { src: 'https://images.neopets.com/new_shopkeepers/1597.gif', name: 'Shopkeeper 92', value: '1597' },
        { src: 'https://images.neopets.com/new_shopkeepers/1600.gif', name: 'Shopkeeper 93', value: '1600' },
        { src: 'https://images.neopets.com/new_shopkeepers/1646.gif', name: 'Shopkeeper 94', value: '1646' },
        { src: 'https://images.neopets.com/new_shopkeepers/1668.gif', name: 'Shopkeeper 95', value: '1668' },
        { src: 'https://images.neopets.com/new_shopkeepers/1686.gif', name: 'Shopkeeper 96', value: '1686' },
        { src: 'https://images.neopets.com/new_shopkeepers/1757.gif', name: 'Shopkeeper 97', value: '1757' },
        { src: 'https://images.neopets.com/new_shopkeepers/1784.gif', name: 'Shopkeeper 98', value: '1784' },
        { src: 'https://images.neopets.com/new_shopkeepers/1785.gif', name: 'Shopkeeper 99', value: '1785' },
        { src: 'https://images.neopets.com/new_shopkeepers/1786.gif', name: 'Shopkeeper 100', value: '1786' },
        { src: 'https://images.neopets.com/new_shopkeepers/1806.gif', name: 'Shopkeeper 101', value: '1806' },
        { src: 'https://images.neopets.com/new_shopkeepers/1816.gif', name: 'Shopkeeper 102', value: '1816' },
        { src: 'https://images.neopets.com/new_shopkeepers/1817.gif', name: 'Shopkeeper 103', value: '1817' },
        { src: 'https://images.neopets.com/new_shopkeepers/1818.gif', name: 'Shopkeeper 104', value: '1818' },
        { src: 'https://images.neopets.com/new_shopkeepers/1847.gif', name: 'Shopkeeper 105', value: '1847' },
    ],
    Other: [
        { src: 'https://images.neopets.com/new_shopkeepers/1107.gif', value: '1107' },
        { src: 'https://images.neopets.com/new_shopkeepers/1108.gif', value: '1108' },
        { src: 'https://images.neopets.com/new_shopkeepers/1109.gif', value: '1109' },
        { src: 'https://images.neopets.com/new_shopkeepers/1141.gif', value: '1141' },
        { src: 'https://images.neopets.com/new_shopkeepers/1142.gif', value: '1142' },
        { src: 'https://images.neopets.com/new_shopkeepers/1143.gif', value: '1143' },
        { src: 'https://images.neopets.com/new_shopkeepers/1144.gif', value: '1144' },
        { src: 'https://images.neopets.com/new_shopkeepers/139.gif', value: '139' },
        { src: 'https://images.neopets.com/new_shopkeepers/154.gif', value: '154' },
        { src: 'https://images.neopets.com/new_shopkeepers/156.gif', value: '156' },
        { src: 'https://images.neopets.com/new_shopkeepers/159.gif', value: '159' },
        { src: 'https://images.neopets.com/new_shopkeepers/163.gif', value: '163' },
        { src: 'https://images.neopets.com/new_shopkeepers/164.gif', value: '164' },
        { src: 'https://images.neopets.com/new_shopkeepers/167.gif', value: '167' },
        { src: 'https://images.neopets.com/new_shopkeepers/168.gif', value: '168' },
        { src: 'https://images.neopets.com/new_shopkeepers/172.gif', value: '172' },
        { src: 'https://images.neopets.com/new_shopkeepers/1739.gif', value: '1739' },
        { src: 'https://images.neopets.com/new_shopkeepers/174.gif', value: '174' },
        { src: 'https://images.neopets.com/new_shopkeepers/1740.gif', value: '1740' },
        { src: 'https://images.neopets.com/new_shopkeepers/175.gif', value: '175' },
        { src: 'https://images.neopets.com/new_shopkeepers/179.gif', value: '179' },
        { src: 'https://images.neopets.com/new_shopkeepers/185.gif', value: '185' },
        { src: 'https://images.neopets.com/new_shopkeepers/1855.gif', value: '1855' },
        { src: 'https://images.neopets.com/new_shopkeepers/1857.gif', value: '1857' },
        { src: 'https://images.neopets.com/new_shopkeepers/1858.gif', value: '1858' },
        { src: 'https://images.neopets.com/new_shopkeepers/2044.gif', value: '2044' },
        { src: 'https://images.neopets.com/new_shopkeepers/2045.gif', value: '2045' },
        { src: 'https://images.neopets.com/new_shopkeepers/2046.gif', value: '2046' },
        { src: 'https://images.neopets.com/new_shopkeepers/2047.gif', value: '2047' },
        { src: 'https://images.neopets.com/new_shopkeepers/2241.gif', value: '2241' },
        { src: 'https://images.neopets.com/new_shopkeepers/2242.gif', value: '2242' },
        { src: 'https://images.neopets.com/new_shopkeepers/2247.gif', value: '2247' },
        { src: 'https://images.neopets.com/new_shopkeepers/2248.gif', value: '2248' },
        { src: 'https://images.neopets.com/new_shopkeepers/2249.gif', value: '2249' },
        { src: 'https://images.neopets.com/new_shopkeepers/225.gif', value: '225' },
        { src: 'https://images.neopets.com/new_shopkeepers/2259.gif', value: '2259' },
        { src: 'https://images.neopets.com/new_shopkeepers/2303.gif', value: '2303' },
        { src: 'https://images.neopets.com/new_shopkeepers/36.gif', value: '36' },
        { src: 'https://images.neopets.com/new_shopkeepers/41.gif', value: '41' },
        { src: 'https://images.neopets.com/new_shopkeepers/701.gif', value: '701' },
        { src: 'https://images.neopets.com/new_shopkeepers/702.gif', value: '702' },
        { src: 'https://images.neopets.com/new_shopkeepers/703.gif', value: '703' },
        { src: 'https://images.neopets.com/new_shopkeepers/803.gif', value: '803' },
        { src: 'https://images.neopets.com/new_shopkeepers/89.gif', value: '89' },
        { src: 'https://images.neopets.com/new_shopkeepers/982.gif', value: '982' },
        { src: 'https://images.neopets.com/new_shopkeepers/983.gif', value: '983' },
        { src: 'https://images.neopets.com/new_shopkeepers/984.gif', value: '984' },
    ]
};

    // Create the modal
    const createModal = () => {
        const modal = document.createElement('div');
        modal.id = 'shopkeeperModal';
        modal.style.display = 'none';
        modal.style.position = 'fixed';
        modal.style.left = '50%';
        modal.style.top = '50%';
        modal.style.transform = 'translate(-50%, -50%)';
        modal.style.backgroundColor = 'white';
        modal.style.padding = '20px';
        modal.style.zIndex = '1000';
        modal.style.maxHeight = '80%';
        modal.style.overflowY = 'auto';

        const closeButton = document.createElement('button');
        closeButton.innerText = 'Close';
        closeButton.onclick = () => { modal.style.display = 'none'; };

        modal.appendChild(closeButton);
        document.body.appendChild(modal);
        return modal;
    };

    const modal = createModal();

    // Function to load images into the modal
    window.loadImagesInModal = (images) => {
        while (modal.children.length > 1) {
            modal.removeChild(modal.lastChild);
        }

        const imgContainer = document.createElement('div');
        imgContainer.style.display = 'grid';
        imgContainer.style.gridTemplateColumns = 'repeat(3, 1fr)';
        imgContainer.style.gap = '10px';

        images.forEach(image => {
            const imgLink = document.createElement('a');
            imgLink.href = 'javascript:void(0)';

            // Create the radio button and append it to the form
            const radioInput = document.createElement('input');
            radioInput.type = 'radio';
            radioInput.name = 'selected_sk';
            radioInput.id = `radio_${image.value}`;
            radioInput.value = image.value;
            document.select_form.appendChild(radioInput);

            imgLink.onclick = () => {
                radioInput.checked = true;
                document.select_form.submit();
            };

            const imgElement = document.createElement('img');
            imgElement.src = image.src;
            imgElement.width = 150;
            imgElement.height = 150;
            imgElement.border = 0;

            imgLink.appendChild(imgElement);
            imgContainer.appendChild(imgLink);
        });

        modal.appendChild(imgContainer);
        modal.style.display = 'block';
    };

    // Add Category Buttons
    const addCategories = () => {
        const categoryList = document.createElement('ul');
        for (const [key, value] of Object.entries(categories)) {
            const li = document.createElement('li');
            li.innerHTML = `<b><a href='javascript:void(0)' onclick='loadImagesInModal(categories.${key})'>${key.charAt(0).toUpperCase() + key.slice(1)}</a></b>`;
            categoryList.appendChild(li);
        }

        const existingCategories = document.querySelector('form[name="select_form"] > table > tbody > tr:nth-child(2)');
        existingCategories.parentNode.insertBefore(categoryList, existingCategories.nextSibling);
    };

    // Expose categories to the global scope for the modal and initialize categories
    window.categories = categories;
    addCategories();
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址