09b32596f71fa9eac6a68820255b090f28546a05
tdreszer
  Mon Apr 25 14:04:06 2011 -0700
Checking in CGI usage of DOCTYPE 4.01 Transitional (instead of 3.2).  Also removed some minor FONT tags that should be replaced by CSS.
diff --git src/hg/lib/web.c src/hg/lib/web.c
index bcb694c..413a9ef 100644
--- src/hg/lib/web.c
+++ src/hg/lib/web.c
@@ -138,36 +138,37 @@
 
 if (sameString(cgiUsualString("action",""),"encodeReleaseLog") ||
     rStringIn("EncodeDataVersions", scriptName))
         isEncode = TRUE;
 
 /* Preamble. */
 dnaUtilOpen();
 
 if (withHttpHeader)
     puts("Content-type:text/html\n");
 
 if (withHtmlHeader)
     {
     char *newString, *ptr1, *ptr2;
 
-#define TOO_TIMID_FOR_CURRENT_HTML_STANDARDS
+//#define TOO_TIMID_FOR_CURRENT_HTML_STANDARDS
 #ifdef TOO_TIMID_FOR_CURRENT_HTML_STANDARDS
     puts("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\">");
 #else///ifndef TOO_TIMID_FOR_CURRENT_HTML_STANDARDS
-    // FIXME: This should be done and fixes atleast one IE problem (use of :hover CSS pseudoclass)
-    puts("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">");
+    puts("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">");
+    // Strict would be nice since it fixes atleast one IE problem (use of :hover CSS pseudoclass)
+    //puts("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">");
 #endif///ndef TOO_TIMID_FOR_CURRENT_HTML_STANDARDS
     puts(
 	"<HTML>" "\n"
 	"<HEAD>" "\n"
 	);
     printf("\t%s\n", headerText);
     printf("\t<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html;CHARSET=iso-8859-1\">" "\n"
 	 "\t<META http-equiv=\"Content-Script-Type\" content=\"text/javascript\">" "\n"
          "\t<META HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">" "\n"
          "\t<META HTTP-EQUIV=\"Expires\" CONTENT=\"-1\">" "\n"
 	 "\t<TITLE>"
 	 );
     /* we need to take any HTML formatting out of the titlebar string */
     newString = cloneString(textOutBuf);
 
@@ -210,30 +211,42 @@
 	     "<IMG SRC=\"../images/ENCODE_scaleup_logo.png\" height=50 ALT=\"ENCODE Project at NHGRI\">"
 	     "</A>");
 	puts("<IMG SRC=\"../images/encodeDcc.jpg\" ALT=\"ENCODE Project at UCSC\">");
 	}
     else
 	{
 	puts("<IMG SRC=\"../images/title.jpg\">");
 	}
     puts("</TH></TR>" "\n"
     	 "" "\n" );
     }
 
 /* Put up the hot links bar. */
 if (isGisaid)
     {
+#ifndef TOO_TIMID_FOR_CURRENT_HTML_STANDARDS
+
+    printf("<TABLE WIDTH='100%%' class='topBlueBar' BORDER='0' CELLSPACING='0' CELLPADDING='2'><TR>\n");
+    printf("<TD><A HREF='../index.html' class='topbar'>Home</A></TD>\n");                           // Home
+    if (haveBlat)
+        printf("<TD><A HREF='../cgi-bin/hgBlat?command=start' class='topbar'>Blat</A></TD>\n");     // Blat
+    printf("<TD><A HREF='../cgi-bin/gisaidSample' class='topbar'>Sample View</A></TD>\n");          // Subject  View
+    printf("<TD><A HREF='../cgi-bin/hgTracks%s' class='topbar'>Sequence View</A></TD>\n",uiState);  // Sequence View
+    printf("<TD><A HREF='../cgi-bin/gisaidTable' class='topbar'>Table View</A></TD>\n");            // Table View
+    printf("<TD style='width:80%%'>&nbsp;</TD></TR></TABLE>\n"); // last column squeezes other columns left
+
+#else///ifdef TOO_TIMID_FOR_CURRENT_HTML_STANDARDS
     printf("<TABLE WIDTH=\"100%%\" BGCOLOR=\"#000000\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"1\"><TR><TD>\n");
     printf("<TABLE WIDTH=\"100%%\" BGCOLOR=\"#2636D1\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"2\"><TR>\n");
 
     /* Home */
     printf("<TD ALIGN=CENTER><A HREF=\"../index.html\" class=\"topbar\"><FONT COLOR=\"#FFFFFF\">Home</FONT></A></TD>");
 
     /* Blat */
     if (haveBlat)
 	printf("<TD ALIGN=CENTER><A HREF=\"../cgi-bin/hgBlat?command=start\" class=\"topbar\"><FONT COLOR=\"#FFFFFF\">Blat</FONT></A></TD>");
 
     /* Subject  View */
     printf("<TD ALIGN=CENTER><A HREF=\"../cgi-bin/gisaidSample\" class=\"topbar\">%s</A></TD>", "<FONT COLOR=\"#FFFFFF\">Sample View</FONT>");
 
     /* Sequence View */
     printf("<TD ALIGN=CENTER><A HREF=\"../cgi-bin/hgTracks%s\" class=\"topbar\"><FONT COLOR=\"#FFFFFF\">Sequence View</FONT></A></TD>",
@@ -244,33 +257,50 @@
 
     /* Help */
 /* disable help for the time being */
 /*
     if (endsWith(scriptName, "hgBlat"))
     	{
 	printf("<TD ALIGN=CENTER><A HREF=\"/goldenPath/help/gsidTutorial.html#BLAT\" TARGET=_blank class=\"topbar\">%s</A></TD>", "<FONT COLOR=\"#FFFFFF\">Help</FONT>");
     	}
     else
 	{
     	printf("<TD ALIGN=CENTER><A HREF=\"/goldenPath/help/sequenceViewHelp.html\" TARGET=_blank class=\"topbar\">%s</A></TD>", "<FONT COLOR=\"#FFFFFF\">Help</FONT>");
 	}
 */
     printf("</TR></TABLE>");
     printf("</TD></TR></TABLE>\n");
+#endif///def TOO_TIMID_FOR_CURRENT_HTML_STANDARDS
     }
 else if (isGsid)
     {
+#ifndef TOO_TIMID_FOR_CURRENT_HTML_STANDARDS
+
+    printf("<TABLE class='topBlueBar' BORDER='0' CELLSPACING='0' CELLPADDING='2'><TR>\n");
+    printf("<TD><A HREF='../index.html' class='topbar'>Home</A></TD>\n");                                               // Home
+    if (haveBlat)
+        printf("<TD ALIGN=CENTER><A HREF='../cgi-bin/hgBlat?command=start' class='topbar'>Blat</A></TD>\n");            // Blat
+    printf("<TD><A HREF='../cgi-bin/gsidSubj' class='topbar'>Subject View</A></TD>\n");                                 // Subject View
+    printf("<TD><A HREF='../cgi-bin/hgTracks%s' class='topbar'>Sequence View</A></TD>\n",uiState);                      // Sequence View
+    printf("<TD><A HREF='../cgi-bin/gsidTable' class='topbar'>Table View</A></TD>\n");                                  // Table View
+    if (endsWith(scriptName, "hgBlat"))
+        printf("<TD><A HREF='/goldenPath/help/gsidTutorial.html#BLAT' TARGET=_blank class='topbar'>Help</A></TD>\n");   // Help
+    else
+        printf("<TD><A HREF='/goldenPath/help/sequenceViewHelp.html' TARGET=_blank class='topbar'>Help</A></TD>\n");    // Help
+    printf("<TD style='width:80%%'>&nbsp;</TD></TR></TABLE>\n"); // last column squeezes other columns left
+
+#else///ifdef TOO_TIMID_FOR_CURRENT_HTML_STANDARDS
     printf("<TABLE WIDTH=\"100%%\" BGCOLOR=\"#000000\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"1\"><TR><TD>\n");
     printf("<TABLE WIDTH=\"100%%\" BGCOLOR=\"#2636D1\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"2\"><TR>\n");
 
     /* Home */
     printf("<TD ALIGN=CENTER><A HREF=\"../index.html\" class=\"topbar\"><FONT COLOR=\"#FFFFFF\">Home</FONT></A></TD>");
 
     /* Blat */
     if (haveBlat)
 	printf("<TD ALIGN=CENTER><A HREF=\"../cgi-bin/hgBlat?command=start\" class=\"topbar\"><FONT COLOR=\"#FFFFFF\">Blat</FONT></A></TD>");
 
     /* Subject  View */
     printf("<TD ALIGN=CENTER><A HREF=\"../cgi-bin/gsidSubj\" class=\"topbar\">%s</A></TD>", "<FONT COLOR=\"#FFFFFF\">Subject View</FONT>");
 
     /* Sequence View */
     printf("<TD ALIGN=CENTER><A HREF=\"../cgi-bin/hgTracks%s\" class=\"topbar\"><FONT COLOR=\"#FFFFFF\">Sequence View</FONT></A></TD>",
@@ -279,33 +309,129 @@
     /* Table View */
     printf("<TD ALIGN=CENTER><A HREF=\"../cgi-bin/gsidTable\" class=\"topbar\">%s</A></TD>", "<FONT COLOR=\"#FFFFFF\">Table View</FONT>");
 
     /* Help */
 
     if (endsWith(scriptName, "hgBlat"))
     	{
 	printf("<TD ALIGN=CENTER><A HREF=\"/goldenPath/help/gsidTutorial.html#BLAT\" TARGET=_blank class=\"topbar\">%s</A></TD>", "<FONT COLOR=\"#FFFFFF\">Help</FONT>");
     	}
     else
 	{
     	printf("<TD ALIGN=CENTER><A HREF=\"/goldenPath/help/sequenceViewHelp.html\" TARGET=_blank class=\"topbar\">%s</A></TD>", "<FONT COLOR=\"#FFFFFF\">Help</FONT>");
 	}
     printf("</TR></TABLE>");
     printf("</TD></TR></TABLE>\n");
+#endif///def TOO_TIMID_FOR_CURRENT_HTML_STANDARDS
     }
 else if (dbIsFound)
     {
+#ifndef TOO_TIMID_FOR_CURRENT_HTML_STANDARDS
+
+    puts("<!-- +++++++++++++++++++++ HOTLINKS BAR +++++++++++++++++++ -->\n<TR><TD COLSPAN=3 HEIGHT=40>");
+    puts("<TABLE class='topBlueBar' BORDER='0' CELLSPACING='0' CELLPADDING='2'><TR>");
+
+    if (isEncode)
+        printf("<TD><A HREF='../encode/' class='topbar'>Home</A></TD>\n");
+    else
+        {
+        printf("<TD><A HREF='../index.html%s' class='topbar'>Home</A></TD>\n", uiState);
+        if (isGsid)
+            printf("<TD><A HREF='../cgi-bin/gsidSubj%s' class='topbar'>Subject View</A></TD>\n",uiState);
+        else
+            printf("<TD><A HREF='../cgi-bin/hgGateway%s' class='topbar'>Genomes</A></TD>\n",uiState);
+
+        if (endsWith(scriptName, "hgTracks") || endsWith(scriptName, "hgGene") ||
+            endsWith(scriptName, "hgTables") || endsWith(scriptName, "hgTrackUi") ||
+            endsWith(scriptName, "hgSession") || endsWith(scriptName, "hgCustom") ||
+            endsWith(scriptName, "hgc") || endsWith(scriptName, "hgPal"))
+            printf("<TD><A HREF='../cgi-bin/hgTracks%s&hgTracksConfigPage=notSet&%s=0' class='topbar'>Genome Browser</A></TD>\n",uiState,TRACK_SEARCH);
+
+        if (haveBlat && !endsWith(scriptName, "hgBlat"))
+            printf("<TD><A HREF='../cgi-bin/hgBlat?command=start%s%s' class='topbar'>Blat</A></TD>\n",theCart ? "&" : "", uiState+1 );
+        }
+
+    if (!isGsid && !hIsCgbServer())  // disable TB for both GSID and CGB servers
+        {
+        char *table = (theCart == NULL ? NULL :
+                    (endsWith(scriptName, "hgGene") ?
+                        cartOptionalString(theCart, "hgg_type") :
+                        cartOptionalString(theCart, "g")));
+        if (table && theCart &&
+            (endsWith(scriptName, "hgc") || endsWith(scriptName, "hgTrackUi") ||
+            endsWith(scriptName, "hgGene")))
+            {
+            struct trackDb *tdb = hTrackDbForTrack(db, table);
+            if (tdb != NULL)
+                printf("<TD><A HREF='../cgi-bin/hgTables%s&hgta_doMainPage=1&hgta_group=%s&hgta_track=%s&hgta_table=%s' class='topbar'>",
+                    uiState, tdb->grp, tdb->track, tdb->table);
+            else
+                printf("<TD><A HREF='../cgi-bin/hgTables%s&hgta_doMainPage=1' class='topbar'>", uiState);
+            trackDbFree(&tdb);
+            }
+        else
+            printf("<TD><A HREF='../cgi-bin/hgTables%s%shgta_doMainPage=1' class='topbar'>",
+                uiState, theCart ? "&" : "?" );
+        printf("Tables</A></TD>\n");
+        }
+
+    if (!endsWith(scriptName, "hgNear") && db != NULL && hgNearOk(db)) //  possible to make this conditional: if (db != NULL && hgNearOk(db))
+        {
+        if (isGsid)
+            printf("<TD><A HREF='../cgi-bin/gsidTable%s' class='topbar'>Table View</A></TD>\n",uiState);
+        else
+            printf("<TD><A HREF='../cgi-bin/hgNear%s' class='topbar'>Gene Sorter</A></TD>\n",uiState);
+        }
+    if ((!endsWith(scriptName, "hgPcr")) && (db == NULL || hgPcrOk(db)))
+        printf("<TD><A HREF='../cgi-bin/hgPcr%s' class='topbar'>PCR</A></TD>\n",uiState);
+    if (endsWith(scriptName, "hgGenome"))
+        printf("<TD><A HREF='../cgi-bin/hgGenome%s&hgGenome_doPsOutput=on' class='topbar'>PDF/PS</A></TD>\n",uiState);
+    if (endsWith(scriptName, "hgHeatmap"))
+        printf("<TD><A HREF='../cgi-bin/hgHeatmap%s&hgHeatmap_doPsOutput=on' class='topbar'>PDF/PS</A></TD>\n",uiState);
+#ifndef GBROWSE
+    if (wikiLinkEnabled() && !endsWith(scriptName, "hgSession"))
+        printf("<TD><A HREF='../cgi-bin/hgSession%s%shgS_doMainPage=1' class='topbar'>Session</A></TD>\n",uiState, theCart ? "&" : "?" );
+#endif /* GBROWSE */
+    if (!isGsid)
+        printf("<TD><A HREF='../FAQ/' class='topbar'>FAQ</A></TD>");
+    if (!isGsid)
+        {
+        if (endsWith(scriptName, "hgBlat"))
+            printf("<TD><A HREF='../goldenPath/help/hgTracksHelp.html#BLATAlign'");
+        else if (endsWith(scriptName, "hgText"))
+            printf("<TD><A HREF='../goldenPath/help/hgTextHelp.html'");
+        else if (endsWith(scriptName, "hgNear"))
+            printf("<TD><A HREF='../goldenPath/help/hgNearHelp.html'");
+        else if (endsWith(scriptName, "hgTables"))
+            printf("<TD><A HREF='../goldenPath/help/hgTablesHelp.html'");
+        else if (endsWith(scriptName, "hgGenome"))
+            printf("<TD><A HREF='../goldenPath/help/hgGenomeHelp.html'");
+        else if (endsWith(scriptName, "hgSession"))
+            printf("<TD><A HREF='../goldenPath/help/hgSessionHelp.html'");
+        else if (endsWith(scriptName, "pbGateway"))
+            printf("<TD><A HREF='../goldenPath/help/pbTracksHelpFiles/pbTracksHelp.shtml'");
+        else if (endsWith(scriptName, "hgVisiGene"))
+            printf("<TD><A HREF='../goldenPath/help/hgTracksHelp.html#VisiGeneHelp'");
+        else
+            printf("<TD><A HREF='../goldenPath/help/hgTracksHelp.html'");
+        printf(" class='topbar'>Help</A></TD>\n");
+        }
+    }
+    printf("<TD style='width:80%%'>&nbsp;</TD></TR></TABLE>\n"); // last column squeezes other columns left
+    puts("</TD></TR>\n");
+
+#else///ifdef TOO_TIMID_FOR_CURRENT_HTML_STANDARDS
     puts(
        "<!-- +++++++++++++++++++++ HOTLINKS BAR +++++++++++++++++++ -->" "\n"
        "<TR><TD COLSPAN=3 HEIGHT=40 >" "\n"
        "<table bgcolor=\"#000000\" cellpadding=\"1\" cellspacing=\"1\" width=\"100%\" height=\"27\">" "\n"
        "<tr bgcolor=\"#"HG_COL_HOTLINKS"\"><td valign=\"middle\">" "\n"
        "	<table BORDER=0 CELLSPACING=0 CELLPADDING=0 bgcolor=\"#"HG_COL_HOTLINKS"\" height=\"24\" class=\"topbar\"><TR>" "\n"
        " 	<TD VALIGN=\"middle\"><font color=\"#89A1DE\">" "\n"
        );
 
 if (isEncode)
     {
     printf("<A HREF=\"../encode/\" class=\"topbar\">" "\n");
     puts("           Home</A>");
     }
 else
@@ -433,30 +559,31 @@
 	    puts("       <A HREF=\"../goldenPath/help/pbTracksHelpFiles/pbTracksHelp.shtml\"");
     	else if (endsWith(scriptName, "hgVisiGene"))
 	    puts("       <A HREF=\"../goldenPath/help/hgTracksHelp.html#VisiGeneHelp\"");
     	else
 	    puts("       <A HREF=\"../goldenPath/help/hgTracksHelp.html\"");
 	puts("       class=\"topbar\">");
     	puts("           Help</A> ");
     	}
     }
 puts("</font></TD>" "\n"
      "       </TR></TABLE>" "\n"
      "</TD></TR></TABLE>" "\n"
      "</TD></TR>	" "\n"
      "" "\n"
      );
+#endif///def TOO_TIMID_FOR_CURRENT_HTML_STANDARDS
 
 if(!skipSectionHeader)
 /* this HTML must be in calling code if skipSectionHeader is TRUE */
     {
     puts(
          "<!-- +++++++++++++++++++++ CONTENT TABLES +++++++++++++++++++ -->" "\n"
 	 "<TR><TD COLSPAN=3>	" "\n"
 	 "  	<!--outer table is for border purposes-->" "\n"
        "      <TABLE WIDTH=\"100%\" BGCOLOR=\"#"HG_COL_BORDER"\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"1\"><TR><TD>    " "\n"
        "    <TABLE BGCOLOR=\"#"HG_COL_INSIDE"\" WIDTH=\"100%\"  BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"0\"><TR><TD>     " "\n"
        "      <TABLE BGCOLOR=\"#"HG_COL_HEADER"\" BACKGROUND=\"../images/hr.gif\" WIDTH=\"100%\"><TR><TD class='windowSize'>" "\n"
 	 "		<FONT SIZE=\"4\" id='sectTtl'><b>&nbsp;"
 	 );
     htmlTextOut(textOutBuf);