706c8c2b49fcbd941c9da43c1b8a950c0c33f5ba
galt
  Mon Feb 10 23:54:13 2014 -0800
now converting hgsid and hguid to strings. when the hgsid cart var or hguid cookie is not found it returns NULL instead of 0.
diff --git src/hg/hgTracks/variation.c src/hg/hgTracks/variation.c
index 1aed8d7..257a6d0 100644
--- src/hg/hgTracks/variation.c
+++ src/hg/hgTracks/variation.c
@@ -1548,87 +1548,87 @@
 if (tg->tdb && sameString(tg->tdb->type, "ld2"))
     bedLoadLdItem(tg, tg->table, (ItemLoader)ld2Load);
 else
     bedLoadLdItem(tg, tg->table, (ItemLoader)ldLoad);
 tg->canPack = FALSE;
 }
 
 void mapDiamondUi(struct hvGfx *hvg, int xl, int yl, int xt, int yt,
                   int xr, int yr, int xb, int yb,
                   char *name, char *shortLabel, char *trackName)
 /* Print out image map rectangle that invokes hgTrackUi. */
 {
 if (theImgBox && curImgTrack)
     {
     char link[512];
-    safef(link,sizeof(link),"%s?%s=%u&g=%s&i=%s", hgTrackUiName(),
+    safef(link,sizeof(link),"%s?%s=%s&g=%s&i=%s", hgTrackUiName(),
           cartSessionVarName(), cartSessionId(cart), trackName, name);
     char title[128];
     safef(title,sizeof(title),"%s controls", shortLabel);
     // Add map item to currnent map (TODO: pass in map)
     // FIXME: What am I going to do about poly cords???
     // FIXME: What am I going to do about poly cords???
     // FIXME: imgTrackAddMapItem(curImgTrack,link,title,
     // FIXME:     hvGfxAdjX(hvg, xl), yl,
     // FIXME:     hvGfxAdjX(hvg, xt), yt,
     // FIXME:     hvGfxAdjX(hvg, xr), yr,
     // FIXME:    hvGfxAdjX(hvg, xb), yb));
     // FIXME: What am I going to do about poly cords???
     // FIXME: What am I going to do about poly cords???
     warn("Track named %s has called for a POLY map titled '%s controls', but imageV2 doesn't "
          "yet support this. No map item made.",trackName,shortLabel);
     }
 else
     {
     hPrintf("<AREA SHAPE=POLY COORDS=\"%d,%d,%d,%d,%d,%d,%d,%d\" ",
             hvGfxAdjX(hvg, xl), yl,
             hvGfxAdjX(hvg, xt), yt,
             hvGfxAdjX(hvg, xr), yr,
             hvGfxAdjX(hvg, xb), yb);
     /* move this to hgTracks when finished */
-    hPrintf("HREF=\"%s?%s=%u&c=%s&g=%s&i=%s\"", hgTrackUiName(),
+    hPrintf("HREF=\"%s?%s=%s&c=%s&g=%s&i=%s\"", hgTrackUiName(),
             cartSessionVarName(), cartSessionId(cart), chromName, trackName, name);
     mapStatusMessage("%s controls", shortLabel);
     hPrintf(">\n");
     }
 }
 
 void mapTrackBackground(struct track *tg, struct hvGfx *hvg, int xOff, int yOff)
 /* Print out image map rectangle that invokes hgTrackUi. */
 {
 xOff = hvGfxAdjXW(hvg, xOff, insideWidth);
 char *track = tg->tdb->parent ? tg->tdb->parent->track : tg->tdb->track;
 if (theImgBox && curImgTrack)
     {
     char link[512];
-    safef(link,sizeof(link),"%s?%s=%u&g=%s&i=%s",hgTrackUiName(),
+    safef(link,sizeof(link),"%s?%s=%s&g=%s&i=%s",hgTrackUiName(),
           cartSessionVarName(), cartSessionId(cart), track, track);
     char title[128];
     safef(title,sizeof(title),"%s controls", tg->track);
     // Add map item to currnent map (TODO: pass in map)
     #ifdef IMAGEv2_SHORT_MAPITEMS
     if (xOff < insideX && xOff+insideWidth > insideX)
         warn("mapTrackBackground(%s) map item spanning slices. LX:%d TY:%d RX:%d BY:%d  link:[%s]",
              tg->track,xOff, yOff, xOff+insideWidth, yOff+tg->height, link);
     #endif//def IMAGEv2_SHORT_MAPITEMS
     imgTrackAddMapItem(curImgTrack,link,title,xOff, yOff, xOff+insideWidth, yOff+tg->height, tg->track);
     }
 else
     {
     hPrintf("<AREA SHAPE=RECT COORDS=\"%d,%d,%d,%d\" ",
             xOff, yOff, xOff+insideWidth, yOff+tg->height);
-    hPrintf("HREF=\"%s?%s=%u&c=%s&g=%s&i=%s\"", hgTrackUiName(),
+    hPrintf("HREF=\"%s?%s=%s&c=%s&g=%s&i=%s\"", hgTrackUiName(),
             cartSessionVarName(), cartSessionId(cart), chromName, track, track);
     mapStatusMessage("%s controls", tg->track);
     hPrintf(">\n");
     }
 }
 
 int ldTotalHeight(struct track *tg, enum trackVisibility vis)
 /* Return total height. Called before and after drawItems.
  * Must set height, lineHeight, heightPer */
 {
 tg->lineHeight = tl.fontHeight + 1;
 tg->heightPer  = tg->lineHeight - 1;
 if ( vis==tvDense || ( tg->limitedVisSet && tg->limitedVis==tvDense ) )
     tg->height = tg->lineHeight;
 else if (winEnd-winStart<250000)