<?php
   /**
    * The template for displaying archive pages.
    * 
    * @subpackage Omphaloskepsis
    * @since Omphaloskepsis 1.0 
    */
?>

<?php get_header(); ?>

<?php	$loop = new WP_Query( $args ); ?>    
<header class="entry-content tile location-block">
   <div class="post-header-title">
      <h1 id="page-title">Experience</h1>
      <h2 id="page-subtitle">by location</h2>
      <?php while (have_posts()) : the_post(); ?>
	 <div class="entry-content" id="taxonomy-description">
	    <?php the_content() ?>
	    <div>
	       <a class="hyperlink-button" href="?view=countries">Countries</a>
	       <!--<a class="hyperlink-button" href="?view=regions">Regions</a>-->
	       <a class="hyperlink-button" href="?view=locations">Locations</a>
	    </div>
	 </div>
      <?php endwhile; ?>
   </div>
</header>

<?php
   $locations = get_terms('location', array('hide_empty' => 0));
   // Gets all of the top-level location terms.
   $terms = get_terms(array('taxonomy' => 'location', 'term_args' => array('parent' => 0)));   
?>

<div id="primary" class="content-area">
   <main id="company-main" class="site-main" role="main">
      <div class="row">
	 <div id="map" style="height:100vh; width:100%;"></div>
      </div>
      <?php if (!empty($locations)): ?> 
	 <?php if ($_GET['view'] == "countries"): ?>
	    <?php
	       $locationsSubset = array_filter($locations, function ($t) {
		  return $t->parent != 0 && get_term($t->parent, 'location')->parent == 0;
	       });
	    ?>
	    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
	    <script type="text/javascript">
	       google.charts.load('current', {'packages':['geochart']});
	       google.charts.setOnLoadCallback(drawMap);
	       
	       function drawMap() {
		  var data = google.visualization.arrayToDataTable([
		     ['Country'],
		  <?php foreach ((array)$locationsSubset as $term): ?>
		     ['<?php echo $term->description ?>'],
		  <?php endforeach; ?>
		  ]);
		  var options = {};
		  var chart = new google.visualization.GeoChart(document.getElementById('map'));
		  
		  chart.draw(data, options);
	       }
	    </script>
	 <?php elseif ($_GET['view'] == "locations"): ?>
	    <?php
	       $locationsSubset = array_filter($locations, function ($t) {
		  return $t->parent != 0 && get_term($t->parent, 'location')->parent != 0 && get_term(get_term($t->parent, 'location')->parent, 'location')->parent != 0 && get_term(get_term(get_term($t->parent, 'location')->parent, 'location')->parent, 'location')->parent == 0;
	       });
	    ?>
	    <script type="text/javascript">
	       var locations = [
	       <?php foreach((array)$locationsSubset as $term): ?>
		  {<?php echo $term->description ?>},
	       <?php endforeach; ?>
	       ]
	       
	       function initMap() {
		  var map = new google.maps.Map(document.getElementById('map'), {
		     zoom: 3,
		     center: {lat: 51.483462, lng: 0.0586198}
		  });
		  
		  // Create an array of alphabetical characters used to label the markers.
		  var labels = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
		  
		  // Add some markers to the map.
		  // Note: The code uses the JavaScript Array.prototype.map() method to
		  // create an array of markers based on a given "locations" array.
		  // The map() method here has nothing to do with the Google Maps API.
		  var markers = locations.map(function(location, i) {
		     return new google.maps.Marker({
			position: location,
			label: labels[i % labels.length]
		     });
		  });
		  
		  // Add a marker clusterer to manage the markers.
		  var markerCluster = new MarkerClusterer(map, markers, {
		     imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'
		  });
	       }
	    </script>
	    <script src="https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/markerclusterer.js"></script>
	    <script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBsMPnuCM59sC_n11CGxbpbqNY7FRUXnD0&callback=initMap"></script>
	 <?php endif; ?>
      <?php endif; ?>
   </main><!-- .site-main -->
</div><!-- .content-area -->

<?php get_footer(); ?>