358c7f3665dca67c180f6b22ae11f6bf33d201ae
angie
  Tue Jan 11 10:45:13 2011 -0800
Moved hgc.c's {begin,end}CollapsibleSection to jsHelper.c:js{Begin,End}CollapsibleSection so I can use in hgTrackUi.

diff --git src/hg/lib/jsHelper.c src/hg/lib/jsHelper.c
index 4401265..58cef33 100644
--- src/hg/lib/jsHelper.c
+++ src/hg/lib/jsHelper.c
@@ -443,15 +443,46 @@
         char *ptr = strstr(ua, needle);
         if(ptr != NULL)
             {
             int version = 0;
             sscanf(ptr + strlen(needle), "%d", &version);
             defaultVal = (version != 530);
             }
         }
     advancedJsEnabled = cartUsualBoolean(cart, "enableAdvancedJavascript", defaultVal);
     alreadyLookedForadvancedJs = TRUE;
     }
 //else
 //    warn("already looked up advancedJsEnabled");  // got msg 41 times in one page!
 return advancedJsEnabled;
 }
+
+void jsBeginCollapsibleSection(struct cart *cart, char *track, char *section, char *sectionTitle,
+			       boolean isOpenDefault)
+/* Make the hidden input, collapse/expand button and <TR id=...> needed for utils.js's 
+ * setTableRowVisibility().  Caller needs to have already created a <TABLE> and <FORM>. */
+{
+char collapseGroupVar[512];
+safef(collapseGroupVar, sizeof(collapseGroupVar), "%s.section_%s_close", track, section);
+boolean isOpen = !cartUsualBoolean(cart, collapseGroupVar, !isOpenDefault);
+
+printf("<TR><TD><input type='hidden' name=\"%s\" id=\"%s\" value=\"%s\">\n",
+       collapseGroupVar, collapseGroupVar, isOpen ? "0" : "1");
+printf("<A HREF=\"%s?%s&%s=%s#%sGroup\" class='bigBlue'>\n",
+       cgiScriptName(), cartSidUrlString(cart), collapseGroupVar, (isOpen ? "1" : "0"), section);
+char *buttonImage = (isOpen ? "../images/remove_sm.gif" : "../images/add_sm.gif");
+printf("<IMG height='18' width='18' "
+       "onclick=\"return setTableRowVisibility(this, '%s', '%s.section', 'section', true);\" "
+       "id=\"%s_button\" src=\"%s\" alt=\"%s\" title='%s this section' class='bigBlue'>"
+       "</A></TD>\n",
+       section, track,
+       section, buttonImage, (isOpen ? "-" : "+"), (isOpen ? "Collapse": "Expand"));
+printf("<TD><FONT SIZE=4><B>&nbsp;%s</B></FONT></TD></TR>\n", sectionTitle);
+printf("<TR %sid='%s-%d'><TD colspan=2>", isOpen ? "" : "style='display: none' ", section, 1);
+}
+
+void jsEndCollapsibleSection()
+/* End the collapsible <TR id=...>. */
+{
+puts("</TD></TR>");
+}
+