load the navtree javascript on demand; don't try setting up the tree until it's loaded

Change-Id: I1f209869a17099dd853a2f4cae766481a6cd03eb
diff --git a/tools/droiddoc/templates-sdk/assets/js/docs.js b/tools/droiddoc/templates-sdk/assets/js/docs.js
index 613db32..10d42b2 100644
--- a/tools/droiddoc/templates-sdk/assets/js/docs.js
+++ b/tools/droiddoc/templates-sdk/assets/js/docs.js
@@ -11,6 +11,10 @@
 var SITE_ROOT = toRoot + basePath.substring(1,basePath.indexOf("/",1));
 var GOOGLE_DATA; // combined data for google service apis, used for search suggest
   
+// Ensure that all ajax getScript() requests allow caching
+$.ajaxSetup({
+  cache: true
+});
 
 /******  ON LOAD SET UP STUFF *********/
 
@@ -2319,7 +2323,13 @@
 }
 
 function init_default_navtree(toroot) {
-  init_navtree("tree-list", toroot, NAVTREE_DATA);
+  // load json file for navtree data
+  $.getScript(toRoot + 'navtree_data.js', function(data, textStatus, jqxhr) {
+      // when the file is loaded, initialize the tree
+      if(jqxhr.status === 200) {
+          init_navtree("tree-list", toroot, NAVTREE_DATA);
+      }
+  });
   
   // perform api level toggling because because the whole tree is new to the DOM
   var selectedLevel = $("#apiLevelSelector option:selected").val();
diff --git a/tools/droiddoc/templates-sdk/head_tag.cs b/tools/droiddoc/templates-sdk/head_tag.cs
index 6774ca6..4fa520f 100644
--- a/tools/droiddoc/templates-sdk/head_tag.cs
+++ b/tools/droiddoc/templates-sdk/head_tag.cs
@@ -50,8 +50,6 @@
 <?cs if:reference.gms || reference.gcm || google?>
 <script src="<?cs var:toroot ?>gms_navtree_data.js" async type="text/javascript"></script>
 <script src="<?cs var:toroot ?>gcm_navtree_data.js" async type="text/javascript"></script>
-<?cs elif:reference ?>
-<script src="<?cs var:toroot ?>navtree_data.js" async type="text/javascript"></script>
 <?cs /if ?>
 
 <script type="text/javascript">