9f4651c7a0a1e396199815ffbf801447bede4862
tdreszer
  Mon Jan 3 08:41:12 2011 -0800
Larry fixed the cytoBand bug, but I extended the premise to all cytoBands
diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js
index ffa68a4..07cc49d 100644
--- src/hg/js/hgTracks.js
+++ src/hg/js/hgTracks.js
@@ -411,31 +411,31 @@
     var mouseIsDown   = false;
     var mouseHasMoved = false;
     var hilite = jQuery('<div></div>');
 
     initialize();
 
     function initialize(){
 
         findDimensions();
 
         if(chr.top == -1)
             warn("chromIdeo(): failed to register "+this.id);
         else {
             hiliteSetup();
 
-            $('.cytoBand').mousedown( function(e)
+            $('area.cytoBand').mousedown( function(e)
             {   // mousedown on chrom portion of image only (map items)
                 updateImgOffsets();
                 pxDown = e.clientX - img.scrolledLeft;
                 var pxY = e.clientY - img.scrolledTop;
                 if(mouseIsDown == false
                 && isWithin(chr.left,pxDown,chr.right) && isWithin(chr.top,pxY,chr.bottom)) {
                     mouseIsDown = true;
                     mouseHasMoved = false;
 
                     $(document).bind('mousemove',chromMove);
                     $(document).bind( 'mouseup', chromUp);
                     hiliteShow(pxDown,pxDown);
                     return false;
                 }
             });
@@ -512,31 +512,31 @@
                     selRange.beg = convertToBases(pxUp) - Math.round(curWidth/2); // Notice that beg is based upon up position
                     selRange.end  = selRange.beg + curWidth;
                 }
                 if(selRange.end > -1) {
                     // prompt, then submit for new position
                     selRange = rangeNormalizeToChrom(selRange,chr);
                     if(mouseHasMoved == false) { // Update highlight by converting bp back to pix
                         pxDown = convertFromBases(selRange.beg)
                         pxUp = convertFromBases(selRange.end)
                         hiliteShow(pxDown,pxUp);
                     }
                     //if((selRange.end - selRange.beg) < 50000)
                     //    dontAsk = true;
                     if(dontAsk || confirm("Jump to new position:\n\n"+chr.name+":"+commify(selRange.beg)+"-"+commify(selRange.end)+" size:"+commify(selRange.width)) ) {
                         setPositionByCoordinates(chr.name, selRange.beg, selRange.end)
-                        $('.cytoBand').mousedown( function(e) { return false; }); // Stop the presses :0)
+                        $('area.cytoBand').mousedown( function(e) { return false; }); // Stop the presses :0)
                         document.TrackHeaderForm.submit();
                         return true; // Make sure the setTimeout below is not called.
                     }
                 }
             }
             //else warn("chromIdeo("+chr.name+") NOT WITHIN VERTICAL RANGE\n selected range (pix):"+pxDown+"-"+pxUp+" chrom range (pix):"+chr.left+"-"+chr.right+"\n cytoTop-Bottom:"+chr.top +"-"+chr.bottom);
             hiliteCancel();
             setTimeout('blockUseMap=false;',50);
         }
         mouseIsDown = false;
         mouseHasMoved = false;
     }
 
     function isWithin(beg,here,end)
     {   // Simple utility
@@ -548,32 +548,31 @@
         if(chr.reverse)
             offset = 1 - offset;
         return Math.round(offset * chr.size);
     }
     function convertFromBases(bases)
     {   // Simple utility to convert bases to pix
         var offset = bases/chr.size;
         if(chr.reverse)
             offset = 1 - offset;
         return Math.round(offset * chr.width) + chr.left;
     }
 
     function findDimensions()
     {   // Called at init: determine the dimensions of chrom from 'cytoband' map items
         var lastX = -1;
-        $('.cytoBand').each(function(ix) {
-            if(this.coords) {
+        $('area.cytoBand').each(function(ix) {
                 var loc = this.coords.split(",");
                 if(loc.length == 4) {
                     var myLeft  = parseInt(loc[0]);
                     var myRight = parseInt(loc[2]);
                     if( chr.top == -1) {
                         chr.left   = myLeft;
                         chr.right  = myRight;
                         chr.top    = parseInt(loc[1]);
                         chr.bottom = parseInt(loc[3]);
                     } else {
                         if( chr.left  > myLeft)
                             chr.left  = myLeft;
                         if( chr.right < parseInt(loc[2]))
                             chr.right = parseInt(loc[2]);
                     }
@@ -590,40 +589,39 @@
                                 chr.beg = parseInt(pos[0]);
                         }
                         if( chr.end < parseInt(pos[1])) {
                             chr.end = parseInt(pos[1]);
                             if(lastX == -1)
                                 lastX = myRight;
                             else if(lastX > myRight)
                                 chr.reverse = true;  // end is advancing, but X is not, so reverse
                         } else if(lastX != -1 && lastX < myRight)
                             chr.reverse = true;      // end is not advancing, but X is, so reverse
     
                     }
                     $(this).css( 'cursor', 'text');
                     $(this).attr("href","");
                 }
-            }
         });
         chr.size  = (chr.end   - chr.beg );
         chr.width = (chr.right - chr.left);
     }
 
     function findCytoBand(pxDown,pxUp)
     {   // Called when mouseup and ctrl: Find the bounding cytoband dimensions, both in pix and bases
         var cyto = { left: -1, right: -1, beg: -1, end: -1 };
-        $('.cytoBand').each(function(ix) {
+        $('area.cytoBand').each(function(ix) {
             var loc = this.coords.split(",");
             if(loc.length == 4) {
                 var myLeft  = parseInt(loc[0]);
                 var myRight = parseInt(loc[2]);
                 if(cyto.left == -1 || cyto.left > myLeft) {
                     if( isWithin(myLeft,pxDown,myRight) || isWithin(myLeft,pxUp,myRight) ) {
                         cyto.left  = myLeft;
                         var range = this.title.substr(this.title.lastIndexOf(':')+1)
                         var pos = range.split('-');
                         if(pos.length == 2) {
                             cyto.beg  = (chr.reverse ? parseInt(pos[1]) : parseInt(pos[0]));
                         }
                     }
                 }
                 if(cyto.right == -1 || cyto.right < myRight) {
@@ -1302,31 +1300,31 @@
         // Temporary warning while new imageV2 code is being worked through
         if($('#map').children("AREA").length > 0) {
             warn('Using imageV2, but old map is not empty!');
         }
 
         // Retrieve tracks via AJAX that may take too long to draw initialliy (i.e. a remote bigWig)
         var retrievables = $('#imgTbl').find("tr.mustRetrieve")
         if($(retrievables).length > 0) {
             $(retrievables).each( function (i) {
                 var trackName = $(this).attr('id').substring(3);
                 updateTrackImg(trackName,"","");
             });
         }
     }
     if($('img#chrom').length == 1) {
-        if($('.cytoBand').length > 1) {
+        if($('area.cytoBand').length > 1) {
             $('img#chrom').chromDrag();
         }
     }
 
     if($("#tabs").length > 0) {
         // Search page specific code
 
         var val = $('#currentTab').val();
         $("#tabs").tabs({
                             show: function(event, ui) {
                                 $('#currentTab').val(ui.panel.id);
                             },
                             select: function(event, ui) {
                                 if( ui.panel.id == 'simpleTab' && $('div#found').length < 1) {
                                     setTimeout("$('input#simpleSearch').focus();",20); // delay necessary, since select event not afterSelect event