<?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>Treemap 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 = "Market trade volume (size) vs Market increase/decrease (colour) by Country";
      $GETlabel = "'Location'";
      $GETvalue = "'Parent', 'Market trade volume', 'Market increase/decrease'";
      $GETdata = ",['Global',    null,                 0,                               0],['America',   'Global',             0,                               0],['Europe',    'Global',             0,                               0],['Asia',      'Global',             0,                               0],['Australia', 'Global',             0,                               0],['Africa',    'Global',             0,                               0],['Brazil',    'America',            11,                              10],['USA',       'America',            52,                              31],['Mexico',    'America',            24,                              12],['Canada',    'America',            16,                              -23],['France',    'Europe',             42,                              -11],['Germany',   'Europe',             31,                              -2],['Sweden',    'Europe',             22,                              -13],['Italy',     'Europe',             17,                              4],['UK',        'Europe',             21,                              -5],['China',     'Asia',               36,                              4],['Japan',     'Asia',               20,                              -12],['India',     'Asia',               40,                              63],['Laos',      'Asia',               4,                               34],['Mongolia',  'Asia',               1,                               -5],['Israel',    'Asia',               12,                              24],['Iran',      'Asia',               18,                              13],['Pakistan',  'Asia',               11,                              -52],['Egypt',     'Africa',             21,                              0],['S. Africa', 'Africa',             30,                              43],['Sudan',     'Africa',             12,                              2],['Congo',     'Africa',             10,                              12],['Zaire',     'Africa',             8,                               10]";

      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']);
       $GETdata = str_replace("~~","~Global~",$GETdata);
       $GETdata = str_replace("''","'Global'",$GETdata);
      }
      if (isset($_GET['data'])) {
       $GETtitle = str_replace("\\'", "'", urldecode($_GET['title']));
       $GETlabel = str_replace("\\'", "'", urldecode($_GET['label']));
       $GETvalue = str_replace("\\'", "'", urldecode($_GET['value']));
       $GETdata = str_replace("\\'", "'", urldecode($_GET['data']));
       $GETdata = str_replace("~~","~Global~",$GETdata);
       $GETdata = str_replace("''","'Global'",$GETdata);
      }
      
      $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:['treemap']}); " . "\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";
      
      $GETval = "";
      if (isset($hdgs[0])) $GETval = "'" . $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 "        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.TreeMap(document.getElementById('chart_div')); \n";
      echo " chart.draw(data, { minColor: '#f00', midColor: '#ddd', maxColor: '#0d0', headerHeight: 15, fontColor: 'black', showScale: true}); } \n";
      
      echo " </script> \n";
      echo " </head> \n";
      echo " <body onload='setTimeout(later, 2 * 1000);' style='background-color: silver;'> \n";
      echo " <h1>" . $GETtitle . " Treemap Chart</h1> \n";

      echo '<div id="chart_div" style="width: 900px; height: 500px;"></div>' . " \n";
      echo '<a title="Another Treemap Chart" href="./treemap_chart.php">Another Treemap 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 parentlist = ", ,"; ' . "\n";
        echo ' var thislist; ' . "\n";
        echo ' var predatac = ""; ' . "\n";

        echo ' var mode=-1; ' . "\n";
        echo ' var datac = ""; ' . "\n";


        echo ' var title = prompt("Enter Treemap Chart Title", "' . $GETtitle . '"); ' . "\n";
        echo ' if (title != null) { ' . "\n";
        echo ' var label = prompt("Enter Treemap Primary Concept (you can hit Cancel for no Treemap Primary Concept)", "' . $GETlabel . '"); ' . "\n";
        echo ' if (label != null && mode <= 0) {  mode=label.length;  if (mode != 0) {  datac=", [" + label.replace(String.fromCharCode(39),"~").replace(String.fromCharCode(39),"~") + ",null,0,0] ";  }   } ' . "\n";
        echo ' if (label == null) label = ""; ' . "\n";
        echo ' var xlabel = "' . "'" . '" + label.replace("' . "'" . '","") + "' . "'" . '"; ' . "\n";
        echo ' var value = prompt("Enter Treemap " + xlabel + " Criteria (separated by ,) ... The first dimension is visualized as the parent concept, the 2nd as a number and the 3rd as a number. ", "' . $GETvalue . '"); ' . "\n";
        echo ' var xvalue = "' . "'" . '" + value.replace("' . "'" . '","") + "' . "'" . '"; ' . "\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 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)", "");  if (datalineprefix != null && mode > 0) {  if (datalineprefix.indexOf(",") != -1) { datac=datac + ", [" + datalineprefix.replace(String.fromCharCode(39),"~").replace(String.fromCharCode(39),"~").replace(",","," + label + ",") + "] "; } }   }  ' . "\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 && mode > 0) {  datac=datac + ", [" + datalinesuffix.replace(String.fromCharCode(39),"~").replace(String.fromCharCode(39),"~").replace(",","," + label + ",") + "] ";  } ' . "\n";
        //echo '     if (datalinesuffix == null) window.location = "./treemap_chart.php?title=" + title + "&label=" + label + "&value=" + value.replace("  ercent ", "") + "&data=" + datac; ' . "\n";
        echo '     if (datalinesuffix == null) xvalue = "' . "'" . '" + "" + "' . "'" . '"; ' . "\n";
        echo '     if (datalinesuffix != null) xvalue = "' . "'" . '" + datalinesuffix.replace("' . "'" . '","").replace("' . "'" . '","") + "' . "'" . '"; ' . "\n";
        echo '  thislist = xvalue.replace("' . "'" . '","").replace("' . "'" . '","").split(","); ' . "\n";
        echo '  if (thislist[0] == "") thislist[0] = "Global"; ' . "\n";
        echo '  if (parentlist.indexOf("," + thislist[0] + ",") == -1) {  predatac = ", [~" + thislist[0] + "~,null,0,0] "; parentlist = parentlist + thislist[0] + ","; } ' . "\n";
        //echo '     if (predatac != "") { alert("2:" + datalineprefix); } ' . "\n";
        echo '  if (parentlist.indexOf("," + datalineprefix + ",") == -1) {  parentlist = parentlist + datalineprefix + ",";  } ' . "\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 '     if (predatac != "") { alert(datalineprefix); } ' . "\n";
        echo '     if (datalinesuffix.indexOf("\'\'") != -1) datalinesuffix = datalinesuffix.replace("\'\'","\'Global\'"); ' . "\n";
        echo '     if (mode <= 0) datac = predatac + datac + ", [~" + datalineprefix + "~," + datalinesuffix + "] "; ' . "\n";
        echo '     thisline++; ' . "\n";
        //echo '     if (predatac != "") { thisline++; } ' . "\n";
        echo '   } ' . "\n";
        echo '   predatac = ""; ' . "\n";
        echo ' } ' . "\n";
        echo ' window.location = "./treemap_chart.php?title=" + title + "&label=" + label + "&value=" + value.replace("  ercent ", "") + "&data=" + datac; ' . "\n";
        echo "} \n" . "} \n" . '</' . 'script' . '>' . "\n";
      } 
    ?>
  </body>
</html>
