e0c9cb5c5b9536dc3771e3fe09f3afb6ad5ad9ff
tdreszer
  Tue Jul 5 18:32:21 2011 -0700
Major performance improvements for IE javascript.  parent() and add() both dragged the JSript engine to it's knees.  Debug code is being checked in but not called.
diff --git src/hg/js/hui.js src/hg/js/hui.js
index 2d449b8..7581a9c 100644
--- src/hg/js/hui.js
+++ src/hg/js/hui.js
@@ -927,45 +927,43 @@
         if (matCb.length == 0)
             oneEmpty = true;
         else {//if (matCb.length > 0) {
             // If all selected, no additional filtering needed.
             if (matCb.length < $("input.matCB").length) {
                 var matchClasses = "";
                 $( matCb ).each( function(i) {
                     var filterClasses = $( this ).attr("class").split(" ");
                     filterClasses = aryRemove(filterClasses,"matCB","halfVis","abc");
                     matchClasses = matchClasses + ",." + filterClasses.join('.');
                 });
                 if (matchClasses.length > 0) {
                     matchClasses = matchClasses.substring(1); // Skip past leading comma: ",.HepG2.ZBTB33,.GM12878.CTCF"
                     if ($.browser.msie) {   // IE was hanging on .filter(matchClasses), so do this ourselves
                         var matchSets = matchClasses.split(',');
-                        if (matchSets < 80 && $(subCBs).length < 300) { // IE is just choking!
                             var subsAccumulating = null;
                             while(matchSets.length > 0) {
                                 var matchThis = matchSets.pop();
                                 var subBatch = $(subCBs).filter(matchThis);
                                 if (subBatch != undefined && subBatch.length > 0) {
                                     //subCBs = $(subCBs).not(matchThis); // Would be nice to split the subCBs
                                     if (subsAccumulating == null || subsAccumulating.length == 0)
                                         subsAccumulating = subBatch;
                                     else
-                                        subsAccumulating = subsAccumulating.add(subBatch);
+                                    subsAccumulating = jQuery.merge(subsAccumulating,subBatch);
                                 }
                             }
                             subCBs = subsAccumulating;
-                        }
                     } else
                         subCBs = $(subCBs).filter(matchClasses);
                 }
             }
         }
     }
 
     // Walk through all selected subCBs to get other related tags
     var possibleSelections = [ ];  // empty array
     if(!oneEmpty) {
         $( subCBs ).each( function (i)  {
 
             var possibleClasses = $( this ).attr("class").split(" ");
             if( $(possibleClasses).length > 0)
                 possibleClasses = aryRemoveVals(possibleClasses,[ "subCB" ]);