| 66 | | close: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAXCAYAAAD6FjQuAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAAd0SU1FB9gBFxEPCSG3H1gAAAEXSURBVEjH7ZQxioQwFIb/jELA3trWI2yTC2gnpJrFwwlTCyk8g0fwEBZWivBithCDo7O7MpBU80PQPPPzveQ9w9I0NXCsrusghEC4LAsAwJiVyRh7adh/N8ac1r2KHRUSEXwp1Fr7hx2PaX+kWZYBAJqmsWvzPD/Fjv5jWW5EBCKC1hpa69M7EUEpZaFEZEFKKfzl3+YWHMex2Rd4n9U+O2MMiqKwsbquf22Uo6/v+7Ub322Qd3y3aZpwZUgpAQBVVQEApJS46rWwKxmVZfkE2p5b/KpYFEXOb5BxHNeaBUHg7z/zAeOcr7BhGMA5xzzPzkBJkgBAGwohWgBfjjfXAvhmDw+1um+tf4c/Pd01D4e7+uijf/UDzMDkaVlBIbwAAAAASUVORK5CYII=', |
| 67 | | close_focused: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAXCAYAAAD6FjQuAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAAd0SU1FB9gBFxEOJH1zcmwAAAI6SURBVEjH7ZWxbhQxEIa/sb23iU4Q5Q3Scd21vAASSJSIJjxDxCvwCikp0l1HQZECiRrpKqR0ES8REuWS3K09ptjZxdnkolyRCkayfPbO/L/n94xPfk6nmSe2TycnTCcTwmqx2CjQAVrMm1i4urx80EFCeDRYjvFhsuXV1dqP3jlwriV1Duf9HR9NiawK2uaZdH2+4eb6uj2VOYmBh6oiOYcT4c3FBQDfd3d7wNfn5wB829np9zqM2DR38FoZm+b2naSEADElvAjiHMfjMW8XC16dnfW/AY7H4/agKZFUiSn9Je7u1PbazMr7sXkERFWCOceU+OI971Lqib6ORj04gOZMzpkIZKCx+ZaMF4NK2zInKS9e9dYaYBUjObdwyWJKkgjcDCo2/CqyGgGVzcFGbXsfDfhQhIOcea/KoUgPtjSiaGNl6+UgmZYV8LbREVUDos8ibANH0uZ5kHMPUBc4JXCpSKgL562CpC5kPRJBgHEROBMhA88K2ZzNZQJVud4pPtQD0k5aAYIITqSv0KxKyplKlVjIHS1WbV3WehibfKEgGdkpvTV28J5QVXjvERG8cyTVvrea5ZKUM16VBGzbnXVF0kv8wxbLdW3fvQ6Dfnys1cDzvT2AeZhOJnPg5RM//PMXp6cfZNZKu1WM2pTsOqErzk5ZKfpVrc2SqdaYgisTawXc7MNvgLAPzawN0nuCqqIr/KCiuz7uYpLFNUMy7mkDZuuz6jJzRUz3/A2zW5Vjf/O/vf/2r9of0FcAZ6gVKMEAAAAASUVORK5CYII=', |
| 68 | | maximize: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAXCAYAAAD6FjQuAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAAd0SU1FB9gBFxEUA2hUPdwAAAECSURBVEjH7ZU9boQwEIU/ByRL29ClS2txhDRcALmhSscRqSwuQJErcIFcARrMbBEiWbBIoKyp9klT2J4fv3n+UYDkeU5s9H1PCjDPMwAiAoBS6mFAuC4iG79HcyFSgGmauAIpgPf++mLrNoUtLctyN0nbtrvxYY6ntPFo/IbZelchmqbZHJCqqjYyrFn9jU8x29P2FLNxHA857/kdjU/PaFPX9b+0VYDcbrfox34Yhl9mSZJcc8+01pcU01qDMUYA0VoLEMW01mKMEQVQFMU38BmTWdd1KgXIsuwL8M65n+hv40J3tta+Ax6YFvPA5Jx7yrfwZq39WJLOKwv7/sIL8XEHfSOYLUXK0YIAAAAASUVORK5CYII=', |
| 69 | | maximize_focused: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAXCAYAAAD6FjQuAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAAd0SU1FB9gBFxEQMcTvqVgAAAFCSURBVEjH7ZRLjoJAEIa/mhTplWsS9nIDk7kBh/AcXsJ7eAhOMIln8AAaF2KQV1y0C+WhwODMyKz8EwKprqqPeqQFsMvlks1mw1iaTqcsFgsUoCgKiqLAWguAiHQGNc+ttS2/LhtAnucAV1iWZWRZNlplZW4FSNO0oo+hJElqWJIk5HnealOzpWEY9iYLgqCzzZ2wOI7/1Mah2NPpVMOiKKoqe/yrpmazWWtB1ut1awTNeBHhcDjcw56prG+uQ7HH47GG7XY74jgehG232x/ZS00mkxp2Pp+fms1+v//VTMv8CqCqOI7zbYDneb1nQ7GqWsMcx+m9NV6hCmaMQVVRVQSo9qhktxZTHozS4dS0Xb+NMeD7vgWsMcbePF7+GGOs7/tWXdcV13W/gE/GlciK8TW/vT/m/J/uVnA1YlVvvTWoCzHOs7tnGF6IAAAAAElFTkSuQmCC', |
| 70 | | minimize: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAXCAYAAAD6FjQuAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAAd0SU1FB9gBFxEXFi6kivQAAAC5SURBVEjH7ZK9DYMwEIU/m0g3BkUaj0DjVRgOsQkNM6DsgZCAS0Vk8eOkwSgSr7J97/R+ZOO916ZpcM5xNh7LYZ5nAFQVAGPM7kI4V9UNb+9tIzaOY7pk0zSlF1vXtK40rOmoxvX+cr+2xsVt6Cp0t/dBYglD7jXJ+r6PEsuyjM6rqvoqZkmITzJr47p1XcddW/u7WJZlaZKJSDKxNs/zous6RIRhGE4REhGM9/4JvIAWKLhx48Zf4w2OIF4eoa/2XgAAAABJRU5ErkJggg==', |
| 71 | | minimize_focused: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAXCAYAAAD6FjQuAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAAd0SU1FB9gBFxEWDMrdQs8AAAFGSURBVEjH7ZQ9bsJAEIW/RYu2oqRxQxFxBxrfwBdAuZHvEeUCvgENN6DxBRAFINvsrlxsCrTYsbHJ30aKlFd5Zt/MmzcaWcRx7DabDWmakuc5obBcLpE+sNZircU5B4AQ4m5R+9051+PdywEYYxoxrTVa62DOtNaN2OVywRgTTKyqqkasqiqMMb01dVfaXtPQGrv1PbGiKIKusSzLRux0Ot2cdafy6Lptc4cceu7xeHwvFtLZ+XxuxPb7PUVRDJIPh8Nos/l8Pvo+m82Y+KCua0KiruvGmZSS6XQ6SI6iaLTZWK3vL9vkob/GT+AmppS6BlIigNsdee3eYYpOUtwhtXPXbwlsF4vFarfboZTCWhvEmVIKEcfxE5ADW2AV8kjEC/CaJACss2yU7HlfQZZlyGcgedDs0RAfxST5xrSfwW/p/OMP4w3tcqDExRHCHwAAAABJRU5ErkJggg==', |
| 72 | | openSwitch: 'data:image/gif;base64,R0lGODlhEAAQAJECAP///6uopv///wAAACH5BAEAAAIALAAAAAAQABAAAAIbVI6Zpu0PIwRAImoPjrT353nSZpFjlaWqxbAFADs=', |
| 73 | | closeSwitch: 'data:image/gif;base64,R0lGODlhEAAQAJECAP///6uopv///wAAACH5BAEAAAIALAAAAAAQABAAAAIWVI6Zpu0Po5y0JoAzflrbD4aixUxCAQA7', |
| 74 | | o: 'data:image/gif;base64,R0lGODlhEAAQAIABANLS0////yH5BAEAAAEALAAAAAAQABAAAAIcjI+py+2PgARvznZDVjLS1R0hF26kVZnQyrZQAQA7', |
| 75 | | x: 'data:image/gif;base64,R0lGODlhEAAQAIABAJ+foP///yH5BAEAAAEALAAAAAAQABAAAAIdjI+py+1vAECSyRluu9px+HkctnSdUh0pxLYuVAAAOw==', |
| 76 | | indicator: 'data:image/gif;base64,R0lGODlhEAAQAPYAAAAAAAEBAQICAgMDAwQEBAgICA0NDRMTEx4eHiAgICIiIiQkJCgoKCkpKSoqKisrKzAwMDExMTU1NTs7Oz4+Pl1dXWpqamtra3FxcZSUlJiYmJmZmZubm5ycnJ2dnaKioqOjo6ioqKmpqaurq66urrCwsLGxsbKysry8vMXFxcrKyuXl5ejo6Orq6v///wYGBgsLCwwMDA4ODhAQEBQUFBUVFRgYGBoaGh0dHSwsLC4uLjIyMjMzM1BQUFZWVlxcXF9fX2BgYGFhYWRkZGZmZmdnZ3Nzc3h4eHp6ent7e4SEhI+Pj8bGxsnJydXV1djY2Nra2t3d3d7e3uLi4ufn5+vr6wkJCScnJzo6Ol5eXmhoaJqamqqqqq2tre3t7QUFBQ8PDxcXF9TU1N/f3+np6XJycgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/i1NYWRlIGJ5IEtyYXNpbWlyYSBOZWpjaGV2YSAod3d3LmxvYWRpbmZvLm5ldCkAIfkEAQoAAAAsAAAAABAAEAAABl9AgHA4IZEmw6RwIDikXK7UQSlkZDQVFrTloAoyq5UJBT0ZqINNWMTAYBBUYQQ0osSHgYlFUrgPFSUqHWd+AIAqHoR+eRddhXgNEASPAAsfIRCUCRwfD5QACQsCn6SlQQAh+QQBCgAAACwAAAAAEAAQAAAHaYAAgoMzPz8zg4mKSVNTSAQ4NwGJMD0+NiMrKyVJUlBDiT1MKkFDT05LKy4uTzeDPk0qRAQ7Ojssq1E4gzJARTWDBEpVVEaTADQ7MYoALzkNA4IvRydCzMzT1dfMNDwG2+Dh4uPk5ebngQAh+QQBCgAAACwAAAAAEAAQAAAHaIAAgoMCCgoCg4mKEyYmEwAEA4oACQsAFioqWhBbGQyJCRwfDA0eHhIfKysZiIILHyEQAAYGVlyqGpKCAg8QBIkUXCdZB5OTVyhVKVjGiRgu0F3Ng8/R04IIJ17L14IyDzTd4uPk5eaBACH5BAEKAAAALAAAAAAQABAAAAdqgACCgwAvL4SIhDRHRzSJiTtdXTsxPj0wjwAGQkIwQCpMPZmERCpNPqODNURBYamDX0MkSWCvO04rYz+vEGK5u6NfEUsnSLWZBEotVEgEqTlkLi5ROKkMK9JPN6kCRmNQQ68AAjg3AeKJgQAh+QQBCgAAACwAAAAAEAAQAAAHZoAAgoOEhYaHiIYCCwmJhA8fHI2OABAhHwuUAAQQDQGagg4XE5+OBh4qJQqUBh2pq44FEhakjhQjIBGICGUYDCIrKxsDhgYnLi4oJsEZAoYOLcgsFRoZDIcHKcgpBwLEiBMkJBOGgQAh+QQBCgAAACwAAAAAEAAQAAAHaIAAgoOEhYaHiImKi4yNjoMGPDSNQidHL4yVl4IDDDmYhTE7kwABRlRVSgSDNUVAMoM4US4uLDs6OwREKk0+gzdPtCtLTk9DQSpMPYRDUFJJJSsrIzY+PTCEATc4BEhTU0mMMz8/M4aBACH5BAEKAAAALAAAAAAQABAAAAdmgACCg4SFhoeIiYqLjIM0DzKMWCleJwiLXS6aGJiaLpyKk1UoV4wHWSdcFIQEEA8CgwMaKytcVgYGABAhHwuDAhm0HxIeHg0MHxwJhAwZWxBaKioWAAvLhQMEABMmJhOMAgoKsIWBACH5BAEKAAAALAAAAAAQABAAAAdqgACCg4SFgwE3OAKGhkNQY0aLjII3Ty4uKwyTgjhRl2Q5mwAESFRVSgSbYEgnSxFfoj9jK2IQogCyK04Rt2BJJEOwtwBhQUQ1wz5NKkTDPUwqQDBCQgaTMD0+MTtdXTvDNEdHNMMALy+MgQA7' |
| | 78 | close: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAXCAYAAAD6FjQuAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAAd0SU1FB9gBFxEPCSG3H1gAAAEXSURBVEjH7ZQxioQwFIb/jELA3trWI2yTC2gnpJrFwwlTCyk8g0fwEBZWivBithCDo7O7MpBU80PQPPPzveQ9w9I0NXCsrusghEC4LAsAwJiVyRh7adh/N8ac1r2KHRUSEXwp1Fr7hx2PaX+kWZYBAJqmsWvzPD/Fjv5jWW5EBCKC1hpa69M7EUEpZaFEZEFKKfzl3+YWHMex2Rd4n9U+O2MMiqKwsbquf22Uo6/v+7Ub322Qd3y3aZpwZUgpAQBVVQEApJS46rWwKxmVZfkE2p5b/KpYFEXOb5BxHNeaBUHg7z/zAeOcr7BhGMA5xzzPzkBJkgBAGwohWgBfjjfXAvhmDw+1um+tf4c/Pd01D4e7+uijf/UDzMDkaVlBIbwAAAAASUVORK5CYII=', |
| | 79 | close_focused: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAXCAYAAAD6FjQuAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAAd0SU1FB9gBFxEOJH1zcmwAAAI6SURBVEjH7ZWxbhQxEIa/sb23iU4Q5Q3Scd21vAASSJSIJjxDxCvwCikp0l1HQZECiRrpKqR0ES8REuWS3K09ptjZxdnkolyRCkayfPbO/L/n94xPfk6nmSe2TycnTCcTwmqx2CjQAVrMm1i4urx80EFCeDRYjvFhsuXV1dqP3jlwriV1Duf9HR9NiawK2uaZdH2+4eb6uj2VOYmBh6oiOYcT4c3FBQDfd3d7wNfn5wB829np9zqM2DR38FoZm+b2naSEADElvAjiHMfjMW8XC16dnfW/AY7H4/agKZFUiSn9Je7u1PbazMr7sXkERFWCOceU+OI971Lqib6ORj04gOZMzpkIZKCx+ZaMF4NK2zInKS9e9dYaYBUjObdwyWJKkgjcDCo2/CqyGgGVzcFGbXsfDfhQhIOcea/KoUgPtjSiaGNl6+UgmZYV8LbREVUDos8ibANH0uZ5kHMPUBc4JXCpSKgL562CpC5kPRJBgHEROBMhA88K2ZzNZQJVud4pPtQD0k5aAYIITqSv0KxKyplKlVjIHS1WbV3WehibfKEgGdkpvTV28J5QVXjvERG8cyTVvrea5ZKUM16VBGzbnXVF0kv8wxbLdW3fvQ6Dfnys1cDzvT2AeZhOJnPg5RM//PMXp6cfZNZKu1WM2pTsOqErzk5ZKfpVrc2SqdaYgisTawXc7MNvgLAPzawN0nuCqqIr/KCiuz7uYpLFNUMy7mkDZuuz6jJzRUz3/A2zW5Vjf/O/vf/2r9of0FcAZ6gVKMEAAAAASUVORK5CYII=', |
| | 80 | maximize: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAXCAYAAAD6FjQuAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAAd0SU1FB9gBFxEUA2hUPdwAAAECSURBVEjH7ZU9boQwEIU/ByRL29ClS2txhDRcALmhSscRqSwuQJErcIFcARrMbBEiWbBIoKyp9klT2J4fv3n+UYDkeU5s9H1PCjDPMwAiAoBS6mFAuC4iG79HcyFSgGmauAIpgPf++mLrNoUtLctyN0nbtrvxYY6ntPFo/IbZelchmqbZHJCqqjYyrFn9jU8x29P2FLNxHA857/kdjU/PaFPX9b+0VYDcbrfox34Yhl9mSZJcc8+01pcU01qDMUYA0VoLEMW01mKMEQVQFMU38BmTWdd1KgXIsuwL8M65n+hv40J3tta+Ax6YFvPA5Jx7yrfwZq39WJLOKwv7/sIL8XEHfSOYLUXK0YIAAAAASUVORK5CYII=', |
| | 81 | maximize_focused: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAXCAYAAAD6FjQuAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAAd0SU1FB9gBFxEQMcTvqVgAAAFCSURBVEjH7ZRLjoJAEIa/mhTplWsS9nIDk7kBh/AcXsJ7eAhOMIln8AAaF2KQV1y0C+WhwODMyKz8EwKprqqPeqQFsMvlks1mw1iaTqcsFgsUoCgKiqLAWguAiHQGNc+ttS2/LhtAnucAV1iWZWRZNlplZW4FSNO0oo+hJElqWJIk5HnealOzpWEY9iYLgqCzzZ2wOI7/1Mah2NPpVMOiKKoqe/yrpmazWWtB1ut1awTNeBHhcDjcw56prG+uQ7HH47GG7XY74jgehG232x/ZS00mkxp2Pp+fms1+v//VTMv8CqCqOI7zbYDneb1nQ7GqWsMcx+m9NV6hCmaMQVVRVQSo9qhktxZTHozS4dS0Xb+NMeD7vgWsMcbePF7+GGOs7/tWXdcV13W/gE/GlciK8TW/vT/m/J/uVnA1YlVvvTWoCzHOs7tnGF6IAAAAAElFTkSuQmCC', |
| | 82 | minimize: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAXCAYAAAD6FjQuAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAAd0SU1FB9gBFxEXFi6kivQAAAC5SURBVEjH7ZK9DYMwEIU/m0g3BkUaj0DjVRgOsQkNM6DsgZCAS0Vk8eOkwSgSr7J97/R+ZOO916ZpcM5xNh7LYZ5nAFQVAGPM7kI4V9UNb+9tIzaOY7pk0zSlF1vXtK40rOmoxvX+cr+2xsVt6Cp0t/dBYglD7jXJ+r6PEsuyjM6rqvoqZkmITzJr47p1XcddW/u7WJZlaZKJSDKxNs/zous6RIRhGE4REhGM9/4JvIAWKLhx48Zf4w2OIF4eoa/2XgAAAABJRU5ErkJggg==', |
| | 83 | minimize_focused: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAXCAYAAAD6FjQuAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAAd0SU1FB9gBFxEWDMrdQs8AAAFGSURBVEjH7ZQ9bsJAEIW/RYu2oqRxQxFxBxrfwBdAuZHvEeUCvgENN6DxBRAFINvsrlxsCrTYsbHJ30aKlFd5Zt/MmzcaWcRx7DabDWmakuc5obBcLpE+sNZircU5B4AQ4m5R+9051+PdywEYYxoxrTVa62DOtNaN2OVywRgTTKyqqkasqiqMMb01dVfaXtPQGrv1PbGiKIKusSzLRux0Ot2cdafy6Lptc4cceu7xeHwvFtLZ+XxuxPb7PUVRDJIPh8Nos/l8Pvo+m82Y+KCua0KiruvGmZSS6XQ6SI6iaLTZWK3vL9vkob/GT+AmppS6BlIigNsdee3eYYpOUtwhtXPXbwlsF4vFarfboZTCWhvEmVIKEcfxE5ADW2AV8kjEC/CaJACss2yU7HlfQZZlyGcgedDs0RAfxST5xrSfwW/p/OMP4w3tcqDExRHCHwAAAABJRU5ErkJggg==', |
| | 84 | openSwitch: 'data:image/gif;base64,R0lGODlhEAAQAJECAP///6uopv///wAAACH5BAEAAAIALAAAAAAQABAAAAIbVI6Zpu0PIwRAImoPjrT353nSZpFjlaWqxbAFADs=', |
| | 85 | closeSwitch: 'data:image/gif;base64,R0lGODlhEAAQAJECAP///6uopv///wAAACH5BAEAAAIALAAAAAAQABAAAAIWVI6Zpu0Po5y0JoAzflrbD4aixUxCAQA7', |
| | 86 | o: 'data:image/gif;base64,R0lGODlhEAAQAIABANLS0////yH5BAEAAAEALAAAAAAQABAAAAIcjI+py+2PgARvznZDVjLS1R0hF26kVZnQyrZQAQA7', |
| | 87 | x: 'data:image/gif;base64,R0lGODlhEAAQAIABAJ+foP///yH5BAEAAAEALAAAAAAQABAAAAIdjI+py+1vAECSyRluu9px+HkctnSdUh0pxLYuVAAAOw==', |
| | 88 | indicator: 'data:image/gif;base64,R0lGODlhEAAQAPYAAAAAAAEBAQICAgMDAwQEBAgICA0NDRMTEx4eHiAgICIiIiQkJCgoKCkpKSoqKisrKzAwMDExMTU1NTs7Oz4+Pl1dXWpqamtra3FxcZSUlJiYmJmZmZubm5ycnJ2dnaKioqOjo6ioqKmpqaurq66urrCwsLGxsbKysry8vMXFxcrKyuXl5ejo6Orq6v///wYGBgsLCwwMDA4ODhAQEBQUFBUVFRgYGBoaGh0dHSwsLC4uLjIyMjMzM1BQUFZWVlxcXF9fX2BgYGFhYWRkZGZmZmdnZ3Nzc3h4eHp6ent7e4SEhI+Pj8bGxsnJydXV1djY2Nra2t3d3d7e3uLi4ufn5+vr6wkJCScnJzo6Ol5eXmhoaJqamqqqqq2tre3t7QUFBQ8PDxcXF9TU1N/f3+np6XJycgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/i1NYWRlIGJ5IEtyYXNpbWlyYSBOZWpjaGV2YSAod3d3LmxvYWRpbmZvLm5ldCkAIfkEAQoAAAAsAAAAABAAEAAABl9AgHA4IZEmw6RwIDikXK7UQSlkZDQVFrTloAoyq5UJBT0ZqINNWMTAYBBUYQQ0osSHgYlFUrgPFSUqHWd+AIAqHoR+eRddhXgNEASPAAsfIRCUCRwfD5QACQsCn6SlQQAh+QQBCgAAACwAAAAAEAAQAAAHaYAAgoMzPz8zg4mKSVNTSAQ4NwGJMD0+NiMrKyVJUlBDiT1MKkFDT05LKy4uTzeDPk0qRAQ7Ojssq1E4gzJARTWDBEpVVEaTADQ7MYoALzkNA4IvRydCzMzT1dfMNDwG2+Dh4uPk5ebngQAh+QQBCgAAACwAAAAAEAAQAAAHaIAAgoMCCgoCg4mKEyYmEwAEA4oACQsAFioqWhBbGQyJCRwfDA0eHhIfKysZiIILHyEQAAYGVlyqGpKCAg8QBIkUXCdZB5OTVyhVKVjGiRgu0F3Ng8/R04IIJ17L14IyDzTd4uPk5eaBACH5BAEKAAAALAAAAAAQABAAAAdqgACCgwAvL4SIhDRHRzSJiTtdXTsxPj0wjwAGQkIwQCpMPZmERCpNPqODNURBYamDX0MkSWCvO04rYz+vEGK5u6NfEUsnSLWZBEotVEgEqTlkLi5ROKkMK9JPN6kCRmNQQ68AAjg3AeKJgQAh+QQBCgAAACwAAAAAEAAQAAAHZoAAgoOEhYaHiIYCCwmJhA8fHI2OABAhHwuUAAQQDQGagg4XE5+OBh4qJQqUBh2pq44FEhakjhQjIBGICGUYDCIrKxsDhgYnLi4oJsEZAoYOLcgsFRoZDIcHKcgpBwLEiBMkJBOGgQAh+QQBCgAAACwAAAAAEAAQAAAHaIAAgoOEhYaHiImKi4yNjoMGPDSNQidHL4yVl4IDDDmYhTE7kwABRlRVSgSDNUVAMoM4US4uLDs6OwREKk0+gzdPtCtLTk9DQSpMPYRDUFJJJSsrIzY+PTCEATc4BEhTU0mMMz8/M4aBACH5BAEKAAAALAAAAAAQABAAAAdmgACCg4SFhoeIiYqLjIM0DzKMWCleJwiLXS6aGJiaLpyKk1UoV4wHWSdcFIQEEA8CgwMaKytcVgYGABAhHwuDAhm0HxIeHg0MHxwJhAwZWxBaKioWAAvLhQMEABMmJhOMAgoKsIWBACH5BAEKAAAALAAAAAAQABAAAAdqgACCg4SFgwE3OAKGhkNQY0aLjII3Ty4uKwyTgjhRl2Q5mwAESFRVSgSbYEgnSxFfoj9jK2IQogCyK04Rt2BJJEOwtwBhQUQ1wz5NKkTDPUwqQDBCQgaTMD0+MTtdXTvDNEdHNMMALy+MgQA7' |
| 467 | | } |
| 468 | | } |
| 469 | | GM_setValue('cacheInfo', cacheInfo.toSource()) |
| 470 | | }, |
| 471 | | |
| 472 | | //=== window onLoad === |
| 473 | | onLoad: function(){ |
| 474 | | //== GM_getValue == |
| 475 | | Setting.load(); |
| 476 | | SITEINFO = FluJE.getSiteInfo(); |
| 477 | | //== Userscript command == |
| 478 | | GM_registerMenuCommand('Fast look up JP and EN - reset setting', function(){Setting.reset()}); |
| 479 | | //== Event == |
| 480 | | ShortcutKey.add(window, SETTINGS.shortcutkey.navi_toggle, Navi.toggle); |
| 481 | | ShortcutKey.add(window, SETTINGS.shortcutkey.close_all, FluJE.allRemove, true); |
| 482 | | ShortcutKey.add(window, SETTINGS.shortcutkey.QL_run, QLu.run); |
| 483 | | if(SETTINGS.shortcutkey.site.length){ |
| 484 | | var keys = []; |
| 485 | | if(SETTINGS.shortcutkey.site.length) { |
| 486 | | SETTINGS.shortcutkey.site.forEach(function(v,i){ |
| 487 | | var match = false; |
| 488 | | keys.forEach(function(key, idx){ |
| 489 | | if(key.shortcutkey == v.shortcutkey) { |
| 490 | | keys[idx].id.push(v.id); |
| 491 | | match = true; |
| 492 | | } |
| 493 | | }); |
| 494 | | if(!match) |
| 495 | | keys.push({shortcutkey:v.shortcutkey, id:[v.id]}); |
| 496 | | }); |
| 497 | | } |
| 498 | | if(keys.length) { |
| 499 | | keys.forEach(function(key, idx){ |
| 500 | | ShortcutKey.add(window, key.shortcutkey, function(evt){ |
| 501 | | FluJE.selectionEvent(evt, key.id, true); |
| 502 | | }, false); |
| 503 | | }); |
| 504 | | } |
| 505 | | } |
| 506 | | window.addEventListener("mouseup", FluJE.selectionEvent, true); |
| 507 | | window.addEventListener('click', FluJE.removeResult, false); |
| 508 | | GM_registerMenuCommand('Fast look up JP and EN - import siteinfo', function(){ |
| 509 | | FluJE.importSiteInfo(); |
| 510 | | }); |
| 511 | | if(SETTINGS.enable_wheel_button) { |
| 512 | | window.addEventListener('click', function(e){ |
| 513 | | if(e.button==1) |
| 514 | | FluJE.selectionEvent(e, false, true); |
| 515 | | }, false); |
| 516 | | } |
| 517 | | }, |
| 518 | | } |
| 519 | | |
| 520 | | //----------------------------------------------------------------------------- |
| 521 | | // EFFECT |
| 522 | | //----------------------------------------------------------------------------- |
| 523 | | var Effect = { |
| 524 | | flag: true, |
| 525 | | flash: function(node){ |
| 526 | | var self = this; |
| 527 | | this.fadeio(node); |
| 528 | | setTimeout(function(){ self.fadeio(node, null, true); }, 2000); |
| 529 | | }, |
| 530 | | highlight: function(node, bool){ |
| 531 | | if(bool){ |
| 532 | | node.style.backgroundColor = '#CFC'; |
| 533 | | setTimeout(function(){ node.style.backgroundColor='#FFF'; }, 500); |
| 534 | | }else{ |
| 535 | | node.style.backgroundColor = '#F99'; |
| 536 | | setTimeout(function(){ node.style.backgroundColor='#FFF'; }, 500); |
| 537 | | } |
| 538 | | }, |
| 539 | | smoothsize: function(node, original, fixed) { |
| 540 | | var self = this; |
| 541 | | if(original > fixed) { |
| 542 | | node.offsetHeight -= 5; |
| 543 | | orininal -= 5; |
| 544 | | setTimeout(function(){ |
| 545 | | self.smoothsize(node, original, fixed); |
| 546 | | }, 20); |
| 547 | | } |
| 548 | | return; |
| 549 | | }, |
| 550 | | fadeio: function(node, func, rm, sw, count){ |
| 551 | | var self = this; |
| 552 | | if(!sw){ |
| 553 | | if(!this.flag) return; |
| 554 | | if(!node.style.opacity) node.style.opacity = 0; |
| 555 | | if(node.style.display=='none') node.style.display = 'block'; |
| 556 | | if(parseFloat(node.style.opacity) > 0.5) { |
| 557 | | sw = 'out', count = 8, this.flag = false; |
| 558 | | }else{ |
| 559 | | sw = 'in', count = 0, this.flag = false; |
| 560 | | } |
| 561 | | } |
| 562 | | if(!SETTINGS.effect){ |
| 563 | | if(sw=='in') { |
| 564 | | node.style.opacity = 0.8; |
| 565 | | this.flag = true; |
| 566 | | }else { |
| 567 | | node.style.opacity = 0; |
| 568 | | node.style.display = 'none'; |
| 569 | | this.flag = true; |
| 570 | | } |
| 571 | | if(func) setTimeout(func, 10); |
| 572 | | return; |
| 573 | | } |
| 574 | | if(sw == 'in'){ |
| 575 | | if(count <= 8){ |
| 576 | | node.style.opacity = count/10; |
| 577 | | count++; |
| 578 | | setTimeout(function(){ |
| 579 | | self.fadeio(node, func, rm, sw, count); |
| 580 | | }, 20); |
| 581 | | }else{ |
| 582 | | if(func) func(); |
| 583 | | this.flag = true; return; |
| 584 | | } |
| 585 | | }else if(sw == 'out'){ |
| 586 | | if(count >= 0){ |
| 587 | | node.style.opacity = count/10; |
| 588 | | count--; |
| 589 | | setTimeout(function(){ |
| 590 | | self.fadeio(node, func, rm, sw, count); |
| 591 | | }, 20); |
| 592 | | }else{ |
| 593 | | if(func) func(); |
| 594 | | if(rm) node.parentNode.removeChild(node); |
| 595 | | else node.style.display = 'none'; |
| 596 | | this.flag = true; return; |
| 597 | | } |
| 598 | | } |
| | 470 | } |
| | 471 | } |
| | 472 | GM_setValue('cacheInfo', cacheInfo.toSource()); |
| 1341 | | var checkInputLang = function(num, lang){ |
| | 1231 | //----------------------------------------------------------------------------- |
| | 1232 | // FluJE Libraries |
| | 1233 | //----------------------------------------------------------------------------- |
| | 1234 | var Message = { |
| | 1235 | init: function(str) { |
| | 1236 | var elm = $("FluJE_FLASH_MESSAGE"); |
| | 1237 | if(!elm) { |
| | 1238 | elm = $N("div", {id:"FluJE_FLASH_MESSAGE"}); |
| | 1239 | document.body.appendChild(elm); |
| | 1240 | var css = 'div#FluJE_FLASH_MESSAGE div.FluJE_FLASH_NORMAL_MESSAGE{ position: fixed; bottom: 0; left: 0; right: 0; color: #9F9; font-weight: normal; font-size: 100%; text-align: center; background-color: #000; padding: 5px 0; margin: 0; opacity: 0.8; }' |
| | 1241 | + 'div#FluJE_FLASH_MESSAGE div.FluJE_FLASH_ERROR_MESSAGE{ position: fixed; bottom: 0; left: 0; right: 0; color: #F99; font-weight: bold; font-size: 120%; text-align: center; background-color: #000; padding: 5px 0; margin: 0; opacity: 0.8; }'; |
| | 1242 | addStyle(css); |
| | 1243 | } |
| | 1244 | }, |
| | 1245 | create: function(str, param) { |
| | 1246 | var elm = $("FluJE_FLASH_MESSAGE"); |
| | 1247 | if(!elm) |
| | 1248 | elm = $N("div", {id:"FluJE_FLASH_MESSAGE"}); |
| | 1249 | if(param == "error") |
| | 1250 | var msg = elm.appendChild($N('div', {class:'FluJE_FLASH_ERROR_MESSAGE'}, str)); |
| | 1251 | else |
| | 1252 | var msg = elm.appendChild($N('div', {class:'FluJE_FLASH_NORMAL_MESSAGE'}, str)); |
| | 1253 | msg.style.opacity = 0; |
| | 1254 | msg.addEventListener('click', function(e) { Message.remove(elm, true); }, false); |
| | 1255 | return msg; |
| | 1256 | }, |
| | 1257 | remove: function(elm, force, evt) { |
| | 1258 | if(force) { |
| | 1259 | elm.parentNode.removeChild(elm); |
| | 1260 | return true; |
| | 1261 | } |
| | 1262 | wait(5).next(function() { |
| | 1263 | elm.parentNode.removeChild(elm); |
| | 1264 | }); |
| | 1265 | }, |
| | 1266 | show: function(str, param) { |
| | 1267 | if(!str) return; |
| | 1268 | var self = Message; |
| | 1269 | var elm = null; |
| | 1270 | next(function() { |
| | 1271 | self.init(str); |
| | 1272 | }).next(function() { |
| | 1273 | elm = self.create(str,param); |
| | 1274 | }).next(function() { |
| | 1275 | Effect.flash(elm); |
| | 1276 | }).next(function() { |
| | 1277 | self.remove(elm); |
| | 1278 | }); |
| | 1279 | } |
| | 1280 | } |
| | 1281 | //=== EFFECT === |
| | 1282 | var Effect = { |
| | 1283 | flash: function(node){ |
| | 1284 | var self = Effect; |
| | 1285 | next(function() { |
| | 1286 | self.fadein(node); |
| | 1287 | }).wait(2).next(function() { |
| | 1288 | self.fadeout(node); |
| | 1289 | }); |
| | 1290 | }, |
| | 1291 | highlight: function(node, bool){ |
| | 1292 | if(!SETTINGS.enable_effect) |
| | 1293 | return false; |
| | 1294 | if(bool){ |
| | 1295 | next(function() { |
| | 1296 | node.style.backgroundColor = '#CFC'; |
| | 1297 | }).wait(0.5).next(function() { |
| | 1298 | node.style.backgroundColor='#FFF'; |
| | 1299 | }); |
| | 1300 | }else{ |
| | 1301 | next(function() { |
| | 1302 | node.style.backgroundColor = '#F99'; |
| | 1303 | }).wait(0.5).next(function() { |
| | 1304 | node.style.backgroundColor='#FFF'; |
| | 1305 | }); |
| | 1306 | } |
| | 1307 | }, |
| | 1308 | smoothsize: function(node, original, fixed) { |
| | 1309 | var self = this; |
| | 1310 | if(original > fixed) { |
| | 1311 | node.offsetHeight -= 5; |
| | 1312 | orininal -= 5; |
| | 1313 | setTimeout(function(){ |
| | 1314 | self.smoothsize(node, original, fixed); |
| | 1315 | }, 20); |
| | 1316 | } |
| | 1317 | return; |
| | 1318 | }, |
| | 1319 | fadeio: function(node, func) { |
| | 1320 | var self = Effect; |
| | 1321 | var o = node.style.opacity || node.getAttribute("opacity"); |
| | 1322 | if (!o) { o = 0; node.style.opacity = 0; } |
| | 1323 | if(o <= 0.5) { |
| | 1324 | next(function() { |
| | 1325 | self.fadein(node); |
| | 1326 | }).next(function() { |
| | 1327 | if(func) func(); |
| | 1328 | }); |
| | 1329 | }else { |
| | 1330 | next(function() { |
| | 1331 | self.fadeout(node); |
| | 1332 | }).next(function() { |
| | 1333 | if(func) func(); |
| | 1334 | }); |
| | 1335 | } |
| | 1336 | }, |
| | 1337 | fadein: function(node) { |
| | 1338 | var self = this; |
| | 1339 | node.style.opacity = 0; |
| | 1340 | node.style.display = 'block'; |
| | 1341 | if(SETTINGS.enable_effect){ |
| | 1342 | loop(5, function(n) { |
| | 1343 | node.style.opacity = (n+1) * 0.16; |
| | 1344 | return wait(0.05); |
| | 1345 | }); |
| | 1346 | }else { |
| | 1347 | node.style.opacity = 0.8; |
| | 1348 | } |
| | 1349 | }, |
| | 1350 | fadeout: function(node) { |
| | 1351 | var self = this; |
| | 1352 | node.style.opacity = 0.8; |
| | 1353 | node.style.display = 'block'; |
| | 1354 | if(SETTINGS.enable_effect){ |
| | 1355 | loop(5, function(n) { |
| | 1356 | node.style.opacity -= 0.16; |
| | 1357 | return wait(0.05); |
| | 1358 | }).next(function() { |
| | 1359 | node.style.opacity = 0; |
| | 1360 | node.style.display = 'none'; |
| | 1361 | }); |
| | 1362 | }else { |
| | 1363 | node.style.opacity = 0; |
| | 1364 | node.style.display = 'none'; |
| | 1365 | } |
| | 1366 | } |
| | 1367 | } |
| | 1368 | |
| | 1369 | function checkInputLang(num, lang) { |
| | 1532 | // JSDeferred 0.2.2 (c) Copyright (c) 2007 cho45 ( www.lowreal.net ) |
| | 1533 | // See http://coderepos.org/share/wiki/JSDeferred |
| | 1534 | function Deferred () { return (this instanceof Deferred) ? this.init() : new Deferred() } |
| | 1535 | Deferred.ok = function (x) { return x }; |
| | 1536 | Deferred.ng = function (x) { throw x }; |
| | 1537 | Deferred.prototype = { |
| | 1538 | init : function () { |
| | 1539 | this._next = null; |
| | 1540 | this.callback = { |
| | 1541 | ok: Deferred.ok, |
| | 1542 | ng: Deferred.ng |
| | 1543 | }; |
| | 1544 | return this; |
| | 1545 | }, |
| | 1546 | |
| | 1547 | next : function (fun) { return this._post("ok", fun) }, |
| | 1548 | error : function (fun) { return this._post("ng", fun) }, |
| | 1549 | call : function (val) { return this._fire("ok", val) }, |
| | 1550 | fail : function (err) { return this._fire("ng", err) }, |
| | 1551 | |
| | 1552 | cancel : function () { |
| | 1553 | (this.canceller || function () {})(); |
| | 1554 | return this.init(); |
| | 1555 | }, |
| | 1556 | |
| | 1557 | _post : function (okng, fun) { |
| | 1558 | this._next = new Deferred(); |
| | 1559 | this._next.callback[okng] = fun; |
| | 1560 | return this._next; |
| | 1561 | }, |
| | 1562 | |
| | 1563 | _fire : function (okng, value) { |
| | 1564 | var next = "ok"; |
| | 1565 | try { |
| | 1566 | value = this.callback[okng].call(this, value); |
| | 1567 | } catch (e) { |
| | 1568 | next = "ng"; |
| | 1569 | value = e; |
| | 1570 | } |
| | 1571 | if (value instanceof Deferred) { |
| | 1572 | value._next = this._next; |
| | 1573 | } else { |
| | 1574 | if (this._next) this._next._fire(next, value); |
| | 1575 | } |
| | 1576 | return this; |
| | 1577 | } |
| | 1578 | }; |
| | 1579 | |
| | 1580 | Deferred.parallel = function (dl) { |
| | 1581 | var ret = new Deferred(), values = {}, num = 0; |
| | 1582 | for (var i in dl) if (dl.hasOwnProperty(i)) (function (d, i) { |
| | 1583 | d.next(function (v) { |
| | 1584 | values[i] = v; |
| | 1585 | if (--num <= 0) { |
| | 1586 | if (dl instanceof Array) { |
| | 1587 | values.length = dl.length; |
| | 1588 | values = Array.prototype.slice.call(values, 0); |
| | 1589 | } |
| | 1590 | ret.call(values); |
| | 1591 | } |
| | 1592 | }).error(function (e) { |
| | 1593 | ret.fail(e); |
| | 1594 | }); |
| | 1595 | num++; |
| | 1596 | })(dl[i], i); |
| | 1597 | |
| | 1598 | if (!num) Deferred.next(function () { ret.call() }); |
| | 1599 | ret.canceller = function () { |
| | 1600 | for (var i in dl) if (dl.hasOwnProperty(i)) { |
| | 1601 | dl[i].cancel(); |
| | 1602 | } |
| | 1603 | }; |
| | 1604 | return ret; |
| | 1605 | }; |
| | 1606 | |
| | 1607 | Deferred.wait = function (n) { |
| | 1608 | var d = new Deferred(), t = new Date(); |
| | 1609 | var id = setTimeout(function () { |
| | 1610 | clearTimeout(id); |
| | 1611 | d.call((new Date).getTime() - t.getTime()); |
| | 1612 | }, n * 1000); |
| | 1613 | d.canceller = function () { try { clearTimeout(id) } catch (e) {} }; |
| | 1614 | return d; |
| | 1615 | }; |
| | 1616 | |
| | 1617 | Deferred.next_default = function (fun) { |
| | 1618 | var d = new Deferred(); |
| | 1619 | var id = setTimeout(function () { clearTimeout(id); d.call() }, 0); |
| | 1620 | d.canceller = function () { try { clearTimeout(id) } catch (e) {} }; |
| | 1621 | if (fun) d.callback.ok = fun; |
| | 1622 | return d; |
| | 1623 | }; |
| | 1624 | Deferred.next_faster_way_Image = ((typeof(Image) != "undefined") && document.addEventListener) && function (fun) { |
| | 1625 | var d = new Deferred(); |
| | 1626 | var img = new Image(); |
| | 1627 | var handler = function () { |
| | 1628 | d.canceller(); |
| | 1629 | d.call(); |
| | 1630 | }; |
| | 1631 | img.addEventListener("load", handler, false); |
| | 1632 | img.addEventListener("error", handler, false); |
| | 1633 | d.canceller = function () { |
| | 1634 | img.removeEventListener("load", handler, false); |
| | 1635 | img.removeEventListener("error", handler, false); |
| | 1636 | }; |
| | 1637 | img.src = "data:,/ _ / X"; |
| | 1638 | if (fun) d.callback.ok = fun; |
| | 1639 | return d; |
| | 1640 | }; |
| | 1641 | Deferred.next_faster_way_readystatechange = (!window.opera && /\bMSIE\b/.test(navigator.userAgent)) && function (fun) { |
| | 1642 | var d = new Deferred(); |
| | 1643 | var t = new Date().getTime(); |
| | 1644 | if (t - arguments.callee._prev_timeout_called < 150) { |
| | 1645 | var cancel = false; |
| | 1646 | var script = document.createElement("script"); |
| | 1647 | script.type = "text/javascript"; |
| | 1648 | script.src = "javascript:"; |
| | 1649 | script.onreadystatechange = function () { |
| | 1650 | if (!cancel) { |
| | 1651 | d.canceller(); |
| | 1652 | d.call(); |
| | 1653 | } |
| | 1654 | }; |
| | 1655 | d.canceller = function () { |
| | 1656 | if (!cancel) { |
| | 1657 | cancel = true; |
| | 1658 | script.onreadystatechange = null; |
| | 1659 | document.body.removeChild(script); |
| | 1660 | } |
| | 1661 | }; |
| | 1662 | document.body.appendChild(script); |
| | 1663 | } else { |
| | 1664 | arguments.callee._prev_timeout_called = t; |
| | 1665 | var id = setTimeout(function () { clearTimeout(id); d.call() }, 0); |
| | 1666 | d.canceller = function () { try { clearTimeout(id) } catch (e) {} }; |
| | 1667 | } |
| | 1668 | if (fun) d.callback.ok = fun; |
| | 1669 | return d; |
| | 1670 | }; |
| | 1671 | Deferred.next = Deferred.next_faster_way_Image || |
| | 1672 | Deferred.next_faster_way_readystatechange || |
| | 1673 | Deferred.next_default; |
| | 1674 | |
| | 1675 | Deferred.call = function (f, args) { |
| | 1676 | args = Array.prototype.slice.call(arguments); |
| | 1677 | f = args.shift(); |
| | 1678 | return Deferred.next(function () { |
| | 1679 | return f.apply(this, args); |
| | 1680 | }); |
| | 1681 | }; |
| | 1682 | |
| | 1683 | Deferred.loop = function (n, fun) { |
| | 1684 | var o = { |
| | 1685 | begin : n.begin || 0, |
| | 1686 | end : (typeof n.end == "number") ? n.end : n - 1, |
| | 1687 | step : n.step || 1, |
| | 1688 | last : false, |
| | 1689 | prev : null |
| | 1690 | }; |
| | 1691 | var ret, step = o.step; |
| | 1692 | return Deferred.next(function () { |
| | 1693 | function _loop (i) { |
| | 1694 | if (i <= o.end) { |
| | 1695 | if ((i + step) > o.end) { |
| | 1696 | o.last = true; |
| | 1697 | o.step = o.end - i + 1; |
| | 1698 | } |
| | 1699 | o.prev = ret; |
| | 1700 | ret = fun.call(this, i, o); |
| | 1701 | if (ret instanceof Deferred) { |
| | 1702 | return ret.next(function (r) { |
| | 1703 | ret = r; |
| | 1704 | return Deferred.call(_loop, i + step); |
| | 1705 | }); |
| | 1706 | } else { |
| | 1707 | return Deferred.call(_loop, i + step); |
| | 1708 | } |
| | 1709 | } else { |
| | 1710 | return ret; |
| | 1711 | } |
| | 1712 | } |
| | 1713 | return (o.begin <= o.end) ? Deferred.call(_loop, o.begin) : null; |
| | 1714 | }); |
| | 1715 | }; |
| | 1716 | |
| | 1717 | Deferred.register = function (name, fun) { |
| | 1718 | this.prototype[name] = function () { |
| | 1719 | return this.next(Deferred.wrap(fun).apply(null, arguments)); |
| | 1720 | }; |
| | 1721 | }; |
| | 1722 | |
| | 1723 | Deferred.wrap = function (dfun) { |
| | 1724 | return function () { |
| | 1725 | var a = arguments; |
| | 1726 | return function () { |
| | 1727 | return dfun.apply(null, a); |
| | 1728 | }; |
| | 1729 | }; |
| | 1730 | }; |
| | 1731 | |
| | 1732 | Deferred.register("loop", Deferred.loop); |
| | 1733 | Deferred.register("wait", Deferred.wait); |
| | 1734 | |
| | 1735 | Deferred.define = function (obj, list) { |
| | 1736 | if (!list) list = ["parallel", "wait", "next", "call", "loop"]; |
| | 1737 | if (!obj) obj = (function getGlobal () { return this })(); |
| | 1738 | for (var i = 0; i < list.length; i++) { |
| | 1739 | var n = list[i]; |
| | 1740 | obj[n] = Deferred[n]; |
| | 1741 | } |
| | 1742 | return Deferred; |
| | 1743 | }; |
| | 1744 | Deferred.define(); |
| | 1745 | |
| | 1746 | //=== HTML -> DOM === |
| | 1747 | function convertToHTMLDocument(html) { |
| | 1748 | var xml_str = [ |
| | 1749 | '<?xml version="1.0"?>', |
| | 1750 | '<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform">', |
| | 1751 | '<output method="html"/>', |
| | 1752 | '</stylesheet>' |
| | 1753 | ].join('\n'); |
| | 1754 | var xsl = (new DOMParser()).parseFromString(xml_str, 'text/xml'); |
| | 1755 | var xsltp = new XSLTProcessor(); |
| | 1756 | xsltp.importStylesheet(xsl); |
| | 1757 | var doc = xsltp.transformToDocument(document.implementation.createDocument("", "", null)); |
| | 1758 | doc.appendChild(doc.createElement("html")); |
| | 1759 | var range = doc.createRange(); |
| | 1760 | range.selectNodeContents(doc.documentElement); |
| | 1761 | doc.documentElement.appendChild(range.createContextualFragment(html)); |
| | 1762 | return doc; |
| | 1763 | } |
| | 1764 | |
| 1576 | | //=== HTML -> DOM === |
| 1577 | | function convertToHTMLDocument(html) { |
| 1578 | | var xml_str = [ |
| 1579 | | '<?xml version="1.0"?>', |
| 1580 | | '<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform">', |
| 1581 | | '<output method="html"/>', |
| 1582 | | '</stylesheet>' |
| 1583 | | ].join('\n'); |
| 1584 | | var xsl = (new DOMParser()).parseFromString(xml_str, 'text/xml'); |
| 1585 | | var xsltp = new XSLTProcessor(); |
| 1586 | | xsltp.importStylesheet(xsl); |
| 1587 | | |
| 1588 | | var doc = xsltp.transformToDocument(document.implementation.createDocument("", "", null)); |
| 1589 | | doc.appendChild(doc.createElement("html")); |
| 1590 | | |
| 1591 | | var range = doc.createRange(); |
| 1592 | | range.selectNodeContents(doc.documentElement); |
| 1593 | | doc.documentElement.appendChild(range.createContextualFragment(html)); |
| 1594 | | return doc; |
| 1595 | | } |
| | 1824 | //----------------------------------------------------------------------------- |
| | 1825 | // Load script. |
| | 1826 | //----------------------------------------------------------------------------- |
| | 1827 | if(document.body){ |
| | 1828 | //== GM_getValue == |
| | 1829 | Setting.load(); |
| | 1830 | SITEINFO = FluJE.getSiteInfo(); |
| | 1831 | //== Userscript command == |
| | 1832 | GM_registerMenuCommand('Fast look up JP and EN - reset setting', function(){ |
| | 1833 | Setting.reset() |
| | 1834 | Message.show("Reset all settings."); |
| | 1835 | }); |
| | 1836 | //== Event == |
| | 1837 | ShortcutKey.add(window, SETTINGS.shortcutkey.navi_toggle, Navi.toggle); |
| | 1838 | ShortcutKey.add(window, SETTINGS.shortcutkey.close_all, FluJE.allRemove, true); |
| | 1839 | ShortcutKey.add(window, SETTINGS.shortcutkey.QL_run, QLu.run); |
| | 1840 | if(SETTINGS.shortcutkey.site.length){ |
| | 1841 | var keys = []; |
| | 1842 | if(SETTINGS.shortcutkey.site.length) { |
| | 1843 | SETTINGS.shortcutkey.site.forEach(function(v,i){ |
| | 1844 | var match = false; |
| | 1845 | keys.forEach(function(key, idx){ |
| | 1846 | if(key.shortcutkey == v.shortcutkey) { |
| | 1847 | keys[idx].id.push(v.id); |
| | 1848 | match = true; |
| | 1849 | } |
| | 1850 | }); |
| | 1851 | if(!match) |
| | 1852 | keys.push({shortcutkey:v.shortcutkey, id:[v.id]}); |
| | 1853 | }); |
| | 1854 | } |
| | 1855 | if(keys.length) { |
| | 1856 | keys.forEach(function(key, idx){ |
| | 1857 | ShortcutKey.add(window, key.shortcutkey, function(evt){ |
| | 1858 | FluJE.selectionEvent(evt, key.id, true); |
| | 1859 | }, false); |
| | 1860 | }); |
| | 1861 | } |
| | 1862 | } |
| | 1863 | window.addEventListener("mouseup", FluJE.selectionEvent, true); |
| | 1864 | window.addEventListener('click', FluJE.removeResult, false); |
| | 1865 | GM_registerMenuCommand('Fast look up JP and EN - import siteinfo', function(){ |
| | 1866 | next(function() { |
| | 1867 | FluJE.importSiteInfo(); |
| | 1868 | Message.show("Imported SITEINFO."); |
| | 1869 | }).next(function() { |
| | 1870 | SETTINGS.shortcutkey.site = []; |
| | 1871 | SETTINGS.lookup = Setting._default.lookup; |
| | 1872 | SETTINGS.translation = Setting._default.translation; |
| | 1873 | Navi.remove(); |
| | 1874 | }).next(function() { |
| | 1875 | wait(2).next(function() { |
| | 1876 | Message.show("Reset site shortcutkey and selected site."); |
| | 1877 | }); |
| | 1878 | Setting.save(); |
| | 1879 | }); |
| | 1880 | }); |
| | 1881 | if(SETTINGS.enable_wheel_button) { |
| | 1882 | window.addEventListener('click', function(e){ |
| | 1883 | if(e.button==1) |
| | 1884 | FluJE.selectionEvent(e, false, true); |
| | 1885 | }, false); |
| | 1886 | } |
| | 1887 | } |