<?php

  $data = array(
            "delay",
            "article",
            "control",
            "size",
            "grp",
            "path",
            "ref"
          );

  $defscale = "3 months";

  $scale = array(
            "1 hour",
            "6 hours",
            "12 hours",
            "1 day",
            "3 days",
            "1 week",
            "2 weeks",
            "1 month",
            "3 months",
            "6 months",
            "1 year"
           );

  function clean_scale($s) {
    $s = preg_replace("/\\W/", "", $s);
    return $s;
  }

  function self_url($sc = "", $da= "") {
    $sep = "?";

    $url  = "http://news.karotte.org";
    $url .= $_SERVER["PHP_SELF"];
    if ($sc != "") {
      $url .= $sep . "scale=" . urlencode($sc);
      $sep = "&amp;";
    }
    if ($da != "") {
      $url .= $sep . "data=" . urlencode($da);
      $sep = "&amp;";
    }

    return $url;
  }
  
  function linkbar_data($a, $d, $da, $sc) {
    global $defscale;

    $sep = "";
    foreach ($a as $v) {
      printf("%s <a href='%s#%s'>%s</a> \n",
        $sep,
        self_url($v, $da),
        clean_scale($v),
        $v
      );
      $sep = "|";
    }
    printf("<br />\n");

    $sep = "";
    foreach ($d as $v) {
      printf("%s <a href='%s'>%s</a> \n",
        $sep,
        self_url($sc, $v),
        $v
      );
      $sep = "|";
    }
    printf("<hr />\n");

  }

  function linkbar_scale($a, $d, $sc) {
    $sep = "";
    
    foreach ($a as $v) {
      printf("%s <a href='%s'>%s</a> \n",
        $sep,
        self_url($v),
        $v
      );
      $sep = "|";
    }
    printf("<br />\n");

    $sep = "";
    foreach ($d as $v) {
      printf("%s <a href='%s#%s'>%s</a> \n",
        $sep,
        self_url($sc),
        $v,
        $v
      );
      $sep = "|";
    }
    printf("<hr />\n");
  }

  function meta_refresh($sc = "", $da = "") {
    $update = (strtotime($sc) - time())/24;
    if ($update < 300)
      $update = 300;

    printf("<meta http-equiv='refresh' content='%s; url=%s' />\n",
      $update,
      self_url($sc, $da)
    );
  }

  # Cleanup input
  if (  isset($_GET["scale"])
   and (in_array($_GET["scale"], $scale)) )
    $sc = $_GET["scale"];
  else
    $sc = $defscale;

  if ( isset($_GET["data"])
   and (in_array($_GET["data"], $data)))
    $da = $_GET["data"];

  meta_refresh($sc, $da);
  echo "Generated: ", date("Y-m-d H:i:s"), "<br/>\n";

  if (! isset($da)) {
    linkbar_scale($scale, $data, $sc);

    foreach ($data as $file) {
      $name = sprintf("%s-%s.png", $file, clean_scale($sc));
      printf("<a name='$file' />");
      printf("<a href='%s'><img src='$name' /></a><br />",
        self_url($sc, $file)
      );
      printf("<a href='%s'>(top)</a><br />", self_url($sc, $da));
      printf("<hr />\n");
    }
  } else {
    linkbar_data($scale, $data, $da, $sc);

    foreach ($scale as $file) {
      $name = sprintf("%s-%s.png", $da, clean_scale($file));
      printf("<a name='%s' />", clean_scale($file));
      printf("<a href='%s'><img src='$name' /></a><br />",
        self_url($file)
      );
      printf("<a href='%s'>(top)</a><br />", self_url($sc, $da));
      printf("<hr />\n");
    }
  }
?>
&copy; 2005 <a href="http://kris.koehntopp.de">Kristian K&ouml;hntopp</a><br/>
These programs are using <a href="http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/">RRDtool</a><br/>
