<?php
// rangegeo.php
// countries.geojson
//  data-iso2="XX"
//  <area 
//   are 
//   ]
//   [
//   '></area>
  ini_set('max_execution_time', 6000);
  
  $minlat=0;
  $minlong=0;
  $maxlat=0;
  $maxlong=0;
  $cstuff='';
  $delim='';
  $valafters='';
  $evn=1;
  
  if (isset($_GET['geojson']) && isset($_GET['ccode'])) {
  $extras='';
  $extra='';
  $bigxy=file_get_contents('../../HTMLCSS/countries.html');
  //$smallxy=file_get_contents('./image_chart.php');
  $thelist=explode(',', str_replace('CN','CH',str_replace('+',' ',urldecode($_GET['ccode']))));
  if (1 == 1) {
  for ($iii=0; $iii<sizeof($thelist); $iii++) {
  $thislen=-1;
  $prevlen=-1;
  $exts='';
  $preexts='';
   $recs=explode(' data-iso2="' . $thelist[$iii] . '"', $bigxy);
   //$records=explode(',' . $thelist[$iii] . ',', $smallxy);
   if (sizeof($recs) > 1) { // && sizeof($records) > 1) {
     for ($ii=1; $ii<sizeof($recs); $ii++) {
      $thislen=strlen(str_replace('[','',str_replace(']','',explode("'", explode("ates are", $recs[$ii])[1])[0])));
      $cclls=explode(',', str_replace('[','',str_replace(']','',explode("'", explode("ates are", $recs[$ii])[1])[0])));
  if (1 == 1) {
      //for ($jj=0; $jj<sizeof($cclls); $jj++) {
      //$records=explode('context.moveTo(' . $cclls[0] . ',' . $cclls[1] . ');', $bigxy);
      //if (sizeof($records) == 2) {
      //  $downto=explode('.stroke();', $records[1])[0] . '.stroke();';
      //  $rest=substr($records[1], strlen($downto));
      //}
      if (1 == 1) {
      if ($thislen <= $prevlen) {
      $preve=$extra;
      $extra=" jaconto.addEventListener('click', () => console.log('clicked')); 
 evt" . $evn . " = new MouseEvent('click', {
  clientX: " . (180 + $cclls[0]) . ",
  clientY: " . (90 - $cclls[1]) . "
 });
 setTimeout(function() { iaconto.canvasclick(evt" . $evn . "); }, " . ($evn * 10000) . ");  " . $preve;
      $preexts.="  for (xij=0; xij<xars.length; xij++) { if (xars[xij].outerHTML.indexOf(' title=\"" . explode('.',('' . (180 + $cclls[0])))[0] . ".') != -1) { if (xars[xij].innerHTML.indexOf('<div ') == -1) { if (Math.abs(" . (180 + $cclls[0]) . " - eval(xars[xij].outerHTML.split(' title=\"')[1].split(',')[0])) < 0.00001) {    xars[xij].innerHTML=xars[xij].innerHTML.replace(/lime/g, 'orange');   } } } } ";
      } else {
      $exts=" jaconto.addEventListener('click', () => console.log('clicked')); 
 evta.push(new MouseEvent('click', {
  clientX: " . (180 + $cclls[0]) . ",
  clientY: " . (90 - $cclls[1]) . "
 }));
 setTimeout(function() { iaconto.canvasclick(evta[" . (-1 + $evn) . "]); }, " . ($evn * 10000) . "); ";
      $extra.=" jaconto.addEventListener('click', () => console.log('clicked')); 
 evt" . $evn . " = new MouseEvent('click', {
  clientX: " . (180 + $cclls[0]) . ",
  clientY: " . (90 - $cclls[1]) . "
 });
 setTimeout(function() { iaconto.canvasclick(evt" . $evn . "); }, " . ($evn * 10000) . ");  
";
      $preexts.="  for (xij=0; xij<xars.length; xij++) { if (xars[xij].outerHTML.indexOf(' title=\"" . explode('.',('' . (180 + $cclls[0])))[0] . ".') != -1) {  if (xars[xij].innerHTML.indexOf('<div ') == -1) {  if (Math.abs(" . (180 + $cclls[0]) . " - eval(xars[xij].outerHTML.split(' title=\"')[1].split(',')[0])) < 0.00001) {   xars[xij].innerHTML=xars[xij].innerHTML.replace(/lime/g, 'orange'); } } } } ";
      $prevlen=$thislen;
      }
      //$evn++;
      } else {
      $bigxy=str_replace('context.moveTo(' . $cclls[0] . ',' . $cclls[1] . ');' . $downto . $rest, " context.strokeStyle = '#0000ff'; " . 'context.moveTo(' . $cclls[0] . ',' . $cclls[1] . ');' . $downto . " context.strokeStyle = '#000000'; " . $rest, $bigxy);
      }
      }
  //}
     }
   }
  $extras.=$preexts . $exts;
  $evn++;
  }
  }
  echo "<html><head><title>GeoJson World Countries via Google Chart Image Chart Map Chart - RJM Programming - November, 2023</title><script type=text/javascript> 
    var evt1, evt2, evt3, evt4, evt5, evt6, evt7, evt8, evt9;
    var evta=[];
    
    var xars=[];
    var xij;
   
 function jfonl() {
  if (('' + location.hash).indexOf(',') != -1 || ('" . str_replace('+',' ',urldecode($_GET['ccode'])) . "').indexOf(',') != -1) {
  var inidea='" . str_replace('+',' ',urldecode($_GET['ccode'])) . "';
  location.hash='#' + inidea;
  //alert(inidea + ' vs ' + location.hash);
  ifonl(inidea.replace('#','').split(',')[0]);
  }
}
    
   
function ifonl(inidea) {
  var outidea=inidea;
  var gcsuff='%20[~' + inidea + '~,2]';
  if (decodeURIComponent('' + location.hash).indexOf(',') != -1) {
  var prefix=top.document.getElementById('kfrepos').src.split('&iso=')[0] + '&iso=';
  var jprefix=(top.document.getElementById('jfrepos').src.split('&data=')[0]).replace('Greenwich%20London%20Places', 'My%20World%20Countries') + '&data=';
  if (jprefix.indexOf(';My') != -1) {
     jprefix=jprefix.replace(jprefix.split('title=')[1].split(';')[0] + ';', '').replace(/\&are/g,'&arJUNKe').replace('peninfo=','penJUNKinfo=');
  }
  var moref=decodeURIComponent('' + location.hash).split(',');
  for (var im=1; im<moref.length; im++) {
    outidea+='&iso' + eval(1 + im) + '=' + moref[im];
    gcsuff+='%20,%20[~' + moref[im] + '~,2]';
  } 
  //alert(jprefix);
  //alert(gcsuff);
  if (window.top != window) {
    if (top.document.getElementById('kfrepos').src.indexOf(outidea) == -1) {
    top.document.getElementById('kfrepos').src=prefix + outidea;
    top.document.getElementById('jfrepos').src=jprefix + '&data=' + gcsuff;
    }
  } else {
    if (document.getElementById('kfrepos').src.indexOf(outidea) == -1) {
    document.getElementById('kfrepos').src=prefix + outidea;
    document.getElementById('jfrepos').src=jprefix + '&data=' + gcsuff;
    }
  }
  }
  return outidea;
}
    
       
    function dolater(iois) {   if (iois != null) {
    var jaconto=(iois.contentWindow || iois.contentDocument);
    var iaconto=jaconto;
    if (jaconto != null) {
       if (jaconto.document) { jaconto = jaconto.document; }
       if (jaconto.body != null) {
       xars=jaconto.getElementsByTagName('div');
 " . $extras . ' } } } } </script></head><body onload=jfonl();><iframe onload=dolater(this); src="../../HTMLCSS/countries.html" style=width:100%;height:900px;></iframe></body></html>';
  
  } else if (isset($_GET['ccode'])) {
  $bigxy=file_get_contents('./countries.html');
  $smallxy=file_get_contents('./image_chart.php');
  $recs=explode(' data-iso2="' . $_GET['ccode'] . '"', $bigxy);
  $records=explode(',' . $_GET['ccode'] . ',', $smallxy);
  if (sizeof($recs) > 1 && sizeof($records) > 1) {
    $valafters=explode(' value=', $records[0])[-1 + sizeof(explode(' value=', $records[0]))];
    for ($ii=1; $ii<sizeof($recs); $ii++) {
      $cstuff.=$delim . str_replace('[','',str_replace(']','',explode("'", explode("ates are", $recs[$ii])[1])[0]));
      $delim=',';
    }
    $ccs=explode(',', $cstuff);
    if (sizeof($ccs) > 1) {
  $minlat=$ccs[1];
  $minlong=$ccs[0];
  $maxlat=$ccs[1];
  $maxlong=$ccs[0];
      for ($ij=2; $ij<sizeof($ccs); $ij+=2) {
        if ($minlat > $ccs[1 + $ij]) {  $minlat=$ccs[1 + $ij];  }
        if ($maxlat < $ccs[1 + $ij]) {  $maxlat=$ccs[1 + $ij];  }
        if ($minlong > $ccs[0 + $ij]) {  $minlong=$ccs[0 + $ij];  }
        if ($maxlong < $ccs[0 + $ij]) {  $maxlong=$ccs[0 + $ij];  }
      }
      $from=$valafters . ',' . $_GET['ccode'] . ',';
      if (strpos($from, ' title=') === false && strpos($from, ' data-geo=') !== false) {
      $to=str_replace(' data-geo=', ' title=' . "\\\"" . str_replace(' ','',('' . $minlat . ',' . $minlong . ',' . $maxlat . ',' . $maxlong)) . "\\\" data-geo=", $from); // ... ' . $valafters;
      file_put_contents('./image_chart.php', str_replace($from, $to, $smallxy));
      echo $to;
      }
    }
  }    
  }
  exit;
?>
