<?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>
    <title>Bubble 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">
    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=0.5, maximum-scale=4, user-scalable=yes" />
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
<?php 
      $GETtitle = "Correlation between life expectancy, fertility rate and population of some world countries (2010)";
      $GETlabel = "'ID'";
      $GETvalue = "Life Expectancy,Fertility Rate,'Region',Population";
      $GETdata = ",['CAN',80.66,1.67,'North America',33739900],['DEU',79.84,1.36,'Europe',81902307],['DNK',78.6,1.84,'Europe',5523095],['EGY',72.73,2.78,'Middle East',79716203],['GBR',80.05,2,'Europe',61801570],['IRN',72.49,1.7,'Middle East',73137148],['IRQ',68.09,4.77,'Middle East',31090763],['ISR',81.55,2.96,'Middle East',7485600],['RUS',68.6,1.54,'Europe',141850000],['USA',78.09,2.05,'North America',307007000]";
            
      if (isset($_POST['data'])) {
       if (isset($_GET['title'])) {
       $GETtitle = str_replace("\\'", "'", $_GET['title']);
       } else {
       $GETtitle = str_replace("\\'", "'", $_POST['title']);
       }
       if (isset($_GET['label'])) {
       $GETlabel = str_replace("\\'", "'", $_GET['label']);
       } else {
       $GETlabel = str_replace("\\'", "'", $_POST['label']);
       }
       if (isset($_GET['value'])) {
       $GETvalue = str_replace("\\'", "'", $_GET['value']);
       } else {
       $GETvalue = str_replace("\\'", "'", $_POST['value']);
       }
       $GETdata = str_replace("\\'", "'", $_POST['data']);
      }
      if (isset($_GET['data'])) {
       $GETtitle = str_replace("\\'", "'", $_GET['title']);
       $GETlabel = str_replace("\\'", "'", $_GET['label']);
       $GETvalue = str_replace("\\'", "'", $_GET['value']);
       $GETdata = str_replace("\\'", "'", $_GET['data']);
      }
      
      $hdgs = split(",", $GETvalue);
      $GETval = "";
      if (isset($hdgs[0])) $GETval = "'" . str_replace("'", "", $hdgs[0]) . "'";
      if (isset($hdgs[1])) $GETval .= ",'" . str_replace("'", "", $hdgs[1]) . "'";
      if (isset($hdgs[2])) $GETval .= ",'" . str_replace("'", "", $hdgs[2]) . "'";
      if (isset($hdgs[3])) $GETval .= ",'" . str_replace("'", "", $hdgs[3]) . "'";
      
      echo " google.load('visualization', '1', {packages:['corechart']}); " . "\n";
      echo ' google.setOnLoadCallback(drawChart); ' . "\n";
      echo ' function drawChart() { ' . "\n";
      echo ' var data = google.visualization.arrayToDataTable([ ' . "\n";
      echo " [" . $GETlabel . "," . $GETval . "] \n";
      echo str_replace("''" . "''", "''", str_replace("~", "'", $GETdata));
      echo "        ]);\n";
      
      echo "        var options = { \n";
      if (isset($hdgs[3])) {
      echo "        title: '" . $GETtitle . "', \n";
      echo "        hAxis: {title: '" . $hdgs[0] . "'}," . " \n";
      echo "        vAxis: {title: '" . $hdgs[1] . "'}," . " \n";
      echo "        bubble: {textStyle: {fontSize: 11}} \n";
      } else {
      echo "        colorAxis: {colors: ['yellow', 'red']} \n";
      }
      echo "       }; \n";


      echo " var chart = new google.visualization.BubbleChart(document.getElementById('chart_div')); \n";
      echo " chart.draw(data, options); \n } \n";
      
      echo " </script> \n";
      echo " </head> \n";
      echo " <body onload='setTimeout(later, 2 * 1000);' style='background-color: silver;'> \n";
      echo " <h1>" . $GETtitle . " Bubble Chart</h1> \n";

      echo '<div id="chart_div" style="width: 900px; height: 500px;"></div>' . " \n";
      echo '<a title="Another Bubble Chart" href="./bubble_chart.php">Another bubble chart?</a>' . " \n";
      if (!isset($_GET['value']) && !isset($_POST['value'])) {
      
        echo '<' . 'script' . '>' . "\n " . " function later() { \n" . ' var datalineprefix = " "; ' . "\n";
        echo ' var datalinesuffix = ""; ' . "\n";
        echo ' var extra = ""; ' . "\n";
        echo ' var thisline = 1; ' . "\n";
        echo ' var ii = 0; ' . "\n";
        echo ' var thisdef = "0"; ' . "\n";
        echo ' var totalleft = 100.0; ' . "\n";


        echo ' var title = prompt("Enter Bubble Chart Title", "' . $GETtitle . '"); ' . "\n";
        echo ' if (title != null) { ' . "\n";
        echo ' var label = prompt("Enter Bubble ID (you can hit Cancel for no Bubble ID)", "' . $GETlabel . '"); ' . "\n";
        echo ' if (label == null) label = ""; ' . "\n";
        echo ' var xlabel = "' . "'" . '" + label.replace("' . "'" . '","") + "' . "'" . '"; ' . "\n";
        echo ' var value = prompt("Enter Bubble " + xlabel + " Criteria (separated by ,) ... The first two dimensions are visualized as coordinates, the (optional) 3rd as colour and the 4th as size. ", "' . $GETvalue . '"); ' . "\n";


        echo ' if (value.indexOf(",") != (0 - 1)) { ' . "\n";
        echo '  for (ii=0; ii < value.length; ii++) { if (value.substring(ii,(ii+1)) == ",") { if (value.substring((ii+1),(ii+2)) == "' . "'" . '") {  thisdef = thisdef + ",' . "'0'" . '"; } else { thisdef = thisdef + ",0"; } } } ' . "\n";
        echo ' } ' . "\n";


        echo ' var datac = ""; ' . "\n";
        echo ' var sq = "' . "'" . '"; ' . "\n";
        echo ' datalineprefix = "' . "''" . '";' . "\n";
        echo ' if (label.length != 0) datalineprefix = prompt("Enter " + xlabel + " " + thisline, ""); ' . "\n";


        echo ' while (datalineprefix.length != 0 && (value.indexOf("ercent") == (0 - 1) || value.indexOf("  ercent ") != (0 - 1) || (value.indexOf("ercent") != (0 - 1) && totalleft > 0))) { ' . "\n";
        echo ' datalineprefix = "' . "''" . '";' . "\n";
        echo ' if (datalinesuffix.length != 0 && label.length != 0) datalineprefix = prompt("Enter " + xlabel + " " + 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 (value.indexOf("ercent") != (0 - 1) && value.indexOf("  ercent ") == (0 - 1)) extra = " (for " + totalleft + " enter nothing or hit Cancel button)";  ' . "\n";
        echo '     datalinesuffix = prompt("Enter " + value.replace("  ercent ", "") + " " + thisline + extra +  " (for no more hit Cancel button)", thisdef); ' . "\n";
        echo '     if (datalinesuffix == null && value.indexOf("ercent") != (0 - 1) && value.indexOf("  ercent ") == (0 - 1)) datalinesuffix = totalleft; ' . "\n";
        echo '     if (datalinesuffix == null) break; ' . "\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) && value.indexOf("ercent") != (0 - 1) && value.indexOf("  ercent ") == (0 - 1)) { ' . "\n";
        echo '       totalleft = 0; ' . "\n";
        echo '     } else if (eval(datalinesuffix) > eval(totalleft) && value.indexOf("ercent") != (0 - 1) && value.indexOf("  ercent ") == (0 - 1)) { ' . "\n";
        echo '       datalinesuffix = eval(totalleft); ' . "\n";
        echo '       totalleft = 0; ' . "\n";
        echo '     } else if (eval(datalinesuffix) > eval(totalleft) && value.indexOf("ercent") == (0 - 1) && value.indexOf("  ercent ") == (0 - 1)) { ' . "\n";
        echo '       value = value + "  ercent "; ' . "\n";
        echo '     } else { ' . "\n";
        echo '       totalleft = eval(totalleft) - eval(datalinesuffix); ' . "\n";
        echo '     } ' . "\n";
        echo '     datac = datac + ", [~" + datalineprefix + "~," + datalinesuffix + "] "; ' . "\n";
        echo '     thisline++; ' . "\n";
        echo '   } ' . "\n";
        echo ' } ' . "\n";
        echo ' window.location = "./bubble_chart.php?title=" + title + "&label=" + label + "&value=" + value.replace("  ercent ", "") + "&data=" + datac; ' . "\n";
        echo "} \n" . "} \n" . '</' . 'script' . '>' . "\n";
      } 
    ?>
  </body>
</html>
