f4521d83b9f6c26765970beb19bcf8ca33abca58
larrym
  Mon Oct 11 17:16:13 2010 -0700
add windowOpenFailedMsg; don't put 'Click to alter ...' items in the contextmenu
diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js
index 6296974..7c716c2 100644
--- src/hg/js/hgTracks.js
+++ src/hg/js/hgTracks.js
@@ -1536,7 +1536,9 @@
             } else {
                 if(cmd == 'getDna')
                 {
-                    window.open("../cgi-bin/hgc?hgsid=" + getHgsid() + "&g=getDna&i=mixed&c=" + chrom + "&l=" + (chromStart - 1) + "&r=" + chromEnd);
+                    if(window.open("../cgi-bin/hgc?hgsid=" + getHgsid() + "&g=getDna&i=mixed&c=" + chrom + "&l=" + (chromStart - 1) + "&r=" + chromEnd) == null) {
+                        windowOpenFailedMsg();
+                    }
                 } else {
                     var newPosition = setPositionByCoordinates(chrom, chromStart, chromEnd);
                     if(browser == "safari" || imageV2) {
@@ -1608,8 +1610,9 @@
                    cache: false
                });
     } else if (cmd == 'openLink') {
-        // XXXX This is blocked by Safari's popup blocker (without any warning message).
-        window.open(selectedMenuItem.href);
+        if(window.open(selectedMenuItem.href) == null) {
+            windowOpenFailedMsg();
+        }
     } else if (cmd == 'followLink') {
         // XXXX This is blocked by Safari's popup blocker (without any warning message).
         location.assign(selectedMenuItem.href);
@@ -1693,7 +1696,7 @@
             var menu = [];
             var selectedImg = " <img src='../images/greenCheck.png' height='10' width='10' />";
             var done = false;
-            if(selectedMenuItem) {
+            if(selectedMenuItem && selectedMenuItem.id != undefined) {
                 var href = selectedMenuItem.href;
                 var isHgc, isGene;
                 if(href) {
@@ -1755,12 +1758,9 @@
                     if(selectedMenuItem.title != undefined && selectedMenuItem.title.length > 0
                     && selectedMenuItem.href  != undefined && selectedMenuItem.href.length  > 0) {
                         var str = selectedMenuItem.title;
-                        var set = false;
-                        if(str.indexOf("Click to alter ") == 0)
-                            str = "Alter " + str.substring("Click to alter ".length);
-                        if(str.indexOf(" and similar subtracks") != -1)
-                            set = true;
-                            //str = str.substring(0,str.length - " and similar subtracks".length);
+                        if(str.indexOf("Click to alter ") == 0) {
+                            ; // suppress the "Click to alter..." items
+                        } else {
                         if(str.indexOf("display density") != -1)
                             str = "<img src='../images/toggle.png' /> " + str;
                         else
@@ -1768,6 +1768,7 @@
                         o[str] = {onclick: function(menuItemClicked, menuObject) { contextMenuHit(menuItemClicked, menuObject, "followLink"); return true; }};
                         any = true;
                     }
+                    }
                     if(any) {
                         menu.push($.contextMenu.separator);
                         menu.push(o);
@@ -2101,7 +2102,9 @@
     var reg = new RegExp(str);
     a = reg.exec(response);
     if(a && a[1]) {
-        window.open(a[1]);
+        if(window.open(a[1]) == null) {
+            windowOpenFailedMsg();
+        }
         return;
     }
     showWarning("Couldn't parse out img src");
@@ -2459,3 +2462,8 @@
         }
     }
 }
+
+function windowOpenFailedMsg()
+{
+    alert("Your web browser prevented us from opening a new window.\n\nYou need to change your browser settings to allow popups from " + document.domain);
+}