WME Form Filler KS/MO

Use info from WME to automatically fill out related forms - for the KS/MO MapRaid

Install this script?
Author's suggested script

You may also like WME Layer Saver.

Install this script
// ==UserScript==
// @name        WME Form Filler KS/MO
// @description Use info from WME to automatically fill out related forms - for the KS/MO MapRaid
// @namespace   hbiede.com
// @version     2019.07.23.001
// @include     /^https:\/\/(www|beta)\.waze\.com\/(?!user\/)(.{2,6}\/)?editor.*$/
// @author      HBiede
// @license     MIT
// @run-at      document-end
// @icon        data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NUIzRDdFNzAwRTlGMTFFNkIyRDZGMzNERUFDMUM1NDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NUIzRDdFNzEwRTlGMTFFNkIyRDZGMzNERUFDMUM1NDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1QjNEN0U2RTBFOUYxMUU2QjJENkYzM0RFQUMxQzU0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1QjNEN0U2RjBFOUYxMUU2QjJENkYzM0RFQUMxQzU0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtdrqLIAAAOCSURBVHjatJdLaBNBGMdn81ITQ2mLNqlIKInGkpSgFooPpKGHIlZPJqgoIvQivooPfFUsxYNVW62KiuItPah48RaUSlFEaDzEqgeV+sBUxag1rZa8Nv6nfMKaZpNssx34kdnN7sx/5nvNCtFolAUCAW8ymdwtCIKZMZZh6jQBjIIL4EkikWA+n485HI7/HtLFYjHH0NDQnXQ6XQkBbAbaGrAsHo+PNDc3T/lTF4lEVouiWKnX62O4DgBRpYn1YBuoAkuxwBGNRjNVAP7QZjKTu/4V7FJ59euAEWjlHtBg2//ZXEOq1WpzaUyWz690Ms5jUDhZcrqm0+UYyAPuKxyH2zqohgC++j/gmcJxRot5yGAwFBTAr9+AtWrHIqKMBYNBFgqFmlKpVLympuax1+udIiBD9reUON/nLMcTtFotC4fDBoR8H5JSVV1dXVdjY+OxbAEpUA8GSxRQC95KrkUe6jABzwnbkQ/OmUwmPSJQzBbAw+YL6C5hcr7y72TO2TTeI9AA7oErELNBp9NF5HzgEziogtnNZM6j4BfoAfNBB0XZu1wCuAkWggMKJ7sBXmbd4xmwH1wHW8FKut/Hi5NcFIiUu/cpFNCfQ0ACHKGdOM0LHbx/DE54HJWX92XDMEy7oKRFc9z7SXSBBZiYWSyWs0aj8QMvzVarVTYRJckP1GhLwN7J7Ugkhv1+f4/H48mbiPi+LOKeWmIUtIKP4AxFAiNn/F0oE/KX5wB3iQLSoAmsp3sPwW0q+3kF8HL8HFgVTqrJqvn8upf6XMyhYotRhsKnVqEAXj9ikuv9wEX9m/mKWy4fWA6eKhSwEdylfjVop/4PcEJJOebbOAz2KDgdC1kr7ATl1O+gUFwMXhcjgNvuG7g8TQdcAXZQ/xW4RLvxXk6ARmagBhqoTHJvFdhCUSLX2iVjttH7h8GEEh9wggEwiw4mfirRA2Sia2CnzHjV9HuLCs5FOpwmlERBGU3Om41+50nCzJ4nFCM0eTftlI/XAJ778WHCeDou5kg2SNtXLzkXPAAnKbWeymOCzWCM+nwRGT55S0sLs9lszG635xQgSCphivq9OU7LnQUcUJRMzts4T0JozOl0Ci6Xq6AJ+GHhPGUuNRo/jJRTGZbPAyiLIZzRJrBVZXi4bQY+TsfNZvMLWQEVFRVht9u9CQJaIcCk8uf5GArQVRxAh+Ue+ivAAAY7DIf3WTuXAAAAAElFTkSuQmCC
// @grant       none
// @copyright   2019 HBiede, adapted from crazycaveman
// ==/UserScript==

/*global W, $, GM_info */

(function () {
    "use strict";
    const debug = false;
    var WMEFFName = GM_info.script.name;
    var WMEFFVersion = GM_info.script.version;
    var WMEFFIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NUIzRDdFNzAwRTlGMTFFNkIyRDZGMzNERUFDMUM1NDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NUIzRDdFNzEwRTlGMTFFNkIyRDZGMzNERUFDMUM1NDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1QjNEN0U2RTBFOUYxMUU2QjJENkYzM0RFQUMxQzU0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1QjNEN0U2RjBFOUYxMUU2QjJENkYzM0RFQUMxQzU0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtdrqLIAAAOCSURBVHjatJdLaBNBGMdn81ITQ2mLNqlIKInGkpSgFooPpKGHIlZPJqgoIvQivooPfFUsxYNVW62KiuItPah48RaUSlFEaDzEqgeV+sBUxag1rZa8Nv6nfMKaZpNssx34kdnN7sx/5nvNCtFolAUCAW8ymdwtCIKZMZZh6jQBjIIL4EkikWA+n485HI7/HtLFYjHH0NDQnXQ6XQkBbAbaGrAsHo+PNDc3T/lTF4lEVouiWKnX62O4DgBRpYn1YBuoAkuxwBGNRjNVAP7QZjKTu/4V7FJ59euAEWjlHtBg2//ZXEOq1WpzaUyWz690Ms5jUDhZcrqm0+UYyAPuKxyH2zqohgC++j/gmcJxRot5yGAwFBTAr9+AtWrHIqKMBYNBFgqFmlKpVLympuax1+udIiBD9reUON/nLMcTtFotC4fDBoR8H5JSVV1dXVdjY+OxbAEpUA8GSxRQC95KrkUe6jABzwnbkQ/OmUwmPSJQzBbAw+YL6C5hcr7y72TO2TTeI9AA7oErELNBp9NF5HzgEziogtnNZM6j4BfoAfNBB0XZu1wCuAkWggMKJ7sBXmbd4xmwH1wHW8FKut/Hi5NcFIiUu/cpFNCfQ0ACHKGdOM0LHbx/DE54HJWX92XDMEy7oKRFc9z7SXSBBZiYWSyWs0aj8QMvzVarVTYRJckP1GhLwN7J7Ugkhv1+f4/H48mbiPi+LOKeWmIUtIKP4AxFAiNn/F0oE/KX5wB3iQLSoAmsp3sPwW0q+3kF8HL8HFgVTqrJqvn8upf6XMyhYotRhsKnVqEAXj9ikuv9wEX9m/mKWy4fWA6eKhSwEdylfjVop/4PcEJJOebbOAz2KDgdC1kr7ATl1O+gUFwMXhcjgNvuG7g8TQdcAXZQ/xW4RLvxXk6ARmagBhqoTHJvFdhCUSLX2iVjttH7h8GEEh9wggEwiw4mfirRA2Sia2CnzHjV9HuLCs5FOpwmlERBGU3Om41+50nCzJ4nFCM0eTftlI/XAJ778WHCeDou5kg2SNtXLzkXPAAnKbWeymOCzWCM+nwRGT55S0sLs9lszG635xQgSCphivq9OU7LnQUcUJRMzts4T0JozOl0Ci6Xq6AJ+GHhPGUuNRo/jJRTGZbPAyiLIZzRJrBVZXi4bQY+TsfNZvMLWQEVFRVht9u9CQJaIcCk8uf5GArQVRxAh+Ue+ivAAAY7DIf3WTuXAAAAAElFTkSuQmCC";
    var forms = {};
    var ff_mapLayer;
    var groups =   [{
						name: "Group 1",
						points: [{lon: '-96.35378', lat: '38.521657'}, {lon: '-96.357277', lat: '38.17266'}, {lon: '-96.358099', lat: '38.085817'}, {lon: '-96.522782', lat: '38.08637'}, {lon: '-96.840772', lat: '38.085622'}, {lon: '-97.152913', lat: '38.087704'}, {lon: '-97.153093', lat: '38.174634'}, {lon: '-97.37175', lat: '38.173673'}, {lon: '-97.701841', lat: '38.173814'}, {lon: '-97.922136', lat: '38.173713'}, {lon: '-97.924269', lat: '38.522755'}, {lon: '-98.480377', lat: '38.521841'}, {lon: '-98.479913', lat: '38.681528'}, {lon: '-98.486108', lat: '38.696878'}, {lon: '-99.032971', lat: '38.696759'}, {lon: '-99.042626', lat: '38.696807'}, {lon: '-99.585087', lat: '38.696537'}, {lon: '-99.598323', lat: '38.696514'}, {lon: '-100.153823', lat: '38.697341'}, {lon: '-100.2472', lat: '38.698165'}, {lon: '-100.688006', lat: '38.700021'}, {lon: '-100.818698', lat: '38.699861'}, {lon: '-101.128379', lat: '38.700603'}, {lon: '-101.484383', lat: '38.700166'}, {lon: '-101.567094', lat: '38.699669'}, {lon: '-102.045712903087', lat: '38.6975657700785'}, {lon: '-102.046571', lat: '39.047038'}, {lon: '-102.047200721701', lat: '39.1331467095112'}, {lon: '-102.04896', lat: '39.373712'}, {lon: '-102.049961857828', lat: '39.5681789806731'}, {lon: '-102.049992135644', lat: '39.574056097421'}, {lon: '-102.051254', lat: '39.818992'}, {lon: '-102.051744', lat: '40.003078'}, {lon: '-101.832161', lat: '40.002933'}, {lon: '-101.542273', lat: '40.002609'}, {lon: '-101.411028987802', lat: '40.0025825695676'}, {lon: '-101.325514027519', lat: '40.0025653482305'}, {lon: '-101.293991', lat: '40.002559'}, {lon: '-101.060317', lat: '40.002307'}, {lon: '-100.75883', lat: '40.002302'}, {lon: '-100.738824713191', lat: '40.0022629565677'}, {lon: '-100.477018', lat: '40.001752'}, {lon: '-100.193599056836', lat: '40.0015730057199'}, {lon: '-100.19359', lat: '40.001573'}, {lon: '-100.177797545879', lat: '40.0015658138516'}, {lon: '-99.813401', lat: '40.0014'}, {lon: '-99.6282538492245', lat: '40.0017719472684'}, {lon: '-99.6253267263996', lat: '40.001777827647'}, {lon: '-99.501792', lat: '40.002026'}, {lon: '-99.1791331508611', lat: '40.0021089526949'}, {lon: '-99.085597', lat: '40.002133'}, {lon: '-99.0670183498981', lat: '40.0021435130522'}, {lon: '-98.726372963939', lat: '40.0023362731669'}, {lon: '-98.613755', lat: '40.0024'}, {lon: '-98.5044549836368', lat: '40.002379876736'}, {lon: '-98.2740170597529', lat: '40.0023374507299'}, {lon: '-98.076034', lat: '40.002301'}, {lon: '-97.9318249263172', lat: '40.0022363450196'}, {lon: '-97.8215008122752', lat: '40.0021868820889'}, {lon: '-97.777155', lat: '40.002167'}, {lon: '-97.415833', lat: '40.002001'}, {lon: '-97.369199035315', lat: '40.0019393057605'}, {lon: '-97.009165', lat: '40.001463'}, {lon: '-96.9164070054658', lat: '40.0014540910439'}, {lon: '-96.873812', lat: '40.00145'}, {lon: '-96.805768', lat: '40.0013684550954'}, {lon: '-96.806201', lat: '39.827538'}, {lon: '-96.806544', lat: '39.566423'}, {lon: '-96.958719', lat: '39.566401'}, {lon: '-96.961693', lat: '39.220076'}, {lon: '-96.849879', lat: '39.219012'}, {lon: '-96.851409', lat: '39.088176'}, {lon: '-96.501166', lat: '39.043666'}, {lon: '-96.501556', lat: '38.869704'}, {lon: '-96.501397', lat: '38.826188'}, {lon: '-96.390398', lat: '38.825858'}, {lon: '-96.389749', lat: '38.738984'}, {lon: '-96.352613', lat: '38.739021'}, {lon: '-96.35378', lat: '38.521657'}]
					},
					{
						name: "Group 2",
						color: "#EE9C96",
						points: [{lon: '-97.807823', lat: '37.733855'}, {lon: '-97.8076', lat: '37.474184'}, {lon: '-97.807057', lat: '37.386293'}, {lon: '-97.804337', lat: '37.366069'}, {lon: '-97.8023129703503', lat: '36.998698609394'}, {lon: '-98.045342', lat: '36.998327'}, {lon: '-98.1119851837458', lat: '36.9982479946353'}, {lon: '-98.3471487797447', lat: '36.9979692086496'}, {lon: '-98.354073', lat: '36.997961'}, {lon: '-98.5446619733489', lat: '36.9985242404006'}, {lon: '-98.791936', lat: '36.999255'}, {lon: '-99.0003010538842', lat: '36.9993580981444'}, {lon: '-99.129449', lat: '36.999422'}, {lon: '-99.407015', lat: '36.999579'}, {lon: '-99.4562024346753', lat: '36.9997002794079'}, {lon: '-99.5411149123609', lat: '36.9999096445655'}, {lon: '-99.657658', lat: '37.000197'}, {lon: '-99.995201', lat: '37.001631'}, {lon: '-100.002571514322', lat: '37.001619153912'}, {lon: '-100.089481743903', lat: '37.0014794694635'}, {lon: '-100.552683', lat: '37.000735'}, {lon: '-100.633324986158', lat: '37.0001736090529'}, {lon: '-100.855634', lat: '36.998626'}, {lon: '-100.945466793078', lat: '36.9982468287288'}, {lon: '-101.06645021566', lat: '36.9977361751404'}, {lon: '-101.211486', lat: '36.997124'}, {lon: '-101.485326', lat: '36.995611'}, {lon: '-101.555258848691', lat: '36.9952909392776'}, {lon: '-101.90244', lat: '36.993702'}, {lon: '-102.028204191045', lat: '36.9931451471083'}, {lon: '-102.04224', lat: '36.993083'}, {lon: '-102.04192', lat: '37.035083'}, {lon: '-102.041983', lat: '37.106551'}, {lon: '-102.041963', lat: '37.258164'}, {lon: '-102.041938522874', lat: '37.3891900553938'}, {lon: '-102.041890869665', lat: '37.6442776852918'}, {lon: '-102.041876', lat: '37.723875'}, {lon: '-102.041965658628', lat: '37.7385405736382'}, {lon: '-102.044255', lat: '38.113011'}, {lon: '-102.044634270291', lat: '38.2624115677495'}, {lon: '-102.044650359147', lat: '38.2687492225031'}, {lon: '-102.044944', lat: '38.384419'}, {lon: '-102.04551057457', lat: '38.6151645901775'}, {lon: '-102.045712903087', lat: '38.6975657700785'}, {lon: '-101.567094', lat: '38.699669'}, {lon: '-101.484383', lat: '38.700166'}, {lon: '-101.128379', lat: '38.700603'}, {lon: '-100.818698', lat: '38.699861'}, {lon: '-100.688006', lat: '38.700021'}, {lon: '-100.2472', lat: '38.698165'}, {lon: '-100.153823', lat: '38.697341'}, {lon: '-99.598323', lat: '38.696514'}, {lon: '-99.585087', lat: '38.696537'}, {lon: '-99.042626', lat: '38.696807'}, {lon: '-99.032971', lat: '38.696759'}, {lon: '-98.486108', lat: '38.696878'}, {lon: '-98.479913', lat: '38.681528'}, {lon: '-98.480377', lat: '38.521841'}, {lon: '-97.924269', lat: '38.522755'}, {lon: '-97.922136', lat: '38.173713'}, {lon: '-97.701841', lat: '38.173814'}, {lon: '-97.701969', lat: '37.911325'}, {lon: '-97.698692', lat: '37.735056'}, {lon: '-97.807823', lat: '37.733855'}]
					},
					{
						name: "Group 3",
						color: "#A61B4A",
						points: [{lon: '-95.9642712321022', lat: '36.9992231442824'}, {lon: '-96.0008102061996', lat: '36.9992010529279'}, {lon: '-96.217571', lat: '36.99907'}, {lon: '-96.500288', lat: '36.998643'}, {lon: '-96.5255820442829', lat: '36.9986779687248'}, {lon: '-96.524873', lat: '37.30273'}, {lon: '-96.52569', lat: '37.476405'}, {lon: '-96.5253', lat: '37.607015'}, {lon: '-96.522782', lat: '38.08637'}, {lon: '-96.358099', lat: '38.085817'}, {lon: '-96.357277', lat: '38.17266'}, {lon: '-96.35378', lat: '38.521657'}, {lon: '-96.352613', lat: '38.739021'}, {lon: '-96.389749', lat: '38.738984'}, {lon: '-96.390398', lat: '38.825858'}, {lon: '-96.501397', lat: '38.826188'}, {lon: '-96.501556', lat: '38.869704'}, {lon: '-96.501166', lat: '39.043666'}, {lon: '-96.851409', lat: '39.088176'}, {lon: '-96.849879', lat: '39.219012'}, {lon: '-96.961693', lat: '39.220076'}, {lon: '-96.958719', lat: '39.566401'}, {lon: '-96.806544', lat: '39.566423'}, {lon: '-96.806201', lat: '39.827538'}, {lon: '-96.805768', lat: '40.0013684550954'}, {lon: '-96.469945', lat: '40.000966'}, {lon: '-96.4637120767748', lat: '40.0009585725545'}, {lon: '-96.2392078784111', lat: '40.0006910427544'}, {lon: '-96.239172', lat: '40.000691'}, {lon: '-96.154365', lat: '40.000495'}, {lon: '-96.02409', lat: '40.000719'}, {lon: '-96.0106788179345', lat: '40.000704665772'}, {lon: '-95.7881109948917', lat: '40.0004667793653'}, {lon: '-95.784575', lat: '40.000463'}, {lon: '-95.3398959708503', lat: '40.0000288571054'}, {lon: '-95.30829', lat: '39.999998'}, {lon: '-95.231114', lat: '39.943784'}, {lon: '-95.142445', lat: '39.89542'}, {lon: '-95.081534', lat: '39.861718'}, {lon: '-95.018743', lat: '39.897372'}, {lon: '-94.9933742397144', lat: '39.8985652599923'}, {lon: '-94.95154', lat: '39.900533'}, {lon: '-94.928466', lat: '39.876344'}, {lon: '-94.878677', lat: '39.826522'}, {lon: '-94.8778175298512', lat: '39.8204147760355'}, {lon: '-94.871144', lat: '39.772994'}, {lon: '-94.860371', lat: '39.74953'}, {lon: '-94.899316', lat: '39.724042'}, {lon: '-94.971078', lat: '39.723146'}, {lon: '-94.971317', lat: '39.68641'}, {lon: '-95.037464', lat: '39.652905'}, {lon: '-95.0440507525704', lat: '39.6136682968209'}, {lon: '-95.047165', lat: '39.595117'}, {lon: '-95.076688', lat: '39.576764'}, {lon: '-95.113557', lat: '39.553941'}, {lon: '-95.091419402824', lat: '39.53325788521'}, {lon: '-95.049845', lat: '39.494415'}, {lon: '-94.982144', lat: '39.440552'}, {lon: '-94.9657474186335', lat: '39.4216817446564'}, {lon: '-94.946662', lat: '39.399717'}, {lon: '-94.888972', lat: '39.392432'}, {lon: '-94.908065', lat: '39.323663'}, {lon: '-94.857072', lat: '39.273825'}, {lon: '-94.825663', lat: '39.241729'}, {lon: '-94.799663', lat: '39.206018'}, {lon: '-94.7919946737433', lat: '39.2012602502402'}, {lon: '-94.900191', lat: '39.202911'}, {lon: '-94.908765', lat: '38.991401'}, {lon: '-94.923349', lat: '39.002633'}, {lon: '-95.056258', lat: '38.98212'}, {lon: '-95.056412', lat: '38.738587'}, {lon: '-94.908606', lat: '38.738281'}, {lon: '-94.6094896723458', lat: '38.7381017094732'}, {lon: '-94.6119580183223', lat: '38.5476344342717'}, {lon: '-94.6128655959221', lat: '38.4776021802351'}, {lon: '-94.612866', lat: '38.477571'}, {lon: '-94.6127726289929', lat: '38.3887184827318'}, {lon: '-94.612614', lat: '38.237766'}, {lon: '-94.6139299610557', lat: '38.0600529598965'}, {lon: '-94.6141002487054', lat: '38.0370565833813'}, {lon: '-94.614465', lat: '37.987799'}, {lon: '-94.617885', lat: '37.682214'}, {lon: '-94.6178724508981', lat: '37.6731107003321'}, {lon: '-94.6178455243542', lat: '37.6535777966344'}, {lon: '-94.617511', lat: '37.410909'}, {lon: '-94.6176676047008', lat: '37.3641703270387'}, {lon: '-94.6177538916066', lat: '37.338418'}, {lon: '-94.618351', lat: '37.160211'}, {lon: '-94.618102891103', lat: '37.0567963908729'}, {lon: '-94.617964', lat: '36.998905'}, {lon: '-94.71277', lat: '36.998794'}, {lon: '-94.995293', lat: '36.999529'}, {lon: '-95.0076200044721', lat: '36.9995225591258'}, {lon: '-95.0735039666303', lat: '36.9994881346791'}, {lon: '-95.322565', lat: '36.999358'}, {lon: '-95.4076200058771', lat: '36.9993417366391'}, {lon: '-95.5224145523987', lat: '36.9993197867829'}, {lon: '-95.573598', lat: '36.99931'}, {lon: '-95.7867618707782', lat: '36.999270917592'}, {lon: '-95.928122', lat: '36.999245'}, {lon: '-95.9642712321022', lat: '36.9992231442824'}]
					},
					{
						name: "Group 4",
						points: [{lon: '-96.52569', lat: '37.476405'}, {lon: '-96.524873', lat: '37.30273'}, {lon: '-96.5255820442829', lat: '36.9986779687248'}, {lon: '-96.749838', lat: '36.998988'}, {lon: '-97.100652', lat: '36.998998'}, {lon: '-97.1477209669227', lat: '36.9989723356215'}, {lon: '-97.384925', lat: '36.998843'}, {lon: '-97.4623460298641', lat: '36.9988242387969'}, {lon: '-97.768704', lat: '36.99875'}, {lon: '-97.8023129703503', lat: '36.998698609394'}, {lon: '-97.804337', lat: '37.366069'}, {lon: '-97.807057', lat: '37.386293'}, {lon: '-97.8076', lat: '37.474184'}, {lon: '-97.807823', lat: '37.733855'}, {lon: '-97.698692', lat: '37.735056'}, {lon: '-97.701969', lat: '37.911325'}, {lon: '-97.701841', lat: '38.173814'}, {lon: '-97.37175', lat: '38.173673'}, {lon: '-97.153093', lat: '38.174634'}, {lon: '-97.152913', lat: '38.087704'}, {lon: '-96.840772', lat: '38.085622'}, {lon: '-96.522782', lat: '38.08637'}, {lon: '-96.5253', lat: '37.607015'}, {lon: '-96.52569', lat: '37.476405'}]
					},
					{
						name: "Group 5",
						points: [{lon: '-94.2322407102083', lat: '40.5720146121266'}, {lon: '-94.091085', lat: '40.572897'}, {lon: '-94.015492', lat: '40.5740737070096'}, {lon: '-93.84093', lat: '40.576791'}, {lon: '-93.7743442040303', lat: '40.5775304533911'}, {lon: '-93.597352', lat: '40.579496'}, {lon: '-93.5568966742717', lat: '40.5796594850605'}, {lon: '-93.3743862587638', lat: '40.5803970326092'}, {lon: '-93.345442', lat: '40.580514'}, {lon: '-93.135802', lat: '40.582854'}, {lon: '-93.0972912037498', lat: '40.5838234773251'}, {lon: '-92.941595', lat: '40.587743'}, {lon: '-92.714597263045', lat: '40.5895828338363'}, {lon: '-92.683162', lat: '40.560663'}, {lon: '-92.70932', lat: '40.445893'}, {lon: '-92.684167', lat: '40.343466'}, {lon: '-92.855629', lat: '40.342736'}, {lon: '-92.856191', lat: '40.037253'}, {lon: '-92.847477', lat: '40.037301'}, {lon: '-92.85792', lat: '39.699985'}, {lon: '-92.689331', lat: '39.698094'}, {lon: '-92.692149', lat: '39.610265'}, {lon: '-92.697228', lat: '39.597699'}, {lon: '-92.707367', lat: '39.321614'}, {lon: '-92.790369', lat: '39.343586'}, {lon: '-92.849224', lat: '39.226218'}, {lon: '-92.911669', lat: '39.223946'}, {lon: '-92.959801', lat: '39.312526'}, {lon: '-93.072915', lat: '39.33552'}, {lon: '-93.104485', lat: '39.383656'}, {lon: '-93.200708', lat: '39.401787'}, {lon: '-93.230079', lat: '39.327877'}, {lon: '-93.332252', lat: '39.309606'}, {lon: '-93.333337', lat: '39.250012'}, {lon: '-93.399133', lat: '39.226437'}, {lon: '-93.477233', lat: '39.292796'}, {lon: '-93.49196', lat: '39.223461'}, {lon: '-93.650526', lat: '39.248214'}, {lon: '-93.758463', lat: '39.207021'}, {lon: '-93.759183', lat: '39.524558'}, {lon: '-94.208423', lat: '39.5272'}, {lon: '-94.210642', lat: '39.454682'}, {lon: '-94.600819', lat: '39.456155'}, {lon: '-94.601246', lat: '39.530372'}, {lon: '-94.627599', lat: '39.531993'}, {lon: '-95.091419402824', lat: '39.53325788521'}, {lon: '-95.113557', lat: '39.553941'}, {lon: '-95.076688', lat: '39.576764'}, {lon: '-95.047165', lat: '39.595117'}, {lon: '-95.0440507525704', lat: '39.6136682968209'}, {lon: '-95.037464', lat: '39.652905'}, {lon: '-94.971317', lat: '39.68641'}, {lon: '-94.971078', lat: '39.723146'}, {lon: '-94.899316', lat: '39.724042'}, {lon: '-94.860371', lat: '39.74953'}, {lon: '-94.871144', lat: '39.772994'}, {lon: '-94.8778175298512', lat: '39.8204147760355'}, {lon: '-94.878677', lat: '39.826522'}, {lon: '-94.928466', lat: '39.876344'}, {lon: '-94.95154', lat: '39.900533'}, {lon: '-94.9933742397144', lat: '39.8985652599923'}, {lon: '-95.018743', lat: '39.897372'}, {lon: '-95.081534', lat: '39.861718'}, {lon: '-95.142445', lat: '39.89542'}, {lon: '-95.231114', lat: '39.943784'}, {lon: '-95.30829', lat: '39.999998'}, {lon: '-95.348777', lat: '40.029297'}, {lon: '-95.382957', lat: '40.027112'}, {lon: '-95.414734', lat: '40.06982'}, {lon: '-95.394216', lat: '40.108263'}, {lon: '-95.432165', lat: '40.141025'}, {lon: '-95.48102', lat: '40.188524'}, {lon: '-95.472548', lat: '40.236078'}, {lon: '-95.54716', lat: '40.259066'}, {lon: '-95.5478703162703', lat: '40.2627834608198'}, {lon: '-95.5481820011801', lat: '40.2644146728427'}, {lon: '-95.553292', lat: '40.291158'}, {lon: '-95.598657', lat: '40.309809'}, {lon: '-95.653729', lat: '40.322582'}, {lon: '-95.641027', lat: '40.366399'}, {lon: '-95.649418', lat: '40.396149'}, {lon: '-95.684363', lat: '40.463366'}, {lon: '-95.694726', lat: '40.493602'}, {lon: '-95.7122803718011', lat: '40.5237544262074'}, {lon: '-95.714291', lat: '40.527208'}, {lon: '-95.75711', lat: '40.52599'}, {lon: '-95.765645', lat: '40.585208'}, {lon: '-95.533182', lat: '40.582249'}, {lon: '-95.3739250533987', lat: '40.5803323779415'}, {lon: '-95.335588', lat: '40.579871'}, {lon: '-95.2022660008303', lat: '40.578375628996'}, {lon: '-95.068921', lat: '40.57688'}, {lon: '-94.9148978673616', lat: '40.5749211691113'}, {lon: '-94.819978', lat: '40.573714'}, {lon: '-94.6320259176948', lat: '40.5717595874'}, {lon: '-94.533878', lat: '40.570739'}, {lon: '-94.4712077271232', lat: '40.570959458357'}, {lon: '-94.310724', lat: '40.571524'}, {lon: '-94.2322407102083', lat: '40.5720146121266'}]
					},
					{
						name: "Group 6",
						points: [{lon: '-92.855629', lat: '40.342736'}, {lon: '-92.684167', lat: '40.343466'}, {lon: '-92.70932', lat: '40.445893'}, {lon: '-92.683162', lat: '40.560663'}, {lon: '-92.714597263045', lat: '40.5895828338363'}, {lon: '-92.686693', lat: '40.589809'}, {lon: '-92.6379032935995', lat: '40.5909565470979'}, {lon: '-92.453745', lat: '40.595288'}, {lon: '-92.3508041867264', lat: '40.5972572763761'}, {lon: '-92.17978', lat: '40.600529'}, {lon: '-91.9431174596857', lat: '40.606060586354'}, {lon: '-91.939292', lat: '40.60615'}, {lon: '-91.729115', lat: '40.61364'}, {lon: '-91.7166549876819', lat: '40.603740139296'}, {lon: '-91.685381', lat: '40.578892'}, {lon: '-91.670993', lat: '40.550937'}, {lon: '-91.618999', lat: '40.539084'}, {lon: '-91.608347', lat: '40.50004'}, {lon: '-91.563844', lat: '40.460988'}, {lon: '-91.519134', lat: '40.432822'}, {lon: '-91.498093', lat: '40.401926'}, {lon: '-91.419422', lat: '40.378264'}, {lon: '-91.469656', lat: '40.322409'}, {lon: '-91.492891', lat: '40.269923'}, {lon: '-91.4969574903395', lat: '40.2487038763728'}, {lon: '-91.5061679086223', lat: '40.2006435127951'}, {lon: '-91.511956', lat: '40.170441'}, {lon: '-91.497663', lat: '40.078257'}, {lon: '-91.484064', lat: '40.019332'}, {lon: '-91.43709', lat: '39.946417'}, {lon: '-91.4368432685991', lat: '39.9452434636785'}, {lon: '-91.428956', lat: '39.907729'}, {lon: '-91.436051', lat: '39.84551'}, {lon: '-91.397853', lat: '39.821122'}, {lon: '-91.361571', lat: '39.787548'}, {lon: '-91.3646166033233', lat: '39.7587182263223'}, {lon: '-91.367753', lat: '39.729029'}, {lon: '-91.3057603349652', lat: '39.6862154700779'}, {lon: '-91.27614', lat: '39.665759'}, {lon: '-91.1828755008197', lat: '39.5982331157954'}, {lon: '-91.174232', lat: '39.591975'}, {lon: '-91.148275', lat: '39.545798'}, {lon: '-91.100307', lat: '39.538695'}, {lon: '-91.064305', lat: '39.494643'}, {lon: '-91.03827', lat: '39.448436'}, {lon: '-90.937419', lat: '39.400803'}, {lon: '-90.9353499463686', lat: '39.3995195289071'}, {lon: '-90.840106', lat: '39.340438'}, {lon: '-90.72996', lat: '39.255894'}, {lon: '-90.7232836234127', lat: '39.2241029700576'}, {lon: '-90.707902', lat: '39.15086'}, {lon: '-90.681086', lat: '39.10059'}, {lon: '-90.713629', lat: '39.053977'}, {lon: '-90.676397', lat: '38.984096'}, {lon: '-90.6615829068768', lat: '38.9347033077532'}, {lon: '-90.707557', lat: '38.902652'}, {lon: '-90.817827', lat: '38.875966'}, {lon: '-90.958536', lat: '38.870865'}, {lon: '-90.964461', lat: '38.547545'}, {lon: '-91.077324', lat: '38.609343'}, {lon: '-91.226547', lat: '38.621567'}, {lon: '-91.319022', lat: '38.708368'}, {lon: '-91.369192', lat: '38.699324'}, {lon: '-91.418637', lat: '38.709778'}, {lon: '-91.558185', lat: '38.676635'}, {lon: '-91.640372', lat: '38.703792'}, {lon: '-91.647171', lat: '38.703396'}, {lon: '-91.633998', lat: '39.059057'}, {lon: '-92.110387', lat: '39.064204'}, {lon: '-92.104374', lat: '39.239809'}, {lon: '-92.314471', lat: '39.246454'}, {lon: '-92.430229', lat: '39.248795'}, {lon: '-92.707367', lat: '39.321614'}, {lon: '-92.697228', lat: '39.597699'}, {lon: '-92.692149', lat: '39.610265'}, {lon: '-92.689331', lat: '39.698094'}, {lon: '-92.85792', lat: '39.699985'}, {lon: '-92.847477', lat: '40.037301'}, {lon: '-92.856191', lat: '40.037253'}, {lon: '-92.855629', lat: '40.342736'}]
					},
					{
						name: "Group 7",
						points: [{lon: '-95.056258', lat: '38.98212'}, {lon: '-94.923349', lat: '39.002633'}, {lon: '-94.908765', lat: '38.991401'}, {lon: '-94.900191', lat: '39.202911'}, {lon: '-94.7919946737433', lat: '39.2012602502402'}, {lon: '-94.799663', lat: '39.206018'}, {lon: '-94.825663', lat: '39.241729'}, {lon: '-94.857072', lat: '39.273825'}, {lon: '-94.908065', lat: '39.323663'}, {lon: '-94.888972', lat: '39.392432'}, {lon: '-94.946662', lat: '39.399717'}, {lon: '-94.9657474186335', lat: '39.4216817446564'}, {lon: '-94.982144', lat: '39.440552'}, {lon: '-95.049845', lat: '39.494415'}, {lon: '-95.091419402824', lat: '39.53325788521'}, {lon: '-94.627599', lat: '39.531993'}, {lon: '-94.601246', lat: '39.530372'}, {lon: '-94.600819', lat: '39.456155'}, {lon: '-94.210642', lat: '39.454682'}, {lon: '-94.208423', lat: '39.5272'}, {lon: '-93.759183', lat: '39.524558'}, {lon: '-93.758463', lat: '39.207021'}, {lon: '-93.650526', lat: '39.248214'}, {lon: '-93.49196', lat: '39.223461'}, {lon: '-93.477233', lat: '39.292796'}, {lon: '-93.399133', lat: '39.226437'}, {lon: '-93.333337', lat: '39.250012'}, {lon: '-93.332252', lat: '39.309606'}, {lon: '-93.230079', lat: '39.327877'}, {lon: '-93.200708', lat: '39.401787'}, {lon: '-93.104485', lat: '39.383656'}, {lon: '-93.072915', lat: '39.33552'}, {lon: '-92.959801', lat: '39.312526'}, {lon: '-92.911669', lat: '39.223946'}, {lon: '-92.849224', lat: '39.226218'}, {lon: '-92.94385', lat: '39.121738'}, {lon: '-92.934569', lat: '39.064547'}, {lon: '-93.048471', lat: '38.972418'}, {lon: '-93.050453', lat: '38.928244'}, {lon: '-93.059974', lat: '38.693077'}, {lon: '-93.067291', lat: '38.529995'}, {lon: '-93.290454', lat: '38.535388'}, {lon: '-93.291851', lat: '38.506321'}, {lon: '-93.512743', lat: '38.512476'}, {lon: '-93.51103', lat: '38.55621'}, {lon: '-94.064317', lat: '38.56738'}, {lon: '-94.06782', lat: '38.466016'}, {lon: '-94.065713', lat: '38.447087'}, {lon: '-94.212023', lat: '38.446754'}, {lon: '-94.31217', lat: '38.471496'}, {lon: '-94.6128655959221', lat: '38.4776021802351'}, {lon: '-94.6119580183223', lat: '38.5476344342717'}, {lon: '-94.6094896723458', lat: '38.7381017094732'}, {lon: '-94.908606', lat: '38.738281'}, {lon: '-95.056412', lat: '38.738587'}, {lon: '-95.056258', lat: '38.98212'}]
					},
					{
						name: "Group 8",
						points: [{lon: '-92.430229', lat: '39.248795'}, {lon: '-92.314471', lat: '39.246454'}, {lon: '-92.104374', lat: '39.239809'}, {lon: '-92.110387', lat: '39.064204'}, {lon: '-91.633998', lat: '39.059057'}, {lon: '-91.647171', lat: '38.703396'}, {lon: '-91.640372', lat: '38.703792'}, {lon: '-91.558185', lat: '38.676635'}, {lon: '-91.418637', lat: '38.709778'}, {lon: '-91.369192', lat: '38.699324'}, {lon: '-91.367482', lat: '38.209741'}, {lon: '-91.349553', lat: '38.204078'}, {lon: '-91.095765', lat: '38.204083'}, {lon: '-90.970187', lat: '38.206687'}, {lon: '-90.780185', lat: '38.204112'}, {lon: '-90.684547', lat: '38.086311'}, {lon: '-90.63998', lat: '38.076548'}, {lon: '-90.645135', lat: '37.734813'}, {lon: '-91.100017', lat: '37.740012'}, {lon: '-91.146521', lat: '37.740811'}, {lon: '-91.153345', lat: '37.69734'}, {lon: '-91.155073', lat: '37.588092'}, {lon: '-91.312458', lat: '37.592824'}, {lon: '-91.314236', lat: '37.505132'}, {lon: '-91.210984', lat: '37.501911'}, {lon: '-91.211863', lat: '37.415277'}, {lon: '-91.646626', lat: '37.422731'}, {lon: '-91.75504', lat: '37.42411'}, {lon: '-91.754795', lat: '37.598768'}, {lon: '-91.809105', lat: '37.598863'}, {lon: '-92.029258', lat: '37.602542'}, {lon: '-92.183261', lat: '37.605243'}, {lon: '-92.249463', lat: '37.604543'}, {lon: '-92.252261', lat: '37.472944'}, {lon: '-92.686671', lat: '37.481545'}, {lon: '-92.853481', lat: '37.48397'}, {lon: '-92.846281', lat: '37.721039'}, {lon: '-92.855384', lat: '37.895736'}, {lon: '-93.072447', lat: '37.902627'}, {lon: '-93.065199', lat: '38.062479'}, {lon: '-93.059073', lat: '38.185685'}, {lon: '-93.077692', lat: '38.263092'}, {lon: '-93.067291', lat: '38.529995'}, {lon: '-93.059974', lat: '38.693077'}, {lon: '-93.050453', lat: '38.928244'}, {lon: '-93.048471', lat: '38.972418'}, {lon: '-92.934569', lat: '39.064547'}, {lon: '-92.94385', lat: '39.121738'}, {lon: '-92.849224', lat: '39.226218'}, {lon: '-92.790369', lat: '39.343586'}, {lon: '-92.707367', lat: '39.321614'}, {lon: '-92.430229', lat: '39.248795'}]
					},
					{
						name: "Group 9",
						points: [{lon: '-90.958536', lat: '38.870865'}, {lon: '-90.817827', lat: '38.875966'}, {lon: '-90.707557', lat: '38.902652'}, {lon: '-90.6615829068768', lat: '38.9347033077532'}, {lon: '-90.657254', lat: '38.92027'}, {lon: '-90.595354', lat: '38.87505'}, {lon: '-90.555693', lat: '38.870785'}, {lon: '-90.500117', lat: '38.910408'}, {lon: '-90.467784', lat: '38.961809'}, {lon: '-90.4509699408919', lat: '38.9613950033245'}, {lon: '-90.395816', lat: '38.960037'}, {lon: '-90.298711', lat: '38.923395'}, {lon: '-90.2765837220256', lat: '38.9193384672116'}, {lon: '-90.230336', lat: '38.91086'}, {lon: '-90.2072823011856', lat: '38.8987323228399'}, {lon: '-90.113327', lat: '38.849306'}, {lon: '-90.117707', lat: '38.805748'}, {lon: '-90.166409', lat: '38.772649'}, {lon: '-90.1665946400156', lat: '38.7724501393051'}, {lon: '-90.20991', lat: '38.72605'}, {lon: '-90.19521', lat: '38.68755'}, {lon: '-90.1815243815313', lat: '38.6603728853105'}, {lon: '-90.18111', lat: '38.65955'}, {lon: '-90.18451', lat: '38.611551'}, {lon: '-90.248913', lat: '38.544752'}, {lon: '-90.2552948876694', lat: '38.530877711821'}, {lon: '-90.260976059287', lat: '38.5185267874078'}, {lon: '-90.271314', lat: '38.496052'}, {lon: '-90.288815', lat: '38.438453'}, {lon: '-90.3402442817043', lat: '38.3870946226363'}, {lon: '-90.3429152667372', lat: '38.3844273200276'}, {lon: '-90.349743', lat: '38.377609'}, {lon: '-90.372519', lat: '38.323354'}, {lon: '-90.363926', lat: '38.236355'}, {lon: '-90.3511641450603', lat: '38.2195444570945'}, {lon: '-90.322353', lat: '38.181593'}, {lon: '-90.2527463239757', lat: '38.1277738262293'}, {lon: '-90.253076', lat: '38.115538'}, {lon: '-90.416022', lat: '38.042315'}, {lon: '-90.628192', lat: '38.007962'}, {lon: '-90.63998', lat: '38.076548'}, {lon: '-90.684547', lat: '38.086311'}, {lon: '-90.780185', lat: '38.204112'}, {lon: '-90.970187', lat: '38.206687'}, {lon: '-91.095765', lat: '38.204083'}, {lon: '-91.349553', lat: '38.204078'}, {lon: '-91.367482', lat: '38.209741'}, {lon: '-91.369192', lat: '38.699324'}, {lon: '-91.319022', lat: '38.708368'}, {lon: '-91.226547', lat: '38.621567'}, {lon: '-91.077324', lat: '38.609343'}, {lon: '-90.964461', lat: '38.547545'}, {lon: '-90.958536', lat: '38.870865'}]
					},
					{
						name: "Group 10",
						points: [{lon: '-94.618102891103', lat: '37.0567963908729'}, {lon: '-94.618351', lat: '37.160211'}, {lon: '-94.6177538916066', lat: '37.338418'}, {lon: '-94.6176676047008', lat: '37.3641703270387'}, {lon: '-94.617511', lat: '37.410909'}, {lon: '-94.6178455243542', lat: '37.6535777966344'}, {lon: '-94.6178724508981', lat: '37.6731107003321'}, {lon: '-94.617885', lat: '37.682214'}, {lon: '-94.614465', lat: '37.987799'}, {lon: '-94.6141002487054', lat: '38.0370565833813'}, {lon: '-94.6139299610557', lat: '38.0600529598965'}, {lon: '-94.612614', lat: '38.237766'}, {lon: '-94.6127726289929', lat: '38.3887184827318'}, {lon: '-94.612866', lat: '38.477571'}, {lon: '-94.6128655959221', lat: '38.4776021802351'}, {lon: '-94.31217', lat: '38.471496'}, {lon: '-94.212023', lat: '38.446754'}, {lon: '-94.065713', lat: '38.447087'}, {lon: '-94.06782', lat: '38.466016'}, {lon: '-94.064317', lat: '38.56738'}, {lon: '-93.51103', lat: '38.55621'}, {lon: '-93.512743', lat: '38.512476'}, {lon: '-93.291851', lat: '38.506321'}, {lon: '-93.290454', lat: '38.535388'}, {lon: '-93.067291', lat: '38.529995'}, {lon: '-93.077692', lat: '38.263092'}, {lon: '-93.059073', lat: '38.185685'}, {lon: '-93.065199', lat: '38.062479'}, {lon: '-93.072447', lat: '37.902627'}, {lon: '-93.182648', lat: '37.904232'}, {lon: '-93.187915', lat: '37.802737'}, {lon: '-93.561399', lat: '37.812982'}, {lon: '-93.573202', lat: '37.828035'}, {lon: '-93.628404', lat: '37.829435'}, {lon: '-93.609489', lat: '37.741755'}, {lon: '-93.616033', lat: '37.572689'}, {lon: '-93.621153', lat: '37.427423'}, {lon: '-93.625844', lat: '37.282011'}, {lon: '-93.605113', lat: '37.280253'}, {lon: '-93.608899', lat: '37.098153'}, {lon: '-93.610126', lat: '36.99581'}, {lon: '-93.337451', lat: '36.992494'}, {lon: '-93.304359', lat: '36.816866'}, {lon: '-93.3153271065291', lat: '36.4983127262979'}, {lon: '-93.426989', lat: '36.498585'}, {lon: '-93.5842815473557', lat: '36.4989016786283'}, {lon: '-93.700171', lat: '36.499135'}, {lon: '-93.8667582116711', lat: '36.4988661646849'}, {lon: '-93.95919', lat: '36.498717'}, {lon: '-94.0770882668935', lat: '36.4989759572219'}, {lon: '-94.361203', lat: '36.4996'}, {lon: '-94.617919', lat: '36.499414'}, {lon: '-94.617815', lat: '36.612604'}, {lon: '-94.6179917784172', lat: '36.6679212723442'}, {lon: '-94.618307', lat: '36.76656'}, {lon: '-94.617964', lat: '36.998905'}, {lon: '-94.618102891103', lat: '37.0567963908729'}]
					},
					{
						name: "Group 11",
						points: [{lon: '-93.182648', lat: '37.904232'}, {lon: '-93.072447', lat: '37.902627'}, {lon: '-92.855384', lat: '37.895736'}, {lon: '-92.846281', lat: '37.721039'}, {lon: '-92.853481', lat: '37.48397'}, {lon: '-92.686671', lat: '37.481545'}, {lon: '-92.685867', lat: '37.067051'}, {lon: '-92.82467', lat: '37.068674'}, {lon: '-92.903273', lat: '37.070651'}, {lon: '-92.909336', lat: '36.809178'}, {lon: '-92.764869', lat: '36.806097'}, {lon: '-92.7723338933721', lat: '36.4980831540794'}, {lon: '-92.838876', lat: '36.498033'}, {lon: '-92.8540491149849', lat: '36.4980233811416'}, {lon: '-93.125969', lat: '36.497851'}, {lon: '-93.293447355634', lat: '36.4982593752343'}, {lon: '-93.3153271065291', lat: '36.4983127262979'}, {lon: '-93.304359', lat: '36.816866'}, {lon: '-93.337451', lat: '36.992494'}, {lon: '-93.610126', lat: '36.99581'}, {lon: '-93.608899', lat: '37.098153'}, {lon: '-93.605113', lat: '37.280253'}, {lon: '-93.625844', lat: '37.282011'}, {lon: '-93.621153', lat: '37.427423'}, {lon: '-93.616033', lat: '37.572689'}, {lon: '-93.609489', lat: '37.741755'}, {lon: '-93.628404', lat: '37.829435'}, {lon: '-93.573202', lat: '37.828035'}, {lon: '-93.561399', lat: '37.812982'}, {lon: '-93.187915', lat: '37.802737'}, {lon: '-93.182648', lat: '37.904232'}]
					},
					 {
						name: "Group 12",
						points: [{lon: '-89.5017910494998', lat: '37.5588957193232'}, {lon: '-89.5124', lat: '37.52981'}, {lon: '-89.471201', lat: '37.466473'}, {lon: '-89.42594', lat: '37.407471'}, {lon: '-89.428185', lat: '37.356158'}, {lon: '-89.4736794345412', lat: '37.3348539021946'}, {lon: '-89.49516', lat: '37.324795'}, {lon: '-89.517032', lat: '37.28192'}, {lon: '-89.482889284644', lat: '37.2609507184141'}, {lon: '-89.470525', lat: '37.253357'}, {lon: '-89.456105', lat: '37.18812'}, {lon: '-89.384175', lat: '37.103267'}, {lon: '-89.359456', lat: '37.042606'}, {lon: '-89.307436691173', lat: '37.0287594496279'}, {lon: '-89.375064', lat: '36.964947'}, {lon: '-89.465393', lat: '36.935729'}, {lon: '-89.501683', lat: '36.906262'}, {lon: '-89.519809', lat: '36.869617'}, {lon: '-89.519701', lat: '36.847896'}, {lon: '-89.373741', lat: '36.702948'}, {lon: '-89.327319777009', lat: '36.6239462887705'}, {lon: '-89.378694', lat: '36.622292'}, {lon: '-89.407906', lat: '36.562345'}, {lon: '-89.479346', lat: '36.566253'}, {lon: '-89.544434', lat: '36.57451'}, {lon: '-89.571481', lat: '36.538087'}, {lon: '-89.539232', lat: '36.497934'}, {lon: '-89.521021', lat: '36.461934'}, {lon: '-89.542337', lat: '36.420103'}, {lon: '-89.51038', lat: '36.378356'}, {lon: '-89.522695', lat: '36.344789'}, {lon: '-89.5450313339691', lat: '36.344271398663'}, {lon: '-89.600544', lat: '36.342985'}, {lon: '-89.611819', lat: '36.309088'}, {lon: '-89.554289', lat: '36.277751'}, {lon: '-89.602374', lat: '36.238106'}, {lon: '-89.678046', lat: '36.248284'}, {lon: '-89.69263', lat: '36.224959'}, {lon: '-89.6276414416754', lat: '36.185460316606'}, {lon: '-89.623804', lat: '36.183128'}, {lon: '-89.592102', lat: '36.135637'}, {lon: '-89.64302', lat: '36.10362'}, {lon: '-89.680029', lat: '36.082494'}, {lon: '-89.692437', lat: '36.020507'}, {lon: '-89.733095', lat: '36.000608'}, {lon: '-89.901183', lat: '35.999365'}, {lon: '-89.9593752951737', lat: '35.9990141101569'}, {lon: '-90.103842', lat: '35.998143'}, {lon: '-90.2889479152728', lat: '35.9965140042114'}, {lon: '-90.368718', lat: '35.995812'}, {lon: '-90.339343', lat: '36.047112'}, {lon: '-90.294492', lat: '36.112949'}, {lon: '-90.235585', lat: '36.139474'}, {lon: '-90.220425', lat: '36.184764'}, {lon: '-90.1891279822169', lat: '36.1989866086674'}, {lon: '-90.155928', lat: '36.214074'}, {lon: '-90.114922', lat: '36.265595'}, {lon: '-90.06398', lat: '36.303038'}, {lon: '-90.063526', lat: '36.356911'}, {lon: '-90.066136', lat: '36.386272'}, {lon: '-90.131038', lat: '36.415069'}, {lon: '-90.141399', lat: '36.459874'}, {lon: '-90.153871', lat: '36.495344'}, {lon: '-90.2207490539154', lat: '36.4959375921945'}, {lon: '-90.494575', lat: '36.498368'}, {lon: '-90.5761790655673', lat: '36.498405927798'}, {lon: '-90.765672', lat: '36.498494'}, {lon: '-90.7842441551312', lat: '36.4984622001291'}, {lon: '-91.017974', lat: '36.498062'}, {lon: '-91.1265388745647', lat: '36.4977977010194'}, {lon: '-91.404915', lat: '36.49712'}, {lon: '-91.4071374435175', lat: '36.4971407119486'}, {lon: '-91.4500049181374', lat: '36.4975402131847'}, {lon: '-91.64259', lat: '36.499335'}, {lon: '-91.6723424564437', lat: '36.4992566337989'}, {lon: '-91.985802', lat: '36.498431'}, {lon: '-92.1204291043881', lat: '36.4981931239997'}, {lon: '-92.1503062495012', lat: '36.4981403333242'}, {lon: '-92.350277', lat: '36.497787'}, {lon: '-92.5291365810437', lat: '36.4981656829853'}, {lon: '-92.564238', lat: '36.49824'}, {lon: '-92.7723338933721', lat: '36.4980831540794'}, {lon: '-92.764869', lat: '36.806097'}, {lon: '-92.909336', lat: '36.809178'}, {lon: '-92.903273', lat: '37.070651'}, {lon: '-92.82467', lat: '37.068674'}, {lon: '-92.685867', lat: '37.067051'}, {lon: '-92.686671', lat: '37.481545'}, {lon: '-92.252261', lat: '37.472944'}, {lon: '-92.249463', lat: '37.604543'}, {lon: '-92.183261', lat: '37.605243'}, {lon: '-92.029258', lat: '37.602542'}, {lon: '-91.809105', lat: '37.598863'}, {lon: '-91.754795', lat: '37.598768'}, {lon: '-91.75504', lat: '37.42411'}, {lon: '-91.646626', lat: '37.422731'}, {lon: '-91.211863', lat: '37.415277'}, {lon: '-91.210984', lat: '37.501911'}, {lon: '-91.314236', lat: '37.505132'}, {lon: '-91.312458', lat: '37.592824'}, {lon: '-91.155073', lat: '37.588092'}, {lon: '-91.153345', lat: '37.69734'}, {lon: '-91.146521', lat: '37.740811'}, {lon: '-91.100017', lat: '37.740012'}, {lon: '-90.645135', lat: '37.734813'}, {lon: '-90.63998', lat: '38.076548'}, {lon: '-90.628192', lat: '38.007962'}, {lon: '-90.416022', lat: '38.042315'}, {lon: '-90.253076', lat: '38.115538'}, {lon: '-90.2527463239757', lat: '38.1277738262293'}, {lon: '-90.252484', lat: '38.127571'}, {lon: '-90.218708', lat: '38.094365'}, {lon: '-90.2057286258827', lat: '38.0882331831086'}, {lon: '-90.126006', lat: '38.05057'}, {lon: '-90.080959', lat: '38.015428'}, {lon: '-90.008353', lat: '37.970179'}, {lon: '-89.95491', lat: '37.966647'}, {lon: '-89.974221', lat: '37.919217'}, {lon: '-89.933095790915', lat: '37.8800990582524'}, {lon: '-89.923185', lat: '37.870672'}, {lon: '-89.851048', lat: '37.90398'}, {lon: '-89.782035', lat: '37.855092'}, {lon: '-89.696559', lat: '37.814337'}, {lon: '-89.6872213808531', lat: '37.7964067184393'}, {lon: '-89.667993', lat: '37.759484'}, {lon: '-89.591289', lat: '37.723599'}, {lon: '-89.521948', lat: '37.696475'}, {lon: '-89.506563', lat: '37.62505'}, {lon: '-89.494051', lat: '37.580116'}, {lon: '-89.4977459260392', lat: '37.5699859139282'}, {lon: '-89.5017910494998', lat: '37.5588957193232'}]
					}];
					
	function convertPoints(list) {
		return list.map(function(point) {
			return new OL.Geometry.Point(point.lon, point.lat).transform(new OL.Projection("EPSG:4326"), W.map.getProjectionObject());
		});
	}
					
	function addRaidPolygon(raidLayer, dataList) {
		var style = {
			strokeOpacity: 0.0,
			strokeWidth: 0,
			label: name,
		};
		var polygon = new OL.Geometry.Polygon(new OL.Geometry.LinearRing(convertPoints(dataList.points)));
		var vector = new OL.Feature.Vector(polygon, { name: dataList.name}, style);
		raidLayer.addFeatures([ vector ]);
	}

    function formfiller_bootstrap() {
        formfiller_log("Running bootstrap");

        if (typeof W.app === "undefined" || !window.W.map) {
            setTimeout(formfiller_bootstrap, 500);
            return;
        }
        formfiller_log("Starting init");
        formfiller_init();
    }

    function formfiller_init() {
		ff_mapLayer = new OL.Layer.Vector("Group Regions", {
			uniqueName: WMEFFName
		});
		groups.forEach(function(groupData) {
			addRaidPolygon(ff_mapLayer, groupData);
		});
        // Check document elements are ready
        var userInfo = document.getElementById("user-info");
        if (userInfo === null) {
            window.setTimeout(formfiller_init, 500);
            return;
        }
        var userTabs = document.getElementById("user-tabs");
        if (userTabs === null) {
            window.setTimeout(formfiller_init, 500);
            return;
        }
        var navTab = userInfo.getElementsByTagName("ul");
        if (navTab.length === 0) {
            window.setTimeout(formfiller_init, 500);
            return;
        }
        if (typeof navTab[0] === "undefined") {
            window.setTimeout(formfiller_init, 500);
            return;
        }
        var tabContent = userInfo.getElementsByTagName("div");
        if (tabContent.length === 0) {
            window.setTimeout(formfiller_init, 500);
            return;
        }
        if (typeof tabContent[0] === "undefined") {
            window.setTimeout(formfiller_init, 500);
            return;
        }

        ff_addFormBtn();
        var formFillerObserver = new MutationObserver(function (mutations) {
                mutations.forEach(function (mutation) {
                    // Mutation is a NodeList and doesn't support forEach like an array
                    for (var i = 0; i < mutation.addedNodes.length; i += 1) {
                        var addedNode = mutation.addedNodes[i];

                        // Only fire up if it's a node
                        if (addedNode.nodeType === Node.ELEMENT_NODE) {
                            var selectionDiv = addedNode.querySelector("div.selection");

                            if (selectionDiv) {
                                ff_addFormBtn();
                            }
                        }
                    }
                });
            });
        formFillerObserver.observe(document.getElementById("edit-panel"), {
            childList: true,
            subtree: true
        });
        //W.selectionManager.events.register("selectionchanged", null, ff_addFormBtn);
        if (W.app.modeController) {
            W.app.modeController.model.bind("change:mode", function (model, modeId) {
                if (modeId === 0) {
                    ff_addUserTab();
                }
            });
        }

        if (!W.selectionManager.getSelectedFeatures) {
            W.selectionManager.getSelectedFeatures = W.selectionManager.getSelectedItems;
        }
        formfiller_log("Init done");
        return;
    }

    //Shamelessly copied from https://gist.github.com/CalebGrove/c285a9510948b633aa47
    function abbrState(input, to) {
        var states = [
            ["ALABAMA", "AL"],
            ["ALASKA", "AK"],
            ["ARIZONA", "AZ"],
            ["ARKANSAS", "AR"],
            ["CALIFORNIA", "CA"],
            ["COLORADO", "CO"],
            ["CONNECTICUT", "CT"],
            ["DELAWARE", "DE"],
            ["DISTRICT OF COLUMBIA", "DC"],
            ["FLORIDA", "FL"],
            ["GEORGIA", "GA"],
            ["HAWAII", "HI"],
            ["IDAHO", "ID"],
            ["ILLINOIS", "IL"],
            ["INDIANA", "IN"],
            ["IOWA", "IA"],
            ["KANSAS", "KS"],
            ["KENTUCKY", "KY"],
            ["LOUISIANA", "LA"],
            ["MAINE", "ME"],
            ["MARYLAND", "MD"],
            ["MASSACHUSETTS", "MA"],
            ["MICHIGAN", "MI"],
            ["MINNESOTA", "MN"],
            ["MISSISSIPPI", "MS"],
            ["MISSOURI", "MO"],
            ["MONTANA", "MT"],
            ["NEBRASKA", "NE"],
            ["NEVADA", "NV"],
            ["NEW HAMPSHIRE", "NH"],
            ["NEW JERSEY", "NJ"],
            ["NEW MEXICO", "NM"],
            ["NEW YORK", "NY"],
            ["NORTH CAROLINA", "NC"],
            ["NORTH DAKOTA", "ND"],
            ["OHIO", "OH"],
            ["OKLAHOMA", "OK"],
            ["OREGON", "OR"],
            ["PENNSYLVANIA", "PA"],
            ["RHODE ISLAND", "RI"],
            ["SOUTH CAROLINA", "SC"],
            ["SOUTH DAKOTA", "SD"],
            ["TENNESSEE", "TN"],
            ["TEXAS", "TX"],
            ["UTAH", "UT"],
            ["VERMONT", "VT"],
            ["VIRGINIA", "VA"],
            ["WASHINGTON", "WA"],
            ["WEST VIRGINIA", "WV"],
            ["WISCONSIN", "WI"],
            ["WYOMING", "WY"],
            ["PUERTO RICO", "PR"],
            ["VIRGIN ISLANDS (U.S.)", "VI"]
        ];

        var i;
        if (to === "abbr") {
            input = input.toUpperCase();
            for (i = 0; i < states.length; i += 1) {
                if (states[i][0] === input) {
                    return (states[i][1]);
                }
            }
        } else if (to === "name") {
            input = input.toUpperCase();
            for (i = 0; i < states.length; i += 1) {
                if (states[i][1] === input) {
                    return (states[i][0]);
                }
            }
        }
    }

    function formfiller_log(message) {
        if (typeof message === "string") {
            console.log("FormFiller: " + message);
        } else {
            console.log("FormFiller: ", message);
        }
    }

    function ff_getStreetName(selection) {
        var streetName = "",
            i;

        for (i = 0; i < selection.length; i += 1) {
            var newStreet = W.model.streets.get(selection[i].model.attributes.primaryStreetID);
            if (typeof newStreet === "undefined" || newStreet.name === null) {
                newStreet = "No Name";
            }
            if (streetName === "") {
                streetName = newStreet.name;
            } else if (streetName !== newStreet.name) {
                streetName += ", " + newStreet.name;
            }
        }
        return streetName;
    }

    function ff_getState(selection) {
        var stateName = "",
            i;

        for (i = 0; i < selection.length; i += 1) {
            var cID = W.model.streets.get(selection[i].model.attributes.primaryStreetID).cityID;
            var sID = W.model.cities.get(cID).attributes.stateID;
            var newState = W.model.states.get(sID).name;

            if (newState === "") {
                sID = W.model.cities.get(cID).attributes.countryID;
                newState = W.model.countries.get(sID).name;
                formfiller_log("cID: " + cID);
                formfiller_log("sID: " + sID);
                formfiller_log("newState: " + newState);
            }

            if (stateName === "") {
                stateName = newState;
            } else if (stateName !== newState) {
                stateName = "";
                break;
            }
        }
        return stateName;
    }

    function ff_getCity(selection) {
        var cityName = "",
            i;
        for (i = 0; i < selection.length; i += 1) {
            var cID = W.model.streets.get(selection[i].model.attributes.primaryStreetID).cityID;
            var newCity = W.model.cities.get(cID).attributes.name;
            if (cityName === "") {
                cityName = newCity;
            } else if (cityName !== newCity) {
                cityName = "";
                break;
            }
        }
        return cityName;
    }

    function ff_getCounty(selection) {
        var county = "";
        var center = W.map.center.clone().transform(W.map.projection.projCode, W.map.displayProjection.projCode);
        //formfiller_log("Getting county for "+center.lat.toString()+","+center.lon.toString());
        var xhr = new XMLHttpRequest();
        xhr.open("GET", "https://maps.googleapis.com/maps/api/geocode/json?latlng=" + center.lat + "," + center.lon, false);
        xhr.onload = function () {
            if (xhr.readyState === 4) {
                if (xhr.status === 200) {
                    var response = JSON.parse(xhr.responseText);
                    var addrComps = response.results[0].address_components;
                    var comp;
                    for (comp = 0; comp < addrComps.length; comp += 1) {
                        if (addrComps[comp].types.indexOf("administrative_area_level_2") !== -1) {
                            county = addrComps[comp].long_name;
                            //formfiller_log("ff_getCounty: "+county);
                            var countyIndex = (county.indexOf(" County") !== -1 ? county.indexOf(" County") : county.indexOf(" Parish"));
                            if (countyIndex !== -1) {
                                county = county.slice(0, countyIndex);
                            }
                            break;
                        }
                    }
                }
            }
        };
        xhr.send(null);
        return county;

        //Async call. Figure this out!
        /*return $.getJSON("https://maps.googleapis.com/maps/api/geocode/json?latlng="+center.lat+","+center.lon, function(data) {
        if (data.status === "OK")
    {
        var addrComps = data.results[0].address_components;
        for (comp = 0; comp < addrComps.length; comp+=1)
    {
        if (addrComps[comp].types.indexOf("administrative_area_level_2") !== -1)
    {
        county = addrComps[comp].long_name;
        county = county.slice(0,county.indexOf(" County"));
        formfiller_log("JSON func "+county);
        break;
        }
        }
        }
        if (county === "")
        county = "Not found";
        formfiller_log("Got county");
        formfiller_log(county);
        return county;
        });*/
    }

    function ff_closureActive(selection) {
        var i;
        for (i = 0; i < selection.length; i += 1) {
            if (selection[i].model.hasClosures()) {
                if (W.model.roadClosures.getByAttributes({
                        segID: selection[i].model.attributes.id
                    })[0].active) {
                    return true;
                }
            }
        }
        return false;
    }

    function ff_getClosureInfo(seg) {
        var closureInfo = {
            closedDir: "",
            endDate: "",
            idFwd: "",
            idRev: "",
            closedReason: ""
        };
        var segID = seg.model.attributes.id;
        var closureList = W.model.roadClosures.getByAttributes({
                segID: segID,
                active: true
            });
        var i;

        for (i = 0; i < closureList.length; i += 1) {
            if (closureList[i].active === true) {
                if (closureInfo.endDate === "") {
                    closureInfo.endDate = closureList[i].endDate;
                } else if (closureInfo.endDate > closureList[i].endDate) {
                    closureInfo.endDate = closureList[i].endDate;
                }
                if (closureList[i].forward === true) {
                    closureInfo.idFwd = closureList[i].id;
                } else {
                    closureInfo.idRev = closureList[i].id;
                }
                if (closureInfo.closedReason === "") {
                    closureInfo.closedReason = closureList[i].closedReason;
                }
            }
        }

        if (closureInfo.idFwd !== "" && closureInfo.idRev !== "") {
            closureInfo.closedDir = "Two-Way";
        } else {
            closureInfo.closedDir = "One-Way";
        }

        return closureInfo;
    }

    function ff_createPermalink(selection) {
        //https://www.waze.com/editor/?env=usa&lon=-79.79248&lat=32.86150&layers=12709&zoom=5&mode=0&mapProblemFilter=1&mapUpdateRequestFilter=0&venueFilter=0&segments=504534141
        //https://www.waze.com/editor/?env=usa&lon=-79.79248&lat=32.86150&layers=12709&zoom=5&mode=0&mapProblemFilter=1&mapUpdateRequestFilter=0&venueFilter=0&venues=183632201.1836387542.3102948
        var permalink = "https://www.waze.com/editor/?",
            segIDs = [];
        var latLon = W.map.center.clone().transform(W.map.projection.projCode, W.map.displayProjection.projCode);
        var lat = latLon.lat,
            lon = latLon.lon;
        var env = "en-US";
        var type = "segments";
        var zoomToRoadType = W.Config.segments.zoomToRoadType;
        var i;

        //To get lat and long centered on segment
        if (selection.length === 1) {
            latLon = selection[0].model.getCenter().clone();
            latLon.transform(W.map.projection.projCode, W.map.displayProjection.projCode);
            lat = latLon.y;
            lon = latLon.x;
        }

		selection.forEach(function(segment) {
			segIDs.push(segment.model.attributes.id);
		});
        permalink += "env=" + env + "&lon=" + lon + "&lat=" + lat + "&zoom=" + W.map.zoom.toString() + "&" + type + "=" + segIDs.join();
        return permalink;
    }

    function ff_getLastEditor(selection) {
        var eID;
        var editorNames = "";
        var newEdName = "";
        //selection[0].model.attributes.updatedBy;
        selection.forEach(function (selected) {
            eID = selected.model.attributes.updatedBy;
            if (typeof eID !== "undefined") {
                formfiller_log("Unable to get updatedBy on " + selected.model.attributes.id);
                eID = selected.model.attributes.createdBy;
            }
            newEdName = W.model.users.get(eID).userName;
            if (editorNames.indexOf(newEdName) === -1) {
                editorNames += ", " + newEdName;
            }

        });
        editorNames = editorNames.substr(2);
        return editorNames;
    }
    
    function ff_getGroupNumber(selection) {
    	let segmentPoint = W.selectionManager.getSelectedFeatures()[0].geometry.components[0].getCentroid();
    	var raidCenterPoint = new OL.Geometry.Point(segmentPoint.x, segmentPoint.y);
    	for (var i = 0; i < ff_mapLayer.features.length; i++) {
			if (ff_mapLayer.features[i].geometry.components[0].containsPoint(segmentPoint)) {
				return ff_mapLayer.features[i].attributes.name;
			}
		}
		return "Not in the Raid!!"
    }
    
    function ff_checkZooms(selection) {
    	// LS = 1, PS = 2, FWY = 3, Ramp = 4, MH = 6, mH = 7, PR = 17, RR = 18, PLR = 20
    	let maxZoom = [10, 4, 2, 2, 2, 3, 2, 2];
    	selection.forEach(function(segment) {
			if ((maxZoom[segment.model.attributes.roadType] && W.map.zoom < maxZoom[segment.model.attributes.roadType]) || W.map.zoom < 3) {
				alert("Please zoom to a safe distance (no less than " + maxZoom[segment.model.attributes.roadType] +")");
				return false;
			}
    	});
    	return true;
    	
    }

    function ff_createFormLink(formSel) {
        var selection = W.selectionManager.getSelectedFeatures();
        var formValues = {};
        var formFields = formSel.fields;
        var formLink = formSel.url + "?entry.";
        var formArgs = [];
        if (selection.length === 0 || selection[0].model.type !== "segment") {
            alert("No segments selected.");
            return true;
        }
        if (ff_checkZooms(selection) == false) {
        	return;
        } 

        /*Fields expected:
        username
        permalink
        closedDir
        closureStatus
        closedReason
        endDate
        streetname
        fromStreet
        toStreet
        stateabbr
        county
        city
        source
        notes
        groupNumber
         */

        Object.keys(formFields).forEach(function (key, index) {
            switch (key) {
            case "username":
                formValues[key] = W.loginManager.user.userName;
                break;
            case "permalink":
                formValues[key] = ff_createPermalink(selection);
                if (typeof formValues.permalink === "undefined") {
                    formfiller_log("No permalink generated");
                    return;
                }
                break;
            case "streetname":
                formValues[key] = ff_getStreetName(selection);
                break;
            case "editorName":
                formValues[key] = ff_getLastEditor(selection);
                break;
            case "stateabbr":
                formValues[key] = abbrState(ff_getState(selection), "abbr");
                break;
            case "state":
                formValues[key] = ff_getState(selection);
                break;
            case "county":
                formValues.county = ff_getCounty(selection);
                break;
            case "city":
                formValues[key] = ff_getCity(selection);
                break;
            case "notes":
                formValues[key] = "Form filled by " + WMEFFName + " v" + WMEFFVersion;
                break;
            case "closureStatus":
                if (selection[0].model.type === "segment") {
                    if (ff_closureActive(selection)) {
                        formValues.closureStatus = "CLOSED";
                        var closureInfo = ff_getClosureInfo(selection[0]);
                        formValues.closedDir = closureInfo.closedDir;
                        formValues.closedReason = closureInfo.closedReason;
                        formValues.endDate = closureInfo.endDate;
                    } else {
                        formValues.closureStatus = "REPORTED";
                        formValues.closedDir = "Two-Way";
                        formValues.closedReason = document.getElementById("ff-closure-reason").value;
                        formValues.endDate = document.getElementById("ff-closure-endDate").value + "+" + document.getElementById("ff-closure-endTime").value;
                    }
                }
                break;
            case "groupNumber":
            	formValues[key] = ff_getGroupNumber(selection);
            	break;
            default:
                if (debug == true) formfiller_log("Nothing defined for " + key);
                break;
            }

            //Add entry to form URL, if there's something to add
            if (typeof formValues[key] !== "undefined" && formValues[key] !== "") {
                formArgs[index] = formFields[key] + "=" + encodeURIComponent(formValues[key]);
            }
        });
        formLink += formArgs.join("&entry.");

        formfiller_log(formLink);
        return formLink;
    }

    function ff_addFormBtn() {
        var selection = W.selectionManager.getSelectedFeatures();
        var ffDiv = document.createElement("div"),
            ffMnu = document.createElement("select"),
            ffBtn = document.createElement("button");
        var formWindowName = "WME Form Filler Result",
            formWindowSpecs = "resizable=1,menubar=0,scrollbars=1,status=0,toolbar=0";
        var editPanel,
            selElem,
            formLink;
            ffDiv.id = "formfillerDiv";
        editPanel = document.getElementById("edit-panel");
        selElem = editPanel.getElementsByClassName("selection");
        if (selection.length === 0 || selection[0].model.type !== "segment") {
            //formfiller_log("No segments selected.");
            return;
        }
        if (document.getElementById("formfillerDiv")) {
            //formfiller_log("Div already created");
            return;
        }

    forms = [
        {
            //https://docs.google.com/forms/d/e/1FAIpQLSeS2a_CVIlqbT8hyLlemLHCVPqMEGkcpQp0rmdCEFKf_CWR9g/viewform?usp=pp_url&entry.1466289825=User&entry.401219433=www.example.com&entry.907733220=Delete&entry.1285801163=Reasoning&entry.5891785=Group+1
            name: "KS/MO Mapraid Segment Update Request",
            url: "https://docs.google.com/forms/d/e/1FAIpQLSeS2a_CVIlqbT8hyLlemLHCVPqMEGkcpQp0rmdCEFKf_CWR9g/viewform",
            fields: {
                username: "1466289825",
                permalink: "401219433",
                requestType: "907733220",
                requestReason: "1285801163",
                groupNumber: "5891785"
            }
        }
    ];

        forms.forEach(function (key, i) {
            ffMnu.options.add(new Option(forms[i].name, i));
        });
        ffBtn.innerHTML = "Go to Form";
        ffBtn.onclick = function () {
            if (debug == true) formfiller_log(ffMnu.options[ffMnu.selectedIndex].value+": "+forms[ffMnu.options[ffMnu.selectedIndex].value].name);
            ff_saveSettings();
            formLink = ff_createFormLink(forms[ffMnu.options[ffMnu.selectedIndex].value]);
            if (typeof formLink === "undefined") {
                return;
            }

            if ($("#ff-open-in-tab").prop("checked")) {
                window.open(formLink, "_blank");
            } else {
                window.open(formLink, formWindowName, formWindowSpecs);
            }
        };
        ffDiv.appendChild(ffMnu);
        ffDiv.appendChild(ffBtn);
        selElem[0].appendChild(ffDiv);

        return;
    }

    function ff_loadSettings() {
        var todayDate = new Date(),
            futureDate = new Date(),
            daysInFuture = 3;
        var today = todayDate.getFullYear() + "-" + (todayDate.getMonth() + 1 < 10 ? "0" + (todayDate.getMonth() + 1) : todayDate.getMonth() + 1) + "-" + todayDate.getDate();
        futureDate.setDate(futureDate.getDate() + daysInFuture);

        var ffOpenInTab = localStorage.getItem("ff-open-in-tab");
        if (ffOpenInTab === "1") {
            $("#ff-open-in-tab").trigger("click");
        }
        var ffClosureReason = localStorage.getItem("ff-closure-reason");
        if (ffClosureReason !== null) {
            $("#ff-closure-reason").val(ffClosureReason);
        }
        var ffClosureEndDate = localStorage.getItem("ff-closure-endDate");
        if (ffClosureEndDate !== null && ffClosureEndDate !== "" && ffClosureEndDate >= today) {
            $("#ff-closure-endDate").val(ffClosureEndDate);
        } else {
            var closureDate = futureDate.getFullYear() + "-" + (futureDate.getMonth() + 1 < 10 ? "0" + (futureDate.getMonth() + 1) : futureDate.getMonth() + 1) + "-" + (futureDate.getDate() < 10 ? "0" + futureDate.getDate() : futureDate.getDate());
            $("#ff-closure-endDate").val(closureDate);
        }
        var ffClosureEndTime = localStorage.getItem("ff-closure-endTime");
        if (ffClosureEndTime !== null && ffClosureEndTime !== "") {
            $("#ff-closure-endTime").val(ffClosureEndTime);
        }
        //formfiller_log("Settings loaded");
        return;
    }

    function ff_saveSettings() {
        if ($("#ff-open-in-tab").prop("checked")) {
            localStorage.setItem("ff-open-in-tab", "1");
        } else {
            localStorage.setItem("ff-open-in-tab", "0");
        }
        localStorage.setItem("ff-closure-reason", $("#ff-closure-reason").val());
        localStorage.setItem("ff-closure-endDate", $("#ff-closure-endDate").val());
        localStorage.setItem("ff-closure-endTime", $("#ff-closure-endTime").val());
        //formfiller_log("Settings saved");
        return;
    }

    setTimeout(formfiller_bootstrap, 2000);
}());