Index: .pydevproject
===================================================================
--- .pydevproject	(revision 794922220f2fb3b23dd08c648aabf87b4850596c)
+++ .pydevproject	(revision 794922220f2fb3b23dd08c648aabf87b4850596c)
@@ -4,5 +4,5 @@
 <pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.7</pydev_property>
 <pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
-<path>/sasview-git/src</path>
+<path>/sasview/src</path>
 </pydev_pathproperty>
 </pydev_project>
Index: src/sas/guiframe/CategoryManager.py
===================================================================
--- src/sas/guiframe/CategoryManager.py	(revision 794922220f2fb3b23dd08c648aabf87b4850596c)
+++ src/sas/guiframe/CategoryManager.py	(revision 4faed25fd4ce84fb5dbdbfd99a0a4a45c9c757e0)
@@ -80,5 +80,11 @@
     def __init__(self, parent, win_id, title):
         """
-        Category Manager Dialog class
+        Category Manager Dialog class.  This is the class that is used to
+        bring up a dialog box allowing the user to create new model categories
+        and to add and remove models from a given category allowing complete
+        user customization of categories for models.  This and Category 
+        Installer provide the mecahnisms for creating the category dictionary
+        which is saved as a json file so that categories remain persistent
+        from session to session
         :param win_id: A new wx ID
         :param title: Title for the window
@@ -88,8 +94,15 @@
         self.performance_blocking = False
 
+        # get the current status of model categorization (from the dictionary)
         self.master_category_dict = defaultdict(list)
         self.by_model_dict = defaultdict(list)
         self.model_enabled_dict = defaultdict(bool)
 
+        #----------Initialize panels, frames, and sizers ------------
+        # the whole panel is panel of hbox (a horizontal sizer and contains
+        # the left_pane (vbox2 sizer) which houses all the buttons and
+        # the right_pane (vbox sizer) which houses the current model/category 
+        #list)
+        #     Comments added June 14, 2015 -PDB
         wx.Frame.__init__(self, parent, win_id, title, size=(660, 400))
 
@@ -114,6 +127,8 @@
         self._set_enabled()      
 
+        #----------button and button layout -----------------------
         vbox2 = wx.BoxSizer(wx.VERTICAL)
 
+        #Create buttons
         sel = wx.Button(left_panel, -1, 'Enable All', size=(100, -1))
         des = wx.Button(left_panel, -1, 'Disable All', size=(100, -1))
@@ -121,4 +136,5 @@
                                   size=(100, -1))
         ok_button = wx.Button(left_panel, -1, 'OK', size=(100, -1))
+        help_button = wx.Button(left_panel, -1, 'HELP', size=(100, -1))
         cancel_button = wx.Button(left_panel, -1, 'Cancel', 
                                   size=(100, -1))        
@@ -126,4 +142,5 @@
         
 
+        #bind buttons to action method
         self.Bind(wx.EVT_BUTTON, self._on_selectall, 
                   id=sel.GetId())
@@ -134,7 +151,11 @@
         self.Bind(wx.EVT_BUTTON, self._on_ok, 
                   id = ok_button.GetId())
+        self.Bind(wx.EVT_BUTTON, self._on_help, 
+                  id = help_button.GetId())
         self.Bind(wx.EVT_BUTTON, self._on_cancel, 
                   id = cancel_button.GetId())
 
+        #add buttons to sizer (vbox2) and convert to panel so displays well
+        #on all platforms
         vbox2.Add(modify_button, 0, wx.TOP, 10)
         vbox2.Add((-1, 20))
@@ -143,8 +164,10 @@
         vbox2.Add((-1, 20))
         vbox2.Add(ok_button)
+        vbox2.Add(help_button)
         vbox2.Add(cancel_button)
 
         left_panel.SetSizer(vbox2)
 
+        #--------------------- layout of current cat/model list --------
         vbox.Add(self.cat_list, 1, wx.EXPAND | wx.TOP, 3)
         vbox.Add((-1, 10))
@@ -153,4 +176,5 @@
         right_panel.SetSizer(vbox)
 
+        #-------------- put it all together -----------------
         hbox.Add(left_panel, 0, wx.EXPAND | wx.RIGHT, 5)
         hbox.Add(right_panel, 1, wx.EXPAND)
@@ -294,4 +318,28 @@
         self.Destroy()
 
+    def _on_help(self, event):
+        """
+        Bring up the Category Manager Panel Documentation whenever
+        the HELP button is clicked.
+
+        Calls DocumentationWindow with the path of the location within the
+        documentation tree (after /doc/ ....".  Note that when using old
+        versions of Wx (before 2.9) and thus not the release version of
+        installers, the help comes up at the top level of the file as
+        webbrowser does not pass anything past the # to the browser when it is
+        running "file:///...."
+
+    :param evt: Triggers on clicking the help button
+    """
+
+        #import documentation window here to avoid circular imports
+        #if put at top of file with rest of imports.
+        from documentation_window import DocumentationWindow
+
+        _TreeLocation = "user/perspectives/fitting/fitting_help.html"
+        _PageAnchor = "#category-manager"
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, _PageAnchor,
+                                          "Category Manager Help")
+
     def _on_cancel(self, event):
         """
Index: src/sas/guiframe/data_processor.py
===================================================================
--- src/sas/guiframe/data_processor.py	(revision 76aed53a2a3a72e935e8e32e0b513acbaaf7b492)
+++ src/sas/guiframe/data_processor.py	(revision 56e99f9484e4ef7c2331a2f87bd1dcb59fa9aa31)
@@ -18,4 +18,5 @@
 from sas.plottools import plottables
 from sas.guiframe.dataFitting import Data1D
+
 
 FUNC_DICT = {"sqrt": "math.sqrt",
@@ -1130,4 +1131,27 @@
             wx.PostEvent(self.parent.parent, StatusEvent(status=msg, info="error"))
 
+    def on_help(self, event):
+        """
+        Bring up the Batch Grid Panel Usage Documentation whenever
+        the HELP button is clicked.
+
+        Calls DocumentationWindow with the path of the location within the
+        documentation tree (after /doc/ ....".  Note that when using old
+        versions of Wx (before 2.9) and thus not the release version of
+        installers, the help comes up at the top level of the file as
+        webbrowser does not pass anything past the # to the browser when it is
+        running "file:///...."
+
+    :param evt: Triggers on clicking the help button
+    """
+        #import documentation window here to avoid circular imports
+        #if put at top of file with rest of imports.
+        from documentation_window import DocumentationWindow
+
+        _TreeLocation = "user/perspectives/fitting/fitting_help.html"
+        _PageAnchor = "#batch-fit-mode"
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, _PageAnchor,
+                                          "Batch Mode Help")
+
     def get_sentence(self, dict, sentence, column_names):
         """
@@ -1186,4 +1210,9 @@
 
         self.plot_button.SetToolTipString(plot_tip)
+
+        self.help_button = wx.Button(self, -1, "HELP")
+        self.help_button.SetToolTipString("Get Help for Batch Mode")
+        self.help_button.Bind(wx.EVT_BUTTON, self.on_help)
+
         boxsizer1.AddMany([(note_text, 0, wx.LEFT, 10),
                            (self.view_button, 0, wx.LEFT | wx.RIGHT, 10)])
@@ -1191,5 +1220,7 @@
                                     wx.LEFT | wx.RIGHT | wx.BOTTOM, 10),
                                    (self.plot_button, 0,
-                                    wx.LEFT | wx.TOP | wx.BOTTOM | wx.EXPAND, 12)])
+                                    wx.LEFT | wx.TOP | wx.BOTTOM, 12),
+                                   (self.help_button,0, 
+                                    wx.LEFT | wx.TOP | wx.BOTTOM, 12)])
 
         wx.EVT_BUTTON(self, self.plot_button.GetId(), self.on_plot)
Index: src/sas/guiframe/documentation_window.py
===================================================================
--- src/sas/guiframe/documentation_window.py	(revision db417463951ebbabffb65304b7ca03a98f3aa5af)
+++ src/sas/guiframe/documentation_window.py	(revision f202138a6e2c8473eaa18931ba791130fca4f5c6)
@@ -15,5 +15,5 @@
 
 class DocumentationWindow(wx.Frame):
-    def __init__(self, parent, id, path, title, size=(850, 540)):
+    def __init__(self, parent, id, path, url_instruction, title, size=(850, 540)):
         wx.Frame.__init__(self, parent, id, title, size=size)
 
@@ -28,5 +28,5 @@
 
         file_path = os.path.join(docs_path, path)
-        url = "file://" + urllib.quote(file_path)
+        url = "file:///" + urllib.quote(file_path,'\:')+ url_instruction
 
         if not os.path.exists(file_path):
@@ -48,5 +48,5 @@
 def main():
     app = wx.App()
-    DocumentationWindow(None, -1, "index.html", "Documentation",)
+    DocumentationWindow(None, -1, "index.html", "", "Documentation",)
     app.MainLoop()
 
Index: src/sas/guiframe/gui_manager.py
===================================================================
--- src/sas/guiframe/gui_manager.py	(revision 5276eeb1fe87cc1ac6eadf085d266c8fa1cd2191)
+++ src/sas/guiframe/gui_manager.py	(revision 7801df83258dc0f0d45838a3596f5e58f88bbcd3)
@@ -2166,5 +2166,5 @@
         # different place than they would otherwise.
         from documentation_window import DocumentationWindow
-        DocumentationWindow(self, -1, "index.html", "General Help")
+        DocumentationWindow(self, -1, "index.html", "", "SasView Documentation")
 
     def set_manager(self, manager):
Index: src/sas/perspectives/calculator/data_operator.py
===================================================================
--- src/sas/perspectives/calculator/data_operator.py	(revision a27e8b86a6fe067b846e576064d6f6cbae3e9af3)
+++ src/sas/perspectives/calculator/data_operator.py	(revision 3db44fbfe87ababed011758181e38e2806c5aac2)
@@ -635,6 +635,6 @@
 
         _TreeLocation = "user/perspectives/calculator/data_operator_help.html"
-        _doc_viewer = DocumentationWindow(self, -1, \
-             _TreeLocation, "Data Operation Help")
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, "",
+                                          "Data Operation Help")
 
     def disconnect_panels(self):
Index: src/sas/perspectives/calculator/density_panel.py
===================================================================
--- src/sas/perspectives/calculator/density_panel.py	(revision d5419f7f544b78361d56e7be452aaf706afa3524)
+++ src/sas/perspectives/calculator/density_panel.py	(revision 3db44fbfe87ababed011758181e38e2806c5aac2)
@@ -385,6 +385,6 @@
 
         _TreeLocation = "user/perspectives/calculator/density_calculator_help.html"
-        _doc_viewer = DocumentationWindow(self, -1, \
-             _TreeLocation, "Density/Volume Calculator Help")
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, "",
+                                          "Density/Volume Calculator Help")
 
     def on_close(self, event):
Index: src/sas/perspectives/calculator/gen_scatter_panel.py
===================================================================
--- src/sas/perspectives/calculator/gen_scatter_panel.py	(revision d5419f7f544b78361d56e7be452aaf706afa3524)
+++ src/sas/perspectives/calculator/gen_scatter_panel.py	(revision 3db44fbfe87ababed011758181e38e2806c5aac2)
@@ -914,6 +914,6 @@
 
         _TreeLocation = "user/perspectives/calculator/sas_calculator_help.html"
-        _doc_viewer = DocumentationWindow(self, -1, \
-             _TreeLocation, "General Scattering Calculator Help")
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, "",
+                                          "General Scattering Calculator Help")
 
     def _check_value(self):
Index: src/sas/perspectives/calculator/image_viewer.py
===================================================================
--- src/sas/perspectives/calculator/image_viewer.py	(revision 49ab5d718dd7743a6a296e666dfb643183bc969d)
+++ src/sas/perspectives/calculator/image_viewer.py	(revision 3db44fbfe87ababed011758181e38e2806c5aac2)
@@ -150,6 +150,6 @@
 
         _TreeLocation = "user/perspectives/calculator/image_viewer_help.html"
-        _doc_viewer = DocumentationWindow(self, -1, \
-             _TreeLocation, "Image Viewer Help")
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, "",
+                                          "Image Viewer Help")
 
 
Index: src/sas/perspectives/calculator/kiessig_calculator_panel.py
===================================================================
--- src/sas/perspectives/calculator/kiessig_calculator_panel.py	(revision d5419f7f544b78361d56e7be452aaf706afa3524)
+++ src/sas/perspectives/calculator/kiessig_calculator_panel.py	(revision 3db44fbfe87ababed011758181e38e2806c5aac2)
@@ -173,6 +173,5 @@
     """
         _TreeLocation = "user/perspectives/calculator/kiessig_calculator_help.html"
-        _doc_viewer = DocumentationWindow(self, -1,
-                                          _TreeLocation,
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, "",
                                           "Density/Volume Calculator Help")
 
Index: src/sas/perspectives/calculator/model_editor.py
===================================================================
--- src/sas/perspectives/calculator/model_editor.py	(revision ac7be54ccf932e813cbe6e41e05b682a1630a03e)
+++ src/sas/perspectives/calculator/model_editor.py	(revision 7801df83258dc0f0d45838a3596f5e58f88bbcd3)
@@ -29,4 +29,6 @@
 import re
 from wx.py.editwindow import EditWindow
+from sas.guiframe.documentation_window import DocumentationWindow
+
 
 if sys.platform.count("win32") > 0:
@@ -271,9 +273,16 @@
         # Eventually need to add help here
         self.ok_button = wx.Button(self, wx.ID_OK, 'Apply')
+        _app_tip = "Save the new Model."
+        self.ok_button.SetToolTipString(_app_tip)
         self.ok_button.Bind(wx.EVT_BUTTON, self.check_name)
+        self.help_button = wx.Button(self, -1, 'HELP')
+        _app_tip = "Help on composite model creation."
+        self.help_button.SetToolTipString(_app_tip)
+        self.help_button.Bind(wx.EVT_BUTTON, self.on_help)
         self.close_button = wx.Button(self, wx.ID_CANCEL, 'Close')
         sizer_button = wx.BoxSizer(wx.HORIZONTAL)
         sizer_button.AddMany([((20, 20), 1, 0),
                               (self.ok_button, 0, 0),
+                              (self.help_button, 0, 0),
                               (self.close_button, 0, wx.LEFT | wx.RIGHT, 10)])
         mainsizer.Add(sizer_button, 0, wx.EXPAND | wx.BOTTOM | wx.TOP, 10)
@@ -392,4 +401,24 @@
         else:
             raise
+
+    def on_help(self, event):
+        """
+        Bring up the Composite Model Editor Documentation whenever
+        the HELP button is clicked.
+
+        Calls DocumentationWindow with the path of the location within the
+        documentation tree (after /doc/ ....".  Note that when using old
+        versions of Wx (before 2.9) and thus not the release version of
+        installers, the help comes up at the top level of the file as
+        webbrowser does not pass anything past the # to the browser when it is
+        running "file:///...."
+
+    :param evt: Triggers on clicking the help button
+    """
+
+        _TreeLocation = "user/perspectives/fitting/fitting_help.html"
+        _PageAnchor = "#sum-multi-p1-p2"
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, _PageAnchor,
+                                          "Composite Model Editor Help")
 
     def _set_model_list(self):
@@ -756,4 +785,8 @@
         self.bt_apply.Bind(wx.EVT_BUTTON, self.on_click_apply)
 
+        self.bt_help = wx.Button(self, -1, "HELP", size=(_BOX_WIDTH, -1))
+        self.bt_help.SetToolTipString("Get Help For Model Editor")
+        self.bt_help.Bind(wx.EVT_BUTTON, self.on_help)
+
         self.bt_close = wx.Button(self, -1, 'Close', size=(_BOX_WIDTH, -1))
         self.bt_close.Bind(wx.EVT_BUTTON, self.on_close)
@@ -762,4 +795,6 @@
         self.button_sizer.AddMany([(self.bt_apply, 0,
                                     wx.LEFT, EDITOR_WIDTH * 0.8),
+                                   (self.bt_help, 0,
+                                    wx.LEFT,15),
                                    (self.bt_close, 0,
                                     wx.LEFT | wx.BOTTOM, 15)])
@@ -1089,4 +1124,24 @@
         """
         return self.warning
+
+    def on_help(self, event):
+        """
+        Bring up the Custom Model Editor Documentation whenever
+        the HELP button is clicked.
+
+        Calls DocumentationWindow with the path of the location within the
+        documentation tree (after /doc/ ....".  Note that when using old
+        versions of Wx (before 2.9) and thus not the release version of
+        installers, the help comes up at the top level of the file as
+        webbrowser does not pass anything past the # to the browser when it is
+        running "file:///...."
+
+    :param evt: Triggers on clicking the help button
+    """
+
+        _TreeLocation = "user/perspectives/fitting/fitting_help.html"
+        _PageAnchor = "#custom-model-editor"
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, _PageAnchor,
+                                          "Custom Model Editor Help")
 
     def on_close(self, event):
Index: src/sas/perspectives/calculator/resolution_calculator_panel.py
===================================================================
--- src/sas/perspectives/calculator/resolution_calculator_panel.py	(revision d5419f7f544b78361d56e7be452aaf706afa3524)
+++ src/sas/perspectives/calculator/resolution_calculator_panel.py	(revision 3db44fbfe87ababed011758181e38e2806c5aac2)
@@ -642,6 +642,6 @@
 
         _TreeLocation = "user/perspectives/calculator/resolution_calculator_help.html"
-        _doc_viewer = DocumentationWindow(self, -1,
-                                          _TreeLocation, "Resolution Calculator Help")
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, "",
+                                          "Resolution Calculator Help")
 
     def on_close(self, event):
Index: src/sas/perspectives/calculator/sld_panel.py
===================================================================
--- src/sas/perspectives/calculator/sld_panel.py	(revision d5419f7f544b78361d56e7be452aaf706afa3524)
+++ src/sas/perspectives/calculator/sld_panel.py	(revision 3db44fbfe87ababed011758181e38e2806c5aac2)
@@ -326,6 +326,6 @@
 
         _TreeLocation = "user/perspectives/calculator/sld_calculator_help.html"
-        _doc_viewer = DocumentationWindow(self, -1, \
-             _TreeLocation, "General Scattering Calculator Help")
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, "",
+                                          "General Scattering Calculator Help")
 
     def on_close(self, event):
Index: src/sas/perspectives/calculator/slit_length_calculator_panel.py
===================================================================
--- src/sas/perspectives/calculator/slit_length_calculator_panel.py	(revision d5419f7f544b78361d56e7be452aaf706afa3524)
+++ src/sas/perspectives/calculator/slit_length_calculator_panel.py	(revision 3db44fbfe87ababed011758181e38e2806c5aac2)
@@ -187,6 +187,6 @@
 
         _TreeLocation = "user/perspectives/calculator/slit_calculator_help.html"
-        _doc_viewer = DocumentationWindow(self, -1, \
-             _TreeLocation, "Slit Length Calculator Help")
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, "",
+                                          "Slit Length Calculator Help")
 
     def on_close(self, event):
Index: src/sas/perspectives/fitting/basepage.py
===================================================================
--- src/sas/perspectives/fitting/basepage.py	(revision 373d4eebe3a548f70f917fec87bdb5280e67d1e0)
+++ src/sas/perspectives/fitting/basepage.py	(revision 7116dffde263f183ef154ca77cdc37ffa1a3bf8f)
@@ -2847,15 +2847,13 @@
         """
 
-        if self.model == None:
-            name = 'index.html'
+        _TreeLocation = 'user/models/model_functions.html'
+        if self.model != None:
+            name = self.formfactorbox.GetValue()
+            _PageAnchor = '#' + name
+            _doc_viewer = DocumentationWindow(self, -1, _TreeLocation,
+                                              _PageAnchor, name + "Help")
         else:
-            name = self.formfactorbox.GetValue()
-
-        if self.model != None:
-            _docspath = 'user/models/model_functions.html#' + name
-            _doc_viewer = DocumentationWindow(self, -1, _docspath, name + "Help")
-        else:
-            _doc_viewer = DocumentationWindow(self, -1, "index.html", \
-                                                "General Help")
+            _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, "",
+                                                "General Model Help")
 
 
@@ -2891,5 +2889,5 @@
             wx.MessageBox(msg, info)
 
-    def _on_mag_help(self, event):
+    def _on_mag_angle_help(self, event):
         """
         Bring up Magnetic Angle definition bmp image whenever the ? button
@@ -2908,6 +2906,26 @@
 
         _TreeLocation = "_images/M_angles_pic.bmp"
-        _doc_viewer = DocumentationWindow(self, -1, \
-             _TreeLocation, "Magnetic Angle Defintions")
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, "",
+                                          "Magnetic Angle Defintions")
+
+    def _on_mag_help(self, event):
+        """
+        Bring up Magnetic Angle definition bmp image whenever the ? button
+        is clicked. Calls DocumentationWindow with the path of the location
+        within the documentation tree (after /doc/ ....". When using old
+        versions of Wx (i.e. before 2.9 and therefore not part of release
+        versions distributed via installer) it brings up an image viewer
+        box which allows the user to click through the rest of the images in
+        the directory.  Not ideal but probably better than alternative which
+        would bring up the entire discussion of how magnetic models work?
+        Specially since it is not likely to be accessed.  The normal release
+        versions bring up the normal image box.
+
+        :param evt: Triggers on clicking ? in Magnetic Angles? box
+        """
+
+        _TreeLocation = "user/perspectives/fitting/mag_help.html"
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, "",
+                                          "Polarized Beam/Magnetc Help")
 
     def _on_mag_on(self, event):
@@ -2953,8 +2971,8 @@
         """
 
-        _TreeLocation = "user/perspectives/fitting/fitting_help.html"
-        _TreeLocation += "#polydispersity-distributions"
-        _doc_viewer = DocumentationWindow(self, -1, \
-             _TreeLocation, "Polydispersity Help")
+        _TreeLocation = "user/perspectives/fitting/pd_help.html"
+        _PageAnchor = ""
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation,
+                                          _PageAnchor, "Polydispersity Help")
 
     def on_left_down(self, event):
Index: src/sas/perspectives/fitting/fitpage.py
===================================================================
--- src/sas/perspectives/fitting/fitpage.py	(revision 526542037f3eafd1f7f48d2365935e46d6fe7c26)
+++ src/sas/perspectives/fitting/fitpage.py	(revision f3dc56c3c2d24a02b2aaa75e99da99e696784faf)
@@ -16,4 +16,5 @@
 from sas.guiframe.utils import format_number
 from sas.guiframe.utils import check_float
+from sas.guiframe.documentation_window import DocumentationWindow
 
 (Chi2UpdateEvent, EVT_CHI2_UPDATE) = wx.lib.newevent.NewEvent()
@@ -188,6 +189,8 @@
     def _fill_range_sizer(self):
         """
-        Fill the sizer containing the plotting range
-        add  access to npts
+        Fill the Fitting sizer on the fit panel which contains: the smearing
+        information (dq), the weighting information (dI or other), the plotting
+        range, access to the 2D mask editor, the compute, fit, and help
+        buttons, xi^2, number of points etc.
         """
         is_2Ddata = False
@@ -265,5 +268,5 @@
         weighting_box.Add(sizer_weighting)
 
-        sizer_fit = wx.GridSizer(2, 4, 2, 6)
+        sizer_fit = wx.GridSizer(2, 5, 2, 6)
 
         # combobox for smear2d accuracy selection
@@ -284,4 +287,23 @@
         self.btFit.SetToolTipString("Start fitting.")
 
+        #General Help button
+        self.btFitHelp = wx.Button(self, -1, 'HELP')
+        self.btFitHelp.SetToolTipString("General Fitting Help.")
+        self.btFitHelp.Bind(wx.EVT_BUTTON, self._onFitHelp)
+        
+        #Resolution Smearing Help button (for now use same technique as
+        #used for dI help to get tiniest possible button that works
+        #both on MAC and PC.  Should completely rewrite the fitting sizer 
+        #in future.  This is minimum to get out release 3.1
+        #        comment June 14, 2015     --- PDB
+        if sys.platform.count("win32") > 0:
+            size_q = (20, 15)  #on PC
+        else:
+            size_q = (30, 20)  #on MAC
+        self.btSmearHelp = wx.Button(self, -1, '?', style=wx.BU_EXACTFIT,\
+                                     size=size_q)
+        self.btSmearHelp.SetToolTipString("Resolution Smearing Help.")
+        self.btSmearHelp.Bind(wx.EVT_BUTTON, self._onSmearHelp)
+        
         #textcntrl for custom resolution
         self.smear_pinhole_max = ModelTextCtrl(self, -1,
@@ -341,11 +363,21 @@
 
         # add 4 types of smearing to the sizer
+        # Note from June 14, 2015
+        # removed the extra (10,10) spaces to make room for help.  Actually
+        # don't see the need for those anyway as the wx.LEFT, xx should take
+        # care of spacing anyway though it does not seem to work for some
+        # reason.  Currently leaving as we are in "code freeze" only making
+        # minimal changes necessary for release 3.1.  We probably want to clean
+        # up the whole fitpage (and basepage and fitpanel etc) eventually.
+        #                          ---- PDB
         sizer_smearer.Add(self.disable_smearer, 0, wx.LEFT, 10)
-        sizer_smearer.Add((10, 10))
+#        sizer_smearer.Add((10, 10))
         sizer_smearer.Add(self.enable_smearer)
-        sizer_smearer.Add((10, 10))
+#        sizer_smearer.Add((10, 10))
         sizer_smearer.Add(self.pinhole_smearer)
-        sizer_smearer.Add((10, 10))
+#        sizer_smearer.Add((10, 10))
         sizer_smearer.Add(self.slit_smearer)
+#        sizer_smearer.Add((10, 10))
+        sizer_smearer.Add(self.btSmearHelp)
         sizer_smearer.Add((10, 10))
 
@@ -391,8 +423,10 @@
         #sizer_fit.Add(box_description_3, 0, 0)
         sizer_fit.Add(self.draw_button, 0, 0)
+        sizer_fit.Add((-1,5))
         sizer_fit.Add(self.tcChi, 0, 0)
         sizer_fit.Add(self.Npts_fit, 0, 0)
         sizer_fit.Add(self.Npts_total, 0, 0)
         sizer_fit.Add(self.btFit, 0, 0)
+        sizer_fit.Add(self.btFitHelp, 0, 0)
 
         # StaticText for smear
@@ -1046,4 +1080,43 @@
         self.fit_started = self._manager.onFit(uid=self.uid)
         wx.CallAfter(self.set_fitbutton)
+
+    def _onFitHelp(self, event):
+        """
+        Bring up the Full Fitting Documentation whenever the HELP button is
+        clicked.
+
+        Calls DocumentationWindow with the path of the location within the
+        documentation tree (after /doc/ ....".  Note that when using old
+        versions of Wx (before 2.9) and thus not the release version of
+        installers, the help comes up at the top level of the file as
+        webbrowser does not pass anything past the # to the browser when it is
+        running "file:///...."
+
+    :param evt: Triggers on clicking the help button
+    """
+
+        _TreeLocation = "user/perspectives/fitting/fitting_help.html"
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, "",
+                                          "General Fitting Help")
+
+    def _onSmearHelp(self, event):
+        """
+        Bring up the instrumental resolution smearing Documentation whenever
+        the ? button in the smearing box is clicked.
+
+        Calls DocumentationWindow with the path of the location within the
+        documentation tree (after /doc/ ....".  Note that when using old
+        versions of Wx (before 2.9) and thus not the release version of
+        installers, the help comes up at the top level of the file as
+        webbrowser does not pass anything past the # to the browser when it is
+        running "file:///...."
+
+    :param evt: Triggers on clicking the help button
+    """
+
+        _TreeLocation = "user/perspectives/fitting/sm_help.html"
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, "",
+                                          "Instrumental Resolution Smearing \
+                                          Help")
 
     def set_fitbutton(self):
@@ -3012,7 +3085,13 @@
                 orient_angle = wx.StaticText(self, -1, '[For 2D only]:')
                 mag_on_button = wx.Button(self, -1, "Magnetic ON")
+                mag_on_button.SetToolTipString("Turn Pol Beam/Mag scatt on/off")
                 mag_on_button.Bind(wx.EVT_BUTTON, self._on_mag_on)
-                mag_help_button = wx.Button(self, -1, "Magnetic angles?")
+                mag_angle_help_button = wx.Button(self, -1, "Magnetic angles?")
+                mag_angle_help_button.SetToolTipString("see angle definitions")
+                mag_help_button = wx.Button(self, -1, "Mag HELP")
+                mag_help_button.SetToolTipString("Help on pol beam/mag fitting")
                 mag_help_button.Bind(wx.EVT_BUTTON, self._on_mag_help)
+                mag_angle_help_button.Bind(wx.EVT_BUTTON, \
+                                            self._on_mag_angle_help)
                 sizer.Add(orient_angle, (iy, ix), (1, 1),
                           wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15)
@@ -3020,8 +3099,13 @@
                 sizer.Add(mag_on_button, (iy, ix), (1, 1),
                           wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15)
+                ix += 1
+                sizer.Add(mag_angle_help_button, (iy, ix), (1, 1),
+                          wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15)
                 sizer.Add(mag_help_button, (iy, ix + 1), (1, 1),
                           wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15)
 
                 #handle the magnetic buttons
+                #clean this up so that assume mag is off then turn 
+                #all buttons on IF mag has mag and has 2D
                 if not self._has_magnetic:
                     mag_on_button.Show(False)
@@ -3035,7 +3119,9 @@
                         mag_on_button.SetLabel("Magnetic OFF")
                         mag_help_button.Show(True)
+                        mag_angle_help_button.Show(True)
                     else:
                         mag_on_button.SetLabel("Magnetic ON")
                         mag_help_button.Show(False)
+                        mag_angle_help_button.Show(False)
 
                 if not self.data.__class__.__name__ == "Data2D" and \
Index: src/sas/perspectives/invariant/invariant_panel.py
===================================================================
--- src/sas/perspectives/invariant/invariant_panel.py	(revision cce0ad3f3fdfdf16231ed2d6c5fdddac97b75be1)
+++ src/sas/perspectives/invariant/invariant_panel.py	(revision 3db44fbfe87ababed011758181e38e2806c5aac2)
@@ -1893,6 +1893,6 @@
 
         _TreeLocation = "user/perspectives/invariant/invariant_help.html"
-        _doc_viewer = DocumentationWindow(self, -1, \
-             _TreeLocation, "Invariant Help")
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, "",
+                                          "Invariant Help")
 
 
Index: src/sas/perspectives/pr/inversion_panel.py
===================================================================
--- src/sas/perspectives/pr/inversion_panel.py	(revision 3d250da3ae17ea6190c69794c598422f07134904)
+++ src/sas/perspectives/pr/inversion_panel.py	(revision 3db44fbfe87ababed011758181e38e2806c5aac2)
@@ -958,6 +958,6 @@
 
         _TreeLocation = "user/perspectives/pr/pr_help.html"
-        _doc_viewer = DocumentationWindow(self, -1, \
-             _TreeLocation, "P(r) Help")
+        _doc_viewer = DocumentationWindow(self, -1, _TreeLocation, "",
+                                          "P(r) Help")
 
 
