AmCharts - Map - Changing providerData in a modal

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script type="text/javascript" src="https://www.amcharts.com/lib/3/ammap.js"></script>
<script type="text/javascript" src="https://www.amcharts.com/lib/3/maps/js/worldLow.js"></script>
<script type="text/javascript" src="https://www.amcharts.com/lib/3/themes/none.js"></script>

<div id="controls">
    <button class="btn btn-default" data-toggle="modal" data-target="#map_modal">show Modal</button>
    <button class="btn btn-default" onclick="providerData1()">providerData 1</button>
    <button class="btn btn-default" onclick="providerData2()">providerData 2</button>
</div>


<div class="modal fade" id="map_modal">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-labelField="Close"><span>&times;</span></button>
        <h4 class="modal-title">the Map</h4>
      </div>
      <div class="modal-body">
        <div id="mapDiv"></div>	
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
      </div>
    </div>
  </div>
</div>

CSS

#mapDiv {
	width	: 100%;
	height	: 500px;
  background-color: white;
}														

#controls {
    margin-top: 20px;
    text-align: center;
}

#controls button {
    width: 200px;
    height: 40px;
}

JavaScript

AmCharts.theme = AmCharts.themes.light;
window.mapUpdated = false;
window.firstLoad = true;
window.map = new AmCharts.AmMap();
window.map.pathToImages = "https://cdn.amcharts.com/lib/3/images/";
window.map.areasSettings = {
	autoZoom: true,
	selectedColor: "#CC0000",
	unlistedAreasColor: "#000000",
	unlistedAreasAlpha: 0.1
};
window.map.autoResize = false;
window.map.dataProvider = {
        "map": "worldLow",
        "colorSteps": 10,
        "areas" : [
            {"id": "CN", "value": 1, "balloonText": "CN - 1"},
            {"id": "DE", "value": 4, "balloonText": "DE - 4"},
            {"id": "FR", "value": 40, "balloonText": "FR - 4"}
        ]
    };
window.map.autoResize = false;
    
map.write(document.getElementById("mapDiv"));

function providerData1() {
		console.log("providerData1()");
    window.map.dataProvider = {
        "map": "worldLow",
        "colorSteps": 10,
        "areas" : [
            {"id": "CN", "value": 2, "balloonText": "CN - 2"},
            {"id": "RU", "value": 3, "balloonText": "RU - 3"}
        ]
    };
    window.mapUpdated = true;
}

function providerData2() {
		console.log("providerData2()");
    window.map.dataProvider = {
        "map": "worldLow",
        "colorSteps": 10,
        "areas" : [
            {"id": "CN", "value": 20, "balloonText": "CN - 5"},
            {"id": "DE", "value": 5, "balloonText": "DE - 20"}
        ]
    };
    window.mapUpdated = true;
}

$('#map_modal').on('shown.bs.modal', function (e) {
  if (window.firstLoad) {
  	map.write(document.getElementById("mapDiv"));
    window.firstLoad = false;
  }
  if (window.mapUpdated) {
  	window.map.validateData();
    window.mapUpdated = false;
  }
});