- // ==UserScript==
- // @name WME GLR State Scripts
- // @namespace https://gf.qytechs.cn/users/30701-justins83-waze
- // @version 0.3
- // @description Consolidation of state scripts (validator/counties/cities) for GLR states
- // @include https://www.waze.com/editor/*
- // @include https://www.waze.com/*/editor/*
- // @include https://beta.waze.com/*
- // @exclude https://www.waze.com/user/editor*
- // @author JustinS83
- // @grant none
- // @require https://gf.qytechs.cn/scripts/9794-wlib/code/wLib.js?version=106259
- // @require https://gf.qytechs.cn/scripts/23614-wlibext/code/wLibExt.js?version=150020
- // @license GPLv3
- // ==/UserScript==
-
- (function() {
- 'use strict';
-
- function bootstrap(tries) {
- tries = tries || 1;
-
- if (window.W &&
- window.W.map &&
- window.W.model &&
- $) {
- init();
- } else if (tries < 1000) {
- setTimeout(function () {bootstrap(tries++);}, 200);
- }
- }
-
- bootstrap();
-
- function isChecked(id) {
- return $('#' + id).is(':checked');
- }
-
- function setChecked(id, checked) {
- $('#' + id).prop('checked', checked);
- }
-
- function init(){
- var $section = $("<div>", {style:"padding:8px 16px", id:"GLRStateSections"});
-
- var $OHsection = $("<div>", {style:"padding:8px 16px", id:"GLROHScriptsSettings"});
- $OHsection.html([
- '<div style="font-weight:bold">Ohio</div>',
- '<div title="OH Validator Localization, Author: Xanderb" id="divGLROHValidatorLocalization" class="controls-container"><input type="checkbox" id="_cbGLROHValidatorLocalizationEnable" name="StateValidator" /><label for="_cbGLROHValidatorLocalizationEnable">OH Validator Localization <a href="https://gf.qytechs.cn/en/scripts/8746-wme-validator-localization-for-ohio" target="_blank">...</a></label></div>',
- '<div title="OH Counties 2014, Author: rickzable" class="controls-container"><input type="checkbox" id="_cbGLROHCounties2014Enable" /><label for ="_cbGLROHCounties2014Enable"> OH Counties 2014 <a href="https://gf.qytechs.cn/scripts/11240-wme-counties-ohio-census-2014" target="_blank">...</a></label></div>',
- '<div title="OH Cities 2014-1, Author: JustinS83" class="controls-container"><input type="checkbox" id="_cbGLROHCities20141Enable" /><label for ="_cbGLROHCities20141Enable"> OH Cities 2014-1 <a href="https://gf.qytechs.cn/scripts/17391-wme-ohio-cities-census-2014-1" target="_blank">...</a></label></div>',
- '<div title="OH Cities 2014-2, Author: JustinS83" class="controls-container"><input type="checkbox" id="_cbGLROHCities20142Enable" /><label for ="_cbGLROHCities20142Enable"> OH Cities 2014-2 <a href="https://gf.qytechs.cn/scripts/17392-wme-ohio-cities-census-2014-2" target="_blank">...</a></label></div>',
- ].join(' '));
-
- var $INsection = $("<div>", {style:"padding:8px 16px", id:"GLRINScriptsSettings"});
- $INsection.html([
- '<div style="font-weight:bold">Indiana</div>',
- '<div title="IN Validator Localization, Author: Xanderb" id="divINValidatorLocalization" class="controls-container"><input type="checkbox" id="_cbGLRINValidatorLocalizationEnable" name="StateValidator" /><label for="_cbGLRINValidatorLocalizationEnable">IN Validator Localization <a href="https://gf.qytechs.cn/en/scripts/8433-wme-validator-localization-for-indiana" target="_blank">...</a></label></div>',
- '<div title="IN Counties 2014, Author: rickzable" class="controls-container"><input type="checkbox" id="_cbGLRINCounties2014Enable" /><label for ="_cbGLRINCounties2014Enable"> IN Counties 2014 <a href="https://gf.qytechs.cn/en/scripts/11442-wme-counties-indiana-census-2014" target="_blank">...</a></label></div>',
- ].join(' '));
-
- var $ILsection = $("<div>", {style:"padding:8px 16px", id:"GLRILScriptsSettings"});
- $ILsection.html([
- '<div style="font-weight:bold">Illinois</div>',
- '<div title="IL Validator Localization, Author: Xanderb" id="divILValidatorLocalization" class="controls-container"><input type="checkbox" id="_cbGLRILValidatorLocalizationEnable" name="StateValidator" /><label for="_cbGLRILValidatorLocalizationEnable">IL Validator Localization <a href="https://gf.qytechs.cn/en/scripts/8747-wme-validator-localization-for-illinois" target="_blank">...</a></label></div>',
- '<div title="IL Counties 2014, Author: rickzable" class="controls-container"><input type="checkbox" id="_cbGLRILCounties2014Enable" /><label for ="_cbGLRILCounties2014Enable"> IN Counties 2014 <a href="https://gf.qytechs.cn/en/scripts/8297-wme-counties-illinois-census-2014" target="_blank">...</a></label></div>',
- ].join(' '));
-
- var $WIsection = $("<div>", {style:"padding:8px 16px", id:"GLRWIScriptsSettings"});
- $WIsection.html([
- '<div style="font-weight:bold">Wisconsin</div>',
- '<div title="WI Validator Localization, Author: Xanderb" id="divWIValidatorLocalization" class="controls-container"><input type="checkbox" id="_cbGLRWIValidatorLocalizationEnable" name="StateValidator" /><label for="_cbGLRWIValidatorLocalizationEnable">WI Validator Localization <a href="https://gf.qytechs.cn/en/scripts/8748-wme-validator-localization-for-wisconsin" target="_blank">...</a></label></div>',
- '<div title="WI Counties 2014, Author: rickzable" class="controls-container"><input type="checkbox" id="_cbGLRWICounties2014Enable" /><label for ="_cbGLRWICounties2014Enable"> WI Counties 2014 <a href="https://gf.qytechs.cn/en/scripts/11498-wme-counties-wisconsin-census-2014" target="_blank">...</a></label></div>',
- ].join(' '));
-
- var $MIsection = $("<div>", {style:"padding:8px 16px", id:"GLRMIScriptsSettings"});
- $MIsection.html([
- '<div style="font-weight:bold">Michigan</div>',
- '<div title="MI Validator Localization, Author: Xanderb" id="divMIValidatorLocalization" class="controls-container"><input type="checkbox" id="_cbGLRMIValidatorLocalizationEnable" name="StateValidator" /><label for="_cbGLRMIValidatorLocalizationEnable">MI Validator Localization <a href="https://gf.qytechs.cn/en/scripts/8749-wme-validator-localization-for-michigan" target="_blank">...</a></label></div>',
- '<div title="MI Counties 2014, Author: rickzable" class="controls-container"><input type="checkbox" id="_cbGLRMICounties2014Enable" /><label for ="_cbGLRMICounties2014Enable"> MI Counties 2014 <a href="https://gf.qytechs.cn/en/scripts/11453-wme-counties-michigan-census-2014" target="_blank">...</a></label></div>',
- '<div title="MI Drive Total Closures Only, Author: vaindil" class="controls-container"><input type="checkbox" id="_cbGLRMIDriveTotalClosures" /><label for="_cbGLRMIDriveTotalClosures">MI Drive Total Closures <a href="https://gf.qytechs.cn/en/scripts/15672-mi-drive-total-closures-only" target="_blank">...</a></label></div>',
- ].join(' '));
-
- $section.append($OHsection);
- $section.append($INsection);
- $section.append($ILsection);
- $section.append($WIsection);
- $section.append($MIsection);
-
- new wLib.Interface.Tab('GLR Scripts', $section.html(), initializeSettings);
- }
-
- function initializeSettings(){
- $('input[name^="StateValidator"]').change(function () {
- $('input[name^="StateValidator"]').not(this).prop('checked', false);
- });
-
- loadOhio();
- loadIndiana();
- loadIllinois();
- loadWisconsin();
- loadMichigan();
- }
-
- function loadOhio(){
- var storedOptionsStr = localStorage.GLR_OHScripts;
-
- if(!localStorage.GLR_OHScripts)
- storedOptionsStr = localStorage.OHScripts;
-
- var options = storedOptionsStr ? JSON.parse(storedOptionsStr) : [0, true, true, false, false, true];
- setChecked('_cbGLROHValidatorLocalizationEnable', options[1]);
- setChecked('_cbGLROHCounties2014Enable', options[2]);
- setChecked('_cbGLROHCities20141Enable', options[3]);
- setChecked('_cbGLROHCities20142Enable', options[4]);
-
- if(!localStorage.GLR_OHScripts){
- SaveSettings();
- localStorage.removeItem("OHScripts");
- }
-
- $('input[id^="_cbGLROH"]').change(function() { SaveSettings(); });
-
- if(!$('#OHScriptsSettings')){
- if(options[1])
- $.getScript("https://gf.qytechs.cn/scripts/8746-wme-validator-localization-for-ohio/code/WME%20Validator%20Localization%20for%20Ohio.user.js");
-
- if(options[2])
- $.getScript("https://gf.qytechs.cn/scripts/11240-wme-counties-ohio-census-2014/code/WME%20Counties%20Ohio%20Census%202014.user.js");
-
- if(options[3])
- $.getScript("https://gf.qytechs.cn/scripts/17391-wme-ohio-cities-census-2014-1/code/WME%20Ohio%20Cities%20Census%202014%20-%201.user.js");
-
- if(options[4])
- $.getScript("https://gf.qytechs.cn/scripts/17392-wme-ohio-cities-census-2014-2/code/WME%20Ohio%20Cities%20Census%202014%20-%202.user.js");
- }
-
-
- }
-
- function loadIndiana(){
- var storedOptionsStr = localStorage.GLR_INScripts;
-
- var options = storedOptionsStr ? JSON.parse(storedOptionsStr) : [0, false, false];
- setChecked('_cbGLRINValidatorLocalizationEnable', options[1]);
- setChecked('_cbGLRINCounties2014Enable', options[2]);
-
- $('input[id^="_cbGLRIN"]').change(function() { SaveSettings(); });
-
- if(options[1])
- $.getScript("https://gf.qytechs.cn/scripts/8433-wme-validator-localization-for-indiana/code/WME%20Validator%20Localization%20for%20Indiana.user.js");
-
- if(options[2])
- $.getScript("https://gf.qytechs.cn/scripts/11442-wme-counties-indiana-census-2014/code/WME%20Counties%20Indiana%20Census%202014.user.js");
- }
-
- function loadIllinois(){
- var storedOptionsStr = localStorage.GLR_ILScripts;
-
- var options = storedOptionsStr ? JSON.parse(storedOptionsStr) : [0, false, false];
- setChecked('_cbGLRILValidatorLocalizationEnable', options[1]);
- setChecked('_cbGLRILCounties2014Enable', options[2]);
-
- $('input[id^="_cbGLRIL"]').change(function() { SaveSettings(); });
-
- if(options[1])
- $.getScript("https://gf.qytechs.cn/scripts/8747-wme-validator-localization-for-illinois/code/WME%20Validator%20Localization%20for%20Illinois.user.js");
-
- if(options[2])
- $.getScript("https://gf.qytechs.cn/scripts/8297-wme-counties-illinois-census-2014/code/WME%20Counties%20Illinois%20Census%202014.user.js");
- }
-
- function loadWisconsin(){
- var storedOptionsStr = localStorage.GLR_WIScripts;
-
- var options = storedOptionsStr ? JSON.parse(storedOptionsStr) : [0, false, false];
- setChecked('_cbGLRWIValidatorLocalizationEnable', options[1]);
- setChecked('_cbGLRWICounties2014Enable', options[2]);
-
- $('input[id^="_cbGLRWI"]').change(function() { SaveSettings(); });
-
- if(options[1])
- $.getScript("https://gf.qytechs.cn/scripts/8748-wme-validator-localization-for-wisconsin/code/WME%20Validator%20Localization%20for%20Wisconsin.user.js");
-
- if(options[2])
- $.getScript("https://gf.qytechs.cn/scripts/11498-wme-counties-wisconsin-census-2014/code/WME%20Counties%20Wisconsin%20Census%202014.user.js");
- }
-
- function loadMichigan(){
- var storedOptionsStr = localStorage.GLR_MIScripts;
-
- var options = storedOptionsStr ? JSON.parse(storedOptionsStr) : [0, false, false, false];
- setChecked('_cbGLRMIValidatorLocalizationEnable', options[1]);
- setChecked('_cbGLRMICounties2014Enable', options[2]);
- setChecked('_cbGLRMIDriveTotalClosures', options[3]);
-
- $('input[id^="_cbGLRMI"]').change(function() { SaveSettings(); });
-
- if(options[1])
- $.getScript("https://gf.qytechs.cn/scripts/8749-wme-validator-localization-for-michigan/code/WME%20Validator%20Localization%20for%20Michigan.user.js");
-
- if(options[2])
- $.getScript("https://gf.qytechs.cn/scripts/11453-wme-counties-michigan-census-2014/code/WME%20Counties%20Michigan%20Census%202014.user.js");
-
- if(options[3])
- $.getScript("https://gf.qytechs.cn/scripts/15672-mi-drive-total-closures-only/code/Mi%20Drive%20-%20Total%20Closures%20Only.user.js");
- }
-
- function SaveSettings(){
- if (localStorage) {
- var options = [];
- // preserve previous options which may get lost after logout
- if (localStorage.GLR_OHScripts) { options = JSON.parse(localStorage.GLR_OHScripts); }
- options[1] = isChecked('_cbGLROHValidatorLocalizationEnable');
- options[2] = isChecked('_cbGLROHCounties2014Enable');
- options[3] = isChecked('_cbGLROHCities20141Enable');
- options[4] = isChecked('_cbGLROHCities20142Enable');
- options[5] = isChecked('GLRFCDisplay');
- localStorage.GLR_OHScripts = JSON.stringify(options);
-
- var ILoptions = [];
- if (localStorage.GLR_ILScripts) { options = JSON.parse(localStorage.GLR_ILScripts); }
- ILoptions[1] = isChecked('_cbGLRILValidatorLocalizationEnable');
- ILoptions[2] = isChecked('_cbGLRILCounties2014Enable');
- localStorage.GLR_ILScripts = JSON.stringify(ILoptions);
-
- var INoptions = [];
- if (localStorage.GLR_INScripts) { options = JSON.parse(localStorage.GLR_INScripts); }
- INoptions[1] = isChecked('_cbGLRINValidatorLocalizationEnable');
- INoptions[2] = isChecked('_cbGLRINCounties2014Enable');
- localStorage.GLR_INScripts = JSON.stringify(INoptions);
-
- var WIoptions = [];
- if (localStorage.GLR_WIScripts) { options = JSON.parse(localStorage.GLR_WIScripts); }
- WIoptions[1] = isChecked('_cbGLRWIValidatorLocalizationEnable');
- WIoptions[2] = isChecked('_cbGLRWICounties2014Enable');
- localStorage.GLR_WIScripts = JSON.stringify(WIoptions);
-
- var MIoptions = [];
- if (localStorage.GLR_MIScripts) { options = JSON.parse(localStorage.GLR_MIScripts); }
- MIoptions[1] = isChecked('_cbGLRMIValidatorLocalizationEnable');
- MIoptions[2] = isChecked('_cbGLRMICounties2014Enable');
- MIoptions[3] = isChecked('_cbGLRMIDriveTotalClosures');
- localStorage.GLR_MIScripts = JSON.stringify(MIoptions);
- }
- }
-
- })();