d608f30e62b096b345b49e4d388a3750b134ca90
larrym
  Thu Aug 25 14:04:50 2011 -0700
fixup DNA link coordinates when changing position
diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js
index bebd6da..0db3f4c 100644
--- src/hg/js/hgTracks.js
+++ src/hg/js/hgTracks.js
@@ -204,30 +204,39 @@
         // Example NCBI link: http://www.ncbi.nlm.nih.gov/mapview/maps.cgi?taxid=9606&CHR=21&BEG=33031934&END=33041241
         linkFixup(pos, "ncbiLink", new RegExp("(.+BEG=)[0-9]+"), "END");
               
         // Example medaka link: http://utgenome.org/medakabrowser_ens_jump.php?revision=version1.0&chr=chromosome18&start=14435198&end=14444829
         linkFixup(pos, "medakaLink", new RegExp("(.+start=)[0-9]+"), "end");
         
         if($('#wormbaseLink').length) {
             // e.g. http://www.wormbase.org/db/gb2/gbrowse/c_elegans?name=II:14646301-14667800
             var link = $('#wormbaseLink').attr('href');
             var reg = new RegExp("(.+:)[0-9]+");
             var a = reg.exec(link);
             if(a && a[1]) {
                 $('#wormbaseLink').attr('href', a[1] + pos.start + "-" + pos.end);
             }
         }
+        // Fixup DNA link; e.g.: hgc?hgsid=2999470&o=114385768&g=getDna&i=mixed&c=chr7&l=114385768&r=114651696&db=panTro2&hgsid=2999470
+        if($('#dnaLink').length) {
+            var link = $('#dnaLink').attr('href');
+            var reg = new RegExp("(.+&o=)[0-9]+.+&db=[^&]+(.*)");
+            var a = reg.exec(link);
+            if(a && a[1]) {
+                $('#dnaLink').attr('href', a[1] + (pos.start - 1) + "&g=getDna&i=mixed&c=" + pos.chrom + "&l=" + (pos.start - 1) + "&r=" + pos.end + "&db=" + getDb() + a[2]);
+            }
+        }
     }
     markAsDirtyPage();
 }
 
 function checkPosition(img, selection)
 {
 // return true if user's selection is still w/n the img (including some slop).
     var imgWidth = jQuery(img).width();
     var imgHeight = jQuery(img).height();
     var imgOfs = jQuery(img).offset();
     var slop = 10;
 
     // We ignore clicks in the gray tab and track title column (we really should suppress all drag activity there,
     // but I don't know how to do that with imgAreaSelect).
     var leftX = hgTracks.revCmplDisp ? imgOfs.left - slop : imgOfs.left + hgTracks.insideX - slop;