<?php
  function retval($inv) {
    if (strpos($inv, "E-") !== false) return "0";
    return $inv;
  }
?>

<html>
  <head> 
  <!--script type="text/javascript" src="http://www.rjmprogramming.com.au/gchartgen.js"></script-->
  <script type="text/javascript" src="gchartgen.js"></script>
    <title>Pie Chart - RJM Programming - http://www.rjmprogramming.com.au (Copyright &copy; 2013 rjmprogramming.com.au all rights reserved.)</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
<?php 
      $gd = "";
      $ntt=false;
      $nondefs=",  is3D: true ";
      $GETtitle = "My Daily Activities";
      $GETtask = "Task";
      $GETdesc = "Hours per Day";
      $GETdata = ",['Work',11],['Eat',2],['Commute',2],['Watch TV', 2],['Sleep',7]";
      if (isset($_POST['data'])) {
       if (isset($_GET['title'])) {
       $ourtitles=explode(";", $_GET['title']);
       if (sizeof($ourtitles) > 1 && strpos(strtolower($ourtitles[0]), "2d") !== false) {
        $nondefs="";
       }
       if (sizeof($ourtitles) > 1 && strpos(strtolower($ourtitles[0]), "donut") !== false) {
        $nondefs=",  pieHole: 0.4 ";
       }
       $GETtitle = str_replace("\\'", "'", $ourtitles[sizeof($ourtitles) - 1]);
       } else {
       $ourtitles=explode(";", $_POST['title']);
       if (sizeof($ourtitles) > 1 && strpos(strtolower($ourtitles[0]), "2d") !== false) {
        $nondefs="";
       }
       if (sizeof($ourtitles) > 1 && strpos(strtolower($ourtitles[0]), "donut") !== false) {
        $nondefs=",  pieHole: 0.4 ";
       }
       $GETtitle = str_replace("\\'", "'", $ourtitles[sizeof($ourtitles) - 1]);
       }
       if (isset($_GET['task'])) {
       $GETtask = str_replace("\\'", "'", $_GET['task']);
       } else {
       $GETtask = str_replace("\\'", "'", $_POST['task']);
       }
       if (isset($_GET['desc'])) {
       $GETdesc = str_replace("\\'", "'", $_GET['desc']);
       } else {
       $GETdesc = str_replace("\\'", "'", $_POST['desc']);
       }
       $GETdata = str_replace("\\'", "'", $_POST['data']);
      }
      if (isset($_GET['data'])) {
       $ourtitles=explode(";", $_GET['title']);
       if (sizeof($ourtitles) > 1 && strpos(strtolower($ourtitles[0]), "2d") !== false) {
        $nondefs="";
       }
       if (sizeof($ourtitles) > 1 && strpos(strtolower($ourtitles[0]), "donut") !== false) {
        $nondefs=",  pieHole: 0.4 ";
       }
       $GETtitle = str_replace("\\'", "'", $ourtitles[sizeof($ourtitles) - 1]);
       $GETtask = str_replace("\\'", "'", $_GET['task']);
       $GETdesc = str_replace("\\'", "'", $_GET['desc']);
       $GETdata = str_replace("\\'", "'", $_GET['data']);
      }
      $newextras=$nondefs;
      
      echo ' google.load("visualization", "1", {packages:["corechart"]}); ' . "\n";
      echo ' google.setOnLoadCallback(drawChart); ' . "\n";
      echo ' function drawChart() { ' . "\n";
      
      
      // A column for custom tooltip content
 if ((isset($_GET['data']) || isset($_POST['data'])) && (isset($_GET['tooltip']) || isset($_POST['tooltip']) || strpos($GETdata, "'") !== false || strpos($GETdata, '"') !== false)) {
      $ntt=true;
  //$newextras=$nondefs . ", focusTarget: 'category', tooltip: {isHtml: true} ";
  $newextras=$nondefs . ",legend:'none', pieSliceText: 'label', tooltip: { isHtml: true } ";
  echo "       var tooltip = [ \n";
  $bits=explode("~,", substr($GETdata,1));
  $delts="";
  for ($iy=1; $iy<sizeof($bits); $iy++) {
   $postbits=explode(",", $bits[$iy]);
   echo $delts . str_replace("%3C", "<", str_replace("%3E", ">", $postbits[0]));
   $delts=",";
  }
  echo "]; \n";
  $gd=$GETdata;
  for ($iy=1; $iy<sizeof($bits); $iy++) {
   $postbits=explode(",", $bits[$iy]);
   $gd=str_replace("," . $postbits[0], "", $gd);
  }
  $GETdata=$gd;
  echo "     var data = new google.visualization.DataTable();  \n";
  //echo "   data.addColumn({type: 'string', role: 'domain'}, 'Task');  \n";
  echo "   data.addColumn('string', 'Task');  \n";
  //echo "   data.addColumn({'type': 'string', 'role': 'tooltip', 'p': {'html': true}});  \n";
  echo "   data.addColumn('number', 'Percentage');  \n";
  echo " data.addRows([ \n";
  echo str_replace("~,", "',", str_replace("[~", "['", str_replace(",]", ",0]", str_replace(",]", ",0]", str_replace(",]", ",0]", substr($GETdata,1))))));
  echo "   ]); \n";
 } else {
      echo ' var data = google.visualization.arrayToDataTable([ ' . "\n";
      echo " ['" . $GETtask . "','" . $GETdesc . "'] \n";
      echo str_replace("~,", "',", str_replace("[~", "['", str_replace(",]", ",0]", str_replace(",]", ",0]", str_replace(",]", ",0]", substr($GETdata,0))))));
      echo "        ]);\n";
 }    
      
      echo "        var options = { \n";
      echo "        title: '" . $GETtitle . "'" . $newextras . " \n";
      echo "        }; \n";

      echo " var chart = new google.visualization.PieChart(document.getElementById('chart_div')); \n";

 if ($ntt) {
   
      //echo "   var selection; \n";
      echo "   var sliceid = 0; \n";
  
      echo "   function eventHandler(e){ \n";
      echo "     chart.setSelection([e]); \n";
      echo "     try { \n";
      echo "       selection = chart.getSelection(); \n";
      echo "       sliceid = selection[0].row; \n";
      echo "     } \n";
      echo "     catch(err) { \n";
      echo "       ; \n";
      echo "     } \n";
      echo '    $(".google-visualization-tooltip-item-list li:eq(0)").css("font-weight", "bold"); ' . "\n";
      echo '    $(".google-visualization-tooltip-item-list li:eq(1)").html(tooltip[sliceid]).css("font-family", "Arial"); ' . "\n";
      echo "   } \n";
  
      if (strpos($gd, "<") !== false) {
        echo "   google.visualization.events.addListener(chart, 'onclick', eventHandler); \n";
      } else {
        echo "   google.visualization.events.addListener(chart, 'onmouseover', eventHandler); \n";
      }
}
      echo " chart.draw(data, options); \n   \n";
      echo " } \n";
      
      echo " </script> \n";
      echo " </head> \n";
      if (!isset($_GET['desc']) && !isset($_POST['desc'])) {
      echo " <body onload='setTimeout(later, 2 * 1000);'> \n";
      } else {
      echo " <body> \n";
      }
      echo " <h1>" . $GETtitle . " Pie Chart</h1> \n";
?>
    <div id="chart_div" style="width: 900px; height: 500px; background-color: yellow;"></div>
    <a title="Another Pie Chart" href="./pie_chart.php">Another pie chart?</a>
    <?php 
      if (!isset($_GET['desc']) && !isset($_POST['desc'])) {
      
        echo '<' . 'script' . '>' . "\n " . " function later() { \n" . ' var datalineprefix = " "; ' . "\n";
        echo ' var exra = ""; ' . "\n";
        echo ' var datalinesuffix = ""; ' . "\n";
        echo ' var extra = ""; ' . "\n";
        echo ' var thisline = 1; ' . "\n";
        echo ' var totalleft = 100.0; ' . "\n";
        echo ' var title = prompt("Enter Pie Chart Title (prefixes 2d or donut (followed by ;) before title are available options)", "My Daily Activities"); ' . "\n";
        echo ' if (title != null) { ' . "\n";
        echo ' var titles = title.split(";"); ' . "\n";
        echo ' var task = prompt("Enter Activity Type", "Task"); ' . "\n";
        echo ' var desc = prompt("Enter " + task + " Measure", "Percentage"); ' . "\n";
        echo ' var datac = ""; ' . "\n";
        echo ' var sq = "' . "'" . '"; ' . "\n";
        echo ' datalineprefix = prompt("Enter " + task + " Type " + thisline + " (optionally append with ,\"tooltip of some sort\" (that can have HTML included))", ""); ' . "\n";
        echo ' while (datalineprefix.length != 0 && (desc.indexOf("ercent") == (0 - 1) || desc.indexOf("  ercent ") != (0 - 1) || (desc.indexOf("ercent") != (0 - 1) && totalleft > 0))) { ' . "\n";
        echo ' if (datalinesuffix.length != 0) datalineprefix = prompt("Enter " + task + " Type " + thisline + " (for no more hit Cancel button)", ""); ' . "\n";
        echo ' if (datalineprefix == null) { ' . "\n";
        echo '     datalineprefix = ""; ' . "\n";
        echo '     totalleft = 0; ' . "\n";
        echo ' } else if (datalineprefix.length != 0) { ' . "\n";
        echo '     extra = "";  ' . "\n";
        echo '     if (desc.indexOf("ercent") != (0 - 1) && desc.indexOf("  ercent ") == (0 - 1)) extra = " (for " + totalleft + " enter nothing or hit Cancel button)";  ' . "\n";
        echo '     datalinesuffix = prompt("Enter " + desc.replace("  ercent ", "") + " " + thisline + extra, "0"); ' . "\n";
        echo '     if (datalinesuffix == null && desc.indexOf("ercent") != (0 - 1) && desc.indexOf("  ercent ") == (0 - 1)) datalinesuffix = totalleft; ' . "\n";
        echo '     if (datalinesuffix == null) datalinesuffix = "0"; ' . "\n";
        echo '     if (datalinesuffix.length == 0) { ' . "\n";
        echo '       datalinesuffix = eval(totalleft); ' . "\n";
        echo '       totalleft = 0; ' . "\n";
        echo '     } else if (eval(totalleft) == eval(datalinesuffix) && desc.indexOf("ercent") != (0 - 1) && desc.indexOf("  ercent ") == (0 - 1)) { ' . "\n";
        echo '       totalleft = 0; ' . "\n";
        echo '     } else if (eval(datalinesuffix) > eval(totalleft) && desc.indexOf("ercent") != (0 - 1) && desc.indexOf("  ercent ") == (0 - 1)) { ' . "\n";
        echo '       datalinesuffix = eval(totalleft); ' . "\n";
        echo '       totalleft = 0; ' . "\n";
        echo '     } else if (eval(datalinesuffix) > eval(totalleft) && desc.indexOf("ercent") == (0 - 1) && desc.indexOf("  ercent ") == (0 - 1)) { ' . "\n";
        echo '       desc = desc + "  ercent "; ' . "\n";
        echo '     } else { ' . "\n";
        echo '       totalleft = eval(totalleft) - eval(datalinesuffix); ' . "\n";
        echo '     } ' . "\n";
        echo '     if (datalineprefix.indexOf(",") != -1 && (datalineprefix.indexOf(String.fromCharCode(39)) != -1 || datalineprefix.indexOf(String.fromCharCode(34)) != -1)) { exra=String.fromCharCode(39) + String.fromCharCode(39) + ","; datac = datac + ", [~" + datalineprefix.replace(",","~,").replace("<","%3C").replace(">","%3E").replace("<","%3C").replace(">","%3E").replace("<","%3C").replace(">","%3E").replace("<","%3C").replace(">","%3E").replace("<","%3C").replace(">","%3E").replace("<","%3C").replace(">","%3E").replace("<","%3C").replace(">","%3E").replace("<","%3C").replace(">","%3E") + "," + datalinesuffix + "] "; ' . "\n";
        echo '     } else { datac = datac + ", [~" + datalineprefix + "~," + exra + datalinesuffix + "] "; ' . "\n";
        echo '     } ' . "\n" . ' thisline++; ' . "\n";
        echo '   } ' . "\n";
        echo ' } ' . "\n";
        echo ' window.location = "./pie_chart.php?title=" + title + "&task=" + task + "&desc=" + desc.replace("  ercent ", "") + "&data=" + datac; ' . "\n";
        echo "} \n" . "} \n" . '</' . 'script' . '>' . "\n";
      } 
    ?>
  </body>
</html>
