<?php /**/ ?><?php
function getResource($url){
  $chandle = curl_init();
  curl_setopt($chandle, CURLOPT_URL, $url);
  curl_setopt($chandle, CURLOPT_RETURNTRANSFER, 1);
  $result = curl_exec($chandle);
  curl_close($chandle);

  return $result;
}

function do_search($tag,$lat0,$lon0,$lat1,$lon1,$per_page,$page,$format) {
  $bbox = urlencode("{$lon0},{$lat0},{$lon1},{$lat1}");
  $tag = urlencode($tag);
  $api_key = "e81ef8102a5160154ef4662adcc9046b";
  if ($format == 'json') {
  $url = "http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key={$api_key}&tags={$tag}&bbox={$bbox}&per_page={$per_page}&page={$page}&format=json&nojsoncallback=1&extras=geo";
  } else {
   $url = "http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key={$api_key}&tags={$tag}&bbox={$bbox}&per_page={$per_page}&page={$page}&extras=geo";
  }

  $feed = getResource($url);
  return $feed;
  
}

function generate_html_from_pics($feed) {

  $xml = simplexml_load_string($feed);
  #print_r($xml);
  #var_dump($xml);
  $s = "";
  $s .= "Total number of photos for {$tag}: " . $xml->photos['total'] . "<br>";
  
# http://www.flickr.com/services/api/misc.urls.html
# http://farm{farm-id}.static.flickr.com/{server-id}/{id}_{secret}.jpg
  foreach ($xml->photos->photo as $photo) {
    $farmid = $photo['farm'];
    $serverid = $photo['server'];
    $id = $photo['id'];
    $secret = $photo['secret'];
    $owner = $photo['owner'];
    $thumb_url = "http://farm{$farmid}.static.flickr.com/{$serverid}/{$id}_{$secret}_t.jpg";
    $page_url = "http://www.flickr.com/photos/{$owner}/{$id}";
    $image_html= "<a href='{$page_url}'><img src='{$thumb_url}'></a>";
    $s .= $image_html;
  }
  return $s;
}

// input parameters: lat0,lon0,lat1,lon0, tag, per_page, page

// need to fix this if to check for all the variables.
$tag  = isset($_GET['tag']) ? $_GET['tag'] : "";
$lat0 = isset($_GET['lat0']) ? $_GET['lat0'] : -90.0;
$lat1 = isset($_GET['lat1']) ? $_GET['lat1'] :  90.0;
$lon0 = isset($_GET['lon0']) ? $_GET['lon0'] : -180.0;
$lon1 = isset($_GET['lon1']) ? $_GET['lon1'] :  180.0;
$per_page = isset($_GET['per_page']) ? $_GET['per_page'] :  10;
$page = isset($_GET['page']) ? $_GET['page'] :  1;
$format= isset($_GET['format']) ? $_GET['format'] :  "html";

$s = do_search($_GET['tag'], $lat0,$lon0,$lat1,$lon1,$per_page,$page,$format);
if ($format == "html") {
  header("Content-Type:text/html");
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="get">
Search for photos with the following tag:
<input type="text" size="20" name="tag" value="<?php print($tag) ?>"> located at: lat0,lon0,lat1,lon1:
<input type="text" size="10" name="lat0" value="<?php print ($lat0)?>">
<input type="text" size="10" name="lon0" value="<?php print ($lon0)?>">
<input type="text" size="10" name="lat1" value="<?php print ($lat1)?>">
<input type="text" size="10" name="lon1" value="<?php print ($lon1)?>">
at page <input type="text" size="4" name="page" value="<?php print ($page)?>"> with
<input type="text" size="3" name="per_page" value="<?php print ($per_page)?>"> per page.
<input type="submit" value="Go!">
 </form>
<?php
   echo generate_html_from_pics($s);
   } elseif ($format == "xml") {
      header("Content-Type:text/xml");
      echo $s;
  }  elseif ($format == "json") {
      header("Content-Type:text/javascript");
      echo $s;
  }
?>
