<?php
// using_key.php
// Retrieve data information from Weather Underground ... thanks to https://www.wunderground.com/
// RJM Programming
// January, 2017
if (isset($_GET['theseparameters']) || isset($_POST['theseparameters'])) {

$keyb="http://api.wunderground.com/api/[ourWeatherUndergroundKey]";
$dkeyb="";
if (isset($_GET['theseparameters'])) {
$paramstuff=urldecode($_GET['theseparameters']);
$obits=explode("query=", $paramstuff);
if (strpos($paramstuff, 'aq?query=') === false && strpos($paramstuff, '&query=') !== false) {
$paramstuff=str_replace("aq?", "aq?query=" . $obits[1] . "&",str_replace("&query=" . $obits[1],"",$paramstuff));
}
} else {
$paramstuff=urldecode($_POST['theseparameters']);
$obits=explode("query=", $paramstuff);
if (strpos($paramstuff, 'aq?query=') === false && strpos($paramstuff, '&query=') !== false) {
$paramstuff=str_replace("aq?", "aq?query=" . $obits[1] . "&",str_replace("&query=" . $obits[1],"",$paramstuff));
}
}
//echo "<html><body>" . $paramstuff . "</body></html>";
//exit;
$obits=explode("q?query=", $paramstuff);
$suffix="";
if (sizeof($obits) > 1) $suffix=explode("&", $obits[1])[0];
$defsuccess="";
$json_string="";
$myselcont="";

if (strpos($paramstuff, "http") !== false) {
      $keyb="";
      $json_string = @file_get_contents($paramstuff); // query using autoip ... thanks to https://apicommunity.wunderground.com/weatherapi/topics/parsing_ambiguous_results_in_php 
      $paramstuff="";
      $parsed_json = json_decode($json_string); 
      $i=0;
      while ($i < sizeof($parsed_json->response->results)) {
        if ($i == 0) $myselcont='<option value=>Please select below ...</option>';
        $thisurlprefix = $parsed_json->response->results[$i]->l;
        $myselcont.='<option title=' . $parsed_json->response->results[$i]->tz . ',' . $parsed_json->response->results[$i]->lat . ',' . $parsed_json->response->results[$i]->lon . ',' . $parsed_json->response->results[$i]->c . ' value=' . $thisurlprefix . '>' . $parsed_json->response->results[$i]->name . '</option>';
        $i++;
      }
} else if (strpos(('*' . $paramstuff), "*aq") !== false && strpos($paramstuff, "query=") !== false) {
      $keyb="";
      $dkeyb="http://autocomplete.wunderground.com/";
      //$json_string = @file_get_contents($dkeyb . $paramstuff); // query using autoip ... thanks to https://apicommunity.wunderground.com/weatherapi/topics/parsing_ambiguous_results_in_php 
      //echo "jstr=" . $json_string;
      if ($json_string != "") {
      $paramstuff=""; 
      $parsed_json = json_decode($json_string); 
      $i=0;
      while ($i < sizeof($parsed_json->response->results)) {
        if ($i == 0) $myselcont='<option value=>Please select below ...</option>';
        $thisurlprefix = $parsed_json->response->results[$i]->l;
        $myselcont.='<option title=' . $parsed_json->response->results[$i]->tz . ',' . $parsed_json->response->results[$i]->lat . ',' . $parsed_json->response->results[$i]->lon . ',' . $parsed_json->response->results[$i]->c . ' value=' . $thisurlprefix . '>' . $parsed_json->response->results[$i]->name . '</option>';
        $i++;
      }
      }
}

if ($json_string != "") {
  if ($myselcont != "") {
echo "
<!doctype html>
<html>
<head>
<title>Retrieve Weather Underground data information</title>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js'></script>

<script type='text/javascript'>
jQuery(document).ready(function($) {
 if (parent.document.getElementById('myselcont')) {
   parent.document.getElementById('myselcont').innerHTML=\"" . $myselcont . "\";
 } else {
   alert(\"" . $myselcont . "\");
 }
 if (parent.document.getElementById('jsondata')) {
   parent.document.getElementById('jsondata').innerHTML=\"" . $json_string . "\";
 } else {
   alert(\"" . $json_string . "\");
 } 
}
});
</script>
</head><body></body></html>
";
  }
} else if (strpos(('*' . $paramstuff), "*aq") !== false && strpos($paramstuff, "query=") !== false) {
if ($keyb != "") $dkeyb = $keyb . "/";

echo "
<!doctype html>
<html>
<head>
<title>Retrieve Weather Underground data information</title>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js'></script>

<script type='text/javascript'>
var myselcont='';
var value = $(this).val();
jQuery(document).ready(function($) {
  myselcont='<option value=>Please select below ...</option>';   /" . "/ thanks to http://stackoverflow.com/questions/31624481/jquery-autocomplete-using-with-weather-underground-api
    var i;
    var out;
    var arr = [];

    $('#autocomplete').click(function () {
        var value = $(this).val();
   //if (value.length >= 3) {
   if (value.length >= 1) {
  $.ajax({
   url : 
    '" . $dkeyb . "' + '" . str_replace(' ','%20',$paramstuff) . "' + '&cb=call=?',
dataType: 'jsonp',
data: {
                'query': value
},
crossDomain: true,
success: function (parsed_json) {
var c =$.each(parsed_json.RESULTS,function(i,item){
        myselcont+='<option title=' + (parsed_json.RESULTS[i].tz) + ',' + (parsed_json.RESULTS[i].lat) + ',' + (parsed_json.RESULTS[i].lon) + ',' + (parsed_json.RESULTS[i].c) + ' value=' + (parsed_json.RESULTS[i].l) + '>' + (parsed_json.RESULTS[i].name) + '</option>';

   if (parent.document.getElementById('myselcont')) {
   parent.document.getElementById('myselcont').innerHTML=myselcont;
   } else {
   alert(myselcont);
   }
 });

},
 error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
    }

  }); 
 

}
});
    document.getElementById('autocomplete').value=\"" . $suffix . "\";
    document.getElementById('autocomplete').click();

});
</script>
</head><body><input id='autocomplete' style='display:none;'></body></html>
";
} else if (strpos($paramstuff, "geolookup") !== false && strpos($paramstuff, "conditions") !== false) {
if ($keyb != "") $dkeyb = $keyb . "/";
$defsuccess="
<!doctype html>
<html>
<head>
<title>Retrieve Weather Underground data information</title>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js'></script>

<script type='text/javascript'>
jQuery(document).ready(function($) {
 if (parent.document.getElementById('jsondata')) {
  $.ajax({
   url : 
    '" . $dkeyb . "' + '" . $paramstuff . "',
    dataType : 'jsonp',
    success : function(parsed_json) { 
      if (parent.document.getElementById('jsondata')) {
        parent.document.getElementById('jsondata').innerHTML=parsed_json;
      } else {
        var location = parsed_json['location']['city'];
        if (parent.document.getElementById('location_city')) {
          parent.document.getElementById('location_city').value=location;
        }
        var temp_c, temp_f;
        if (parent.document.getElementById('temp_c') && parent.document.getElementById('temp_f')) {
          temp_c = parsed_json['current_observation']['temp_c'];
          temp_f = parsed_json['current_observation']['temp_f'];
          parent.document.getElementById('temp_c').value=temp_c;
          parent.document.getElementById('temp_f').value=temp_f;
        } else if (parent.document.getElementById('temp_c')) {
          temp_c = parsed_json['current_observation']['temp_c'];
          parent.document.getElementById('temp_c').value=temp_c;
        } else if (parent.document.getElementById('temp_f')) {
          temp_f = parsed_json['current_observation']['temp_f'];
          parent.document.getElementById('temp_f').value=temp_f;
        } else {
          temp_c = parsed_json['current_observation']['temp_c'];
          temp_f = parsed_json['current_observation']['temp_f'];
          alert('Current temperature in ' + location + ' is: ' + temp_c + ' degrees Celsius and ' + temp_f + ' degrees Fahrenheit.');
        } 
     }
    });
 }
});
</script>
</head><body></body></html>
";
} else {
if ($keyb != "") $dkeyb = $keyb . "/";
echo "
<!doctype html>
<html>
<head>
<title>Retrieve Weather Underground data information</title>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js'></script>

<script type='text/javascript'>
jQuery(document).ready(function($) {
 if (parent.document.getElementById('jsondata')) {
  $.ajax({
   url : 
    '" . $dkeyb . "' + '" . $paramstuff . "',
    dataType : 'jsonp',
    success : function(parsed_json) { 
      if (parent.document.getElementById('jsondata')) {
        parent.document.getElementById('jsondata').innerHTML=parsed_json;
      }
    }
    });
 }
});
</script>
</head><body></body></html>
";
}

if ($defsuccess != "") {
echo "
<!doctype html>
<html>
<head>
<title>Retrieve Weather Underground data information</title>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js'></script>

<script type='text/javascript'>
jQuery(document).ready(function($) {
  $.ajax({
   url : 
    '" . $dkeyb . "' + '" . $paramstuff . "',
    dataType : 'jsonp',
    success : function(parsed_json) { " . $defsuccess . "
    }
    });
});
</script>
</head><body></body></html>
";
}
} 
?>

