add bubble tree
add bubble tree


Former-commit-id: 7afbec2676978f74d47cb7178d648a437c620b34

file:a/about.php -> file:b/about.php
--- a/about.php
+++ b/about.php
@@ -4,19 +4,12 @@
 ?>
 <div class="foundation-header">
     <h1><a href="about.php">About/FAQ</a></h1>
-    <h4 class="subheader">Lorem ipsum.</h4>
 </div>
-<h2> What is this? </h2>
-Disclo.gs is a project to monitor Australian Federal Government agencies 
-compliance with their <a href="http://www.oaic.gov.au/publications/other_operational/foi_policy_frequently_asked_questions.html#_Toc291837571">"proactive disclosure requirements" to make a transparency league table as suggested by gov2 taskforce http://gov2.net.au/blog/2009/09/19/a-league-ladder-of-psi-openness/</a>.
 <h2> Attributions </h2>
 National Archives of Australia, Australian Governments’ Interactive Functions Thesaurus, 2nd edition, September 2005, published at http://www.naa.gov.au/recordkeeping/thesaurus/index.htm <br/>
 data.gov.au http://data.gov.au/dataset/directory-gov-au-full-data-export/ <br/>
 directory.gov.au <br/>
 australia.gov.au http://australia.gov.au/about/copyright <br/>
-<h2> Open everything </h2>
-All documents released CC-BY 3 AU
-Open source git @
 
 <h2>Organisational Data Sources</h2>
 
@@ -25,17 +18,17 @@
 
 http://www.finance.gov.au/publications/flipchart/docs/FMACACFlipchart.pdf summarises these. view-source:https://www.tenders.gov.au/?event=public.advancedsearch.home is great for the suspended/active status<br>
 
-Fraud in gov depts by Fairfax Media http://www.smh.com.au/national/public-service-keeps-fraud-cases-private-20110923-1kpdr.html
+Fraud in gov depts by Fairfax Media http://www.smh.com.au/national/public-service-keeps-fraud-cases-private-20110923-1kpdr.html <br>
 
 When defining the hierachy, this system is designed towards monitoring accountablity. Thus large agencies that have registered their own ABN 
-and have their own accountablity mechanisms/website receive a seperate record as a child of their department.
+and have their own accountablity mechanisms/website receive a seperate record as a child of their department.<br>
 Some small agencies will choose to simply rely on their parent department's accountablity measures.<br>
 
-This flows through to organisation name and other/past names. A department that completely accounts for an agency will list that agency as an other child name.
-As agencies themselves shift between departments, there may be scope for providing time ranges but typically the newest hierarchy will be the one recorded.
+This flows through to organisation name and other/past names. A department that completely accounts for an agency will list that agency as an other child name.<br>
+As agencies themselves shift between departments, there may be scope for providing time ranges but typically the newest hierarchy will be the one recorded.<br>
 A department/agency name will be the newest active name assigned to that ABN.<br>
 
-ABN information is derived from the ABR. This is the definitive umpire about which former name should be linked to which current name. 
+ABN information is derived from the ABR. This is the definitive umpire about which former name should be linked to which current name. <br>
 For example "Department of Transport and Regional Services" became "Department of Infrastructure, Transport, Regional Development and Local Government" (same ABN)
 however it later split into "Department of Infrastructure and Transport" (same ABN) 
 and "Department of Regional Australia, Regional Development and Local Government" (new ABN).<br>
@@ -43,24 +36,7 @@
 Statistical information from http://www.apsc.gov.au/stateoftheservice/1011/statsbulletin/section1.html#t2total https://www.apsedii.gov.au/apsedii/CustomQueryx33.shtml
 and individual annual reports.<br>
 
-<h2>Webpage Assessment</h2>
-Much due care has been put into correctly recording disclosure URLs. Typically the "About", "Corporate", "Publications" and "Sitemap" sections are checked at the very least. 
-Occasionally it is nessicary to use a site or Google search. In several rare cases, there is a secret "Disclosure" navigation menu you can find if you find one of the mandatory publishing obligations in that category (seriously).<br>
-Some rules about leniency:<br>
-<ul>
-    <li>An empty FOI disclosure log counts, a page outlining what the FOI Act is does not.</li>
-    <li>A disclosure log in PDF or Word format counts :(</li>
-    <li>An empty File/Record list counts (although that's very minimalistic that you have no files, electronic or paper)</li>
-    <li>Only a current information publication scheme page counts, not a s.9 FOI Act page or an organisation chart.</li>
-    <li>If there isn't a page easily listing all current and past Annual Reports, the most current one (html, pdf) counts.</li>
-    <li>Consultancy contracts might not need it's own webpage (if in Annual Report), grants/appointments might not apply to all organisations but Legal Services Expenditure (and all other obligations) does need a webpage. </li>
-
-<h2>Open Government Scoring</h2>
-+1 point for every true Has... attribute<br>
--1 point for every false Has... (ie. Has Not) attribute</br>
-
-Don't like this? Make your own score, suggest a better scoring mechanism.</br>
-
 <?php
 include_footer();
 ?>
+

file:a/bubbletree.php (deleted)
--- a/bubbletree.php
+++ /dev/null
@@ -1,126 +1,1 @@
 
-<!DOCTYPE html> 
-<html xmlns="http://www.w3.org/1999/xhtml"> 
-    <head> 
-        <meta charset="UTF-8"/> 
-        <title>Minimal BubbleTree Demo</title> 
-        <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script> 
-        <script type="text/javascript" src="js/bubbletree/lib/jquery.history.js"></script> 
-        <script type="text/javascript" src="js/bubbletree/lib/raphael.js"></script> 
-        <script type="text/javascript" src="js/bubbletree/lib/vis4.js"></script> 
-        <script type="text/javascript" src="js/bubbletree/lib/Tween.js"></script> 
-        <script type="text/javascript" src="js/bubbletree/build/bubbletree.js"></script> 
-        <link rel="stylesheet" type="text/css" href="js/bubbletree/build/bubbletree.css" /> 
-        <script type="text/javascript" src="js/bubbletree/styles/cofog.js"></script> 
-
-
-        <script type="text/javascript"> 
-       
-            $(function() {
-<?php
-include_once('include/common.inc.php');
-
-include("lib/Color.php");
-$color = new Lux_Color();
-
-$portfolios = Array();
-$total = 0;
-$db = $server->get_db('disclosr-agencies');
-try {
-    $rows = $db->get_view("app", "byDeptStateName", null, true)->rows;
-    foreach ($rows as $row) {
-        $portfolios[trim(str_replace(Array("Department of", "Department", "the", "'", "`"), "", $row->key))] = $row->value;
-    }
-} catch (SetteeRestClientException $e) {
-    setteErrorHandler($e);
-}
-
-$agencies = Array();
-try {
-    $rows = $db->get_view("app", "byCanonicalName", null, true)->rows;
-//print_r($rows);
-    foreach ($rows as $row) {
-        $employees = 0;
-        $portfolioid = 0;
-        if (isset($row->value->employees)) {
-            $employees = $row->value->employees;
-        }
-        if (isset($row->value->statistics->employees)) {
-            $agencyEmployeesArray = object_to_array($row->value->statistics->employees);
-            if (isset($agencyEmployeesArray["2010-2011"]["value"])) {
-                $employees = $agencyEmployeesArray["2010-2011"]["value"];
-            } else {
-                // bailout for agencies that are closed for business
-                continue;
-            }
-        }
-        if (!($employees > 0)) {
-            $employees = 0;
-        }
-        if (isset($row->value->parentOrg)) {
-            $portfolioid = $row->value->parentOrg;
-        }
-        if (isset($row->value->orgType) && $row->value->orgType == "FMA-DepartmentOfState") {
-            $portfolioid = $row->id;
-        }
-        $agencies[$portfolioid][$row->value->name] = $employees;
-    }
-} catch (SetteeRestClientException $e) {
-    setteErrorHandler($e);
-}
-//print_r($portfolios);
-//print_r($agencies);
-
-// http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/
-$golden_ratio_conjugate = 0.618033988749895;
-$h = 0.00+rand(0,10)/10; # use random start value
-foreach ($portfolios as $portfolioName => $portfolioID) {
-  $h += $golden_ratio_conjugate;
-  
-  $h =  fmod($h,1);
-    $portfolioColor = $color->hsv2hex(Array($h, .3, .99));
-    $subnodes = Array();
-    $portfolioEmployees = 0;
-    foreach ($agencies[$portfolioID] as $agencyName => $agencyEmployees) {
-        $agencyColor = $color->hsv2hex(Array($h / 10, rand(1, 10) / 10, abs(($h * (1 / 10)) - .5) + .5));
-        $subnodes[] = Array(
-            "label" => str_replace(Array("'", "`"), "", $agencyName),
-            "amount" => $agencyEmployees,
-            //"color" => "#" . $agencyColor
-        );
-        $portfolioEmployees += $agencyEmployees;
-    }
-    $nodes[] = Array(
-        "label" => $portfolioName,
-        "amount" => $portfolioEmployees,
-        //"color" => "#" . $portfolioColor,
-        "children" => $subnodes
-    );
-    $total += $portfolioEmployees;
-}
-$data = Array(
-    "label" => "Australian Federal Government",
-    "amount" => $total,
-    //"color" => "#000000",
-    "children" => $nodes
-);
-echo "var data =eval('('+'" . json_encode($data) . "'+')');";
-?>
-
-        new BubbleTree({
-            data: data,
-            container: '.bubbletree'
-        });
-		
-			
-    });
-     
-        </script> 
-    </head> 
-    <body> 
-        <div class="bubbletree-wrapper"> 
-            <div class="bubbletree"></div> 
-        </div> 
-    </body> 
-</html> 
-

file:b/budget.php (new)
--- /dev/null
+++ b/budget.php
@@ -1,1 +1,124 @@
 
+<!DOCTYPE html> 
+<html xmlns="http://www.w3.org/1999/xhtml"> 
+    <head> 
+        <meta charset="UTF-8"/> 
+        <title>Minimal BubbleTree Demo</title> 
+        <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script> 
+        <script type="text/javascript" src="js/bubbletree/lib/jquery.history.js"></script> 
+        <script type="text/javascript" src="js/bubbletree/lib/raphael.js"></script> 
+        <script type="text/javascript" src="js/bubbletree/lib/vis4.js"></script> 
+        <script type="text/javascript" src="js/bubbletree/lib/Tween.js"></script> 
+        <script type="text/javascript" src="js/bubbletree/build/bubbletree.js"></script> 
+        <link rel="stylesheet" type="text/css" href="js/bubbletree/build/bubbletree.css" /> 
+        <script type="text/javascript" src="js/bubbletree/styles/cofog.js"></script> 
+
+
+        <script type="text/javascript"> 
+       
+            $(function() {
+<?php
+include_once('include/common.inc.php');
+
+include("lib/Color.php");
+$color = new Lux_Color();
+
+$portfolios = Array();
+$total = 0;
+$db = $server->get_db('disclosr-agencies');
+try {
+    $rows = $db->get_view("app", "byDeptStateName", null, true)->rows;
+    foreach ($rows as $row) {
+        $portfolios[trim(str_replace(Array("Department of", "Department", "the", "'", "`"), "", $row->key))] = $row->value;
+    }
+} catch (SetteeRestClientException $e) {
+    setteErrorHandler($e);
+}
+
+$agencies = Array();
+try {
+    $rows = $db->get_view("app", "byCanonicalName", null, true)->rows;
+//print_r($rows);
+    foreach ($rows as $row) {
+        $employees = 0;
+        $portfolioid = 0;
+        if (isset($row->value->statistics->budget)) {
+            $agencyEmployeesArray = object_to_array($row->value->statistics->budget);
+	//print_r($agencyEmployeesArray);
+            if (isset($agencyEmployeesArray["2011-2012"]["value"])) {
+                $employees = $agencyEmployeesArray["2011-2012"]["value"];
+            } else {
+                // bailout for agencies that are closed for business
+                continue;
+            }
+        }
+        if (!($employees > 0)) {
+            $employees = 0;
+        }
+        if (isset($row->value->parentOrg)) {
+            $portfolioid = $row->value->parentOrg;
+        }
+        if (isset($row->value->orgType) && $row->value->orgType == "FMA-DepartmentOfState") {
+            $portfolioid = $row->id;
+        }
+        $agencies[$portfolioid][$row->value->name] = $employees;
+    }
+} catch (SetteeRestClientException $e) {
+    setteErrorHandler($e);
+}
+//print_r($portfolios);
+//print_r($agencies);
+
+// http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/
+$golden_ratio_conjugate = 0.618033988749895;
+$h = 0.00+rand(0,10)/10; # use random start value
+foreach ($portfolios as $portfolioName => $portfolioID) {
+  $h += $golden_ratio_conjugate;
+  
+  $h =  fmod($h,1);
+    $portfolioColor = $color->hsv2hex(Array($h, .3, .99));
+    $subnodes = Array();
+    $portfolioEmployees = 0;
+    foreach ($agencies[$portfolioID] as $agencyName => $agencyEmployees) {
+        $agencyColor = $color->hsv2hex(Array($h / 10, rand(1, 10) / 10, abs(($h * (1 / 10)) - .5) + .5));
+        $subnodes[] = Array(
+            "label" => str_replace(Array("'", "`"), "", $agencyName),
+            "amount" => $agencyEmployees,
+            //"color" => "#" . $agencyColor
+        );
+        $portfolioEmployees += $agencyEmployees;
+    }
+    $nodes[] = Array(
+        "label" => $portfolioName,
+        "amount" => $portfolioEmployees,
+        //"color" => "#" . $portfolioColor,
+        "children" => $subnodes
+    );
+    $total += $portfolioEmployees;
+}
+$data = Array(
+    "label" => "Australian Federal Government",
+    "amount" => $total,
+    //"color" => "#000000",
+    "children" => $nodes
+);
+echo "var data =eval('('+'" . json_encode($data) . "'+')');";
+?>
+
+        new BubbleTree({
+            data: data,
+            container: '.bubbletree'
+        });
+		
+			
+    });
+     
+        </script> 
+    </head> 
+    <body> 
+        <div class="bubbletree-wrapper"> 
+            <div class="bubbletree"></div> 
+        </div> 
+    </body> 
+</html> 
+

file:b/headcount.php (new)
--- /dev/null
+++ b/headcount.php
@@ -1,1 +1,126 @@
 
+<!DOCTYPE html> 
+<html xmlns="http://www.w3.org/1999/xhtml"> 
+    <head> 
+        <meta charset="UTF-8"/> 
+        <title>Minimal BubbleTree Demo</title> 
+        <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script> 
+        <script type="text/javascript" src="js/bubbletree/lib/jquery.history.js"></script> 
+        <script type="text/javascript" src="js/bubbletree/lib/raphael.js"></script> 
+        <script type="text/javascript" src="js/bubbletree/lib/vis4.js"></script> 
+        <script type="text/javascript" src="js/bubbletree/lib/Tween.js"></script> 
+        <script type="text/javascript" src="js/bubbletree/build/bubbletree.js"></script> 
+        <link rel="stylesheet" type="text/css" href="js/bubbletree/build/bubbletree.css" /> 
+        <script type="text/javascript" src="js/bubbletree/styles/cofog.js"></script> 
+
+
+        <script type="text/javascript"> 
+       
+            $(function() {
+<?php
+include_once('include/common.inc.php');
+
+include("lib/Color.php");
+$color = new Lux_Color();
+
+$portfolios = Array();
+$total = 0;
+$db = $server->get_db('disclosr-agencies');
+try {
+    $rows = $db->get_view("app", "byDeptStateName", null, true)->rows;
+    foreach ($rows as $row) {
+        $portfolios[trim(str_replace(Array("Department of", "Department", "the", "'", "`"), "", $row->key))] = $row->value;
+    }
+} catch (SetteeRestClientException $e) {
+    setteErrorHandler($e);
+}
+
+$agencies = Array();
+try {
+    $rows = $db->get_view("app", "byCanonicalName", null, true)->rows;
+//print_r($rows);
+    foreach ($rows as $row) {
+        $employees = 0;
+        $portfolioid = 0;
+        if (isset($row->value->employees)) {
+            $employees = $row->value->employees;
+        }
+        if (isset($row->value->statistics->employees)) {
+            $agencyEmployeesArray = object_to_array($row->value->statistics->employees);
+            if (isset($agencyEmployeesArray["2010-2011"]["value"])) {
+                $employees = $agencyEmployeesArray["2010-2011"]["value"];
+            } else {
+                // bailout for agencies that are closed for business
+                continue;
+            }
+        }
+        if (!($employees > 0)) {
+            $employees = 0;
+        }
+        if (isset($row->value->parentOrg)) {
+            $portfolioid = $row->value->parentOrg;
+        }
+        if (isset($row->value->orgType) && $row->value->orgType == "FMA-DepartmentOfState") {
+            $portfolioid = $row->id;
+        }
+        $agencies[$portfolioid][$row->value->name] = $employees;
+    }
+} catch (SetteeRestClientException $e) {
+    setteErrorHandler($e);
+}
+//print_r($portfolios);
+//print_r($agencies);
+
+// http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/
+$golden_ratio_conjugate = 0.618033988749895;
+$h = 0.00+rand(0,10)/10; # use random start value
+foreach ($portfolios as $portfolioName => $portfolioID) {
+  $h += $golden_ratio_conjugate;
+  
+  $h =  fmod($h,1);
+    $portfolioColor = $color->hsv2hex(Array($h, .3, .99));
+    $subnodes = Array();
+    $portfolioEmployees = 0;
+    foreach ($agencies[$portfolioID] as $agencyName => $agencyEmployees) {
+        $agencyColor = $color->hsv2hex(Array($h / 10, rand(1, 10) / 10, abs(($h * (1 / 10)) - .5) + .5));
+        $subnodes[] = Array(
+            "label" => str_replace(Array("'", "`"), "", $agencyName),
+            "amount" => $agencyEmployees,
+            //"color" => "#" . $agencyColor
+        );
+        $portfolioEmployees += $agencyEmployees;
+    }
+    $nodes[] = Array(
+        "label" => $portfolioName,
+        "amount" => $portfolioEmployees,
+        //"color" => "#" . $portfolioColor,
+        "children" => $subnodes
+    );
+    $total += $portfolioEmployees;
+}
+$data = Array(
+    "label" => "Australian Federal Government",
+    "amount" => $total,
+    //"color" => "#000000",
+    "children" => $nodes
+);
+echo "var data =eval('('+'" . json_encode($data) . "'+')');";
+?>
+
+        new BubbleTree({
+            data: data,
+            container: '.bubbletree'
+        });
+		
+			
+    });
+     
+        </script> 
+    </head> 
+    <body> 
+        <div class="bubbletree-wrapper"> 
+            <div class="bubbletree"></div> 
+        </div> 
+    </body> 
+</html> 
+

--- a/include/template.inc.php
+++ b/include/template.inc.php
@@ -54,6 +54,8 @@
                         <div class="nav-collapse collapse">
                             <ul class="nav">
                                 <li><a href="getAgency.php">Agencies</a></li>
+                                <li><a href="headcount.php">Employee Headcount Graph</a></li>
+                                <li><a href="budget.php">Budget Graph</a></li>
                                 <li><a href="about.php">About/FAQ</a></li>
                                      </ul>
           </div><!--/.nav-collapse -->