anchor.diff:          }
       }
   
  -    url += mode + "/" + heatmap + "/";
  +    url += Util.encode(mode) + "/" + Util.encode(heatmap) + "/";
   
       if ("nodesByForeignSource".equals(heatmap)) {
           foreignSource = request.getParameter("foreignSource");
  -        url += foreignSource;
  +        url += Util.encode(foreignSource);
           title += " (Nodes by ForeignSource '" + foreignSource + "')";
       }
   
       if ("nodesByCategory".equals(heatmap)) {
           category = request.getParameter("category");
  -        url += category;
  +        url += Util.encode(category);
           title += " (Nodes by Category '" + category + "')";
       }
   
       if ("nodesByMonitoredService".equals(heatmap)) {
           monitoredService = request.getParameter("monitoredService");
  -        url += monitoredService;
  +        url += Util.encode(monitoredService);
           title += " (Nodes by Service '" +monitoredService + "')";
       }
   
  
positive.code: <%--
  /*******************************************************************************
   * This file is part of OpenNMS(R).
   *
  
negative.code:         <%
              if ("outages".equals(mode)) {
          %>
          <a href="<%=request.getRequestURI()%>?mode=alarms&heatmap=<%=Util.encode(heatmap)%>&category=<%=category==null?"":Util.encode(category)%>&foreignSource=<%=foreignSource==null?"":Util.encode(foreignSource)%>&monitoredService=<%=monitoredService==null?"":Util.encode(monitoredService)%>">Alarms</a> / <b>Outages</b>
          <%
              } else {
          %>
          <b>Alarms</b> / <a href="<%=request.getRequestURI()%>?mode=outages&heatmap=<%=Util.encode(heatmap)%>&category=<%=category==null?"":Util.encode(category)%>&foreignSource=<%=foreignSource==null?"":Util.encode(foreignSource)%>&monitoredService=<%=monitoredService==null?"":Util.encode(monitoredService)%>">Outages</a>
          <%
              }
          %>
  