<?php
 // Idea: http://gomashup.com/cms/world_clock_timezone
 // Validator: http://jsonlint.com/
 $pageContent = file_get_contents('http://gomashup.com/json.php?fds=geo/timezone/locations&jsoncallback=?',0,null,null);
 $json = substr(str_replace(']}',']', str_replace('{x[','[', str_replace('"result":','', str_replace(")", "", str_replace("?(","",$pageContent))))),1);
 $json_output = json_decode($json); //,true); 
 
 $selplaceval = "<select style='display:none;' id='selplaceval'><option value=''>List of places below ...</option>";
 $selgmtval = "<select style='display:none;' id='selgmtval'><option value=''>List of region places below ...</option>";
 for ($i=0; $i<sizeof($json_output); $i++) {
   $selgmtval .= "\n<option value='" . substr($json_output[$i]->TimeZoneId, 0, strpos($json_output[$i]->TimeZoneId, '-') - 0) . "'>" . ($json_output[$i]->GMT + ((1.0 + $i) / 1000.0)) . "</option>";
   $selplaceval .= "\n<option value='" . substr($json_output[$i]->TimeZoneId, strpos($json_output[$i]->TimeZoneId, '-') + 1) . "'>" . $json_output[$i]->TimeZoneId . "</option>";
 }
 $selgmtval .= "\n</select>";
 $selplaceval .= "\n</select>";
 echo "<html><head><title>Time Zones via http://gomashup.com/cms/world_clock_timezone ... thanks.</title>";
 ?>
 <style>
 
   body {
     background-color: yellow;
   }
 
   table {
     border: 5px solid red;
     background-color: lightgray;
   }
   
   input.pinky {
     background-color: pink;
   }
 
 </style>
 <script>
 var selplaceobj;
 var selgmtobj;
 var gmtinput;
 var regioninput;
 function analyze(mt) {
    var gmtis = '';
    var regionis = '';
    var seli = -1;
    for (var i=0; i<selplaceobj.length;i++) {
        if (selplaceobj[i].childNodes[0].nodeValue.toUpperCase().indexOf("-" + mt.value.toUpperCase()) != -1) {
            if ((selplaceobj[i].childNodes[0].nodeValue.toUpperCase().indexOf("-" + mt.value.toUpperCase()) + mt.value.length + 1) == selplaceobj[i].childNodes[0].nodeValue.length) {
              seli = (i + 1);
              regionis = selplaceobj[i].childNodes[0].nodeValue.substr(0, (selplaceobj[i].childNodes[0].nodeValue.indexOf("-") - 0));
            }
        }
    }
    if (seli >= 0) {
      gmtis = Math.floor(eval((selgmtobj[seli - 1].childNodes[0].nodeValue - ((0.0 + seli) / 1000.0)) + 0.01));
      selplaceobj.value = regionis + "-" + mt.value;
      selgmtobj.value = selgmtobj[seli - 1].childNodes[0].nodeValue;
      gmtinput.value = gmtis;
      regioninput.value = regionis;
      window.open("https://www.google.com.au/search?tbm=isch&q=" + mt.value, "_blank", "left=0,top=300,width=400,height=420");
      window.open("https://maps.google.com.au/maps?q=" + mt.value, "_blank", "left=430,top=100,width=900");
      
    
    } else {
      selplaceobj.value = '';
      selgmtobj.value = '';
      gmtinput.value = '';
      regioninput.value = '';
      var maybe=prompt(mt.value + ' was not found on Time Zone database, but can try to look for information on Google Maps and Google Image Search if you like?  Change default value if you do not want to do this', mt.value);
      if (maybe == mt.value) {
       window.open("https://www.google.com.au/search?tbm=isch&q=" + mt.value, "_blank", "left=0,top=300,width=400,height=420");
       window.open("https://maps.google.com.au/maps?q=" + mt.value, "_blank", "left=430,top=100,width=900");
      }
    }
 }
 </script>
<?php
 echo "\n</head>";
 echo "<body><table><tr><td><label>&nbsp;Please enter a place name: </label></td><td><input class='pinky' onchange='analyze(this);' id='place' type='text' value=''></input><br><br></td></tr>";
 echo "<tr><td><label>&nbsp;Will show you GMT time zone: </label></td><td><input onchange='analyze(this);' id='gmt' type='text' value=''></input><br><br></td></tr>";
 echo "<tr><td><label>&nbsp;Will show you region: </label></td><td><input onchange='analyze(this);' id='region' type='text' value=''></input><br><br></td></tr>";
 echo "\n" . $selplaceval . "&nbsp;&nbsp;" . $selgmtval . "<script> selplaceobj=document.getElementById('selplaceval'); selgmtobj=document.getElementById('selgmtval'); gmtinput=document.getElementById('gmt'); regioninput=document.getElementById('region'); </script></body></html>";
?>
