f0958c22f5dca692bce772179ab48fe8a8744049
kate
  Tue Apr 17 22:14:47 2012 -0700
Search needs to clear first three fields in Advanced Tab.  Taking this opportunity to generalize generation of search url and move to encodeMatrix lib
diff --git src/hg/js/encodeChipMatrix.js src/hg/js/encodeChipMatrix.js
index dd3ba4e..cae4105 100644
--- src/hg/js/encodeChipMatrix.js
+++ src/hg/js/encodeChipMatrix.js
@@ -170,44 +170,38 @@
                 $td.addClass('experiment');
                 $td.text(matrix[cellType][target]);
                 $td.data({
                     'target' : target,
                     'cellType' : cellType
                 });
 
                 $td.attr('title', 'Click to select: ' +  target +
                         ' in ' + cellType +' cells');
 
                 // add highlight when moused over
                 encodeMatrix.hoverExperiment($td);
 
                 $td.click(function() {
                     var url, antibodyTarget;
+                    var antibodies = []; 
 
-                    // NOTE: generating full search URL should be generalized & encapsulated
-                    url = encodeMatrix.getSearchUrl(encodeProject.getAssembly());
-                    url +=
-                       ('&hgt_mdbVar1=dataType&hgt_mdbVal1=' + 'ChipSeq' +
-                       '&hgt_mdbVar2=cell&hgt_mdbVal2=' + $(this).data().cellType +
-                       '&hgt_mdbVar3=antibody');
+                    // get list of antibodies for this protein target
                     antibodyTarget = encodeProject.getAntibodyTarget($(this).data().target);
-                    // TODO: html encode ?
                     $.each(antibodyTarget.antibodies, function (i, antibody) {
-                        url += ('&hgt_mdbVal3=' + antibody);
+                        antibodies.push(antibody);
                     });
-                    url += '&hgt_mdbVar4=view&hgt_mdbVal4=Any';
-
-                    // remove extra rows
-                    url += '&hgt_mdbVar5=[]';
-                    url += '&hgt_mdbVar6=[]';
+                    url = encodeMatrix.getSearchUrl(
+                            {'mdbVar': 'dataType', 'mdbVal': 'ChipSeq'},
+                            {'mdbVar': 'cell', 'mdbVal': $(this).data().cellType},
+                            {'mdbVar': 'antibody', 'mdbVal': antibodies});
                     window.open(url, "searchWindow");
                 });
             });
         });
     }
 
     // initialize
     encodeMatrix.start($matrixTable);
 
     // load data from server and set up callback
     encodeProject.loadAllFromServer(requests, handleServerData);
 });