a68ef370181a2876f6bbf788e72037779b11a60a
kate
  Thu Oct 13 18:57:35 2011 -0700
Changes from code review:  1. Discover server  2. CLose html and body in single file  3. Replace hidden vars with js variables
diff --git src/hg/js/encodeDataSummary.js src/hg/js/encodeDataSummary.js
index b64ec3f..7293c54 100644
--- src/hg/js/encodeDataSummary.js
+++ src/hg/js/encodeDataSummary.js
@@ -1,50 +1,52 @@
-//encodeDataSummary.js - pull experiment table and metadata from server 
-//      and display in summary tables
-// Formatted: jsbeautify.py -j
-// Syntax checked: jslint indent:4, plusplus: true, continue: true, unparam: true, sloppy: true, browser: true */
+/* encodeDataSummary.js - pull experiment table and metadata from server 
+      and display in summary tables
+
+ Formatted: jsbeautify.py -j -k
+ Syntax checked: jslint indent:4, plusplus: true, continue: true, unparam: true, sloppy: true, browser: true
+*/
 /*global $, encodeProject */
 
 $(function () {
-    var requests = [
+    var selectedDataType = null,
+        dataTypeLabelHash = {},
+        server, requests = [
     // Requests to server API
-    encodeProject.serverRequests.experiment, encodeProject.serverRequests.dataType, encodeProject.serverRequests.antibody],
-        selectedDataType = null,
-        dataTypeLabelHash = {};
+                    encodeProject.serverRequests.experiment,
+            encodeProject.serverRequests.dataType,
+            encodeProject.serverRequests.antibody];
 
     function tableOut(table, types, exps, selectableData) {
         // Helper function to output tables to document
         var total = 0,
             row = 0,
-            assembly = $("#var_assembly").val();
+            assembly = encodeDataSummary_assembly
 
         // lay out table
         $.each(exps, function (key, value) {
             types.push(key);
             total += parseInt(value, 10);
         });
         types.sort();
         $.each(types, function (i, value) {
             if (dataTypeLabelHash[value]) {
                 description = dataTypeLabelHash[value].description;
             } else {
                 description = '';
             }
             // quote the end tags so HTML validator doesn't whine
-            $(table).append("<tr class='" +
-                (row % 2 === 0 ? "even" : "odd") +
-                "'><td title='" + description + "'>" + value + "<\/td><td id='" + value + "' class='dataItem' title='Click to search for " + value + " data'>" + exps[value] + "<\/td><\/tr>");
+            $(table).append("<tr class='" + (row % 2 === 0 ? "even" : "odd") + "'><td title='" + description + "'>" + value + "<\/td><td id='" + value + "' class='dataItem' title='Click to search for " + value + " data'>" + exps[value] + "<\/td><\/tr>");
             row++;
         });
         if (selectableData) {
         // TODO: suppress 'Click' title for non-selectables
         //if (!selectableData) {
             //$(".dataItem").removeAttr("title");
         //} else {
             // set up search buttons, initially disabled (must select data to enable)
             $(".searchButton").attr("disabled", "true");
             $("#buttonTrackSearch").click(function () {
                 // TODO: base on preview
                 window.location = "/cgi-bin/hgTracks?db=" + assembly + "&tsCurTab=advancedTab&hgt_tsPage=&hgt_tSearch=search&hgt_mdbVar1=dataType&hgt_mdbVal1=" + selectedDataType;
             });
             $("#buttonFileSearch").click(function () {
                 // TODO: base on preview
@@ -80,33 +82,33 @@
         // Main actions, called when loading data from server is complete
         var experiments = responses[0],
             dataTypes = responses[1],
             antibodies = responses[2],
             antibodyHash = {},
             dataTypeHash = {},
             refGenomeExps = {},
             cellAssayExps = {},
             tfbsExps = {},
             antibody, target, dataType, total, refGenomeTypes = [],
             elementTypes = [],
             tfbsTypes = [],
             organism, assembly, header;
 
         // variables passed in hidden fields
-        organism = $("#var_organism").val();
-        assembly = $("#var_assembly").val();
-        header = $("#var_pageHeader").val();
+        organism = encodeDataSummary_organism;
+        assembly = encodeDataSummary_assembly;
+        header = encodeDataSummary_pageHeader;
 
         $("#pageHeader").text(header);
         $("title").text('ENCODE ' + header);
 
         $.each(antibodies, function (i, item) {
             antibodyHash[item.term] = item;
         });
         $.each(dataTypes, function (i, item) {
             dataTypeHash[item.term] = item;
             dataTypeLabelHash[item.label] = item;
         });
 
         $.each(experiments, function (i, exp) {
             // todo: filter out with arg to hgApi
             if (exp.organism !== organism) {
@@ -148,24 +150,28 @@
                 cellAssayExps[dataType]++;
             }
         });
 
         // fill in tables and activate buttons
         tableOut("#refGenomeTable", refGenomeTypes, refGenomeExps, true);
         tableOut("#elementTable", elementTypes, cellAssayExps, false);
         $("#buttonDataMatrix").click(function () {
             window.location = "encodeDataMatrixHuman.html";
         });
         tableOut("#tfbsTable", tfbsTypes, tfbsExps, false);
         $("#buttonChipMatrix").click(function () {
             window.location = "encodeChipMatrixHuman.html";
         });
     }
-
+    // get server from calling web page (intended for genome-preview)
+    if ('encodeDataMatrix_server' in window) {
+        server = encodeDataMatrix_server;
+    } else {
+        server = document.location.hostname;
+        // or document.domain ?
+    }
     // initialize
     encodeProject.setup({
-        // todo: add hidden page variable for server
-        server: "hgwdev.cse.ucsc.edu"
-        //server: "genome-preview.ucsc.edu"
+        server: server
     });
     encodeProject.loadAllFromServer(requests, handleServerData);
 });