diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/Notify_min_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/Notify_min_js.xml
index d2bb80cfe01df5b60ae1e6ea6876ba5cd50409f0..3ec79778d5aae42c0849ef040c27574e87261bf3 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/Notify_min_js.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/Notify_min_js.xml
@@ -242,7 +242,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.21883.33309.38348</string> </value>
+                <value> <string>961.21937.16299.41642</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -260,7 +260,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1502445194.86</float>
+                        <float>1507899148.22</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_erp5_configurator_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_erp5_configurator_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..1db714aaf40bba49c726ca38e83463ee67cce173
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_erp5_configurator_html.html
@@ -0,0 +1,35 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <title>OfficeJS Monitor Page ERP5 Jio Config</title>
+
+    <script src="rsvp.js"></script>
+    <script src="renderjs.js"></script>
+    <script src="gadget_erp5_page_ojsm_erp5_configurator.js"></script>
+  </head>
+
+  <body>
+    <article class="ui-content ui-body-c">
+      <section class="ui-content-header-plain">
+        <h3 class="ui-content-title ui-body-c">
+          <span class="ui-icon ui-icon-custom ui-icon-database">&nbsp;</span>
+          Your ERP5 Connection parameters
+        </h3>
+      </section>
+      <p>You have to be logged in this ERP5 prior to synchronising</p>
+    </article>
+    <br>
+    <form class="save_form ui-body-c" novalidate>
+      <button type="submit" class="ui-btn ui-btn-b ui-btn-inline
+        ui-icon-edit ui-btn-icon-right ui-screen-hidden"></button>
+      <div data-gadget-url="gadget_erp5_form.html"
+              data-gadget-scope="form_view"
+              data-gadget-sandbox="public">
+      </div>
+    </form>
+    <br>
+  </body>
+</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_erp5_configurator_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_erp5_configurator_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e3cc07bcc6526cb58f204aee93cd68aeebe05012
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_erp5_configurator_html.xml
@@ -0,0 +1,332 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Page" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_erp5_configurator.html</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_erp5_configurator_html</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value> <string>en</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Page</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Gadget OJS Monitor ERP5 Configurator</string> </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508247471.55</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>962.54628.50882.58453</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508258766.54</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508247428.16</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_erp5_configurator_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_erp5_configurator_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..43ce9a65a0e4efbac3c0ec9151a7dffa883c8965
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_erp5_configurator_js.js
@@ -0,0 +1,92 @@
+/*global window, rJS */
+/*jslint nomen: true, indent: 2, maxerr: 3*/
+(function (window, rJS) {
+  "use strict";
+
+  rJS(window)
+    .setState({
+      erp5_url: "https://vifib.erp5.net/web_site_module/renderjs_runner"
+    })
+    /////////////////////////////////////////////////////////////////
+    // Acquired methods
+    /////////////////////////////////////////////////////////////////
+    .declareAcquiredMethod("updateHeader", "updateHeader")
+    .declareAcquiredMethod("getUrlFor", "getUrlFor")
+    .declareAcquiredMethod("redirect", "redirect")
+    .declareAcquiredMethod("setSetting", "setSetting")
+
+    /////////////////////////////////////////
+    // Form submit
+    /////////////////////////////////////////
+    .onEvent('submit', function () {
+      var gadget = this,
+        master_url;
+      return gadget.getDeclaredGadget('form_view')
+        .push(function (form_gadget) {
+          return form_gadget.getContent();
+        })
+        .push(function (content) {
+          master_url = content.erp5_url + "/hateoas/";
+          return gadget.setSetting("hateoas_url", master_url);
+        })
+        .push(function () {
+          return gadget.redirect({command: "display", options: {
+            page: "ojsm_import_export",
+            auto_sync: "erp5",
+            url: master_url
+            }});
+        });
+    })
+
+    .declareMethod("triggerSubmit", function () {
+      return this.element.querySelector('button[type="submit"]').click();
+    })
+
+    .declareMethod("render", function () {
+      var gadget = this;
+
+      return gadget.getDeclaredGadget('form_view')
+        .push(function (form_gadget) {
+          return form_gadget.render({
+            erp5_document: {
+              "_embedded": {"_view": {
+                "my_erp5_url": {
+                  "description": "",
+                  "title": "Connection Url",
+                  "default": gadget.state.erp5_url,
+                  "css_class": "",
+                  "required": 1,
+                  "editable": 1,
+                  "key": "erp5_url",
+                  "hidden": 0,
+                  "type": "StringField"
+                }
+              }},
+              "_links": {
+                "type": {
+                  // form_list display portal_type in header
+                  name: ""
+                }
+              }
+            },
+            form_definition: {
+              group_list: [[
+                "top",
+                [["my_erp5_url"]]
+              ]]
+            }
+          });
+        })
+        .push(function () {
+          return gadget.getUrlFor({command: 'display', options: {page: 'ojsm_import_export'}});
+        })
+        .push(function (url) {
+          return gadget.updateHeader({
+            page_title: "Connect To ERP5 Storage",
+            back_url: url,
+            submit_action: true,
+            panel_action: false
+          });
+        });
+    });
+}(window, rJS));
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_erp5_configurator_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_erp5_configurator_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6c1a4bab8f11a414b1f7b44a532356d8fbb2ca9c
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_erp5_configurator_js.xml
@@ -0,0 +1,340 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Script" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/javascript</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_erp5_configurator.js</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_erp5_configurator_js</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Script</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>OfficeJS Monitoring Page ERP5 Configurator JS</string> </value>
+        </item>
+        <item>
+            <key> <string>url_string</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508251150.88</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>962.55724.5208.57309</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508343284.75</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508247692.75</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_list_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_list_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..e48b703ab44871ff11001a1b0db84e8d82339efe
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_list_html.html
@@ -0,0 +1,20 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <title>Monitoring Hosting Subscription List</title>
+
+    <link href="gadget_officejs_monitoring_custom.css" rel="stylesheet" type="text/css"/>
+
+    <script src="rsvp.js"></script>
+    <script src="renderjs.js"></script>
+
+    <script src="gadget_erp5_page_ojsm_hosting_subscription_list.js"></script>
+  </head>
+
+  <body>
+    <div data-gadget-url="gadget_erp5_pt_form_list.html" data-gadget-scope="form_list"></div>
+  </body>
+</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_list_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_list_html.xml
similarity index 96%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_list_html.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_list_html.xml
index 03f407a71d4df9d98a0f24cb3c869189126df24f..051ce28b4f3399da838a143abcabff8ab0a49217 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_list_html.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_list_html.xml
@@ -80,7 +80,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_hosting_subscription_list.html</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_hosting_subscription_list.html</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -90,7 +90,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_hosting_subscription_list_html</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_hosting_subscription_list_html</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -243,7 +243,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.6384.703.48554</string> </value>
+                <value> <string>962.48791.22929.44424</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -261,7 +261,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1501862298.92</float>
+                        <float>1507902208.04</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_list_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_list_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..68238183673996f5d2e10877c782a0fe6646a629
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_list_js.js
@@ -0,0 +1,246 @@
+/*global window, rJS, RSVP */
+/*jslint nomen: true, indent: 2, maxerr: 3*/
+(function (window, rJS, RSVP) {
+  "use strict";
+
+  var gadget_klass = rJS(window);
+
+  function getHostingData(gadget, filter) {
+    // optimized way to fetch hosting subscription list
+    var hosting_dict = {},
+      instance_dict = {},
+      total_rows = 0;
+    return gadget.jio_allDocs(filter)
+      .push(function (result) {
+        var i;
+        total_rows = result.data.total_rows;
+        for (i = 0; i < result.data.total_rows; i += 1) {
+          hosting_dict[result.data.rows[i].id] = {
+            id: result.data.rows[i].id,
+            value: {
+              url: result.data.rows[i].value.url,
+              status: "WARNING",
+              date: 'Not Synchronized',
+              title: result.data.rows[i].value.title,
+              amount: 0
+            }
+          };
+        }
+        return gadget.jio_allDocs({
+          query: '(portal_type:"opml-outline") OR (portal_type:"global")',
+          select_list: [
+            "parent_url",
+            "status",
+            "parent_id",
+            "date",
+            "portal_type"
+          ]
+        });
+      })
+      .push(function (result) {
+        var i,
+          key,
+          item,
+          row_list = [];
+        for (i = 0; i < result.data.total_rows; i += 1) {
+          if (result.data.rows[i].value.portal_type === 'opml-outline') {
+            if (hosting_dict.hasOwnProperty(result.data.rows[i].value.parent_url)) {
+              instance_dict[result.data.rows[i].id] = {
+                parent_id: result.data.rows[i].value.parent_url
+              };
+            }
+          }
+        }
+        for (i = 0; i < result.data.total_rows; i += 1) {
+          if (result.data.rows[i].value.portal_type === 'global') {
+            if (instance_dict.hasOwnProperty(result.data.rows[i].value.parent_id)) {
+              instance_dict[result.data.rows[i].value.parent_id].date =
+                result.data.rows[i].value.date;
+              instance_dict[result.data.rows[i].value.parent_id].status =
+                result.data.rows[i].value.status;
+            }
+          }
+        }
+        //calculate hosting subscription status
+        for (key in instance_dict) {
+          if (instance_dict.hasOwnProperty(key)) {
+            item = hosting_dict[instance_dict[key].parent_id].value;
+            item.amount += 1;
+            if (item.status !== "ERROR") {
+              item.status = instance_dict[key].status || "WARNING";
+            }
+            item.date = instance_dict[key].date || 'Not Synchronized';
+            item.synced = item.status !== "WARNING" ? "YES" : "NO";
+          }
+        }
+        for (key in hosting_dict) {
+          if (hosting_dict.hasOwnProperty(key)) {
+            row_list.push(hosting_dict[key]);
+          }
+        }
+        return {data: {total_rows: total_rows, rows: row_list}};
+      });
+  }
+
+  gadget_klass
+    .declareAcquiredMethod("getSetting", "getSetting")
+    .declareAcquiredMethod("redirect", "redirect")
+    .declareAcquiredMethod("reload", "reload")
+    .declareAcquiredMethod("getUrlFor", "getUrlFor")
+    .declareAcquiredMethod("updateHeader", "updateHeader")
+    .declareAcquiredMethod("renderApplication", "renderApplication")
+    .declareAcquiredMethod('jio_allDocs', 'jio_allDocs')
+
+    .allowPublicAcquisition("getUrlFor", function (param_list) {
+      if (param_list[0].options.jio_key !== undefined &&
+          param_list[0].options.query.indexOf('portal_type:"opml"') !== -1) {
+        param_list[0].options.page = "ojsm_hosting_subscription_view";
+        param_list[0].options.opml_key = param_list[0].options.jio_key;
+      }
+      return this.getUrlFor(param_list[0]);
+    })
+
+    .allowPublicAcquisition("jio_allDocs", function (param_list) {
+      var gadget = this;
+      return getHostingData(gadget, param_list[0])
+        .push(function (result) {
+          var i, value, len = result.data.total_rows;
+          for (i = 0; i < len; i += 1) {
+            if (result.data.rows[i].value.hasOwnProperty("date")) {
+              result.data.rows[i].value.date = {
+                allow_empty_time: 0,
+                ampm_time_style: 0,
+                css_class: "date_field",
+                date_only: 0,
+                description: "The Date",
+                editable: 0,
+                hidden: 0,
+                hidden_day_is_last_day: 0,
+                "default": new Date(result.data.rows[i].value.date).toUTCString(),
+                key: "date",
+                required: 0,
+                timezone_style: 0,
+                title: "Status Date",
+                type: "DateTimeField"
+              };
+              result.data.rows[i].value["listbox_uid:list"] = {
+                key: "listbox_uid:list",
+                value: 2713
+              };
+            }
+            if (result.data.rows[i].value.hasOwnProperty("status")) {
+              result.data.rows[i].value.status = {
+                css_class: "",
+                description: "The Status",
+                hidden: 0,
+                "default": result.data.rows[i].value.status,
+                key: "status",
+                url: "gadget_erp5_field_status.html",
+                title: "Status",
+                type: "GadgetField"
+              };
+              result.data.rows[i].value["listbox_uid:list"] = {
+                key: "listbox_uid:list",
+                value: 2713
+              };
+            }
+          }
+          return result;
+        });
+    })
+
+    /////////////////////////////////////////////////////////////////
+    // declared methods
+    /////////////////////////////////////////////////////////////////
+
+    .declareMethod("triggerSubmit", function () {
+      var argument_list = arguments;
+      return this.getDeclaredGadget('form_list')
+        .push(function (gadget) {
+          return gadget.triggerSubmit.apply(gadget, argument_list);
+        });
+    })
+    .declareMethod("render", function (options) {
+      return this.changeState({
+        options: options,
+        latest_reload_time: new Date().getTime()
+      });
+    })
+    .onStateChange(function () {
+      var gadget = this,
+        lines_limit;
+      return new RSVP.Queue()
+        .push(function () {
+          return gadget.getSetting("listbox_lines_limit", 100);
+        })
+        .push(function (listbox_lines_limit) {
+          lines_limit = listbox_lines_limit;
+          return gadget.getDeclaredGadget('form_list');
+        })
+        .push(function (form_list) {
+          var column_list = [
+            ['title', 'Hosting Subscription'],
+            ['amount', 'Instance Amount'],
+            ['date', 'Status Date'],
+            ['synced', 'Synced?'],
+            ['status', 'Status']
+          ];
+          return form_list.render({
+            erp5_document: {
+              "_embedded": {"_view": {
+                "listbox": {
+                  "column_list": column_list,
+                  "show_anchor": 0,
+                  "default_params": {},
+                  "editable": 0,
+                  "editable_column_list": [],
+                  "key": "hosting_subscription_listbox",
+                  "lines": lines_limit,
+                  "list_method": "portal_catalog",
+                  "query": "urn:jio:allDocs?query=%28portal_type%3A%22" +
+                    "opml" + "%22%29AND%28active%3A%22" +
+                    "true" + "%22%29",
+                  "portal_type": [],
+                  "search_column_list": [['title', 'Hosting Subscription']],
+                  "sort_column_list": [['title', 'Hosting Subscription']],
+                  "sort": [["title", "ascending"]],
+                  "title": "Hosting Subscriptions",
+                  "command": "index",
+                  "type": "ListBox"
+                }
+              }},
+              "_links": {
+                "type": {
+                  // form_list display portal_type in header
+                  name: ""
+                }
+              }
+            },
+            form_definition: {
+              group_list: [[
+                "bottom",
+                [["listbox"]]
+              ]]
+            }
+          });
+        })
+        .push(function (result) {
+          return gadget.updateHeader({
+            page_title: "Hosting Subscriptions Status",
+            filter_action: true
+          });
+        });
+    })
+
+    .onLoop(function () {
+      var gadget = this;
+
+      return gadget.getSetting('latest_sync_time')
+        .push(function (latest_sync_time) {
+          if (latest_sync_time > gadget.state.latest_reload_time) {
+            return gadget.changeState({latest_reload_time: new Date().getTime()});
+          }
+        });
+    }, 30000);
+
+}(window, rJS, RSVP));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_list_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_list_js.xml
similarity index 96%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_list_js.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_list_js.xml
index d97a956e819004e23cd1797cf64b9a5740b35b5f..a261a9e887151b32855fb207f3aac88b28651b75 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_list_js.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_list_js.xml
@@ -80,7 +80,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_hosting_subscription_list.js</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_hosting_subscription_list.js</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -90,7 +90,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_hosting_subscription_list_js</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_hosting_subscription_list_js</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -108,7 +108,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Monitoring Hosting Subscription list Js</string> </value>
+            <value> <string>Monitoring Hosting Subscription list JS</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -239,7 +239,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.36732.50199.26692</string> </value>
+                <value> <string>963.19077.52757.17169</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -257,7 +257,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1503333754.52</float>
+                        <float>1510052055.87</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_view_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_view_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..e452ecc271c17c044a14da748d35fa4890fcfacf
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_view_html.html
@@ -0,0 +1,39 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <title>Monitoring Hosting Subscription View</title>
+
+    <link href="gadget_officejs_monitoring_custom.css" rel="stylesheet" type="text/css"/>
+
+    <script src="rsvp.js"></script>
+    <script src="renderjs.js"></script>
+    <script src="gadget_erp5_page_ojsm_hosting_subscription_view.js"></script>
+
+  </head>
+
+  <body>
+    <br/>
+    <article class="ui-content ui-body-c">
+      <section class="ui-content-header-plain">
+        <h3 class="ui-content-title ui-body-c">
+          <span class="ui-icon ui-icon-custom ui-icon-cubes">&nbsp;</span>
+          <span class="hosting-title"></span>
+        </h3>
+      </section>
+      <section class="ui-body-c ui-content-section">
+        <p class="text-info">To change monitor password, go to <i>Monitoring Configuration</i>.</p>
+        <div class="parameters-box">
+        </div>
+      </section>
+    </article>
+    <div class="bottom">
+      <div data-gadget-url="gadget_erp5_form.html"
+          data-gadget-scope="form_list"
+          data-gadget-sandbox="public">
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_view_html.xml
similarity index 97%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_html.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_view_html.xml
index 6a68c32b1c96a486762770492f9293f229cacc8b..2d2e310fbe1604ce1c7135979fa449eae1860e44 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_html.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_view_html.xml
@@ -83,7 +83,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_hosting_subscription_view.html</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_hosting_subscription_view.html</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -93,7 +93,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_hosting_subscription_view_html</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_hosting_subscription_view_html</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -246,7 +246,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.40879.58115.22357</string> </value>
+                <value> <string>962.46060.41528.54152</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -264,7 +264,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1503583096.3</float>
+                        <float>1507901514.08</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_view_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_view_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..9bdf4d3b4dd6749a6759bdc971fb2f94106ea7b8
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_view_js.js
@@ -0,0 +1,309 @@
+/*global window, rJS, document, Handlebars, Rusha */
+/*jslint nomen: true, indent: 2, maxerr: 3*/
+(function (window, rJS, document, Handlebars, Rusha) {
+  "use strict";
+
+  var gadget_klass = rJS(window),
+    templater = gadget_klass.__template_element,
+    rusha = new Rusha();
+
+  function generateHash(str) {
+    return rusha.digestFromString(str);
+  }
+
+  gadget_klass
+    .setState({
+      ouline_list: "",
+      opml: ""
+    })
+    .ready(function (g) {
+      g.props = {};
+      g.props.parameter_form_list = [];
+    })
+    .declareAcquiredMethod("redirect", "redirect")
+    .declareAcquiredMethod("getSetting", "getSetting")
+    .declareAcquiredMethod("setSetting", "setSetting")
+    .declareAcquiredMethod("updateHeader", "updateHeader")
+    .declareAcquiredMethod('jio_allDocs', 'jio_allDocs')
+    .declareAcquiredMethod('jio_get', 'jio_get')
+    .declareAcquiredMethod("getUrlFor", "getUrlFor")
+    .declareAcquiredMethod("notifySubmitting", "notifySubmitting")
+    .declareAcquiredMethod("notifySubmitted", 'notifySubmitted')
+    //.declareAcquiredMethod("notifyError", 'notifyError')
+
+    .allowPublicAcquisition("jio_allDocs", function (param_list) {
+      var gadget = this;
+      param_list[0].select_list.push('_links');
+      param_list[0].select_list.push('parameters');
+      return gadget.jio_allDocs(param_list[0])
+        .push(function (result) {
+          return gadget.changeState({instance_dict: result});
+        })
+        .push(function () {
+          var result = gadget.state.instance_dict,
+            i, value, len = result.data.total_rows;
+          for (i = 0; i < len; i += 1) {
+            if (result.data.rows[i].value.hasOwnProperty("date")) {
+              value = new Date(result.data.rows[i].value.date);
+              result.data.rows[i].value.date = {
+                allow_empty_time: 0,
+                ampm_time_style: 0,
+                css_class: "date_field",
+                date_only: 0,
+                description: "The Date",
+                editable: 0,
+                hidden: 0,
+                hidden_day_is_last_day: 0,
+                "default": value.toUTCString(),
+                key: "date",
+                required: 0,
+                timezone_style: 0,
+                title: "Status Date",
+                type: "DateTimeField"
+              };
+              result.data.rows[i].value["listbox_uid:list"] = {
+                key: "listbox_uid:list",
+                value: 2713
+              };
+            }
+            if (result.data.rows[i].value.hasOwnProperty("status")) {
+              value = result.data.rows[i].value.status;
+              result.data.rows[i].value.status = {
+                css_class: "",
+                description: "The Status",
+                hidden: 0,
+                "default": value,
+                key: "status",
+                url: "gadget_erp5_field_status.html",
+                title: "Status",
+                type: "GadgetField"
+              };
+              result.data.rows[i].value["listbox_uid:list"] = {
+                key: "listbox_uid:list",
+                value: 2713
+              };
+            }
+          }
+          return result;
+        });
+    })
+
+    .declareMethod("render", function (options) {
+      var gadget = this;
+      return gadget.updateHeader({
+          title: 'Hosting Subscriptions View'
+        })
+        .push(function () {
+          return gadget.jio_get(options.opml_key);
+        })
+        .push(function (opml_doc) {
+          return gadget.changeState({opml: opml_doc});
+        })
+        .push(function () {
+          return gadget.jio_allDocs({
+              query: '(portal_type:"opml-outline") AND (parent_id:"' +
+                generateHash(options.opml_key) + '")'
+          });
+        })
+        .push(function (ouline_list) {
+          return gadget.changeState({ouline_list: ouline_list.data.rows});
+        });
+    })
+
+    .onEvent('submit', function () {
+      var gadget = this,
+        i,
+        promise_list = [];
+      for (i = 0; i < gadget.props.parameter_form_list.length; i += 1) {
+        promise_list.push(gadget.props.parameter_form_list[i].getLiveParameters());
+      }
+      return gadget.notifySubmitting()
+        .push(function () {
+          return RSVP.all(promise_list);
+        })
+        .push(function (result_list) {
+          var i,
+            ok_to_save = true,
+            promise_list = [];
+          for (i = 0; i < result_list.length; i += 1) {
+            if (result_list[i].status !== 'OK') {
+              ok_to_save = false;
+              break;
+            }
+            promise_list.push(gadget.props.parameter_form_list[i].saveContent());
+          }
+          if (ok_to_save) {
+            return RSVP.all(promise_list);
+          }
+          // One of storage failed, cancel save to be consistent
+          return result_list;
+        })
+        .push(function (result_list) {
+          var msg_list = [],
+            i;
+          for (i = 0; i < result_list.length; i += 1) {
+            if (result_list[i].status !== "OK") {
+              msg_list.push(result_list[i].stage + " from " + result_list[i].url);
+            }
+          }
+          if (msg_list.length > 0) {
+            return RSVP.all([
+              gadget.notifySubmitted('Error while ' + msg_list.join('; '))
+            ]);
+          }
+          return RSVP.all([
+            gadget.notifySubmitted('Parameters Updated')
+          ]);
+        });
+    })
+
+    .declareMethod("triggerSubmit", function () {
+      return this.element.querySelector('button[type="submit"]').click();
+    })
+
+    .onStateChange(function (modification_dict) {
+      var gadget = this;
+      if (!modification_dict.hasOwnProperty('ouline_list') &&
+          !modification_dict.hasOwnProperty('instance_dict')) {
+        return;
+      }
+      if (modification_dict.hasOwnProperty('instance_dict')) {
+        // render parameter form
+        
+        return new RSVP.Queue()
+          .push(function () {
+            var promise_list = [],
+              i,
+              element = gadget.element.querySelector('.parameters-box'),
+              gadget_element;
+
+            //cleanup
+            while (element.hasChildNodes()) {
+              element.removeChild(element.lastChild);
+            }
+
+            for (i = 0; i < gadget.state.instance_dict.data.total_rows; i += 1) {
+              gadget_element = document.createElement("div");
+              element.appendChild(gadget_element);
+              promise_list.push(
+                gadget.declareGadget("gadget_officejs_monitoring_parameter_view.html",
+                  {
+                    element: gadget_element,
+                    scope: 'p_' + gadget.state.instance_dict.data.rows[i].id,
+                    sandbox: "public"
+                  }
+                )
+              );
+            }
+            return RSVP.all(promise_list);
+          })
+          .push(function (parameter_gadget_list) {
+            var i,
+              promise_list = [];
+            for (i = 0; i < parameter_gadget_list.length; i += 1) {
+              gadget.props.parameter_form_list = parameter_gadget_list;
+              promise_list.push(
+                parameter_gadget_list[i].render({
+                  url: gadget.state.instance_dict.data.rows[i].value._links.private_url.href
+                    .replace('jio_private', 'private') + '/config',
+                  basic_login: gadget.state.opml.basic_login,
+                  title: "Parameters " + gadget.state.instance_dict.data.rows[i].value.title,
+                  parameters: gadget.state.instance_dict.data.rows[i].value.parameters
+                })
+              );
+            }
+            return RSVP.all(promise_list);
+          });
+      }
+      return new RSVP.Queue()
+        .push(function () {
+          return gadget.getDeclaredGadget('form_list');
+        })
+        .push(function (form_list) {
+          var column_list = [
+            ['title', 'Instance Title'],
+            ['date', 'Status Date'],
+            ['status', 'Status']
+          ],
+          j,
+          key_list = [],
+          instance_query = '(portal_type:"global")';
+
+          if (gadget.state.ouline_list.length === 0) {
+            return;
+          }
+          for (j = 0; j < gadget.state.ouline_list.length; j += 1) {
+            key_list.push('(parent_id:"' + gadget.state.ouline_list[j].id + '")');
+          }
+          instance_query += '(' + key_list.join('OR') + ')';
+          return form_list.render({
+            erp5_document: {
+              "_embedded": {"_view": {
+                "listbox": {
+                  "column_list": column_list,
+                  "show_anchor": 0,
+                  "default_params": {},
+                  "editable": 0,
+                  "editable_column_list": [],
+                  "key": "software_instance_listbox",
+                  "lines": 20,
+                  "list_method": "portal_catalog",
+                  "query": "urn:jio:allDocs?query=" + escape(instance_query),
+                  "portal_type": [],
+                  "search_column_list": [],
+                  "sort_column_list": column_list,
+                  "sort": [["title", "ascending"]],
+                  "title": "Software Instances",
+                  "hide_sort": true,
+                  "type": "ListBox"
+                }
+              }},
+              "_links": {
+                "type": {
+                  // form_list display portal_type in header
+                  name: ""
+                }
+              }
+            },
+            form_definition: {
+              group_list: [[
+                "bottom",
+                [["listbox"]]
+              ]]
+            }
+          });
+        })
+        .push(function () {
+          return RSVP.all([
+            gadget.getUrlFor({command: 'history_previous'}),
+            gadget.getUrlFor({command: 'store_and_change', options: {
+              page: "ojsm_jump",
+              jio_key: gadget.state.opml.url,
+              title: gadget.state.opml.title,
+              view_title: "Related OPML",
+              search_page: "ojsm_status_list"
+            }})
+          ]);
+        })
+        .push(function (url_list) {
+          if (gadget.state.ouline_list.length === 0) {
+            gadget.element.querySelector('.hosting-title').textContent =
+              gadget.state.opml.title + " -  Not synchronized!";
+            return gadget.updateHeader({
+              page_title: "Hosting Subscription: " + gadget.state.opml.title,
+              selection_url: url_list[0],
+              jump_url: url_list[1]
+            });
+          }
+          gadget.element.querySelector('.hosting-title').textContent =
+            gadget.state.opml.title;
+          return gadget.updateHeader({
+            page_title: "Hosting Subscription: " + gadget.state.opml.title,
+            selection_url: url_list[0],
+            jump_url: url_list[1],
+            save_action: true
+          });
+        });
+    });
+
+}(window, rJS, document, Handlebars, Rusha));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_view_js.xml
similarity index 97%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_js.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_view_js.xml
index ab87e70ecc47fa0ec54274f530202976f4390884..a8cf961744160c33f6c25eb7311b0e65532a17ff 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_js.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_hosting_subscription_view_js.xml
@@ -83,7 +83,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_hosting_subscription_view.js</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_hosting_subscription_view.js</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -93,7 +93,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_hosting_subscription_view_js</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_hosting_subscription_view_js</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -242,7 +242,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.40930.22839.30634</string> </value>
+                <value> <string>963.1690.33865.32955</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -260,7 +260,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1503585188.82</float>
+                        <float>1509095405.67</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_import_export_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_import_export_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..41f967855049a3e3b0f9ce5c74525eaac3e68f47
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_import_export_html.html
@@ -0,0 +1,68 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <title>OfficeJS Monitor Import Export</title>
+    <link href="gadget_officejs_monitoring_custom.css" rel="stylesheet" type="text/css"/>
+
+    <script src="rsvp.js"></script>
+    <script src="renderjs.js"></script>
+    <script src="handlebars.js"></script>
+    <script src="jsen.min.js" type="text/javascript"></script>
+    <script src="gadget_erp5_page_ojsm_import_export.js"></script>
+    <script id="template-message-error" type="text/x-handlebars-template">
+      <p><span class='ui-text-{{status}}'>{{message}}</span></p>
+    </script>
+    <script id="template-section-title" type="text/x-handlebars-template">
+      <span class="ui-icon ui-icon-custom ui-icon-{{icon}}">&nbsp;</span>
+      {{title}}
+    </script>
+    <script id="storage-selection" type="text/x-handlebars-template">
+    <br>
+    <article class="ui-content ui-body-c">
+      <section class="ui-content-header-plain">
+        <h3 class="ui-content-title ui-body-c">
+          <span class="ui-icon ui-icon-custom ui-icon-database">&nbsp;</span>
+          Load Settings from remote Storage
+        </h3>
+      </section>
+      <section class="ui-body-c ui-content-section">
+        <div class="storage-selection">
+          <ul data-role="listview" data-theme="c" class="document-listview ui-listview-inset ui-corner-all">
+            {{#each documentlist}}
+              <li><a class="ui-body-inherit" href="{{link}}">{{title}}</a></li>
+            {{/each}}
+          </ul>
+        </div>
+      </section>
+    </article>
+  </script>
+  </head>
+
+  <body>
+    <article class="ui-content ui-body-c document-access">
+      <section class="ui-content-header-plain">
+        <h3 class="ui-content-title ui-body-c">
+          
+        </h3>
+      </section>
+      <section class="ui-body-c ui-content-section">
+        <form class="save_form ui-body-c" novalidate>
+          <button type="submit" class="ui-btn ui-btn-b ui-btn-inline
+            ui-icon-edit ui-btn-icon-right ui-screen-hidden"></button>
+          <div class="ui-message-alert"></div>
+          <div data-gadget-url="gadget_erp5_form.html"
+                  data-gadget-scope="form_view"
+                  data-gadget-sandbox="public">
+          </div>
+        </form>
+      </section>
+    </article>
+    <br/>
+    <div class="storage-list">
+    </div>
+    <div data-gadget-url="gadget_erp5_jio.html" data-gadget-scope="erp5_gadget" data-gadget-sandbox="public"></div>
+  </body>
+</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_import_export_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_import_export_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..dbe9df9d9a1fb57dd1dfaceb5a7b8a093a2ec18b
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_import_export_html.xml
@@ -0,0 +1,332 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Page" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_import_export.html</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_import_export_html</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value> <string>en</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Page</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Gadget OJS Monitor Import Export</string> </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506442401.49</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>962.55732.38278.12270</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1509023688.31</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506442331.2</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_import_export_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_import_export_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..f5abba0e0690c3bd1db4d94f5808a388ea720e5f
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_import_export_js.js
@@ -0,0 +1,464 @@
+/*global window, rJS, RSVP, jsen, Rusha, Handlebars, atob */
+/*jslint nomen: true, indent: 2, maxerr: 3*/
+(function (window, rJS, RSVP, jsen, Rusha, Handlebars, atob) {
+  "use strict";
+
+  var gadget_klass = rJS(window),
+    templater = gadget_klass.__template_element,
+    notify_msg_template = Handlebars.compile(
+      templater.getElementById("template-message-error").innerHTML
+    ),
+    storage_selection = Handlebars.compile(
+      templater.getElementById("storage-selection").innerHTML
+    ),
+    header_title = Handlebars.compile(
+      templater.getElementById("template-section-title").innerHTML
+    ); 
+
+  function getMonitorSetting(gadget) {
+    return gadget.jio_allDocs({
+      select_list: ["basic_login", "url", "title", "active"],
+      query: '(portal_type:"opml")'
+    })
+    .push(function (opml_result) {
+      var i,
+        opml_dict = {opml_description_list: []};
+      for (i = 0; i < opml_result.data.total_rows; i+= 1) {
+        opml_dict.opml_description_list.push(opml_result.data.rows[i].value);
+      }
+      return opml_dict;
+    });
+  }
+
+  function validateJsonConfiguration(json_value, uses_old_schema) {
+    var validate,
+      json_schema = {
+        "$schema": "http://json-schema.org/draft-04/schema#",
+        "type" : "object",
+        "properties": {
+          "opml_description_list": {
+            "description": "list of monitor opml URL",
+            "type": "array",
+            "required": ['basic_login', "url", "title"],
+            "items": {
+              "type": "object",
+              "properties": {
+                "url": {
+                  "description": "OPML URL",
+                  "type": "string"
+                },
+                "title": {
+                  "description": "OPML title",
+                  "type": "string"
+                },
+                "basic_login": {
+                  "description": "credentials hash string",
+                  "type": "string"
+                },
+                "active": {
+                  "description": "OPML active state",
+                  "type": "boolean",
+                  "default": true
+                }
+              },
+              "additionalProperties": false
+            }
+          }
+        },
+        "additionalProperties": false
+      },
+      old_json_schema = {
+        "$schema": "http://json-schema.org/draft-04/schema#",
+        "type" : "object",
+        "properties": {
+          "opml_description": {
+            "description": "list of monitor opml URL",
+            "type": "array",
+            "items": {
+              "type": "object",
+              "properties": {
+                "href": {
+                  "description": "OPML URL",
+                  "type": "string"
+                },
+                "title": {
+                  "description": "OPML title",
+                  "type": "string"
+                }
+              },
+              "additionalProperties": false
+            }
+          },
+          "monitor_url": {
+            "description": "list of registered monitor instance URL",
+            "type": "array",
+            "required": ['hash', "url", "parent_url"],
+            "items": {
+              "type": "object",
+              "properties": {
+                "hash": {
+                  "description": "hash string",
+                  "type": "string"
+                },
+                "login": {
+                  "description": "login",
+                  "type": "string",
+                  "default": ""
+                },
+                "url": {
+                  "description": "url of monitor instance",
+                  "type": "string"
+                },
+                "parent_url": {
+                  "description": "URL to parent instance",
+                  "type": "string"
+                }
+              },
+              "additionalProperties": false
+            }
+          }
+        },
+  
+        "additionalProperties": false
+      };
+
+    return new RSVP.Queue()
+      .push(function () {
+        if (uses_old_schema !== undefined && uses_old_schema === true) {
+          validate = jsen(old_json_schema);
+        } else {
+          validate = jsen(json_schema);
+        }
+        return validate(json_value);
+      });
+  }
+
+  function importMonitorConfiguration(gadget, config) {
+    var is_old_schema = false;
+    gadget.state.message.textContent = "";
+    return new RSVP.Queue()
+      .push(function (form_doc) {
+        var configuration_dict;
+        if (typeof config === 'string') {
+          try {
+            configuration_dict = JSON.parse(config);
+          } catch (e) {
+            gadget.state.message
+              .innerHTML = notify_msg_template({
+                status: 'error',
+                message: 'Error: Invalid json content!'
+              });
+            return;
+          }
+        } else {
+          configuration_dict = config;
+        }
+        return validateJsonConfiguration(configuration_dict)
+          .push(function (validate_result) {
+            if (!validate_result) {
+              // try validation on old setting format
+              is_old_schema = true;
+              return validateJsonConfiguration(configuration_dict, true);
+            }
+            return validate_result;
+          })
+          .push(function (validate_result) {
+            var settings_queue = new RSVP.Queue(),
+              not_imported = "",
+              item,
+              cred_list,
+              i,
+              j;
+
+            function pushSetting(id, config) {
+              settings_queue
+                .push(function () {
+                  return gadget.jio_put(id, config);
+                })
+                .push(undefined, function (error) {
+                  throw error;
+                });
+            }
+            if (validate_result) {
+              if (is_old_schema) {
+                //return settings_queue;
+                for (i = 0; i < configuration_dict.opml_description.length; i += 1) {
+                  item = {
+                    title: configuration_dict.opml_description[i].title,
+                    url: configuration_dict.opml_description[i].href,
+                    active: true,
+                    portal_type: "opml"
+                  };
+                  for (j = 0; j < configuration_dict.monitor_url.length; j += 1) {
+                    if (configuration_dict.monitor_url[j].parent_url ===
+                        configuration_dict.opml_description[i].href) {
+                      item.basic_login = configuration_dict.monitor_url[j].hash;
+                      cred_list = atob(item.basic_login).split(':');
+                      item.username = cred_list[0];
+                      item.password = cred_list[1];
+                      // XXX - all monitors password in opml should be the same
+                      break;
+                    }
+                  }
+                  if (item.basic_login !== undefined) {
+                    pushSetting(item.url, item);
+                  } else {
+                    not_imported += "OPML [" + configuration_dict.opml_description[i].title +
+                      "] was not imported, bad configuration...<br/>";
+                  }
+                }
+              } else {
+                for (i = 0; i < configuration_dict.opml_description_list.length; i += 1) {
+                  item = configuration_dict.opml_description_list[i];
+                  item.portal_type = "opml";
+                  cred_list = atob(item.basic_login).split(':');
+                  item.username = cred_list[0];
+                  item.password = cred_list[1];
+                  pushSetting(item.url, item);
+                }
+              }
+              return settings_queue
+                .push(function () {
+                  if (not_imported !== "") {
+                    gadget.state.message
+                      .innerHTML = notify_msg_template({
+                        status: 'error',
+                        message: not_imported
+                      });
+                    return false;
+                  }
+                  return true;
+                });
+            } else {
+              gadget.state.message
+                .innerHTML = notify_msg_template({
+                  status: 'error',
+                  message: 'Error: Content is not a valid Monitoring Json configuration!'
+                });
+              return false;
+            }
+          })
+          .push(function (status) {
+            if (status) {
+              return gadget.redirect({
+                "command": "display",
+                "options": {"page": "settings_configurator"}
+              });
+            }
+          });
+      });
+  }
+
+  gadget_klass
+    /////////////////////////////
+    // state
+    /////////////////////////////
+    .setState({
+      message: "",
+      config: "",
+      is_export: false,
+      options: "",
+      erp5_gadget: ""
+    })
+    .ready(function (g) {
+      return g.getDeclaredGadget('erp5_gadget')
+        .push(function (erp5_gadget) {
+          return g.changeState({erp5_gadget: erp5_gadget});
+        });
+    })
+    /////////////////////////////////////////////////////////////////
+    // Acquired methods
+    /////////////////////////////////////////////////////////////////
+    .declareAcquiredMethod("updateHeader", "updateHeader")
+    .declareAcquiredMethod("getSetting", "getSetting")
+    .declareAcquiredMethod("setSetting", "setSetting")
+    .declareAcquiredMethod("getUrlFor", "getUrlFor")
+    .declareAcquiredMethod("redirect", "redirect")
+    .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
+    .declareAcquiredMethod("jio_put", "jio_put")
+
+    /////////////////////////////////////////////////////////////////
+    // declared methods
+    /////////////////////////////////////////////////////////////////
+    .onEvent('submit', function () {
+      var gadget = this;
+      return gadget.getDeclaredGadget('form_view')
+        .push(function (form_gadget) {
+          return form_gadget.getContent();
+        })
+        .push(function (form_doc) {
+          return importMonitorConfiguration(gadget, form_doc.config);
+        });
+    })
+
+    .declareMethod("triggerSubmit", function () {
+      return this.element.querySelector('button[type="submit"]').click();
+    })
+
+    .declareMethod("render", function (options) {
+      var gadget = this,
+        is_exporter = options.exporter === "true",
+        message_element = gadget.element.querySelector('.ui-message-alert');
+      message_element.textContent = "";
+      if (options.url && !options.url.endsWith('/')) {
+        options.url += '/';
+      }
+      if (is_exporter) {
+        return new RSVP.Queue()
+          .push(function () {
+            return getMonitorSetting(gadget);
+          })
+          .push(function (configuration_dict) {
+            return gadget.changeState({
+              options: options,
+              is_exporter: is_exporter,
+              config: JSON.stringify(configuration_dict),
+              message: message_element,
+              sync: undefined
+            });
+          });
+      }
+
+      return gadget.changeState({
+        options: options,
+        is_exporter: is_exporter,
+        config: "",
+        message: message_element,
+        sync: options.auto_sync,
+        storage_url: options.url
+      });
+    })
+    .onStateChange(function () {
+      var gadget = this;
+      if (gadget.state.options === "") {
+        return;
+      }
+      return RSVP.Queue()
+        .push(function () {
+          var title_content;
+
+          if (gadget.state.is_exporter) {
+            title_content = header_title({
+              title: "Export Monitor Configurations",
+              icon: "download"
+            });
+          } else {
+            title_content = header_title({
+              title: "Import Monitor Configurations",
+              icon: "upload"
+            });
+          }
+          gadget.element.querySelector(".document-access h3").innerHTML = title_content;
+          return gadget.getDeclaredGadget('form_view');
+        })
+        .push(function (form_view) {
+          return form_view.render({
+            erp5_document: {
+              "_embedded": {"_view": {
+                "my_config": {
+                  "description": "Monitoring Settings Content (json format)",
+                  "title": "Settings Content (JSON)",
+                  "default": gadget.state.config || "",
+                  "css_class": "",
+                  "required": 1,
+                  "editable": 1,
+                  "key": "config",
+                  "hidden": 0,
+                  "type": "TextAreaField"
+                }
+              }},
+              "_links": {
+                "type": {
+                  // form_list display portal_type in header
+                  name: ""
+                }
+              }
+            },
+            form_definition: {
+              group_list: [[
+                "left",
+                [["my_config"]]
+              ]]
+            }
+          });
+        })
+        .push(function () {
+          var new_options = JSON.parse(JSON.stringify(gadget.state.options));
+          new_options.exporter = !gadget.state.is_exporter;
+          new_options.auto_sync = undefined;
+          new_options.url = undefined;
+          return RSVP.all([
+            gadget.getUrlFor({command: "display", options: new_options}),
+            gadget.state.is_exporter
+          ]);
+        })
+        .push(function (result) {
+          var parameters = {
+              page_title: "Monitoring Import-Export",
+              export_url: result[1] ? undefined : result[0],
+              import_url: result[1] ? result[0] : undefined
+            };
+          if (!result[1]) {
+            parameters.submit_action = true;
+            parameters.panel_action = false;
+          }
+          return gadget.updateHeader(parameters);
+        })
+        .push(function () {
+          var div = gadget.element.querySelector('.storage-list');
+          if (gadget.state.is_exporter) {
+            while (div.firstChild) {
+              div.removeChild(div.firstChild);
+            }
+            return;
+          }
+          return gadget.getUrlFor({command: "display", options: {page: "ojsm_erp5_configurator", type: "erp5"}})
+            .push(function (url) {
+              gadget.element.querySelector('.storage-list').innerHTML = storage_selection({
+                documentlist: [{
+                  "link": url,
+                  "title": "SlapOS Master ERP5"
+                }]
+              });
+            });
+        })
+        .push(function () {
+          if (gadget.state.sync === "erp5" && gadget.state.storage_url) {
+            // start import from erp5 now
+            return gadget.setSetting("hateoas_url", gadget.state.storage_url)
+              .push(function () {
+                return gadget.state.erp5_gadget.createJio();
+              })
+              .push(function () {
+                // force login if not logged yet
+                return gadget.state.erp5_gadget.get("document2");
+              })
+              .push(undefined, function () {
+                return false;
+              })
+              .push(function () {
+                // load monitoring information.
+                return gadget.state.erp5_gadget.getAttachment(
+                  'hosting_subscription_module',
+                  gadget.state.storage_url + 'hosting_subscription_module'
+                    + "/Base_getMonitoringInstanceParameterDictAsJson"
+                );
+              })
+              .push(undefined, function () {
+                gadget.state.message
+                  .innerHTML = notify_msg_template({
+                    status: 'error',
+                    message: 'Error: Failed to get Monitor Configuration from URL: ' +
+                      gadget.state.storage_url
+                  });
+                return undefined;
+              })
+              .push(function (result) {
+                if (result !== undefined) {
+                  return importMonitorConfiguration(gadget, result);
+                }
+              });
+          }
+        });
+    });
+}(window, rJS, RSVP, jsen, Rusha, Handlebars, atob));
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_import_export_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_import_export_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..35a4e592d8e7b38f15e6e5963eb164837a6beb03
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_import_export_js.xml
@@ -0,0 +1,340 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Script" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/javascript</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_import_export.js</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_import_export_js</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Script</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>OfficeJS Monitoring Import Export JS</string> </value>
+        </item>
+        <item>
+            <key> <string>url_string</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506444427.15</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>963.1954.36775.16384</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1509024244.66</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506444397.32</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_jump_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_jump_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..fb7953375cdfd15cdfd5c8236ef70503489853df
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_jump_html.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+    <meta name="viewport" content="width=device-width, user-scalable=no" />
+    <title>ERP5 Page Monitoring Jump</title>
+
+    <!-- renderjs -->
+    <script src="rsvp.js" type="text/javascript"></script>
+    <script src="renderjs.js" type="text/javascript"></script>
+    <script src="handlebars.js" type="text/javascript"></script>
+
+    <script src="gadget_erp5_page_ojsm_jump.js" type="text/javascript"></script>
+
+    <script id="table-template" type="text/x-handlebars-template">
+      <section class="ui-content-header-plain">
+        <h3 class="ui-content-title ui-body-c" data-i18n="[last]{{definition_i18n}}">
+          <span class="ui-icon ui-icon-custom ui-icon-plane">&nbsp;</span>
+          {{definition_title}}
+        </h3>
+      </section>
+
+      <ul data-role="listview" data-theme="c" data-inset="true" class="document-listview">
+        {{#each documentlist}}
+          <li><a data-i18n="{{i18n}}" class="ui-body-inherit" href="{{link}}">{{title}}</a></li>
+        {{/each}}
+      </ul>
+    </script>
+
+  </head>
+  <body>
+  </body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_jump_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_jump_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..24a6ffdf1d7f59273dd5cb55e6725af12f2dc5ef
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_jump_html.xml
@@ -0,0 +1,332 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Page" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_jump.html</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_jump_html</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value> <string>en</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Page</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Gadget Officejs Monitoring Jump</string> </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508939183.78</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>963.539.38470.23978</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508940730.13</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508938860.04</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_jump_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_jump_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..dc12c1e2e5785b9fb7b8a62cd0d6522241bb18f1
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_jump_js.js
@@ -0,0 +1,77 @@
+/*global window, rJS, RSVP, Handlebars */
+/*jslint nomen: true, indent: 2, maxerr: 3 */
+(function (window, rJS, RSVP, Handlebars) {
+  "use strict";
+
+  var gadget_klass = rJS(window),
+    source = gadget_klass.__template_element
+                         .getElementById("table-template")
+                         .innerHTML,
+    table_template = Handlebars.compile(source);
+
+  gadget_klass
+
+    /////////////////////////////////////////////////////////////////
+    // Acquired methods
+    /////////////////////////////////////////////////////////////////
+    .declareAcquiredMethod("getSetting", "getSetting")
+    .declareAcquiredMethod("getUrlFor", "getUrlFor")
+    .declareAcquiredMethod("translateHtml", "translateHtml")
+    .declareAcquiredMethod("updateHeader", "updateHeader")
+
+    /////////////////////////////////////////////////////////////////
+    // declared methods
+    /////////////////////////////////////////////////////////////////
+    .declareMethod("render", function (options) {
+      var gadget = this,
+        promise_list = [];
+
+      options.page = options.jump_page;
+      promise_list.push(gadget.getUrlFor({command: "display", options: options}));
+      if (options.title !== undefined &&
+          options.search_page !== undefined) {
+        promise_list.push(gadget.getUrlFor({command: "change", options: {
+          page: options.search_page,
+          extended_search: options.title
+        }}));
+      }
+      return new RSVP.Queue()
+        .push(function () {
+          return RSVP.all(promise_list);
+        })
+        .push(function (result_list) {
+          var i,
+            tab_list = [];
+
+          tab_list.push({
+            title: options.view_title || options.jio_key,
+            link: result_list[0],
+            i18n: options.view_title || options.jio_key
+          });
+          if (result_list.length > 1) {
+            tab_list.push({
+              title: options.title + " Promises",
+              link: result_list[1],
+              i18n: options.title + " Promises"
+            });
+          }
+          return RSVP.all([
+            gadget.translateHtml(table_template({
+              definition_title: "Jumps",
+              documentlist: tab_list,
+              definition_i18n: "Jumps"
+            })),
+            gadget.getUrlFor({command: 'history_previous'})
+          ]);
+        })
+        .push(function (last_result_list) {
+          gadget.element.innerHTML = last_result_list[0];
+
+          return gadget.updateHeader({
+            back_url: last_result_list[1],
+            page_title: options.title + ": Jump to URL"
+          });
+        });
+    });
+
+}(window, rJS, RSVP, Handlebars));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_jump_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_jump_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fe191b3c0cb77e24bec6d0023928e1cad0438740
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_jump_js.xml
@@ -0,0 +1,328 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Script" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_jump.js</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_jump_js</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value> <string>en</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Script</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Gadget ERP5 Officejs Monitoring Jump JS</string> </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508939174.14</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>963.1691.38549.3618</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1509095381.18</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508938943.66</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_add_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_add_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..534fc98428f5ed3faef95a38e3a798c82a1e6144
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_add_html.html
@@ -0,0 +1,32 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <title>OfficeJS Monitor Add OPML</title>
+    <link href="gadget_officejs_monitoring_custom.css" rel="stylesheet" type="text/css"/>
+
+    <script src="rsvp.js"></script>
+    <script src="renderjs.js"></script>
+    <script src="handlebars.js"></script>
+    <script src="gadget_officejs_monitoring_global.js"></script>
+    <script src="gadget_erp5_page_ojsm_opml_add.js"></script>
+    <script id="template-message-error" type="text/x-handlebars-template">
+      <p><span class='ui-text-{{status}}'>{{message}}</span></p>
+    </script>
+  </head>
+
+  <body>
+    <div data-gadget-url="gadget_officejs_monitoring_jio.html" data-gadget-scope="jio_gadget" data-gadget-sandbox="public"></div>
+    <form class="save_form ui-body-c" novalidate>
+      <button type="submit" class="ui-btn ui-btn-b ui-btn-inline
+        ui-icon-edit ui-btn-icon-right ui-screen-hidden"></button>
+      <div class="ui-message-alert"></div>
+      <div data-gadget-url="gadget_erp5_form.html"
+              data-gadget-scope="form_view"
+              data-gadget-sandbox="public">
+      </div>
+    </form>
+  </body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_view_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_add_html.xml
similarity index 94%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_view_html.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_add_html.xml
index f41fb5ac5d310882c40b6911893c2144cd4ea85b..bb86598dac9135429fb5e261604003f71ca37912 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_view_html.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_add_html.xml
@@ -83,7 +83,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_software_instance_view.html</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_opml_add.html</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -93,7 +93,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_software_instance_view_html</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_opml_add_html</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -113,14 +113,18 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Monitoring Software Instance View</string> </value>
+            <value> <string>OfficeJS Add New OPML</string> </value>
         </item>
         <item>
-            <key> <string>version</string> </key>
+            <key> <string>url_string</string> </key>
             <value>
               <none/>
             </value>
         </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
         <item>
             <key> <string>workflow_history</string> </key>
             <value>
@@ -201,7 +205,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1464251887.79</float>
+                        <float>1506071769.76</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -246,7 +250,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.59699.24642.30873</string> </value>
+                <value> <string>963.1898.2167.63078</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -264,7 +268,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1504711023.3</float>
+                        <float>1509020790.01</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -321,7 +325,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1464250270.25</float>
+                        <float>1506071722.5</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_add_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_add_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..566bae1a2121564c8e12adca3da31bd37013b3cf
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_add_js.js
@@ -0,0 +1,239 @@
+/*global window, rJS, RSVP, Handlebars, OPMLManage */
+/*jslint nomen: true, indent: 2, maxerr: 3 */
+(function (window, rJS, RSVP, Handlebars, OPMLManage) {
+  "use strict";
+
+  var gadget_klass = rJS(window),
+    templater = gadget_klass.__template_element,
+    notify_msg_template = Handlebars.compile(
+      templater.getElementById("template-message-error").innerHTML
+    ),
+    opml_global = OPMLManage;
+
+  gadget_klass
+    /////////////////////////////
+    // state
+    /////////////////////////////
+    .setState({
+      message: "",
+      redirect: true
+    })
+    /////////////////////////////
+    // ready
+    /////////////////////////////
+    .ready(function (gadget) {
+      return opml_global.init(gadget, notify_msg_template);
+    })
+    /////////////////////////////////////////////////////////////////
+    // Acquired methods
+    /////////////////////////////////////////////////////////////////
+    .declareAcquiredMethod("updateHeader", "updateHeader")
+    .declareAcquiredMethod("getSetting", "getSetting")
+    .declareAcquiredMethod("getUrlFor", "getUrlFor")
+    .declareAcquiredMethod("redirect", "redirect")
+    .declareAcquiredMethod("jio_put", "jio_put")
+    .declareAcquiredMethod("notifySubmitting", "notifySubmitting")
+    .declareAcquiredMethod("notifySubmitted", 'notifySubmitted')
+
+    /////////////////////////////////////////////////////////////////
+    // declared methods
+    /////////////////////////////////////////////////////////////////
+    .onEvent('submit', function () {
+      var gadget = this,
+        doc;
+      return new RSVP.Queue()
+        .push(function () {
+          return  gadget.getDeclaredGadget('form_view');
+        })
+        .push(function (form_gadget) {
+          return form_gadget.getContent();
+        })
+        .push(function (form_doc) {
+          doc = form_doc;
+          if (!opml_global.validateHttpUrl(form_doc.url)) {
+            gadget.state.message
+              .innerHTML = notify_msg_template({
+                status: 'error',
+                message: "'" + form_doc.url + "' is not a valid OPML URL"
+              });
+            return false;
+          }
+          if (!form_doc.username || !form_doc.password) {
+            gadget.state.message
+              .innerHTML = notify_msg_template({
+                status: 'error',
+                message: 'Username and password fields are required!'
+              });
+            return false;
+          }
+          if (form_doc.new_password &&
+              form_doc.new_password !== form_doc.confirm_new_password) {
+            gadget.state.message
+              .innerHTML = notify_msg_template({
+                status: 'error',
+                message: 'The new password and it confirmation are differents!'
+              });
+            return false;
+          }
+          return true;
+        })
+        .push(function (state) {
+          if (state) {
+            return gadget.notifySubmitting()
+              .push(function () {
+                doc.title = "";
+                return opml_global.saveOPML(doc, true);
+              })
+              .push(function (status) {
+                var msg = 'Document Updated';
+                if (!status) {
+                  msg = 'Document update failed';
+                }
+                return RSVP.all([
+                  gadget.notifySubmitted(msg),
+                  status
+                ]);
+              })
+              .push(function (result_list) {
+                if (result_list[1] && gadget.state.redirect) {
+                  return gadget.redirect({
+                    "command": "change",
+                    "options": {"page": "ojsm_status_list"}
+                  });
+                }
+              });
+          }
+        });
+    })
+
+    .declareMethod("triggerSubmit", function () {
+      return this.element.querySelector('button[type="submit"]').click();
+    })
+
+    .declareMethod("render", function (options) {
+      var gadget = this;
+      return RSVP.Queue()
+        .push(function () {
+          return RSVP.all([
+            gadget.getDeclaredGadget('form_view'),
+            gadget.getSetting('portal_type')
+          ]);
+        })
+        .push(function (result) {
+          return result[0].render({
+            erp5_document: {
+              "_embedded": {"_view": {
+                "my_url": {
+                  "description": "",
+                  "title": "OPML URL",
+                  "default": options.url || "",
+                  "css_class": "",
+                  "required": 1,
+                  "editable": 1,
+                  "key": "url",
+                  "hidden": 0,
+                  "type": "StringField"
+                },
+                "my_username": {
+                  "description": "Username for access private URLs",
+                  "title": "Username",
+                  "default": options.username || "",
+                  "css_class": "",
+                  "required": 1,
+                  "editable": 1,
+                  "key": "username",
+                  "hidden": 0,
+                  "type": "StringField"
+                },
+                "my_password": {
+                  "description": "Password for access private URLs",
+                  "title": "Password",
+                  "default": options.password || "",
+                  "css_class": "",
+                  "required": 1,
+                  "editable": 1,
+                  "key": "password",
+                  "hidden": 0,
+                  "type": "PasswordField"
+                },
+                "my_portal_type": {
+                  "description": "The name of a document in ERP5",
+                  "title": "Portal Type",
+                  "default": result[1],
+                  "css_class": "",
+                  "required": 1,
+                  "editable": 1,
+                  "key": "portal_type",
+                  "hidden": 1,
+                  "type": "StringField"
+                },
+                "my_active": {
+                  "description": "Sync this opml or not",
+                  "title": "Active (Auto Sync)",
+                  "default": 1,
+                  "css_class": "",
+                  "required": 1,
+                  "editable": 1,
+                  "key": "active",
+                  "hidden": 1,
+                  "type": "CheckBoxField"
+                },
+                "my_new_password": {
+                  "description": "Change current OPML password",
+                  "title": "New Password",
+                  "default": "",
+                  "css_class": "",
+                  "required": 1,
+                  "editable": 1,
+                  "key": "new_password",
+                  "hidden": (options.chg_passwd || '' === true) ? 0 : 1,
+                  "type": "PasswordField"
+                },
+                "my_confirm_new_password": {
+                  "description": "Confirm new OPML password",
+                  "title": "Confirm New Password",
+                  "default": "",
+                  "css_class": "",
+                  "required": 1,
+                  "editable": 1,
+                  "key": "confirm_new_password",
+                  "hidden": (options.chg_passwd || '' === true) ? 0 : 1,
+                  "type": "PasswordField"
+                },
+              }},
+              "_links": {
+                "type": {
+                  // form_list display portal_type in header
+                  name: ""
+                }
+              }
+            },
+            form_definition: {
+              group_list: [[
+                "left",
+                [["my_url"], ["my_username"], ["my_password"],
+                  ["my_portal_type"], ["my_active"],
+                  ["my_new_password"], ["my_confirm_new_password"]]
+              ]]
+            }
+          });
+        })
+        .push(function () {
+          var new_options;
+
+          if (options.chg_passwd === 'true') {
+            return undefined;
+          }
+          new_options = JSON.parse(JSON.stringify(options));
+          new_options.chg_passwd = 'true';
+          return gadget.getUrlFor({command: "change", options: new_options});
+        })
+        .push(function (chg_pwd_url) {
+          return gadget.updateHeader({
+            page_title: "Add OPML",
+            save_action: true,
+            change_password: chg_pwd_url
+          });
+        });
+    });
+}(window, rJS, RSVP, Handlebars, OPMLManage));
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_breadcrumb_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_add_js.xml
similarity index 93%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_breadcrumb_js.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_add_js.xml
index b3a0c4d503573b141ecbfdbe85799dad40ce8487..0b84bebec0ac1adbe545e7ff953e8ec4f170361f 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_breadcrumb_js.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_add_js.xml
@@ -83,7 +83,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_breadcrumb.js</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_opml_add.js</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -93,7 +93,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_breadcrumb_js</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_opml_add_js</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -113,14 +113,18 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Monitoring Breadcrumb JS</string> </value>
+            <value> <string>OfficeJS Monitoring Add OPML JS</string> </value>
         </item>
         <item>
-            <key> <string>version</string> </key>
+            <key> <string>url_string</string> </key>
             <value>
               <none/>
             </value>
         </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
         <item>
             <key> <string>workflow_history</string> </key>
             <value>
@@ -201,7 +205,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1502444254.8</float>
+                        <float>1506075175.77</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -246,7 +250,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.21922.6098.18551</string> </value>
+                <value> <string>963.1933.16122.39953</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -264,7 +268,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1502445069.05</float>
+                        <float>1509023050.17</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -287,9 +291,7 @@
           <dictionary>
             <item>
                 <key> <string>action</string> </key>
-                <value>
-                  <none/>
-                </value>
+                <value> <string>detect_converted_file</string> </value>
             </item>
             <item>
                 <key> <string>actor</string> </key>
@@ -305,7 +307,7 @@
             </item>
             <item>
                 <key> <string>external_processing_state</string> </key>
-                <value> <string>empty</string> </value>
+                <value> <string>converted</string> </value>
             </item>
             <item>
                 <key> <string>serial</string> </key>
@@ -323,7 +325,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1502444184.21</float>
+                        <float>1506072210.95</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_main_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_delete_html.html
similarity index 56%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_main_html.html
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_delete_html.html
index 4bcf15f64f68e7f2215b7c4c9792db5019d0e5c1..8af540d30f2bf588254924cdb047fc29e66ff2f3 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_main_html.html
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_delete_html.html
@@ -4,17 +4,13 @@
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1">
 
-    <title>Monitoring Main Page</title>
-
-    <link href="gadget_monitoring_custom.css" rel="stylesheet" type="text/css"/>
+    <title>OfficeJS Monitor Delete OPML</title>
 
     <script src="rsvp.js"></script>
     <script src="renderjs.js"></script>
-
-    <script src="gadget_monitoring_main.js"></script>
-
+    <script src="gadget_erp5_page_ojsm_opml_delete.js"></script>
   </head>
 
   <body>
   </body>
-</html>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_delete_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_delete_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c9ce2e375d1ed1de648bb1fc8bc92b887f909ba1
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_delete_html.xml
@@ -0,0 +1,340 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Page" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/public</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_opml_delete.html</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_opml_delete_html</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Page</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>OfficeJS Monitoring Delete OPML</string> </value>
+        </item>
+        <item>
+            <key> <string>url_string</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1507823127.57</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>963.643.58620.34440</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508945525.85</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506439508.28</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_delete_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_delete_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..51b76fcadb55f5083c96dc369dc0cc98c3a68f8a
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_delete_js.js
@@ -0,0 +1,32 @@
+/*global window, rJS, RSVP, Handlebars */
+/*jslint nomen: true, indent: 2, maxerr: 3 */
+(function (window, rJS, RSVP, Handlebars) {
+  "use strict";
+
+  rJS(window)
+
+    /////////////////////////////////////////////////////////////////
+    // Acquired methods
+    /////////////////////////////////////////////////////////////////
+    .declareAcquiredMethod("redirect", "redirect")
+    .declareAcquiredMethod("jio_remove", "jio_remove")
+    .declareAcquiredMethod("notifySubmitting", "notifySubmitting")
+    .declareAcquiredMethod("notifySubmitted", 'notifySubmitted')
+
+    .declareMethod("render", function (options) {
+      var gadget = this;
+
+      return gadget.notifySubmitting()
+        .push(function () {
+          return gadget.jio_remove(options.jio_key);
+        })
+        .push(function () {
+          return gadget.notifySubmitted("Document Deleted");
+        })
+        .push(function () {
+          return gadget.redirect({command: 'change', options: {
+            page: options.return_url || 'settings_configurator'
+          }});
+        });
+    });
+}(window, rJS, RSVP, Handlebars));
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_delete_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_delete_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..354c6016877058fce26ebae01a06a4213702191c
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_opml_delete_js.xml
@@ -0,0 +1,340 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Script" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/public</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/javascript</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_opml_delete.js</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_opml_delete_js</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Script</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>OfficeJS Monitoring Delete OPML JS</string> </value>
+        </item>
+        <item>
+            <key> <string>url_string</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1507823114.3</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>963.642.61316.20292</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508945461.31</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1507823085.55</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_processes_view_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_processes_view_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..475530001f84edf29356a5d2090a7a6983cb600f
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_processes_view_html.html
@@ -0,0 +1,47 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <title>Monitoring Process View Page</title>
+
+    <link href="gadget_officejs_monitoring_custom.css" rel="stylesheet" type="text/css"/>
+
+    <script src="notify.min.js"></script>
+    <script src="rsvp.js"></script>
+    <script src="renderjs.js"></script>
+
+    <script id="infobox-widget-template" type="text/x-handlebars-template">
+      {{#each resource_list}}
+      <div class="infobox">
+      	<div class="infobox-icon">
+      		<span class="ui-icon ui-icon-custom ui-icon-{{icon_name}}"></span>
+      	</div>
+      	<div class="infobox-data">
+      		<span class="infobox-data-number">{{value}}</span>
+      		<div class="infobox-content">{{title}}</div>
+      	</div>
+      </div>
+      {{/each}}
+    </script>
+
+    <script src="gadget_erp5_page_ojsm_processes_view.js"></script>
+
+  </head>
+
+  <body>
+    <div data-gadget-url="gadget_officejs_monitoring_jio.html" data-gadget-scope="jio_gadget" data-gadget-sandbox="public"></div>
+    <div class="center">
+      <div class="padding-lr-10 infobox-container">
+      </div>
+      <h2 class="header-notice"><i class="ui-icon ui-icon-custom ui-icon-info"></i> Processes information will be reloaded automatically every minutes.</h2>
+    </div>
+    <form>
+      <div data-gadget-url="gadget_erp5_form.html"
+              data-gadget-scope="form_view"
+              data-gadget-sandbox="public">
+      </div>
+    </form>
+  </body>
+</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_process_view_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_processes_view_html.xml
similarity index 96%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_process_view_html.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_processes_view_html.xml
index f752b14a2db99bfa2639a13aac91b6ebf33dc141..96a52a812d5e23be1a3b81d81569f506a224a219 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_process_view_html.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_processes_view_html.xml
@@ -80,7 +80,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_process_view.html</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_processes_view.html</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -90,7 +90,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_process_view_html</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_processes_view_html</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -110,7 +110,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Gadget Monitoring Process View</string> </value>
+            <value> <string>Gadget Monitoring Processes View</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -243,7 +243,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.17754.56595.43520</string> </value>
+                <value> <string>962.46066.30387.47069</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -261,7 +261,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1502194340.06</float>
+                        <float>1507902085.76</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_processes_view_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_processes_view_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..ac0c3e00c1867488cc73cfca6dd4b6e57953c1de
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_processes_view_js.js
@@ -0,0 +1,241 @@
+/*global window, rJS, RSVP, URI, location, $,
+    loopEventListener, btoa */
+/*jslint nomen: true, indent: 2, maxerr: 3*/
+(function (window, rJS, $, RSVP) {
+  "use strict";
+
+  var gadget_klass = rJS(window),
+    templater = gadget_klass.__template_element,
+    infobox_widget_template = Handlebars.compile(
+      templater.getElementById("infobox-widget-template").innerHTML
+    );
+
+  gadget_klass
+    .setState({
+      opml: "",
+      opml_outline: ""
+    })
+    .ready(function (gadget) {
+      gadget.property_dict = {
+        process_state: "monitor_process_resource.status",
+        monitor_process_state: "monitor_resource.status"
+      };
+    })
+    .ready(function (gadget) {
+      return gadget.getDeclaredGadget("jio_gadget")
+        .push(function (jio_gadget) {
+          gadget.property_dict.jio_gadget = jio_gadget;
+        });
+    })
+    .declareMethod('render', function (options) {
+      var gadget = this;
+
+      return gadget.jio_get(options.key)
+        .push(function (outline) {
+          return gadget.changeState({opml_outline: outline});
+        })
+        .push(function () {
+          return gadget.jio_get(gadget.state.opml_outline.parent_url);
+        })
+        .push(function (opml_doc) {
+          return gadget.changeState({opml: opml_doc});
+        })
+        .push(function () {
+          return RSVP.all([
+            gadget.getUrlFor({command: 'history_previous'}),
+            gadget.getUrlFor({command: 'change', options: {
+              page: 'ojsm_resources_view',
+              key: gadget.state.opml_outline.reference
+            }})
+          ]);
+        })
+        .push(function (url_list) {
+          return gadget.updateHeader({
+            page_title: gadget.state.opml_outline.title + ": Processes View",
+            front_url: url_list[0],
+            resources_url: url_list[1]
+          });
+        })
+        .push(function () {
+          var key,
+            promise_list = [];
+          gadget.property_dict.jio_gadget.createJio({
+            type: "webhttp",
+            // XXX fix URL
+            url: (gadget.state.opml_outline.url
+              .replace("jio_private", "private") +
+              'documents/'),
+            basic_login: gadget.state.opml.basic_login
+          });
+          return gadget.property_dict.jio_gadget
+            .get(gadget.property_dict.monitor_process_state);
+        })
+        .push(undefined, function (error) {
+          console.error(error);
+          $.notify(
+            "Error: Failed to download data files!", 
+            {
+              position: "top right",
+              autoHideDelay: 7000,
+              className: "error"
+            }
+          );
+          return undefined;
+        })
+        .push(function (average_result) {
+          if (average_result !== undefined) {
+            return gadget.changeState({
+              average_state: average_result
+            });
+          }
+        });
+    })
+    .declareAcquiredMethod("updateHeader", "updateHeader")
+    .declareAcquiredMethod('jio_get', 'jio_get')
+    .declareAcquiredMethod("getUrlFor", "getUrlFor")
+
+    .allowPublicAcquisition("jio_allDocs", function (param_list) {
+      var gadget = this,
+        result = {data: {total_rows: 0, rows: []}};
+      return gadget.property_dict.jio_gadget.get(gadget.property_dict.process_state)
+        .push(function (process_list) {
+          var i;
+          result.data.total_rows = process_list.length;
+          for (i = 0; i < process_list.length; i += 1) {
+            result.data.rows.push({
+              id: "process_t" + i,
+              value: {
+                process: process_list[i].name || '-',
+                pid: process_list[i].pid,
+                user: process_list[i].user || '-',
+                date: process_list[i].date || '-',
+                cpu_load: process_list[i].cpu_percent,
+                cpu_threads: process_list[i].cpu_num_threads,
+                memory_used: process_list[i].memory_rss,
+                memory_percent: process_list[i].memory_percent
+              }
+            });
+          }
+          return result;
+        });
+    })
+
+    .onStateChange(function (change_dict) {
+      var gadget = this,
+        monitor_resource_list,
+        resource_state_content;
+      if (!change_dict.hasOwnProperty('average_state')) {
+        return;
+      }
+      monitor_resource_list = [
+        {
+          title: "CPU Used",
+          icon_name: "bolt",
+          value: change_dict.average_state.cpu_percent + " %"
+        },
+        {
+          title: "CPU Used Time",
+          icon_name: "clock-o",
+          value: change_dict.average_state.cpu_time + " min"
+        },
+        {
+          title: "CPU Num Threads",
+          icon_name: "dashboard",
+          value: change_dict.average_state.cpu_num_threads
+        },
+        {
+          title: "Used Memory",
+          icon_name: "ticket",
+          value: change_dict.average_state.memory_rss + " Mo"
+        },
+        {
+          title: "Memory Used",
+          icon_name: "pie-chart",
+          value: change_dict.average_state.memory_percent + " %"
+        }/*,
+        {
+          title: "Disk Used",
+          icon_name: "hdd-o",
+          value: change_dict.average_state.disk_used + " Mo"
+        }*/
+      ];
+      resource_state_content = infobox_widget_template({
+        resource_list: monitor_resource_list
+      });
+      gadget.element.querySelector(".infobox-container")
+        .innerHTML = resource_state_content;
+
+      return new RSVP.Queue()
+        .push(function () {
+          return gadget.getDeclaredGadget('form_view');
+        })
+        .push(function (form_view) {
+          var column_list = [
+            ['process', 'process'],
+            ['pid', 'PID'],
+            ['user', 'User'],
+            ['date', 'Create Date'],
+            ['cpu_load', 'CPU %'],
+            ['cpu_threads', 'CPU Threads'],
+            ['memory_used', 'Memory (Mo)'],
+            ['memory_percent', 'Memory %']
+          ];
+          return form_view.render({
+            erp5_document: {
+              "_embedded": {"_view": {
+                "listbox": {
+                  "column_list": column_list,
+                  "show_anchor": 0,
+                  "default_params": {},
+                  "editable": 0,
+                  "editable_column_list": [],
+                  "key": "field_listbox",
+                  "lines": 200,
+                  "list_method": "portal_catalog",
+                  "query": "urn:jio:allDocs?query=portal_type%3A%22" +
+                    "process_consumption" + "%22",
+                  "portal_type": [],
+                  "search_column_list": [],
+                  "sort_column_list": [],
+                  "sort": [],
+                  "title": "Instance Processes Consumption",
+                  "command": "reload",
+                  "type": "ListBox"
+                }
+              }},
+              "_links": {
+                "type": {
+                  // form_list display portal_type in header
+                  name: ""
+                }
+              }
+            },
+            form_definition: {
+              group_list: [[
+                "bottom",
+                [["listbox"]]
+              ]]
+            }
+          });
+        });
+    })
+
+    .onLoop(function () {
+      var gadget = this;
+
+      return gadget.property_dict.jio_gadget
+        .get(gadget.property_dict.monitor_process_state)
+          .push(undefined, function (error) {
+            console.error(error);
+            return undefined;
+          })
+          .push(function (average_result) {
+            if (average_result !== undefined) {
+              return gadget.changeState({
+                average_state: average_result
+              });
+            }
+          });
+    }, 65000);
+
+}(window, rJS, $, RSVP));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_process_view_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_processes_view_js.xml
similarity index 96%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_process_view_js.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_processes_view_js.xml
index eef628bebe5af9c9177eb7b511e518d2bb4be08d..91b97ef9e3556a1023403b587b8fee2f3d650de4 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_process_view_js.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_processes_view_js.xml
@@ -80,7 +80,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_process_view.js</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_processes_view.js</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -90,7 +90,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_process_view_js</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_processes_view_js</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -108,7 +108,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Gadget Monitoring Process JS</string> </value>
+            <value> <string>Gadget Monitoring Processes JS</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -239,7 +239,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.21883.33309.38348</string> </value>
+                <value> <string>963.16563.15280.46899</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -257,7 +257,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1502445069.11</float>
+                        <float>1510052139.85</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_resources_view_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_resources_view_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..5b71188fc29205cde196ddf1766daa265f1fd0ee
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_resources_view_html.html
@@ -0,0 +1,49 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <title>Monitoring Resource View Page</title>
+
+    <link href="gadget_officejs_monitoring_custom.css" rel="stylesheet" type="text/css"/>
+
+    <script src="notify.min.js"></script>
+    <script src="rsvp.js"></script>
+    <script src="renderjs.js"></script>
+    <!--<script src="handlebars.js"></script>-->
+
+    <!--<script id="graph-label-widget-template" type="text/x-handlebars-template">
+      <fieldset class="graph-state-labels" data-role="controlgroup">
+      {{#each label_list}}
+        <input type="checkbox" name="{{id}}" id="{{id}}" checked="">
+        <label for="{{id}}" style="color: {{color}};" class="{{graph}}" rel="{{index}}">{{name}}</label>
+      {{/each}}
+      </fieldset>
+    </script>-->
+
+    <script src="gadget_erp5_page_ojsm_resources_view.js"></script>
+  </head>
+
+  <body>
+    <div data-gadget-url="gadget_officejs_monitoring_jio.html" data-gadget-scope="jio_gadget" data-gadget-sandbox="public"></div>
+    <h2 class="header-notice"><i class="ui-icon ui-icon-custom ui-icon-info"></i> Graph content will be reloaded automatically every minutes.</h2>
+    <!--<ul class="ui-grid-column ui-grid-column-5 graph_cpu">
+      <li class="ui-grid-span-5 custom-grid-wrap graph-cell">
+        <div data-gadget-url="gadget_erp5_graph.html" data-gadget-scope="graph_cpu" class="graph graph-h-medium" data-gadget-sandbox="public"></div>
+      </li>
+      <li class="ui-grid-span-1 custom-grid-wrap graph-cell">
+
+      </li>
+    </ul>-->
+    <div class="ui-grid-a ui-responsive">
+      <div data-gadget-url="gadget_field_graph_dygraph.html" data-gadget-scope="graph_cpu" class="graph graph-h-medium" data-gadget-sandbox="public"></div>
+    </div>
+    <div class="ui-grid-b ui-responsive">
+      <div data-gadget-url="gadget_field_graph_dygraph.html" data-gadget-scope="graph_io" class="graph graph-h-medium" data-gadget-sandbox="public"></div>
+    </div>
+    <div class="ui-grid-a ui-responsive">
+      <div data-gadget-url="gadget_field_graph_dygraph.html" data-gadget-scope="graph_memory_used" class="graph graph-h-medium" data-gadget-sandbox="public"></div>
+    </div>
+  </body>
+</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_message_log_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_resources_view_html.xml
similarity index 95%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_message_log_html.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_resources_view_html.xml
index ab4cd8e70dff98dc10b181195ad56e0545fb1679..ae3dfc5c946fecaa0b7889767c46726ef32ce782 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_message_log_html.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_resources_view_html.xml
@@ -83,7 +83,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_message_log.html</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_resources_view.html</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -93,7 +93,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_message_log_html</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_resources_view_html</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -113,7 +113,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Monitoring Log List</string> </value>
+            <value> <string>Gadget OJS Monitoring Resources View</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -201,7 +201,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1467736090.49</float>
+                        <float>1507116490.54</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -246,7 +246,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>952.24422.29891.16622</string> </value>
+                <value> <string>962.36002.50044.8055</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -264,7 +264,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1467963489.81</float>
+                        <float>1507902037.02</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -321,7 +321,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1467735613.0</float>
+                        <float>1507111456.51</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_resources_view_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_resources_view_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..88cf509a7750e3e51551e866cc13424d9d5e058f
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_resources_view_js.js
@@ -0,0 +1,446 @@
+/*global window, rJS, RSVP, Handlebars, $, console */
+/*jslint nomen: true, indent: 2, maxerr: 3*/
+(function (window, rJS, RSVP, $, console) {
+  "use strict";
+
+  var gadget_klass = rJS(window);
+
+
+  function loadGraphData(gadget, key) {
+    var resource_key = gadget.property_dict.ressource_dict[key];
+    return gadget.property_dict.jio_gadget.get(resource_key)
+      .push(undefined, function (error) {
+        console.log(error);
+        $.notify(
+          "Error: Failed to download resource file '" + resource_key +
+            "' from URL: " + gadget.state.opml_outline.url,
+          {
+              position: "top right",
+              autoHideDelay: 7000,
+              className: "error"
+            }
+        );
+        return {
+          data: []
+        };
+      })
+      .push(function (jio_element) {
+        gadget.property_dict.date_window = getDateWindow(gadget.property_dict.mem_data.data);
+        if (!jio_element.hasOwnProperty('data')) {
+          return {data: []};
+        }
+        switch (key) {
+        case "memory_resource":
+          gadget.property_dict.mem_data = jio_element;
+          break;
+        case "cpu_resource":
+          gadget.property_dict.process_data = jio_element;
+          break;
+        case "io_resource":
+          gadget.property_dict.io_data = jio_element;
+          break;
+        }
+        return jio_element;
+      });
+  }
+
+  function updateIOData(gadget, date_window) {
+    var i,
+      element,
+      prev_element,
+      date_diff,
+      line_list = [],
+      data_list = [],
+      axis_dict = {};
+
+    function convertElement(element) {
+      var element_list = element.split(',');
+      return [
+        element_list[0],
+        parseFloat(element_list[1].trim()),
+        parseFloat(element_list[2].trim()),
+        element_list[3].trim()
+      ];
+    }
+    //"date, io rw counter, io cycles counter, disk used"
+    line_list = ["date", "io rw count (Kb/s)", "io cycles count (/1000)"]; //, "disk used"];
+    axis_dict["0"] = {
+      "title": "IO resources usage",
+      "scale_type": "linear",
+      "value_type": "date",
+      "zoom_range": date_window
+    };
+    for (i = 1; i < line_list.length; i += 1) {
+      line_list[i] = line_list[i].trim();
+      data_list.push({
+        value_dict: {"0": [], "1": []},
+        type: "surface",
+        axis_mapping_id_dict: {"1": "1_" + i},
+        title: line_list[i]
+      });
+      axis_dict["1_" + i] = {"title": line_list[i], "position": "right"};
+    }
+    if (gadget.property_dict.io_data.data.length > 2) {
+      prev_element = convertElement(gadget.property_dict.io_data.data[1]);
+      for (i = 2; i < gadget.property_dict.io_data.data.length; i += 1) {
+        element = convertElement(gadget.property_dict.io_data.data[i]);
+        date_diff = (new Date(element[0]).getTime() - new Date(prev_element[0]).getTime()) / 1000;
+        // XXX - repeating date everytime
+        data_list[0].value_dict["0"].push(element[0]);
+        data_list[0].value_dict["1"].push((element[1] - prev_element[1]) / (1024 * date_diff));
+        // XXX - repeating date everytime
+        data_list[1].value_dict["0"].push(element[0]);
+        data_list[1].value_dict["1"].push((element[2] - prev_element[2]) / 1000);
+        // XXX - repeating date everytime
+        /*data_list[2].value_dict["0"].push(element[0]);
+        data_list[2].value_dict["1"].push(element[3]);*/
+        prev_element = element;
+      }
+    }
+    return {
+      value:{
+        data: data_list,
+        layout: {
+          axis_dict : axis_dict,
+          title: "IO resources usage"
+        }
+      }
+    };
+  }
+
+  function getDateWindow(data) {
+    var max_date,
+      begin_date,
+      end_date,
+      date_window = [];
+    if (data.length > 0) {
+      max_date = data[data.length - 1].split(',')[0];
+      begin_date = new Date(max_date);
+      end_date = new Date(max_date);
+      begin_date.setHours(begin_date.getHours() -2);
+      date_window = [Date.parse(begin_date), Date.parse(end_date)];
+    }
+    return date_window;
+  }
+
+  function updateGraph (gadget) {
+    return new RSVP.Queue()
+      .push(function () {
+        var key,
+          promise_list = [];
+        for (key in gadget.property_dict.ressource_dict) {
+          promise_list.push(loadGraphData(gadget, key));
+        }
+        return RSVP.all(promise_list);
+      })
+      .push(function () {
+        var data = updateIOData(gadget, gadget.property_dict.date_window);
+        return gadget.property_dict.graph_io.render(data);
+      })
+      .push(function () {
+        var data_list = [],
+          axis_dict = {},
+          line_list,
+          i,
+          j;
+
+        axis_dict = {
+          "0": {
+            "title": "Memory resources usage (Mo)",
+            "scale_type": "linear",
+            "value_type": "date",
+            "zoom_range": gadget.property_dict.date_window
+          },
+          "1_2": {
+            "title": "Memory used percent",
+            "position": "right"
+          },
+          "1_1": {
+            "title": "Memory used",
+            "position": "right"
+          }
+        };
+        /*data_list.push({
+          value_dict: {"0": [], "1": []},
+          type: "surface",
+          axis_mapping_id_dict: {"1": "1_1"},
+          title: "Memory used percent"
+        });*/
+        data_list.push({
+          value_dict: {"0": [], "1": []},
+          type: "surface",
+          axis_mapping_id_dict: {"1": "1_2"},
+          title: "Memory used"
+        });
+        for (i = 1; i < gadget.property_dict.mem_data.data.length; i += 1) {
+          line_list = gadget.property_dict.mem_data.data[i].split(',');
+          data_list[0].value_dict["0"].push(line_list[0]);
+          data_list[0].value_dict["1"].push(line_list[2]);
+        }
+        return gadget.property_dict.graph_mem_used.render({
+          value:{
+            data: data_list,
+            layout: {
+              axis_dict : axis_dict,
+              title: "Memory resources usage"
+            }
+          }
+        });
+      })
+      .push(function () {
+        var data_list = [],
+          axis_dict = {},
+          previous_time = 0,
+          line_list,
+          cpu_time_index = -1,
+          i,
+          j;
+
+        function getCPUTime(current) {
+          var increment = 0;
+          if (previous_time === 0) {
+            previous_time = current;
+            return 0;
+          }
+          increment = current - previous_time;
+          previous_time = current;
+          return increment;
+        }
+
+        //"date, total process, CPU percent, CPU time, CPU threads"
+        if (gadget.property_dict.process_data.data.length > 0) {
+          line_list = gadget.property_dict.process_data.data[0].split(',');
+        } else {
+          line_list = ["date", "total process", "CPU percent",
+                       "CPU time", "CPU threads"];
+        }
+        axis_dict["0"] = {
+          "title": "Process resources usage",
+          "scale_type": "linear",
+          "value_type": "date",
+          "zoom_range": gadget.property_dict.date_window
+        };
+        for (i = 1; i < line_list.length; i += 1) {
+          line_list[i] = line_list[i].trim();
+          data_list.push({
+            value_dict: {"0": [], "1": []},
+            type: "line",
+            axis_mapping_id_dict: {"1": "1_" + i},
+            title: line_list[i]
+          });
+          if (line_list[i] === "CPU time") {
+            cpu_time_index = i;
+          }
+          axis_dict["1_" + i] = {"title": line_list[i], "position": "right"};
+        }
+        for (i = 1; i < gadget.property_dict.process_data.data.length; i += 1) {
+          line_list = gadget.property_dict.process_data.data[i].split(',');
+          for (j = 1; j < line_list.length; j += 1) {
+            // XXX - repeating date everytime
+            data_list[j - 1].value_dict["0"].push(line_list[0]);
+            if (j === cpu_time_index) {
+              data_list[j - 1].value_dict["1"].push(getCPUTime(line_list[j]));
+            } else {
+              data_list[j - 1].value_dict["1"].push(line_list[j]);
+            }
+          }
+        }
+        return gadget.property_dict.graph_cpu.render({
+          value:{
+            data: data_list,
+            layout: {
+              axis_dict : axis_dict,
+              title: "Process resources usage"
+            }
+          }
+        });
+      });
+  }
+
+  gadget_klass
+    .setState({
+      opml: "",
+      opml_outline: ""
+    })
+    .ready(function (gadget) {
+      gadget.property_dict = {};
+      gadget.property_dict.render_deferred = RSVP.defer();
+      gadget.property_dict.ressource_dict = {
+        memory_resource: "monitor_resource_memory.data",
+        cpu_resource: "monitor_resource_process.data",
+        io_resource: "monitor_resource_io.data"
+      };
+    })
+    .ready(function (gadget) {
+      return gadget.getDeclaredGadget("graph_memory_used")
+        .push(function (graph_memory_used) {
+          gadget.property_dict.graph_mem_used = graph_memory_used;
+        });
+    })
+    .ready(function (gadget) {
+      return gadget.getDeclaredGadget("graph_cpu")
+        .push(function (graph_cpu) {
+          gadget.property_dict.graph_cpu = graph_cpu;
+          gadget.property_dict.graph_cpu_label_list = [];
+        });
+    })
+    .ready(function (gadget) {
+      return gadget.getDeclaredGadget("graph_io")
+        .push(function (graph_io) {
+          gadget.property_dict.graph_io = graph_io;
+        });
+    })
+    .ready(function (gadget) {
+      return gadget.getDeclaredGadget("jio_gadget")
+        .push(function (jio_gadget) {
+          gadget.property_dict.jio_gadget = jio_gadget;
+        });
+    })
+    .declareMethod("render", function (options) {
+      var gadget = this;
+
+      gadget.property_dict.document_key = options.key;
+      return gadget.jio_get(options.key)
+        .push(function (outline) {
+          return gadget.changeState({opml_outline: outline});
+        })
+        .push(function () {
+          return gadget.jio_get(gadget.state.opml_outline.parent_url);
+        })
+        .push(function (opml_doc) {
+          return gadget.changeState({opml: opml_doc});
+        })
+        .push(function () {
+          return RSVP.all([
+            gadget.getUrlFor({command: 'history_previous'}),
+            gadget.getUrlFor({command: 'change', options: {
+              page: 'ojsm_processes_view',
+              key: gadget.state.opml_outline.reference
+            }})
+          ]);
+        })
+        .push(function (url_list) {
+          return gadget.updateHeader({
+            page_title: gadget.state.opml_outline.title + ": Resources Consumption View",
+            front_url: url_list[0],
+            processes_url: url_list[1]
+          });
+        })
+        .push(function () {
+          gadget.property_dict.jio_gadget.createJio({
+            type: "webhttp",
+            // XXX Fix URL
+            url: (gadget.state.opml_outline.url
+              .replace("jio_private", "private") +
+              'documents/'),
+            basic_login: gadget.state.opml.basic_login
+          });
+          gadget.property_dict.mem_data = {data: []};
+          gadget.property_dict.process_data = {data: []};
+          gadget.property_dict.io_data = {data: []};
+          return gadget.property_dict.render_deferred.resolve();
+        });
+    })
+
+    .declareAcquiredMethod("updateHeader", "updateHeader")
+    .declareAcquiredMethod('jio_get', 'jio_get')
+    .declareAcquiredMethod("getUrlFor", "getUrlFor")
+
+    .onLoop(function () {
+      return updateGraph(this);
+    }, 65000)
+
+    /////////////////////////////////////////////////////////////////
+    // declared service
+    /////////////////////////////////////////////////////////////////
+    .declareService(function () {
+      var gadget = this,
+        date_window = [];
+
+      /*function toggleSerieVisibility(evt) {
+        var checkbox = evt.target.nextSibling,
+          index = $(evt.target).attr('rel');
+        if ($(checkbox).prop("checked")) {
+          $(checkbox).prop("checked", false).checkboxradio("refresh");
+        } else {
+          $(checkbox).prop("checked", true).checkboxradio("refresh");
+        }
+        return gadget.property_dict.graph_cpu.setVisibility(parseInt(index, 10), $(checkbox).prop("checked"))
+          .push(function () {
+            return evt;
+          });
+      }*/
+
+      return new RSVP.Queue()
+        .push(function () {
+          return gadget.property_dict.render_deferred.promise;
+        })
+        /**.push(function () {
+          return gadget.property_dict.graph_cpu.render(
+            gadget.property_dict.process_data.data.join('\n'),
+            {
+              xlabel: '<span class="graph-label"><i class="fa fa-line-chart"></i> Process resources usage</span>',
+              labelsDivStyles: { 'textAlign': 'right' },
+              dateWindow: date_window,
+            },
+            "customInteractionModel"
+          );
+        })
+        .push(function () {
+          var label_list = gadget.property_dict.graph_cpu_label_list,
+            element = 'graph_cpu';
+          if (gadget.property_dict.graph_cpu_label_list.length > 0) {
+            label_list = label_list.slice(1); // remove date column
+            return gadget.property_dict.graph_cpu.getColors()
+              .push(function (color_list) {
+                var label_content,
+                  name_list = [],
+                  i;
+                for (i = 0; i < label_list.length; i += 1) {
+                  name_list.push({
+                    name: label_list[i],
+                    id: "label_" + label_list[i].trim().replace(/\s/g, '_'),
+                    color: color_list[i],
+                    graph: element,
+                    index: i
+                  });
+                }
+                label_content = graph_labels_widget({
+                  label_list: name_list
+                });
+                gadget.property_dict.element.querySelector(".ui-panel-overview ." + element + " .ui-grid-span-1")
+                  .innerHTML = label_content;
+                  return $(gadget.property_dict.element.querySelectorAll("[data-role=controlgroup]"))
+                    .controlgroup().controlgroup("refresh");
+              });
+          }
+        })
+        .push(function () {
+          var promise_list = [],
+            element_list = gadget.property_dict.element.querySelectorAll("label.graph_cpu"),
+            i;
+          for (i = 0; i < element_list.length; i += 1) {
+            promise_list.push(
+              loopEventListener(
+                element_list[i],
+                'click',
+                false,
+                toggleSerieVisibility
+              )
+            );
+            if ($(element_list[i]).attr('for').toLowerCase() !== 'label_cpu_percent' && $(element_list[i]).attr('for').toLowerCase() !== 'label_total_process') {
+              promise_list.push(gadget.property_dict.graph_cpu.setVisibility(
+                parseInt($(element_list[i]).attr('rel'), 10), false)
+              );
+              promise_list.push($(element_list[i]).click());
+            }
+          }
+          RSVP.all(promise_list);
+          return updateGraphTimer();
+        })**/
+        .push(function () {
+          return updateGraph(gadget);
+        });
+    });
+
+}(window, rJS, RSVP, $, console));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_resources_view_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_resources_view_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..40cb66f0d5ba48c69a74ad12c520e0a1df64bfc8
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_resources_view_js.xml
@@ -0,0 +1,332 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Script" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/public</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/javascript</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_resources_view.js</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_resources_view_js</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value> <string>en</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Script</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Gadget Monitoring Resources View JS</string> </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1507116486.61</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>962.64762.24229.58760</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508860480.94</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1507116464.83</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_software_instance_list_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_software_instance_list_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..c8d0e780342eed54128a831bec1436279d7d7ead
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_software_instance_list_html.html
@@ -0,0 +1,20 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <title>Monitoring Software Instances</title>
+
+    <link href="gadget_officejs_monitoring_custom.css" rel="stylesheet" type="text/css"/>
+
+    <script src="rsvp.js"></script>
+    <script src="renderjs.js"></script>
+    <script src="gadget_erp5_page_ojsm_software_instance_list.js"></script>
+
+  </head>
+
+  <body>
+    <div data-gadget-url="gadget_erp5_pt_form_list.html" data-gadget-scope="form_list"></div>
+  </body>
+</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_software_instance_list_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_software_instance_list_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..789f33fafbe7d1a69d32288fb78103930ebe2cfd
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_software_instance_list_html.xml
@@ -0,0 +1,336 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Page" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/public</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_software_instance_list.html</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_software_instance_list_html</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Page</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Gadget OJS Monitoring Software Instance List</string> </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1507039000.34</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>962.34404.44119.35515</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1507901852.14</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1507038898.04</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_software_instance_list_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_software_instance_list_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..20bda084f499270a2f114878983ad9a53c97ddd9
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_software_instance_list_js.js
@@ -0,0 +1,160 @@
+/*global window, rJS, RSVP */
+/*jslint nomen: true, indent: 2, maxerr: 3*/
+(function (window, rJS, RSVP) {
+  "use strict";
+
+  rJS(window)
+    .declareAcquiredMethod("updateHeader", "updateHeader")
+    .declareAcquiredMethod("redirect", "redirect")
+    .declareAcquiredMethod("reload", "reload")
+    .declareAcquiredMethod("getSetting", "getSetting")
+    .declareAcquiredMethod("setSetting", "setSetting")
+    .declareAcquiredMethod("getUrlFor", "getUrlFor")
+    .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
+
+    .allowPublicAcquisition("jio_allDocs", function (param_list) {
+      var gadget = this;
+      return gadget.jio_allDocs(param_list[0])
+        .push(function (result) {
+          var i, value, len = result.data.total_rows;
+          for (i = 0; i < len; i += 1) {
+            if (result.data.rows[i].value.hasOwnProperty("date")) {
+              value = new Date(result.data.rows[i].value.date);
+              result.data.rows[i].value.date = {
+                allow_empty_time: 0,
+                ampm_time_style: 0,
+                css_class: "date_field",
+                date_only: 0,
+                description: "The Date",
+                editable: 0,
+                hidden: 0,
+                hidden_day_is_last_day: 0,
+                "default": value.toUTCString(),
+                key: "date",
+                required: 0,
+                timezone_style: 0,
+                title: "Status Date",
+                type: "DateTimeField"
+              };
+              result.data.rows[i].value["listbox_uid:list"] = {
+                key: "listbox_uid:list",
+                value: 2713
+              };
+            }
+            if (result.data.rows[i].value.hasOwnProperty("status")) {
+              value = result.data.rows[i].value.status;
+              result.data.rows[i].value.status = {
+                css_class: "",
+                description: "The Status",
+                hidden: 0,
+                "default": value,
+                key: "status",
+                url: "gadget_erp5_field_status.html",
+                title: "Status",
+                type: "GadgetField"
+              };
+              result.data.rows[i].value["listbox_uid:list"] = {
+                key: "listbox_uid:list",
+                value: 2713
+              };
+            }
+          }
+          return result;
+        });
+    })
+
+    /////////////////////////////////////////////////////////////////
+    // declared methods
+    /////////////////////////////////////////////////////////////////
+
+    .declareMethod("triggerSubmit", function () {
+      var argument_list = arguments;
+      return this.getDeclaredGadget('form_list')
+        .push(function (gadget) {
+          return gadget.triggerSubmit.apply(gadget, argument_list);
+        });
+    })
+    .declareMethod("render", function (options) {
+      return this.changeState({
+        options: options,
+        latest_reload_time: new Date().getTime()
+      });
+    })
+    .onStateChange(function () {
+      var gadget = this,
+        lines_limit;
+
+      return new RSVP.Queue()
+        .push(function () {
+          return gadget.getSetting("listbox_lines_limit", 100);
+        })
+        .push(function (listbox_lines_limit) {
+          lines_limit = listbox_lines_limit;
+          return gadget.getDeclaredGadget('form_list');
+        })
+        .push(function (form_list) {
+          var column_list = [
+            ['title', 'Instance Title'],
+            ['hosting-title', 'Hosting Subscription'],
+            ['date', 'Status Date'],
+            ['status', 'Status']
+          ];
+          return form_list.render({
+            erp5_document: {
+              "_embedded": {"_view": {
+                "listbox": {
+                  "column_list": column_list,
+                  "show_anchor": 0,
+                  "default_params": {},
+                  "editable": 0,
+                  "editable_column_list": [],
+                  "key": "software_instance_listbox",
+                  "lines": lines_limit,
+                  "list_method": "portal_catalog",
+                  "query": "urn:jio:allDocs?query=portal_type%3A%22" +
+                    "global" + "%22",
+                  "portal_type": [],
+                  "search_column_list": column_list,
+                  "sort_column_list": column_list,
+                  "sort": [["hosting-title", "ascending"]],
+                  "title": "Software Instances",
+                  "type": "ListBox"
+                }
+              }},
+              "_links": {
+                "type": {
+                  // form_list display portal_type in header
+                  name: ""
+                }
+              }
+            },
+            form_definition: {
+              group_list: [[
+                "bottom",
+                [["listbox"]]
+              ]]
+            }
+          });
+        })
+        .push(function (result) {
+          return gadget.updateHeader({
+            page_title: "Software Instances Status",
+            filter_action: true
+          });
+        });
+    })
+
+    .onLoop(function () {
+      var gadget = this;
+
+      console.log("ONloop...");
+      return gadget.getSetting('latest_sync_time')
+        .push(function (latest_sync_time) {
+          if (latest_sync_time > gadget.state.latest_reload_time) {
+            return gadget.changeState({latest_reload_time: new Date().getTime()});
+          }
+        });
+    }, 30000);
+
+}(window, rJS, RSVP));
+
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_software_instance_list_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_software_instance_list_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..adab4e72eefa6486cf419f9049ee3a645ed0a477
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_software_instance_list_js.xml
@@ -0,0 +1,332 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Script" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/public</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/javascript</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_software_instance_list.js</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_software_instance_list_js</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value> <string>en</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Script</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Monitoring Software Instance List Gadget JS</string> </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1507039210.34</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>963.19079.34809.6058</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1510051687.96</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1507039010.86</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_status_list_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_status_list_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..1b1983dd50e40edafec1852ad40881b2aeb09496
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_status_list_html.html
@@ -0,0 +1,18 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <title>Monitoring Promises Status</title>
+    <link href="gadget_officejs_monitoring_custom.css" rel="stylesheet" type="text/css"/>
+
+    <script src="rsvp.js"></script>
+    <script src="renderjs.js"></script>
+    <script src="gadget_erp5_page_ojsm_status_list.js"></script>
+  </head>
+
+  <body>
+    <div data-gadget-url="gadget_erp5_pt_form_list.html" data-gadget-scope="form_list" data-gadget-sandbox="public"></div>
+  </body>
+</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_log_widget_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_status_list_html.xml
similarity index 95%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_log_widget_html.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_status_list_html.xml
index 27def4d645bbf44dc9b33b2f5ae54ab848029fa2..f0f441ab6daba831e73764af74aa047c377461e5 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_log_widget_html.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_status_list_html.xml
@@ -83,7 +83,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_log_widget.html</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_status_list.html</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -93,7 +93,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_log_widget_html</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_status_list_html</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -113,7 +113,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Monitoring Log Widget</string> </value>
+            <value> <string>Gadget OJS Monitoring Promise Status List</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -201,7 +201,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1467723907.57</float>
+                        <float>1506516313.96</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -246,7 +246,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>952.23189.41799.51933</string> </value>
+                <value> <string>962.53042.7222.55944</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -264,7 +264,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1467735725.37</float>
+                        <float>1508235749.35</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -321,7 +321,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1467723676.69</float>
+                        <float>1506516149.14</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_status_list_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_status_list_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..a0066fc430946586de0f664b85d610983c6c931b
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_status_list_js.js
@@ -0,0 +1,183 @@
+/*global window, rJS, RSVP */
+/*jslint nomen: true, indent: 2, maxerr: 3*/
+(function (window, rJS, RSVP) {
+  "use strict";
+
+  rJS(window)
+    .declareAcquiredMethod("updateHeader", "updateHeader")
+    .declareAcquiredMethod("redirect", "redirect")
+    .declareAcquiredMethod("getSetting", "getSetting")
+    .declareAcquiredMethod("setSetting", "setSetting")
+    .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
+
+    .allowPublicAcquisition("jio_allDocs", function (param_list) {
+      var gadget = this;
+      return gadget.jio_allDocs(param_list[0])
+        .push(function (result) {
+          var i, j, tmp, value, len = result.data.total_rows;
+          for (i = 0; i < len; i += 1) {
+            if (result.data.rows[i].value.hasOwnProperty("lastBuildDate")) {
+              value = new Date(result.data.rows[i].value.lastBuildDate);
+              result.data.rows[i].value.lastBuildDate = {
+                allow_empty_time: 0,
+                ampm_time_style: 0,
+                css_class: "date_field",
+                date_only: 0,
+                description: "The Date",
+                editable: 0,
+                hidden: 0,
+                hidden_day_is_last_day: 0,
+                "default": value.toUTCString(),
+                key: "lastBuildDate",
+                required: 0,
+                timezone_style: 0,
+                title: "Promise Date",
+                type: "DateTimeField"
+              };
+              result.data.rows[i].value["listbox_uid:list"] = {
+                key: "listbox_uid:list",
+                value: 2713
+              };
+            }
+            if (result.data.rows[i].value.hasOwnProperty("description")) {
+              tmp = result.data.rows[i].value.description.split('\n');
+              value = "";
+              for (j = 1; j < tmp.length; j += 1) {
+                // first line of text is the date and status
+                if (!value && tmp[j].trim() !== "") {
+                  value += tmp[j].slice(0, 30);
+                  if (tmp[j].length >= 30 || j + 1 < tmp.length) {
+                    // a part of text is not shown
+                    value += "...";
+                  }
+                }
+              }
+              result.data.rows[i].value.description = value;
+            }
+            if (result.data.rows[i].value.hasOwnProperty("category")) {
+              value = result.data.rows[i].value.category;
+              result.data.rows[i].value.category = {
+                css_class: "",
+                description: "The Status",
+                hidden: 0,
+                "default": value,
+                key: "category",
+                url: "gadget_erp5_field_status.html",
+                title: "Status",
+                type: "GadgetField"
+              };
+              result.data.rows[i].value["listbox_uid:list"] = {
+                key: "listbox_uid:list",
+                value: 2713
+              };
+            }
+          }
+          return result;
+        });
+    })
+
+    /////////////////////////////////////////////////////////////////
+    // declared methods
+    /////////////////////////////////////////////////////////////////
+
+    .declareMethod("triggerSubmit", function () {
+      var argument_list = arguments;
+      return this.getDeclaredGadget('form_list')
+        .push(function (gadget) {
+          return gadget.triggerSubmit.apply(gadget, argument_list);
+        });
+    })
+    .declareMethod("render", function (options) {
+      return this.changeState({
+        options: options,
+        latest_reload_time: new Date().getTime()
+      });
+    })
+    .onStateChange(function () {
+      var gadget = this,
+        lines_limit;
+
+      return new RSVP.Queue()
+        .push(function () {
+          return gadget.getSetting("latest_sync_time");
+        })
+        .push(function (latest_sync_time) {
+          if (latest_sync_time === undefined) {
+            // no sync yet
+            return gadget.redirect({command: "display", options: {page: "ojsm_import_export"}});
+          }
+        })
+        .push(function () {
+          return gadget.getSetting("listbox_lines_limit", 50);
+        })
+        .push(function (listbox_lines_limit) {
+          lines_limit = listbox_lines_limit;
+          return gadget.getDeclaredGadget('form_list');
+        })
+        .push(function (form_list) {
+          var column_list = [
+            ['source', 'Promise'],
+            ['channel_item', 'Software Instance'],
+            ['channel', 'Hosting Subscription'],
+            ['lastBuildDate', 'Promise Date'],
+            ['description', 'Message'],
+            ['category', 'Status']
+          ];
+          return form_list.render({
+            erp5_document: {
+              "_embedded": {"_view": {
+                "listbox": {
+                  "column_list": column_list,
+                  "show_anchor": 0,
+                  "default_params": {},
+                  "editable": 0,
+                  "editable_column_list": [],
+                  "key": "field_listbox",
+                  "lines": lines_limit,
+                  "list_method": "portal_catalog",
+                  "query": "urn:jio:allDocs?query=portal_type%3A%22" +
+                    "promise" + "%22",
+                  "portal_type": [],
+                  "search_column_list": column_list,
+                  "sort_column_list": column_list,
+                  "sort": [["category", "ascending"], ["channel", "ascending"]],
+                  "title": "Monitoring Promises",
+                  "type": "ListBox"
+                }
+              }},
+              "_links": {
+                "type": {
+                  // form_list display portal_type in header
+                  name: ""
+                }
+              }
+            },
+            form_definition: {
+              group_list: [[
+                "bottom",
+                [["listbox"]]
+              ]]
+            }
+          });
+        })
+        .push(function (result) {
+          return gadget.updateHeader({
+            page_title: "Monitoring Promises Status",
+            filter_action: true
+          });
+        });
+    })
+
+    .onLoop(function () {
+      var gadget = this;
+
+      return gadget.getSetting('latest_sync_time')
+        .push(function (latest_sync_time) {
+          if (latest_sync_time > gadget.state.latest_reload_time) {
+            return gadget.changeState({latest_reload_time: new Date().getTime()});
+          }
+        });
+    }, 30000);
+
+}(window, rJS, RSVP));
+
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_message_log_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_status_list_js.xml
similarity index 95%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_message_log_js.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_status_list_js.xml
index bb4da5e31d0788c3220960587f7ccddd26eb42ff..a4608a7650b83fa34fb366e7e19ce1e5138ef97a 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_message_log_js.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_status_list_js.xml
@@ -83,7 +83,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_message_log.js</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_status_list.js</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -93,7 +93,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_message_log_js</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_status_list_js</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -111,7 +111,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Monitoring Erros Logs Gadget JS</string> </value>
+            <value> <string>Monitoring Promise Status List Gadget JS</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -197,7 +197,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1467735483.04</float>
+                        <float>1506516418.22</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -242,7 +242,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.21883.33309.38348</string> </value>
+                <value> <string>963.16563.15280.46899</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -260,7 +260,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1502445069.11</float>
+                        <float>1510052474.13</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -317,7 +317,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1467735415.5</float>
+                        <float>1506516385.15</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_synchronize_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_synchronize_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..fd064310bbb49b89609b588598f9a9a8f3d49489
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_synchronize_html.html
@@ -0,0 +1,17 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <title>OfficeJS Monitor Page synchronize</title>
+
+    <script src="rsvp.js"></script>
+    <script src="renderjs.js"></script>
+    <script src="gadget_erp5_page_ojsm_synchronize.js"></script>
+  </head>
+
+  <body>
+    <div data-gadget-url="gadget_officejs_monitoring_sync.html" data-gadget-scope="sync_gadget" data-gadget-sandbox="public"></div>
+  </body>
+</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_synchronize_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_synchronize_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8e8ae6309c95133ef7db27c6343c81fc9ac27ae7
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_synchronize_html.xml
@@ -0,0 +1,332 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Page" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_synchronize.html</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_erp5_page_ojsm_synchronize_html</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value> <string>en</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Page</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Gadget OJS Monitor Synchronize</string> </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508158905.14</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>962.53016.6432.29064</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508155694.63</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508145466.78</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_synchronize_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_synchronize_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..8e7cdd5811fb163f2de649131de05e8a0d9846c5
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_synchronize_js.js
@@ -0,0 +1,29 @@
+/*global window, rJS */
+/*jslint nomen: true, indent: 2, maxerr: 3*/
+(function (window, rJS) {
+  "use strict";
+
+  rJS(window)
+    /////////////////////////////////////////////////////////////////
+    // Acquired methods
+    /////////////////////////////////////////////////////////////////
+    .declareAcquiredMethod("updateHeader", "updateHeader")
+    .declareAcquiredMethod("redirect", "redirect")
+
+    .declareMethod("render", function () {
+      var gadget = this;
+      return this.updateHeader({
+          page_title: "Monitoring Synchronization"
+        })
+        .push(function () {
+          return gadget.getDeclaredGadget('sync_gadget')
+            .push(function (sync_gadget) {
+              // start synchronization now if possible (not running already)
+              return sync_gadget.registerSync({now: true});
+            });
+        })
+        .push(function () {
+          gadget.redirect({command: "change", options: {page: "ojsm_status_list"}});
+        });
+    });
+}(window, rJS));
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_view_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_synchronize_js.xml
similarity index 94%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_view_js.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_synchronize_js.xml
index e94c93b94fcaeaa915903ff367f60e1d6e64e899..3142a0987d9f91415dad68d3fc6c8922a00b8b3e 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_view_js.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_synchronize_js.xml
@@ -83,7 +83,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_software_instance_view.js</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_synchronize.js</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -93,7 +93,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_software_instance_view_js</string> </value>
+            <value> <string>gadget_erp5_page_ojsm_synchronize_js</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -113,14 +113,18 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Monitoring Software Instance View JS</string> </value>
+            <value> <string>OfficeJS Monitoring Page Synchronze JS</string> </value>
         </item>
         <item>
-            <key> <string>version</string> </key>
+            <key> <string>url_string</string> </key>
             <value>
               <none/>
             </value>
         </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
         <item>
             <key> <string>workflow_history</string> </key>
             <value>
@@ -201,7 +205,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1464252015.64</float>
+                        <float>1508158885.64</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -246,7 +250,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.59703.38142.44032</string> </value>
+                <value> <string>962.53085.48571.55790</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -264,7 +268,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1504711794.22</float>
+                        <float>1508159965.22</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -321,7 +325,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1464251854.13</float>
+                        <float>1508155724.51</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_settings_configurator_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_settings_configurator_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..e9daffce8e67297c0d037ff876f10beed6568b5b
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_settings_configurator_html.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+    <meta name="viewport" content="width=device-width, user-scalable=no" />
+    <title>ERP5 Page Monitoring Settings Configurator</title>
+
+    <!-- renderjs -->
+    <script src="rsvp.js" type="text/javascript"></script>
+    <script src="renderjs.js" type="text/javascript"></script>
+    <script src="handlebars.js" type="text/javascript"></script>
+
+    <script src="gadget_erp5_page_settings_configurator.js" type="text/javascript"></script>
+
+    <script id="template-message-error" type="text/x-handlebars-template">
+      <p><span class='ui-text-{{status}}'>{{message}}</span></p>
+    </script>
+
+  </head>
+  <body>
+    <div data-gadget-url="gadget_officejs_monitoring_jio.html" data-gadget-scope="jio_gadget" data-gadget-sandbox="public"></div>
+    <article class="ui-content ui-body-c">
+      <section class="ui-content-header-plain">
+        <h3 class="ui-content-title ui-body-c">
+          <span class="ui-icon ui-icon-custom ui-icon-gear">&nbsp;</span>
+          Monitoring Configurations
+        </h3>
+      </section>
+    </article>
+    <br/>
+    <form class="save_form ui-body-c" novalidate>
+      <button type="submit" class="ui-btn ui-btn-b ui-btn-inline
+        ui-icon-edit ui-btn-icon-right ui-screen-hidden"></button>
+      <div class="ui-message-alert"></div>
+      <div data-gadget-url="gadget_erp5_form.html"
+              data-gadget-scope="form_view"
+              data-gadget-sandbox="public">
+      </div>
+    </form>
+    <div class="ui-field-contain">
+      <div class="left">
+        <button class="danger-button" id="destroyOPML" data-i18n="Remove All OPML">
+          Remove All OPML
+        </button>
+        <span><i data-i18n="with all associated data">with all associated data</i></span>
+      </div>
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_settings_configurator_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_settings_configurator_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a192562b6f557e203be660c0648e75214dc1baf4
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_settings_configurator_html.xml
@@ -0,0 +1,332 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Page" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_erp5_page_settings_configurator.html</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_erp5_page_settings_configurator_html</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value> <string>en</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Page</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Gadget Officejs Monitoring Settings Configurator</string> </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1509441539.56</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>963.8904.14589.19234</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1509441500.96</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1509441105.7</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_settings_configurator_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_settings_configurator_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..d6ae8758a555d01b474faa735e318315506f3660
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_settings_configurator_js.js
@@ -0,0 +1,309 @@
+/*global window, rJS, RSVP, Handlebars */
+/*jslint nomen: true, indent: 2, maxerr: 3*/
+(function (window, rJS, RSVP, Handlebars) {
+  "use strict";
+
+  var gadget_klass = rJS(window),
+    templater = gadget_klass.__template_element,
+
+    notify_msg_template = Handlebars.compile(
+      templater.getElementById("template-message-error").innerHTML
+    );
+
+  gadget_klass
+    .declareAcquiredMethod("updateHeader", "updateHeader")
+    .declareAcquiredMethod("redirect", "redirect")
+    .declareAcquiredMethod("getSetting", "getSetting")
+    .declareAcquiredMethod("setSetting", "setSetting")
+    .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
+    .declareAcquiredMethod("jio_remove", "jio_remove")
+    .declareAcquiredMethod("getUrlFor", "getUrlFor")
+    .declareAcquiredMethod("notifySubmitting", "notifySubmitting")
+    .declareAcquiredMethod("notifySubmitted", 'notifySubmitted')
+
+    .allowPublicAcquisition("jio_allDocs", function (param_list) {
+      var gadget = this,
+        destroy_element = gadget.element.querySelector("#destroyOPML");
+      return gadget.jio_allDocs(param_list[0])
+        .push(function (result) {
+          var i, value, len = result.data.total_rows;
+          if (result.data.total_rows === 0) {
+            destroy_element.setAttribute("disabled", "disabled");
+          } else if (destroy_element.getAttribute("disabled") === "disabled") {
+            destroy_element.setAttribute("disabled", "");
+          }
+          for (i = 0; i < len; i += 1) {
+            if (result.data.rows[i].value.hasOwnProperty("active")) {
+              result.data.rows[i].value.active = {
+                css_class: "",
+                description: "Is Enabled",
+                hidden: 0,
+                "default": result.data.rows[i].value.active.toString(),
+                key: "active",
+                url: "gadget_erp5_field_status.html",
+                title: "Enabled",
+                type: "GadgetField"
+              };
+              result.data.rows[i].value["listbox_uid:list"] = {
+                key: "listbox_uid:list",
+                value: 2713
+              };
+            }
+          }
+          return result;
+        });
+    })
+
+    /////////////////////////////////////////////////////////////////
+    // declared methods
+    /////////////////////////////////////////////////////////////////
+
+    .onEvent('click', function (event) {
+      var gadget = this,
+        element = gadget.element.querySelector("#destroyOPML");
+
+      function removeAllOPML(result) {
+        var remove_queue = new RSVP.Queue(),
+          i;
+
+        function remove_opml(id) {
+          remove_queue
+            .push(function () {
+              return gadget.jio_remove(id);
+            });
+        }
+
+        for (i = 0; i < result.data.total_rows; i += 1) {
+          remove_opml(result.data.rows[i].id);
+        }
+        return remove_queue;
+      }
+
+      if (element.getAttribute('rel') === 'destroying' &&
+          event.target.id !== "destroyOPML") {
+        element.setAttribute('rel', '');
+        if (element.textContent.startsWith('[Confirm] ')) {
+          element.textContent = element.textContent.slice(10, element.textContent.length);
+        }
+      }
+
+      if (event.target.id === "destroyOPML") {
+        if (element.getAttribute('rel') !== 'destroying') {
+          element.setAttribute('rel', 'destroying');
+          element.textContent = "[Confirm] " + element.textContent;
+          return;
+        }
+
+        return gadget.notifySubmitting()
+          .push(function () {
+            element.setAttribute("disabled", "disabled");
+            return gadget.jio_allDocs({
+              query: 'portal_type: "opml"',
+              select_list: ['title']
+            });
+          })
+          .push(function (result) {
+            return removeAllOPML(result);
+          })
+          .push(function () {
+            return RSVP.all([
+              gadget.notifySubmitted('All OPML removed')
+            ]);
+          })
+          .push(function () {
+            element.textContent = element.textContent.slice(10, element.textContent.length);
+            return gadget.redirect({"command": "reload"});
+          });
+      }
+      event.returnValue = true;
+    })
+    .onEvent('submit', function () {
+      var gadget = this,
+        doc;
+      return gadget.notifySubmitting()
+        .push(function () {
+          return  gadget.getDeclaredGadget('form_view');
+        })
+        .push(function (form_gadget) {
+          return form_gadget.getContent();
+        })
+        .push(function (form_doc) {
+          doc = form_doc;
+          return gadget.setSetting('sync_check_offline',
+            doc.check_online_access === 1 ? 'true' : 'false');
+        })
+        .push(function () {
+          return gadget.setSetting('sync_data_interval',
+                                   parseInt(doc.auto_sync_interval, 10));
+        })
+        .push(function () {
+          return gadget.setSetting('listbox_lines_limit',
+                                   parseInt(doc.listbox_lines_limit, 10));
+        })
+        .push(function () {
+          return RSVP.all([
+            gadget.notifySubmitted('Parameters Updated')
+          ]);
+        });
+    })
+
+    .declareMethod("triggerSubmit", function (event) {
+      return this.element.querySelector('form button[type="submit"]').click();
+    })
+    .declareMethod("render", function (options) {
+      var gadget = this,
+        last_sync_time,
+        sync_data_interval,
+        check_online_access,
+        listbox_lines_limit;
+
+      if (options.url) {
+        // backward compatibility redirect to add opml
+        options.page = "ojsm_opml_add";
+        return gadget.redirect({"command": "change", "options": options});
+      }
+
+      return new RSVP.Queue()
+        .push(function () {
+          return gadget.getSetting('listbox_lines_limit', 20);
+        })
+        .push(function (lines_limit) {
+          listbox_lines_limit = lines_limit;
+          return gadget.getSetting('sync_data_interval', 300000);
+        })
+        .push(function (sync_interval) {
+          sync_data_interval = sync_interval;
+          return gadget.getSetting('latest_sync_time', '');
+        })
+        .push(function (latest_sync_time) {
+          last_sync_time = latest_sync_time;
+          return gadget.getSetting("sync_check_offline", "true");
+        })
+        .push(function (sync_check_offline) {
+          if (sync_check_offline === "true" || sync_check_offline === true ||
+              sync_check_offline === undefined) {
+            check_online_access = "true";
+          } else {
+            check_online_access = "false";
+          }
+          return RSVP.all([
+            gadget.getDeclaredGadget('form_view'),
+            gadget.getSetting("portal_type")
+          ]);
+        })
+        .push(function (result) {
+          var column_list = [
+            ['title', 'OPML Title'],
+            ['url', 'Url'],
+            ['active', 'Enable Sync']
+          ];
+          return result[0].render({
+            erp5_document: {
+              "_embedded": {"_view": {
+                "your_last_sync_date": {
+                  "description": "",
+                  "title": "Last sync date",
+                  "default": new Date(last_sync_time).toUTCString(),
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "last_sync_date",
+                  "hidden": last_sync_time !== '' ? 0 : 1,
+                  "timezone_style": 0,
+                  "date_only": 0,
+                  "type": "DateTimeField"
+                },
+                "my_auto_sync_interval": {
+                  "description": "",
+                  "title": "Auto Sync Time Interval",
+                  "default": (sync_data_interval) + "",
+                  "items": [["5 min", "300000"], ["10 min", "600000"],
+                            ["15 min", "900000"], ["20 min", "1200000"],
+                            ["30 min", "1800000"], ["1 h", "3600000"],
+                            ["2 h", "7200000"]],
+                  "editable": 1,
+                  "key": "auto_sync_interval",
+                  "hidden": 0,
+                  "type": "ListField"
+                },
+                "my_listbox_lines_limit": {
+                  "description": "Listbox Items lines per pages",
+                  "title": "Listbox Items lines",
+                  "default": (listbox_lines_limit) + "",
+                  "items": [["20 lines per page", "20"], ["50 lines per page", "50"],
+                            ["100 lines per page", "100"], ["200 lines per page", "200"],
+                            ["500 lines per page", "500"]],
+                  "editable": 1,
+                  "key": "listbox_lines_limit",
+                  "hidden": 0,
+                  "type": "ListField"
+                },
+                "my_check_online_access": {
+                  "description": "Check Online Access Before Sync",
+                  "title": "Check Online Access",
+                  "default": check_online_access,
+                  "css_class": "",
+                  "editable": 1,
+                  "key": "check_online_access",
+                  "hidden": 0,
+                  "type": "CheckBoxField"
+                },
+                "listbox": {
+                  "column_list": column_list,
+                  "show_anchor": 0,
+                  "default_params": {},
+                  "editable": 1,
+                  "editable_column_list": [],
+                  "key": "monitoring_setting_listbox",
+                  "lines": 20,
+                  "list_method": "portal_catalog",
+                  "query": "urn:jio:allDocs?query=portal_type%3A%22" +
+                    result[1] + "%22",
+                  "portal_type": [],
+                  "search_column_list": column_list,
+                  "sort_column_list": column_list,
+                  "sort": [['title', 'descending']],
+                  "title": "OPML Documents",
+                  "type": "ListBox"
+                }
+              }},
+              "_links": {
+                "type": {
+                  // form_list display portal_type in header
+                  name: ""
+                }
+              }
+            },
+            form_definition: {
+              group_list: [[
+                "left",
+                [["your_last_sync_date"], ["my_auto_sync_interval"],
+                 ["my_listbox_lines_limit"], ["my_check_online_access"]]
+              ],
+              [
+                "right",
+                []
+              ],
+              [
+                "bottom",
+                [["listbox"]]
+              ]]
+            }
+          });
+        })
+        .push(function () {
+          return RSVP.all([
+            gadget.getUrlFor({command: "change", options: {"page": "ojsm_opml_add"}}),
+            gadget.getSetting('document_title')
+          ]);
+        })
+        .push(function (result) {
+          return gadget.updateHeader({
+            page_title: result[1],
+            save_action: true,
+            add_url: result[0]
+          });
+        });
+    });
+
+}(window, rJS, RSVP, Handlebars));
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/jquery.magnific-popup.min.js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_settings_configurator_js.xml
similarity index 93%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/jquery.magnific-popup.min.js.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_settings_configurator_js.xml
index e8cbd43e9f98d921820536950e7f63e2a6954d18..f76a074239420729ee6568ab7a2dbd3426596759 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/jquery.magnific-popup.min.js.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_settings_configurator_js.xml
@@ -24,6 +24,7 @@
             <key> <string>_Add_portal_content_Permission</string> </key>
             <value>
               <tuple>
+                <string>Assignee</string>
                 <string>Assignor</string>
                 <string>Manager</string>
               </tuple>
@@ -42,6 +43,8 @@
             <key> <string>_Modify_portal_content_Permission</string> </key>
             <value>
               <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
                 <string>Manager</string>
               </tuple>
             </value>
@@ -76,7 +79,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>jquery.magnific-popup.min.js</string> </value>
+            <value> <string>gadget_erp5_page_settings_configurator.js</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -86,7 +89,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>jquery.magnific-popup.min.js</string> </value>
+            <value> <string>gadget_erp5_page_settings_configurator_js</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -104,7 +107,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>jquery.magnific-popup.min.js</string> </value>
+            <value> <string>Gadget Officejs Monitoring Settings Configurator JS</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -164,7 +167,7 @@
           <dictionary>
             <item>
                 <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
+                <value> <string>publish_alive</string> </value>
             </item>
             <item>
                 <key> <string>actor</string> </key>
@@ -190,7 +193,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1455013750.58</float>
+                        <float>1509441101.54</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -199,7 +202,7 @@
             </item>
             <item>
                 <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
+                <value> <string>published_alive</string> </value>
             </item>
           </dictionary>
         </list>
@@ -235,7 +238,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>949.2001.9682.56849</string> </value>
+                <value> <string>963.8902.10923.27409</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -253,7 +256,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1455013520.53</float>
+                        <float>1509441073.68</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -310,7 +313,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1455013439.31</float>
+                        <float>1509440963.17</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_application_panel_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_application_panel_html.html
deleted file mode 100644
index 2a3d77d57b323ccf19eef7f3dc3246f7cd8edb05..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_application_panel_html.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
-    <meta name="viewport" content="width=device-width, user-scalable=no" />
-    <title>Monitoring Panel Gadget</title>
-
-    <link rel="stylesheet" href="magnific-popup.css">
-    <link href="gadget_monitoring_custom.css" rel="stylesheet" type="text/css"/>
-    <!-- renderjs -->
-    <script src="rsvp.js" type="text/javascript"></script>
-    <script src="renderjs.js" type="text/javascript"></script>
-    <script src="handlebars.js" type="text/javascript"></script>
-    <script src="gadget_global.js" type="text/javascript"></script>
-    <script src="jquery.js" type="text/javascript"></script>
-    <script src="jquerymobile.js" type="text/javascript"></script>
-
-    <script id="panel-template-header" type="text/x-handlebars-template">
-      <div data-role="header" class="ui-bar-inherit">
-        <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-left">
-          <div class="ui-controlgroup-controls">
-            <form action="#" method="post">
-              <input type="submit" data-i18n="[value]Close" data-icon="delete" data-iconpos="notext" value="Close" />
-            </form>
-          </div>
-        </div>
-        <img class="ui-title" alt="SlapOS Monitoring" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAB2klEQVRIS62V8TkDURDEZyughKhAVEAqQAXoICoQFaACOkAFkgpEB1EBKhjf7+zL90SORG7/SXLZN7M7s/su1BK2tyUdSupVKTNJk4jgc6WIxSzbAF5JOvoF4UHSZURM/2L5RmD7VNJtHvqQtAWQpAtJj9lReU7aWUTc/UYyJ7A9zMpfJEH0JOkmIka2LWkgqZ9kfAd4NzsZtZE0BLaR414S4AeSIDuNiJ5tQJ9LtbbR/y6Jx5L2JR1HBLL9iELAIUwFjANUVJu7eJB8ciaS8OEtInaWElS6kwgoRATaU+F7dnCeYBTBEBD8BxnPlvoRttHyRBLmIQ0HniKi9geiYZka283vBMYvYoxsi11AUCrvM9+2SWr0/2sEV/kfAiaEVstMA8xIXqc0RbJV8EoOeHsUXAiQpyagbaaJ+ceLdYICkZxFHEGA5ixUw5gSoXFDUHuxCottzrFDc4JiMm1h3GsCdUZQlgxg9KYbNrUbgtzkspEAoyG/8WFziZKgXAcYzcJM04tuCJKk3KTNiHXaQZmOnAAuLXzpzoN6/PJNxiMmij2AaJ1Abpb0a0zbTlbzvA54nTuIiHErQWX+f66KWXlvLyWwTYu8rTaNSRsBF2An0UbAFGHWpjH9BL0Y7d/fY0bVAAAAAElFTkSuQmCC"/>
-        <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right">
-          <div class="ui-controlgroup-controls">
-            <a href="#" class="ui-btn ui-btn-icon-notext ui-icon-home" data-i18n="Home">Home</a>
-          </div>
-        </div>
-      </div>
-    </script>
-
-
-    <script id="panel-template-body" type="text/x-handlebars-template">
-      <div class="ui-content">
-        <ul data-role="listview" class="ui-listview">
-          <li><a href="#page=status_list"><i class="fa fa-th-list"></i><span data-i18n="Promises Status">Promises Status</span></a></li>
-          <li><a href="#page=software_instance_list"><i class="fa fa-cube"></i><span data-i18n="Software Instances">Software Instances</span></a></li>
-          <li><a href="#page=hosting_subscription_list"><i class="fa fa-globe"></i><span data-i18n="Hosting Subscriptions">Hosting Subscriptions</span></a></li>
-          <li><a href="#page=settings_configurator"><i class="fa fa-cog"></i><span data-i18n="Monitoring Configuration">Monitoring Configuration</span></a></li>
-          <li><a href="#page=import_export"><i class="fa fa-exchange"></i><span data-i18n="Import / Export">Import / Export</span></a></li>
-        </ul>
-      </div>
-    </script>
-
-    <!-- custom script -->
-    <script src="gadget_monitoring_application_panel.js" type="text/javascript"></script>
-
-  </head>
-  <body>
-  <div class="jqm-navmenu-panel"></div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_application_panel_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_application_panel_html.xml
deleted file mode 100644
index d69874d9541064bad43e7ee0945963524730b0c6..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_application_panel_html.xml
+++ /dev/null
@@ -1,327 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Page" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/team</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/html</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_application_panel.html</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value> <string>Monitoring access</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_application_panel_html</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Page</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring Application Panel Gadget</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>001</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1452070905.39</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.18024.28096.15445</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1502440118.68</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1452070813.26</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_application_panel_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_application_panel_js.js
deleted file mode 100644
index df8b5bb9999b9274493c4e747baef6d1bc2b06e0..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_application_panel_js.js
+++ /dev/null
@@ -1,104 +0,0 @@
-/*jslint nomen: true, indent: 2, maxerr: 3 */
-/*global window, rJS, Handlebars, jQuery, RSVP, loopEventListener */
-(function (window, rJS, Handlebars, $, RSVP, loopEventListener) {
-  "use strict";
-
-  var gadget_klass = rJS(window),
-    source_header = gadget_klass.__template_element
-                         .getElementById("panel-template-header")
-                         .innerHTML,
-    panel_template_header = Handlebars.compile(source_header),
-    source_body = gadget_klass.__template_element
-                         .getElementById("panel-template-body")
-                         .innerHTML,
-    panel_template_body = Handlebars.compile(source_body);
-
-  gadget_klass
-
-    .declareAcquiredMethod("translateHtml", "translateHtml")
-
-    // Assign the element to a variable
-    // Init local properties
-    .ready(function (g) {
-      g.props = {};
-    })
-
-
-    .ready(function (g) {
-      return g.getElement()
-        .push(function (element) {
-          g.props.element = element;
-          g.props.jelement = $(element.querySelector("div"));
-        });
-    })
-
-    .ready(function (g) {
-      g.props.jelement.panel({
-        display: "overlay",
-        position: "left",
-        theme: "b"
-        // animate: false
-      });
-    })
-
-
-    .ready(function (g) {
-      /*return g.translateHtml(panel_template_header() + panel_template_body())
-        .push(function (my_translated_or_plain_html) {
-          g.props.jelement.html(my_translated_or_plain_html);
-          g.props.jelement.trigger("create");
-        });*/
-      var plain_html = panel_template_header() + panel_template_body();
-      g.props.jelement.html(plain_html);
-      g.props.jelement.trigger("create");
-    })
-
-    .declareMethod('toggle', function () {
-      this.props.jelement.panel("toggle");
-    })
-
-    .declareMethod('close', function () {
-      this.props.jelement.panel("close");
-    })
-
-    .declareMethod('render', function () {
-      return;
-    })
-
-    /////////////////////////////////////////////////////////////////
-    // declared services
-    /////////////////////////////////////////////////////////////////
-    .declareService(function () {
-      var panel_gadget,
-        form_list,
-        event_list,
-        i,
-        len;
-
-
-      function formSubmit() {
-        panel_gadget.toggle();
-      }
-
-      panel_gadget = this;
-      form_list = panel_gadget.props.element.querySelectorAll('form');
-      event_list = [];
-
-      // XXX: not robust - Will break when search field is active
-      for (i = 0, len = form_list.length; i < len; i += 1) {
-        event_list[i] = loopEventListener(
-          form_list[i],
-          'submit',
-          false,
-          formSubmit
-        );
-      }
-
-      return new RSVP.Queue()
-        .push(function () {
-          return RSVP.all(event_list);
-        });
-    });
-
-
-}(window, rJS, Handlebars, jQuery, RSVP, loopEventListener));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_application_panel_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_application_panel_js.xml
deleted file mode 100644
index 106e907135158b33e534dda7f265e14fb5348556..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_application_panel_js.xml
+++ /dev/null
@@ -1,329 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Script" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/team</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/javascript</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_application_panel.js</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_application_panel_js</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Script</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring Application Panel Gadget JS</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>001</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1457543185.33</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.21883.33309.38348</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1502445069.04</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1457543137.74</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_breadcrumb_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_breadcrumb_html.html
deleted file mode 100644
index 3555f55d759a98b6c855b6a8e964231eb1140e30..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_breadcrumb_html.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
-    <meta name="viewport" content="width=device-width, user-scalable=no" />
-    <title>Monitoring Breadcrumb</title>
-
-    <!-- renderjs -->
-    <script src="rsvp.js"></script>
-    <script src="renderjs.js"></script>
-    <script src="handlebars.js"></script>
-
-    <script id="breadcrumb-template" type="text/x-handlebars-template">
-      {{#if icon }}
-        <i class="fa fa-{{icon}}" aria-hidden="true"></i>
-      {{/if}}
-      {{#each url_list}}
-        {{#if url }}
-          <span><a href="{{url}}" title="{{title}}">{{title}}</a></span><span>&gt;</span>
-        {{else}}
-          <span>{{ title }}</span>
-        {{/if}}
-      {{/each}}
-    </script>
-
-    <!-- custom script -->
-    <script src="gadget_monitoring_breadcrumb.js" type="text/javascript"></script>
-
-  </head>
-  <body>
-    <div class="monitoring-breadcrumb"></div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_breadcrumb_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_breadcrumb_html.xml
deleted file mode 100644
index 09674760ffd03d44729dfd1d3abd23645f9236b0..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_breadcrumb_html.xml
+++ /dev/null
@@ -1,327 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Page" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/team</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/html</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_breadcrumb.html</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value> <string>Monitoring breadcrumb</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_breadcrumb_html</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Page</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring breadcrumb</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>001</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1455027214.58</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.17556.16247.16128</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1502183719.23</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1455027149.24</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_breadcrumb_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_breadcrumb_js.js
deleted file mode 100644
index aff6a75dfcfec6ff4c2d028d2168319aabf83730..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_breadcrumb_js.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/*global document, window, rJS, Handlebars */
-/*jslint nomen: true, indent: 2, maxerr: 3*/
-(function (window, document, rJS, Handlebars) {
-  "use strict";
-
-  var gadget_klass = rJS(window),
-    templater = gadget_klass.__template_element,
-    breadcrumb_template = Handlebars.compile(
-      templater.getElementById("breadcrumb-template").innerHTML
-    );
-
-  gadget_klass
-    .declareMethod("render", function (options) {
-      var gadget = this,
-        i,
-        content;
-      if (options.url_list === undefined) {
-        options.url_list = [];
-      }
-      content = breadcrumb_template({
-        url_list: options.url_list,
-        icon: options.icon || ''
-      });
-
-      gadget.element.querySelector('.monitoring-breadcrumb')
-        .innerHTML = content;
-      return;
-    });
-
-}(window, document, rJS, Handlebars));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_custom_css.css b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_custom_css.css
deleted file mode 100644
index 4d64481d6c5bd9eaa88d57858bd7a2d0c00c3c2c..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_custom_css.css
+++ /dev/null
@@ -1,956 +0,0 @@
-html head + body.ui-overlay-a, html head + body.ui-overlay-a .ui-page, html head + body.ui-overlay-a .ui-page .ui-panel-wrapper {
-  background: #FBFBFB; 
-}
-
-html .ui-panel .ui-listview li a, html .ui-panel .ui-listview li div.ui-btn {
-    /* padding: .4em 2.75em .4em 1em; */
-    padding: .4em 0.75em !important;
-}
-html .ui-panel .ui-listview li a span, html .ui-panel .ui-listview li div.ui-btn span {
-    padding-left: 15px;
-}
-.ui-mobile .ui-page-active {
-    overflow-x: visible;
-}
-html div[role='main'] > div.ui-content {
-  padding: 5px;
-}
-
-
-
-
-/*
-html .ui-bar-a, html .ui-bar-a .ui-bar-inherit, html body .ui-body-a .ui-bar-inherit, html body .ui-group-theme-a .ui-bar-inherit {
-  background-color: #49227D;
-}
-html head + body .ui-bar-a .ui-btn:hover, html head + body .ui-body-a .ui-btn:hover, html head + body .ui-btn.ui-btn-a:hover, html head + body .ui-group-theme-a .ui-btn:hover, html head + body .ui-group-theme-a .ui-btn.ui-btn-a:hover, html head + body .ui-group-theme-a .ui-btn.ui-btn-a:active, html head + body .ui-bar-a .ui-btn:active, html head + body .ui-body-a .ui-btn:active, html head + body .ui-btn.ui-btn-a:active, html head + body .ui-group-theme-a .ui-btn:active, html head + body .ui-group-theme-a .ui-btn-a:active, html head + body .ui-bar-a .ui-btn.ui-btn-active, html head + body .ui-body-a .ui-btn.ui-btn-active, html head + body .ui-btn.ui-btn-a.ui-btn-active, html head + body .ui-group-theme-a .ui-btn-active, html head + body .ui-group-theme-a .ui-btn-a.ui-btn-active {
-    background-color: #19023E;
-    background: #19023E;
-}
-*/
-.ui-grid-container > ul, .ui-grid-container > ul li {
-  list-style: none outside none;
-  margin-left: 0;
-  margin-right: 0;
-  padding: 0;
-}
-html .ui-grid-container > ul.ui-grid-column-5 > li:nth-child(-n+2).ui-grid-span-4 {
-  width: 80%;
-}
-html .ui-grid-container > ul.ui-grid-column-5 > .ui-grid-span-1 {
-  width: 20%;
-}
-
-html .ui-title .ui-title-bold {
-  font-weight: bold;
-}
-
-.ui-grid-container > ul > li:first-child {
-  clear: left;
-}
-.ui-grid-container > ul > li {
-  float: left;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -ms-box-sizing: border-box;
-  box-sizing: border-box;
-}
-/*.ui-grid-container .ui-grid-a .ui-block-a, .ui-grid-container .ui-grid-a .ui-block-a {
-  padding: 10px 15px;
-}
-.ui-grid-container .ui-grid-b .ui-block-a, .ui-grid-container .ui-grid-b .ui-block-b {
-  padding: 10px 15px;
-}*/
-/*
-@media (max-width: 32em)
-html.ui-mobile .ui-grid-container.ui-responsive > ul > li, html.ui-mobile .ui-grid-container.ui-responsive > ul[class*="ui-grid-column"] > li {
-  width: 100%;
-}*/
-
-.margin-0 {margin: 0}
-.padding-5 {padding: 5px;}
-.padding-10 {padding: 10px;}
-.padding-15 {padding: 15px;}
-.padding-20 {padding: 20px;}
-.padding-tb-5 {padding: 10px 0;}
-.padding-tb-10 {padding: 10px 0;}
-.padding-tb-20 {padding: 20px 0;}
-.padding-lr-5 {padding: 0 5px;}
-.padding-lr-10 {padding: 0 10px;}
-.padding-lr-20 {padding: 0 20px;}
-.padding-lrb-20 {padding: 0 20px 20px;}
-.border-gray {    border: 1px solid #C3C3C3; border-radius: 3px;}
-.ui-text{
-  padding: 0 10px;
-}
-.ui-text-pre {
-  white-space: pre-wrap;
-}
-.ui-text-left {text-align: left;}
-.ui-text-right {text-align: right;}
-.ui-text-center {
-  text-align: center;
-}
-.ui-text-ERROR, .ui-text-error {
-  color: #DC4343;
-}
-.ui-text-INFO, .ui-text-info {
-  color: #DC4343;
-}
-.ui-text-OK, .ui-text-ok {
-  color: green;
-}
-.ui-text-WARNING, .ui-text-warning {
-  color: #cea813;
-  text-shadow: 1px 0px 0px rgb(224, 224, 116);
-}
-
-.ui-text-desabled {
-  color: rgba(128, 128, 128, 0.66);
-}
-
-.text-data {
-  height: 120px;
-  color: #596167;
-}
-
-.text-overview {
-  max-width: 200px;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-  overflow: hidden;
-}
-
-.header-notice {
-  margin-top: 5px;
-  margin-left: 20px;
-  color: #5C676D;
-  font-size: .95em;
-}
-
-.ui-content .ui-table {
-  border: 1px solid rgba(0,0,0,.05);
-}
-
-.ui-panel-overview {
-  background: #fff;
-  margin: 15px 10px 20px 10px;
-  border: 1px solid #f1f5fc;
-  border-radius: 4px;
-}
-
-.overview-content {
-  padding: 0 20px 20px;
-}
-.overview-header {
-  padding: 5px;
-}
-
-.overview-header > .content-title {
-  color: #535354;
-  background-color: transparent;
-  padding: 10px 15px 5px 15px;
-  line-height: 16px;
-}
-
-.overview-header > .content-title:after {
-  content: "";
-  display: block;
-  clear: both;
-  border-bottom: 1px solid #ddd;
-  padding-top: 10px;
-}
-
-.content-title > .overview-title {
-  float: left;
-  display: block;
-  font-size: 18px;
-  line-height: 18px;
-}
-
-.content-title > .overview-title a {
-  text-decoration: none;
-}
-
-.content-title > .commands {
-  display: block;
-  padding: 0;
-  margin: 0;
-  float: right;
-  font-size: 1.2em;
-}
-
-.content-details {
-  padding: 20px;
-}
-.content-details h2:first-child {
-  margin-top: 0;
-}
-
-.content-details .ui-block-a {
-  font-weight: bold;
-  padding: 5px;
-}
-.content-details .ui-block-b {
-  font-weight: normal;
-  padding: 5px;
-  white-space: nowrap;
-}
-
-html .ui-panel-overview table {
-  border: 1px solid rgba(0,0,0,.05);
-  border-bottom: none;
-}
-
-html .content-details table tr th, html .content-details table tr td {
-  padding: 7px;
-}
-/*html .content-details .instances-parameters table tr td {
-  padding: 0 0 0 10px;
-}*/
-html .content-details .instances-parameters table tr td:first-child {
-  width: 25%;
-}
-html .content-details .instances-parameters table tr td:last-child {
-  padding: 0;
-  width: 50px;
-}
-html .promise-list table tr {
-  cursor: pointer;
-}
-.promise-list {
-  padding: 10px;
-}
-
-.ui-table-custom tr td, .ui-table-custom tr td {
-  padding: .2em .3em;
-  vertical-align: middle;
-}
-
-table tr .prop-edit {
-  cursor: pointer;
-}
-
-.header-form-overview {
-  padding: 0 10px;
-}
-
-.ui-panel-overview .panel-body {
-  padding: 15px;
-  padding-top: 0;
-  line-height: 26px;
-}
-.overview-header .ui-field-contain, .listbox-header .ui-field-contain {
-  padding-left: 5px;
-}
-.ui-content .ui-panel-overview .ui-listview-inset {
-    margin: 1em 0;
-    margin-top: 0.1em;
-}
-
-.ui-content-sections {
-  margin-top: 1em;
-  padding: 1em;
-  -webkit-border-radius: .3125em;
-  border-radius: .3125em;
-  border: 1px solid #A2A2A2;
-}
-
-html head + body h2.section-title {
-  margin: 0;
-  margin-top: 40px;
-  color: #557186;
-  margin-left: 2px;
-}
-
-html head + body h2.section-title > span {
-  font-size: 22px;
-  padding-left: 10px;
-}
-
-html head + body .ui-panel-overview > h2 {
-  font-weight: bold;
-  font-size: 105%;
-  padding: 0 15px;
-}
-
-.ui-status-icon {
-  display: inline-block;
-}
-.ui-status-icon:before {
-  display: inline-block;
-  content: "";
-  vertical-align: middle;
-  height: 2.5em;
-  width: 2.5em;
-  cursor: pointer;
-  background: #DC4343;
-}
-
-.ui-status-icon-fx:before {
-  height: 3.5em;
-  width: 3.5em;
-}
-
-.ui-status-text, a span.ui-status-text {
-  font-weight: bold;
-  padding-left: 7px;
-  font-size: 1.09em;
-  /*top: 13px;
-  left: 40px;
-  position: absolute;*/
-}
-
-.ui-status-ok:before, .ui-status-OK:before {
-  background: green;
-}
-.ui-status-error:before, .ui-status-ERROR:before {
-  background: #DC4343;
-}
-.ui-status-warning:before, .ui-status-WARNING:before {
-  background: #f0ad4e;
-}
-.status-text-ok:before, .status-text-OK:before {
-  color: green;
-}
-.status-text-error:before, .status-text-ERROR:before {
-  color: #DC4343;
-}
-.status-text-warning:before, .status-text-WARNING:before {
-  color: #f0ad4e;
-}
-
-.label-warning, .label-WARNING {
-  background-color: #f0ad4e;
-}
-.label-error, .label-ERROR {
-  background-color: #DC4343;
-}
-.label-ok, .label-OK {
-  background-color: green;
-}
-.label-info, .label-INFO {
-  background-color: #79c1d9;
-}
-.label {
-  display: inline;
-  padding: .4em .8em;
-  font-weight: 700;
-  line-height: 2.1em;
-  color: #fff;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: baseline;
-  border-radius: .25em;
-}
-.label-text {
-  display: block;
-  margin: .6em 0 .4em;
-  font-weight: 400;
-  font-size: 16px;
-  text-transform: capitalize;
-}
-
-.ui-content-hidden {
-  display: none;
-}
-
-.ui-listview-container {
-  padding: 10px;
-}
-.ui-block-a .ui-listview-container:first-child, .ui-block-b .ui-listview-container:first-child, .ui-block-c .ui-listview-container:first-child {
-  padding-top: 0;
-}
-.ui-panel-overview .ui-listview-container {
-  padding: 0;
-}
-.ui-listview-container ul {
-  padding: 0;
-}
-.ui-listview-container ul li a.ui-btn {
-  text-align: left;
-}
-ul li .ui-collapse-content {
-  background-color: #fff;
-  border-color: #ddd;
-  color: #333;
-  text-shadow: 0 1px 0 #f3f3f3;
-  margin: 0;
-  padding: .5em 1em;
-  border-right-width: 1px;
-  border-left-width: 1px;
-  border-top-width: 1px;
-  border-bottom-width: 0;
-  border-style: solid;
-}
-ul li:last-child .ui-collapse-content {
-  border-top-width: 0;
-  -webkit-border-bottom-right-radius: inherit;
-  border-bottom-right-radius: inherit;
-  -webkit-border-bottom-left-radius: inherit;
-  border-bottom-left-radius: inherit;
-}
-
-ul li .ui-collapse-content fieldset > div, ul li .ui-collapse-content fieldset > span {
-  padding: 5px 0;
-}
-
-.controlgroup-textinput{
-  padding-top:.22em;
-  padding-bottom:.22em;
-}
-
-.ui-promise-title > h2 {
-  color: #797979;
-  background-color: transparent;
-  /*border-bottom: 1px solid #ddd;*/
-  font-size: 1.1em !important;
-  padding-bottom: .2em;
-  margin: 0 0 .7375em;
-}
-
-.ui-instance-title > h2 {
-  color: #194173;
-}
-.ui-instance-title span {
-  padding-left: 5px;
-}
-.ui-content .ui-promise-content .ui-promise-title > h2, .ui-content .ui-responsive .ui-instance-title > h2 {
-  font-size: 1.1em;
-}
-
-.overview-header .ui-input-text input, .listbox-header .ui-input-text input {
-  padding: .6em;
-}
-
-#promise-overview .ui-block-b, #promise-overview .ui-block-a, #promise-overview .ui-block-c {
-  padding: 10px;
-}
-
-.ui-table-columntoggle-btn {display: none;}
-
-.ui-icon-grid:after {
-  content: "\f00b";
-}
-.ui-icon-bullets:after {
-  content: "\f009";
-}
-
-.column-check {
-  width: 54px;
-  padding-top: 5px;
-}
-
-.listbox-filter-panel, .overview-filter-panel {
-  padding: 1em;
-  padding-top: .1em;
-}
-html.ui-mobile body .listbox-filter-panel h2, html.ui-mobile body .listbox-filter-panel h3 {
-  font-weight: bold;
-}
-body .listbox-filter-panel h2{
-  text-align: center;
-  font-size: 110%;
-}
-body .listbox-filter-panel h3{
-  text-align: left;
-  font-size: 105%;
-}
-
-html table tbody td a, html table tbody th a {
-  padding: .4em .75em;
-}
-html table tbody td a.inline-link, html table tbody th a.inline-link {
-  margin: -8px;
-  margin-top: -6px;
-}
-html .custom-grid-wrap table thead tr th {
-  font-weight: 800;
-}
-
-/* LEGEND CHART */
-.legend {
-  list-style: none;
-  font-size: 12px;
-}
-.legend ul li {
-    list-style: none;
-}
-.legend:before {
-  display: block;
-  content: "";
-  clear: both;
-}
-.legend li {
-  float: left;
-  font-size: 12px;
-  padding-right: 10px;
-}
-.legend li span {
-  display: inline-block;
-  height: 10px;
-  width: 10px;
-  margin-right: 5px;
-}
-
-/* Graph */
-.graph {
-  margin: 20px 0;
-  position: relative;
-}
-.graph-label {
-  font-size: 75%;
-}
-.dygraph-xlabel {
-  font-size: 110%;
-  color: #344558;
-  padding: 8px 0;
-}
-.graph-full {
-  margin: 0 20px;
-  position: relative;
-}
-.graph-medium {
-  height: 320px;
-  width: 98%;
-}
-.graph-h-medium {
-  height: 320px;
-  width: 98%;
-  margin: 30px;
-}
-.ui-grid-column .graph-state-labels {
-  margin: 10px;
-}
-.ui-grid-column .graph-state-labels label{
-  font-weight: normal;
-}
-
-.hosting-block, .content-medium {
-  width: 80%;
-}
-
-/*  INfo Box */
-.infobox {
-  display: inline-block;
-  height: 54px;
-  color: #555;
-  background-color: #FFF;
-  box-shadow: none;
-  margin: -1px 0 0 -1px;
-  margin: 5px 0;
-  padding: 8px 3px 6px 9px;
-  border: 1px solid;
-  border-color: #D8D8D8;
-  vertical-align: middle;
-  text-align: left;
-  position: relative;
-  /*cursor: pointer;*/
-}
-.infobox:hover {
-    background: rgba(128, 128, 128, .1);
-}
-
-.infobox>.infobox-icon {
-  display: inline-block;
-  vertical-align: top;
-  padding-top: 10px;
-  width: 44px;
-}
-
-.infobox>.infobox-data {
-  display: inline-block;
-  border-width: 0;
-  font-size: 13px;
-  text-align: left;
-  line-height: 21px;
-  min-width: 130px;
-  padding-left: 8px;
-  position: relative;
-  top: 0;
-}
-
-.infobox>.infobox-data>.infobox-data-number {
-  display: block;
-  font-size: 22px;
-  margin: 2px 0 4px;
-  position: relative;
-  text-shadow: 1px 1px 0 rgba(0,0,0,.15);
-}
-
-.infobox .infobox-content {
-    color: #555;
-    max-width: 140px;
-}
-
-/*  Log Box */
-
-.logbox {
-  padding: 15px 20px 20px;
-}
-
-.logbox .description {
-  padding-bottom: 15px;
-  border-bottom: 1px dashed #e6e6e6;
-  display: block;
-  color: #7b7b7b;
-}
-
-.logbox tr {
-  line-height: 23px;
-  border-bottom: 1px solid #e6e6e6;
-}
-
-.logbox tr td {
-  color: #7b7b7b;
-  padding: 10px;
-  cursor: pointer;
-}
-
-.tooltipster-shadow {
-	border-radius: 5px;
-	background: #fff;
-	box-shadow: 0px 0px 14px rgba(0,0,0,0.3);
-	color: #2c2c2c;
-}
-.tooltipster-shadow .tooltipster-content {
-	font-family: 'Arial', sans-serif;
-	font-size: 14px;
-	line-height: 16px;
-	padding: 8px 10px;
-}
-
-span.tooltipster-icon {
-  display: block;
-  cursor: help;
-  margin-left: 4px;
-  background: #0078c9;
-  border: 3px solid #0078c9;
-  width: 2.3em;
-  height: 2.3em;
-  padding: 0.4em 0 0;
-  border-radius: 100%;
-  box-sizing: border-box;
-  color: #fff;
-  font-size: 0.6em;
-  line-height: 1em;
-  font-weight: 700;
-  text-align: center;
-  margin: -0.3em 0 0 0;
-  float: right;
-  clear: right;
-}
-
-span.tooltipster-icon:hover {
-  background: #fff;
-  color: #5d6365;
-  border: 3px solid #5d6365;
-  cursor: pointer;
-}
-
-.tooltipster-light {
-	border-radius: 5px; 
-	border: 1px solid #cccccc;
-	background: #ededed;
-	color: #666666;
-}
-.tooltipster-light .tooltipster-content {
-	font-family: Arial, sans-serif;
-	font-size: 14px;
-	line-height: 16px;
-	padding: 8px 10px;
-}
-.tooltipster-light .tooltipster-content p, .tooltipster-shadow .tooltipster-content p {
-  margin: 5px;
-  font-size: 12px;
-}
-
-html .tooltipster-base table{
-  border: 1px solid rgba(0,0,0,.05);
-}
-
-html .tooltipster-base table td, html .tooltipster-base table th {
-  padding: 5px;
-}
-
-html table.instance-overview tr td > a.selected {
-  border-left: 4px solid #93D2B8;
-  border-color: #93D2B8;
-}
-
-html table.instance-overview td:first-child > a, html table.instance-overview td:first-child > a:hover {
-  border-left: 4px solid transparent;
-}
-
-.login-box {
-  position: fixed;
-  top: 35%;
-  left: 50%;
-  margin-top: -50px;
-  margin-left: -150px;
-  width: 320px;
-}
-
-/* Hpanel box for hosting subscription */
-.hpanel {
-  background-color: none;
-  border: none;
-  box-shadow: none;
-  margin-bottom: 25px;
-}
-
-.hpanel .panel-body {
-  min-height: 150px;
-  background: #fff;
-  border: 1px solid #e4e5e7;
-  color: #6a6c6f;
-  border-radius: 2px;
-  padding: 20px;
-  position: relative;
-}
-
-.hpanel > .panel-footer {
-  color: inherit;
-  border: 1px solid #e4e5e7;
-  border-top: none;
-  font-size: 90%;
-  background: #f7f9fa;
-  padding: 10px 15px;
-}
-
-.panel-header {
-  padding: 10px 5px;
-  color: #6a6c6f;
-  text-transform: uppercase;
-  font-weight: 600;
-}
-
-.panel-footer {
-  padding: 10px 15px;
-  background-color: #f5f5f5;
-  border-top: 1px solid #ddd;
-  border-bottom-right-radius: 3px;
-  border-bottom-left-radius: 3px;
-}
-
-.hpanel .panel-body > h2:first-child {
-  margin-top: 0;
-  color: #6a6c6f;
-  text-transform: uppercase;
-  font-weight: 600;
-  float: left;
-}
-
-.panel-body:before, .panel-body:after {
-  display: table;
-  content: " ";
-}
-
-.panel-body:after {
-  clear: both;
-}
-
-
-/* Magnific Popup */
-.white-popup {
-  position: relative;
-  background: #FFF;
-  padding: 20px;
-  width: auto;
-  max-width: 300px;
-  margin: 20px auto;
-}
-
-/* Alert box custom */
-.alert {
-  padding: 8px 35px 8px 14px;
-  margin-bottom: 8px;
-  margin-top: 8px;
-  color: #c09853;
-  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
-  background-color: #fcf8e3;
-  border: 1px solid #fbeed5;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  white-space: pre-line;
-}
-
-.alert-heading {
-  color: inherit;
-}
-
-.alert .close {
-  position: relative;
-  top: -2px;
-  right: -21px;
-  line-height: 18px;
-}
-
-.alert-success {
-  color: #468847;
-  background-color: #dff0d8;
-  border-color: #d6e9c6;
-}
-
-.alert-danger,
-.alert-error {
-  color: #b94a48;
-  background-color: #f2dede;
-  border-color: #eed3d7;
-}
-
-.alert-info {
-  color: #3a87ad;
-  background-color: #d9edf7;
-  border-color: #bce8f1;
-}
-
-.alert-block > p,
-.alert-block > ul {
-margin-bottom: 0;
-}
-
-.alert-block p + p {
-margin-top: 5px;
-}
-
-/******** LOADER *******************/
-
-.loader {
-  height: 4px;
-  width: 100%;
-  position: relative;
-  overflow: hidden;
-  background-color: #ddd;
-}
-.loader:before{
-  display: block;
-  position: absolute;
-  content: "";
-  left: -200px;
-  width: 200px;
-  height: 4px;
-  background-color: #2980b9;
-  animation: loading 2s linear infinite;
-}
-
-@keyframes loading {
-  from {left: -200px; width: 30%;}
-  50% {width: 30%;}
-  70% {width: 70%;}
-  80% { left: 50%;}
-  95% {left: 120%;}
-  to {left: 100%;}
-}
-
-.signal {
-  border: 4px solid #024352;
-  border-radius: 50px;
-  height: 50px;
-  left: 50%;
-  margin: -15px 0 0 -15px;
-  /*opacity: 0;*/
-  position: absolute;
-  top: 40px;
-  width: 50px;
-  /*animation: pulsate .5s ease-out;
-  animation-iteration-count: infinite;*/
-  animation: rotate 0.8s infinite linear;
-  border-right-color: transparent;
-  z-index: 100;
-}
-
-@keyframes rotate {
-  0%    { transform: rotate(0deg); }
-  100%  { transform: rotate(360deg); }
-}
-
-@keyframes pulsate {
-  0% {
-    transform: scale(.1);
-    opacity: 0.0;
-  }
-  50% {
-    opacity: 1;
-  }
-  100% {
-    transform: scale(1.2);
-    opacity: 0;
-  }
-}
-
-.loadbox {
-  width: 100%;
-  overflow: auto;
-  position: relative;
-  cursor: pointer;
-  border: 1px solid #efefef;
-  background-color: #f1f1f1;
-}
-
-.load-content {
-  overflow: auto;
-  min-height: 250px;
-  background-color: #fff;
-}
-
-html body div.loadbox .loadwait > a {
-  color: #335d77;
-  text-decoration: none;
-  font-size: 1.5em;
-  text-align: center;
-  display: block;
-  margin: 99px auto;
-  padding: 15px;
-  width: 40%;
-  cursor: pointer;
-  border: 1px solid #dadada;
-}
-
-/************** Media @ **********************/
-@media all and (max-width: 62em) {
-  .m-hidden {
-    display: none;
-  }
-  form.search .ui-block-a {
-    width: 60%;
-    float: left;
-  }
-  form.search .ui-block-b {
-    width: 40%;
-    float:left;
-  }
-  .ui-panel-overview {
-    margin: 15px 0 20px 0;
-  }
-  html .ui-content {
-    padding: .1em;
-  }
-  html .jqm-navmenu-panel .ui-content {
-    padding: 1em;
-  }
-  .graph {
-    margin: 10px 0;
-  }
-  .graph-full {
-    margin: 0 10px;
-  }
-  .hosting-block, .content-medium {
-    width: 100%;
-  }
-  html table:not(.ui-responsive) tbody tr td:first-child a, html table:not(ui-responsive) tbody tr th:first-child a {
-    position: relative;
-  }
-  html .content-details .instances-parameters table tr td {
-    padding: 10px 0 10px 10px;
-  }
-  .content-details {
-    padding: 10px;
-  }
-  table td .prop-edit {
-    padding: 5px;
-    max-height: 2.05em;
-  }
-}
-
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_html.html
deleted file mode 100644
index dc31800c06fb3692b30aaf122409b41b9a5f3188..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_html.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
-    <meta name="viewport" content="width=device-width, user-scalable=no" />
-    <title>Monitoring Document Edit Page</title>
-
-    <link rel="stylesheet" href="magnific-popup.css">
-    <link href="gadget_monitoring_custom.css" rel="stylesheet" type="text/css"/>
-    <!-- renderjs -->
-    <script src="rsvp.js" type="text/javascript"></script>
-    <script src="renderjs.js" type="text/javascript"></script>
-
-    <script id="login-toltip-template" type="text/x-handlebars-template">
-    </script>
-
-    <script id="monitor-parameters-template" type="text/x-handlebars-template">
-      {{#each parameter_list}}
-        <span class="label-text">{{title}}:</span>
-        {{#if key}}
-        <input type="text" name="{{key}}" placeholder="{{title}}" value="{{value}}" data-mini="true">
-        {{else}}
-        <input type="text" name="{{key}}" placeholder="{{title}}" value="{{value}}" data-mini="true"  disabled="disabled">
-        {{/if}}
-      {{/each}}
-    </script>
-
-    <!-- magnific-popup -->
-    <script src="jquery.magnific-popup.min.js" type="text/javascript"></script>
-    <!-- custom script -->
-    <script src="gadget_monitoring_document_edit.js" type="text/javascript"></script>
-
-  </head>
-  <body>
-    <div data-gadget-url="gadget_monitoring_jio.html" data-gadget-scope="jio_gadget" data-gadget-sandbox="public"></div>
-    <div class="white-popup mfp-hide">
-      <div class="ui-promise-title"><h2 style="font-size: 1.1em;"></h2></div>
-      <form>
-        <div data-role="content">
-          <div class="form-controlgroup">
-            
-          </div>
-        </div>
-        <div class="padding-5">
-          <span class="ui-text-error"></span>
-        </div>
-        <div>
-          <button type="button" class="ui-btn ui-corner-all ui-btn-inline cancel"><i class="fa fa-times"></i> Cancel</button>
-          <button type="submit" class="ui-btn ui-corner-all ui-btn-inline save"><i class="fa fa-floppy-o"></i> Save</button>
-          <div class="ui-content-hidden spinner">
-            <i class="fa fa-spinner fa-spin"></i>
-          </div>
-        </div>
-      </form>
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_js.js
deleted file mode 100644
index 01e44090c42e3452b012cf175139eab7fda4ea3f..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_js.js
+++ /dev/null
@@ -1,173 +0,0 @@
-/*global document, window, rJS, $ */
-/*jslint nomen: true, indent: 2, maxerr: 3*/
-(function (window, document, rJS, $) {
-  "use strict";
-
-  var gadget_klass = rJS(window),
-    templater = gadget_klass.__template_element,
-    parameters_widget_template = Handlebars.compile(
-      templater.getElementById("monitor-parameters-template").innerHTML
-    );
-
-  function getFormDataList(formElement, parameter_list) {
-    var i,
-      formData_list = [];
-    for (i = 0; i < parameter_list.length; i += 1) {
-      formData_list.push(parameter_list[i]);
-      if (parameter_list[i].key) {
-        // Editable fields
-        if (formElement.querySelector('input[name="' + parameter_list[i].key + '"]').value !== undefined) {
-          formData_list[i].value = formElement.querySelector('input[name="' +
-            parameter_list[i].key + '"]').value;
-        }
-      }
-    }
-    return formData_list;
-  }
-
-  function saveDocument(gadget, document_id, jio_document) {
-    // Authenticate before save
-    return gadget.props.jio_gadget.put(document_id, jio_document)
-      .push(function (result) {
-        return {status: 'OK'};
-      }, function (error) {
-        console.log(error);
-        return {status: 'ERROR', code: error.target.status};
-      });
-  }
-
-  gadget_klass
-    .ready(function (g) {
-      g.props = {};
-      return g.getElement()
-        .push(function (element) {
-          g.props.element = element;
-          g.props.deferred = RSVP.defer();
-        });
-    })
-    .ready(function (gadget) {
-      return gadget.getDeclaredGadget("jio_gadget")
-        .push(function (jio_gadget) {
-          gadget.props.jio_gadget = jio_gadget;
-        });
-    })
-    .declareMethod("render", function (options) {
-      var gadget = this;
-      return new RSVP.Queue()
-      .push(function () {
-          gadget.props.jio_gadget.createJio({
-            type: "query",
-            sub_storage: {
-              type: "drivetojiomapping",
-              sub_storage: {
-                type: "dav",
-                url: options.url,
-                basic_login: options.basic_login
-              }
-            }
-          });
-          gadget.props.options = options;
-          return gadget.props.deferred.resolve();
-        });
-    })
-    .declareMethod("popupEdit", function (options, updateMethod) {
-      var gadget = this,
-        title = 'Edit - ' + options.title,
-        html_form = '';
-      html_form = parameters_widget_template({
-        parameter_list: options.parameters || []
-      });
-
-      gadget.props.element.querySelector('.form-controlgroup')
-        .innerHTML = html_form;
-      gadget.props.element.querySelector('.ui-promise-title h2')
-        .textContent = title;
-
-      return new RSVP.Queue()
-        .push(function () {
-          return $.magnificPopup.open({
-            items: {
-                src: '.white-popup',
-                type: 'inline'
-            },
-            closeBtnInside: true,
-            callbacks: {
-              open: function() {
-                return new RSVP.Queue()
-                  .push(function () {
-                    return $('.white-popup form').trigger("create");
-                  })
-                  .push(function () {
-                    var promise_list = [];
-
-                    promise_list.push(loopEventListener(
-                      document.querySelector('.mfp-content form .cancel'),
-                      'click',
-                      false,
-                      function (evt) {
-                        return $.magnificPopup.close();
-                      }
-                    ));
-                    promise_list.push(loopEventListener(
-                      document.querySelector('.mfp-content form .save'),
-                      'click',
-                      false,
-                      function (evt) {
-                        var data = getFormDataList(
-                          document.querySelector('.mfp-content form'),
-                          options.parameters);
-                        return new RSVP.Queue()
-                          .push(function () {
-                            $(document.querySelector('.mfp-content spinner'))
-                              .toggleClass('ui-content-hidden');
-                            return RSVP.all([saveDocument(
-                              gadget,
-                              options.document_id,
-                              data
-                            )]);
-                          })
-                          .push(function (result) {
-                            if (result[0].status === 'ERROR') {
-                              document.querySelector('.mfp-content .ui-text-error')
-                                .innerHTML = 'ERROR ' + result[0].code +
-                                  ': Failed to save your document! ' +
-                                  "Parameters cannot be saved in Offline mode.";
-                            } else {
-                              $.magnificPopup.close();
-                              return updateMethod(data);}
-                          })
-                          .push(function () {
-                            $(document.querySelector('.mfp-content spinner'))
-                              .toggleClass('ui-content-hidden');
-                          });
-                      }
-                    ));
-                    return RSVP.all(promise_list);
-                  });
-              },
-              close: function() {
-                // Will fire when popup is closed
-                $('.white-popup').remove();
-              }
-            }
-          });
-        })
-        .push(function () {
-          return gadget.props.deferred.resolve();
-        });
-    })
-
-
-    .declareService(function () {
-      var gadget = this;
-
-      return new RSVP.Queue()
-        .push(function () {
-          return gadget.props.deferred.promise;
-        })
-        .push(function () {
-
-        });
-    });
-
-}(window, document, rJS, $));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_header_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_header_html.html
deleted file mode 100644
index f6bbc52720532e1c7ecc9169c1f4c94a5c95e4be..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_header_html.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
-    <meta name="viewport" content="width=device-width, user-scalable=no" />
-    <title>OfficeJS Header</title>
-
-    <!-- renderjs -->
-    <script src="rsvp.js" type="text/javascript"></script>
-    <script src="renderjs.js" type="text/javascript"></script>
-    <script src="handlebars.js" type="text/javascript"></script>
-    <script src="gadget_global.js" type="text/javascript"></script>
-
-    <!-- custom script -->
-    <script src="gadget_monitoring_header.js" type="text/javascript"></script>
-
-    <script id="header-title-link-template" type="text/x-handlebars-template"><a data-i18n="{{title}}" class="ui-btn ui-btn-icon-left ui-icon-arrow-down" href="{{url}}">{{title}}</a></script>
-    <script id="header-title-template" type="text/x-handlebars-template"><span data-i18n="{{title}}" class="ui-title-bold">{{title}}</span></script>
-
-    <script id="header-link-template" type="text/x-handlebars-template">
-      {{#if url}}
-        <a role="button" data-i18n="{{title}}" href="{{url}}" class="responsive ui-btn ui-icon-{{icon}} ui-btn-icon-left ui-first-child ui-last-child {{class}}">{{title}}</a>
-      {{else}}
-        <button data-i18n="{{title}}" class='responsive ui-btn ui-icon-{{icon}} ui-btn-icon-left ui-first-child ui-last-child {{class}}'>{{title}}</button>
-      {{/if}}
-    </script>
-
-    <script id="header-button-template" type="text/x-handlebars-template">
-       <form><button name='{{name}}' data-i18n="{{title}}" type='submit' class='responsive ui-btn ui-icon-{{icon}} ui-btn-icon-left ui-first-child ui-last-child {{class}}'>{{title}}</button></form>
-    </script>
-
-  </head>
-  <body>
-    <div data-gadget-url="gadget_monitoring_sync.html" data-gadget-scope="sync_gadget" data-gadget-sandbox="public"></div>
-    <!--div data-role="header" data-theme="a" class="ui-header ui-bar-a" data-position="fixed" data-tap-toggle="false"-->
-    <div data-role="header" data-position="fixed" data-theme="a" class="ui-header ui-bar-a" data-tap-toggle="false">
-
-    <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-left">
-      <div class="ui-controlgroup-controls">
-      </div>
-    </div>
-    <h1 class="ui-title"></h1>
-
-    <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right">
-      <div class="ui-controlgroup-controls">
-      </div>
-    </div>
-
-  </div>
-
-  </body>
-</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_header_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_header_html.xml
deleted file mode 100644
index 29bc5f0025769e4897a052465eee1bbf1ed18202..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_header_html.xml
+++ /dev/null
@@ -1,329 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Page" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/team</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/html</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_header.html</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_header_html</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Page</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Gadget Monitoring Header</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>001</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1452260349.19</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.18061.23530.41557</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1502378533.63</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1452260293.17</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_header_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_header_js.js
deleted file mode 100644
index 5777d26e10ccc731d29016ff8f440aaec284fb1f..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_header_js.js
+++ /dev/null
@@ -1,348 +0,0 @@
-/*jslint nomen: true, indent: 2, maxerr: 3 */
-/*global window, rJS, Handlebars, document, loopEventListener, RSVP */
-(function (window, rJS, Handlebars, document, loopEventListener, RSVP) {
-  "use strict";
-
-  /////////////////////////////////////////////////////////////////
-  // Handlebars
-  /////////////////////////////////////////////////////////////////
-  // Precompile the templates while loading the first gadget instance
-  var gadget_klass = rJS(window),
-
-    header_title_source = gadget_klass.__template_element
-                         .getElementById("header-title-template")
-                         .innerHTML,
-    header_title_template = Handlebars.compile(header_title_source),
-
-    header_title_link_source = gadget_klass.__template_element
-                         .getElementById("header-title-link-template")
-                         .innerHTML,
-    header_title_link_template = Handlebars.compile(header_title_link_source),
-
-    header_button_source = gadget_klass.__template_element
-                         .getElementById("header-button-template")
-                         .innerHTML,
-    header_button_template = Handlebars.compile(header_button_source),
-    header_link_source = gadget_klass.__template_element
-                         .getElementById("header-link-template")
-                         .innerHTML,
-    header_link_template = Handlebars.compile(header_link_source);
-
-  gadget_klass
-    /////////////////////////////////////////////////////////////////
-    // ready
-    /////////////////////////////////////////////////////////////////
-    // Init local properties
-    .ready(function (g) {
-      g.props = {};
-      g.stats = {
-        loaded: false,
-        modified: false,
-        submitted: true,
-        error: false,
-        options: {}
-      };
-    })
-
-    // Assign the element to a variable
-    .ready(function (g) {
-      return g.getElement()
-        .push(function (element) {
-          g.props.element = element;
-          g.props.left_link = element.querySelector(".ui-btn-left > div");
-          g.props.right_link = element.querySelector(".ui-btn-right > div");
-          g.props.title_element = element.querySelector("h1");
-          g.props.start_deferred = RSVP.defer();
-        });
-    })
-
-    .ready(function (g) {
-      return g.getDeclaredGadget("sync_gadget")
-        .push(function (sync_gadget) {
-          g.props.sync_gadget = sync_gadget;
-        });
-    })
-
-/*
-    .ready(function (g) {
-      return g.render(g.stats.options);
-    })
-*/
-    //////////////////////////////////////////////
-    // acquired methods
-    //////////////////////////////////////////////
-    .declareAcquiredMethod("translateHtml", "translateHtml")
-    .declareAcquiredMethod("getUrlFor", "getUrlFor")
-    .declareAcquiredMethod("triggerSubmit", "triggerSubmit")
-    .declareAcquiredMethod("triggerPanel", "triggerPanel")
-
-    /////////////////////////////////////////////////////////////////
-    // declared methods
-    /////////////////////////////////////////////////////////////////
-/*
-    .declareMethod('notifyError', function () {
-      this.stats.loaded = true;
-      this.stats.submitted = true;
-      this.stats.error = true;
-      var gadget = this;
-      return this.render(this.stats.options)
-        .push(function () {
-          gadget.stats.error = false;
-        });
-    })
-    .declareMethod('notifyUpdate', function () {
-      return this.render(this.stats.options);
-    })
-*/
-    .declareMethod('notifyLoading', function () {
-      if (this.stats.loaded) {
-        this.stats.loaded = false;
-        return this.render(this.stats.options);
-      }
-    })
-    .declareMethod('notifyLoaded', function () {
-      if (!this.stats.loaded) {
-        this.stats.loaded = true;
-        return this.render(this.stats.options);
-      }
-    })
-
-    .declareMethod('notifyChange', function () {
-      if (!this.stats.modified) {
-        this.stats.modified = true;
-        return this.render(this.stats.options);
-      }
-    })
-    .declareMethod('notifySubmitting', function () {
-      if (this.stats.submitted) {
-        this.stats.submitted = false;
-        return this.render(this.stats.options);
-      }
-    })
-    .declareMethod('notifySubmitted', function () {
-      if (!this.stats.submitted) {
-        this.stats.submitted = true;
-        // Change modify here, to allow user to redo some modification and being correctly notified
-        this.stats.modified = false;
-        return this.render(this.stats.options);
-      }
-    })
-
-    .declareMethod('render', function (options) {
-      var gadget = this,
-        possible_left_link_list = [
-          // ['menu_url', 'Menu', 'bars'],
-          ['selection_url', 'Back', 'arrow-left'],
-          ['view_url', 'View', 'check'],
-          ['cancel_url', 'Cancel', 'times'],
-          ['back_url', 'Back', 'arrow-left']
-        ],
-        possible_left_button_list = [
-          ['panel_action', 'Menu', 'bars', 'panel']
-        ],
-        possible_right_link_list = [
-          ['edit_url', 'Edit', 'pencil'],
-          ['add_url', 'Add', 'plus'],
-          ['new_url', 'New', 'plus'],
-          ['refresh_url', 'Refresh', 'refresh']
-        ],
-        possible_right_button_list = [
-          ['save_action', 'Save', 'check', 'submit'],
-          ['submit_action', 'Proceed', 'check', 'submit']
-        ],
-        i,
-        klass,
-        //left_link = {
-        //  title: "Menu",
-        //  icon: "bars",
-        //  url: "#leftpanel",
-          // class: "ui-disabled"
-        // },
-        left_link,
-        left_button,
-        right_link,
-        right_button,
-        default_right_text,
-        default_right_icon = "",
-        title_link = {},
-        promise_list = [];
-
-      gadget.stats.options = options;
-      // Handle main title
-      if (options.hasOwnProperty("title")) {
-        title_link.title = options.title;
-        // Updating globally the page title. Does not follow RenderJS philosophy, but, it is enough for now
-        document.title = title_link.title;
-      }
-      if (options.hasOwnProperty("breadcrumb_url")) {
-        title_link.url = options.breadcrumb_url;
-        promise_list.push(gadget.translateHtml(header_title_link_template(title_link)));
-      } else {
-        promise_list.push(gadget.translateHtml(header_title_template(title_link)));
-      }
-
-      // Handle left link
-      for (i = 0; i < possible_left_link_list.length; i += 1) {
-        if (options.hasOwnProperty(possible_left_link_list[i][0])) {
-          klass = "";
-          if (!options[possible_left_link_list[i][0]]) {
-            klass = "ui-disabled";
-          }
-          left_link = {
-            title: possible_left_link_list[i][1],
-            icon: possible_left_link_list[i][2],
-            url: options[possible_left_link_list[i][0]],
-            class: klass
-          };
-        }
-      }
-      for (i = 0; i < possible_left_button_list.length; i += 1) {
-        if (options.hasOwnProperty(possible_left_button_list[i][0])
-            && options[possible_left_button_list[i][0]]) {
-          left_button = {
-            title: possible_left_button_list[i][1],
-            icon: possible_left_button_list[i][2],
-            name: possible_left_button_list[i][3]
-          };
-        }
-      }
-      if (left_button !== undefined) {
-        promise_list.push(gadget.translateHtml(header_button_template(left_button)));
-      } else if (left_link === undefined) {
-        promise_list.push(gadget.translateHtml(""));
-      } else {
-        promise_list.push(gadget.translateHtml(header_link_template(left_link)));
-      }
-
-      // Handle right link
-      if (gadget.stats.error) {
-        default_right_icon = "exclamation";
-      } else if (!gadget.stats.loaded) {
-        default_right_icon = "spinner";
-        // Show default loading information
-        right_link = {
-          title: "Loading",
-          icon: default_right_icon,
-          url: "",
-          class: "ui-disabled ui-icon-spin"
-        };
-      } else if (!gadget.stats.submitted) {
-        default_right_icon = "spinner";
-      } else if (gadget.stats.modified) {
-        default_right_text = "Save";
-        default_right_icon = "warning";
-      }
-      for (i = 0; i < possible_right_link_list.length; i += 1) {
-        if (options.hasOwnProperty(possible_right_link_list[i][0])) {
-          klass = "";
-          if (!options[possible_right_link_list[i][0]]) {
-            klass = "ui-disabled";
-          }
-          right_link = {
-            title: possible_right_link_list[i][1],
-            icon: default_right_icon || possible_right_link_list[i][2],
-            url: options[possible_right_link_list[i][0]],
-            class: klass
-          };
-        }
-      }
-      for (i = 0; i < possible_right_button_list.length; i += 1) {
-        if (options.hasOwnProperty(possible_right_button_list[i][0])
-            && options[possible_right_button_list[i][0]]) {
-          right_button = {
-            title: default_right_text || possible_right_button_list[i][1],
-            icon: default_right_icon || possible_right_button_list[i][2],
-            name: possible_right_button_list[i][3]
-          };
-          if (gadget.stats.error) {
-            right_button.class = "ui-disabled";
-          }
-        }
-      }
-      if (right_button !== undefined) {
-        promise_list.push(gadget.translateHtml(header_button_template(right_button)));
-      } else if (right_link !== undefined) {
-        promise_list.push(gadget.translateHtml(header_link_template(right_link)));
-      } else {
-        promise_list.push(gadget.translateHtml(""));
-      }
-
-      // sync button
-      promise_list.push(gadget.translateHtml(header_link_template({
-        title: "Sync",
-        icon: "refresh",
-        url: "",
-        class: "sync-all"
-      })));
-
-      return new RSVP.Queue()
-        .push(function () {
-          return RSVP.all(promise_list);
-        })
-        .push(function (my_translated_html_list) {
-          gadget.props.title_element.innerHTML = my_translated_html_list[0];
-          gadget.props.left_link.innerHTML = my_translated_html_list[1];
-          gadget.props.right_link.innerHTML = my_translated_html_list[2];
-          gadget.props.left_link.innerHTML += my_translated_html_list[3];
-        })
-        .push(function () {
-          return gadget.props.start_deferred.resolve();
-        });
-    })
-
-    //////////////////////////////////////////////
-    // handle button click
-    //////////////////////////////////////////////
-    .declareService(function () {
-      var gadget = this;
-
-      function formSubmit(evt) {
-        var button = evt.target[0],
-          name = button.getAttribute("name");
-        if (name === "panel") {
-          return gadget.triggerPanel();
-        }
-        if (name === "submit") {
-          return gadget.triggerSubmit();
-        }
-        throw new Error("Unsupported button " + name);
-      }
-
-      return new RSVP.Queue()
-      .push(function () {
-        return gadget.props.start_deferred.promise;
-      })
-      .push(function () {
-        // set auto sync timer
-        return gadget.props.sync_gadget.startSync();
-      })
-      .push(function () {
-        var promise_list = [];
-
-        /*promise_list.push(loopEventListener(
-          gadget.element.querySelector('.sync-all'),
-          'click',
-          false,
-          function () {
-            return gadget.props.sync_gadget.startSync({now: true});
-          }
-        ));*/
-        promise_list.push(
-          $(gadget.element).
-            on("click", "button.sync-all", function () {
-              return gadget.props.sync_gadget.startSync({now: true});
-            })
-        );
-        // Listen to form submit
-        promise_list.push(loopEventListener(
-          gadget.element,
-          'submit',
-          false,
-          formSubmit
-        ));
-
-        return RSVP.all(promise_list);
-      });
-    });
-
-}(window, rJS, Handlebars, document, loopEventListener, RSVP));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_header_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_header_js.xml
deleted file mode 100644
index b8ab747f469b6bc7306dfd559c90366410c7f8ff..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_header_js.xml
+++ /dev/null
@@ -1,329 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Script" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/team</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/javascript</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_header.js</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_header_js</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Script</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Gadget Monitoring Header JS</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>001</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1452260201.8</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.21883.33309.38348</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1502445069.06</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1452260156.14</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_list_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_list_html.html
deleted file mode 100644
index a4dfb1e6e440b53e6eb03aa21db17bb1d2dda1c5..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_list_html.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    <title>Monitoring Hosting Subscription</title>
-
-    <link href="gadget_monitoring_custom.css" rel="stylesheet" type="text/css"/>
-
-    <script src="rsvp.js"></script>
-    <script src="renderjs.js"></script>
-
-    <script id="template-hostings-list" type="text/x-handlebars-template">
-      {{#each hosting_list}}
-      <tr>
-        <td>
-          <a class="ui-link" href="{{href}}"><span class="label label-{{status}}">{{status}}</span></a>
-        </td>
-        <td>
-          <a class="ui-link" href="{{href}}">{{title}}</a>
-        </td>
-        <td class="m-hidden">
-          <a class="ui-link" href="{{href}}">{{date}}</a>
-        </td>
-        <td class="m-hidden">
-          <a class="ui-link" href="{{href}}">{{amount}}</a>
-        </td>
-      </tr>
-      {{/each}}
-    </script>
-
-    <script src="gadget_monitoring_hosting_subscription_list.js"></script>
-  </head>
-
-  <body>
-    <!--<div data-gadget-url="gadget_monitoring_document_edit.html" data-gadget-scope="config_gadget" data-gadget-sandbox="public"></div>-->
-    <div class="ui-panel-overview hosting-list" style="min-height: 450px;">
-      <div class="overview-header">
-        <div class='content-title ui-instance-title'>
-          <div class="overview-title">
-            <i class="fa fa-globe"></i> <span>Hosting Subscriptions</span>
-          </div>
-          <div class="commands">
-          </div>
-        </div>
-      </div>
-      <div class="overview-content">
-      
-        <div class="ui-listview-container">
-          <table class="ui-responsive ui-body-c ui-table-inset instance-overview">
-            <thead class="ui-bar-inherit">
-              <tr>
-                <th class="padding-10">Status</th>
-                <th>Hosting Subscription Name</th>
-                <th class="m-hidden">Status Date</th>
-                <th class="m-hidden">Software Instance Amount</th>
-              </tr>
-            </thead>
-            <tbody>
-
-            </tbody>
-            <tfoot class="ui-bar-inherit"></tfoot>
-          </table>
-        </div>
-
-      </div>
-    </div>
-
-  </body>
-</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_list_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_list_js.js
deleted file mode 100644
index e4b7eb460a58ad1b53221f7080cc41aafb64b22f..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_list_js.js
+++ /dev/null
@@ -1,186 +0,0 @@
-/*global window, rJS, Handlebars */
-/*jslint nomen: true, indent: 2, maxerr: 3*/
-(function (window, rJS, Handlebars) {
-  "use strict";
-
-  var gadget_klass = rJS(window),
-    templater = gadget_klass.__template_element,
-
-    hosting_widget_template = Handlebars.compile(
-      templater.getElementById("template-hostings-list").innerHTML
-    );
-
-  function getHostingData(gadget) {
-    // optimized way to fetch hosting subscription list
-    var hosting_dict = {},
-      instance_dict = {};
-    return gadget.jio_allDocs({
-          select_list: ["basic_login", "url", "title"],
-          query: '(portal_type:"opml") AND (active:true)',
-          sort_on: [["title", "descending"]]
-        })
-      .push(function (result) {
-        var i;
-        for (i = 0; i < result.data.total_rows; i += 1) {
-          hosting_dict[result.data.rows[i].id] = {
-            url: result.data.rows[i].value.url,
-              basic_login: result.data.rows[i].value.basic_login,
-              status: "WARNING",
-              date: 'Not Synchronized',
-              title: result.data.rows[i].value.title,
-              amount: 0
-          };
-        }
-        return gadget.jio_allDocs({
-          query: '(portal_type:"opml-outline")',
-          select_list: [
-            "parent_url"
-          ]
-        });
-      })
-      .push(function (result) {
-        var i;
-        for (i = 0; i <result.data.total_rows; i += 1) {
-          if (hosting_dict.hasOwnProperty(result.data.rows[i].value.parent_url)) {
-            instance_dict[result.data.rows[i].id] = {
-              parent_id: result.data.rows[i].value.parent_url
-            };
-          }
-        }
-        return gadget.jio_allDocs({
-          query: '(portal_type:"global")',
-          select_list: [
-            "status",
-            "parent_id",
-            "date"
-          ]
-        });
-      })
-      .push(function (result) {
-        var i;
-        for (i = 0; i < result.data.total_rows; i += 1) {
-          if (instance_dict.hasOwnProperty(result.data.rows[i].value.parent_id)) {
-            instance_dict[result.data.rows[i].value.parent_id].date =
-              result.data.rows[i].value.date;
-            instance_dict[result.data.rows[i].value.parent_id].status =
-              result.data.rows[i].value.status;
-          }
-        }
-      })
-      .push(function () {
-        //build hosting subscription data
-        var key,
-          item;
-        for (key in instance_dict) {
-          if (instance_dict.hasOwnProperty(key)) {
-            item = hosting_dict[instance_dict[key].parent_id];
-            item.amount += 1;
-            if (item.status !== "ERROR") {
-              item.status = instance_dict[key].status;
-            }
-            item.date = instance_dict[key].date;
-          }
-        }
-        return gadget.changeState({opml_dict: hosting_dict});
-      });
-  }
-
-  gadget_klass
-    .setState({
-      render_deferred: "",
-      opml_dict: ""
-    })
-    .ready(function (gadget) {
-      gadget.props = {};
-      return gadget.changeState({"render_deferred": RSVP.defer()});
-    })
-    .declareAcquiredMethod("getSetting", "getSetting")
-    .declareAcquiredMethod("setSetting", "setSetting")
-    .declareAcquiredMethod("updateHeader", "updateHeader")
-    .declareAcquiredMethod("renderApplication", "renderApplication")
-    .declareAcquiredMethod('jio_allDocs', 'jio_allDocs')
-    .declareMethod("render", function (options) {
-      var gadget = this;
-
-      gadget.props.options = options;
-      return gadget.updateHeader({
-          title: 'Monitoring Hosting Subscriptions'
-        })
-        .push(function () {
-          return getHostingData(gadget);
-        })
-        .push(function () {
-          var content,
-            key,
-            hosting_list = [],
-            cred_list;
-
-          for (key in gadget.state.opml_dict) {
-            if (gadget.state.opml_dict.hasOwnProperty(key)) {
-              if (gadget.state.opml_dict[key].date === 'Not Synchronized') {
-                cred_list = atob(gadget.state.opml_dict[key].basic_login).split(':');
-                gadget.state.opml_dict[key].href = '#page=settings_configurator' +
-                  '&tab=add&url=' + gadget.state.opml_dict[key].url +
-                  '&username=' + cred_list[0] + '&password=' + cred_list[1];
-              } else {
-                gadget.state.opml_dict[key].href = "#page=hosting_subscription_view&key=" +
-                  gadget.state.opml_dict[key].url;
-              }
-            }
-            hosting_list.push(gadget.state.opml_dict[key]);
-          }
-          content = hosting_widget_template({
-            hosting_list: hosting_list
-          });
-          gadget.element.querySelector('.hosting-list table tbody')
-            .innerHTML = content;
-
-          return gadget.state.render_deferred.resolve();
-        });
-    })
-
-
-    .declareService(function () {
-      var gadget = this,
-        current_sync_date;
-
-      return new RSVP.Queue()
-        .push(function () {
-          return gadget.state.render_deferred.promise;
-        })
-        .push(function () {
-          return gadget.getSetting('latest_sync_time');
-        })
-        .push(function (sync_time) {
-          current_sync_date = sync_time;
-          return gadget.getSetting('status_list_refresh_id');
-        })
-        .push(function (timer_id) {
-          var new_timer_id;
-          if (timer_id) {
-            clearInterval(timer_id);
-          }
-          new_timer_id = setInterval(function() {
-            var hash = window.location.toString().split('#')[1],
-              scroll_position,
-              doc = document.documentElement;
-            if (hash.indexOf('page=hosting_subscription_list') >= 0) {
-              return gadget.getSetting('latest_sync_time')
-                .push(function (sync_time) {
-                  if (sync_time > current_sync_date) {
-                    scroll_position = (window.pageYOffset || doc.scrollTop)  - (doc.clientTop || 0);
-                    current_sync_date = sync_time;
-                    return gadget.renderApplication({args: gadget.props.options})
-                      .push(function () {
-                        $(document).scrollTop(scroll_position);
-                      });
-                  }
-                });
-            }
-          }, 60000);
-          return gadget.setSetting('status_list_refresh_id', new_timer_id);
-        });
-
-    });
-
-}(window, rJS, Handlebars));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_html.html
deleted file mode 100644
index 71d0f244c58cb50de0d1c111915dc1f615631fba..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_html.html
+++ /dev/null
@@ -1,161 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    <title>Monitoring Hosting Subscription View</title>
-
-    <link href="gadget_monitoring_custom.css" rel="stylesheet" type="text/css"/>
-
-    <script src="rsvp.js"></script>
-    <script src="renderjs.js"></script>
-
-    <script id="instance-details-widget-overview" type="text/x-handlebars-template">
-      {{#if status_list_url}}
-      <!--<div data-role="controlgroup">
-        <a class="ui-btn ui-corner-all" href="{{status_list_url}}" title="Promises"><i class="fa fa-check-square"></i> Promises</a>
-      </div>-->
-      {{/if}}
-      <div class="ui-listview-container">
-        <ul data-role="listview" class="ui-listview-outer" data-inset="true">
-          {{#each instance_list}}
-            <li>
-              <a href="#" class="ui-btn ui-btn-icon-right ui-icon-plus">
-              <span class="ui-status-icon ui-status-{{status}}"></span>
-              <span class="ui-status-text">{{title}}</span>
-              </a>
-              <div class="ui-collapse-content ui-content-hidden">
-                <fieldset>
-                  <div>
-                    <div style="float: left; margin-right: 10px;">
-                      <fieldset data-role="controlgroup" data-type="horizontal">
-                        {{#if ../status_list_url}}
-                        <a class="ui-btn ui-corner-all ui-btn-inline ui-mini" href="{{../status_list_url}}" title="Instance Promises List"><i class="fa fa-check-square"></i> Promises</a>
-                        {{/if}}
-                        {{#if instance_url}}
-                        <a class="ui-btn ui-corner-all ui-btn-inline ui-mini" href="{{instance_url}}" title="Access Software Instance"><i class="fa fa-cube"></i> Instance</a>
-                        {{/if}}
-                        <!--
-                        {{#if public_url}}
-                        <a class="ui-btn ui-corner-all ui-btn-inline ui-mini" target='_blank' href="{{public_url}}" title="Public Logs Directory"><i class="fa fa-folder-open-o"></i> Public Logs</a>
-                        {{/if}}
-                        {{#if private_url}}
-                        <a class="ui-btn ui-corner-all ui-btn-inline ui-mini" target='_blank' href="{{private_url}}" title="Browse Private Logs Directory"><i class="fa fa-lock"></i> Private Logs</a>
-                        {{/if}}
-                        -->
-                      </fieldset>
-                    </div>
-                    <div style="float: left">
-                      <fieldset data-role="controlgroup" data-type="horizontal">
-                        {{#if rss_url}}
-                        <a class="ui-btn ui-corner-all ui-btn-inline ui-mini" target='_blank' href="{{rss_url}}" title="RSS"><i class="fa f-2x fa-rss-square"></i></a>
-                        {{/if}}
-                        {{#if resource_url }}
-                        <a href="{{resource_url}}" class="ui-btn ui-corner-all ui-btn-inline ui-mini" title="Instance Resource comsumption"><i class="fa f-2x fa-pie-chart"> Ressources</i></a>
-                        {{/if}}
-                        {{#if process_url }}
-                        <a href="{{process_url}}" class="ui-btn ui-corner-all ui-btn-inline ui-mini" title="Processes usage"><i class="fa f-2x fa-list-alt"></i> Processes</a>
-                        {{/if}}
-                      </fieldset>
-                    </div>
-                    <div class="clear"></div>
-                  </div>
-                  <table data-role="table" data-mode="columntoggle" class="ui-responsive table-stroke">
-                    <tr>
-                      <th><i class="fa fa-tachometer"></i> <strong>Status</strong></th>
-                      <td><span class="label label-{{status}}">{{status}}</span></td>
-                      <td>{{date}}</td>
-                    </tr>
-                    
-                    {{#with instance}}
-                    <tr>
-                      <th><i class="fa fa-desktop"></i> <strong>Computer</strong></th>
-                      <td title="Computer Reference">{{computer}}</td>
-                      <td title="Partition Reference">{{partition}}</td>
-                    </tr>
-                    <tr>
-                      <th><i class="fa fa-globe"></i> <strong>IP Addresses</strong></th>
-                      <td title="IPv4">{{ipv4}}</td>
-                      <td title="IPv6">{{ipv6}}</td>
-                    </tr>
-                    <tr>
-                      <th><i class="fa fa-square-o" aria-hidden="true"></i> <strong>Software Type</strong></th>
-                      <td title="Software type">{{software-type}}</td>
-                      <td><a style="padding: 0; min-height: initial;" href="{{software-release}}" title="{{software-release}}" target='_blank'>Click to open <i class="fa fa-external-link"></i></a></td>
-                    </tr>
-                    {{/with}}
-                  </table>
-                  {{#if warning}}
-                  <p class="ui-text-error"><i class="fa fa-info-circle" aria-hidden="true"></i> Status was changed to WARNING as last sync of this instance failed.</p>
-                  {{/if}}
-                </fieldset>
-              </div>
-            </li>
-          {{/each}}
-        </ul>
-      </div>
-    </script>
-
-    <script id="parameters-widget-template" type="text/x-handlebars-template">
-      {{#if parameter_list}}
-        {{#each parameter_list}}
-          {{#if parameters}}
-          <h3 class="margin-0 padding-tb-10">{{title}} <i class="fa fa-angle-up"></i></h3>
-          <table data-role="table" data-mode="columntoggle" class="table-stroke" title="{{title}}">
-            {{#each parameters}}
-              <tr>
-                <td><strong>{{title}}</strong></td>
-                {{#if key}}
-                  <td class="v-{{key}}">{{value}}</td>
-                {{else}}
-                  <td>{{value}}</td>
-                {{/if}}
-                <td class="ui-text-center">
-                  {{#if key}}
-                  <a rel="{{../index}}" class="prop-edit" title='Edit this value'><i class="fa fa-pencil"></i></a>
-                  {{else}}
-                  <a><span class="ui-text-desabled" title='Edit this value'><i class="fa fa-pencil"></i></span></a>
-                  {{/if}}
-                </td>
-              </tr>
-            {{/each}}
-          </table>
-          {{/if}}
-        {{/each}}
-        <div class="alert alert-info ui-content-hidden">Your changes will be persistent in this screen after the next sync!</div>
-      {{else}}
-        <h2>No parameters.</h2>
-      {{/if}}
-    </script>
-    
-    <script src="gadget_monitoring_hosting_subscription_view.js"></script>
-
-  </head>
-
-  <body>
-    <div class="ui-responsive hosting-block">
-      <div class="signal ui-content-hidden"></div>
-      <div class="ui-panel-overview">
-        <div class="overview-header">
-          <div class='content-title ui-instance-title'>
-            <div class="overview-title">
-              <i class="fa fa-share-alt"></i> <span></span>
-            </div>
-            <div class="commands">
-            </div>
-          </div>
-        </div>
-        <div class="content-details">
-          <h2><i class="fa fa-wrench"></i> <strong>Monitoring Parameters</strong></h2>
-          <div style="overflow: auto;" class="padding-lr-10 instances-parameters">
-          </div>
-          <div class="padding-5"></div>
-          <h2><i class="fa fa-cubes"></i> <strong>Software Instances Status</strong></h2>
-          <div class="instances-status">
-          </div>
-        </div>
-      </div>
-    </div>
-  </body>
-</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_js.js
deleted file mode 100644
index 2581d50aeffb118158f74429ac2f0c30b4ccc9e2..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_js.js
+++ /dev/null
@@ -1,278 +0,0 @@
-/*global window, rJS, btoa, Handlebars, $, Rusha */
-/*jslint nomen: true, indent: 2, maxerr: 3*/
-(function (window, rJS, btoa, Handlebars, $, Rusha) {
-  "use strict";
-
-  var gadget_klass = rJS(window),
-    templater = gadget_klass.__template_element,
-
-    parameters_widget_template = Handlebars.compile(
-      templater.getElementById("parameters-widget-template").innerHTML
-    ),
-    instance_widget_template = Handlebars.compile(
-      templater.getElementById("instance-details-widget-overview").innerHTML
-    ),
-    rusha = new Rusha();
-
-  function generateHash(str) {
-    return rusha.digestFromString(str);
-  }
-
-  function getInstanceDict(gadget, monitor_dict) {
-    var private_url = monitor_dict._links.private_url.href
-        .replace("jio_private", "private"),
-      public_url = monitor_dict._links.public_url.href
-        .replace("jio_public", "public"),
-      pass_url = "https://" + atob(gadget.state.opml.basic_login) +
-              "@" + private_url.split("//")[1],
-      i;
-
-      for (i = 0; i < monitor_dict.parameters.length; i += 1) {
-        if (monitor_dict.parameters[i].key === "monitor-password") {
-          // disabled edit of monitor password from here!!
-          monitor_dict.parameters[i].key = "";
-        }
-      }
-
-    return {
-      key: monitor_dict.reference,
-      title: monitor_dict.title,
-      date: monitor_dict.date,
-      status: monitor_dict.status,
-      instance: monitor_dict._embedded.instance || '',
-      public_url: public_url,
-      private_url: pass_url,
-      rss_url: monitor_dict._links.rss_url.href || '',
-      resource_url: "#page=resource_view&key=" + monitor_dict.parent_id,
-      process_url: "#page=process_view&key=" + monitor_dict.parent_id,
-      instance_url: "#page=software_instance_view&key=" + monitor_dict.reference,
-      parameters: monitor_dict.parameters,
-      warning: (monitor_dict.status.toUpperCase() === "WARNING") ? true : false
-    };
-  }
-
-  gadget_klass
-    .setState({
-      render_deferred: "",
-      opml: "",
-      instance_list: ""
-    })
-    .ready(function (gadget) {
-      gadget.props = {};
-      return gadget.changeState({"render_deferred": RSVP.defer()});
-    })
-    .declareAcquiredMethod("redirect", "redirect")
-    .declareAcquiredMethod("getSetting", "getSetting")
-    .declareAcquiredMethod("setSetting", "setSetting")
-    .declareAcquiredMethod("updateHeader", "updateHeader")
-    .declareAcquiredMethod('jio_allDocs', 'jio_allDocs')
-    .declareAcquiredMethod('jio_get', 'jio_get')
-    .declareMethod("render", function (options) {
-      var gadget = this;
-      gadget.props.options = options;
-      return gadget.updateHeader({
-          title: 'Hosting Subscriptions View'
-        })
-        .push(function () {
-          return gadget.jio_get(options.key);
-        })
-        .push(function (opml_doc) {
-          return gadget.changeState({opml: opml_doc});
-        })
-        .push(function () {
-          return gadget.jio_allDocs({
-              query: '(portal_type:"opml-outline") AND (parent_id:"' +
-                generateHash(options.key) + '")'
-          });
-        })
-        .push(function (ouline_list) {
-          var j,
-            promise_list = [];
-          for (j = 0; j < ouline_list.data.total_rows; j += 1) {
-            // fetch all instances
-            promise_list.push(
-              gadget.jio_allDocs({
-                select_list: [
-                  "reference",
-                  "parent_id",
-                  "status",
-                  "date",
-                  "_embedded",
-                  "_links",
-                  "parameters",
-                  "title"],
-                query: '(portal_type:"global") AND (parent_id:"' +
-                  ouline_list.data.rows[j].id + '")'
-              })
-            );
-          }
-          return RSVP.all(promise_list);
-        })
-        .push(function (document_list) {
-          var parameter_content,
-            instance_list = [],
-            parameter_list = [],
-            status_url = '',
-            instance_dict,
-            i,
-            instance_content;
-
-          gadget.element.querySelector('.hosting-block .overview-title span')
-            .textContent = gadget.state.opml.title;
-
-          for (i = 0; i < document_list.length; i += 1) {
-            // Only one instance per opml-outline
-            if (document_list[i].data.total_rows === 1) {
-              instance_dict = getInstanceDict(
-                gadget,
-                document_list[i].data.rows[0].value
-              );
-              instance_list.push(instance_dict);
-              if (document_list[i].data.rows[0].value.hasOwnProperty('parameters')) {
-                parameter_list.push({
-                  title: document_list[i].data.rows[0].value.title,
-                  parameters: instance_dict.parameters,
-                  base_url: document_list[i].data.rows[0].value
-                    ._links.private_url.href || '',
-                  index: i
-                });
-              }
-            }
-          }
-          status_url = "#page=status_list&search=" + gadget.state.opml.title
-            + "&reset_filter=1";
-          parameter_content = parameters_widget_template({
-            parameter_list: parameter_list
-          });
-          instance_content = instance_widget_template({
-            instance_list: instance_list,
-            status_list_url: status_url
-          });
-
-          gadget.element.querySelector('.hosting-block .instances-parameters')
-            .innerHTML = parameter_content;
-          gadget.element.querySelector('.hosting-block .instances-status')
-            .innerHTML = instance_content;
-          return gadget.changeState({instance_list: instance_list});
-        })
-        .push(function () {
-          return gadget.state.render_deferred.resolve();
-        })
-        .push(function () {
-          $(".hosting-block .signal").addClass("ui-content-hidden");
-          return $(gadget.element.querySelectorAll('.hosting-block .ui-listview-outer')).listview().listview("refresh");
-        });
-    })
-
-    .declareService(function () {
-      var gadget = this;
-
-      function bindOnClick(element) {
-        var fieldset = $(element.parentNode.querySelector('.ui-collapse-content')),
-            line = $(element);
-        if (line.hasClass('ui-icon-plus')) {
-          line.removeClass('ui-icon-plus');
-          line.addClass('ui-icon-minus');
-        } else {
-          line.removeClass('ui-icon-minus');
-          line.addClass('ui-icon-plus');
-        }
-        if (fieldset !== undefined) {
-          fieldset.toggleClass('ui-content-hidden');
-        }
-        return false;
-      }
-
-      function updateParameterBox(parameter_list, title) {
-        var element = gadget.element.querySelector('table[title="' + title + '"]'),
-          i;
-
-        if (!element) {
-          return;
-        }
-        for (i = 0; i < parameter_list.length; i += 1) {
-          if (!parameter_list[i].key) {
-            continue;
-          }
-          element.querySelector('.v-' + parameter_list[i].key)
-            .textContent = parameter_list[i].value;
-        }
-      }
-
-      function editMonitorProps (element) {
-        var index = parseInt($(element).attr('rel'), 10),
-          promise_list = [];
-    
-        if (isNaN(index) || gadget.state.instance_list.length < index) {
-          return;
-        }
-        
-        return new RSVP.Queue()
-          .push(function () {
-            if (gadget.props.config_gadget) {
-              return gadget.dropGadget('config_gadget');
-            }
-            return false;
-          })
-          .push(function () {
-            gadget.props.config_gadget = null;
-            return gadget.declareGadget("gadget_monitoring_document_edit.html",
-              {
-                element: gadget.element,
-                scope: 'config_gadget',
-                sandbox: "public"
-              }
-            );
-          })
-          .push(function (config_gadget) {
-            gadget.props.config_gadget = config_gadget;
-            return gadget.props.config_gadget.render({
-                url: gadget.state.instance_list[index].private_url +
-                  '/config',
-                basic_login: gadget.state.opml.basic_login
-            });
-          })
-          .push(function () {
-            return gadget.props.config_gadget.popupEdit({
-              title: gadget.state.instance_list[index].title,
-              parameters: gadget.state.instance_list[index].parameters,
-              document_id: 'config.tmp'
-            }, function (data) {
-              gadget.state.instance_list[index].parameters = data;
-              updateParameterBox(data, gadget.state.instance_list[index].title);
-              $(gadget.element.querySelector('.alert-info'))
-                .removeClass('ui-content-hidden');
-            });
-          });
-      }
-
-      return new RSVP.Queue()
-        .push(function () {
-          return gadget.state.render_deferred.promise;
-        })
-        .push(function () {
-          var promise_list = [],
-            element_list = gadget.element.querySelectorAll('.hosting-block .ui-listview-container li > a'),
-            edit_list = gadget.element.querySelectorAll('.hosting-block .prop-edit'),
-            i;
-          for (i = 0; i < element_list.length; i += 1) {
-            promise_list.push(loopEventListener(
-              element_list[i],
-              'click',
-              false,
-              bindOnClick.bind(gadget, element_list[i])
-            ));
-          }
-          for (i = 0; i < edit_list.length; i += 1) {
-            promise_list.push(loopEventListener(
-              edit_list[i],
-              'click',
-              false,
-              editMonitorProps.bind(gadget, edit_list[i])
-            ));
-          }
-          return RSVP.all(promise_list);
-        });
-    });
-
-}(window, rJS, btoa, Handlebars, $, Rusha));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_import_export_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_import_export_html.html
deleted file mode 100644
index b8e86289bf1f7c447d60afe0fe1ea29887bc1c81..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_import_export_html.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
-    <meta name="viewport" content="width=device-width, user-scalable=no" />
-    <title>Monitoring Configurator</title>
-
-    <!-- renderjs -->
-    <script src="rsvp.js" type="text/javascript"></script>
-    <script src="renderjs.js" type="text/javascript"></script>
-    <script src="jsen.min.js" type="text/javascript"></script>
-
-    <script src="gadget_monitoring_import_export.js" type="text/javascript"></script>
-  </head>
-  <body>
-    <div data-role="tabs" class="config-tabs">
-      <div data-role="navbar">
-        <ul>
-          <li><a href="#config-import" data-ajax="false">Import Settings</a></li>
-          <li><a href="#config-export" data-ajax="false">Export Settings</a></li>
-        </ul>
-      </div>
-      <div id="config-export" class="ui-body-c ui-content">
-        <h2 class="section-title"><i class="fa fa-download fa-2x"></i><span data-i18n="">Save Monitoring Configuration</span></h2>
-        <div class="ui-body-c ui-content-sections">
-          <div class="ui-field-contain">
-            <label data-i18n="Setting Content:">Settings Content (json format):</label>
-            <textarea name="settings-data" class="text-data"></textarea>
-          </div>
-        </div>
-        <div class="select-storage ui-controlgroup ui-controlgroup-horizontal">
-          <div class="ui-grid-b ui-responsive">
-            <div class="ui-block-a"></div>
-            <div class="ui-block-b">
-            </div>
-            <div class="ui-block-c">
-              <button data-i18n="Reload Settings" class="ui-btn-btn-right btn-reload">Reload Settings</button>
-            </div>
-          </div>
-        </div>
-      </div>
-      <div id="config-import" class="ui-body-c ui-content">
-        <h2 class="section-title"><i class="fa fa-upload fa-2x"></i><span data-i18n="">Load Your Monitoring Configuration</span></h2>
-        <div class="ui-body-c ui-content-sections">
-          <div class="ui-field-contain">
-            <label data-i18n="Setting Content:">Settings Content (json format):</label>
-            <textarea name="settings-data-input" class="text-data"></textarea>
-          </div>
-        </div>
-        <div class="alert alert-error ui-content-hidden"></div>
-        <div class="select-storage ui-controlgroup ui-controlgroup-horizontal">
-          <div class="ui-grid-b ui-responsive">
-            <div class="ui-block-a"></div>
-            <div class="ui-block-b padding-lr-10">
-              <button data-i18n="Continue" class="ui-btn-btn-right btn-continue ui-content-hidden">Continue</button>
-            </div>
-            <div class="ui-block-c">
-              <button data-i18n="Reload Settings" class="ui-btn-btn-right btn-save">Import Settings</button>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
-
-  </body>
-</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_import_export_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_import_export_html.xml
deleted file mode 100644
index b24889dd1dd72da40afb4a334e3cbeede1606f56..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_import_export_html.xml
+++ /dev/null
@@ -1,329 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Page" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/public</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/html</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_import_export.html</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_import_export_html</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Page</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring Import Export</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>001</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1459337186.91</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.17814.51531.60586</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1502201633.04</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1459337116.02</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_import_export_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_import_export_js.js
deleted file mode 100644
index 3b573b1042932422a557a40713239a2c69d98e3e..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_import_export_js.js
+++ /dev/null
@@ -1,302 +0,0 @@
-/*global window, rJS, RSVP, jsen, Rusha, $ */
-/*jslint nomen: true, indent: 2, maxerr: 3*/
-(function (window, rJS, RSVP, jsen, Rusha, $) {
-  "use strict";
-
-  function getMonitorSetting(gadget) {
-    return gadget.jio_allDocs({
-      select_list: ["basic_login", "url", "title", "active"],
-      query: '(portal_type:"opml")'
-    })
-    .push(function (opml_result) {
-      var i,
-        opml_dict = {opml_description_list: []};
-      for (i = 0; i < opml_result.data.total_rows; i+= 1) {
-        opml_dict.opml_description_list.push(opml_result.data.rows[i].value);
-      }
-      return opml_dict;
-    });
-  }
-
-  function validateJsonConfiguration(json_value, uses_old_schema) {
-    var validate,
-      json_schema = {
-        "$schema": "http://json-schema.org/draft-04/schema#",
-        "type" : "object",
-        "properties": {
-          "opml_description_list": {
-            "description": "list of monitor opml URL",
-            "type": "array",
-            "required": ['basic_login', "url", "title"],
-            "items": {
-              "type": "object",
-              "properties": {
-                "url": {
-                  "description": "OPML URL",
-                  "type": "string"
-                },
-                "title": {
-                  "description": "OPML title",
-                  "type": "string"
-                },
-                "basic_login": {
-                  "description": "credentials hash string",
-                  "type": "string"
-                },
-                "active": {
-                  "description": "OPML active state",
-                  "type": "boolean",
-                  "default": true
-                }
-              },
-              "additionalProperties": false
-            }
-          }
-        },
-        "additionalProperties": false
-      },
-      old_json_schema = {
-        "$schema": "http://json-schema.org/draft-04/schema#",
-        "type" : "object",
-        "properties": {
-          "opml_description": {
-            "description": "list of monitor opml URL",
-            "type": "array",
-            "items": {
-              "type": "object",
-              "properties": {
-                "href": {
-                  "description": "OPML URL",
-                  "type": "string"
-                },
-                "title": {
-                  "description": "OPML title",
-                  "type": "string"
-                }
-              },
-              "additionalProperties": false
-            }
-          },
-          "monitor_url": {
-            "description": "list of registered monitor instance URL",
-            "type": "array",
-            "required": ['hash', "url", "parent_url"],
-            "items": {
-              "type": "object",
-              "properties": {
-                "hash": {
-                  "description": "hash string",
-                  "type": "string"
-                },
-                "login": {
-                  "description": "login",
-                  "type": "string",
-                  "default": ""
-                },
-                "url": {
-                  "description": "url of monitor instance",
-                  "type": "string"
-                },
-                "parent_url": {
-                  "description": "URL to parent instance",
-                  "type": "string"
-                }
-              },
-              "additionalProperties": false
-            }
-          }
-        },
-  
-        "additionalProperties": false
-      };
-
-    return new RSVP.Queue()
-      .push(function () {
-        if (uses_old_schema !== undefined && uses_old_schema === true) {
-          validate = jsen(old_json_schema);
-        } else {
-          validate = jsen(json_schema);
-        }
-        return validate(json_value);
-      });
-  }
-
-  var gadget_klass = rJS(window),
-    hashCode = new Rusha().digestFromString;
-
-  gadget_klass
-    .setState({deferred: ""})
-    .ready(function (g) {
-      return g.changeState({deferred: RSVP.defer()});
-    })
-    .declareAcquiredMethod("getSetting", "getSetting")
-    .declareAcquiredMethod("setSetting", "setSetting")
-    .declareAcquiredMethod("redirect", "redirect")
-    .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
-    .declareAcquiredMethod("jio_put", "jio_put")
-    .declareAcquiredMethod("updateHeader", "updateHeader")
-    .declareMethod("render", function (options) {
-      var gadget = this,
-        url_description_dict;
-      return gadget.updateHeader({
-        title: "Monitoring OPML Import/Export"
-      })
-        .push(function () {
-          return getMonitorSetting(gadget);
-        })
-        .push(function (setting_dict) {
-          $(gadget.element.querySelector('textarea[name="settings-data"]'))
-            .val(JSON.stringify(setting_dict));
-          return gadget.state.deferred.resolve();
-        });
-    })
-
-
-    .declareService(function () {
-      var gadget = this,
-        is_old_schema = false;
-
-      return new RSVP.Queue()
-        .push(function () {
-          return gadget.state.deferred.promise;
-        })
-        .push(function () {
-          return $(gadget.element.querySelector("a[href='#config-import']")).trigger('click');
-        })
-        .push(function () {
-          var promise_list = [];
-          promise_list.push(loopEventListener(
-            gadget.element.querySelector('.btn-reload'),
-            'click',
-            true,
-            function () {
-              return new RSVP.Queue()
-                .push(function () {
-                  return getMonitorSetting(gadget);
-                })
-                .push(function (setting_dict) {
-                  $(gadget.element.querySelector('textarea[name="settings-data"]'))
-                    .val(JSON.stringify(setting_dict));
-                });
-            }
-          ));
-
-          promise_list.push(loopEventListener(
-            gadget.element.querySelector('.btn-continue'),
-            'click',
-            true,
-            function () {
-              return gadget.redirect({
-                  page: 'settings_configurator',
-                  tab: 'manage'
-                });
-            }
-          ));
-
-          promise_list.push(loopEventListener(
-            gadget.element.querySelector('.btn-save'),
-            'click',
-            true,
-            function () {
-              var json_string = $(gadget.element.querySelector('textarea[name="settings-data-input"]')).val(),
-                configuration_dict,
-                monitor_url_dict = {},
-                monitor_opml_url_dict = {},
-                error_msg = '',
-                i;
-
-              try {
-                configuration_dict = JSON.parse(json_string);
-              } catch (e) {
-                return $(gadget.element.querySelector('.alert-error'))
-                    .removeClass('ui-content-hidden')
-                    .html('Error: Invalid json content!');
-              }
-
-              return validateJsonConfiguration(configuration_dict)
-                .push(function (validate_result) {
-                  if (!validate_result) {
-                    // try validation on old setting format
-                    is_old_schema = true;
-                    return validateJsonConfiguration(configuration_dict, true);
-                  }
-                  return validate_result;
-                })
-                .push(function (validate_result) {
-                  var settings_queue = new RSVP.Queue(),
-                    not_imported = "",
-                    item,
-                    i,
-                    j;
-
-                  function pushSetting(id, config) {
-                    settings_queue
-                      .push(function () {
-                        return gadget.jio_put(id, config);
-                      })
-                      .push(undefined, function (error) {
-                        throw error;
-                      });
-                  }
-                  if (validate_result) {
-                    if (is_old_schema) {
-                      //return settings_queue;
-                      for (i = 0; i < configuration_dict.opml_description.length; i += 1) {
-                        item = {
-                          title: configuration_dict.opml_description[i].title,
-                          url: configuration_dict.opml_description[i].href,
-                          active: true,
-                          portal_type: "opml"
-                        };
-                        for (j = 0; j < configuration_dict.monitor_url.length; j += 1) {
-                          if (configuration_dict.monitor_url[j].parent_url ===
-                              configuration_dict.opml_description[i].href) {
-                            item.basic_login = configuration_dict.monitor_url[j].hash;
-                            // XXX - all monitors password in opml should be the same
-                            break;
-                          }
-                        }
-                        if (item.basic_login !== undefined) {
-                          pushSetting(item.url, item);
-                        } else {
-                          not_imported += "OPML [" + configuration_dict.opml_description[i].title +
-                            "] was not imported, bad configuration...<br/>";
-                        }
-                      }
-                    } else {
-                      for (i = 0; i < configuration_dict.opml_description_list.length; i += 1) {
-                        item = configuration_dict.opml_description_list[i];
-                        item.portal_type = "opml";
-                        pushSetting(item.url, item);
-                      }
-                    }
-                    return settings_queue
-                      .push(function () {
-                        if (not_imported !== "") {
-                          $(gadget.element.querySelector('.alert-error'))
-                            .removeClass('ui-content-hidden')
-                            .html(not_imported);
-                          return false;
-                        }
-                        return true;
-                      });
-                  } else {
-                    $(gadget.element.querySelector('.alert-error'))
-                      .removeClass('ui-content-hidden')
-                      .html('Error: Content is not a valid Monitoring Json configuration!');
-                    return false;
-                  }
-                })
-                .push(function (status) {
-                  if (status) {
-                    return gadget.redirect({
-                      page: 'status_list'
-                    });
-                  }
-                });
-            }
-          ));
-        });
-    });
-
-}(window, rJS, RSVP, jsen, Rusha, $));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_import_export_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_import_export_js.xml
deleted file mode 100644
index 0c1b77b9045e32d3c1866ff61f806350341af202..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_import_export_js.xml
+++ /dev/null
@@ -1,329 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Script" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/public</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/javascript</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_import_export.js</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_import_export_js</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Script</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring Import Export Gadget JS</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>001</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1459338522.11</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.21935.10239.63812</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1502465428.35</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1459338433.74</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_log_widget_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_log_widget_html.html
deleted file mode 100644
index 3dd8cc9374f3ab6dc1b41c4f10c915eac11b3bd4..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_log_widget_html.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    <title>Monitoring Logs Widget</title>
-
-    <link href="gadget_monitoring_custom.css" rel="stylesheet" type="text/css"/>
-
-    <script src="rsvp.js"></script>
-    <script src="renderjs.js"></script>
-
-    <script src="gadget_monitoring_log_widget.js"></script>
-
-  </head>
-
-  <body>
-    <div data-gadget-url="gadget_monitoring_jio.html" data-gadget-scope="jio_gadget" data-gadget-sandbox="public"></div>
-  </body>
-</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_log_widget_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_log_widget_js.js
deleted file mode 100644
index 14c95a78bc0f3ae226e1361ee1d73215d40c79c7..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_log_widget_js.js
+++ /dev/null
@@ -1,107 +0,0 @@
-/*global window, rJS, btoa */
-/*jslint nomen: true, indent: 2, maxerr: 3*/
-(function (window, rJS) {
-  "use strict";
-
-  var gadget_klass = rJS(window);
-
-  function getMessageList(gadget, limit) {
-
-    return gadget.getDeclaredGadget("jio_gadget")
-      .push(function (jio_gadget) {
-        return jio_gadget.get("logs");
-      })
-      .push(function (doc) {
-        var error_list = [],
-          key_list,
-          size,
-          i;
-        if (doc === undefined) {
-          doc = {};
-        }
-        key_list = Object.keys(doc).reverse();
-        size = key_list.length;
-        if (size < limit) {
-          limit = size;
-        }
-        if (limit === undefined) {
-          limit = 150;
-        }
-        for (i = 0; i < limit; i += 1) {
-          error_list.push(doc[key_list[i]]);
-        }
-        return error_list;
-      }, function (error) {
-        if (error.status_code === 404) {
-          return [];
-        }
-        throw error;
-      });
-  }
-
-  function log(gadget, logs) {
-    var jio_gadget;
-    return gadget.getDeclaredGadget("jio_gadget")
-      .push(function (result) {
-        jio_gadget = result;
-        return jio_gadget.get("logs");
-      })
-      .push(undefined, function (error) {
-        if (error.status_code === 404) {
-          return {};
-        }
-        throw error;
-      })
-      .push(function (doc) {
-        var value,
-          d = new Date(),
-          key = d.getTime(),
-          key_list = Object.keys(doc),
-          size = key_list.length;
-        if (logs === undefined) {
-          logs = {};
-        }
-        if (size >= 150) {
-          // Reduce logs amount to not exceed the limit.
-          delete doc[key_list[0]];
-        }
-        value = {
-          date: d.toISOString().slice(0,10) + ' ' + d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds(),
-          title: logs.title || '',
-          message: logs.message.replace(/\n/g, '<br/>') || '',
-          type: (logs.type || 'ERROR').toUpperCase(),
-          method: logs.method || ''
-        };
-        doc[key] = value;
-        return jio_gadget.put('logs', doc);
-      });
-  }
-
-  gadget_klass
-    .ready(function (g) {
-      g.props = {};
-    })
-    .ready(function (g) {
-      return g.getDeclaredGadget("jio_gadget")
-      .push(function (jio_gadget) {
-        return jio_gadget.createJio({
-          type: "indexeddb",
-          database: "setting"
-        }, false);
-      });
-    })
-    .declareMethod('log', function (logs) {
-      var gadget = this;
-      return log(gadget, logs);
-    })
-    .declareMethod('getMessageList', function (limit) {
-      var gadget = this;
-      return getMessageList(gadget, limit);
-    })
-    .declareService(function () {
-      var gadget = this;
-
-
-    });
-
-}(window, rJS));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_main_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_main_html.xml
deleted file mode 100644
index 4e8f2a24f696772f8b6c2c5a7e10fb1a5bcd7b4a..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_main_html.xml
+++ /dev/null
@@ -1,333 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Page" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/public</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/html</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_main.html</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_main_html</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Page</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring Main</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1452872039.63</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>951.17777.16093.25088</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1463744746.17</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1452870585.14</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_main_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_main_js.js
deleted file mode 100644
index 029660941b7c520f98ceab3b661c16e8391f1f10..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_main_js.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/*global window, rJS, btoa */
-/*jslint nomen: true, indent: 2, maxerr: 3*/
-(function (window, rJS) {
-  "use strict";
-
-  var gadget_klass = rJS(window);
-
-  gadget_klass
-    .ready(function (g) {
-      g.props = {};
-    })
-    .declareAcquiredMethod("redirect", "redirect")
-    .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
-    .declareMethod("render", function (options) {
-      var gadget = this,
-        current_display;
-      return gadget.jio_allDocs({query: 'portal_type:"opml"', limit: [0, 1]})
-      .push(function (opml_result) {
-        if (opml_result.data.total_rows === 0) {
-          return gadget.redirect({
-            page: 'import_export'
-          });
-        }
-        return gadget.redirect({
-          page: 'status_list'
-        });
-      });
-    });
-
-}(window, rJS));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_main_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_main_js.xml
deleted file mode 100644
index b51dd86c97a12e985f9cbfece4d0cd6feb697f2d..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_main_js.xml
+++ /dev/null
@@ -1,329 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Script" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/public</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/javascript</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_main.js</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_main_js</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Script</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring Main Interface Gadget JS</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>001</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1452872923.25</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.21883.33309.38348</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1502445069.1</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1452870669.24</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_message_log_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_message_log_html.html
deleted file mode 100644
index 5e0761389e043ce6530dee82529b66f3b15061f2..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_message_log_html.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    <title>Monitoring Errors Page</title>
-
-    <link href="gadget_monitoring_custom.css" rel="stylesheet" type="text/css"/>
-
-    <script src="rsvp.js"></script>
-    <script src="renderjs.js"></script>
-
-    <script id="template-error-list" type="text/x-handlebars-template">
-      {{#each error_list}}
-      <tr class="tooltip" title="<h2 class='ui-promise-title '><strong>{{title}}</strong><h2><br/><p><strong>On {{date}}:<br/></strong>{{message}}</p>">
-        <td>
-          <span class="label label-{{type}}">{{type}}</span>
-        </td>
-        <td class="title">
-          <span>{{title}}</span>
-        </td>
-        <td class="m-hidden">
-          <span>{{date}}</span>
-        </td>
-        <td class="m-hidden">
-          <span>{{method}}</span>
-        </td>
-      </tr>
-      {{/each}}
-    </script>
-
-    <script src="gadget_monitoring_message_log.js"></script>
-    <script src="gadget_monitoring_tooltipster.min.js" type="text/javascript"></script>
-
-  </head>
-
-  <body>
-    <div data-gadget-url="gadget_monitoring_log_widget.html" data-gadget-scope="log_gadget" data-gadget-sandbox="public"></div>
-    <div class="ui-panel-overview error-list" style="min-height: 450px;">
-      <div class="overview-header">
-        <div class='content-title ui-instance-title'>
-          <div class="overview-title">
-            <i class="fa fa-newspaper-o" aria-hidden="true"></i> <span>Monitoring Messages and Errors</span>
-          </div>
-          <div class="commands">
-            <a href="#"><i class="fa fa-refresh" aria-hidden="true"></i></a>
-          </div>
-        </div>
-      </div>
-      <div class="overview-content">
-        <div class="logbox">
-          <table>
-            <tbody></tbody>
-          </table>
-        </div>
-
-      </div>
-    </div>
-  </body>
-</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_message_log_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_message_log_js.js
deleted file mode 100644
index 3bd542bded6ac74b221ef69bfd9a4968a79ce5c8..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_message_log_js.js
+++ /dev/null
@@ -1,85 +0,0 @@
-/*global window, rJS, btoa */
-/*jslint nomen: true, indent: 2, maxerr: 3*/
-(function (window, rJS) {
-  "use strict";
-
-  var gadget_klass = rJS(window),
-    templater = gadget_klass.__template_element,
-
-    error_log_template = Handlebars.compile(
-      templater.getElementById("template-error-list").innerHTML
-    );
-
-  gadget_klass
-    .ready(function (g) {
-      g.props = {};
-      return g.getElement()
-        .push(function (element) {
-          g.props.element = element;
-          g.props.deferred = RSVP.defer();
-        });
-    })
-    .ready(function (g) {
-      return g.getDeclaredGadget("log_gadget")
-      .push(function (log_gadget) {
-        g.props.log_gadget = log_gadget;
-      });
-    })
-    .declareAcquiredMethod("redirect", "redirect")
-    .declareMethod("render", function (options) {
-      var gadget = this;
-      return gadget.props.log_gadget.getMessageList(150)
-        .push(function (error_list) {
-
-          var content = error_log_template({error_list: error_list});
-          gadget.props.element.querySelector('.logbox table tbody')
-            .innerHTML = content;
-        });
-    })
-    .declareService(function () {
-      var gadget = this;
-      return new RSVP.Queue()
-        .push(function () {
-          $('.tooltip').tooltipster({
-            animation: 'fade',
-            delay: 200,
-            theme: 'tooltipster-shadow',
-            touchDevices: true,
-            interactive: true,
-            trigger: 'click',
-            contentAsHTML: true,
-            minWidth: 300
-          });
-        })
-        .push(function () {
-          var promise_list = [];
-          promise_list.push(loopEventListener(
-            gadget.props.element.querySelector('.commands a'),
-            'click',
-            false,
-            function (evt) {
-              return gadget.props.log_gadget.getMessageList(150)
-                .push(function (error_list) {
-                  var content = error_log_template({error_list: error_list});
-                  gadget.props.element.querySelector('.logbox table tbody')
-                    .innerHTML = content;
-                  $('.tooltip').tooltipster({
-                    animation: 'fade',
-                    delay: 200,
-                    theme: 'tooltipster-shadow',
-                    touchDevices: true,
-                    interactive: true,
-                    trigger: 'click',
-                    contentAsHTML: true,
-                    minWidth: 300
-                  });
-                });
-            }
-          ));
-
-          return RSVP.all(promise_list);
-        });
-
-    });
-
-}(window, rJS));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_process_view_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_process_view_html.html
deleted file mode 100644
index 5fc47e2ba446089ece95f594f54d270a634272ad..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_process_view_html.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    <title>Monitoring Process View Page</title>
-
-    <link href="gadget_monitoring_custom.css" rel="stylesheet" type="text/css"/>
-
-    <script src="notify.min.js"></script>
-    <script src="rsvp.js"></script>
-    <script src="renderjs.js"></script>
-
-    <script id="infobox-widget-template" type="text/x-handlebars-template">
-      {{#each resource_list}}
-      <div class="infobox">
-      	<div class="infobox-icon">
-      		<i class="fa fa-{{icon_name}} fa-2x"></i>
-      	</div>
-      	<div class="infobox-data">
-      		<span class="infobox-data-number">{{value}}</span>
-      		<div class="infobox-content">{{title}}</div>
-      	</div>
-      </div>
-      {{/each}}
-    </script>
-
-    <script id="monitor-process-widget-template" type="text/x-handlebars-template">
-      <table class="ui-responsive ui-body-c ui-table-inset custom-force-list">
-        <thead class="ui-bar-inherit">
-          <tr>
-            {{#each column_list}}
-              <th>{{title}}</th>
-            {{/each}}
-          </tr>
-        </thead>
-        <tbody>
-        {{#each row_list}}
-          <tr title='{{message}}'>
-          {{#each cell_list}}
-            {{#if href}}
-              <td class='{{class}}'><a class="ui-link" href="{{href}}">{{value}}</a></td>
-            {{else}}
-              <td class='{{class}}'><a class="ui-link">{{value}}</a></td>
-            {{/if}}
-          {{/each}}
-          </tr>
-        {{/each}}
-        </tbody>
-        <tfoot class="ui-bar-inherit"></tfoot>
-      </table>
-    </script>
-
-    <script src="gadget_monitoring_process_view.js"></script>
-
-  </head>
-
-  <body>
-    <div data-gadget-url="gadget_monitoring_jio.html" data-gadget-scope="jio_gadget" data-gadget-sandbox="public"></div>
-    <div class="ui-promise-title">
-      <h2>
-        <div data-gadget-url="gadget_monitoring_breadcrumb.html" data-gadget-scope="breadcrumb_gadget" data-gadget-sandbox="public"></div>
-      </h2>
-    </div>
-    <div class="padding-lr-10 infobox-container">
-    </div>
-    <h2 class="header-notice"><i class="fa fa-info" aria-hidden="true"></i> Processes information will be reloaded automatically every minutes.</h2>
-    <div class="ui-panel-overview ui-grid-container process-all">
-      
-    </div>
-  </body>
-</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_process_view_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_process_view_js.js
deleted file mode 100644
index 9b6b5dfbf4965abbfae20dab9e54be35e5c3d261..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_process_view_js.js
+++ /dev/null
@@ -1,402 +0,0 @@
-/*global window, rJS, RSVP, URI, location, $,
-    loopEventListener, btoa */
-/*jslint nomen: true, indent: 2, maxerr: 3*/
-(function (window, rJS, $, RSVP) {
-  "use strict";
-
-  var gadget_klass = rJS(window),
-    templater = gadget_klass.__template_element,
-    process_list_widget = Handlebars.compile(
-      templater.getElementById("monitor-process-widget-template").innerHTML
-    ),
-    infobox_widget_template = Handlebars.compile(
-      templater.getElementById("infobox-widget-template").innerHTML
-    ),
-    hashCode = new Rusha().digestFromString;
-
-  gadget_klass
-    .setState({
-      opml: "",
-      opml_outline: "",
-      breadcrumb_gadget: ""
-    })
-    .ready(function (gadget) {
-      return gadget.getElement()
-        .push(function (element) {
-          gadget.property_dict = {
-            render_deferred: RSVP.defer(),
-            process_state: "monitor_process_resource.status",
-            monitor_process_state: "monitor_resource.status",
-            element: element
-          };
-        });
-    })
-    .ready(function (gadget) {
-      return gadget.getDeclaredGadget("jio_gadget")
-        .push(function (jio_gadget) {
-          gadget.property_dict.jio_gadget = jio_gadget;
-        });
-    })
-    .ready(function (gadget) {
-      return gadget.getDeclaredGadget("breadcrumb_gadget")
-        .push(function (breadcrumb_gadget) {
-          return gadget.changeState({breadcrumb_gadget: breadcrumb_gadget});
-        });
-    })
-    .declareMethod('render', function (options) {
-      var gadget = this;
-
-      return gadget.updateHeader({
-        title: "Monitoring processes view"
-      })
-        .push(function () {
-          return gadget.jio_get(options.key);
-        })
-        .push(function (outline) {
-          return gadget.changeState({opml_outline: outline});
-        })
-        .push(function () {
-          return gadget.jio_allDocs({
-            select_list: ["basic_login", "url", "title"],
-            query: '(portal_type:"opml") AND (url:"' +
-              gadget.state.opml_outline.parent_url + '")'
-          });
-        })
-        .push(function (opml_doc) {
-          return gadget.changeState({opml: opml_doc.data.rows[0].value});
-        })
-        .push(function () {
-          return gadget.state.breadcrumb_gadget.render({
-            icon: "",
-            url_list: [
-              {
-                title: gadget.state.opml.title,
-                url: "#page=hosting_subscription_view&key=" +
-                  gadget.state.opml.url
-              },
-              {
-                title: gadget.state.opml_outline.title,
-                url: "#page=software_instance_view&key=" +
-                  gadget.state.opml_outline.reference
-              },
-              {
-                title: "Processes"
-              }
-            ]
-          });
-        })
-        .push(function () {
-          var key,
-            promise_list = [];
-          gadget.property_dict.jio_gadget.createJio({
-            type: "webhttp",
-            url: (gadget.state.opml_outline.url
-              .replace("jio_private", "private") +
-              'documents/').replace("jio_private", "private"),
-            basic_login: gadget.state.opml.basic_login
-          });
-          return gadget.property_dict.jio_gadget
-            .get(gadget.property_dict.process_state);
-        })
-        .push(undefined, function(error) {
-          console.error(error);
-          $.notify(
-            "Error: Failed to download processes data file!", 
-            {
-              position: "top right",
-              autoHideDelay: 7000,
-              className: "error"
-            }
-          );
-          return undefined;
-        })
-        .push(function (process_list) {
-          var row_list = [],
-            column_list = [],
-            process_content,
-            i;
-          column_list = [
-            {title: "Process"},
-            {title: "pid"},
-            {title: "user"},
-            {title: "create date"},
-            {title: "CPU %"},
-            {title: "threads"},
-            {title: "Memory (Mo)"},
-            {title: "Memory %"}];
-          if(process_list) {
-            for (i = 0; i < process_list.length; i += 1) {
-              row_list.push({
-                message: (process_list[i].command || []).join(' '),
-                cell_list: [
-                  {
-                    value: process_list[i].name || '-',
-                    href: '',
-                    "class": ''
-                  },
-                  {
-                    value: process_list[i].pid,
-                    href: '',
-                    "class": ''
-                  },
-                  {
-                    value: process_list[i].user || '-',
-                    href: '',
-                    "class": ''
-                  },
-                  {
-                    value: process_list[i].date || '-',
-                    href: '',
-                    "class": ''
-                  },
-                  {
-                    value: process_list[i].cpu_percent,
-                    href: '',
-                    "class": ''
-                  },
-                  {
-                    value: process_list[i].cpu_num_threads,
-                    href: '',
-                    "class": ''
-                  },
-                  {
-                    value: process_list[i].memory_rss,
-                    href: '',
-                    "class": ''
-                  },
-                  {
-                    value: process_list[i].memory_percent,
-                    href: '',
-                    "class": ''
-                  }
-                ]
-              });
-            }
-          }
-          process_content = process_list_widget({
-            column_list: column_list,
-            row_list: row_list
-          });
-          gadget.element.querySelector(".process-all")
-            .innerHTML = process_content;
-        })
-        .push(function () {
-          return gadget.property_dict.jio_gadget.get(gadget.property_dict.monitor_process_state);
-        })
-        .push(undefined, function(error) {
-          console.log(error);
-          $.notify(
-            "Error: Failed to get resource comsumption data!", 
-            {
-              position:"top right",
-              autoHideDelay: 5000,
-              className: "error"
-            }
-          );
-          return {
-            cpu_percent: 0,
-            cpu_num_threads: 0,
-            cpu_time: 0,
-            memory_rss: 0,
-            memory_percent: 0,
-            disk_used: 0
-          };
-        })
-        .push(function (monitor_state) {
-          var monitor_resource_list = [],
-            resource_state_content;
-          if (monitor_state) {
-            monitor_resource_list = [
-              {
-                title: "CPU Used",
-                icon_name: "bolt",
-                value: monitor_state.cpu_percent + " %"
-              },
-              {
-                title: "CPU Used Time",
-                icon_name: "clock-o",
-                value: monitor_state.cpu_time + " min"
-              },
-              {
-                title: "CPU Num Threads",
-                icon_name: "dashboard",
-                value: monitor_state.cpu_num_threads
-              },
-              {
-                title: "Used Memory",
-                icon_name: "ticket",
-                value: monitor_state.memory_rss + " Mo"
-              },
-              {
-                title: "Memory Used",
-                icon_name: "pie-chart",
-                value: monitor_state.memory_percent + " %"
-              },
-              {
-                title: "Disk Used",
-                icon_name: "hdd-o",
-                value: monitor_state.disk_used + " Mo"
-              }
-            ];
-          }
-          resource_state_content = infobox_widget_template({
-            resource_list: monitor_resource_list
-          });
-          gadget.element.querySelector(".infobox-container")
-            .innerHTML = resource_state_content;
-          return gadget.property_dict.render_deferred.resolve();
-        });
-    })
-    .declareAcquiredMethod("getSetting", "getSetting")
-    .declareAcquiredMethod("updateHeader", "updateHeader")
-    .declareAcquiredMethod('jio_allDocs', 'jio_allDocs')
-    .declareAcquiredMethod('jio_get', 'jio_get')
-
-    /////////////////////////////////////////////////////////////////
-    // declared service
-    /////////////////////////////////////////////////////////////////
-    .declareService(function () {
-      var gadget = this;
-
-      function updateProcessTimer() {
-        if (gadget.property_dict.loading && gadget.property_dict.timer) {
-          clearInterval(gadget.property_dict.timer);
-        }
-
-        gadget.property_dict.timer = setInterval(function(){
-          var hash = window.location.toString().split('#')[1];
-          if (hash.indexOf('page=process_view') < 0) {
-            clearInterval(gadget.property_dict.timer);
-            return;
-          }
-          return gadget.property_dict.jio_gadget.get(gadget.property_dict.process_state)
-            .push(function (process_list) {
-              var row_list = [],
-                column_list = [],
-                process_content,
-                i;
-              column_list = [
-                {title: "Process"},
-                {title: "pid"},
-                {title: "user"},
-                {title: "create date"},
-                {title: "CPU %"},
-                {title: "threads"},
-                {title: "Memory (Mo)"},
-                {title: "Memory %"}];
-              if(process_list) {
-                for (i = 0; i < process_list.length; i += 1) {
-                  row_list.push({
-                    message: (process_list[i].command || []).join(' '),
-                    cell_list: [
-                      {
-                        value: process_list[i].name || '-',
-                        href: '',
-                        "class": ''
-                      },
-                      {
-                        value: process_list[i].pid,
-                        href: '',
-                        "class": ''
-                      },
-                      {
-                        value: process_list[i].user || '-',
-                        href: '',
-                        "class": ''
-                      },
-                      {
-                        value: process_list[i].date || '-',
-                        href: '',
-                        "class": ''
-                      },
-                      {
-                        value: process_list[i].cpu_percent,
-                        href: '',
-                        "class": ''
-                      },
-                      {
-                        value: process_list[i].cpu_num_threads,
-                        href: '',
-                        "class": ''
-                      },
-                      {
-                        value: process_list[i].memory_rss,
-                        href: '',
-                        "class": ''
-                      },
-                      {
-                        value: process_list[i].memory_percent,
-                        href: '',
-                        "class": ''
-                      }
-                    ]
-                  });
-                }
-              }
-              process_content = process_list_widget({
-                column_list: column_list,
-                row_list: row_list
-              });
-              gadget.element.querySelector(".process-all")
-                .innerHTML = process_content;
-              return '';
-            })
-            .push(function () {
-              return gadget.property_dict.jio_gadget.get(gadget.property_dict.monitor_process_state);
-            })
-            .push(function (monitor_state) {
-              var monitor_resource_list = [],
-                resource_state_content;
-              if (monitor_state) {
-                monitor_resource_list = [
-                  {
-                    title: "CPU Used",
-                    icon_name: "bolt",
-                    value: monitor_state.cpu_percent + " %"
-                  },
-                  {
-                    title: "CPU Used Time",
-                    icon_name: "clock-o",
-                    value: monitor_state.cpu_time + " min"
-                  },
-                  {
-                    title: "CPU Num Threads",
-                    icon_name: "dashboard",
-                    value: monitor_state.cpu_num_threads
-                  },
-                  {
-                    title: "Used Memory",
-                    icon_name: "ticket",
-                    value: monitor_state.memory_rss + " Mo"
-                  },
-                  {
-                    title: "Memory Used",
-                    icon_name: "pie-chart",
-                    value: monitor_state.memory_percent + " %"
-                  },
-                  {
-                    title: "Disk Used",
-                    icon_name: "hdd-o",
-                    value: monitor_state.disk_used + " Mo"
-                  }
-                ];
-              }
-              resource_state_content = infobox_widget_template({
-                resource_list: monitor_resource_list
-              });
-              gadget.element.querySelector(".infobox-container")
-                .innerHTML = resource_state_content;
-            });
-          },
-          65000);
-      }
-      return new RSVP.Queue()
-        .push(function () {
-          return gadget.property_dict.render_deferred.promise;
-        })
-        .push(function () {
-          return updateProcessTimer();
-        });
-    });
-
-}(window, rJS, $, RSVP));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_promise_interface_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_promise_interface_html.html
deleted file mode 100644
index de75b484a4e43e583c1f8347c01d0ecc688faa31..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_promise_interface_html.html
+++ /dev/null
@@ -1,221 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    <title>Monitoring Promise Status Page</title>
-
-    <link href="gadget_monitoring_custom.css" rel="stylesheet" type="text/css"/>
-
-    <script src="rsvp.js"></script>
-    <script src="renderjs.js"></script>
-
-    <script src="gadget_monitoring_promise_interface.js"></script>
-
-    <script id="promise-widget-template" type="text/x-handlebars-template">
-      {{#with element}}
-        {{#if warning}}
-        <p class="ui-text-error"><i class="fa fa-info-circle" aria-hidden="true"></i> Status was changed to WARNING as last sync of this instance failed.</p>
-        {{/if}}
-        <table data-role="table" data-mode="columntoggle" class="table-stroke">
-          <tr>
-            <th><i class="fa fa-tachometer"></i> Promise Status</th>
-            <td><span class="label label-{{status}}">{{status}}</span></td>
-          </tr>
-          <tr>
-            <th><i class="fa fa-calendar"></i> Status Since</th>
-            <td title="The date of this status.">{{status_date}}</td>
-          </tr>
-          <tr>
-            <th><i class="fa fa-clock-o"></i> Report Date</th>
-            <td title="The date when the promise result was collected.">{{start-date}}</td>
-          </tr>
-          <tr>
-            <th><i class="fa fa-file-o" aria-hidden="true"></i> Promise name</th>
-            <td>{{title}}</td>
-          </tr>
-        </table>
-        <br>
-        <h2>Promise Output message</h2>
-        <div style="border: 1px solid rgba(0,0,0,0.1); margin-top: 10px;">
-          <div class="ui-body">
-          {{#if message}}
-            <p class="ui-text ui-text-pre"><strong>{{status}}</strong>: {{message}}</p>
-          {{else}}
-            <p><strong>No output message!</strong></p>
-          {{/if}}
-          </div>
-        </div>
-        <br/>
-      {{/with}}
-    </script>
-    
-    <script id="pinstance-widget-template" type="text/x-handlebars-template">
-      <h2><i class="fa fa-cubes"></i><strong> Software Instance State</strong></h2>
-      <table data-role="table" data-mode="columntoggle" class="table-stroke">
-        <tr>
-          <th><i class="fa fa-tachometer"></i> Full Instance Status</th>
-          <td><span class="label label-{{status}}">{{status}}</span></td>
-        </tr>
-        <tr title="Hosting Subscription">
-          <th><i class="fa fa-puzzle-piece"></i> H. Subscription</th>
-          <td title="Hosting Subscription title"><a class="inline-link" href="{{hosting_url}}">{{root_title}}</a></td>
-        </tr>
-        <tr>
-          <th><i class="fa fa-cube"></i> Instance Name</th>
-          <td title="Software Instance title"><a class="inline-link" href="{{instance_url}}">{{title}}</a></td>
-        </tr>
-        <tr>
-          <th><i class="fa fa-clock-o"></i> Report Date</th>
-          <td title="The date when the instance status was collected.">{{date}}</td>
-        </tr>
-        <tr>
-          <th><i class="fa fa-line-chart" aria-hidden="true"></i> Promises Errors</th>
-          <td title="Percentage of promises errors in Software Instance">{{errors}}</td>
-        </tr>
-        <tr>
-          <th><i class="fa fa-line-chart" aria-hidden="true"></i> Promises Success</th>
-          <td title="Percentage of promises success in Software Instance">{{success}}</td>
-        </tr>
-      </table>
-      {{#with instance}}
-      <br>
-      <h2><i class="fa fa-cubes"></i><strong> Software Instance Info</strong></h2>
-      <table data-role="table" data-mode="columntoggle" class="table-stroke">
-        <tr>
-          <th>Computer Reference</th>
-          <td>{{computer}}</td>
-        </tr>
-        <tr>
-          <th>Computer Partition</th>
-          <td>{{partition}}</td>
-        </tr>
-        <tr>
-          <th>IPv4</th>
-          <td>{{ipv4}}</td>
-        </tr>
-        <tr>
-          <th>IPv6</th>
-          <td>{{ipv6}}</td>
-        </tr>
-        <tr>
-          <th>Software Type</th>
-          <td>{{software-type}}</td>
-        </tr>
-        <tr>
-          <th>Software Release</th>
-          <td><a class="inline-link" href="{{software-release}}" title="{{software-release}}" target='_blank'>Click to open <i class="fa fa-external-link"></i></a></td>
-        </tr>
-        <tr>
-          <th><i class="fa fa-folder-open-o"></i> Public Logs</th>
-          <td><a class="inline-link" target='_blank' href="{{../public_url}}" title="Public Logs">Click to open <i class="fa fa-external-link"></i></a></td>
-        </tr>
-        <tr>
-          <th><i class="fa fa-folder-open-o"></i> Private Logs</th>
-          <td><a class="inline-link" target='_blank' href="{{../private_url}}" title="Private Logs">Click to open <i class="fa fa-external-link"></i></a></td>
-        </tr>
-      </table>
-      {{/with}}
-    </script>
-
-    <script id="plinks-widget-template" type="text/x-handlebars-template">
-      <h2><i class="fa fa-external-link"></i> <strong>Web Directories Access</strong></h2>
-      <div class="ui-field-contain">
-        <fieldset data-role="controlgroup" data-type="horizontal">
-          {{#if public_url}}
-          <a class="ui-btn ui-corner-all ui-btn-inline ui-mini" target='_blank' href="{{public_url}}" title="Public Directory"><i class="fa fa-folder-open-o"></i> Public Folder</a>
-          {{/if}}
-          {{#if private_url}}
-          <a class="ui-btn ui-corner-all ui-btn-inline ui-mini" target='_blank' href="{{private_url}}" title="Private Directory"><i class="fa fa-lock"></i> Private Folder</a>
-          {{/if}}
-        </fieldset>
-      </div>
-    </script>
-
-    <script id="phistory-widget-template" type="text/x-handlebars-template">
-      <h2><i class="fa fa-history"></i> <strong>Promise Status History</strong></h2>
-      <div class="loadbox">
-        <div class="signal ui-content-hidden"></div>
-        <div class="loadwait">
-          <a>Load History</a>
-        </div>
-      </div>
-    </script>
-
-    <script id="load-history-template" type="text/x-handlebars-template">
-      <div class="signal ui-content-hidden"></div>
-      {{#if history_list}}
-      <div class="load-content" style="max-height: 300px;">
-        <table data-role="table" data-mode="columntoggle" class="table-stroke">
-          {{#each history_list}}
-          <tr title="{{message}}">
-            <td style="text-align: center;"><i class="fa fa-circle status-text-{{status}}"></i></td>
-            <td style="text-align: center;">{{start-date}}</td>
-            <td class="text-overview">{{message}}</td>
-          </tr>
-          {{/each}}
-        </table>
-      <div>
-      {{else}}
-      <div class="loadwait">
-        <a>No History Found!</a>
-      </div>
-      {{/if}}
-    </script>
-
-  </head>
-
-  <body>
-    <div data-gadget-url="gadget_monitoring_jio.html" data-gadget-scope="jio_gadget" data-gadget-sandbox="public"></div>
-    <div class="ui-panel-overview">
-      <div class="overview-details">
-        <div class="overview-header">
-          <div class='content-title ui-instance-title'>
-            <div class="overview-title">
-              <div data-gadget-url="gadget_monitoring_breadcrumb.html" data-gadget-scope="breadcrumb_gadget" data-gadget-sandbox="public"></div>
-            </div>
-            <div class="commands">
-  
-            </div>
-          </div>
-        </div>
-        <div class="content-details">
-          <div class="ui-grid-a ui-responsive">
-            <div class="ui-block-a">
-              <h2><i class="fa fa-check" aria-hidden="true"></i> <strong>Promise Result View</strong></h2>
-            </div>
-            <div class="ui-block-b">
-              <div class="promise-instance">
-              </div>
-              <div class="promise-links">
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
-    <!--<div class="ui-promise-content">
-      <div class="ui-promise-body">
-        <div class="ui-promise-title">
-          <h2></h2>
-        </div>
-        <div id="promise-overview" class="custom-grid-wrap">
-          <div class="custom-grid ui-corner-all ui-shadow ui-body-inherit">
-            <div class="ui-grid-a ui-responsive" style="padding: 15px;">
-              <div class="ui-block-a">
-                <h2><i class="fa fa-check" aria-hidden="true"></i> <strong>Promise Result View</strong></h2>
-              </div>
-              <div class="ui-block-b">
-                <div class="promise-instance">
-                </div>
-                <div class="promise-links">
-                </div>
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>-->
-  </body>
-</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_promise_interface_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_promise_interface_html.xml
deleted file mode 100644
index 880ca954b4c180650aac7223a294b5c223d3c3e2..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_promise_interface_html.xml
+++ /dev/null
@@ -1,333 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Page" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/public</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/html</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_promise_interface.html</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_promise_interface_html</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Page</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring Promise Interface</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1451404814.61</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.21883.33309.38348</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1504086738.54</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1451404394.52</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_promise_interface_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_promise_interface_js.js
deleted file mode 100644
index 0c773aa56c08655b204a5408791a5ab850077052..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_promise_interface_js.js
+++ /dev/null
@@ -1,449 +0,0 @@
-/*global window, rJS, RSVP, Handlebars, $
-    loopEventListener, btoa */
-/*jslint nomen: true, indent: 2, maxerr: 3*/
-(function (window, rJS, Handlebars, RSVP, $) {
-  "use strict";
-
-  var gadget_klass = rJS(window),
-    templater = gadget_klass.__template_element,
-    promise_widget_template = Handlebars.compile(
-      templater.getElementById("promise-widget-template").innerHTML
-    ),
-    instance_widget_template = Handlebars.compile(
-      templater.getElementById("pinstance-widget-template").innerHTML
-    ),
-    links_widget_template = Handlebars.compile(
-      templater.getElementById("plinks-widget-template").innerHTML
-    ),
-    history_widget_template = Handlebars.compile(
-      templater.getElementById("phistory-widget-template").innerHTML
-    ),
-    load_history_template = Handlebars.compile(
-      templater.getElementById("load-history-template").innerHTML
-    );
-
-  function formatDate(d){
-    function addZero(n){
-      return n < 10 ? '0' + n : '' + n;
-    }
-
-    return d.getFullYear() + "-" + addZero(d.getMonth()+1)
-      + "-" + addZero(d.getDate()) + " " + addZero(d.getHours())
-      + ":" + addZero(d.getMinutes()) + ":" + addZero(d.getSeconds());
-  }
-
-  gadget_klass
-    .setState({
-      jio_gadget: "",
-      promise: "",
-      opml_outline: "",
-      opml: "",
-      instance: "",
-      breadcrumb_gadget: ""
-    })
-    .ready(function (gadget) {
-      gadget.property_dict = {
-        render_deferred: RSVP.defer()
-      };
-    })
-    .ready(function (gadget) {
-      return gadget.getDeclaredGadget("jio_gadget")
-        .push(function (jio_gadget) {
-          return gadget.changeState({"jio_gadget": jio_gadget});
-        });
-    })
-    .ready(function (gadget) {
-      return gadget.getDeclaredGadget("breadcrumb_gadget")
-        .push(function (breadcrumb_gadget) {
-          return gadget.changeState({breadcrumb_gadget: breadcrumb_gadget});
-        });
-    })
-    /*.ready(function (gadget) {
-      return gadget.getDeclaredGadget("chart0")
-        .push(function (chart0) {
-          gadget.property_dict.chart0 = chart0;
-        });
-    })*/
-    /*.ready(function (gadget) {
-      return gadget.getDeclaredGadget("chart1")
-        .push(function (chart1) {
-          gadget.property_dict.chart1 = chart1;
-        });
-    })*/
-    .declareMethod('render', function (options) {
-      var gadget = this,
-        global_state,
-        url_options = $.extend(true, {}, options);
-        url_options.t = Date.now() / 1000 | 0;
-      return gadget.getUrlFor(url_options)
-        .push(function (refresh_url) {
-          //var back_url = '#page=main&t=' + (Date.now() / 1000 | 0);
-          return RSVP.all([
-            gadget.updateHeader({
-              title: 'Monitoring Promise View',
-              //back_url: back_url,
-              //panel_action: false,
-              refresh_url: refresh_url
-            })
-          ]);
-        })
-        .push(function () {
-          return gadget.jio_get(options.key);
-        })
-        .push(function (promise_document) {
-          return gadget.changeState({promise: promise_document});
-        })
-        .push(function () {
-          // Get opml_document
-          return gadget.jio_allDocs({
-            select_list: [
-              "parent_url",
-              "parent_id",
-              "title",
-              "opml_title",
-              "portal_type",
-              "_links",
-              "_embedded",
-              "state",
-              "status",
-              "reference",
-              "date"
-            ],
-            query: '((portal_type:"opml-outline") AND (reference:"' +
-              gadget.state.promise.parent_id + '")) OR' +
-              '((portal_type:"global") AND (parent_id:"' +
-              gadget.state.promise.parent_id + '"))'
-          }, function (error) {
-            console.log(error);
-            return {};
-          });
-        })
-        .push(function (result_list) {
-          var promise_list = [],
-            i;
-          for (i = 0; i < result_list.data.total_rows; i += 1) {
-            if (result_list.data.rows[i].value.portal_type === "opml-outline") {
-              promise_list.push(gadget.changeState({
-                opml_outline: result_list.data.rows[i].value
-              }));
-            } else {
-              promise_list.push(gadget.changeState({
-                instance: result_list.data.rows[i].value
-              }));
-            }
-          }
-          return RSVP.all(promise_list);
-        })
-        .push(function () {
-          return gadget.jio_allDocs({
-            select_list: ["basic_login", "url", "title"],
-            query: '(portal_type:"opml") AND (url:"' +
-              gadget.state.opml_outline.parent_url + '")'
-          });
-        })
-        .push(function (opml_doc) {
-          return gadget.changeState({opml: opml_doc.data.rows[0].value});
-        })
-        .push(function () {
-          return gadget.state.breadcrumb_gadget.render({
-            icon: "check-square",
-            url_list: [
-              {
-                title: gadget.state.opml.title,
-                url: "#page=hosting_subscription_view&key=" +
-                  gadget.state.opml.url
-              },
-              {
-                title: gadget.state.instance.title,
-                url: "#page=software_instance_view&key=" +
-                  gadget.state.instance.reference,
-              },
-              {
-                title: gadget.state.promise.source,
-              }
-            ]
-          });
-        })
-        .push(function () {
-          var content,
-            element,
-            promise_list = [],
-            instance_content,
-            links_content,
-            amount = 0,
-            history_content,
-            pass_url = '';
-
-          // fix URLs
-          gadget.state.instance._links.private_url.href = gadget.state.instance.
-            _links.private_url.href.replace("jio_private", "private");
-          gadget.state.instance._links.public_url.href = gadget.state.instance.
-            _links.public_url.href.replace("jio_public", "public");
-          pass_url = "https://" + atob(gadget.state.opml.basic_login) +
-            "@" + gadget.state.instance._links.private_url.href.split("//")[1];
-
-          element = {
-            status: gadget.state.promise.category,
-            status_date: formatDate(new Date(gadget.state.promise.pubDate)),
-            title: gadget.state.promise.source,
-            "start-date": formatDate(new Date(gadget.state.promise.lastBuildDate)),
-            message: gadget.state.promise.comments,
-            warning: (gadget.state.promise.category === "WARNING") ? true : false
-          };
-          gadget.property_dict.promise_dict = element;
-
-          element.state = (element.status.toLowerCase() === 'error') ? 
-            'red' : (element.status.toLowerCase() === 'warning') ? 'warning' : 'ok';
-          if (element['change-time']) {
-            element.status_date = formatDate(new Date(element['change-time']*1000));
-          }
-          content = promise_widget_template({
-              element: element
-            });
-          gadget.element.querySelector(".content-details .ui-block-a")
-            .innerHTML += content;
-
-          amount = gadget.state.instance.state.warning +
-            gadget.state.instance.state.error +
-            gadget.state.instance.state.success;
-
-          instance_content = instance_widget_template({
-            title: gadget.state.instance.title,
-            root_title: gadget.state.opml_outline.opml_title,
-            status: gadget.state.instance.status,
-            date: gadget.state.instance.date,
-            errors: gadget.state.instance.state.error + "/" + amount,
-            warning: gadget.state.instance.state.warning + "/" + amount,
-            success: gadget.state.instance.state.success + "/" + amount,
-            instance: gadget.state.instance._embedded.instance,
-            instance_url: "#page=software_instance_view&key=" +
-              gadget.state.instance.reference,
-            hosting_url: "#page=hosting_subscription_view&key=" +
-              gadget.state.opml.url,
-            public_url: gadget.state.instance._links.public_url.href,
-            private_url: pass_url
-          });
-          links_content = links_widget_template({
-            public_url: gadget.state.instance._links.public_url.href,
-            private_url: pass_url
-          });
-          gadget.element.querySelector(".content-details .ui-block-b  .promise-instance")
-            .innerHTML += instance_content;
-          /*gadget.element.querySelector(".content-details .ui-block-b .promise-links")
-            .innerHTML += links_content;*/
-          history_content = history_widget_template({history_list: []});
-          gadget.element.querySelector(".content-details .ui-block-a")
-                  .innerHTML += history_content;
-        })
-        .push(function () {
-          return gadget.state.jio_gadget.createJio({
-            type: "webhttp",
-            url: gadget.state.promise.source_url.replace("jio_public", "public")
-          });
-        })
-        .push(function () {
-          return gadget.property_dict.render_deferred.resolve();
-        });
-        /*
-          .push(function () {
-            return gadget.property_dict.login_gadget.loginRedirect(
-              global_state._links.private_url.href,
-              options,
-              global_state.title,
-              global_state['hosting-title']);
-          })
-          .push(function (cred) {
-            var jio_options,
-              jio_key = "monitor_state.data",
-              data_url = global_state._links.private_url.href + 'data/';
-
-            jio_options = {
-              type: "query",
-              sub_storage: {
-                type: "drivetojiomapping",
-                sub_storage: {
-                  type: "dav",
-                  url: data_url,
-                  basic_login: cred.hash
-                }
-              }
-            };
-            gadget.property_dict.jio_gadget.createJio(jio_options, false);
-            return gadget.property_dict.jio_gadget.get(jio_key);
-          })
-          .push(function (monitor_state) {
-            var data = {
-                labels: [],
-                datasets: [
-                  {
-                    label: "SUCCESS",
-                    fillColor: "rgba(21, 246, 21, 0)",
-                    strokeColor: "rgba(21, 246, 21,1)",
-                    pointColor: "rgba(21, 246, 21,1)",
-                    pointStrokeColor: "#fff",
-                    pointHighlightFill: "#fff",
-                    pointHighlightStroke: "rgba(21, 246, 21,1)",
-                    data: []
-                  },
-                  {
-                    label: "ERROR",
-                    fillColor: "rgba(255, 14, 44, 0)",
-                    strokeColor: "rgba(255, 14, 44, 1)",
-                    pointColor: "rgba(255, 14, 44, 1)",
-                    pointStrokeColor: "#fff",
-                    pointHighlightFill: "#fff",
-                    pointHighlightStroke: "rgba(255, 14, 44, 1)",
-                    data: []
-                  },
-                  {
-                    label: "WARNING",
-                    fillColor: "rgba(239, 196, 56,0)",
-                    strokeColor: "rgba(239, 196, 56,1)",
-                    pointColor: "rgba(239, 196, 56,1)",
-                    pointStrokeColor: "#fff",
-                    pointHighlightFill: "#fff",
-                    pointHighlightStroke: "rgba(239, 196, 56,1)",
-                    data: []
-                  }
-                ]
-              },
-              i,
-              tmp,
-              start = 0;
-              
-            if (monitor_state.hasOwnProperty('data')) {
-              if (monitor_state.data.length > 20) {
-                start = monitor_state.data.length - 20;
-              }
-              for (i = start; i < monitor_state.data.length; i += 1) {
-                tmp = monitor_state.data[i].split(',');
-                data.labels.push(tmp[0]);
-                data.datasets[0].data.push(tmp[1]);
-                data.datasets[1].data.push(tmp[2]);
-                data.datasets[2].data.push(tmp[3]);
-              }
-            }
-            return gadget.property_dict.chart1.render({
-              type: 'line',
-              config: {
-                bezierCurve: false,
-                responsive: true
-              },
-              data: data
-            });
-          })
-          .push(function () {
-            var data = {
-              labels: [global_state.date],
-              datasets: [
-                {
-                  label: "SUCCESS",
-                  fillColor: "rgba(21, 246, 21, 0.7)",
-                  strokeColor: "rgba(21, 246, 21,1)",
-                  pointColor: "rgba(21, 246, 21,1)",
-                  pointStrokeColor: "#fff",
-                  pointHighlightFill: "#fff",
-                  pointHighlightStroke: "rgba(21, 246, 21,1)",
-                  data: [global_state.state.success],
-                  name: "success"
-                },
-                {
-                  label: "ERROR",
-                  fillColor: "rgba(255, 14, 44, 0.7)",
-                  strokeColor: "rgba(255, 14, 44, 1)",
-                  pointColor: "rgba(255, 14, 44, 1)",
-                  pointStrokeColor: "#fff",
-                  pointHighlightFill: "#fff",
-                  pointHighlightStroke: "rgba(255, 14, 44, 1)",
-                  data: [global_state.state.error],
-                  name: "error"
-                },
-                {
-                  label: "WARNING",
-                  fillColor: "rgba(239, 196, 56,0.7)",
-                  strokeColor: "rgba(239, 196, 56,1)",
-                  pointColor: "rgba(239, 196, 56,1)",
-                  pointStrokeColor: "#fff",
-                  pointHighlightFill: "#fff",
-                  pointHighlightStroke: "rgba(239, 196, 56,1)",
-                  data: [global_state.state.warning],
-                  name: "warning"
-                }
-              ]
-            };
-            return gadget.property_dict.chart0.render({
-              type: 'bar',
-              config: {
-                bezierCurve: false,
-                responsive: true,
-                barDatasetSpacing: 20
-              },
-              data: data
-            });
-          })*/
-    })
-    .declareAcquiredMethod("updateHeader", "updateHeader")
-    .declareAcquiredMethod('getUrlFor', 'getUrlFor')
-    .declareAcquiredMethod('jio_get', 'jio_get')
-    .declareAcquiredMethod('jio_allDocs', 'jio_allDocs')
-    //.declareAcquiredMethod('loginRedirect', 'loginRedirect')
-    .declareService(function () {
-      var gadget = this,
-        promise_list = [];
-
-      promise_list.push(loopEventListener(
-        gadget.element.querySelector('.loadbox'),
-        'click',
-        false,
-        function (evt) {
-          return new RSVP.Queue()
-            .push(function () {
-              var text = gadget.element.querySelector('.loadbox .loadwait a');
-              $(".loadbox .signal").removeClass("ui-content-hidden");
-              if (text) {
-                text.textContent = "Loading...";
-              }
-            })
-            .push(function () {
-              var history_content;
-    
-              return gadget.state.jio_gadget.get(
-                gadget.state.promise.source + ".history"
-              )
-              .push(undefined, function (error) {
-                console.log(error);
-                return undefined;
-              })
-              .push(function (status_history) {
-                var i,
-                  start_index = 0,
-                  history_size,
-                  history_list = [];
-
-                $(".loadbox .signal").addClass("ui-content-hidden");
-                if (status_history && status_history.hasOwnProperty('data')) {
-                  if (history_size > 600) {
-                    start_index = history_size - 600;
-                  }
-                  history_size = status_history.data.length;
-                  for (i = start_index; i < history_size; i += 1) {
-                    history_list.push(status_history.data[i]);
-                  }
-                  history_list.reverse();
-                }
-                history_content = load_history_template({
-                  history_list: history_list
-                });
-                gadget.element.querySelector(".loadbox")
-                      .innerHTML = history_content;
-                return $('.loadbox table').table().table("refresh");
-              });
-            });
-        }
-      ));
-
-      return RSVP.all(promise_list);
-    });
-
-
-}(window, rJS, Handlebars, RSVP, $));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_promise_interface_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_promise_interface_js.xml
deleted file mode 100644
index 17a0e21bda4f8e44eabfe67d92a7a42896accb0f..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_promise_interface_js.xml
+++ /dev/null
@@ -1,333 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Script" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/public</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/javascript</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_promise_interface.js</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_promise_interface_js</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Script</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring Promise Interface Gadget JS</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1451404822.04</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.21935.10239.63812</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1502465018.5</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1451404453.83</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_resource_view_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_resource_view_html.html
deleted file mode 100644
index f9fdf036b743fbd6a10b95d3260382793b57c61c..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_resource_view_html.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    <title>Monitoring Resource View Page</title>
-
-    <link href="gadget_monitoring_custom.css" rel="stylesheet" type="text/css"/>
-
-    <script src="notify.min.js"></script>
-    <script src="rsvp.js"></script>
-    <script src="renderjs.js"></script>
-    <script src="handlebars.js"></script>
-
-    <script id="graph-label-widget-template" type="text/x-handlebars-template">
-      <fieldset class="graph-state-labels" data-role="controlgroup">
-      {{#each label_list}}
-        <input type="checkbox" name="{{id}}" id="{{id}}" checked="">
-        <label for="{{id}}" style="color: {{color}};" class="{{graph}}" rel="{{index}}">{{name}}</label>
-      {{/each}}
-      </fieldset>
-    </script>
-
-    <script src="gadget_monitoring_resource_view.js"></script>
-  </head>
-
-  <body>
-    <div data-gadget-url="gadget_monitoring_jio.html" data-gadget-scope="jio_gadget" data-gadget-sandbox="public"></div>
-    <div class="ui-panel-overview ui-grid-container">
-      <div class="overview-details">
-        <div class="overview-header">
-          <div class='content-title ui-instance-title'>
-            <div class="overview-title">
-              <div data-gadget-url="gadget_monitoring_breadcrumb.html" data-gadget-scope="breadcrumb_gadget" data-gadget-sandbox="public"></div>
-            </div>
-            <div class="commands">
-            </div>
-          </div>
-        </div>
-      </div>
-      <h2 class="header-notice"><i class="fa fa-info" aria-hidden="true"></i> Graph content will be reloaded automatically every minutes.</h2>
-      <!--<ul class="ui-grid-column ui-grid-column-5 graph_cpu">
-        <li class="ui-grid-span-5 custom-grid-wrap graph-cell">
-          <div data-gadget-url="gadget_erp5_graph.html" data-gadget-scope="graph_cpu" class="graph graph-h-medium" data-gadget-sandbox="public"></div>
-        </li>
-        <li class="ui-grid-span-1 custom-grid-wrap graph-cell">
-          
-        </li>
-      </ul>-->
-      <div class="ui-grid-a ui-responsive">
-        <div data-gadget-url="gadget_field_graph_dygraph.html" data-gadget-scope="graph_cpu" class="graph graph-h-medium" data-gadget-sandbox="public"></div>
-      </div>
-      <div class="ui-grid-a ui-responsive">
-        <div data-gadget-url="gadget_field_graph_dygraph.html" data-gadget-scope="graph_memory_used" class="graph graph-h-medium" data-gadget-sandbox="public"></div>
-      </div>
-      <div class="ui-grid-b ui-responsive">
-        <div data-gadget-url="gadget_field_graph_dygraph.html" data-gadget-scope="graph_io" class="graph graph-h-medium" data-gadget-sandbox="public"></div>
-      </div>
-      <div class='graph-footer'>
-        
-      </div>
-    </div>
-  </body>
-</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_resource_view_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_resource_view_html.xml
deleted file mode 100644
index 9ae1830a7cfc618f37a5e95596bad7706c3d10e0..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_resource_view_html.xml
+++ /dev/null
@@ -1,333 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Page" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/public</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/html</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_resource_view.html</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_resource_view_html</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Page</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Gadget Monitoring Resource View</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1454340235.34</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.59537.30226.3259</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1504704987.14</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1454340130.62</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_resource_view_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_resource_view_js.js
deleted file mode 100644
index 03a8d2d3dbcac4f6149e4c534291f276444338b1..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_resource_view_js.js
+++ /dev/null
@@ -1,488 +0,0 @@
-/*global window, rJS, RSVP, Handlebars, $, console */
-/*jslint nomen: true, indent: 2, maxerr: 3*/
-(function (window, rJS, RSVP, Handlebars, $, console) {
-  "use strict";
-
-  var gadget_klass = rJS(window),
-    templater = gadget_klass.__template_element,
-    graph_labels_widget = Handlebars.compile(
-      templater.getElementById("graph-label-widget-template").innerHTML
-    );
-
-  gadget_klass
-    .setState({
-      opml: "",
-      opml_outline: "",
-      breadcrumb_gadget: ""
-    })
-    .ready(function (gadget) {
-      gadget.property_dict = {};
-      return gadget.getElement()
-        .push(function (element) {
-          gadget.property_dict.element = element;
-          gadget.property_dict.render_deferred = RSVP.defer();
-          gadget.property_dict.ressource_dict = {
-            memory_resource: "monitor_resource_memory.data",
-            cpu_resource: "monitor_resource_process.data",
-            io_resource: "monitor_resource_io.data"
-          };
-        });
-    })
-    .ready(function (gadget) {
-      return gadget.getDeclaredGadget("breadcrumb_gadget")
-        .push(function (breadcrumb_gadget) {
-          return gadget.changeState({breadcrumb_gadget: breadcrumb_gadget});
-        });
-    })
-    .ready(function (gadget) {
-      return gadget.getDeclaredGadget("graph_memory_used")
-        .push(function (graph_memory_used) {
-          gadget.property_dict.graph_mem_used = graph_memory_used;
-        });
-    })
-    .ready(function (gadget) {
-      return gadget.getDeclaredGadget("graph_cpu")
-        .push(function (graph_cpu) {
-          gadget.property_dict.graph_cpu = graph_cpu;
-          gadget.property_dict.graph_cpu_label_list = [];
-        });
-    })
-    .ready(function (gadget) {
-      return gadget.getDeclaredGadget("graph_io")
-        .push(function (graph_io) {
-          gadget.property_dict.graph_io = graph_io;
-        });
-    })
-    .ready(function (gadget) {
-      return gadget.getDeclaredGadget("jio_gadget")
-        .push(function (jio_gadget) {
-          gadget.property_dict.jio_gadget = jio_gadget;
-        });
-    })
-    .declareMethod("render", function (options) {
-      var gadget = this;
-
-      gadget.property_dict.document_key = options.key;
-      return gadget.updateHeader({
-        title: "Monitoring resources view"
-      })
-        .push(function () {
-          return gadget.jio_get(options.key);
-        })
-        .push(function (outline) {
-          return gadget.changeState({opml_outline: outline});
-        })
-        .push(function () {
-          return gadget.jio_allDocs({
-            select_list: ["basic_login", "url", "title"],
-            query: '(portal_type:"opml") AND (url:"' +
-              gadget.state.opml_outline.parent_url + '")'
-          });
-        })
-        .push(function (opml_doc) {
-          return gadget.changeState({opml: opml_doc.data.rows[0].value});
-        })
-        .push(function () {
-          return gadget.state.breadcrumb_gadget.render({
-            icon: "desktop",
-            url_list: [
-              {
-                title: gadget.state.opml.title,
-                url: "#page=hosting_subscription_view&key=" +
-                  gadget.state.opml.url
-              },
-              {
-                title: gadget.state.opml_outline.title,
-                url: "#page=software_instance_view&key=" +
-                  gadget.state.opml_outline.reference
-              },
-              {
-                title: "Resource consumption"
-              }
-            ]
-          });
-        })
-        .push(function () {
-          gadget.property_dict.jio_gadget.createJio({
-            type: "webhttp",
-            url: (gadget.state.opml_outline.url
-              .replace("jio_private", "private") +
-              'documents/').replace("jio_private", "private"),
-            basic_login: gadget.state.opml.basic_login
-          });
-          gadget.property_dict.mem_data = {data: []};
-          gadget.property_dict.process_data = {data: []};
-          gadget.property_dict.io_data = {data: []};
-          return gadget.property_dict.render_deferred.resolve();
-        });
-    })
-
-    .declareAcquiredMethod("updateHeader", "updateHeader")
-    .declareAcquiredMethod('jio_allDocs', 'jio_allDocs')
-    .declareAcquiredMethod('jio_get', 'jio_get')
-
-    /////////////////////////////////////////////////////////////////
-    // declared service
-    /////////////////////////////////////////////////////////////////
-    .declareService(function () {
-      var gadget = this,
-        date_window = [];
-
-      /*function toggleSerieVisibility(evt) {
-        var checkbox = evt.target.nextSibling,
-          index = $(evt.target).attr('rel');
-        if ($(checkbox).prop("checked")) {
-          $(checkbox).prop("checked", false).checkboxradio("refresh");
-        } else {
-          $(checkbox).prop("checked", true).checkboxradio("refresh");
-        }
-        return gadget.property_dict.graph_cpu.setVisibility(parseInt(index, 10), $(checkbox).prop("checked"))
-          .push(function () {
-            return evt;
-          });
-      }*/
-
-      function loadGraphData(key) {
-        var resource_key = gadget.property_dict.ressource_dict[key];
-        return gadget.property_dict.jio_gadget.get(resource_key)
-          .push(undefined, function (error) {
-            console.log(error);
-            $.notify(
-              "Error: Failed to download resource file '" + resource_key +
-                "' from URL: " + gadget.state.opml_outline.url,
-              {
-                  position: "top right",
-                  autoHideDelay: 7000,
-                  className: "error"
-                }
-            );
-            return {
-              data: []
-            };
-          })
-          .push(function (jio_element) {
-            date_window = getDateWindow(gadget.property_dict.mem_data.data);
-            if (!jio_element.hasOwnProperty('data')) {
-              return {data: []};
-            }
-            switch (key) {
-            case "memory_resource":
-              gadget.property_dict.mem_data = jio_element;
-              break;
-            case "cpu_resource":
-              gadget.property_dict.process_data = jio_element;
-              break;
-            case "io_resource":
-              gadget.property_dict.io_data = jio_element;
-              break;
-            }
-            return jio_element;
-          });
-      }
-
-      function updateIOData(date_window) {
-        var i,
-          element,
-          prev_element,
-          date_diff,
-          line_list = [],
-          data_list = [],
-          axis_dict = {};
-
-        function convertElement(element) {
-          var element_list = element.split(',');
-          return [
-            element_list[0],
-            parseFloat(element_list[1].trim()),
-            parseFloat(element_list[2].trim()),
-            element_list[3].trim()
-          ];
-        }
-        //"date, io rw counter, io cycles counter, disk used"
-        line_list = ["date", "io rw count (Kb/s)", "io cycles count (/1000)"]; //, "disk used"];
-        axis_dict["0"] = {
-          "title": "IO resources usage",
-          "scale_type": "linear",
-          "value_type": "date",
-          "zoom_range": date_window
-        };
-        for (i = 1; i < line_list.length; i += 1) {
-          line_list[i] = line_list[i].trim();
-          data_list.push({
-            value_dict: {"0": [], "1": []},
-            type: "surface",
-            axis_mapping_id_dict: {"1": "1_" + i},
-            title: line_list[i]
-          });
-          axis_dict["1_" + i] = {"title": line_list[i], "position": "right"};
-        }
-        if (gadget.property_dict.io_data.data.length > 2) {
-          prev_element = convertElement(gadget.property_dict.io_data.data[1]);
-          for (i = 2; i < gadget.property_dict.io_data.data.length; i += 1) {
-            element = convertElement(gadget.property_dict.io_data.data[i]);
-            date_diff = (new Date(element[0]).getTime() - new Date(prev_element[0]).getTime()) / 1000;
-            // XXX - repeating date everytime
-            data_list[0].value_dict["0"].push(element[0]);
-            data_list[0].value_dict["1"].push((element[1] - prev_element[1]) / (1024 * date_diff));
-            // XXX - repeating date everytime
-            data_list[1].value_dict["0"].push(element[0]);
-            data_list[1].value_dict["1"].push((element[2] - prev_element[2]) / 1000);
-            // XXX - repeating date everytime
-            /*data_list[2].value_dict["0"].push(element[0]);
-            data_list[2].value_dict["1"].push(element[3]);*/
-            prev_element = element;
-          }
-        }
-        return {
-          value:{
-            data: data_list,
-            layout: {
-              axis_dict : axis_dict,
-              title: "IO resources usage"
-            }
-          }
-        };
-      }
-
-      function getDateWindow(data) {
-        var max_date,
-          begin_date,
-          end_date,
-          date_window = [];
-        if (data.length > 0) {
-          max_date = data[data.length - 1].split(',')[0];
-          begin_date = new Date(max_date);
-          end_date = new Date(max_date);
-          begin_date.setHours(begin_date.getHours() -2);
-          date_window = [Date.parse(begin_date), Date.parse(end_date)];
-        }
-        return date_window;
-      }
-
-      function updateGraph () {
-        return new RSVP.Queue()
-          .push(function () {
-            var key,
-              promise_list = [];
-            for (key in gadget.property_dict.ressource_dict) {
-              promise_list.push(loadGraphData(key));
-            }
-            return RSVP.all(promise_list);
-          })
-          .push(function () {
-            var data = updateIOData(date_window);
-            return gadget.property_dict.graph_io.render(data);
-          })
-          .push(function () {
-            var data_list = [],
-              axis_dict = {},
-              line_list,
-              i,
-              j;
-
-            axis_dict = {
-              "0": {
-                "title": "Memory resources usage (Mo)",
-                "scale_type": "linear",
-                "value_type": "date",
-                "zoom_range": date_window
-              },
-              "1_2": {
-                "title": "Memory used percent",
-                "position": "right"
-              },
-              "1_1": {
-                "title": "Memory used",
-                "position": "right"
-              }
-            };
-            /*data_list.push({
-              value_dict: {"0": [], "1": []},
-              type: "surface",
-              axis_mapping_id_dict: {"1": "1_1"},
-              title: "Memory used percent"
-            });*/
-            data_list.push({
-              value_dict: {"0": [], "1": []},
-              type: "surface",
-              axis_mapping_id_dict: {"1": "1_2"},
-              title: "Memory used"
-            });
-            for (i = 1; i < gadget.property_dict.mem_data.data.length; i += 1) {
-              line_list = gadget.property_dict.mem_data.data[i].split(',');
-              data_list[0].value_dict["0"].push(line_list[0]);
-              data_list[0].value_dict["1"].push(line_list[2]);
-            }
-            return gadget.property_dict.graph_mem_used.render({
-              value:{
-                data: data_list,
-                layout: {
-                  axis_dict : axis_dict,
-                  title: "Memory resources usage"
-                }
-              }
-            });
-          })
-          .push(function () {
-            var data_list = [],
-              axis_dict = {},
-              previous_time = 0,
-              line_list,
-              cpu_time_index = -1,
-              i,
-              j;
-  
-            function getCPUTime(current) {
-              var increment = 0;
-              if (previous_time === 0) {
-                previous_time = current;
-                return 0;
-              }
-              increment = current - previous_time;
-              previous_time = current;
-              return increment;
-            }
-
-            //"date, total process, CPU percent, CPU time, CPU threads"
-            if (gadget.property_dict.process_data.data.length > 0) {
-              line_list = gadget.property_dict.process_data.data[0].split(',');
-            } else {
-              line_list = ["date", "total process", "CPU percent",
-                           "CPU time", "CPU threads"];
-            }
-            axis_dict["0"] = {
-              "title": "Process resources usage",
-              "scale_type": "linear",
-              "value_type": "date",
-              "zoom_range": date_window
-            };
-            for (i = 1; i < line_list.length; i += 1) {
-              line_list[i] = line_list[i].trim();
-              data_list.push({
-                value_dict: {"0": [], "1": []},
-                type: "line",
-                axis_mapping_id_dict: {"1": "1_" + i},
-                title: line_list[i]
-              });
-              if (line_list[i] === "CPU time") {
-                cpu_time_index = i;
-              }
-              axis_dict["1_" + i] = {"title": line_list[i], "position": "right"};
-            }
-            for (i = 1; i < gadget.property_dict.process_data.data.length; i += 1) {
-              line_list = gadget.property_dict.process_data.data[i].split(',');
-              for (j = 1; j < line_list.length; j += 1) {
-                // XXX - repeating date everytime
-                data_list[j - 1].value_dict["0"].push(line_list[0]);
-                if (j === cpu_time_index) {
-                  data_list[j - 1].value_dict["1"].push(getCPUTime(line_list[j]));
-                } else {
-                  data_list[j - 1].value_dict["1"].push(line_list[j]);
-                }
-              }
-            }
-            return gadget.property_dict.graph_cpu.render({
-              value:{
-                data: data_list,
-                layout: {
-                  axis_dict : axis_dict,
-                  title: "Process resources usage"
-                }
-              }
-            });
-          });
-      }
-
-      function updateGraphTimer() {
-        if (gadget.property_dict.timer) {
-          clearInterval(gadget.property_dict.timer);
-        }
-        gadget.property_dict.timer = setInterval(function(){
-            var hash = window.location.toString().split('#')[1];
-            console.log(hash + " KEY=" + gadget.property_dict.document_key);
-            if (hash.indexOf('page=resource_view') < 0 ||
-                hash.indexOf(gadget.property_dict.document_key)  < 0) {
-              clearInterval(gadget.property_dict.timer);
-              return;
-            }
-            updateGraph();
-          },
-          65000);
-      }
-
-      return new RSVP.Queue()
-        .push(function () {
-          return gadget.property_dict.render_deferred.promise;
-        })
-        /**.push(function () {
-          return gadget.property_dict.graph_cpu.render(
-            gadget.property_dict.process_data.data.join('\n'),
-            {
-              xlabel: '<span class="graph-label"><i class="fa fa-line-chart"></i> Process resources usage</span>',
-              labelsDivStyles: { 'textAlign': 'right' },
-              dateWindow: date_window,
-            },
-            "customInteractionModel"
-          );
-        })
-        .push(function () {
-          var label_list = gadget.property_dict.graph_cpu_label_list,
-            element = 'graph_cpu';
-          if (gadget.property_dict.graph_cpu_label_list.length > 0) {
-            label_list = label_list.slice(1); // remove date column
-            return gadget.property_dict.graph_cpu.getColors()
-              .push(function (color_list) {
-                var label_content,
-                  name_list = [],
-                  i;
-                for (i = 0; i < label_list.length; i += 1) {
-                  name_list.push({
-                    name: label_list[i],
-                    id: "label_" + label_list[i].trim().replace(/\s/g, '_'),
-                    color: color_list[i],
-                    graph: element,
-                    index: i
-                  });
-                }
-                label_content = graph_labels_widget({
-                  label_list: name_list
-                });
-                gadget.property_dict.element.querySelector(".ui-panel-overview ." + element + " .ui-grid-span-1")
-                  .innerHTML = label_content;
-                  return $(gadget.property_dict.element.querySelectorAll("[data-role=controlgroup]"))
-                    .controlgroup().controlgroup("refresh");
-              });
-          }
-        })
-        .push(function () {
-          var promise_list = [],
-            element_list = gadget.property_dict.element.querySelectorAll("label.graph_cpu"),
-            i;
-          for (i = 0; i < element_list.length; i += 1) {
-            promise_list.push(
-              loopEventListener(
-                element_list[i],
-                'click',
-                false,
-                toggleSerieVisibility
-              )
-            );
-            if ($(element_list[i]).attr('for').toLowerCase() !== 'label_cpu_percent' && $(element_list[i]).attr('for').toLowerCase() !== 'label_total_process') {
-              promise_list.push(gadget.property_dict.graph_cpu.setVisibility(
-                parseInt($(element_list[i]).attr('rel'), 10), false)
-              );
-              promise_list.push($(element_list[i]).click());
-            }
-          }
-          RSVP.all(promise_list);
-          return updateGraphTimer();
-        })**/
-        .push(function () {
-          return updateGraph();
-        })
-        .push(function () {
-          return updateGraphTimer();
-        });
-    });
-
-}(window, rJS, RSVP, Handlebars, $, console));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_resource_view_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_resource_view_js.xml
deleted file mode 100644
index d84c8307015466d23789255b3d5522a25b5f1d17..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_resource_view_js.xml
+++ /dev/null
@@ -1,329 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Script" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/public</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/javascript</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_resource_view.js</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_resource_view_js</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Script</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Gadget Monitoring Resource View JS</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>001</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1454340318.24</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.61208.24795.20087</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1504801600.39</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1454340276.13</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_router_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_router_html.xml
deleted file mode 100644
index b89e72e974f642a574d018b99a86197fb84f2cf5..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_router_html.xml
+++ /dev/null
@@ -1,329 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Page" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/public</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/html</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_router.html</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_router_html</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Page</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring router Gadget</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>001</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1451385288.5</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.6384.703.48554</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1502207781.7</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1451384955.3</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_router_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_router_js.js
deleted file mode 100644
index c0eed442337a153064dc0f3ef40f7dfb2992b5b6..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_router_js.js
+++ /dev/null
@@ -1,118 +0,0 @@
-/*global window, rJS, loopEventListener, document, RSVP */
-/*jslint nomen: true, indent: 2, maxerr: 3*/
-(function (window, rJS, loopEventListener, document, RSVP) {
-  "use strict";
-
-  var gadget_klass = rJS(window),
-    MAIN_PAGE_PREFIX = "gadget_monitoring_",
-    DEFAULT_PAGE = "main",
-    REDIRECT_TIMEOUT = 5000;
-
-  function listenHashChange(gadget) {
-    function extractHashAndDispatch(evt) {
-      var hash = (evt.newURL || window.location.toString()).split('#')[1],
-        subhashes,
-        subhash,
-        keyvalue,
-        index,
-        args = {};
-      if (hash !== undefined) {
-        subhashes = hash.split('&');
-        for (index in subhashes) {
-          if (subhashes.hasOwnProperty(index)) {
-            subhash = subhashes[index];
-            if (subhash !== '') {
-              keyvalue = subhash.split('=');
-              if (keyvalue.length === 2) {
-                args[decodeURIComponent(keyvalue[0])] = decodeURIComponent(keyvalue[1]);
-              }
-            }
-          }
-        }
-      }
-
-      return gadget.renderApplication({
-        args: args
-      });
-
-    }
-
-    var result = loopEventListener(window, 'hashchange', false,
-                                   extractHashAndDispatch),
-      event = document.createEvent("Event");
-    event.initEvent('hashchange', true, true);
-    event.newURL = window.location.toString();
-    window.dispatchEvent(event);
-    return result;
-  }
-
-  gadget_klass
-
-    .ready(function (gadget) {
-      gadget.props = {
-        start_deferred: RSVP.defer()
-      };
-    })
-
-    .declareMethod("getCommandUrlFor", function (options) {
-      var prefix = '',
-        result,
-        key;
-      result = "#";
-      for (key in options) {
-        if (options.hasOwnProperty(key) && options[key] !== undefined) {
-          // Don't keep empty values
-          result += prefix + encodeURIComponent(key) + "=" + encodeURIComponent(options[key]);
-          prefix = '&';
-        }
-      }
-      return result;
-    })
-
-    .declareMethod('redirect', function (options) {
-      return this.getCommandUrlFor(options)
-        .push(function (hash) {
-          window.location.replace(hash);
-          // prevent returning unexpected response
-          // wait for the hash change to occur
-          // fail if nothing happens
-          return RSVP.timeout(REDIRECT_TIMEOUT);
-        });
-    })
-
-    .declareMethod('route', function (options) {
-      var gadget = this,
-        args = options.args;
-      gadget.options = options;
-      if (args.page === undefined || args.page === '') {
-        args.page = DEFAULT_PAGE;
-      }
-      if (args.page === "view") {
-        return {
-          url: "gadget_monitoring_promise_interface.html",
-          options: args
-        };
-      }
-      return {
-        url: MAIN_PAGE_PREFIX + args.page + ".html",
-        options: args
-      };
-    })
-
-    .declareAcquiredMethod('renderApplication', 'renderApplication')
-    .declareMethod('start', function () {
-      this.props.start_deferred.resolve();
-    })
-
-    .declareService(function () {
-      var gadget = this;
-      return new RSVP.Queue()
-        .push(function () {
-          return gadget.props.start_deferred.promise;
-        })
-        .push(function () {
-          return listenHashChange(gadget);
-        });
-    });
-
-}(window, rJS, loopEventListener, document, RSVP));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_router_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_router_js.xml
deleted file mode 100644
index c88da3467200bc3e3275b29e4edcd39ad64649b8..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_router_js.xml
+++ /dev/null
@@ -1,329 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Script" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/public</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/javascript</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_router.js</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_router_js</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Script</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring router Gadget JS</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>001</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1451385300.46</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.21883.33309.38348</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1502445069.13</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1451384895.89</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_html.html
deleted file mode 100644
index 09055897f972c8484528174d614584956325e948..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_html.html
+++ /dev/null
@@ -1,187 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
-    <meta name="viewport" content="width=device-width, user-scalable=no" />
-    <title>Monitoring Configurator</title>
-
-    <!-- renderjs -->
-    <script src="rsvp.js" type="text/javascript"></script>
-    <script src="renderjs.js" type="text/javascript"></script>
-
-    <script id="template-opmlurl-list" type="text/x-handlebars-template">
-      {{#each opml_list}}
-      <tr>
-        <td class="column-check ui-text-center padding-10">
-          <input type="checkbox" name="opmlurl" value="{{key}}">
-        </td>
-        <td>
-          <a class="ui-link" href="{{href}}">{{link}}</a>
-        </td>
-        <td>
-          <a class="ui-link" href="{{href}}">{{title}}</a>
-        </td>
-        <td>
-          <a class="ui-link" href="{{href}}">{{status}}</a>
-        </td>
-      </tr>
-      {{/each}}
-    </script>
-
-    <script id="template-message-error" type="text/x-handlebars-template">
-      <p><span class='ui-text-{{status}}'>{{text}}</span></p>
-    </script>
-
-    <script src="gadget_monitoring_settings_configurator.js" type="text/javascript"></script>
-  </head>
-  <body>
-    <div data-gadget-url="gadget_monitoring_jio.html" data-gadget-scope="jio_gadget" data-gadget-sandbox="public"></div>
-    <div data-gadget-url="gadget_monitoring_sync.html" data-gadget-scope="sync_gadget" data-gadget-sandbox="public"></div>
-    <div data-role="tabs" class="config-tabs">
-      <div data-role="navbar">
-        <ul>
-          <li><a href="#config-manage" data-ajax="false">Monitor Configuration</a></li>
-          <li><a href="#config-add" data-ajax="false">Add Monitor OPML</a></li>
-        </ul>
-      </div>
-      <div id="config-add" class="ui-body-c ui-content">
-        <article class="ui-content ui-body-c">
-          <section class="ui-content-header-plain">
-            <h3 class="ui-content-title ui-body-c">
-              <span class="ui-icon ui-icon-custom ui-icon-database">&nbsp;</span>
-              Monitor OPML configuration
-            </h3>
-          </section>
-          <form class="opml">
-            <section class="ui-body-c ui-content-sections">
-              <div class="ui-form">
-                <div class="ui-field-contain">
-                  <label data-i18n="OPML URL:">OPML URL:</label>
-                  <input type="url" name="url" required value=""/>
-                </div>
-              </div>
-              <div class="auth-block">
-                <div class="ui-form">
-                  <div class="ui-field-contain">
-                    <label data-i18n="Username:">Username:</label>
-                    <input type="text" name="username" required value=""/>
-                  </div>
-                </div>
-                <div class="ui-form">
-                  <div class="ui-field-contain">
-                    <label data-i18n="Password:">Password</label>
-                    <input type="password" name="password" required value=""/>
-                  </div>
-                </div>
-                <label class="configure-auth">
-                  <input type="checkbox" name="configure-newpwd">Show/hide update password form
-                </label>
-                <div class="new-password" style="display: none">
-                  <div class="ui-form">
-                    <div class="ui-field-contain">
-                      <label data-i18n="New Password:">New Password:</label>
-                      <input type="password" name="new_password" required value="-"/>
-                    </div>
-                  </div>
-                  <div class="ui-form">
-                    <div class="ui-field-contain">
-                      <label data-i18n="Confirm New Password:">Confirm New Password:</label>
-                      <input type="password" name="new_password_confirm" required value="-"/>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </section>
-            <div class="alert alert-error ui-content-hidden"></div>
-            <div class="ui-grid-b ui-responsive">
-              <div class="ui-block-a"></div>
-              <div class="ui-block-b">
-                <div class="ui-content-hidden ui-text-right padding-10 spinner">
-                  <i class="fa fa-spinner fa-2x fa-spin"></i>
-                </div>
-              </div>
-              <div class="ui-block-c">
-                <button type="submit" data-i18n="Add OPML" class="ui-btn-btn-right">Add OPML</button>
-              </div>
-            </div>
-          </form>
-        </article>
-      </div>
-      <div id="config-manage">
-        <div class="ui-responsive content-medium">
-          <div class="ui-panel-overview" style="min-height: 450px;">
-            <div class="overview-header">
-              <div class='content-title ui-instance-title'>
-                <div class="overview-title">
-                  <i class="fa fa-link"></i><span>Monitoring OPML List</span>
-                </div>
-                <div class="commands">
-                </div>
-              </div>
-            </div>
-            <div class="overview-content">
-
-              <div class="ui-listview-container">
-                <table class="ui-responsive ui-body-c ui-table-inset opml-tablelinks">
-                  <thead class="ui-bar-inherit">
-                    <tr>
-                      <th class="padding-10"><input type="checkbox" name="opml-all" value="all"></th>
-                      <th>OPML URL</th>
-                      <th>Hosting Subscription Name</th>
-                      <th>Status</th>
-                    </tr>
-                  </thead>
-                  <tbody>
-
-                  </tbody>
-                  <tfoot class="ui-bar-inherit"></tfoot>
-                </table>
-              </div>
-              <div class="padding-10 msgtext-box"></div>
-              <legend><strong>With OPML Selection:</strong></legend>
-              <div class="padding-lr-10">
-                <a href="#" class="ui-btn ui-corner-all ui-btn-inline opml-state"><i class="fa fa-check-square-o"></i> Enable/disable</a>
-                <a href="#" class="ui-btn ui-corner-all ui-btn-inline opml-delete"><i class="fa fa-trash"></i> Delete</a>
-                <a href="#" class="ui-btn ui-corner-all ui-btn-inline opml-test"><i class="fa fa-globe" aria-hidden="true"></i> Test URL Access</a>
-                <span class="ui-content-hidden padding-10 loadspinner">
-                  <i class="fa fa-spinner fa-2x fa-spin"></i>
-                </span>
-              </div>
-              <div>
-                <legend><strong>Auto Sync Time Interval:</strong></legend>
-                <div class="padding-lr-10">
-                  <fieldset class="sync-interval-controlgroup" data-role="controlgroup" data-type="horizontal">
-                    <input type="radio" name="sync-data-timer" id="sync-data-5m" value="300000" checked="checked">
-                    <label for="sync-data-5m">5 mn</label>
-                    <input type="radio" name="sync-data-timer" id="sync-data-10m" value="600000">
-                    <label for="sync-data-10m">10 mn</label>
-                    <input type="radio" name="sync-data-timer" id="sync-data-20m" value="1200000">
-                    <label for="sync-data-20m">20 mn</label>
-                    <input type="radio" name="sync-data-timer" id="sync-data-30m" value="1800000">
-                    <label for="sync-data-30m">30 mn</label>
-                    <input type="radio" name="sync-data-timer" id="sync-data-1h" value="3600000">
-                    <label for="sync-data-1h">1 h</label>
-                  </fieldset>
-                  <p>Last sync date: <span class="last-sync"></span></p>
-                </div>
-                <legend><strong>Check Online Access Before Sync:</strong></legend>
-                <div class="padding-lr-10">
-                  <fieldset data-role="controlgroup" data-type="horizontal">
-                    <select name="sync-check-offline" id="sync-check-offline" data-role="slider" data-mini="true">
-                      <option value="off">Off</option>
-                      <option value="on">On</option>
-                    </select>
-                  </fieldset>
-                </div>
-                <h2><strong>Manual Sync:</strong></h2>
-                <div class="padding-lr-10">
-                  <button class="ui-btn ui-corner-all ui-btn-inline sync-all"><i class="fa fa-download"></i> <span>Sync Data Now</span></button>
-                </div>
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_html.xml
deleted file mode 100644
index 3ac0a3dfc8c3265ea760549bf004e2a2a5a89455..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_html.xml
+++ /dev/null
@@ -1,329 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Page" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/public</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/html</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_settings_configurator.html</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_settings_configurator_html</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Page</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring Settings Configuration</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>001</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1451385866.1</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.52563.23676.54306</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1504526479.13</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1451385783.42</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_js.js
deleted file mode 100644
index 3be721aa3bfa950292958965febb42498c5842ae..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_js.js
+++ /dev/null
@@ -1,858 +0,0 @@
-/*global window, rJS, btoa, RSVP, $, XMLHttpRequest */
-/*jslint nomen: true, indent: 2, maxerr: 3*/
-(function (window, rJS, RSVP, $, btoa, XMLHttpRequest) {
-  "use strict";
-
-  var gadget_klass = rJS(window),
-    templater = gadget_klass.__template_element,
-
-    opml_url_template = Handlebars.compile(
-      templater.getElementById("template-opmlurl-list").innerHTML
-    ),
-    notify_msg_template = Handlebars.compile(
-      templater.getElementById("template-message-error").innerHTML
-    );
-
-  function validateHttpUrl(value) {
-    if (/\(?(?:(http|https):\/\/)(?:((?:[^\W\s]|\.|-|[:]{1})+)@{1})?((?:www.)?(?:[^\W\s]|\.|-)+[\.][^\W\s]{2,4}|localhost|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|\[[\dabcedf:]+\])(?::(\d*))?([\/]?[^\s\?]*[\/]{1})*(?:\/?([^\s\n\?\[\]\{\}\#]*(?:(?=\.)){1}|[^\s\n\?\[\]\{\}\.\#]*)?([\.]{1}[^\s\?\#]*)?)?(?:\?{1}([^\s\n\#\[\]]*))?([\#][^\s\n]*)?\)?/i.test(value)) {
-      return true;
-    }
-    return false;
-  }
-
-  function formatDate(d) {
-    function addZero(n) {
-      return n < 10 ? '0' + n : '' + n;
-    }
-
-    return d.getFullYear() + "-" + addZero(d.getMonth()+1)
-      + "-" + addZero(d.getDate()) + " " + addZero(d.getHours())
-      + ":" + addZero(d.getMinutes()) + ":" + addZero(d.getSeconds());
-  }
-
-  function checkCredential(gadget, url, title, hash) {
-    var ouput;
-    // Verify if login and password are correct for this URL
-    if (url === undefined) {
-      return {status: 'OK'};
-    }
-    return testUrl(url, hash)
-      .then(function(result) {
-        return result;
-      }, function(error) {
-        var ko_msg = {
-            status: 'KO',
-            msg: error.msg + ' (' + url + ')',
-            title: title
-          };
-        return ko_msg;
-      });
-  }
-
-  function testOPmlUrl(gadget, url, title) {
-    return testUrl(url)
-      .push(function (result) {
-        if (result.status !== "OK") {
-          var text =  result.code + ": " + url + " [ " + title + " ] is not reachable!",
-            message_content = notify_msg_template({
-              text: text,
-              status: "error"
-            });
-          gadget.element.querySelector('.msgtext-box')
-            .innerHTML += message_content;
-          return false;
-        }
-        return true;
-      });
-  }
-
-  function loadOPMLConfiguration(gadget) {
-    return gadget.jio_allDocs({
-      query: 'portal_type:"opml"',
-      select_list: ['title', 'url', 'active', 'basic_login'],
-      sort_on: [["title", "ascending"]]
-    })
-      .push(function (result) {
-        var i,
-          opml_list = [],
-          cred_list,
-          content;
-        for (i = 0; i < result.data.total_rows; i += 1) {
-          cred_list = atob(result.data.rows[i].value.basic_login).split(":");
-          opml_list.push({
-            key: result.data.rows[i].value.title + "#" +
-              result.data.rows[i].value.url,
-            href: "#page=settings_configurator&url=" +
-              result.data.rows[i].value.url +
-              '&tab=add&password=' + cred_list[1] +
-              '&username=' + cred_list[0],
-            link: result.data.rows[i].value.url,
-            title: result.data.rows[i].value.title || '',
-            status: (result.data.rows[i].value.active) ? "Enabled" : "Disabled"
-          });
-        }
-        content = opml_url_template({opml_list: opml_list});
-        gadget.element.querySelector(".opml-tablelinks > tbody")
-          .innerHTML = content;
-        return gadget.changeState({"opml_list": opml_list});
-      });
-  }
-
-  function testUrl(url, credential_hash) {
-    return new RSVP.Queue()
-      .push(function () {
-        return new RSVP.Promise(function (resolve, reject) {
-          var xhr = new XMLHttpRequest();
-
-          xhr.onload = function (event) {
-            var response = event.target;
-            if (response.status === 200) {
-              resolve({status: 'OK'});
-            } else {
-              reject({
-                status: 'ERROR',
-                msg: new Error("XHR: " + response.status + ": " + response.statusText)
-              });
-            }
-          };
-    
-          xhr.onerror = function (e) {
-            reject({
-              status: 'ERROR',
-              msg: e.target.status + ": " + e.target.statusText
-            });
-          };
-    
-          xhr.open("GET", url, true);
-          //xhr.withCredentials = true;
-          if (credential_hash !== undefined) {
-            xhr.setRequestHeader('Authorization', 'Basic ' + credential_hash);
-          }
-          xhr.send("");
-        });
-      });
-  }
-
-  function changeMonitorPassword(gadget, base_url, title, basic_login,
-      password) {
-    var url = base_url,
-      jio_gadget,
-      jio_options;
-
-    url += (url.endsWith('/') ? '':'/') + 'config/';
-    gadget.props.gindex += 1;
-    return gadget.declareGadget("gadget_monitoring_jio.html",
-        {
-          element: gadget.element,
-          scope: 'jio_' + gadget.props.gindex + "_gadget",
-          sandbox: "public"
-        }
-      ).push(function(new_gadget) {
-        jio_gadget = new_gadget;
-        jio_gadget.createJio({
-          type: "query",
-          sub_storage: {
-            type: "drivetojiomapping",
-            sub_storage: {
-              type: "dav",
-              url: url,
-              basic_login: basic_login
-            }
-          }
-        });
-        return jio_gadget.get('config');
-      })
-      .push(function (doc) {
-        var i;
-        if (doc) {
-          for (i  = 0; i < doc.length; i += 1) {
-            if (doc[i].key === 'monitor-password') {
-              doc[i].value = password;
-              return jio_gadget.put('config.tmp', doc);
-            }
-          }
-        }
-        return new Error("Cannot get document 'config.json' at : " % url);
-      })
-      .push(function () {
-        return {status: 'OK'};
-      }, function (error) {
-        console.log(error);
-        return {
-          status: 'ERROR',
-          code: error.target.status,
-          url: base_url,
-          title: title
-        };
-      });
-    
-  }
-
-  gadget_klass
-    /////////////////////////////
-    // state
-    /////////////////////////////
-    .setState({
-      deferred: "",
-      sync_gadget: "",
-      selected: "",
-      jio_gadget: "",
-      opml_list: ""
-    })
-    /////////////////////////////
-    // ready
-    /////////////////////////////
-    .ready(function (gadget) {
-      gadget.props = {gindex: 0};
-      return new RSVP.Queue()
-        .push(function () {
-          return gadget.changeState({deferred: RSVP.defer()});
-        })
-        .push(function () {
-          return gadget.getDeclaredGadget("sync_gadget")
-            .push(function (sync_gadget) {
-              return gadget.changeState({"sync_gadget": sync_gadget});
-            });
-        })
-        .push(function () {
-          return gadget.getDeclaredGadget("jio_gadget")
-            .push(function (jio_gadget) {
-              return gadget.changeState({"jio_gadget": jio_gadget});
-            });
-        });
-    })
-    .declareAcquiredMethod("updateHeader", "updateHeader")
-    .declareAcquiredMethod("redirect", "redirect")
-    .declareAcquiredMethod("reload", "reload")
-    .declareAcquiredMethod("getSetting", "getSetting")
-    .declareAcquiredMethod("setSetting", "setSetting")
-    .declareAcquiredMethod("jio_put", "jio_put")
-    .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
-    .declareAcquiredMethod("jio_get", "jio_get")
-    .declareAcquiredMethod("jio_remove", "jio_remove")
-    .declareMethod("render", function (options) {
-      var gadget = this;
-      return gadget.updateHeader({
-        title: "Configure monitoring OPML"/*,
-        back_url: "#page=main",
-        panel_action: false*/
-      })
-      .push(function () {
-        return loadOPMLConfiguration(gadget);
-      })
-      .push(function () {
-        var i;
-        if (options.url !== undefined && options.url !== '') {
-          gadget.element.querySelector("input[name='url']")
-            .value = options.url;
-          if (options.username !== undefined && options.username !== '' &&
-              options.password !== undefined && options.password !== '') {
-            //gadget.props.username = options.username;
-            //gadget.props.password = options.password;
-            gadget.element.querySelector("input[name='username']")
-              .value = options.username;
-            gadget.element.querySelector("input[name='password']")
-              .value = options.password;
-          }
-        }
-        return gadget.getSetting('latest_sync_time');
-      })
-      .push(function (latest_sync_time) {
-        if (latest_sync_time !== undefined) {
-          gadget.element.querySelector(".last-sync")
-            .textContent = formatDate(new Date(latest_sync_time));
-        } else {
-          gadget.element.querySelector(".last-sync")
-            .textContent = '--';
-        }
-      })
-      .push(function () {
-        if (!options.tab) {
-          if (!options.url) {
-            options.tab = 'manage';
-          } else {
-            options.tab = 'add';
-          }
-        }
-        return gadget.changeState({"selected": options.tab});
-      })
-      .push(function () {
-        return gadget.state.deferred.resolve();
-      });
-    })
-
-    /////////////////////////////////////////
-    // Form submit
-    /////////////////////////////////////////
-    .declareService(function () {
-      var gadget = this,
-        sync_checkbox_list,
-        online_select_element,
-        alert_box,
-        i;
-
-      function setSyncTimerInterval(element) {
-        var timer;
-          if ($(element).prop('checked')) {
-            timer = parseInt($(element).val(), 10);
-            if (timer && !isNaN(timer)) {
-              return new RSVP.Queue()
-                .push(function () {
-                  return gadget.setSetting('sync_data_interval', timer);
-                });
-            }
-          }       
-      }
-
-      function setSelectSyncTime(time_interval) {
-        var element_id = "#sync-data-";
-        if (time_interval === 300000) {
-          element_id += "5m";
-        } else if (time_interval === 600000) {
-          element_id += "10m";
-        } else if (time_interval === 1200000) {
-          element_id += "20m";
-        } else if (time_interval === 1800000) {
-          element_id += "30m";
-        } else if (time_interval === 3600000) {
-          element_id += "1h";
-        }
-        $(element_id).prop('checked', true);
-        return $(gadget.element.querySelector(".sync-interval-controlgroup"))
-          .controlgroup().controlgroup("refresh");
-      }
-
-      function getSelectedOPMLList() {
-        var key_list = [],
-          opml_selector = ".opml-tablelinks tr td input[type='checkbox']",
-          check_list,
-          i;
-        check_list = gadget.element.querySelectorAll(opml_selector);
-        if (!check_list) {
-          return [];
-        }
-        for (i = 0; i < check_list.length; i += 1) {
-          if ($(check_list[i]).prop('checked')) {
-            key_list.push($(check_list[i]).prop('value'));
-          }
-        }
-        return key_list;
-      }
-
-      function setFormValue(data) {
-        if (data === undefined) {
-          data = {};
-        }
-        gadget.element
-          .querySelector("input[name='username']").value = data.username || "";
-        gadget.element
-          .querySelector("input[name='password']").value = data.password || "";
-        gadget.element
-          .querySelector("input[name='new_password']").value = data.new_password || "";
-        gadget.element
-          .querySelector("input[name='new_password_confirm']").value = data.new_password_confirm || "";
-        gadget.element
-          .querySelector("input[name='url']").value = data.url || "";
-      }
-
-      return new RSVP.Queue()
-        .push(function () {
-          return gadget.state.deferred.promise;
-        })
-        .push(function () {
-          var item = "a[href='#config-" + gadget.state.selected + "']";
-          alert_box = $(gadget.element
-            .querySelector('.opml .alert-error'));
-          return $(gadget.element.querySelector(item)).trigger('click');
-        })
-        .push(function () {
-          return gadget.getSetting('sync_data_interval');
-        })
-        .push(function (time_interval) {
-          return setSelectSyncTime(time_interval);
-        })
-        .push(function () {
-          return gadget.getSetting("sync_check_offline", "true");
-        })
-        .push(function (sync_check_offline) {
-          if (sync_check_offline) {
-            $(gadget.element.querySelector("select[name='sync-check-offline']"))
-              .val('on').slider("refresh");
-          }
-        })
-        .push(function () {
-          var promise_list = [];
-
-          promise_list.push(loopEventListener(
-            gadget.element.querySelector('.sync-all'),
-            'click',
-            true,
-            function () {
-              var title = gadget.element.querySelector('.sync-all span').textContent;
-              return new RSVP.Queue()
-                .push(function () {
-                  gadget.element.querySelector('.sync-all span')
-                    .textContent = 'Please wait...';
-                  gadget.element.querySelector('.sync-all')
-                    .disabled = true;
-                  return gadget.state.sync_gadget.startSync({now: true});
-                })
-                .push(function () {
-                  gadget.element.querySelector('.sync-all span')
-                    .textContent = title;
-                  gadget.element.querySelector('.sync-all')
-                    .disabled = false;
-                  return gadget.getSetting('latest_sync_time');
-                })
-                .push(function (latest_sync_time) {
-                  if (latest_sync_time !== undefined) {
-                    gadget.element.querySelector(".last-sync")
-                      .textContent = formatDate(new Date(latest_sync_time));
-                  } else {
-                    gadget.element.querySelector(".last-sync")
-                      .textContent = '--';
-                  }
-                });
-            }
-          ));
-
-          promise_list.push(loopEventListener(
-            gadget.element.querySelector("table th input[name='opml-all']"),
-            'change',
-            false,
-            function (element) {
-              if ($(element.target).prop('checked')) {
-                return $(".opml-tablelinks tr td input[type='checkbox']").prop('checked', true);
-              } else {
-                return $(".opml-tablelinks tr td input[type='checkbox']").prop('checked', false);
-              }
-            }
-          ));
-
-          promise_list.push(
-            $(gadget.element.querySelector("select[name='sync-check-offline']")
-            ).bind( "change", function() {
-              var element = gadget.element.querySelector("select[name='sync-check-offline']");
-              return gadget.setSetting('sync_check_offline',
-                                       ($(element).val() === 'on') ? "true" : "false");
-            })
-          );
-          promise_list.push(
-            $(gadget.element.querySelector(
-              "input[name='configure-newpwd']"
-            )).bind( "change", function(event, ui) {
-              var confirm_pwd,
-                new_pwd,
-                box = gadget.element.querySelector(".opml .new-password");
-              confirm_pwd = gadget.element.querySelector(
-                ".opml input[name='new_password_confirm']"
-              );
-              new_pwd = gadget.element.querySelector(
-                ".opml input[name='new_password']"
-              );
-              if ($(this).prop('checked')) {
-                confirm_pwd.value = "";
-                new_pwd.value = "";
-                return $(box).slideDown();
-              } else {
-                confirm_pwd.value = "-";
-                new_pwd.value = "-";
-                return $(box).slideUp();
-              }
-            })
-          );
-
-          promise_list.push(loopEventListener(
-            gadget.element.querySelector("a.opml-delete"),
-            'click',
-            true,
-            function (element) {
-              var key_list,
-                promise_list = [],
-                item_list,
-                i;
-              gadget.element.querySelector('.msgtext-box')
-                .innerHTML = "";
-              key_list = getSelectedOPMLList();
-              if (key_list.length <= 0) {
-                gadget.element.querySelector('.msgtext-box')
-                  .innerHTML = notify_msg_template({
-                    status: "info",
-                    text: "No OPML selected!"
-                  });
-                return false;
-              }
-              for (i = 0; i < key_list.length; i += 1) {
-                item_list = key_list[i].split("#");
-                promise_list.push(gadget.jio_remove(
-                  item_list.slice(1, item_list.length).join("#")
-                ));
-              }
-              return new RSVP.Queue()
-                .push(function () {
-                  return RSVP.all(promise_list);
-                })
-                .push(undefined, function (error) {
-                  console.log(error);
-                  gadget.element.querySelector('.msgtext-box')
-                    .innerHTML = notify_msg_template({
-                      status: "error",
-                      text: " ERROR while removing OPML(s)"
-                    });
-                  return;
-                })
-                .push(function () {
-                  return gadget.reload();
-                });
-            }
-          ));
-
-          promise_list.push(loopEventListener(
-            gadget.element.querySelector("a.opml-test"),
-            'click',
-            true,
-            function (element) {
-              var key_list,
-                promise_list = [],
-                item_list,
-                title,
-                i;
-              gadget.element.querySelector('.msgtext-box')
-                .textContent = "";
-              key_list = getSelectedOPMLList();
-              if (key_list.length <= 0) {
-                gadget.element.querySelector('.msgtext-box')
-                  .innerHTML = notify_msg_template({
-                    status: "info",
-                    text: "No OPML selected!"
-                  });
-                return false;
-              }
-              for (i = 0; i < key_list.length; i += 1) {
-                item_list = key_list[i].split("#");
-                title = item_list[0];
-                promise_list.push(testOPmlUrl(
-                  gadget,
-                  item_list.slice(1, item_list.length).join("#"),
-                  title
-                ));
-              }
-              return new RSVP.Queue()
-                .push(function () {
-                  $(gadget.element.querySelector('.loadspinner'))
-                    .removeClass('ui-content-hidden');
-                  return RSVP.all(promise_list);
-                })
-                .push(function (result) {
-                  var i,
-                    state = true;
-                  for (i = 0; i < result.length; i += 1) {
-                    if (! result[i]) {
-                      state = false;
-                      break;
-                    }
-                  }
-                  if (state) {
-                    gadget.element.querySelector('.msgtext-box')
-                      .innerHTML = notify_msg_template({
-                        status: "ok",
-                        text: "All OPML URLs was successfully tested."
-                      });
-                  }
-                  $(gadget.element.querySelector('.loadspinner')).addClass('ui-content-hidden');
-                });
-            }
-          ));
-
-          promise_list.push(loopEventListener(
-            gadget.element.querySelector("a.opml-state"),
-            'click',
-            true,
-            function (element) {
-              var key_list,
-                promise_list = [],
-                item_list,
-                i;
-              gadget.element.querySelector('.msgtext-box')
-                .innerHTML = "";
-              key_list = getSelectedOPMLList();
-              if (key_list.length <= 0) {
-                gadget.element.querySelector('.msgtext-box')
-                  .innerHTML = notify_msg_template({
-                    status: "info",
-                    text: "No OPML selected!"
-                  });
-                return false;
-              }
-              for (i = 0; i < key_list.length; i += 1) {
-                item_list = key_list[i].split("#");
-                promise_list.push(gadget.jio_get(
-                  item_list.slice(1, item_list.length).join("#")
-                ));
-              }
-              return new RSVP.Queue()
-                .push(function () {
-                  return RSVP.all(promise_list);
-                })
-                .push(undefined, function (error) {
-                  console.log(error);
-                  gadget.element.querySelector('.msgtext-box')
-                    .innerHTML = notify_msg_template({
-                      status: "error",
-                      text: "ERROR while updating OPML(s)"
-                    });
-                  return [];
-                })
-                .push(function (result_list) {
-                  var i,
-                    promise_state_list = [];
-                  for (i = 0; i < result_list.length; i += 1) {
-                    result_list[i].active = !result_list[i].active;
-                    promise_state_list.push(gadget.jio_put(
-                      result_list[i].url,
-                      result_list[i]
-                    ));
-                  }
-                  return RSVP.all(promise_state_list);
-                })
-                .push(function (result_list) {
-                  if (result_list.length > 0) {
-                    return loadOPMLConfiguration(gadget);
-                  }
-                });
-            }
-          ));
-
-          promise_list.push(loopEventListener(
-            gadget.element.querySelector('form.opml'),
-            'submit',
-            true,
-            function () {
-              var current_opml,
-                username = '',
-                password = '',
-                opml_url = '',
-                new_password = '',
-                cnew_password = '',
-                submit_text,
-                button_submit = gadget.element
-                  .querySelector('.opml button[type="submit"]');
-              $(gadget.element.querySelector('.opml .alert-error'))
-                .addClass('ui-content-hidden').text('');
-              submit_text = button_submit.textContent;
-
-              if ($(gadget.element.querySelector("input[name='configure-newpwd']")).prop('checked')) {
-                new_password = gadget.element.querySelector("input[name='new_password']").value;
-                cnew_password = gadget.element.querySelector("input[name='new_password_confirm']").value;
-                if (new_password !== cnew_password) {
-                  alert_box.removeClass('ui-content-hidden')
-                    .text('The new password and it confirmation are differents!');
-                  return false;
-                }
-              }
-
-              function saveClick() {
-                $(gadget.element.querySelector('.spinner'))
-                            .removeClass('ui-content-hidden');
-                button_submit.disabled = true; 
-              }
-              function endSave() {
-                $(gadget.element.querySelector('.spinner'))
-                            .addClass('ui-content-hidden');
-                button_submit.disabled = false;
-                button_submit.textContent = submit_text;
-              }
-
-              function pushNewOPML(opml_url, username, password, new_password) {
-                var opml_dict = {
-                    type: "opml",
-                    portal_type: "opml",
-                    url: opml_url,
-                    basic_login: btoa(username + ':' + password),
-                    active: true
-                  },
-                  update_password_list = [];
-
-                function validateOPML() {
-                  // read the opml to get the content and title
-                  //delete gadget.state.jio_storage;
-                  button_submit.textContent = "Reading OPML content...";
-                  gadget.state.jio_gadget.createJio({
-                    type: "query",
-                    sub_storage: {
-                      type: "parser",
-                      document_id: opml_url,
-                      attachment_id: 'enclosure',
-                      parser: 'opml',
-                      sub_storage: {
-                        type: "http"
-                      }
-                    }
-                  });
-                  return gadget.state.jio_gadget.allDocs({
-                    select_list: ['title', 'opml_title', 'xmlUrl', 'url']
-                  })
-                    .push(undefined, function (error) {
-                      var msg = "";
-                      if (error.currentTarget !== undefined && 
-                          (error.currentTarget.responseType === "" ||
-                          error.currentTarget.responseType === "text")) {
-                        msg = error.currentTarget.responseText;
-                      }
-                      alert_box.removeClass('ui-content-hidden')
-                        .text(error.currentTarget.status +
-                              ": Failed to access OPML URL. " + msg);
-                      return {data: {total_rows: 0}};
-                    })
-                    .push(function (opml_result) {
-                      var i,
-                        check_list = [true];
-                      if (opml_result.data.total_rows > 0) {
-                        opml_dict.title = opml_result.data.rows[0].value.title;
-                        for (i = 1; i < opml_result.data.total_rows; i += 1) {
-                          if (opml_result.data.rows[i].value.url !== undefined) {
-                            check_list.push(checkCredential(
-                              gadget,
-                              opml_result.data.rows[i].value.url,
-                              opml_result.data.rows[i].value.title,
-                              opml_dict.basic_login
-                            ));
-                            update_password_list.push({
-                              base_url: opml_result.data.rows[i].value.url,
-                              title: opml_result.data.rows[i].value.title
-                            });
-                          }
-                        }
-                        button_submit.textContent = "Validating password(s)...";
-                        return RSVP.all(check_list);
-                      }
-                      return [false];
-                    })
-                    .push(function (status_list) {
-                      var i,
-                        error_msg = '';
-                      for (i = 1; i < status_list.length; i += 1) {
-                        if (status_list[i].status !== 'OK') {
-                          error_msg += 'Login/password invalid for instance: ' +
-                            status_list[i].title + '. ' +
-                            status_list[i].msg + '\n';
-                        }
-                      }
-                      if (error_msg !== '') {
-                        alert_box.removeClass('ui-content-hidden')
-                          .text(error_msg);
-                        return false;
-                      }
-                      return status_list[0];
-                    })
-                    .push(function (previous_status) {
-                      var i,
-                        update_promise_list = [];
-                      if (new_password === "") {
-                        return previous_status;
-                      }
-                      if (!previous_status) {
-                        return false;
-                      }
-                      button_submit.textContent = "Changing password(s)...";
-                      for (i = 0; i < update_password_list.length; i += 1) {
-                        update_promise_list.push(changeMonitorPassword(
-                          gadget,
-                          update_password_list[i].base_url,
-                          update_password_list[i].title,
-                          opml_dict.basic_login,
-                          new_password
-                        ));
-                      }
-                      return new RSVP.Queue()
-                        .push(function () {
-                          return RSVP.all(update_promise_list);
-                        })
-                        .push(function(result_list) {
-                          var i,
-                            error_msg = "";
-                          for (i = 0; i < result_list.length; i += 1) {
-                            if (result_list[i].status === 'ERROR') {
-                              error_msg += 'ERROR ' + result_list[i].code +
-                                '. [' + result_list[i].title + '] Failed to ' +
-                                'change password, please try again\n';
-                            }
-                          }
-                          if (error_msg !== "") {
-                            alert_box.removeClass('ui-content-hidden')
-                              .text(error_msg);
-                            return false;
-                          } else {
-                            opml_dict.basic_login =
-                              btoa(username + ':' + new_password);
-                            return true;
-                          }
-                        });
-                    });
-                }
-
-                saveClick();
-                return gadget.jio_get(opml_dict.url)
-                  .push(function (jio_doc) {
-                    return jio_doc;
-                  }, function (error) {
-                    return {};
-                  })
-                  .push(function (doc) {
-                    current_opml = doc;
-                    return validateOPML();
-                  })
-                  .push(function (status) {
-                    if (status) {
-                      button_submit.textContent = "Saving OPML...";
-                      return gadget.jio_put(opml_dict.url, opml_dict)
-                        .push(function () {
-                          endSave();
-                          return gadget.redirect({
-                            page: 'status_list'
-                          });
-                        });
-                    }
-                    endSave();
-                  });
-              }
-
-              return new RSVP.Queue()
-                .push(function () {
-                  var promise_list = [],
-                    i;
-                  username = gadget.element
-                    .querySelector("input[name='username']").value;
-                  password = gadget.element
-                    .querySelector("input[name='password']").value;
-                  opml_url = gadget.element
-                    .querySelector("input[name='url']").value;
-
-                  if (!validateHttpUrl(opml_url)) {
-                    alert_box.removeClass('ui-content-hidden')
-                      .text(
-                        "'" + opml_url + "' is not a valid OPML URL"
-                      );
-                    return false;
-                  }
-                  return pushNewOPML(opml_url, username, password,
-                                     new_password);
-                });
-            }
-          ));
-
-          sync_checkbox_list = gadget.element.querySelectorAll("input[name='sync-data-timer']");
-          for (i = 0; i < sync_checkbox_list.length; i += 1) {
-            promise_list.push(
-              $(sync_checkbox_list[i])
-              .bind("change",
-                setSyncTimerInterval.bind(gadget, sync_checkbox_list[i]))
-            );
-          }
-
-          return RSVP.all(promise_list);
-        });
-    });
-
-}(window, rJS, RSVP, $, btoa, XMLHttpRequest));
-
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_js.xml
deleted file mode 100644
index 7ff304bc10ca79b840f60c11f3a40650017b0b4f..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_js.xml
+++ /dev/null
@@ -1,329 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Script" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/public</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/javascript</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_settings_configurator.js</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_settings_configurator_js</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Script</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring Settings Gadget JS</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>001</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1451387399.92</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.62212.52900.63880</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1504861845.27</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1451387225.4</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_list_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_list_html.html
deleted file mode 100644
index c46e6c2c969a75ac959f9d5904430642c97c9062..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_list_html.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    <title>Monitoring Software Instance List</title>
-
-    <link href="gadget_monitoring_custom.css" rel="stylesheet" type="text/css"/>
-
-    <script src="rsvp.js"></script>
-    <script src="renderjs.js"></script>
-
-    <script src="gadget_monitoring_software_instance_list.js"></script>
-
-  </head>
-
-  <body>
-    <div data-gadget-url="gadget_monitoring_widget_listbox.html" data-gadget-scope="listview"></div>
-  </body>
-</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_list_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_list_html.xml
deleted file mode 100644
index cb8a771b0b2adc435762587a4fa9be2072f6ed12..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_list_html.xml
+++ /dev/null
@@ -1,333 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Page" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/public</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/html</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_software_instance_list.html</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_software_instance_list_html</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Page</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring Software Instance List</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1453456785.61</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.6384.703.48554</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1501836246.32</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1453456749.69</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_list_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_list_js.js
deleted file mode 100644
index 85dfb050f4d10f5e9d6c13b2ee278559b6377197..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_list_js.js
+++ /dev/null
@@ -1,102 +0,0 @@
-/*global window, rJS, RSVP, URI, location, $,
-    loopEventListener, btoa */
-/*jslint nomen: true, indent: 2, maxerr: 3*/
-(function (window, rJS, $) {
-  "use strict";
-
-  rJS(window)
-    .ready(function (gadget) {
-      gadget.property_dict = {
-        render_deferred: RSVP.defer()
-      };
-    })
-    .ready(function (gadget) {
-      return gadget.getDeclaredGadget("listview")
-        .push(function (listbox_gadget) {
-          gadget.property_dict.listview = listbox_gadget;
-        });
-    })
-    .declareMethod('render', function (options) {
-      var gadget = this,
-        header = {
-          "title": 'Software Instances List'
-        },
-        listview_options = {
-          search_page: 'software_instance_list',
-          search: options.search,
-          filter: options.filter,
-          selection: '',
-          view: 'software_instance_view',
-          filter_column: {select: "status", "title": "Status"},
-          column_list: [{
-            select: 'status',
-            title: 'Status',
-            template: ' <span class="label label-{{value}}">{{value}}</span>',
-            css_class: 'ui-text-center'
-          }, {
-            title: 'Software Instance',
-            select: 'title'
-          }, {
-            title: 'Hosting Subscription',
-            select: 'hosting-title'
-          }, {
-            select: 'date',
-            title: 'Status Date',
-            convertDate: false
-          }],
-          query: {
-            select_list: ['title', 'status', 'date', 'hosting-title'],
-            query: '(portal_type:"global") AND (active:true)',
-            sort_on: [["hosting-title", "ascending"]]
-          }
-        };
-
-      gadget.property_dict.options = options;
-      return gadget.updateHeader(header)
-        .push(function () {
-          return gadget.property_dict.listview.render(listview_options);
-        });
-    })
-    .declareAcquiredMethod("updateHeader", "updateHeader")
-    .declareAcquiredMethod("renderApplication", "renderApplication")
-    .declareAcquiredMethod("getSetting", "getSetting")
-    .declareAcquiredMethod("setSetting", "setSetting")
-    .declareService(function () {
-      var gadget = this,
-        current_sync_date;
-
-      return gadget.getSetting('latest_sync_time')
-        .push(function (sync_time) {
-          current_sync_date = sync_time;
-          return gadget.getSetting('status_list_refresh_id');
-        })
-        .push(function (timer_id) {
-          var new_timer_id;
-          if (timer_id) {
-            clearInterval(timer_id);
-          }
-          new_timer_id = setInterval(function(){
-            var hash = window.location.toString().split('#')[1],
-              scroll_position,
-              doc = document.documentElement;
-            if (hash.indexOf('page=software_instance_list') >= 0) {
-              return gadget.getSetting('latest_sync_time')
-                .push(function (sync_time) {
-                  if (sync_time > current_sync_date) {
-                    scroll_position = (window.pageYOffset || doc.scrollTop)  - (doc.clientTop || 0);
-                    current_sync_date = sync_time;
-                    return gadget.renderApplication({args: gadget.property_dict.options})
-                      .push(function () {
-                        $(document).scrollTop(scroll_position);
-                      });
-                  }
-                });
-            }
-          }, 60000);
-          return gadget.setSetting('status_list_refresh_id', new_timer_id);
-        });
-
-    });
-
-
-}(window, rJS, $));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_list_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_list_js.xml
deleted file mode 100644
index f5ca4896111c2ee4142e09429c29afe177b2e2ff..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_list_js.xml
+++ /dev/null
@@ -1,329 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Script" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/public</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/javascript</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_software_instance_list.js</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_software_instance_list_js</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Script</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring Instance List Gadget JS</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>001</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1453456681.15</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.21883.33309.38348</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1502445069.14</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1453456464.84</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_view_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_view_html.html
deleted file mode 100644
index 070a571f479b9f257df7dc2b6412a3f02858d359..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_view_html.html
+++ /dev/null
@@ -1,149 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8" />
-    <meta name="viewport" content="width=device-width, user-scalable=no" />
-    <title>Monitoring Software Instance</title>
-
-    <!-- renderjs -->
-    <script src="rsvp.js" type="text/javascript"></script>
-    <script src="renderjs.js" type="text/javascript"></script>
-    <script src="handlebars.js"></script>
-
-    <script id="details-widget-overview" type="text/x-handlebars-template">
-      <div class="ui-text-left" style="padding-bottom: 15px;">
-        <h2><i class="fa fa-info-circle"></i> <strong>Software Instance State Information <a target='_blank' href="{{rss_url}}" title="RSS"><i class="fa fa-rss-square"></i></a></strong></h2>
-        <div class="padding-10">
-          <div class="ui-grid-a ui-responsive">
-            <div class="ui-block-a">
-              <fieldset data-role="controlgroup" data-type="horizontal">
-                {{#if resource_url }}
-                <a href="{{resource_url}}" class="ui-btn ui-corner-all ui-btn-inline ui-mini" title="Software Instance Resource comsumption"><i class="fa fa-pie-chart"></i> Resources</a>
-                {{/if}}
-                {{#if process_url }}
-                <a href="{{process_url}}" class="ui-btn ui-corner-all ui-btn-inline ui-mini" title="Processes usage"><i class="fa fa-list-alt"></i> Processes</a>
-                {{/if}}
-              </fieldset>
-            </div>
-            <div class="ui-block-b">
-              <fieldset data-role="controlgroup" data-type="horizontal">
-                {{#if private_url}}
-                <a class="ui-btn ui-corner-all ui-btn-inline ui-mini" target='_blank' href="{{private_url}}" title="Browse Private Logs Directory"><i class="fa fa-lock"></i> Private Logs</a>
-                {{/if}}
-                {{#if public_url}}
-                  <a class="ui-btn ui-corner-all ui-btn-inline ui-mini" target='_blank' href="{{public_url}}" title="Public Logs Directory"><i class="fa fa-folder-open-o"></i> Public Logs</a>
-                {{/if}}
-                {{#if rss_url}}
-                  <!--<a class="ui-btn ui-corner-all ui-btn-inline ui-mini" target='_blank' href="{{rss_url}}" title="RSS"><i class="fa fa-rss-square"></i> RSS</a>-->
-                {{/if}}
-              </fieldset>
-            </div>
-          </div>
-
-          <div class="ui-grid-a ui-responsive">
-            {{#if warning}}
-            <p class="ui-text-error"><i class="fa fa-info-circle" aria-hidden="true"></i> Status was changed to WARNING as last sync of this instance failed.</p>
-            {{/if}}
-            {{#with instance}}
-            <div class="ui-block-a">
-              <table data-role="table" data-mode="columntoggle" class="table-stroke">
-                <tr>
-                  <th><i class="fa fa-tachometer m-hidden"></i> Instance Status</th>
-                  <td><span class="label label-{{../status}}">{{../status}}</span></td>
-                </tr>
-                <tr>
-                  <th><i class="fa fa-clock-o m-hidden" aria-hidden="true"></i> Report Date</th>
-                  <td title="Report Date">{{../date}}</td>
-                </tr>
-                <tr>
-                  <th><i class="fa fa-link" aria-hidden="true"></i> Software Release</th>
-                  <td><a style="padding: 0; min-height: initial;" href="{{software-release}}" title="{{software-release}}" target='_blank'>Click to open <i class="fa fa-external-link"></i></a></td>
-                </tr>
-                <tr>
-                  <th><i class="fa fa-line-chart" aria-hidden="true"></i> Promises Error</th>
-                  <td title="Number of promises error in Software Instance">{{../error}}</td>
-                </tr>
-                <tr>
-                  <th><i class="fa fa-line-chart" aria-hidden="true"></i> Promises OK</th>
-                  <td title="Number of promises OK in Software Instance">{{../success}}</td>
-                </tr>
-              </table>
-            </div>
-            <div class="ui-block-b">
-              <table data-role="table" data-mode="columntoggle" class="table-stroke">
-                <tr>
-                  <th><i class="fa fa-desktop m-hidden"></i> Computer</th>
-                  <td title="Computer Reference">{{computer}}</td>
-                </tr>
-                <tr>
-                  <th><i class="fa fa-square m-hidden"></i> Computer Partition</th>
-                  <td title="Partition Reference">{{partition}}</td>
-                </tr>
-                <tr>
-                  <th><i class="fa fa-globe m-hidden"></i> IPv4 Address</th>
-                  <td title="IPv4">{{ipv4}}</td>
-                </tr>
-                <tr>
-                  <th><i class="fa fa-globe m-hidden"></i> IPv6 Address</th>
-                  <td title="IPv6">{{ipv6}}</td>
-                </tr>
-                <tr>
-                  <th>Software Type</th>
-                  <td title="Software type">{{software-type}}</td>
-                </tr>
-              </table>
-            </div>
-            {{/with}}
-          </div>
-        </div>
-      </div>
-    </script>
-
-    <script id="promiselist-widget-template" type="text/x-handlebars-template">
-      {{#if promise_list}}
-      <h2><i class="fa fa-th-list"></i> <strong>Software Instance Promises</strong></h2>
-      <div style="overflow: auto;" class="padding-lr-10">
-        <table data-role="table" data-mode="columntoggle" class="table-stroke ui-table-custom">
-          {{#each promise_list}}
-          <tr title="{{message}}">
-            <td><a href="{{href}}">{{title}}</a></td>
-            <td class="m-hidden" style="text-align: center;">{{date}}</td>
-            <td style="text-align: center;"><span class="label label-{{status}}">{{status}}</span></td>
-          </tr>
-          {{/each}}
-        </table>
-      </div>
-      {{/if}}
-    </script>
-
-    <!-- custom script -->
-    <script src="gadget_monitoring_software_instance_view.js" type="text/javascript"></script>
-
-    </head>
-  <body>
-    <div data-gadget-url="gadget_monitoring_jio.html" data-gadget-scope="jio_gadget" data-gadget-sandbox="public"></div>
-    <div class="ui-panel-overview">
-      <div class="overview-details">
-        <div class="overview-header">
-          <div class='content-title ui-instance-title'>
-            <div class="overview-title">
-              <div data-gadget-url="gadget_monitoring_breadcrumb.html" data-gadget-scope="breadcrumb_gadget" data-gadget-sandbox="public"></div>
-            </div>
-            <div class="commands">
-  
-            </div>
-          </div>
-        </div>
-        <div class="content-details">
-        </div>
-      </div>
-      <div class="graph-full">
-        <div class="signal ui-content-hidden"></div>
-        <h2><i class="fa fa-line-chart" aria-hidden="true"></i> <strong>Promises result progression</strong></h2>
-        <div data-gadget-url="gadget_field_graph_dygraph.html" data-gadget-scope="graph_gadget" class="graph graph-medium "></div>
-      </div>
-      <div class="promise-list">
-      </div>
-    </div>
-  </body>
-</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_view_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_view_js.js
deleted file mode 100644
index b4d406b02c320f5ec4c926204ee781a92c3a97c8..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_software_instance_view_js.js
+++ /dev/null
@@ -1,367 +0,0 @@
-/*global window, rJS, RSVP, Handlebars, loopEventListener, $, atob */
-/*jslint nomen: true, indent: 2 */
-(function (window, rJS, RSVP, Handlebars, loopEventListener, $, atob) {
-  "use strict";
-
-  /////////////////////////////////////////////////////////////////
-  // templates
-  /////////////////////////////////////////////////////////////////
-  var gadget_klass = rJS(window),
-    templater = gadget_klass.__template_element,
-    hashCode = new Rusha().digestFromString;
-
-  /////////////////////////////////////////////////////////////////
-  // some methods
-  /////////////////////////////////////////////////////////////////
-
-  function formatDate(d) {
-    function addZero(n) {
-      return n < 10 ? '0' + n : '' + n;
-    }
-
-    return d.getFullYear() + "-" + addZero(d.getMonth()+1)
-      + "-" + addZero(d.getDate()) + " " + addZero(d.getHours())
-      + ":" + addZero(d.getMinutes()) + ":" + addZero(d.getSeconds());
-  }
-
-  gadget_klass
-
-    .setState({
-      instance: "",
-      promise_list: [],
-      opml: "",
-      opml_outline: "",
-      jio_gadget: "",
-      graph_gadget: "",
-      breadcrumb_gadget: ""
-    })
-    /////////////////////////////////////////////////////////////////
-    // ready
-    /////////////////////////////////////////////////////////////////
-    .ready(function (gadget) {
-      gadget.property_dict = {
-        render_deferred: RSVP.defer()
-      };
-    })
-
-    .ready(function (gadget) {
-      return gadget.getElement()
-        .push(function (element) {
-          gadget.property_dict.element = element;
-        });
-    })
-    .ready(function (gadget) {
-      return gadget.getDeclaredGadget("graph_gadget")
-        .push(function (graph_gadget) {
-          return gadget.changeState({graph_gadget: graph_gadget});
-        });
-    })
-    .ready(function (gadget) {
-      return gadget.getDeclaredGadget("jio_gadget")
-        .push(function (jio_gadget) {
-          return gadget.changeState({jio_gadget: jio_gadget});
-        });
-    })
-    .ready(function (gadget) {
-      return gadget.getDeclaredGadget("breadcrumb_gadget")
-        .push(function (breadcrumb_gadget) {
-          return gadget.changeState({breadcrumb_gadget: breadcrumb_gadget});
-        });
-    })
-    /*.ready(function (gadget) {
-      return gadget.getSetting('instance_overview_selection')
-        .push(function (selection) {
-          gadget.property_dict.selection = selection || '';
-        });
-    })*/
-
-    /////////////////////////////////////////////////////////////////
-    // published methods
-    /////////////////////////////////////////////////////////////////
-
-    /////////////////////////////////////////////////////////////////
-    // acquired methods
-    /////////////////////////////////////////////////////////////////
-    .declareAcquiredMethod("updateHeader", "updateHeader")
-    .declareAcquiredMethod("translate", "translate")
-    .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
-    .declareAcquiredMethod("jio_get", "jio_get")
-    .declareAcquiredMethod("getSetting", "getSetting")
-    .declareAcquiredMethod("setSetting", "setSetting")
-
-    /////////////////////////////////////////////////////////////////
-    // declared methods
-    /////////////////////////////////////////////////////////////////
-    .declareMethod('render', function (option_dict) {
-      var gadget = this;
-
-      return gadget.updateHeader({
-        title: "Monitoring software instance view"
-      })
-        .push(function () {
-          return gadget.jio_get(option_dict.key);
-        })
-        .push(function (current_document) {
-          if (current_document.portal_type === "global") {
-            return gadget.changeState({instance: current_document})
-              .push(function () {
-                // Get opml outline document
-                return gadget.jio_allDocs({
-                  select_list: [
-                    "parent_url",
-                    "parent_id",
-                    "title",
-                    "opml_title",
-                    "reference"],
-                  query: '(portal_type:"opml-outline") AND (reference:"' +
-                    gadget.state.instance.parent_id + '")'
-                });
-              })
-              .push(function (opml_outline) {
-                return gadget.changeState({
-                  opml_outline: opml_outline.data.rows[0].value
-                });
-              });
-          }
-          return gadget.changeState({opml_outline: current_document})
-            .push(function (opml_outline) {
-              return gadget.jio_allDocs({
-                select_list: [
-                  "_embedded",
-                  "_links",
-                  "data",
-                  "date",
-                  "reference",
-                  "parent_id",
-                  "state",
-                  "title",
-                  "status",
-                  "hosting-title"
-                ],
-                query: '(portal_type:"global") AND (parent_id:"' +
-                  current_document.reference + '")'
-              });
-            })
-            .push(function (instance) {
-              if (instance.data.total_rows > 0) {
-                return gadget.changeState({
-                  instance: instance.data.rows[0].value
-                });
-              }
-              console.log("Cannot find document: " + option_dict.key);
-              return {};
-            });
-        })
-        .push(function () {
-          return gadget.jio_allDocs({
-              select_list: [
-                "source",
-                "lastBuildDate",
-                "comments",
-                "category",
-                "reference"
-              ],
-              query: '(portal_type:"promise") AND (parent_id:"' +
-                gadget.state.instance.parent_id + '")'
-            });
-        })
-        .push(function (promise_result) {
-          return gadget.changeState({promise_list: promise_result.data.rows});
-        })
-        .push(function () {
-          return gadget.jio_allDocs({
-            select_list: ["basic_login", "url", "title"],
-            query: '(portal_type:"opml") AND (url:"' +
-              gadget.state.opml_outline.parent_url + '")'
-          });
-        })
-        .push(function (opml_doc) {
-          return gadget.changeState({opml: opml_doc.data.rows[0].value});
-        })
-        .push(function () {
-          return gadget.state.breadcrumb_gadget.render({
-            icon: "cubes",
-            url_list: [
-              {
-                title: gadget.state.opml.title,
-                url: "#page=hosting_subscription_view&key=" +
-                  gadget.state.opml.url
-              },
-              {
-                title: gadget.state.instance.title,
-              }
-            ]
-          });
-        })
-        .push(function () {
-          var instance_content,
-            promise_list_template,
-            content,
-            promise_content,
-            promise_list = [],
-            i,
-            tmp_url,
-            tmp_process_url,
-            current_document = gadget.state.instance,
-            pass_url = '',
-            private_url = current_document._links
-                .hasOwnProperty('private_url') ? current_document
-                ._links.private_url.href : '';
-
-          if (private_url !== '') {
-            private_url = private_url.replace("jio_private", "private");
-            pass_url = "https://" + atob(gadget.state.opml.basic_login) +
-              "@" + private_url.split("//")[1];
-          }
-          gadget.property_dict.monitor = current_document;
-          if (current_document.hasOwnProperty('data') &&
-              current_document.data.hasOwnProperty('state')) {
-
-            instance_content = Handlebars.compile(
-              templater.getElementById("details-widget-overview").innerHTML
-            ),
-            promise_list_template = Handlebars.compile(
-              templater.getElementById("promiselist-widget-template").innerHTML
-            );
-
-            // Resource view URLs
-            tmp_url = "#page=resource_view&key=" + gadget.state.opml_outline.reference;
-            tmp_process_url = "#page=process_view&key=" +
-              gadget.state.opml_outline.reference;
-
-            content = instance_content({
-                title: current_document.title,
-                date: current_document.date,
-                status: current_document.status,
-                error: current_document.state.error,
-                success: current_document.state.success,
-                instance: current_document._embedded.instance || '',
-                public_url: current_document._links
-                  .hasOwnProperty('public_url') ? current_document
-                  ._links.public_url.href : '',
-                private_url: pass_url,
-                rss_url: current_document._links.hasOwnProperty('rss_url') ? current_document._links.rss_url.href : '',
-                resource_url: tmp_url,
-                process_url: tmp_process_url,
-                warning: (current_document.status.toUpperCase() === "WARNING") ? true : false
-              });
-
-              for (i = 0; i < gadget.state.promise_list.length; i += 1) {
-                promise_list.push({
-                  date: formatDate(
-                    new Date(gadget.state.promise_list[i].value.lastBuildDate)
-                  ),
-                  title: gadget.state.promise_list[i].value.source,
-                  status: gadget.state.promise_list[i].value.category,
-                  message: gadget.state.promise_list[i].value.comments || "No message output",
-                  href: "#page=view&key=" + gadget.state.promise_list[i].value.reference
-                });
-                if (current_document.status === "WARNING") {
-                  promise_list[i].status = current_document.status;
-                }
-              }
-              promise_content = promise_list_template({
-                promise_list: promise_list
-              });
-            gadget.property_dict.element.querySelector(".overview-details .content-details")
-              .innerHTML = content;
-            gadget.property_dict.element.querySelector(".promise-list")
-              .innerHTML = promise_content;
-            return $(gadget.property_dict.element.querySelectorAll('fieldset[data-role="controlgroup"]'))
-              .controlgroup().controlgroup('refresh');
-          }
-          
-        })
-        .push(function () {
-          return gadget.property_dict.render_deferred.resolve();
-        });
-    })
-
-    /////////////////////////////////////////////////////////////////
-    // declared service
-    /////////////////////////////////////////////////////////////////
-    .declareService(function () {
-      var gadget = this;
-
-      return new RSVP.Queue()
-        .push(function () {
-          return gadget.property_dict.render_deferred.promise;
-        })
-        .push(function () {
-          var jio_options = {
-            type: "webhttp",
-            url: gadget.state.instance._links.private_url.href
-              .replace("jio_private", "private") +
-              'documents/'.replace("jio_private", "private"),
-            basic_login: gadget.state.opml.basic_login
-          };
-          $(".graph-full .signal").removeClass("ui-content-hidden");
-          gadget.state.jio_gadget.createJio(jio_options);
-          return gadget.state.jio_gadget.get(
-            gadget.state.instance.data.state
-          )
-          .push(undefined, function (error) {
-            console.log(error);
-            return {};
-          });
-        })
-        .push(function (element_dict) {
-          var promise_data = [
-              "Date, Success, Error, Warning",
-              new Date() + ",0,0,0"
-            ],
-            data = element_dict.data || promise_data,
-            data_list = [],
-            line_list,
-            i;
-
-          data_list.push({
-            value_dict: {"0": [], "1": []},
-            type: "scatter",
-            axis_mapping_id_dict: {"1": "1_1"},
-            title: "promises success counter"
-          });
-          data_list.push({
-            value_dict: {"0": [], "1": []},
-            type: "scatter",
-            axis_mapping_id_dict: {"1": "1_2"},
-            title: "promises error counter"
-          });
-          for (i = 1; i < data.length; i += 1) {
-            line_list = data[i].split(',');
-            data_list[0].value_dict["0"].push(line_list[0]);
-            data_list[0].value_dict["1"].push(line_list[1]);
-
-            // XXX repeating date entry
-            data_list[1].value_dict["0"].push(line_list[0]);
-            data_list[1].value_dict["1"].push(line_list[2]);
-          }
-          $(".graph-full .signal").addClass("ui-content-hidden");
-          return gadget.state.graph_gadget.render({
-            value:{
-              data: data_list,
-              layout: {
-                axis_dict : {
-                  "0": {
-                    "title": "Success/Failure counter",
-                    "scale_type": "linear",
-                    "value_type": "date"
-                  },
-                  "1_1": {
-                    "title": "Promises success counter",
-                    "position": "left"
-                  },
-                  "1_2": {
-                    "title": "Promises error counter",
-                    "position": "left"
-                  }
-                },
-                title: "Success/Failure counter"
-              }
-            }
-          });
-        });
-          //return RSVP.all(promise_list);
-    });
-
-}(window, rJS, RSVP, Handlebars, loopEventListener, $, atob));
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_status_list_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_status_list_html.html
deleted file mode 100644
index 02195bd84ab9151d3307358e2847fbca0254c6bf..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_status_list_html.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    <title>Monitoring Status Interface</title>
-
-    <link href="gadget_monitoring_custom.css" rel="stylesheet" type="text/css"/>
-
-    <script src="rsvp.js"></script>
-    <script src="renderjs.js"></script>
-
-    <script src="gadget_monitoring_status_list.js"></script>
-
-  </head>
-
-  <body>
-    <div data-gadget-url="gadget_monitoring_widget_listbox.html" data-gadget-scope="listbox"></div>
-  </body>
-</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_status_list_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_status_list_html.xml
deleted file mode 100644
index 4dd1b15b7d36da818dbed6f94b90318770fca85e..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_status_list_html.xml
+++ /dev/null
@@ -1,333 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Page" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/public</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/html</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_status_list.html</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_status_list_html</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Page</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring Status Interface List</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1451393117.17</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.6384.703.48554</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1501792301.32</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1451392817.2</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_status_list_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_status_list_js.js
deleted file mode 100644
index 4a5063b455870f22dde375b0300121ac3a0c29dd..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_status_list_js.js
+++ /dev/null
@@ -1,139 +0,0 @@
-/*global window, rJS, RSVP, URI, location, $,
-    loopEventListener, btoa */
-/*jslint nomen: true, indent: 2, maxerr: 3*/
-(function (window, rJS, $) {
-  "use strict";
-
-  rJS(window)
-    .ready(function (gadget) {
-      gadget.property_dict = {
-        render_deferred: RSVP.defer()
-      };
-    })
-    .ready(function (gadget) {
-      return gadget.getDeclaredGadget("listbox")
-        .push(function (listbox_gadget) {
-          gadget.property_dict.listbox = listbox_gadget;
-        });
-    })
-    .declareMethod('render', function (options) {
-      var gadget = this,
-        header = {
-          "title": 'Monitoring Promises Status'
-        },
-        listbox_configuration = {
-          search_page: 'status_list',
-          search: options.search,
-          filter: options.filter || '',
-          column_list: [{
-            title: 'Promise',
-            select: 'source'
-          }, {
-            title: 'Software Instance',
-            select: 'channel_item'
-          }, {
-            title: 'Hosting Subscription',
-            select: 'channel'
-          }, {
-            select: 'lastBuildDate',
-            title: 'Promise Date',
-            convertDate: true
-          }, {
-            select: 'comments',
-            title: 'Message',
-            css_class: 'text-overview'
-          }, {
-            select: 'category',
-            title: 'Status',
-            template: ' <span class="label label-{{value}}">{{value}}</span>',
-            css_class: 'ui-text-center'
-          }],
-          filter_column: {select: "category", "title": "Status"},
-          query: {
-            "limit": [0, 400],
-            select_list: ['source', 'channel_item', 'channel', 'category',
-              'date', 'comments', 'link', 'lastBuildDate', 'parent_id'],
-            query: '(portal_type:"promise") AND (active:true)',
-            sort_on: [["category", "ascending"], ["channel", "ascending"]]
-          }
-        };
-
-      return gadget.updateHeader(header)
-        .push(function () {
-          if (options.reset_filter === "1") {
-            return;
-          }
-          if (!options.hasOwnProperty('search') || !options.hasOwnProperty('filter')) {
-            return gadget.getSetting('status_list_selection_key')
-              .push(function (selection) {
-                if (selection) {
-                  return gadget.redirect({
-                    page: 'status_list',
-                    filter: options.filter || selection.filter,
-                    search: options.search || selection.search
-                  });
-                }
-              });
-          }
-        })
-        .push(function () {
-          var selection = {
-            filter: options.filter || '',
-            search: options.search || ''
-          };
-          if (options.reset_filter !== "1") {
-            return gadget.setSetting('status_list_selection_key', selection);
-          } else {
-            return '';
-          }
-        })
-        .push(function () {
-          gadget.property_dict.options = options;
-          return gadget.property_dict.listbox.render(listbox_configuration);
-        });
-    })
-    .declareAcquiredMethod("getSetting", "getSetting")
-    .declareAcquiredMethod("setSetting", "setSetting")
-    .declareAcquiredMethod("redirect", "redirect")
-    .declareAcquiredMethod("updateHeader", "updateHeader")
-    .declareAcquiredMethod("renderApplication", "renderApplication")
-    .declareService(function () {
-      var gadget = this,
-        current_sync_date;
-
-      return gadget.getSetting('latest_sync_time')
-        .push(function (sync_time) {
-          current_sync_date = sync_time;
-          return gadget.getSetting('status_list_refresh_id');
-        })
-        .push(function (timer_id) {
-          var new_timer_id;
-          if (timer_id) {
-            clearInterval(timer_id);
-          }
-          new_timer_id = setInterval(function(){
-            var hash = window.location.toString().split('#')[1],
-              scroll_position,
-              doc = document.documentElement;
-            if (hash.indexOf('page=status_list') >= 0) {
-              return gadget.getSetting('latest_sync_time')
-                .push(function (sync_time) {
-                  if (sync_time > current_sync_date) {
-                    scroll_position = (window.pageYOffset || doc.scrollTop)  - (doc.clientTop || 0);
-                    current_sync_date = sync_time;
-                    return gadget.renderApplication({args: gadget.property_dict.options})
-                      .push(function () {
-                        $(document).scrollTop(scroll_position);
-                      });
-                  }
-                });
-            }
-          }, 60000);
-          return gadget.setSetting('status_list_refresh_id', new_timer_id);
-        });
-        
-      
-    });
-
-
-}(window, rJS, $));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_status_list_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_status_list_js.xml
deleted file mode 100644
index c3866b50595eb7edc72ec24987f969eed638907c..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_status_list_js.xml
+++ /dev/null
@@ -1,329 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Script" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/public</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/javascript</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_status_list.js</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_status_list_js</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Script</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring Status List Gadget JS</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>001</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1452872767.48</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.42463.34618.20070</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1503676888.75</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1452872717.99</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_widget_listbox_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_widget_listbox_html.html
deleted file mode 100644
index 6bdb925e62d6cc8ac2b46738889f7b8f93a72c99..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_widget_listbox_html.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8" />
-    <meta name="viewport" content="width=device-width, user-scalable=no" />
-    <title>Monitoring Widget Listbox</title>
-
-    <!-- renderjs -->
-    <script src="rsvp.js" type="text/javascript"></script>
-    <script src="renderjs.js" type="text/javascript"></script>
-    <script src="handlebars.js"></script>
-
-    <script id="listbox-widget-table" type="text/x-handlebars-template">
-      {{#if enable_search}}
-      <div class="listbox-header">
-        <form class='search'>
-            <div class="ui-grid-a ui-responsive">
-              <div class="ui-block-a">
-                <div class="ui-field-contain">
-                  <div class="ui-input-text ui-body-{{widget_theme}} ui-corner-all ui-shadow-inset ui-input-has-clear {{widget_status_class}}" style="border-color: #D6D8E0;">
-                    <input type="text" data-enhanced="true" value="{{search}}" name="search" {{widget_status_attribute}} />
-                    <div class="ui-btn ui-input-clear ui-input-btn ui-corner-all ui-icon-search ui-btn-icon-notext" data-i18n="[node]header-submit">
-                      Submit<input data-enhanced="true" type="submit" data-i18n="[value]header-submit" value="Submit" {{widget_status_attribute}} />
-                    </div>
-                  </div>
-                </div>
-              </div>
-              <div class="ui-block-b">
-                <div class="ui-field-contain">
-                  <div data-role="controlgroup" data-type="horizontal">
-                    <!--<a href="#" class="ui-shadow ui-btn ui-corner-all listbox-refresh"><i class="fa fa-refresh"></i></a>-->
-                    <a href="#" class="ui-shadow ui-btn ui-corner-all listbox-filter"><i class="fa fa-filter"></i></i></a>
-                  </div>
-                </div>
-              </div>
-            </div>
-        </form>
-      </div>
-      {{/if}}
-      <table class="ui-responsive ui-body-c ui-table-inset custom-force-list">
-        <thead class="ui-bar-inherit">
-          <tr>
-            {{#each column_list}}
-              <th>{{this}}</th>
-            {{/each}}
-          </tr>
-        </thead>
-        {{> listbox-widget-table-partial}}
-        <tfoot class="ui-bar-inherit"></tfoot>
-      </table>
-    </script>
-
-    <script id="listbox-widget-table-partial" type="text/x-handlebars-template">
-      <tbody>
-      {{#each row_list}}
-        <tr>
-        {{#each cell_list}}
-          {{#if href}}
-            {{#if html_value}}
-              <td class='{{class}}'><a class="ui-link" href="{{href}}">{{{html_value}}}</a></td>
-            {{else}}
-              <td class='{{class}}'><a class="ui-link" title='{{value}}' href="{{href}}">{{value}}</a></td>
-            {{/if}}
-          {{else}}
-            {{#if html_value}}
-              <td class='{{class}}'><a class="ui-link">{{{html_value}}}</a></td>
-            {{else}}
-              <td class='{{class}}'><a class="ui-link" title='{{value}}'>{{value}}</a></td>
-            {{/if}}
-          {{/if}}
-        {{/each}}
-        </tr>
-      {{/each}}
-      </tbody>
-    </script>
-
-    <!-- custom script -->
-    <script src="gadget_monitoring_widget_listbox.js" type="text/javascript"></script>
-
-    </head>
-  <body>
-    <div class="listbox-filter-panel">
-      <form class='filter'>
-      	<h2>Filter Result</h2>
-      	<fieldset data-role="controlgroup">
-          <h3>Status contain:</h3>
-          <input type="checkbox" id="monitor-promise-success" name="monitor-filter-status" value="success" checked="checked">
-          <label for="monitor-promise-success">Success</label>
-          <input type="checkbox" id="monitor-promise-error" name="monitor-filter-status" value="error" checked="checked">
-          <label for="monitor-promise-error">Error</label>
-          <input type="checkbox" id="monitor-promise-warning" name="monitor-filter-status" value="warning" checked="checked">
-          <label for="monitor-promise-warning">Warning</label>
-        </fieldset>
-        <div class="ui-grid-a">
-          <input data-enhanced="true" type="submit" data-rel="close" class="ui-btn ui-shadow ui-corner-all ui-btn-inline ui-mini pvalidate" value="Validate" />
-	      </div>
-      </form>
-    </div>
-    <div class="custom-grid-wrap">
-      <div class="custom-grid ui-corner-all ui-body-inherit ui-shadow ui-corner-all" style="padding: 10px;">
-        <div class="ui-body-c ui-corner-all"></div>
-      </div>
-    </div>
-  </body>
-</html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_widget_listbox_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_widget_listbox_html.xml
deleted file mode 100644
index 6993341c302ff1e561599722011505567faa50ac..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_widget_listbox_html.xml
+++ /dev/null
@@ -1,333 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Page" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/team</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/html</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_widget_listbox.html</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_widget_listbox_html</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Page</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring Widget Listbox</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1452874797.17</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.11056.28633.47854</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1502197080.98</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1452874752.87</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_widget_listbox_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_widget_listbox_js.js
deleted file mode 100644
index 7056f8997454c3d24a8f1313c667c6a0e026d1df..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_widget_listbox_js.js
+++ /dev/null
@@ -1,285 +0,0 @@
-/*global window, rJS, RSVP, Handlebars, loopEventListener */
-/*jslint nomen: true, indent: 2 */
-(function (window, rJS, RSVP, Handlebars, loopEventListener) {
-  "use strict";
-
-  /////////////////////////////////////////////////////////////////
-  // templates
-  /////////////////////////////////////////////////////////////////
-  var gadget_klass = rJS(window),
-    templater = gadget_klass.__template_element,
-
-    listbox_widget_table = Handlebars.compile(
-      templater.getElementById("listbox-widget-table").innerHTML
-    );
-  Handlebars.registerPartial(
-    "listbox-widget-table-partial",
-    templater.getElementById("listbox-widget-table-partial").innerHTML
-  );
-
-  /////////////////////////////////////////////////////////////////
-  // some methods
-  /////////////////////////////////////////////////////////////////
-  var formatDate = function(d) {
-    function addZero(n) {
-      return n < 10 ? '0' + n : '' + n;
-    }
-
-    return d.getFullYear() + "-" + addZero(d.getMonth()+1)
-      + "-" + addZero(d.getDate()) + " " + addZero(d.getHours())
-      + ":" + addZero(d.getMinutes()) + ":" + addZero(d.getSeconds());
-  };
-
-  function renderFomTemplate(template, value) {
-    var html_template;
-
-    if (!template) {
-      return "";
-    }
-    html_template = Handlebars.compile(template);
-    return html_template({value: value});
-  }
-
-  gadget_klass
-
-    /////////////////////////////////////////////////////////////////
-    // ready
-    /////////////////////////////////////////////////////////////////
-    .ready(function (gadget) {
-      gadget.property_dict = {
-        render_deferred: RSVP.defer()
-      };
-    })
-
-    .ready(function (gadget) {
-      return gadget.getElement()
-        .push(function (element) {
-          gadget.property_dict.element = element;
-          gadget.property_dict.filter_panel = $(gadget.property_dict.element.querySelector(".listbox-filter-panel"));
-        });
-    })
-    .ready(function (gadget) {
-      gadget.property_dict.filter_panel.panel({
-        "position-fixed": true,
-        "display": "overlay",
-        "position": "right",
-        "theme": "b"
-      });
-    })
-    .ready(function (gadget) {
-      return gadget.property_dict.filter_panel.trigger("create");
-    })
-
-    /////////////////////////////////////////////////////////////////
-    // published methods
-    /////////////////////////////////////////////////////////////////
-
-    /////////////////////////////////////////////////////////////////
-    // acquired methods
-    /////////////////////////////////////////////////////////////////
-    .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
-    .declareAcquiredMethod("getUrlFor", "getUrlFor")
-    .declareAcquiredMethod("translate", "translate")
-    .declareAcquiredMethod("redirect", "redirect")
-
-    /////////////////////////////////////////////////////////////////
-    // declared methods
-    /////////////////////////////////////////////////////////////////
-    .declareMethod('render', function (option_dict) {
-      var gadget = this,
-        content = '',
-        filter_part_list = [],
-        j,
-        k,
-        k_len,
-        search_list = [],
-        translated_column_list = [],
-        all_docs_result_list = [];
-
-      // store initial configuration
-      gadget.property_dict.option_dict = option_dict;
-
-      // filter query
-      if (option_dict.filter_column === undefined) {
-        option_dict.filter_column = {select: "status"};
-      }
-      if (option_dict.filter && option_dict.filter !== '') {
-        for (j = 0; j < option_dict.filter.split('+').length; j += 1) {
-          filter_part_list.push(
-            '('+ option_dict.filter_column.select +':"' +
-            option_dict.filter.split('+')[j].toUpperCase() + '")'
-          );
-        }
-        if (option_dict.query.query) {
-          option_dict.query.query += ' AND (' + filter_part_list.join(' OR ') + ')';
-        } else {
-          option_dict.query.query = '(' + filter_part_list.join(' OR ') + ')';
-        }
-      }
-      // Create the search query
-      if (option_dict.search) {
-        for (k = 0, k_len = option_dict.column_list.length; k < k_len; k += 1) {
-          search_list.push(option_dict.column_list[k].select + ':"%' + option_dict.search + '%"');
-        }
-        if (option_dict.query.query) {
-          option_dict.query.query = '(' + search_list.join(' OR ') + ') AND ' + option_dict.query.query;
-        } else {
-          option_dict.query.query = '(' + search_list.join(' OR ') + ')';
-        }
-      }
-      if (option_dict.view === '' || option_dict.view === undefined) {
-        option_dict.view = 'view';
-      }
-      return gadget.jio_allDocs(option_dict.query)
-        .push(function (all_docs_result_list) {
-          var row_list = [],
-            cell_list,
-            current_value,
-            i_len,
-            i,
-            j_len,
-            j;
-
-          // build handlebars object
-          for (j = 0, j_len = all_docs_result_list.data.total_rows; j < j_len; j += 1) {
-            cell_list = [];
-            for (i = 0, i_len = option_dict.column_list.length; i < i_len; i += 1) {
-              current_value = all_docs_result_list.data.rows[j]
-                .value[option_dict.column_list[i].select];
-              if (option_dict.column_list[i].convertDate) {
-                current_value = formatDate(new Date(current_value));
-              }
-              cell_list.push({
-                "href": (option_dict.disable_href) ? '' : "#page=" +
-                  option_dict.view + "&key=" +
-                  all_docs_result_list.data.rows[j].id,
-                "value": current_value,
-                "html_value": renderFomTemplate(
-                  option_dict.column_list[i].template || '',
-                  current_value
-                ),
-                "class": option_dict.column_list[i].css_class || ''
-              });
-            }
-            row_list.push({"cell_list": cell_list});
-          }
-
-          for (i = 0; i < option_dict.column_list.length; i += 1) {
-            translated_column_list.push(gadget.translate(option_dict.column_list[i].title));
-          }
-          return RSVP.all([
-            row_list,
-            RSVP.all(translated_column_list)
-          ]);
-        })
-        .push(function (result_list) {
-          var enable_search = true;
-          if (option_dict.enable_search !== undefined) {
-            enable_search = option_dict.enable_search;
-          }
-          if (!enable_search) {
-            $(gadget.property_dict.element.querySelector(".custom-grid"))
-              .removeClass('ui-shadow').css('padding', '0');
-          }
-          content += listbox_widget_table({
-            widget_theme : option_dict.widget_theme,
-            search: option_dict.search,
-            enable_search: enable_search,
-            column_list: result_list[1],
-            row_list: result_list[0]
-          });
-
-          gadget.property_dict.element.querySelector(".custom-grid .ui-body-c")
-            .innerHTML = content;
-          gadget.property_dict.render_deferred.resolve();
-        });
-    })
-
-    /////////////////////////////////////////////////////////////////
-    // declared service
-    /////////////////////////////////////////////////////////////////
-    .declareService(function () {
-      var gadget = this;
-      return new RSVP.Queue()
-        .push(function () {
-          return gadget.property_dict.render_deferred.promise;
-        })
-        .push(function () {
-          var form = gadget.property_dict.element.querySelector('form.search'),
-            refresh = gadget.property_dict.element.querySelector('.listbox-refresh'),
-            filter = gadget.property_dict.element.querySelector('.listbox-filter'),
-            form_filter = gadget.property_dict.element.querySelector('form.filter'),
-            promise_list = [];
-
-          if (form !== undefined && form !== null && form !== '') {
-            promise_list.push(loopEventListener(
-              form,
-              'submit',
-              false,
-              function (evt) {
-                return gadget.redirect({
-                  jio_key: gadget.property_dict.option_dict.jio_key || '',
-                  page: gadget.property_dict.option_dict.search_page || '',
-                  filter: gadget.property_dict.option_dict.filter || '',
-                  search: evt.target[0].value
-                });
-              }
-            ));
-          }
-          if (refresh !== undefined && refresh !== null && refresh !== '') {
-            promise_list.push(loopEventListener(
-              refresh,
-              'click',
-              false,
-              function (evt) {
-                return gadget.redirect({
-                  page: gadget.property_dict.option_dict.search_page || '',
-                  sort_on: gadget.property_dict.option_dict.sort_on || '',
-                  search: gadget.property_dict.option_dict.search || '',
-                  filter: gadget.property_dict.option_dict.filter || '',
-                  t: Date.now() / 1000 | 0
-                });
-              })
-            );
-          }
-          if (filter !== undefined && filter !== null && filter !== '') {
-            promise_list.push(loopEventListener(
-              filter,
-              'click',
-              false,
-              function (evt) {
-                gadget.property_dict.filter_panel.panel("toggle");
-              })
-            );
-          }
-          if (form_filter !== undefined && form_filter !== null && form_filter !== '') {
-            promise_list.push(loopEventListener(
-              form_filter,
-              'submit',
-              false,
-              function (evt) {
-                var filter_status = [],
-                  element = gadget.property_dict.element;
-                if (element.querySelector('#monitor-promise-error').checked) {
-                  filter_status.push('error');
-                }
-                if (element.querySelector('#monitor-promise-success').checked) {
-                  filter_status.push('ok');
-                }
-                if (element.querySelector('#monitor-promise-warning').checked) {
-                  filter_status.push('warning');
-                }
-                return gadget.redirect({
-                  page: gadget.property_dict.option_dict.search_page || '',
-                  sort_on: gadget.property_dict.option_dict.sort_on || '',
-                  search: gadget.property_dict.option_dict.search || '',
-                  filter: filter_status.join('+')
-                });
-              })
-            );
-          }
-          return RSVP.all(promise_list);
-        });
-    });
-
-}(window, rJS, RSVP, Handlebars, loopEventListener));
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_widget_listbox_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_widget_listbox_js.xml
deleted file mode 100644
index 442db8542c77f007b5ddea6045d8e215659121b7..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_widget_listbox_js.xml
+++ /dev/null
@@ -1,333 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Script" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/team</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/javascript</string> </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_widget_listbox.js</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_widget_listbox_js</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Script</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring Widget Listbox JS</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1452874660.43</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>961.21935.10239.63812</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1502456005.72</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1452874408.25</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_global_view_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_global_view_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..d592b30208a02bcbfaaf49ee45dcf71a51ac00ed
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_global_view_html.html
@@ -0,0 +1,32 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <link href="gadget_officejs_monitoring_custom.css" rel="stylesheet" type="text/css"/>
+    <title>OfficeJS Jio Web Page View</title>
+
+    <script src="rsvp.js"></script>
+    <script src="renderjs.js"></script>
+    <script src="handlebars.js"></script>
+
+    <script class="render-link-template" type="text/x-handlebars-template">
+      <a href="{{url}}" target="{{target}}">{{title}}</a>
+    </script>
+
+    <script src="gadget_officejs_jio_global_view.js"></script>
+
+  </head>
+  <body>
+    <div data-gadget-url="gadget_officejs_monitoring_jio.html" data-gadget-scope="jio_gadget" data-gadget-sandbox="public"></div>
+    <form>
+      <button type="submit" class="ui-btn ui-btn-b ui-btn-inline
+        ui-icon-edit ui-btn-icon-right ui-screen-hidden"></button>
+      <div data-gadget-url="gadget_erp5_form.html"
+              data-gadget-scope="form_view"
+              data-gadget-sandbox="public">
+      </div>
+    </form>
+  </body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_global_view_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_global_view_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3c8244f66153d717856c52a495d0e56c23ca249b
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_global_view_html.xml
@@ -0,0 +1,340 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Page" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_officejs_jio_global_view.html</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_officejs_jio_global_view_html</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Page</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>OfficeJS Jio Software Instance View</string> </value>
+        </item>
+        <item>
+            <key> <string>url_string</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1507041798.03</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>962.47216.7271.9574</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1507901938.7</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1507041764.07</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_global_view_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_global_view_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..5a0492e894ecdcb2a080f530d53c8a37c0b82eb9
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_global_view_js.js
@@ -0,0 +1,552 @@
+/*global window, rJS, RSVP, Handlebars */
+/*jslint nomen: true, indent: 2, maxerr: 3 */
+(function (window, rJS, RSVP, Handlebars) {
+  "use strict";
+
+  var gadget_klass = rJS(window),
+    source = gadget_klass.__template_element
+      .querySelector(".render-link-template")
+      .innerHTML,
+    link_template = Handlebars.compile(source);
+  gadget_klass
+    .setState({
+      jio_gadget: "",
+      instance: "",
+      opml: "",
+      opml_outline: "",
+      graph_value: {}
+    })
+    .ready(function (gadget) {
+      return gadget.getDeclaredGadget("jio_gadget")
+        .push(function (jio_gadget) {
+          return gadget.changeState({"jio_gadget": jio_gadget});
+        });
+    })
+    /////////////////////////////////////////////////////////////////
+    // Acquired methods
+    /////////////////////////////////////////////////////////////////
+    .declareAcquiredMethod("updateHeader", "updateHeader")
+    .declareAcquiredMethod("getUrlParameter", "getUrlParameter")
+    .declareAcquiredMethod("getUrlFor", "getUrlFor")
+    .declareAcquiredMethod("jio_get", "jio_get")
+    .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
+    .declareAcquiredMethod("notifySubmitting", "notifySubmitting")
+    .declareAcquiredMethod("notifySubmitted", 'notifySubmitted')
+    .declareAcquiredMethod("translateHtml", "translateHtml")
+    .declareAcquiredMethod("redirect", "redirect")
+    /////////////////////////////////////////////////////////////////
+    // declared methods
+    /////////////////////////////////////////////////////////////////
+
+    .declareMethod("render", function (options) {
+      var gadget = this,
+        hosting_subscription,
+        software_instance,
+        opml_outline,
+        opml_doc;
+
+      return new RSVP.Queue()
+        .push(function () {
+          return gadget.changeState({instance: options.doc});
+        })
+        .push(function () {
+          // Get opml outline document
+          return gadget.jio_get(gadget.state.instance.parent_id);
+        })
+        .push(function (opml_outline) {
+          return gadget.changeState({
+            opml_outline: opml_outline
+          });
+        })
+        .push(function () {
+          return gadget.jio_get(gadget.state.opml_outline.parent_url);
+        })
+        .push(function (opml_doc) {
+          return gadget.changeState({
+            opml: opml_doc
+          });
+        })
+        .push(function () {
+          return gadget.state.jio_gadget.createJio({
+            type: "webhttp",
+            // XXX fix of url
+            url: gadget.state.instance._links.private_url.href
+              .replace("jio_private", "private") +
+              'documents/',
+            basic_login: gadget.state.opml.basic_login
+          });
+        })
+        .push(function () {
+          return gadget.getUrlFor({command: 'push_history', options: {
+            jio_key: options.doc.reference,
+            page: 'ojsm_hosting_subscription_view',
+            opml_key: gadget.state.opml.url
+          }});
+        })
+        .push(function (hosting_url) {
+          var pass_url,
+            public_url,
+            private_url,
+            current_document = gadget.state.instance;
+
+          // fix URLs
+          private_url = gadget.state.instance._links
+            .private_url.href.replace("jio_private", "private");
+          public_url = gadget.state.instance._links.
+            public_url.href.replace("jio_public", "public");
+          pass_url = "https://" + atob(gadget.state.opml.basic_login) +
+            "@" + private_url.split("//")[1];
+
+          return gadget.changeState({
+            jio_key: options.jio_key,
+            status: gadget.state.instance.status,
+            report_date: new Date(gadget.state.instance.date),
+            title: current_document.title,
+            error: current_document.state.error,
+            success: current_document.state.success,
+            public_url: public_url,
+            private_url: pass_url,
+            rss_url: current_document._links.rss_url.href,
+            //resource_url: tmp_url,
+            //process_url: tmp_process_url,
+            hosting_title: gadget.state.opml.title,
+            hosting_url: hosting_url,
+            partition_ipv6: current_document._embedded.instance.ipv6,
+            partition_ipv4: current_document._embedded.instance.ipv4,
+            computer_partition: current_document._embedded.instance.partition,
+            computer_reference: current_document._embedded.instance.computer,
+            software_release: current_document._embedded.instance['software-release']
+          });
+        });
+    })
+
+    .onEvent('submit', function () {
+      // ON submit, refresh page
+      return this.redirect({command: 'reload'});
+    })
+
+    .declareMethod("triggerSubmit", function () {
+      return this.element.querySelector('button[type="submit"]').click();
+    })
+
+    .allowPublicAcquisition("jio_allDocs", function (param_list) {
+      var gadget = this;
+      return gadget.jio_allDocs(param_list[0])
+        .push(function (result) {
+          var i, value, len = result.data.total_rows;
+          for (i = 0; i < len; i += 1) {
+            if (result.data.rows[i].value.hasOwnProperty("lastBuildDate")) {
+              value = new Date(result.data.rows[i].value.lastBuildDate);
+              result.data.rows[i].value.lastBuildDate = {
+                allow_empty_time: 0,
+                ampm_time_style: 0,
+                css_class: "date_field",
+                date_only: 0,
+                description: "The Date",
+                editable: 0,
+                hidden: 0,
+                hidden_day_is_last_day: 0,
+                "default": value.toUTCString(),
+                key: "lastBuildDate",
+                required: 0,
+                timezone_style: 0,
+                title: "Promise Date",
+                type: "DateTimeField"
+              };
+              result.data.rows[i].value["listbox_uid:list"] = {
+                key: "listbox_uid:list",
+                value: 2713
+              };
+            }
+            if (result.data.rows[i].value.hasOwnProperty("comments")) {
+              value = result.data.rows[i].value.comments.slice(0, 30);
+              if (result.data.rows[i].value.comments.length >= 30) {
+                value += "...";
+              }
+              result.data.rows[i].value.comments = {
+                css_class: "string_field",
+                description: "The Message",
+                editable: 0,
+                hidden: 0,
+                "default": value,
+                key: "comments",
+                required: 0,
+                title: "Message",
+                type: "StringField"
+              };
+              result.data.rows[i].value["listbox_uid:list"] = {
+                key: "listbox_uid:list",
+                value: 2713
+              };
+            }
+            if (result.data.rows[i].value.hasOwnProperty("category")) {
+              value = result.data.rows[i].value.category;
+              result.data.rows[i].value.category = {
+                css_class: "",
+                description: "The Status",
+                hidden: 0,
+                "default": value,
+                key: "category",
+                url: "gadget_erp5_field_status.html",
+                title: "Status",
+                type: "GadgetField"
+              };
+              result.data.rows[i].value["listbox_uid:list"] = {
+                key: "listbox_uid:list",
+                value: 2713
+              };
+            }
+          }
+          return result;
+        });
+    })
+    .onStateChange(function () {
+      var gadget = this,
+        graph_value = {};
+      if (!gadget.state.hasOwnProperty('status') &&
+          !gadget.state.hasOwnProperty('title')) {
+        return;
+      }
+      return new RSVP.Queue()
+        .push(function () {
+          // Move this to not slow down the page rendering...
+          return gadget.state.jio_gadget.get(
+            gadget.state.instance.data.state
+          )
+            .push(undefined, function (error) {
+              console.log(error);
+              return {};
+            })
+            .push(function (element_dict) {
+              var promise_data = [
+                  "Date, Success, Error, Warning",
+                  new Date() + ",0,0,0"
+                ],
+                data = element_dict.data || promise_data,
+                data_list = [],
+                line_list,
+                i;
+
+              data_list.push({
+                value_dict: {"0": [], "1": []},
+                type: "scatter",
+                axis_mapping_id_dict: {"1": "1_1"},
+                title: "promises success"
+              });
+              data_list.push({
+                value_dict: {"0": [], "1": []},
+                type: "scatter",
+                axis_mapping_id_dict: {"1": "1_2"},
+                title: "promises error"
+              });
+              for (i = 1; i < data.length; i += 1) {
+                line_list = data[i].split(',');
+                data_list[0].value_dict["0"].push(line_list[0]);
+                data_list[0].value_dict["1"].push(line_list[1]);
+    
+                // XXX repeating date entry
+                data_list[1].value_dict["0"].push(line_list[0]);
+                data_list[1].value_dict["1"].push(line_list[2]);
+              }
+              graph_value = {
+                data: data_list,
+                layout: {
+                  axis_dict : {
+                    "0": {
+                      "title": "Success/Failure Progression",
+                      "scale_type": "linear",
+                      "value_type": "date"
+                    },
+                    "1_1": {
+                      "title": "Promises success",
+                      "position": "right"
+                    },
+                    "1_2": {
+                      "title": "Promises error",
+                      "position": "right"
+                    }
+                  },
+                  title: "Success/Failure Progression"
+                }
+              };
+            });
+        })
+        .push(function () {
+          //gadget.element.querySelector('.template-view').innerHTML = html;
+          return gadget.getDeclaredGadget('form_view');
+        })
+        .push(function (form_gadget) {
+          var column_list = [
+            ['source', 'Promise'],
+            ['lastBuildDate', 'Promise Date'],
+            ['comments', 'Message'],
+            ['category', 'Status']
+          ];
+          return form_gadget.render({
+            erp5_document: {
+              "_embedded": {"_view": {
+                "your_title": {
+                  "description": "",
+                  "title": "Instance Title",
+                  "default": gadget.state.title,
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "title",
+                  "hidden": 0,
+                  "type": "StringField"
+                },
+                "your_status": {
+                  "description": "",
+                  "title": "Status",
+                  "default": gadget.state.status,
+                  "css_class": "",
+                  "required": 1,
+                  "editable": 0,
+                  "key": "status",
+                  "hidden": 0,
+                  "url": "gadget_erp5_field_status.html",
+                  "type": "GadgetField"
+                },
+                "your_report_date": {
+                  "description": "",
+                  "title": "Report Date",
+                  "default": gadget.state.report_date.toUTCString(),
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "report_date",
+                  "hidden": 0,
+                  "timezone_style": 0,
+                  "date_only": 0,
+                  "type": "DateTimeField"
+                },
+                "your_public_url": {
+                  "description": "",
+                  "title": "Public Logs Url",
+                  "default": link_template({
+                    url: gadget.state.public_url,
+                    title: "Access Public files",
+                    target: "_blank"
+                  }),
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "public_url",
+                  "hidden": 0,
+                  "type": "EditorField"
+                },
+                "your_private_url": {
+                  "description": "",
+                  "title": "Private Logs Url",
+                  "default": link_template({
+                    url: gadget.state.private_url,
+                    title: "Access Private files",
+                    target: "_blank"
+                  }),
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "private_url",
+                  "hidden": 0,
+                  "type": "EditorField"
+                },
+                "your_error_count": {
+                  "description": "",
+                  "title": "Promises Error",
+                  "default": "" + gadget.state.error,
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "error_count",
+                  "hidden": 0,
+                  "type": "StringField"
+                },
+                "your_success_count": {
+                  "description": "",
+                  "title": "Promises OK",
+                  "default": "" + gadget.state.success,
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "success_count",
+                  "hidden": 0,
+                  "type": "StringField"
+                },
+                "your_software_release_url": {
+                  "description": "",
+                  "title": "Software Release",
+                  "default": link_template({
+                    url: gadget.state.software_release,
+                    title: "Access link",
+                    target: "_blank"
+                  }),
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "software_release_url",
+                  "hidden": 0,
+                  "type": "EditorField"
+                },
+                "your_rss_url": {
+                  "description": "",
+                  "title": "RSS Link",
+                  "default": link_template({
+                    url: gadget.state.rss_url,
+                    title: "Access RSS",
+                    target: "_blank"
+                  }),
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "rss_url",
+                  "hidden": 0,
+                  "type": "EditorField"
+                },
+                "your_hosting_title": {
+                  "description": "",
+                  "title": "Hosting Subscription",
+                  "default": link_template({
+                    url: gadget.state.hosting_url,
+                    title: gadget.state.hosting_title
+                  }),
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "hosting_title",
+                  "hidden": 0,
+                  "type": "EditorField"
+                },
+                "your_computer_reference": {
+                  "description": "",
+                  "title": "Computer",
+                  "default": gadget.state.computer_reference,
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "computer_reference",
+                  "hidden": 0,
+                  "type": "StringField"
+                },
+                "your_computer_partition": {
+                  "description": "",
+                  "title": "Partition",
+                  "default": gadget.state.computer_partition,
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "computer_partition",
+                  "hidden": 0,
+                  "type": "StringField"
+                },
+                "your_partition_ipv6": {
+                  "description": "",
+                  "title": "Partition IPv6",
+                  "default": gadget.state.partition_ipv6,
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "partition_ipv6",
+                  "hidden": 0,
+                  "type": "StringField"
+                },
+                "your_partition_ipv4": {
+                  "description": "",
+                  "title": "Partition IPv4",
+                  "default": gadget.state.partition_ipv4,
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "partition_ipv4",
+                  "hidden": 0,
+                  "type": "StringField"
+                },
+                "your_instance_promise_list": {
+                  "column_list": column_list,
+                  "show_anchor": 0,
+                  "default_params": {},
+                  "editable": 0,
+                  "editable_column_list": [],
+                  "key": "instance_promise_list",
+                  "lines": 60,
+                  "list_method": "portal_catalog",
+                  "query": "urn:jio:allDocs?query=%28portal_type%3A%22" +
+                    "promise" + "%22%29AND%28parent_id%3A%22" +
+                    gadget.state.instance.parent_id + "%22%29",
+                  "portal_type": [],
+                  "search_column_list": column_list,
+                  "sort_column_list": column_list,
+                  "sort": [["category", "ascending"]],
+                  "hide_sort": true,
+                  "title": "Instance Promises Status",
+                  "type": "ListBox"
+                },
+                "your_graph_status": {
+                css_class: "no_label",
+                description: "The Graph Status",
+                hidden: 0,
+                "default": graph_value || {},
+                key: "graph_status",
+                url: "gadget_field_graph_dygraph.html",
+                title: "",
+                type: "GadgetField"
+              }
+              }},
+              "_links": {
+                "type": {
+                  // form_list display portal_type in header
+                  name: ""
+                }
+              }
+            },
+            form_definition: {
+              group_list: [[
+                "left",
+                [["your_title"], ["your_status"], ["your_status_date"], ["your_report_date"],
+                 ["your_error_count"], ["your_success_count"], ["your_public_url"], ["your_private_url"]]
+              ],
+              [
+                "right",
+                [["your_hosting_title"], ["your_instance_title"], ["your_computer_reference"], ["your_computer_partition"],
+                 ["your_partition_ipv4"], ["your_partition_ipv6"], ["your_software_release_url"],
+                 ["your_rss_url"]]
+              ],
+              [
+                "center",
+                [["your_graph_status"]]
+              ],
+              [
+                "bottom",
+                [["your_instance_promise_list"]]
+              ]]
+            }
+          });
+        })
+        .push(function () {
+          return RSVP.all([
+            gadget.getUrlFor({command: 'history_previous'}),
+            gadget.getUrlFor({command: 'selection_previous'}),
+            gadget.getUrlFor({command: 'selection_next'}),
+            gadget.getUrlFor({command: 'push_history', options: {
+              page: 'ojsm_resources_view',
+              key: gadget.state.opml_outline.reference
+            }}),
+            gadget.getUrlFor({command: 'push_history', options: {
+              page: 'ojsm_processes_view',
+              key: gadget.state.opml_outline.reference
+            }})
+          ]);
+        })
+        .push(function (url_list) {
+          return gadget.updateHeader({
+            page_title: "Instance: " + gadget.state.title,
+            selection_url: url_list[0],
+            previous_url: url_list[1],
+            next_url: url_list[2],
+            resources_url: url_list[3],
+            processes_url: url_list[4],
+            refresh_action: true
+          });
+        });
+    });
+}(window, rJS, RSVP, Handlebars));
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_global_view_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_global_view_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..47bf5644689c0d1bd2d492594bd4f6130674dc8c
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_global_view_js.xml
@@ -0,0 +1,340 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Script" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/javascript</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_officejs_jio_global_view.js</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_officejs_jio_global_view_js</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Script</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>OfficeJS Jio Software Instance view JS</string> </value>
+        </item>
+        <item>
+            <key> <string>url_string</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1507042651.46</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>962.48890.59022.44748</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508949714.27</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1507042622.22</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..a73c62cda44f6213a5e008e427e1c4af680ae2eb
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_html.html
@@ -0,0 +1,34 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <title>OfficeJS Jio Web Page View</title>
+    <link href="gadget_officejs_monitoring_custom.css" rel="stylesheet" type="text/css"/>
+
+    <script src="rsvp.js"></script>
+    <script src="renderjs.js"></script>
+    <script src="handlebars.js"></script>
+
+    <script src="gadget_officejs_monitoring_global.js"></script>
+    <script src="gadget_officejs_jio_opml_view.js"></script>
+    <script id="template-message-error" type="text/x-handlebars-template">
+      <p><span class='ui-text-{{status}}'>{{message}}</span></p>
+    </script>
+
+  </head>
+  <body>
+    <div data-gadget-url="gadget_officejs_monitoring_jio.html" data-gadget-scope="jio_gadget" data-gadget-sandbox="public"></div>
+    <div class="template-view"></div>
+    <form class="save_form ui-body-c" novalidate>
+      <button type="submit" class="ui-btn ui-btn-b ui-btn-inline
+        ui-icon-edit ui-btn-icon-right ui-screen-hidden"></button>
+      <div class="ui-message-alert"></div>
+      <div data-gadget-url="gadget_erp5_form.html"
+              data-gadget-scope="form_view"
+              data-gadget-sandbox="public">
+      </div>
+    </form>
+  </body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d3faa462d92b97aa1edbfcdcc02e7cffc2fc60a4
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_html.xml
@@ -0,0 +1,340 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Page" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_officejs_jio_opml_view.html</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_officejs_jio_opml_view_html</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Page</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>OfficeJS Jio OPML View</string> </value>
+        </item>
+        <item>
+            <key> <string>url_string</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506358065.91</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>963.1858.13217.15684</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1509018559.06</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506358032.88</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..f37c9cbcf3db764ec993adb627b00671c854a28d
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_js.js
@@ -0,0 +1,261 @@
+/*global window, rJS, RSVP, Handlebars, OPMLManage */
+/*jslint nomen: true, indent: 2, maxerr: 3 */
+(function (window, rJS, RSVP, Handlebars, OPMLManage) {
+  "use strict";
+
+  var gadget_klass = rJS(window),
+    templater = gadget_klass.__template_element,
+    notify_msg_template = Handlebars.compile(
+      templater.getElementById("template-message-error").innerHTML
+    ),
+    opml_global = OPMLManage;
+
+  gadget_klass
+    /////////////////////////////
+    // state
+    /////////////////////////////
+    .setState({
+      message: "",
+      redirect: false
+    })
+    /////////////////////////////
+    // ready
+    /////////////////////////////
+    .ready(function (gadget) {
+      return opml_global.init(gadget, notify_msg_template);
+    })
+    /////////////////////////////////////////////////////////////////
+    // Acquired methods
+    /////////////////////////////////////////////////////////////////
+    .declareAcquiredMethod("updateHeader", "updateHeader")
+    .declareAcquiredMethod("getSetting", "getSetting")
+    .declareAcquiredMethod("getUrlFor", "getUrlFor")
+    .declareAcquiredMethod("redirect", "redirect")
+    .declareAcquiredMethod("jio_put", "jio_put")
+    .declareAcquiredMethod("notifySubmitting", "notifySubmitting")
+    .declareAcquiredMethod("notifySubmitted", 'notifySubmitted')
+
+    /////////////////////////////////////////////////////////////////
+    // declared methods
+    /////////////////////////////////////////////////////////////////
+    .onEvent('submit', function () {
+      var gadget = this,
+        doc;
+      return new RSVP.Queue()
+        .push(function () {
+          return  gadget.getDeclaredGadget('form_view');
+        })
+        .push(function (form_gadget) {
+          return form_gadget.getContent();
+        })
+        .push(function (form_doc) {
+          doc = form_doc;
+          if (!opml_global.validateHttpUrl(form_doc.url)) {
+            gadget.state.message
+              .innerHTML = notify_msg_template({
+                status: 'error',
+                message: "'" + form_doc.url + "' is not a valid OPML URL"
+              });
+            return false;
+          }
+          if (!form_doc.username || !form_doc.password) {
+            gadget.state.message
+              .innerHTML = notify_msg_template({
+                status: 'error',
+                message: 'Username and password fields are required!'
+              });
+            return false;
+          }
+          if (doc.password !== gadget.state.password) {
+            // password was modified, update on backend
+            doc.new_password = doc.password;
+            doc.password = gadget.state.password;
+            doc.verify_password = 1;
+          }
+          return true;
+        })
+        .push(function (state) {
+          if (state) {
+            return gadget.notifySubmitting()
+              .push(function () {
+                doc.title = gadget.state.opml_title;
+                return opml_global.saveOPML(doc,
+                  doc.title === "" || doc.title === undefined || doc.verify_password === 1);
+              })
+              .push(function (status) {
+                var msg = 'Document Updated';
+                if (!status) {
+                  msg = 'Document update failed';
+                }
+                return RSVP.all([
+                  gadget.notifySubmitted(msg),
+                  status
+                ]);
+              })
+              .push(function (result_list) {
+                if (result_list[1] && gadget.state.redirect) {
+                  return gadget.redirect({
+                    "command": "change",
+                    "options": {"page": "ojsm_status_list"}
+                  });
+                }
+              });
+          }
+        });
+    })
+
+    .declareMethod("triggerSubmit", function () {
+      return this.element.querySelector('button[type="submit"]').click();
+    })
+
+    .declareMethod("render", function (options) {
+      var gadget = this,
+        doc = options.doc;
+      return RSVP.Queue()
+        .push(function () {
+          return gadget.changeState({
+            "opml_title": doc.title || "",
+            "opml_key": options.jio_key,
+            "password": doc.password
+            });
+        })
+        .push(function () {
+          return RSVP.all([
+            gadget.getDeclaredGadget('form_view')
+          ]);
+        })
+        .push(function (result) {
+          return result[0].render({
+            erp5_document: {
+              "_embedded": {"_view": {
+                "my_title": {
+                  "description": "The name of OPML",
+                  "title": "Title",
+                  "default": doc.title || "",
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "title",
+                  "hidden": doc.title === undefined ? 1 : 0,
+                  "type": "StringField"
+                },
+                "my_url": {
+                  "description": "",
+                  "title": "OPML URL",
+                  "default": doc.url || options.url || "",
+                  "css_class": "",
+                  "required": 1,
+                  "editable": 1,
+                  "key": "url",
+                  "hidden": 0,
+                  "type": "StringField"
+                },
+                "my_username": {
+                  "description": "Username for access private URLs",
+                  "title": "Username",
+                  "default": doc.username || "",
+                  "css_class": "",
+                  "required": 1,
+                  "editable": 0,
+                  "key": "username",
+                  "hidden": 0,
+                  "type": "StringField"
+                },
+                "my_password": {
+                  "description": "Password for access private URLs",
+                  "title": "Password",
+                  "default": doc.password || "",
+                  "css_class": "",
+                  "required": 1,
+                  "editable": 1,
+                  "key": "password",
+                  "hidden": 0,
+                  "type": "PasswordField"
+                },
+                "my_active": {
+                  "description": "Sync this opml or not",
+                  "title": "Active (Enable Sync)",
+                  "default": doc.active || doc.active === undefined ? 1 : 0,
+                  "css_class": "",
+                  "required": 1,
+                  "editable": 1,
+                  "key": "active",
+                  "hidden": 0,
+                  "type": "CheckBoxField"
+                },
+                "my_new_password": {
+                  "description": "Change current OPML password",
+                  "title": "New Password",
+                  "default": "",
+                  "css_class": "",
+                  "required": 1,
+                  "editable": 1,
+                  "key": "new_password",
+                  "hidden": 1,
+                  "type": "PasswordField"
+                },
+                "my_verify_password": {
+                  "description": "Check if this OPML is valid, and also verify that password match",
+                  "title": "Verify OPML & Password",
+                  "default": 0,
+                  "css_class": "",
+                  "required": 1,
+                  "editable": 1,
+                  "key": "verify_password",
+                  "hidden": 0,
+                  "type": "CheckBoxField"
+                }
+              }},
+              "_links": {
+                "type": {
+                  // form_list display portal_type in header
+                  name: ""
+                }
+              }
+            },
+            form_definition: {
+              group_list: [[
+                "left",
+                [["my_title"], ["my_url"], ["my_username"], ["my_password"],
+                  ["my_active"], ["my_verify_password"],
+                  ["my_new_password"]]
+              ]]
+            }
+          });
+        })
+        .push(function () {
+          return gadget.changeState({redirect: false})
+            .push(function () {
+              return RSVP.all([
+                gadget.getUrlFor({command: 'history_previous'}),
+                gadget.getUrlFor({command: 'selection_previous'}),
+                gadget.getUrlFor({command: 'selection_next'}),
+                gadget.getUrlFor({command: 'push_history', options: {
+                  page: "ojsm_jump",
+                  jio_key: gadget.state.opml_key,
+                  title: gadget.state.opml_title,
+                  jump_page: "ojsm_hosting_subscription_view",
+                  view_title: "Related Hosting Subscription",
+                  opml_key: gadget.state.opml_key
+                }}),
+                gadget.getUrlFor({command: 'change', options: {
+                  page: 'ojsm_opml_delete',
+                  jio_key: gadget.state.opml_key,
+                  return_url: 'settings_configurator'
+                }})
+              ]);
+            })
+            .push(function (url_list) {
+              return gadget.updateHeader({
+                page_title: options.doc.title || "OPML View",
+                selection_url: url_list[0],
+                previous_url: url_list[1],
+                next_url: url_list[2],
+                jump_url: url_list[3],
+                delete_url: url_list[4],
+                save_action: true
+              });
+            });
+        });
+    });
+}(window, rJS, RSVP, Handlebars, OPMLManage));
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..133ecc007231ef1fd8122c57f94b21574e952108
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_js.xml
@@ -0,0 +1,340 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Script" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/public</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/javascript</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_officejs_jio_opml_view.js</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_officejs_jio_opml_view_js</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Script</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>OfficeJS Jio Monitoring OPML view JS</string> </value>
+        </item>
+        <item>
+            <key> <string>url_string</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1507911358.15</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>963.1932.7812.44987</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1509022866.95</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506357952.51</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_promise_view_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_promise_view_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..e745f8f14c3b030333ac1e72c686ed25fa41706f
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_promise_view_html.html
@@ -0,0 +1,32 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <title>OfficeJS Jio Web Page View</title>
+
+    <link href="gadget_officejs_monitoring_custom.css" rel="stylesheet" type="text/css"/>
+    <script src="rsvp.js"></script>
+    <script src="renderjs.js"></script>
+    <script src="handlebars.js"></script>
+
+    <script class="render-link-template" type="text/x-handlebars-template">
+      <a href="{{url}}" target="{{target}}">{{title}}</a>
+    </script>
+
+    <script src="gadget_officejs_jio_promise_view.js"></script>
+
+  </head>
+  <body>
+    <div data-gadget-url="gadget_officejs_monitoring_jio.html" data-gadget-scope="jio_gadget" data-gadget-sandbox="public"></div>
+    <form class="save_form ui-body-c" novalidate>
+      <button type="submit" class="ui-btn ui-btn-b ui-btn-inline
+        ui-icon-edit ui-btn-icon-right ui-screen-hidden"></button>
+      <div data-gadget-url="gadget_erp5_form.html"
+              data-gadget-scope="form_view"
+              data-gadget-sandbox="public">
+      </div>
+    </form>
+  </body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_promise_view_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_promise_view_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5020775ba13393a8577657340b2ebd64405d398c
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_promise_view_html.xml
@@ -0,0 +1,340 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Page" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_officejs_jio_promise_view.html</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_officejs_jio_promise_view_html</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Page</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>OfficeJS Jio Promise View</string> </value>
+        </item>
+        <item>
+            <key> <string>url_string</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506672679.59</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>962.48890.59022.44748</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508252274.8</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506672050.57</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_promise_view_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_promise_view_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..a01e971bbebbd13ddf6821fce97b726999d37274
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_promise_view_js.js
@@ -0,0 +1,546 @@
+/*global window, rJS, RSVP, Handlebars, RegExp */
+/*jslint nomen: true, indent: 2, maxerr: 3 */
+(function (window, rJS, RSVP, Handlebars, RegExp) {
+  "use strict";
+
+  var gadget_klass = rJS(window),
+    source = gadget_klass.__template_element
+      .querySelector(".render-link-template")
+      .innerHTML,
+    link_template = Handlebars.compile(source);
+
+  function getPromiseTextContent(content, private_url) {
+    var regex = /(https?:\/\/[^\s]+)/g,
+      i,
+      parser,
+      private_parser = document.createElement('a'),
+      result_list = content.match(regex),
+      url_list = [];
+
+    function makeUnique(array_list) {
+      var temp = {},
+        i,
+        r = [],
+        k;
+      for (i = 0; i < array_list.length; i += 1) {
+        temp[array_list[i]] = true;
+      }
+      for (k in temp) {
+        if (temp.hasOwnProperty(k)) {
+          r.push(k);
+        }
+      }
+      return r;
+    }
+
+    private_parser.href = private_url;
+    if (result_list !== null && result_list !== undefined) {
+      result_list = makeUnique(result_list);
+      for (i = 0; i < result_list.length; i += 1) {
+        parser = document.createElement('a');
+        parser.href = result_list[i];
+        parser.target = 'blank';
+        parser.textContent = result_list[i];
+        if (parser.hostname === private_parser.hostname) {
+          // set the password
+          parser.username = private_parser.username;
+          parser.password = private_parser.password;
+        }
+        url_list.push({
+          url: result_list[i],
+          next: parser.outerHTML
+        });
+      }
+    }
+
+    content = content.replace(/\n/g, '<br/>');
+    for (i = 0; i < url_list.length; i += 1) {
+      content = content.replace(
+        new RegExp(url_list[i].url, 'g'),
+        url_list[i].next);
+    }
+    return content;
+  }
+
+  gadget_klass
+    .setState({
+      jio_gadget: "",
+    })
+    .ready(function (gadget) {
+      return gadget.getDeclaredGadget("jio_gadget")
+        .push(function (jio_gadget) {
+          return gadget.changeState({"jio_gadget": jio_gadget});
+        });
+    })
+    /////////////////////////////////////////////////////////////////
+    // Acquired methods
+    /////////////////////////////////////////////////////////////////
+    .declareAcquiredMethod("updateHeader", "updateHeader")
+    .declareAcquiredMethod("getUrlParameter", "getUrlParameter")
+    .declareAcquiredMethod("getUrlFor", "getUrlFor")
+    .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
+    .declareAcquiredMethod("jio_get", "jio_get")
+    .declareAcquiredMethod("notifySubmitting", "notifySubmitting")
+    .declareAcquiredMethod("notifySubmitted", 'notifySubmitted')
+    .declareAcquiredMethod("translateHtml", "translateHtml")
+    .declareAcquiredMethod("redirect", "redirect")
+    /////////////////////////////////////////////////////////////////
+    // declared methods
+    /////////////////////////////////////////////////////////////////
+
+    .declareMethod("render", function (options) {
+      var gadget = this,
+        hosting_subscription,
+        software_instance,
+        opml_outline,
+        opml_doc;
+
+      return new RSVP.Queue()
+        .push(function () {
+          return gadget.state.jio_gadget.createJio({
+            type: "webhttp",
+            // XXX fix of url
+            url: options.doc.source_url.replace("jio_public", "public")
+          });
+        })
+        .push(function () {
+          return gadget.jio_allDocs({
+              select_list: [
+                "parent_url",
+                "parent_id",
+                "title",
+                "opml_title",
+                "portal_type",
+                "_links",
+                "_embedded",
+                "reference"
+              ],
+              query: '(portal_type:"global") AND (parent_id:"' +
+                options.doc.parent_id + '")'
+            }, function (error) {
+              console.log(error);
+              return {};
+            });
+        })
+        .push(function (result) {
+          var i;
+          for (i = 0; i < result.data.total_rows; i += 1) {
+            software_instance = result.data.rows[i].value;
+          }
+          // get opml outline
+          return gadget.jio_get(options.doc.parent_id);
+        })
+        .push(function (outline_doc) {
+          opml_outline = outline_doc;
+          // get opml
+          return gadget.jio_get(outline_doc.parent_url);
+        })
+        .push(function (opml_document) {
+          opml_doc = opml_document;
+          return gadget.getUrlFor({command: 'push_history', options: {
+            jio_key: options.doc.reference,
+            page: 'ojsm_hosting_subscription_view',
+            opml_key: opml_document.url
+          }});
+        })
+        .push(function (hosting_url) {
+          var pass_url;
+
+          if (software_instance === undefined) {
+            // synchronisation problem, probably invalid password
+            software_instance = {_links: {private_url: {href: ""},
+                                          public_url: {href: ""}},
+                                 _embedded: {instance: {}}};
+          }
+          // fix URLs
+          software_instance._links.private_url.href = software_instance.
+            _links.private_url.href.replace("jio_private", "private");
+          software_instance._links.public_url.href = software_instance.
+            _links.public_url.href.replace("jio_public", "public");
+
+          pass_url = "https://" + atob(opml_doc.basic_login) +
+            "@" + software_instance._links.private_url.href.split("//")[1];
+
+          return gadget.changeState({
+            promise: options.doc,
+            jio_key: options.jio_key,
+            status: options.doc.category,
+            status_date: new Date(options.doc.pubDate),
+            report_date: new Date(options.doc.lastBuildDate),
+            title: options.doc.source,
+            promise_output: options.doc.description,
+            private_url: pass_url,
+            public_url: software_instance._links.public_url.href,
+            instance_reference: software_instance.reference,
+            instance_title: software_instance.title,
+            hosting_title: opml_doc.title,
+            hosting_url: hosting_url,
+            partition_ipv6: software_instance._embedded.instance.ipv6,
+            computer_partition: software_instance._embedded.instance.partition,
+            computer_reference: software_instance._embedded.instance.computer,
+            software_release: software_instance._embedded.instance['software-release']
+          });
+        });
+    })
+
+    .onEvent('submit', function () {
+      // ON submit, refresh page
+      return this.redirect({command: 'reload'});
+    })
+
+    .declareMethod("triggerSubmit", function () {
+      return this.element.querySelector('button[type="submit"]').click();
+    })
+
+    .allowPublicAcquisition("jio_allDocs", function (param_list) {
+      var gadget = this,
+        result = {};
+      if (param_list[0].query.indexOf('portal_type:"promise"') !== -1) {
+        // get history file on live
+        result.data = {rows: [], total_rows: 0};
+        return gadget.state.jio_gadget.get(
+          gadget.state.promise.source + ".history"
+        )
+          .push(undefined, function (error) {
+            console.log(error);
+            return undefined;
+          })
+          .push(function (status_history) {
+            var i,
+              len,
+              start,
+              //lines,
+              message;
+
+            if (status_history && status_history.hasOwnProperty('data')) {
+              // the status history list is reversed ([old, ...., newest])
+              len = status_history.data.length;
+              start = len - param_list[0].limit[0] - 1;
+              //lines = param_list[0].limit[1] - param_list[0].limit[0];
+              if (start < 0) {
+                start = len - 1;
+              }
+              //if (lines > len) {
+              //  lines = len - start;
+              //}
+              for (i = start; i >= 0; i-= 1) {
+                message = status_history.data[i].message.slice(0, 60);
+                if (message.length >= 60) {
+                  message += "...";
+                }
+                result.data.total_rows += 1;
+                result.data.rows.push({
+                  value: {
+                    status: {
+                      css_class: "",
+                      description: "The Status",
+                      hidden: 0,
+                      "default": status_history.data[i].status,
+                      key: "status",
+                      url: "gadget_erp5_field_status.html",
+                      title: "Status",
+                      type: "GadgetField"
+                    },
+                    start_date: {
+                      allow_empty_time: 0,
+                      ampm_time_style: 0,
+                      css_class: "date_field",
+                      date_only: 0,
+                      description: "The Date",
+                      editable: 0,
+                      hidden: 0,
+                      hidden_day_is_last_day: 0,
+                      "default": new Date(status_history.data[i]['start-date']).toUTCString(),
+                      key: "start_date",
+                      required: 0,
+                      timezone_style: 0,
+                      title: "Date",
+                      type: "DateTimeField"
+                    },
+                    change_date:  {
+                      allow_empty_time: 0,
+                      ampm_time_style: 0,
+                      css_class: "date_field",
+                      date_only: 0,
+                      description: "The Date",
+                      editable: 0,
+                      hidden: 0,
+                      hidden_day_is_last_day: 0,
+                      "default": new Date(status_history.data[i]['change-time']*1000).toUTCString(),
+                      key: "change_date",
+                      required: 0,
+                      timezone_style: 0,
+                      title: "Status Date",
+                      type: "DateTimeField"
+                    },
+                    message: message,
+                    "listbox_uid:list": {
+                      key: "listbox_uid:list",
+                      value: 2713
+                    }
+                  }
+                });
+              }
+            }
+            return result;
+          });
+      }
+    })
+    .onStateChange(function () {
+      var gadget = this;
+      if (!gadget.state.hasOwnProperty('status') &&
+          !gadget.state.hasOwnProperty('title')) {
+        return;
+      }
+      return new RSVP.Queue()
+        .push(function () {
+          return gadget.getDeclaredGadget('form_view');
+        })
+        .push(function (form_gadget) {
+          var column_list = [
+              ['start_date', 'Report Date'],
+              ['change_date', 'Last Change'],
+              ['message', 'Promise Output'],
+              ['status', 'Status']
+            ];
+          return form_gadget.render({
+            erp5_document: {
+              "_embedded": {"_view": {
+                "your_title": {
+                  "description": "",
+                  "title": "Promise Title",
+                  "default": gadget.state.title,
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "title",
+                  "hidden": 0,
+                  "type": "StringField"
+                },
+                "your_status": {
+                  "description": "",
+                  "title": "Status",
+                  "default": gadget.state.status,
+                  "css_class": "",
+                  "required": 1,
+                  "editable": 0,
+                  "key": "status",
+                  "hidden": 0,
+                  "url": "gadget_erp5_field_status.html",
+                  "type": "GadgetField"
+                },
+                "your_status_date": {
+                  "description": "",
+                  "title": "Status Since",
+                  "default": gadget.state.status_date.toUTCString(),
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "status_date",
+                  "hidden": 0,
+                  "timezone_style": 0,
+                  "date_only": 0,
+                  "type": "DateTimeField"
+                },
+                "your_report_date": {
+                  "description": "",
+                  "title": "Report Date",
+                  "default": gadget.state.report_date.toUTCString(),
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "report_date",
+                  "hidden": 0,
+                  "timezone_style": 0,
+                  "date_only": 0,
+                  "type": "DateTimeField"
+                },
+                "your_public_url": {
+                  "description": "",
+                  "title": "Public Logs Url",
+                  "default": link_template({
+                    url: gadget.state.public_url,
+                    title: "Access Public files",
+                    target: "_blank"
+                  }),
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "public_url",
+                  "hidden": 0,
+                  "type": "EditorField"
+                },
+                "your_private_url": {
+                  "description": "",
+                  "title": "Private Logs Url",
+                  "default": link_template({
+                    url: gadget.state.private_url,
+                    title: "Access Private files",
+                    target: "_blank"
+                  }),
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "private_url",
+                  "hidden": 0,
+                  "type": "EditorField"
+                },
+                "your_software_release_url": {
+                  "description": "",
+                  "title": "Software Release",
+                  "default": link_template({
+                    url: gadget.state.software_release,
+                    title: "Access Software release",
+                    target: "_blank"
+                  }),
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "software_release_url",
+                  "hidden": 0,
+                  "type": "EditorField"
+                },
+                "your_promise_output": {
+                  "description": "",
+                  "title": "Promise Output Message",
+                  "default": getPromiseTextContent(gadget.state.promise_output,
+                    gadget.state.private_url),
+                  "css_class": "promise-output",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "promise_output",
+                  "hidden": 0,
+                  "type": "EditorField"
+                },
+                "your_hosting_title": {
+                  "description": "",
+                  "title": "Hosting Subscription",
+                  "default": link_template({
+                    url: gadget.state.hosting_url,
+                    title: gadget.state.hosting_title
+                  }),
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "hosting_title",
+                  "hidden": 0,
+                  "type": "EditorField"
+                },
+                "your_instance_title": {
+                  "description": "",
+                  "title": "Software Instance",
+                  "default": [gadget.state.instance_title],
+                  "query": "urn:jio:allDocs?query=%28portal_type%3A%22" +
+                    "opml-outline" + "%22%29AND%28reference%3A%22" +
+                    gadget.state.instance_reference + "%22%29",
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "instance_title",
+                  "hidden": gadget.state.instance_reference ? 0 : 1,
+                  "view": "view",
+                  "allow_jump": true,
+                  "allow_creation": false,
+                  "relation_item_relative_url": [gadget.state.instance_reference],
+                  "type": "RelationStringField"
+                },
+                "your_computer_reference": {
+                  "description": "",
+                  "title": "Computer",
+                  "default": gadget.state.computer_reference,
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "computer_reference",
+                  "hidden": 0,
+                  "type": "StringField"
+                },
+                "your_computer_partition": {
+                  "description": "",
+                  "title": "Partition",
+                  "default": gadget.state.computer_partition,
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "computer_partition",
+                  "hidden": 0,
+                  "type": "StringField"
+                },
+                "your_partition_ipv6": {
+                  "description": "",
+                  "title": "Partition IPv6",
+                  "default": gadget.state.partition_ipv6,
+                  "css_class": "",
+                  "required": 0,
+                  "editable": 0,
+                  "key": "partition_ipv6",
+                  "hidden": 0,
+                  "type": "StringField"
+                },
+                "your_promise_history": {
+                  "column_list": column_list,
+                  "show_anchor": 0,
+                  "default_params": {},
+                  "editable": 0,
+                  "editable_column_list": [],
+                  "key": "promise_history",
+                  "lines": 60,
+                  "list_method": "portal_catalog",
+                  "query": "urn:jio:allDocs?query=portal_type%3A%22" +
+                    "promise" + "%22",
+                  "portal_type": [],
+                  "search_column_list": [],
+                  "sort_column_list": [],
+                  "sort": [],
+                  "hide_sort": true,
+                  "command": "reload",
+                  "title": "Promise Status History",
+                  "type": "ListBox"
+                }
+              }},
+              "_links": {
+                "type": {
+                  // form_list display portal_type in header
+                  name: ""
+                }
+              }
+            },
+            form_definition: {
+              group_list: [[
+                "left",
+                [["your_title"], ["your_status"], ["your_status_date"], ["your_report_date"], ["your_public_url"], ["your_private_url"]]
+              ],
+              [
+                "right",
+                [["your_hosting_title"], ["your_instance_title"], ["your_computer_reference"], ["your_computer_partition"],
+                 ["your_partition_ipv6"], ["your_software_release_url"]]
+              ],
+              [
+                "center",
+                [["your_promise_output"]]
+              ],
+              [
+                "bottom",
+                [["your_promise_history"]]
+              ]]
+            }
+          });
+        })
+        .push(function () {
+          return RSVP.all([
+            gadget.getUrlFor({command: 'history_previous'}),
+            gadget.getUrlFor({command: 'selection_previous'}),
+            gadget.getUrlFor({command: 'selection_next'})
+          ]);
+        })
+        .push(function (url_list) {
+          return gadget.updateHeader({
+            page_title: "Promise: " + gadget.state.title,
+            selection_url: url_list[0],
+            previous_url: url_list[1],
+            next_url: url_list[2],
+            refresh_action: true
+          });
+        });
+    });
+}(window, rJS, RSVP, Handlebars, RegExp));
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_promise_view_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_promise_view_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5103be0a07132be66bb2ae4afd2866615c43cbae
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_promise_view_js.xml
@@ -0,0 +1,340 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Script" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/javascript</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_officejs_jio_promise_view.js</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_officejs_jio_promise_view_js</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Script</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>OfficeJS Jio Promise view JS</string> </value>
+        </item>
+        <item>
+            <key> <string>url_string</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506672671.19</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>963.706.49244.32460</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1508949544.51</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506672641.63</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_appcache.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_appcache.xml
similarity index 74%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_appcache.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_appcache.xml
index b8cc6db7060443f8c6880e6ef8fed4f4b9f96bcc..09e7c40167ac5ff0665d59970c6279f46b331906 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_appcache.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_appcache.xml
@@ -64,7 +64,7 @@
             <key> <string>categories</string> </key>
             <value>
               <tuple>
-                <string>classification/collaborative/team</string>
+                <string>classification/collaborative/public</string>
               </tuple>
             </value>
         </item>
@@ -76,7 +76,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring.appcache</string> </value>
+            <value> <string>gadget_officejs_monitoring.appcache</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -86,7 +86,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_appcache</string> </value>
+            <value> <string>gadget_officejs_monitoring_appcache</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -117,7 +117,7 @@ font-awesome/font-awesome-webfont.ttf\n
 font-awesome/font-awesome-webfont.svg\n
 URI.js\n
 dygraph.js\n
-gadget_erp5.css\n
+gadget_erp5_nojqm.css\n
 gadget_global.js\n
 gadget_field_graph_dygraph.html\n
 gadget_field_graph_dygraph.js\n
@@ -129,66 +129,122 @@ gadget_translation.html\n
 dygraph.js\n
 handlebars.js\n
 jiodev.js\n
+erp5_launcher_nojqm.js\n
 monitoring_jio_http_storage.js\n
 monitoring_jio_parser_storage.js\n
 monitoring_jio_storage.js\n
 monitoring_jio_web_storage.js\n
 jquery.js\n
-jquery.magnific-popup.min.js\n
-jquerymobile.css\n
-jquerymobile.js\n
 jsen.min.js\n
-magnific-popup.css\n
-notify.min.js\n
 renderjs.js\n
 rsvp.js\n
-gadget_monitoring_application_panel.html\n
-gadget_monitoring_breadcrumb.html\n
-gadget_monitoring_document_edit.html\n
-gadget_monitoring_header.html\n
-gadget_monitoring_hosting_subscription_list.html\n
-gadget_monitoring_hosting_subscription_view.html\n
-gadget_monitoring_import_export.html\n
-gadget_monitoring_jio.html\n
-gadget_monitoring_log_widget.html\n
-gadget_monitoring_main.html\n
-gadget_monitoring_message_log.html\n
-gadget_monitoring_process_view.html\n
-gadget_monitoring_promise_interface.html\n
-gadget_monitoring_resource_view.html\n
-gadget_monitoring_router.html\n
-gadget_monitoring_settings_configurator.html\n
-gadget_monitoring_software_instance_list.html\n
-gadget_monitoring_software_instance_view.html\n
-gadget_monitoring_status_list.html\n
-gadget_monitoring_sync.html\n
-gadget_monitoring_widget_listbox.html\n
-gadget_monitoring_custom.css\n
-gadget_monitoring_application_panel.js\n
-gadget_monitoring_breadcrumb.js\n
-gadget_monitoring_document_edit.js\n
-gadget_monitoring_header.js\n
-gadget_monitoring_hosting_subscription_list.js\n
-gadget_monitoring_hosting_subscription_view.js\n
-gadget_monitoring_import_export.js\n
-gadget_monitoring_jio.js\n
-gadget_monitoring_log_widget.js\n
-gadget_monitoring_main.js\n
-gadget_monitoring_message_log.js\n
-gadget_monitoring_process_view.js\n
-gadget_monitoring_promise_interface.js\n
-gadget_monitoring_resource_view.js\n
-gadget_monitoring_router.js\n
-gadget_monitoring_software_instance_list.js\n
-gadget_monitoring_software_instance_view.js\n
-gadget_monitoring_settings_configurator.js\n
-gadget_monitoring_status_list.js\n
-gadget_monitoring_sync.js\n
-gadget_monitoring_widget_listbox.js\n
-gadget_translation.js\n
+notify.min.js\n
+\n
+# shared\n
+gadget_erp5_notification.html\n
+gadget_erp5_notification.js\n
+gadget_officejs_router.js\n
 gadget_translation_data.js\n
-erp5_launcher.js\n
-erp5_launcher.html\n
+gadget_translation.js\n
+gadget_erp5_router.html\n
+gadget_erp5_router.js\n
+gadget_html5_input.html\n
+gadget_html5_input.js\n
+gadget_erp5_searchfield.html\n
+gadget_erp5_searchfield.js\n
+gadget_erp5_pt_form_list.html\n
+gadget_erp5_pt_form_list.js\n
+gadget_erp5_form.html\n
+gadget_erp5_form.js\n
+gadget_erp5_label_field.html\n
+gadget_erp5_label_field.js\n
+gadget_erp5_field_listbox.html\n
+gadget_erp5_field_listbox.js\n
+gadget_erp5_field_datetime.html\n
+gadget_erp5_field_datetime.js\n
+gadget_erp5_field_string.html\n
+gadget_erp5_field_string.js\n
+gadget_erp5_field_gadget.html\n
+gadget_erp5_field_gadget.js\n
+gadget_erp5_field_status.html\n
+gadget_erp5_field_status.js\n
+gadget_html5_element.html\n
+gadget_html5_element.js\n
+gadget_erp5_field_editor.html\n
+gadget_erp5_field_editor.js\n
+gadget_erp5_field_relationstring.html\n
+gadget_erp5_field_relationstring.js\n
+gadget_erp5_field_textarea.html\n
+gadget_erp5_field_textarea.js\n
+gadget_erp5_relation_input.html\n
+gadget_erp5_relation_input.js\n
+gadget_erp5_page_ojs_controller.html\n
+gadget_erp5_page_ojs_controller.js\n
+gadget_html5_textarea.html\n
+gadget_html5_textarea.js\n
+gadget_erp5_field_list.html\n
+gadget_erp5_field_list.js\n
+gadget_erp5_field_checkbox.html\n
+gadget_erp5_field_checkbox.js\n
+gadget_html5_select.html\n
+gadget_html5_select.js\n
+gadget_erp5_field_password.html\n
+gadget_erp5_field_password.js\n
+gadget_erp5_jio.html\n
+gadget_erp5_jio.js\n
+\n
+# monitoring\n
+gadget_officejs_monitoring.appcache\n
+gadget_officejs_monitoring_jio.html\n
+gadget_erp5_page_ojsm_hosting_subscription_list.html\n
+gadget_officejs_monitoring_parameter_view.html\n
+gadget_erp5_page_settings_configurator.html\n
+gadget_erp5_page_ojsm_processes_view.html\n
+gadget_erp5_page_ojsm_hosting_subscription_view.html\n
+gadget_officejs_monitoring_sync.html\n
+gadget_officejs_jio_global_view.html\n
+gadget_erp5_page_ojsm_software_instance_list.html\n
+gadget_officejs_monitoring_router.html\n
+gadget_officejs_jio_promise_view.html\n
+gadget_erp5_page_ojsm_import_export.html\n
+gadget_officejs_jio_opml_view.html\n
+gadget_erp5_page_ojsm_opml_add.html\n
+gadget_officejs_monitoring_panel.html\n
+gadget_erp5_page_ojsm_resources_view.html\n
+gadget_erp5_page_ojsm_opml_delete.html\n
+gadget_officejs_monitoring_header.html\n
+gadget_erp5_page_ojsm_status_list.html\n
+gadget_erp5_page_ojsm_synchronize.html\n
+gadget_erp5_page_ojsm_erp5_configurator.html\n
+gadget_erp5_page_ojsm_jump.html\n
+\n
+# monitoring js\n
+gadget_officejs_monitoring_jio.js\n
+gadget_erp5_page_ojsm_hosting_subscription_list.js\n
+gadget_officejs_monitoring_parameter_view.js\n
+gadget_erp5_page_settings_configurator.js\n
+gadget_erp5_page_ojsm_processes_view.js\n
+gadget_officejs_monitoring_custom.css\n
+gadget_erp5_page_ojsm_hosting_subscription_view.js\n
+gadget_global.js\n
+gadget_erp5_global.js\n
+gadget_officejs_monitoring_sync.js\n
+gadget_erp5_page_ojsm_software_instance_list.js\n
+gadget_officejs_monitoring_panel.js\n
+gadget_officejs_jio_global_view.js\n
+gadget_erp5_page_ojsm_import_export.js\n
+gadget_erp5_page_ojsm_resources_view.js\n
+gadget_officejs_jio_promise_view.js\n
+gadget_officejs_monitoring_header.js\n
+gadget_erp5_page_ojsm_opml_add.js\n
+gadget_erp5_page_ojsm_opml_delete.js\n
+gadget_erp5_page_ojsm_status_list.js\n
+gadget_officejs_jio_opml_view.js\n
+gadget_erp5_page_ojsm_synchronize.js\n
+gadget_erp5_page_ojsm_jump.js\n
+gadget_erp5_page_ojsm_erp5_configurator.js\n
+gadget_officejs_monitoring_global.js\n
+\n
 # erp5_web_renderjs_ui\n
 gadget_erp5_editor_panel.html\n
 gadget_erp5_editor_panel.js\n
@@ -328,7 +384,7 @@ NETWORK:\n
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.61188.16000.18722</string> </value>
+                <value> <string>963.648.42463.52138</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -346,7 +402,7 @@ NETWORK:\n
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1504800490.65</float>
+                        <float>1509023500.45</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_custom_css.css b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_custom_css.css
new file mode 100644
index 0000000000000000000000000000000000000000..aea7ca308d43e438e2a9200a4fad0ccfa7ec6348
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_custom_css.css
@@ -0,0 +1,365 @@
+/** custom style ***/
+.parameter-box-title {
+  font-size: 120%;
+  margin: 25px 0 0;
+  padding: 5px 0;
+  color: #5d5d5d;
+}
+
+/***** end ****/
+
+
+.margin-0 {margin: 0}
+.padding-5 {padding: 5px;}
+.padding-10 {padding: 10px;}
+.padding-15 {padding: 15px;}
+.padding-20 {padding: 20px;}
+.padding-tb-5 {padding: 10px 0;}
+.padding-tb-10 {padding: 10px 0;}
+.padding-tb-20 {padding: 20px 0;}
+.padding-lr-5 {padding: 0 5px;}
+.padding-lr-10 {padding: 0 10px;}
+.padding-lr-20 {padding: 0 20px;}
+.padding-lrb-20 {padding: 0 20px 20px;}
+.border-gray {    border: 1px solid #C3C3C3; border-radius: 3px;}
+.ui-text{
+  padding: 0 10px;
+}
+.ui-text-pre {
+  white-space: pre-wrap;
+}
+.ui-text-left {text-align: left;}
+.ui-text-right {text-align: right;}
+.ui-text-center {
+  text-align: center;
+}
+.ui-text-ERROR, .ui-text-error {
+  color: #DC4343;
+}
+.ui-text-INFO, .ui-text-info {
+  color: #DC4343;
+}
+.ui-text-OK, .ui-text-ok {
+  color: green;
+}
+.ui-text-WARNING, .ui-text-warning {
+  color: #cea813;
+  text-shadow: 1px 0px 0px rgb(224, 224, 116);
+}
+
+.ui-text-desabled {
+  color: rgba(128, 128, 128, 0.66);
+}
+
+.text-data {
+  height: 120px;
+  color: #596167;
+}
+.text-info {
+  font-size: 90%;
+  color: #048daf;
+}
+
+.text-overview {
+  max-width: 200px;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+  overflow: hidden;
+}
+
+.header-notice {
+  margin-top: 5px;
+  margin-left: 20px;
+  color: #5C676D;
+  font-size: .95em;
+}
+
+.ui-status-icon {
+  display: inline-block;
+}
+.ui-status-icon:before {
+  display: inline-block;
+  content: "";
+  vertical-align: middle;
+  height: 2.5em;
+  width: 2.5em;
+  cursor: pointer;
+  background: #DC4343;
+}
+
+.ui-status-icon-fx:before {
+  height: 3.5em;
+  width: 3.5em;
+}
+
+.ui-status-text, a span.ui-status-text {
+  font-weight: bold;
+  padding-left: 7px;
+  font-size: 1.09em;
+  /*top: 13px;
+  left: 40px;
+  position: absolute;*/
+}
+
+.ui-status-ok:before, .ui-status-OK:before {
+  background: green;
+}
+.ui-status-error:before, .ui-status-ERROR:before {
+  background: #DC4343;
+}
+.ui-status-warning:before, .ui-status-WARNING:before {
+  background: #f0ad4e;
+}
+.status-text-ok:before, .status-text-OK:before {
+  color: green;
+}
+.status-text-error:before, .status-text-ERROR:before {
+  color: #DC4343;
+}
+.status-text-warning:before, .status-text-WARNING:before {
+  color: #f0ad4e;
+}
+
+.label-warning, .label-WARNING {
+  background-color: #f0ad4e;
+}
+.label-error, .label-ERROR {
+  background-color: #DC4343;
+}
+.label-false {
+  background-color: #9ba0a5;
+}
+.label-ok, .label-OK {
+  background-color: green;
+}
+.label-info, .label-INFO, .label-true {
+  background-color: #79c1d9;
+}
+.label {
+  display: inline;
+  padding: .4em .8em;
+  font-weight: 700;
+  line-height: 2.1em;
+  color: #fff;
+  text-align: center;
+  white-space: nowrap;
+  vertical-align: baseline;
+  border-radius: .25em;
+}
+.label-text {
+  display: block;
+  margin: .6em 0 .4em;
+  font-weight: 400;
+  font-size: 16px;
+  text-transform: capitalize;
+}
+
+.ui-content-hidden {
+  display: none;
+}
+
+/* LEGEND CHART */
+.legend {
+  list-style: none;
+  font-size: 12px;
+}
+.legend ul li {
+    list-style: none;
+}
+.legend:before {
+  display: block;
+  content: "";
+  clear: both;
+}
+.legend li {
+  float: left;
+  font-size: 12px;
+  padding-right: 10px;
+}
+.legend li span {
+  display: inline-block;
+  height: 10px;
+  width: 10px;
+  margin-right: 5px;
+}
+
+/* Graph */
+.graph {
+  margin: 20px 0;
+  position: relative;
+}
+.graph-label {
+  font-size: 75%;
+}
+.dygraph-xlabel {
+  font-size: 110%;
+  color: #344558;
+  padding: 8px 0;
+}
+.graph-full {
+  margin: 0 20px;
+  position: relative;
+}
+.graph-medium {
+  height: 320px;
+  width: 98%;
+}
+.graph-h-medium {
+  height: 320px;
+  width: 98%;
+  margin: 30px;
+}
+.ui-grid-column .graph-state-labels {
+  margin: 10px;
+}
+.ui-grid-column .graph-state-labels label{
+  font-weight: normal;
+}
+
+.hosting-block, .content-medium {
+  width: 80%;
+}
+
+/*  INfo Box */
+.infobox {
+  display: inline-block;
+  color: #555;
+  background-color: #FFF;
+  box-shadow: none;
+  margin: -1px 0 0 -1px;
+  margin: 5px 0;
+  padding: 8px 3px 6px 9px;
+  border: 1px solid;
+  border-color: #D8D8D8;
+  vertical-align: middle;
+  text-align: left;
+  position: relative;
+  /*cursor: pointer;*/
+}
+.infobox:hover {
+    background: rgba(128, 128, 128, .1);
+}
+
+.infobox>.infobox-icon {
+  display: inline-block;
+  vertical-align: top;
+}
+
+.infobox>.infobox-data {
+  display: inline-block;
+  border-width: 0;
+  font-size: 13px;
+  text-align: left;
+  line-height: 21px;
+  min-width: 130px;
+  padding-left: 8px;
+  position: relative;
+  top: 0;
+}
+
+.infobox>.infobox-data>.infobox-data-number {
+  display: block;
+  font-size: 22px;
+  margin: 2px 0 4px;
+  position: relative;
+  text-shadow: 1px 1px 0 rgba(0,0,0,.15);
+}
+
+.infobox .infobox-content {
+    color: #555;
+    max-width: 140px;
+}
+
+/*  Log Box */
+
+.logbox {
+  padding: 15px 20px 20px;
+}
+
+.logbox .description {
+  padding-bottom: 15px;
+  border-bottom: 1px dashed #e6e6e6;
+  display: block;
+  color: #7b7b7b;
+}
+
+.logbox tr {
+  line-height: 23px;
+  border-bottom: 1px solid #e6e6e6;
+}
+
+.logbox tr td {
+  color: #7b7b7b;
+  padding: 10px;
+  cursor: pointer;
+}
+
+/* Alert box custom */
+.alert {
+  padding: 8px 35px 8px 14px;
+  margin-bottom: 8px;
+  margin-top: 8px;
+  color: #c09853;
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+  background-color: #fcf8e3;
+  border: 1px solid #fbeed5;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+  white-space: pre-line;
+}
+
+.alert-heading {
+  color: inherit;
+}
+
+.alert .close {
+  position: relative;
+  top: -2px;
+  right: -21px;
+  line-height: 18px;
+}
+
+.alert-success {
+  color: #468847;
+  background-color: #dff0d8;
+  border-color: #d6e9c6;
+}
+
+.alert-danger,
+.alert-error {
+  color: #b94a48;
+  background-color: #f2dede;
+  border-color: #eed3d7;
+}
+
+.alert-info {
+  color: #3a87ad;
+  background-color: #d9edf7;
+  border-color: #bce8f1;
+}
+
+.alert-block > p,
+.alert-block > ul {
+margin-bottom: 0;
+}
+
+.alert-block p + p {
+margin-top: 5px;
+}
+
+.danger-button {
+  padding: 6pt;
+  margin-right: 12pt;
+  background-color: #d63319;
+  color: #FFFFFF;
+  border-radius: 0.325em;
+  border-width: 0.5px;
+  border-style: solid;
+  min-width: 8em;
+  line-height: 1.5;
+}
+.danger-button:disabled {
+  background-color: #af441a;
+  opacity: 0.5;
+}
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_custom_css.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_custom_css.xml
similarity index 96%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_custom_css.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_custom_css.xml
index e0d1d45122e52b01335eb5c2c295411fa77016b4..594e331eec94194efed0fbbeb001a4dbd24a9b4d 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_custom_css.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_custom_css.xml
@@ -76,7 +76,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_custom.css</string> </value>
+            <value> <string>gadget_officejs_monitoring_custom.css</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -86,7 +86,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_custom_css</string> </value>
+            <value> <string>gadget_officejs_monitoring_custom_css</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -106,7 +106,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Monitoring Custom css</string> </value>
+            <value> <string>Officejs Monitoring Custom css</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -239,7 +239,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.59579.23436.30429</string> </value>
+                <value> <string>962.57554.52005.49783</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -257,7 +257,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1504708727.24</float>
+                        <float>1508428094.57</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_global_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_global_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..f3214b8dc99204fb8d82f742773754c3e656c2cf
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_global_js.js
@@ -0,0 +1,304 @@
+/*global window, RSVP, btoa */
+/*jslint nomen: true, indent: 2, maxerr: 3*/
+(function (window, RSVP, btoa) {
+  "use strict";
+
+  /* Function used to manage/add/update OPML */
+
+  window.OPMLManage = (function(){
+    var gadget,
+      self = {};
+
+    self.init = function (rjs_gadget, template_msg) {
+      gadget = rjs_gadget;
+      gadget.props = {gindex: 0};
+      self.notify_msg_template = template_msg;
+      return new RSVP.Queue()
+        .push(function () {
+          return gadget.changeState({
+            message: gadget.element.querySelector('.ui-message-alert')
+          });
+        })
+        .push(function () {
+          return gadget.getDeclaredGadget("jio_gadget")
+            .push(function (jio_gadget) {
+              return gadget.changeState({"jio_gadget": jio_gadget});
+            });
+        });
+    };
+
+    self.validateHttpUrl = function (value) {
+      /*jslint regexp: true*/
+      if (/\(?(?:(http|https):\/\/)(?:((?:[^\W\s]|\.|-|[:]{1})+)@{1})?((?:www.)?(?:[^\W\s]|\.|-)+[\.][^\W\s]{2,4}|localhost|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|\[[\dabcedf:]+\])(?::(\d*))?([\/]?[^\s\?]*[\/]{1})*(?:\/?([^\s\n\?\[\]\{\}\#]*(?:(?=\.)){1}|[^\s\n\?\[\]\{\}\.\#]*)?([\.]{1}[^\s\?\#]*)?)?(?:\?{1}([^\s\n\#\[\]]*))?([\#][^\s\n]*)?\)?/i.test(value)) {
+        return true;
+      }
+      /*jslint regexp: false*/
+      return false;
+    };
+
+    self.changeMonitorPassword = function (base_url, title, basic_login,
+        password) {
+      var url = base_url,
+        jio_gadget,
+        jio_options;
+
+      url += (url.endsWith('/') ? '' : '/') + 'config/';
+      gadget.props.gindex += 1;
+      return gadget.declareGadget("gadget_officejs_monitoring_jio.html",
+          {
+            element: gadget.element,
+            scope: 'jio_' + gadget.props.gindex + "_gadget",
+            sandbox: "public"
+          }
+        ).push(function(new_gadget) {
+          jio_gadget = new_gadget;
+          jio_gadget.createJio({
+            type: "query",
+            sub_storage: {
+              type: "drivetojiomapping",
+              sub_storage: {
+                type: "dav",
+                url: url,
+                basic_login: basic_login
+              }
+            }
+          });
+          return jio_gadget.get('config');
+        })
+        .push(function (doc) {
+          var i;
+          if (doc) {
+            for (i  = 0; i < doc.length; i += 1) {
+              if (doc[i].key === 'monitor-password') {
+                doc[i].value = password;
+                return jio_gadget.put('config.tmp', doc);
+              }
+            }
+          }
+          return new Error("Cannot get document 'config.json' at : " % url);
+        })
+        .push(function () {
+          return {status: 'OK'};
+        }, function (error) {
+          console.log(error);
+          return {
+            status: 'ERROR',
+            code: error.status || error.target.status,
+            url: base_url,
+            title: title
+          };
+        });
+    };
+
+    self.checkCredential = function (url, title, hash) {
+      var ouput;
+      // Verify if login and password are correct for this URL
+      if (url === undefined) {
+        return {status: 'OK'};
+      }
+      return self.testUrl(url, hash)
+        .then(function(result) {
+          return result;
+        }, function(error) {
+          var ko_msg = {
+              status: 'KO',
+              msg: error.msg + ' (' + url + ')',
+              title: title
+            };
+          return ko_msg;
+        });
+    };
+
+    self.testUrl = function (url, credential_hash) {
+      // test URL availability!!
+      // check that password is valid for that URL
+      return new RSVP.Queue()
+        .push(function () {
+          return new RSVP.Promise(function (resolve, reject) {
+            var xhr = new XMLHttpRequest();
+
+            xhr.onload = function (event) {
+              var response = event.target;
+              if (response.status === 200) {
+                resolve({status: 'OK'});
+              } else {
+                reject({
+                  status: 'ERROR',
+                  msg: new Error("XHR: " + response.status + ": " + response.statusText)
+                });
+              }
+            };
+
+            xhr.onerror = function (e) {
+              reject({
+                status: 'ERROR',
+                msg: e.target.status + ": " + e.target.statusText
+              });
+            };
+
+            xhr.open("GET", url, true);
+            if (credential_hash !== undefined) {
+              xhr.setRequestHeader('Authorization', 'Basic ' + credential_hash);
+            }
+            xhr.send("");
+          });
+        });
+    };
+
+    self.saveOPML = function (doc, verify_password) {
+      var opml_dict = {
+          type: "opml",
+          title: doc.title,
+          portal_type: "opml",
+          url: doc.url,
+          basic_login: btoa(doc.username + ':' + doc.password),
+          username: doc.username,
+          password: doc.password,
+          active: (doc.active === 1) ? true : false
+        },
+        update_password_list = [];
+      gadget.state.message.textContent = "";
+
+      function validateOPML() {
+        // read the opml online to get the content and title
+        // it also help to make sure that the opml content is valid
+        gadget.state.message.textContent = "Reading OPML content...";
+        gadget.state.jio_gadget.createJio({
+          type: "query",
+          sub_storage: {
+            type: "parser",
+            document_id: doc.url,
+            attachment_id: 'enclosure',
+            parser: 'opml',
+            sub_storage: {
+              type: "http"
+            }
+          }
+        });
+        return gadget.state.jio_gadget.allDocs({
+          select_list: ['title', 'opml_title', 'xmlUrl', 'url']
+        })
+          .push(undefined, function (error) {
+            gadget.state.message
+              .innerHTML = self.notify_msg_template({
+                status: 'error',
+                message: error.name +
+                  ": Failed to access OPML URL. " + error.message
+              });
+            return {data: {total_rows: 0}};
+          })
+          .push(function (opml_result) {
+            var i,
+              check_list = [true];
+            if (opml_result.data.total_rows > 0) {
+              opml_dict.title = opml_result.data.rows[0].value.title;
+              for (i = 1; i < opml_result.data.total_rows; i += 1) {
+                if (opml_result.data.rows[i].value.url !== undefined) {
+                  check_list.push(self.checkCredential(
+                    opml_result.data.rows[i].value.url,
+                    opml_result.data.rows[i].value.title,
+                    opml_dict.basic_login
+                  ));
+                  update_password_list.push({
+                    base_url: opml_result.data.rows[i].value.url,
+                    title: opml_result.data.rows[i].value.title
+                  });
+                }
+              }
+              gadget.state.message.textContent = "Validating password(s)...";
+              return RSVP.all(check_list);
+            }
+            return [false];
+          })
+          .push(function (status_list) {
+            var i,
+              error_msg = '';
+            for (i = 1; i < status_list.length; i += 1) {
+              if (status_list[i].status !== 'OK') {
+                error_msg += 'Login/password invalid for instance: ' +
+                  status_list[i].title + '. ' +
+                  status_list[i].msg + '\n';
+              }
+            }
+            if (error_msg !== '') {
+              gadget.state.message
+                .innerHTML = self.notify_msg_template({
+                  status: 'error',
+                  message: error_msg
+                });
+              return false;
+            }
+            return status_list[0];
+          })
+          .push(function (previous_status) {
+            var i,
+              update_promise_list = [];
+            if (doc.new_password === "") {
+              return previous_status;
+            }
+            if (!previous_status) {
+              return false;
+            }
+            gadget.state.message.textContent = "Updating password(s)...";
+            for (i = 0; i < update_password_list.length; i += 1) {
+              update_promise_list.push(self.changeMonitorPassword(
+                update_password_list[i].base_url,
+                update_password_list[i].title,
+                opml_dict.basic_login,
+                doc.new_password
+              ));
+            }
+            return new RSVP.Queue()
+              .push(function () {
+                return RSVP.all(update_promise_list);
+              })
+              .push(function(result_list) {
+                var i,
+                  error_msg = "";
+                for (i = 0; i < result_list.length; i += 1) {
+                  if (result_list[i].status === 'ERROR') {
+                    error_msg += 'ERROR ' + result_list[i].code +
+                      '. [' + result_list[i].title + '] Failed to ' +
+                      'change password, please try again\n';
+                  }
+                }
+                if (error_msg !== "") {
+                  gadget.state.message
+                    .innerHTML = self.notify_msg_template({
+                      status: 'error',
+                      message: error_msg
+                    });
+                  return false;
+                } else {
+                  opml_dict.basic_login =
+                    btoa(doc.username + ':' + doc.new_password);
+                  opml_dict.password = doc.new_password;
+                  return true;
+                }
+              });
+          });
+      }
+
+      return new RSVP.Queue()
+        .push(function () {
+          if (verify_password) {
+            return validateOPML();
+          }
+          return true;
+        })
+        .push(function (status) {
+          if (status) {
+            gadget.state.message.textContent = "Saving OPML...";
+            return gadget.jio_put(opml_dict.url, opml_dict)
+              .push(function () {
+                gadget.state.message.textContent = "";
+                return status;
+              });
+          }
+          return status;
+        });
+    };
+
+    return self;
+  })();
+}(window, RSVP, btoa));
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_log_widget_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_global_js.xml
similarity index 95%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_log_widget_js.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_global_js.xml
index 4085a8c15a7fb1a1fa1a4fae45328e9dafc1c53b..d8ecbffb661295dda72b67ea2bce318c70c63b3e 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_log_widget_js.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_global_js.xml
@@ -83,7 +83,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_log_widget.js</string> </value>
+            <value> <string>gadget_officejs_monitoring_global.js</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -93,7 +93,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_log_widget_js</string> </value>
+            <value> <string>gadget_officejs_monitoring_global_js</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -111,7 +111,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Monitoring Logs Widget JS</string> </value>
+            <value> <string>Monitoring Global Js</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -197,7 +197,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1467724062.68</float>
+                        <float>1509018342.18</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -242,7 +242,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.21883.33309.38348</string> </value>
+                <value> <string>963.1892.25677.55654</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -260,7 +260,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1502445069.09</float>
+                        <float>1509020867.3</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -317,7 +317,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1467724015.39</float>
+                        <float>1509016096.05</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_header_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_header_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..644a096c6d2fccf7e509927625599c9b4a039226
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_header_html.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <!--
+      data-i18n=Front
+      data-i18n=Previous
+      data-i18n=Cancel
+      data-i18n=Back
+      data-i18n=Editable
+      data-i18n=Viewable
+      data-i18n=New
+      data-i18n=Save
+      data-i18n=Proceed
+      data-i18n=Add
+      data-i18n=Filter
+      data-i18n=Views
+      data-i18n=Jump
+      data-i18n=Delete
+      data-i18n=Export
+      data-i18n=Actions
+      data-i18n=Cut
+      data-i18n=Add
+      data-i18n=Previous
+      data-i18n=Next
+      data-i18n=Loading
+    -->
+    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+    <meta name="viewport" content="width=device-width, user-scalable=no" />
+    <title>ERP5 Header</title>
+
+    <!-- renderjs -->
+    <script src="rsvp.js" type="text/javascript"></script>
+    <script src="renderjs.js" type="text/javascript"></script>
+    <script src="handlebars.js" type="text/javascript"></script>
+    <script src="gadget_global.js" type="text/javascript"></script>
+
+    <!-- custom script -->
+    <script src="gadget_officejs_monitoring_header.js" type="text/javascript"></script>
+
+    <script id="header-title-link-template" type="text/x-handlebars-template"><a data-i18n="{{title}}" class="ui-btn ui-btn-icon-left ui-icon-{{icon}}" href="{{url}}"  accesskey="u">{{title}}</a></script>
+    <script id="header-title-template" type="text/x-handlebars-template"><span data-i18n="{{title}}" class="ui-btn-icon-left ui-icon-{{icon}}" >{{title}}</span></script>
+
+    <script id="header-link-template" type="text/x-handlebars-template">
+       <a role="button" data-i18n="{{title}}" href="{{url}}" class="responsive ui-btn ui-icon-{{icon}} ui-btn-icon-left ui-first-child ui-last-child {{class}}">{{title}}</a>
+    </script>
+
+    <script id="header-button-template" type="text/x-handlebars-template">
+       <form><button name='{{name}}' data-i18n="{{title}}" type='submit' class='responsive ui-btn ui-icon-{{icon}} ui-btn-icon-left ui-first-child ui-last-child {{class}}'>{{title}}</button></form>
+    </script>
+
+    <script id="sub-header-template" type="text/x-handlebars-template">
+        {{#each sub_header_list}}
+          <li class="ui-block-{{block}}"><a href="{{url}}" data-i18n="{{title}}" class="ui-btn ui-btn-icon-top ui-icon-{{icon}} {{class}}">{{title}}</a></li>
+        {{/each}}
+    </script>
+
+  </head>
+  <body>
+
+  <div data-role="header" data-theme="a" class="ui-header ui-bar-a" data-position="fixed" data-tap-toggle="false">
+
+    <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-left">
+      <div class="ui-controlgroup-controls">
+      </div>
+    </div>
+
+    <h1 class="ui-title"></h1>
+
+    <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right">
+      <div class="ui-controlgroup-controls">
+      </div>
+    </div>
+
+    <div class="ui-navbar ui-subheader ui-grid-container ui-body-a" role="navigation">
+			<ul class="ui-grid-d">
+			</ul>
+		</div>
+  </div>
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_header_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_header_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e7bd22a1363cdfd802f783d783b5d16c608a10bc
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_header_html.xml
@@ -0,0 +1,332 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Page" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_officejs_monitoring_header.html</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_officejs_monitoring_header_html</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value> <string>en</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Page</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Gadget Officejs Monitoring Header</string> </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506091264.63</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>962.17168.33730.14216</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506091257.12</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506091214.66</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_header_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_header_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..57ec449d676107c2e06876fce84c4422dace1dd9
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_header_js.js
@@ -0,0 +1,363 @@
+/*jslint nomen: true, indent: 2, maxerr: 3 */
+/*global window, rJS, Handlebars, document, RSVP */
+(function (window, rJS, Handlebars, document, RSVP) {
+  "use strict";
+
+  /////////////////////////////////////////////////////////////////
+  // Handlebars
+  /////////////////////////////////////////////////////////////////
+  // Precompile the templates while loading the first gadget instance
+  var gadget_klass = rJS(window),
+    template_element = gadget_klass.__template_element,
+
+    header_title_template = Handlebars.compile(template_element
+                                                 .getElementById("header-title-template")
+                                                 .innerHTML),
+    header_title_link_template = Handlebars.compile(template_element
+                                                      .getElementById("header-title-link-template")
+                                                      .innerHTML),
+    sub_header_template = Handlebars.compile(template_element
+                                               .getElementById("sub-header-template")
+                                               .innerHTML),
+    header_button_template = Handlebars.compile(template_element
+                                                  .getElementById("header-button-template")
+                                                  .innerHTML),
+    header_link_template = Handlebars.compile(template_element
+                                                .getElementById("header-link-template")
+                                                .innerHTML),
+
+    possible_left_button_list = [
+      ['panel_action', 'Menu', 'bars', 'panel']
+    ],
+    possible_main_link_list = [
+      // ['menu_url', 'Menu', 'bars'],
+      ['front_url', 'Front', 'arrow-up'],
+      ['selection_url', 'Previous', 'arrow-up'],
+      ['cancel_url', 'Cancel', 'times'],
+      ['back_url', 'Back', 'times']
+    ],
+    possible_right_link_list = [
+      ['edit_url', 'Editable', 'pencil'],
+      ['view_url', 'Viewable', 'eye'],
+      ['right_url', 'New', 'plus']
+    ],
+    possible_right_button_list = [
+      ['save_action', 'Save', 'check', 'submit'],
+      ['submit_action', 'Proceed', 'check', 'submit'],
+      ['add_action', 'Add', 'check', 'submit'],
+      ['filter_action', 'Filter', 'filter', 'submit'],
+      ['refresh_action', 'Refresh', 'refresh', 'submit']
+    ],
+    possible_sub_header_list = [
+      ['tab_url', 'Views', 'eye'],
+      ['jump_url', 'Jump', 'plane'],
+      ['delete_url', 'Delete', 'times'],
+      ['import_url', 'Import', 'upload'],
+      ['export_url', 'Export', 'share-square-o'],
+      ['actions_url', 'Actions', 'cogs'],
+      ['cut_url', 'Cut', 'scissors'],
+      ['add_url', 'Add', 'plus'],
+      ['previous_url', 'Previous', 'carat-l'],
+      ['next_url', 'Next', 'carat-r'],
+      ['edit_content', 'Content', 'file-text'],
+      ['edit_properties', 'Properties', 'info'],
+      ['change_password', 'Change Password', 'pencil-square-o'],
+      ['resources_url', 'Resources', 'picture-o'],
+      ['processes_url', 'Processes', 'list-alt']
+    ];
+
+  gadget_klass
+    .setState({
+      loaded: false,
+      modified: false,
+      submitted: true,
+      error: false,
+      title_text: '',
+      title_icon: undefined,
+      title_url: undefined
+    })
+    /////////////////////////////////////////////////////////////////
+    // ready
+    /////////////////////////////////////////////////////////////////
+    // Init local properties
+    .ready(function () {
+      this.props = {
+        element_list: [
+          this.element.querySelector("h1"),
+          this.element.querySelector(".ui-btn-left > div"),
+          this.element.querySelector(".ui-btn-right > div"),
+          this.element.querySelector(".ui-subheader").querySelector("ul")
+        ]
+      };
+    })
+
+    //////////////////////////////////////////////
+    // acquired methods
+    //////////////////////////////////////////////
+    .declareAcquiredMethod("translateHtml", "translateHtml")
+    .declareAcquiredMethod("triggerSubmit", "triggerSubmit")
+    .declareAcquiredMethod("triggerPanel", "triggerPanel")
+
+    /////////////////////////////////////////////////////////////////
+    // declared methods
+    /////////////////////////////////////////////////////////////////
+    .declareMethod('notifyLoaded', function () {
+      return this.changeState({
+        loaded: true
+      });
+    })
+    .declareMethod('notifyLoading', function () {
+      return this.changeState({
+        loaded: false
+      });
+    })
+    .declareMethod('notifySubmitted', function () {
+      return this.changeState({
+        submitted: true,
+        // Change modify here, to allow user to redo some modification and being correctly notified
+        modified: false
+      });
+    })
+    .declareMethod('notifySubmitting', function () {
+      return this.changeState({
+        submitted: false
+      });
+    })
+    .declareMethod('notifyError', function () {
+      return this.changeState({
+        loaded: true,
+        submitted: true,
+        error: true
+      });
+    })
+    .declareMethod('notifyChange', function () {
+      return this.changeState({
+        modified: true
+      });
+    })
+/*
+    .declareMethod('notifyUpdate', function () {
+      return this.render(this.stats.options);
+    })
+*/
+    .declareMethod('render', function (options) {
+      var state = {
+        error: false,
+        title_text: '',
+        title_icon: undefined,
+        title_url: undefined,
+        left_button_title: undefined,
+        left_button_icon: undefined,
+        left_button_name: undefined,
+        right_link_title: undefined,
+        right_link_icon: undefined,
+        right_link_url: undefined,
+        right_link_class: undefined,
+        right_button_title: undefined,
+        right_button_icon: undefined,
+        right_button_name: undefined
+      },
+        klass,
+        sub_header_list = [],
+        i;
+
+      // Main title
+      if (options.hasOwnProperty("page_title")) {
+        state.title_text = options.page_title;
+      }
+      if (options.hasOwnProperty("page_icon")) {
+        state.title_icon = options.page_icon;
+      }
+      for (i = 0; i < possible_main_link_list.length; i += 1) {
+        if (options.hasOwnProperty(possible_main_link_list[i][0])) {
+          state.title_icon = possible_main_link_list[i][2];
+          state.title_url = options[possible_main_link_list[i][0]];
+        }
+      }
+
+      // Left button
+      for (i = 0; i < possible_left_button_list.length; i += 1) {
+        if (options.hasOwnProperty(possible_left_button_list[i][0])) {
+          state.left_button_title = possible_left_button_list[i][1];
+          state.left_button_icon = possible_left_button_list[i][2];
+          state.left_button_name = possible_left_button_list[i][3];
+        }
+      }
+
+      // Handle right link
+      for (i = 0; i < possible_right_link_list.length; i += 1) {
+        if (options.hasOwnProperty(possible_right_link_list[i][0])) {
+          klass = "";
+          if (!options[possible_right_link_list[i][0]]) {
+            klass = "ui-disabled";
+          }
+          state.right_link_title = possible_right_link_list[i][1];
+          state.right_link_icon = possible_right_link_list[i][2];
+          state.right_link_url = options[possible_right_link_list[i][0]];
+          state.right_link_class = klass;
+        }
+      }
+      for (i = 0; i < possible_right_button_list.length; i += 1) {
+        if (options.hasOwnProperty(possible_right_button_list[i][0])) {
+          state.right_button_title = possible_right_button_list[i][1];
+          state.right_button_icon = possible_right_button_list[i][2];
+          state.right_button_name = possible_right_button_list[i][3];
+        }
+      }
+
+      // Sub header
+      for (i = 0; i < possible_sub_header_list.length; i += 1) {
+        if (options.hasOwnProperty(possible_sub_header_list[i][0])) {
+          klass = "";
+          if (!options[possible_sub_header_list[i][0]]) {
+            klass = "ui-disabled";
+          }
+          sub_header_list.push({
+            title: possible_sub_header_list[i][1],
+            icon: possible_sub_header_list[i][2],
+            url: options[possible_sub_header_list[i][0]],
+            class: klass
+          });
+        }
+      }
+      state.sub_header_list = sub_header_list;
+
+      return this.changeState(state);
+    })
+
+    .onStateChange(function (modification_dict) {
+      var gadget = this,
+        right_link,
+        right_button,
+        default_title_icon = "",
+        default_right_icon = "",
+        title_link,
+        promise_list = [];
+      // Main title
+      if (modification_dict.hasOwnProperty('error') ||
+          modification_dict.hasOwnProperty('loaded') ||
+          modification_dict.hasOwnProperty('submitted') ||
+          modification_dict.hasOwnProperty('title_text') ||
+          modification_dict.hasOwnProperty('title_icon') ||
+          modification_dict.hasOwnProperty('title_url')) {
+        if (gadget.state.error) {
+          default_title_icon = "exclamation";
+        } else if (!gadget.state.loaded) {
+          default_title_icon = "spinner";
+        } else if (!gadget.state.submitted) {
+          default_title_icon = "spinner";
+        }
+        // Updating globally the page title. Does not follow RenderJS philosophy, but, it is enough for now
+        document.title = gadget.state.title_text;
+        title_link = {
+          title: gadget.state.title_text,
+          icon: default_title_icon || gadget.state.title_icon,
+          url: gadget.state.title_url
+        };
+        if (title_link.url === undefined) {
+          promise_list.push(gadget.translateHtml(header_title_template(title_link)));
+        } else {
+          promise_list.push(gadget.translateHtml(header_title_link_template(title_link)));
+        }
+      } else {
+        promise_list.push(null);
+      }
+
+      // Left button
+      if (modification_dict.hasOwnProperty('left_button_title') ||
+          modification_dict.hasOwnProperty('left_button_icon') ||
+          modification_dict.hasOwnProperty('left_button_name')) {
+        if (gadget.state.left_button_title === undefined) {
+          promise_list.push("");
+        } else {
+          promise_list.push(gadget.translateHtml(header_button_template({
+            title: gadget.state.left_button_title,
+            icon: gadget.state.left_button_icon,
+            name: gadget.state.left_button_name
+          })));
+        }
+      } else {
+        promise_list.push(null);
+      }
+
+      // Handle right link
+      if (modification_dict.hasOwnProperty('loaded') ||
+          modification_dict.hasOwnProperty('submitted') ||
+          modification_dict.hasOwnProperty('modified') ||
+          modification_dict.hasOwnProperty('right_link_title') ||
+          modification_dict.hasOwnProperty('right_link_icon') ||
+          modification_dict.hasOwnProperty('right_link_url') ||
+          modification_dict.hasOwnProperty('right_link_class') ||
+          modification_dict.hasOwnProperty('right_button_title') ||
+          modification_dict.hasOwnProperty('right_button_icon')) {
+        if (gadget.state.modified) {
+          default_right_icon = "warning";
+        }
+        if (gadget.state.right_link_title !== undefined) {
+          right_link = {
+            title: gadget.state.right_link_title,
+            icon: gadget.state.right_link_icon,
+            url: gadget.state.right_link_url,
+            class: gadget.state.right_link_class
+          };
+        }
+        if (gadget.state.right_button_title !== undefined) {
+          right_button = {
+            title: gadget.state.right_button_title,
+            icon: default_right_icon || gadget.state.right_button_icon,
+            name: gadget.state.right_button_name
+          };
+          if (gadget.state.error || !gadget.state.loaded || !gadget.state.submitted) {
+            right_button.class = "ui-disabled";
+          }
+        }
+
+        if (right_button !== undefined) {
+          promise_list.push(gadget.translateHtml(header_button_template(right_button)));
+        } else if (right_link !== undefined) {
+          promise_list.push(gadget.translateHtml(header_link_template(right_link)));
+        } else {
+          promise_list.push("");
+        }
+      } else {
+        promise_list.push(null);
+      }
+
+      // Handle sub header
+      if (modification_dict.hasOwnProperty('sub_header_list')) {
+        promise_list.push(gadget.translateHtml(sub_header_template({
+          sub_header_list: gadget.state.sub_header_list
+        })));
+      } else {
+        promise_list.push(null);
+      }
+
+      return new RSVP.Queue()
+        .push(function () {
+          return RSVP.all(promise_list);
+        })
+        .push(function (result_list) {
+          var j;
+          for (j = 0; j < result_list.length; j += 1) {
+            if (result_list[j] !== null) {
+              gadget.props.element_list[j].innerHTML = result_list[j];
+            }
+          }
+        });
+    })
+
+    //////////////////////////////////////////////
+    // handle button submit
+    //////////////////////////////////////////////
+    .onEvent('submit', function (evt) {
+      var name = evt.target[0].getAttribute("name");
+      if (name === "panel") {
+        return this.triggerPanel();
+      }
+      if (name === "submit") {
+        return this.triggerSubmit();
+      }
+      throw new Error("Unsupported button " + name);
+    });
+
+}(window, rJS, Handlebars, document, RSVP));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_header_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_header_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..08fc0ce8631aa3805a25341aa30dee5ce9813d93
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_header_js.xml
@@ -0,0 +1,332 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Script" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/javascript</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_officejs_monitoring_header.js</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_officejs_monitoring_header_js</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value> <string>en</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Script</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Gadget Officejs Monitoring Header JS</string> </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506091331.03</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>962.38483.42476.54152</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1507899173.02</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506091309.21</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_jio_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_jio_html.html
similarity index 89%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_jio_html.html
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_jio_html.html
index 95901fbbb49199fc10fe4ecf5f1000d5cc0a3c67..de2f2c8152eeb107346ddd985e8a40427545f298 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_jio_html.html
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_jio_html.html
@@ -16,7 +16,7 @@
     <script src="monitoring_jio_http_storage.js" type="text/javascript"></script>
 
     <!-- custom script -->
-    <script src="gadget_monitoring_jio.js" type="text/javascript"></script>
+    <script src="gadget_officejs_monitoring_jio.js" type="text/javascript"></script>
 
   </head>
   <body>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_jio_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_jio_html.xml
similarity index 96%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_jio_html.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_jio_html.xml
index 22f2689beb17f007c7d41cd0a811562fbd5a990b..2f9acbe7e22cdacc967ebe79308b479a4a623a64 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_jio_html.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_jio_html.xml
@@ -80,7 +80,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_jio.html</string> </value>
+            <value> <string>gadget_officejs_monitoring_jio.html</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -88,7 +88,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_jio_html</string> </value>
+            <value> <string>gadget_officejs_monitoring_jio_html</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -106,7 +106,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Monitoring Jio Gadget</string> </value>
+            <value> <string>Officejs Monitoring Jio Gadget</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -237,7 +237,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.21883.33309.38348</string> </value>
+                <value> <string>962.48734.17927.8823</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -255,7 +255,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1502462750.17</float>
+                        <float>1507898792.09</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_jio_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_jio_js.js
similarity index 100%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_jio_js.js
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_jio_js.js
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_jio_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_jio_js.xml
similarity index 97%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_jio_js.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_jio_js.xml
index b8d2b387c0c046d5176c138885b191bca2f0cc35..1249340b8b0c28acf5ffc24a74b318543b70d44e 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_jio_js.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_jio_js.xml
@@ -80,7 +80,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_jio.js</string> </value>
+            <value> <string>gadget_officejs_monitoring_jio.js</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -90,7 +90,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_jio_js</string> </value>
+            <value> <string>gadget_officejs_monitoring_jio_js</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -239,7 +239,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.37911.38494.42700</string> </value>
+                <value> <string>962.48734.54444.887</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -257,7 +257,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1503418549.74</float>
+                        <float>1507899173.02</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_panel_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_panel_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..1fa9cd643e9fac87102ce86e2ca2a7ffd1361212
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_panel_html.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+    <meta name="viewport" content="width=device-width, user-scalable=no" />
+    <title>ERP5 Panel</title>
+    <!--
+      data-i18n=Editable
+    -->
+
+    <!-- renderjs -->
+    <script src="rsvp.js" type="text/javascript"></script>
+    <script src="renderjs.js" type="text/javascript"></script>
+    <script src="handlebars.js" type="text/javascript"></script>
+    <script src="gadget_global.js" type="text/javascript"></script>
+
+    <script id="panel-template-header" type="text/x-handlebars-template">
+      <div data-role="header" class="ui-bar-inherit">
+        <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-left">
+          <div class="ui-controlgroup-controls">
+            <button data-i18n="Close" class="ui-btn ui-btn-icon-notext ui-icon-delete">Close</button>
+          </div>
+        </div>
+        <div class="panel_img" style="height: 40px; padding: 5px;">
+          <img alt="Officejs Monitoring App" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAxIiBoZWlnaHQ9IjI2MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiA8Zz4KICA8dGl0bGU+YmFja2dyb3VuZDwvdGl0bGU+CiAgPHJlY3QgZmlsbD0ibm9uZSIgaWQ9ImNhbnZhc19iYWNrZ3JvdW5kIiBoZWlnaHQ9IjI2MyIgd2lkdGg9IjQwMyIgeT0iLTEiIHg9Ii0xIi8+CiA8L2c+CiA8Zz4KICA8dGl0bGU+TGF5ZXIgMTwvdGl0bGU+CiAgPHJlY3QgaWQ9InN2Z181IiBmaWxsPSIjRkZGRkZGIiB5PSIyMTcuNzk1NDA2IiB4PSIxNDIuODAwNjE0IiB3aWR0aD0iMTA4LjMwOCIgaGVpZ2h0PSIxOC45OTgiLz4KICA8cGF0aCBpZD0ic3ZnXzYiIGZpbGw9IiNGRkZGRkYiIGQ9Im0xNDEuOTkzODkyLDI0MC4zNDcxMjlsLTQuNzA2LDEwLjA5MmMwLDAgMC41MDIsMi45NTkgMi40NjUsMi45NTljMS45NywwIDExMS4yNzQsMCAxMTMuMjI5LDBjMS45NzgsMCAxLjk3OCwtMi45NTkgMS45NzgsLTIuOTU5bC00LjY4OCwtMTAuMDkybC0xMDguMjc4LDB6Ii8+CiAgPHBhdGggc3Ryb2tlPSJudWxsIiBpZD0ic3ZnXzciIGZpbGw9IiNGRkZGRkYiIGQ9Im0zMzguMzY2Mzg3LDc5LjM1NTAzN2M1LjUxMzgzNSwwIDEwLjgzNTA5MywwLjczODQwNiAxNS45MzgzODksMS45OTAxOTVsMCwtNjIuNzAxMTQxYzAsLTQuNTIzNzc2IC0zLjg3ODY4LC04LjIxMDgwNCAtOC42MTA4MjcsLTguMjEwODA0bC0yOTMuMDYxMzUxLDBjLTQuNzUxNDA1LDAgLTguNjI5MjA5LDMuNjg3MDI4IC04LjYyOTIwOSw4LjIxMDgwNGwwLDE2NC4zNzQ0MzNsMCwzLjg1Nzg3OGwwLDE5LjIyNjg4M2MwLDUuMDUzODI4IDMuODc4NjgsOS4yMTc1NjkgOC42MjkyMDksOS4yMTc1NjlsMjkzLjA2MTM1MSwwYzQuNzMyMTQ3LDAgOC42MTA4MjcsLTQuMTYzNzQxIDguNjEwODI3LC05LjIxNzU2OWwwLC03LjU0NDkwNmMtNS4xMDMyOTYsMS4yNTg0NTcgLTEwLjQyNDU1NCwyLjAwMTg2MyAtMTUuOTM4Mzg5LDIuMDAxODYzYy0xOS42NTY4OCwwIC0zNy4yNDM1NTQsLTguNTMyNTAyIC00OC45MzAzNjQsLTIxLjkwMTMxMmwtMjI4LjA5NzE4NSwwbDAsLTE0Ny44MDExNDNsMjc0Ljk0MzMzOSwwbDAsNDguNTg4OTI2YzAuNjk5NDA1LC0wLjAyNTAwMiAxLjM3ODY3OCwtMC4wOTE2NzYgMi4wODQyMSwtMC4wOTE2NzZ6Ii8+CiAgPHBhdGggc3Ryb2tlPSJudWxsIiBpZD0ic3ZnXzgiIGZpbGw9IiNGRkZGRkYiIGQ9Im0zNTIuNjYyNzIyLDg3Ljk4MzY0NGMtNC45MjE3NTEsLTEuMzg4NzUxIC0xMC4xMDU0OTYsLTIuMTU1NDY1IC0xNS40ODgyODksLTIuMTU1NDY1Yy0wLjY4NTYwOSwwIC0xLjM0NTY5OCwwLjA2NjIwOSAtMi4wMjUzNTIsMC4wOTU2MzVjLTI5LjU2MTk3OSwxLjAyOTkxNSAtNTMuMjEyMDcyLDI0LjMxMjUzNiAtNTMuMjEyMDcyLDUyLjk2ODY5OGMwLDE0Ljg5NTM1MiA2LjQwNDQwMSwyOC4zMjkyMDUgMTYuNjg0Mjc2LDM3Ljk2NzA4NWM5Ljk1NTc4NSw5LjMzOTUzMiAyMy41NDM3NjUsMTUuMDk5NyAzOC41NTIyOTgsMTUuMDk5N2M1LjM4Mjc5MywwIDEwLjU2NjUzOCwtMC43NjY3MTUgMTUuNDg4Mjg5LC0yLjE0NDAyMmMyMi45NjQ0ODUsLTYuNDQxODc0IDM5Ljc0OTEzNiwtMjYuNzcyODg5IDM5Ljc0OTEzNiwtNTAuOTIyNzYzYzAsLTI0LjEzNTk3OSAtMTYuNzgzOCwtNDQuNDc5MjU0IC0zOS43NDgyODUsLTUwLjkwODg2N3oiLz4KICA8cGF0aCBpZD0ic3ZnXzEwIiBmaWxsPSIjM0Q1NzZCIiBkPSJtMzM2Ljg3ODM0MSwxNjcuMzA5MTgzbC0zLjcyOCwwYy0wLjgyLDAgLTEuNDk0LDAuNjc0IC0xLjQ5NCwxLjUxbDAsMTIuMTQzYzAsMC44MzYgMC42NzQsMS41MjMgMS40OTQsMS41MjNsMy43MjgsMGMwLjg0MiwwIDEuNTIzLC0wLjY4OCAxLjUyMywtMS41MjNsMCwtMTIuMTQzYzAuMDAxLC0wLjgzNiAtMC42ODEsLTEuNTEgLTEuNTIzLC0xLjUxeiIvPgogIDxwYXRoIGlkPSJzdmdfMTEiIGZpbGw9IiMzRDU3NkIiIGQ9Im0zMDQuMTQ2MzkzLDE0MC4xNzAxMjdsLTEyLjE2NSwwYy0wLjg0MywwIC0xLjUwMiwwLjY2IC0xLjUwMiwxLjQ5NGwwLDMuNzM2YzAsMC44MiAwLjY1OSwxLjUwOCAxLjUwMiwxLjUwOGwxMi4xNjUsMGMwLjgyLDAgMS41MDksLTAuNjg4IDEuNTA5LC0xLjUwOGwwLC0zLjczNmMwLC0wLjgzNCAtMC42ODksLTEuNDk0IC0xLjUwOSwtMS40OTR6Ii8+CiAgPHBhdGggaWQ9InN2Z18xMiIgZmlsbD0iIzNENTc2QiIgZD0ibTMzNi4zODM1MDQsMTExLjU2MzAxNWwzLjcyOCwwYzAuODQyLDAgMS41MjMsLTAuNjc0IDEuNTIzLC0xLjUwOWwwLC0xMi4xNThjMCwtMC44MzUgLTAuNjgyLC0xLjUxNyAtMS41MjMsLTEuNTE3bC0zLjcyOCwwYy0wLjgyLDAgLTEuNDk0LDAuNjgyIC0xLjQ5NCwxLjUxN2wwLDEyLjE1OGMwLDAuODM1IDAuNjczLDEuNTA5IDEuNDk0LDEuNTA5eiIvPgogIDxwYXRoIHN0cm9rZT0ibnVsbCIgaWQ9InN2Z18xMyIgZmlsbD0iIzNENTc2QiIgZD0ibTM1MS43MDI3MzEsMTQ3LjczODc2M2wtNy4yNTE3MzIsLTMuODUxMzk5YzAuMTI2NjU3LC0wLjUyMTIwNiAwLjIwNjEyOCwtMS4wNjQ1MjUgMC4yMDYxMjgsLTEuNjE5Njg4YzAsLTMuODY3MTk0IC0zLjMwNDY3MSwtNy4wMDIzMjkgLTcuMzU1MjEsLTcuMDAyMzI5Yy0wLjYzNjU5NiwwIC0xLjI1NDk4LDAuMDkyMzk2IC0xLjg0ODUyOSwwLjIyNjY0NmwtMC43OTQ3MSwtMC45NzEzMzlsLTE2Ljk4Mjc5NCwtMjAuODIyOTg1Yy0wLjM4ODI0OSwtMC40OTc1MTUgLTEuMTM5OTEzLC0wLjU3MjUzNyAtMS42NDkwMjQsLTAuMjAyMTY1bC0yLjI5MjI0MywxLjcwNTc2NmMtMC41MDkxMTEsMC4zNjQ4NDQgLTAuNjAwMTcyLDEuMDc1NTggLTAuMjA2MTI4LDEuNTYyMDRsMTcuNjQzMzk3LDIxLjY0OTAxOWMtMC43NjQwODEsMS4xMTM0ODYgLTEuMjEyNzYxLDIuNDMyMjk3IC0xLjIxMjc2MSwzLjg1NjEzOGMwLDIuOTcyNDU2IDEuOTU3ODAyLDUuNDgyOTMzIDQuNjk4NzI1LDYuNTAxNjU1YzAuODMxMTM1LDAuMzExOTM0IDEuNzA0NDg4LDAuNTA5MzYxIDIuNjQzMjQsMC41MDkzNjFjMS41NTg3OTEsMCAyLjk5NTg5MiwtMC40NjI3NjggNC4xNzgwMjQsLTEuMjM4MjZsMTAuMjIyNzksNS40MjYwNzVsMTUuNDI0ODMxLDguMjEyOTQ5YzAuNTU3OTUzLDAuMzExOTM0IDEuMjczMTkyLDAuMTE1Mjk3IDEuNTg4NTkzLC0wLjQzOTg2N2wxLjQxODg4OSwtMi40MDYyMzZjMC4zMTU0MDEsLTAuNTMyMjYyIDAuMTA5MjczLC0xLjIxNTM1OSAtMC40NTUzMDMsLTEuNTI3MjkzbC0xNy45NzYxODIsLTkuNTY4MDg2eiIvPgogIDxwYXRoIGlkPSJzdmdfMTQiIGZpbGw9IiMzRDU3NkIiIGQ9Im0zODIuMzc1NjE2LDEzOC4wMTQ2ODJsLTEyLjE1OCwwYy0wLjgzNSwwIC0xLjUwOSwwLjY2IC0xLjUwOSwxLjQ5NGwwLDMuNzM2YzAsMC44MiAwLjY3NCwxLjUwOCAxLjUwOSwxLjUwOGwxMi4xNTgsMGMwLjgzNSwwIDEuNTA5LC0wLjY4OCAxLjUwOSwtMS41MDhsMCwtMy43MzZjLTAuMDAxLC0wLjgzNCAtMC42NzQsLTEuNDk0IC0xLjUwOSwtMS40OTR6Ii8+CiAgPHBhdGggaWQ9InN2Z18xNSIgZmlsbD0iI0ZGRkZGRiIgZD0ibTIzOS43MzIxNjgsMTE1LjU1MDEyN2wtMTIwLjQsMGwwLC0yMi43NDlsMTIwLjQsMGwwLDIyLjc0OXptMzkuMjYxLC00MS40NjJsMCw5LjY1M2wwLDQwLjg2MWwwLDguODI1bDAsMC44NDRsLTE3OC44NjEsMGwwLC02MC4xODRsMTY3LjkzMywwbDEwLjkyOCwwbDAsMC4wMDF6bS0xMC45MjgsOS42NTNsLTE1Ni4xNjcsMGwwLDQwLjg2MWwxNTYuMTY3LDBsMCwtNDAuODYxeiIvPgogPC9nPgo8L3N2Zz4=">
+        </div>
+      </div>
+    </script>
+
+    <script id="panel-template-body" type="text/x-handlebars-template">
+      <div class="ui-content">
+
+        <form class="dialog_form">
+          <button type="submit" class="ui-btn ui-btn-b ui-btn-inline
+                                       ui-icon-action ui-btn-icon-right ui-screen-hidden">Submit</button>
+          <div data-gadget-url="gadget_erp5_searchfield.html"
+               data-gadget-scope="erp5_searchfield"
+               data-gadget-sandbox="public"></div>
+        </form>
+        <ul data-role="listview" class="ui-listview" data-enhanced="true"></ul>
+        <dl></dl>
+      </div>
+    </script>
+
+    <script id="panel-template-body-list" type="text/x-handlebars-template">
+          <li class="ui-first-child"><a href="{{promise_list_href}}" class="ui-btn ui-btn-icon-left ui-icon-check" data-i18n="Promises" accesskey="p">Promises</a></li>
+          <li><a href="{{instance_list_href}}" class="ui-btn ui-btn-icon-left ui-icon-cube" data-i18n="Software Instances">Software Instances</a></li>
+          <li><a href="{{hosting_list_href}}" class="ui-btn ui-btn-icon-left ui-icon-cubes" data-i18n="Hosting Subscriptions">Hosting Subscriptions</a></li>
+          <li><a href="{{configurator_href}}" class="ui-btn ui-btn-icon-left ui-icon-gear" data-i18n="Monitoring Configurations">Monitoring Configurations</a></li>
+          <li><a href="{{synchronize_href}}" class="ui-btn ui-btn-icon-left ui-icon-refresh" data-i18n="Synchronize" accesskey="r">Synchronize</a></li>
+          <li class="ui-last-child"><a href="{{import_export_href}}" class="ui-btn ui-btn-icon-left ui-icon-exchange" data-i18n="Import / Export">Import / Export</a></li>
+    </script>
+
+    <script id="panel-template-body-desktop" type="text/x-handlebars-template">
+        <dt class="ui-content-title ui-body-c ui-btn ui-btn-icon-left ui-icon-eye" data-i18n="Views">Views</dt>
+        {{#each view_list}}
+        <dd data-role="listview" data-theme="c" data-inset="true" class="document-listview">
+          <a data-i18n="{{title}}" class="ui-body-inherit" href="{{href}}">{{title}}</a>
+        </dd>
+        {{/each}}
+        <dt class="ui-content-title ui-body-c  ui-btn ui-btn-icon-left ui-icon-cogs" data-i18n="Decisions">Decisions</dt>
+        {{#each workflow_list}}
+        <dd data-role="listview" data-theme="c" data-inset="true" class="document-listview">
+          <a data-i18n="{{title}}" class="ui-body-inherit" href="{{href}}">{{title}}</a>
+        </dd>
+        {{/each}}
+    </script>
+
+    <!-- custom script -->
+    <script src="gadget_officejs_monitoring_panel.js" type="text/javascript"></script>
+
+  </head>
+  <body>
+  <div data-gadget-url="gadget_officejs_monitoring_sync.html" data-gadget-scope="sync_gadget" data-gadget-sandbox="public"></div>
+  <div class="jqm-navmenu-panel"></div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_panel_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_panel_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..403aecc114c8273d7c78bb7fdc55c3c1b43eb332
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_panel_html.xml
@@ -0,0 +1,366 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Page" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>contributor/person_module/1</string>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>creators</string> </key>
+            <value>
+              <tuple>
+                <string>cedric.le.ninivin</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_officejs_monitoring_panel.html</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_officejs_monitoring_panel_html</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value> <string>en</string> </value>
+        </item>
+        <item>
+            <key> <string>modification_date</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="DateTime" module="DateTime.DateTime"/>
+                </klass>
+                <tuple>
+                  <none/>
+                </tuple>
+                <state>
+                  <tuple>
+                    <float>1455284352.46</float>
+                    <string>UTC</string>
+                  </tuple>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Page</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>OfficeJS Monitoring Application Panel Gadget</string> </value>
+        </item>
+        <item>
+            <key> <string>url_string</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506002303.54</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>963.2027.58161.62429</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1509031392.08</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506002246.15</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_panel_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_panel_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..b97c39a6b90bea86863d2b2d7b5c8e5d500b08ed
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_panel_js.js
@@ -0,0 +1,319 @@
+/*jslint nomen: true, indent: 2, maxerr: 3, unparam: true */
+/*global window, document, rJS, Handlebars, RSVP, Node, loopEventListener */
+(function (window, document, rJS, Handlebars, RSVP, Node, loopEventListener) {
+  "use strict";
+
+  /////////////////////////////////////////////////////////////////
+  // temlates
+  /////////////////////////////////////////////////////////////////
+  // Precompile templates while loading the first gadget instance
+  var gadget_klass = rJS(window),
+    template_element = gadget_klass.__template_element,
+    panel_template_header = Handlebars.compile(template_element
+                         .getElementById("panel-template-header")
+                         .innerHTML),
+    panel_template_body = Handlebars.compile(template_element
+                         .getElementById("panel-template-body")
+                         .innerHTML),
+    panel_template_body_list = Handlebars.compile(template_element
+                         .getElementById("panel-template-body-list")
+                         .innerHTML),
+    panel_template_body_desktop = Handlebars.compile(template_element
+                                  .getElementById("panel-template-body-desktop")
+                                  .innerHTML);
+
+  gadget_klass
+    .setState({
+      visible: false,
+      desktop: false
+    })
+    //////////////////////////////////////////////
+    // acquired method
+    //////////////////////////////////////////////
+    .declareAcquiredMethod("getUrlFor", "getUrlFor")
+    .declareAcquiredMethod("translateHtml", "translateHtml")
+    .declareAcquiredMethod("translate", "translate")
+    .declareAcquiredMethod("redirect", "redirect")
+    .declareAcquiredMethod("getUrlParameter", "getUrlParameter")
+
+    /////////////////////////////////////////////////////////////////
+    // declared methods
+    /////////////////////////////////////////////////////////////////
+    .declareMethod('toggle', function () {
+      return this.changeState({
+        visible: !this.state.visible
+      });
+    })
+    .declareMethod('close', function () {
+      return this.changeState({
+        visible: false
+      });
+    })
+
+    .declareMethod('render', function (options) {
+      var erp5_document = options.erp5_document,
+        workflow_list,
+        view_list,
+        context = this;
+      if (erp5_document !== undefined) {
+        workflow_list = erp5_document._links.action_workflow || [];
+        view_list = erp5_document._links.action_object_view || [];
+        if (workflow_list.constructor !== Array) {
+          workflow_list = [workflow_list];
+        }
+        if (view_list.constructor !== Array) {
+          view_list = [view_list];
+        }
+        // Prevent has much as possible to modify the DOM panel
+        // stateChange prefer to compare strings
+        workflow_list = JSON.stringify(workflow_list);
+        view_list = JSON.stringify(view_list);
+      }
+      return context.getUrlParameter('editable')
+        .push(function (editable) {
+          return context.changeState({
+            workflow_list: workflow_list,
+            view_list: view_list,
+            global: true,
+            editable: options.editable || editable || false
+          });
+        });
+    })
+
+    .onStateChange(function (modification_dict) {
+      var context = this,
+        gadget = this,
+        queue = new RSVP.Queue(),
+        tmp_element;
+
+      // XXX - fix double rendering
+      if (Object.keys(modification_dict).length === 0) {
+        return;
+      }
+
+      if (modification_dict.hasOwnProperty("visible")) {
+        if (this.state.visible) {
+          if (!this.element.classList.contains('visible')) {
+            this.element.classList.toggle('visible');
+          }
+        } else {
+          if (this.element.classList.contains('visible')) {
+            this.element.classList.remove('visible');
+          }
+        }
+      }
+
+      if (modification_dict.hasOwnProperty("global") &&
+          !modification_dict.hasOwnProperty("desktop")) {
+        queue
+          .push(function () {
+            // XXX: Customize panel header!
+            return context.translateHtml(
+              panel_template_header() +
+                panel_template_body()
+            );
+          })
+          .push(function (my_translated_or_plain_html) {
+            tmp_element = document.createElement('div');
+            tmp_element.innerHTML = my_translated_or_plain_html;
+
+            return context.declareGadget('gadget_erp5_searchfield.html', {
+              scope: "erp5_searchfield",
+              element: tmp_element.querySelector('[data-gadget-scope="erp5_searchfield"]')
+            });
+          })
+          .push(function (search_gadget) {
+            return search_gadget.render({
+              focus: false
+            });
+          })
+
+          .push(function () {
+            context.element.querySelector("div").appendChild(tmp_element);
+            return context.listenResize();
+          });
+      }
+
+      if (modification_dict.hasOwnProperty("editable")) {
+        queue
+          // Update the global links
+          .push(function () {
+            return RSVP.all([
+              context.getUrlFor({command: 'display', options: {page: "ojsm_status_list"}}),
+              context.getUrlFor({command: 'display', options: {page: "ojsm_software_instance_list"}}),
+              context.getUrlFor({command: 'display', options: {page: "ojsm_hosting_subscription_list"}}),
+              context.getUrlFor({command: 'display', options: {page: "settings_configurator"}}),
+              context.getUrlFor({command: 'display', options: {page: "ojsm_import_export"}}),
+              context.getUrlFor({command: 'display', options: {page: "ojsm_synchronize"}})
+            ]);
+          })
+          .push(function (result_list) {
+            return context.translateHtml(
+              panel_template_body_list({
+                "promise_list_href": result_list[0],
+                "instance_list_href": result_list[1],
+                "hosting_list_href": result_list[2],
+                "configurator_href": result_list[3],
+                "import_export_href": result_list[4],
+                "synchronize_href": result_list[5]
+              })
+            );
+          })
+
+          .push(function (result) {
+            context.element.querySelector("ul").innerHTML = result;
+          });
+      }
+
+      if ((this.state.global === true) &&
+          (modification_dict.hasOwnProperty("desktop") ||
+          modification_dict.hasOwnProperty("editable") ||
+          modification_dict.hasOwnProperty("workflow_list") ||
+          modification_dict.hasOwnProperty("view_list"))) {
+        if (!(this.state.desktop && (this.state.view_list !== undefined))) {
+          queue
+            .push(function () {
+              gadget.element.querySelector("dl").textContent = '';
+            });
+        } else {
+          queue
+            .push(function () {
+              var i = 0,
+                promise_list = [],
+                workflow_list = JSON.parse(gadget.state.workflow_list),
+                view_list = JSON.parse(gadget.state.view_list);
+
+              for (i = 0; i < workflow_list.length; i += 1) {
+                promise_list.push(
+                  gadget.getUrlFor({
+                    command: 'change',
+                    options: {
+                      view: workflow_list[i].href,
+                      page: undefined
+                    }
+                  })
+                );
+              }
+              for (i = 0; i < view_list.length; i += 1) {
+                promise_list.push(
+                  gadget.getUrlFor({
+                    command: 'change',
+                    options: {
+                      view: view_list[i].href,
+                      page: undefined
+                    }
+                  })
+                );
+              }
+              return RSVP.all(promise_list);
+            })
+            .push(function (result_list) {
+              var i,
+                result_workflow_list = [],
+                result_view_list = [],
+                workflow_list = JSON.parse(gadget.state.workflow_list),
+                view_list = JSON.parse(gadget.state.view_list);
+
+              for (i = 0; i < workflow_list.length; i += 1) {
+                result_workflow_list.push({
+                  title: workflow_list[i].title,
+                  href: result_list[i]
+                });
+              }
+              for (i = 0; i < view_list.length; i += 1) {
+                result_view_list.push({
+                  title: view_list[i].title,
+                  href: result_list[i + workflow_list.length]
+                });
+              }
+              gadget.element.querySelector("dl").innerHTML = panel_template_body_desktop({
+                workflow_list: result_workflow_list,
+                view_list: result_view_list
+              });
+            });
+        }
+      }
+
+      return queue;
+    })
+
+    /////////////////////////////////////////////////////////////////
+    // declared services
+    /////////////////////////////////////////////////////////////////
+    .onEvent('click', function (evt) {
+      if ((evt.target.nodeType === Node.ELEMENT_NODE) &&
+          (evt.target.tagName === 'BUTTON')) {
+        return this.toggle();
+      }
+    }, false, false)
+
+    .declareJob('listenResize', function () {
+      // resize should be only trigger after the render method
+      // as displaying the panel rely on external gadget (for translation for example)
+      var result,
+        event,
+        context = this;
+      function extractSizeAndDispatch() {
+        if (window.matchMedia("(min-width: 85em)").matches) {
+          return context.changeState({
+            desktop: true
+          });
+        }
+        return context.changeState({
+          desktop: false
+        });
+      }
+      result = loopEventListener(window, 'resize', false,
+                                 extractSizeAndDispatch);
+      event = document.createEvent("Event");
+      event.initEvent('resize', true, true);
+      window.dispatchEvent(event);
+      return result;
+    })
+    .declareService(function () {
+      return this.getDeclaredGadget("sync_gadget")
+        .push(function (sync_gadget) {
+          return sync_gadget.registerSync();
+        });
+    })
+
+    .allowPublicAcquisition('notifyChange', function (argument_list, scope) {
+      // Typing a search query should not modify the header status
+      return;
+    })
+    .allowPublicAcquisition('notifyValid', function () {
+      // Typing a search query should not modify the header status
+      return;
+    })
+
+    .onEvent('submit', function () {
+      var gadget = this;
+
+      return gadget.getDeclaredGadget("erp5_searchfield")
+        .push(function (search_gadget) {
+          return search_gadget.getContent();
+        })
+        .push(function (data) {
+          var options = {
+            page: "ojsm_status_list"
+          };
+          if (data.search) {
+            options.extended_search = data.search;
+          }
+          // Remove focus from the search field
+          document.activeElement.blur();
+          return gadget.redirect({command: 'display', options: options});
+        });
+
+    }, false, true)
+
+    .onEvent('blur', function (evt) {
+      // XXX Horrible hack to clear the search when focus is lost
+      // This does not follow renderJS design, as a gadget should not touch
+      // another gadget content
+      if (evt.target.type === 'search') {
+        evt.target.value = "";
+      }
+    }, true, false);
+
+}(window, document, rJS, Handlebars, RSVP, Node, loopEventListener));
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_panel_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_panel_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0d3469fcb9833927527347079d16571c348a2f82
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_panel_js.xml
@@ -0,0 +1,332 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Script" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/javascript</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_officejs_monitoring_panel.js</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>gadget_officejs_monitoring_panel_js</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value> <string>en</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Script</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Gadget Officejs Monitoring Panel JS</string> </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506003162.94</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>962.52822.35420.57019</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1509093907.79</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1506003139.6</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_parameter_view_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_parameter_view_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..331f1ef3fbc86f7e9e2893e8a9f785d29b71eb21
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_parameter_view_html.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+    <meta name="viewport" content="width=device-width, user-scalable=no" />
+    <title>Monitoring Instance Parameters View Page</title>
+
+    <!-- renderjs -->
+    <script src="rsvp.js" type="text/javascript"></script>
+    <script src="renderjs.js" type="text/javascript"></script>
+
+    <!-- custom script -->
+    <script src="gadget_officejs_monitoring_parameter_view.js" type="text/javascript"></script>
+
+  </head>
+  <body>
+    <div data-gadget-url="gadget_officejs_monitoring_jio.html" data-gadget-scope="jio_gadget" data-gadget-sandbox="public"></div>
+    <h3 class="parameter-box-title"></h3>
+    <form class="save_form ui-body-c" novalidate>
+      <button type="submit" class="ui-btn ui-btn-b ui-btn-inline
+        ui-icon-edit ui-btn-icon-right ui-screen-hidden"></button>
+      <div data-gadget-url="gadget_erp5_form.html"
+              data-gadget-scope="form_view"
+              data-gadget-sandbox="public">
+      </div>
+    </form>
+  </body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_parameter_view_html.xml
similarity index 94%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_html.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_parameter_view_html.xml
index a214fc1af41f7ad31abd9d215894df149aa746dc..b10275dee84610a52a2cae71b02dc9851938b5a8 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_html.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_parameter_view_html.xml
@@ -64,7 +64,7 @@
             <key> <string>categories</string> </key>
             <value>
               <tuple>
-                <string>classification/collaborative/team</string>
+                <string>classification/collaborative/public</string>
               </tuple>
             </value>
         </item>
@@ -80,15 +80,15 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_document_edit.html</string> </value>
+            <value> <string>gadget_officejs_monitoring_parameter_view.html</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
-            <value> <string>Document Edit widget</string> </value>
+            <value> <string>Parameter View/edit widget</string> </value>
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_document_edit_html</string> </value>
+            <value> <string>gadget_officejs_monitoring_parameter_view_html</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -106,7 +106,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Monitoring Document Edit widget</string> </value>
+            <value> <string>Officejs Monitoring Parameters view widget</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -237,7 +237,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.40703.61920.55040</string> </value>
+                <value> <string>962.48796.46496.25958</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -255,7 +255,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1503583997.49</float>
+                        <float>1507902529.61</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_parameter_view_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_parameter_view_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..cf84bee32e02769c8c5e8e5735f03c7ce258acb6
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_parameter_view_js.js
@@ -0,0 +1,141 @@
+/*global window, rJS */
+/*jslint nomen: true, indent: 2, maxerr: 3*/
+(function (window, rJS) {
+  "use strict";
+
+
+rJS(window)
+    .ready(function (gadget) {
+      gadget.props = {};
+      return gadget.getDeclaredGadget("jio_gadget")
+        .push(function (jio_gadget) {
+          gadget.props.jio_gadget = jio_gadget;
+          gadget.props.parameters = {};
+        });
+    })
+    .declareMethod("render", function (options) {
+      var gadget = this;
+      return new RSVP.Queue()
+      .push(function () {
+          gadget.props.jio_gadget.createJio({
+            type: "query",
+            sub_storage: {
+              type: "drivetojiomapping",
+              sub_storage: {
+                type: "dav",
+                url: options.url,
+                basic_login: options.basic_login
+              }
+            }
+          });
+          return gadget.changeState({
+            parameter_list: options.parameters,
+            save_to: 'config.tmp',
+            document_key: 'config',
+            url: options.url,
+            title: options.title || '',
+            key: new Date().getUTCMilliseconds()
+          });
+        });
+    })
+
+    .onStateChange(function (change_dict) {
+      var gadget = this;
+      // render parameter form
+      if (!change_dict.hasOwnProperty('key')) {
+        return;
+      }
+      gadget.element.querySelector('.parameter-box-title').textContent =
+        gadget.state.title;
+      return gadget.getDeclaredGadget('form_view')
+        .push(function (form_gadget) {
+          var i,
+            parameter_dict = {},
+            group_list = [[
+                "left",
+                []
+              ],
+              [
+                "right",
+                []
+              ]];
+          for (i = 0; i < gadget.state.parameter_list.length; i += 1) {
+            parameter_dict[gadget.state.parameter_list[i].title] = {
+              "description": "",
+              "title": gadget.state.parameter_list[i].title.replace(/-/g, ' '),
+              "default": gadget.state.parameter_list[i].value,
+              "css_class": "",
+              "required": 0,
+              "editable": (gadget.state.parameter_list[i].key === '' ||
+                gadget.state.parameter_list[i].key === "monitor-password") ? 0 : 1,
+              "key": gadget.state.key + '_' +
+                gadget.state.parameter_list[i].title,
+              "hidden": 0,
+              "type": "StringField" // for now everything are stringField
+            };
+            group_list[i%2][1].push([gadget.state.parameter_list[i].title]);
+          }
+          return form_gadget.render({
+            erp5_document: {
+              "_embedded": {"_view": parameter_dict},
+              "_links": {
+                "type": {
+                  // form_list display portal_type in header
+                  name: ""
+                }
+              }
+            },
+            form_definition: {
+              group_list: group_list
+            }
+          });
+        });
+    })
+    .declareMethod("getLiveParameters", function () {
+      var gadget = this;
+      return this.props.jio_gadget.get(this.state.document_key)
+        .push(function (result) {
+          return gadget.changeState({parameter_list: result})
+            .push(function () {
+              return {status: "OK", doc: result};
+            });
+        }, function (error) {
+          return {status: "ERROR", code: error.target.status,
+                  url: gadget.state.url, stage: "Getting file"};
+        });
+    })
+    .declareMethod("getContent", function () {
+      return this.getDeclaredGadget('form_view')
+        .push(function (form_gadget) {
+          return form_gadget.getContent();
+        });
+    })
+    .declareMethod("saveContent", function () {
+      var gadget = this;
+      return this.getDeclaredGadget('form_view')
+        .push(function (form_gadget) {
+          return form_gadget.getContent();
+        })
+        .push(function (doc) {
+          var parameter_dict = {},
+            parameter_list = JSON.parse(JSON.stringify(gadget.state.parameter_list)),
+            key,
+            i;
+          for (i = 0; i < parameter_list.length; i += 1) {
+            key = gadget.state.key + '_' + parameter_list[i].title;
+            if (doc.hasOwnProperty(key)) {
+              parameter_list[i].value = doc[key];
+            }
+          }
+          return gadget.props.jio_gadget.put(gadget.state.save_to, parameter_list);
+        })
+        .push(function () {
+          return {status: 'OK'};
+        }, function (error) {
+          console.log(error);
+          return {status: 'ERROR', code: error.target.status,
+                  url: gadget.state.url, stage: "Saving file"};
+        });
+    });
+
+}(window, rJS));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_parameter_view_js.xml
similarity index 96%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_js.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_parameter_view_js.xml
index 550afc83d9275b06c47cded0b8f9e73fb37b34dc..4caaac0123db4b30733a5cc3d851dd745aa7ec49 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_js.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_parameter_view_js.xml
@@ -80,7 +80,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_document_edit.js</string> </value>
+            <value> <string>gadget_officejs_monitoring_parameter_view.js</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -90,7 +90,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_document_edit_js</string> </value>
+            <value> <string>gadget_officejs_monitoring_parameter_view_js</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -108,7 +108,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Monitoring Document Edit Widget JS</string> </value>
+            <value> <string>Monitoring Parameter View Widget JS</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -239,7 +239,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.40921.12598.30395</string> </value>
+                <value> <string>962.48797.18350.58214</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -257,7 +257,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1503585066.29</float>
+                        <float>1507902562.82</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_router_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_router_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..62997cf8e95587d73edccc023d0a2243df4ab35b
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_router_html.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+    <meta name="viewport" content="width=device-width, user-scalable=no" />
+    <title>OfficeJS Router Gadget</title>
+
+    <!-- renderjs -->
+    <script src="rsvp.js" type="text/javascript"></script>
+    <script src="renderjs.js" type="text/javascript"></script>
+
+    <!-- custom script -->
+    <script src="gadget_officejs_router.js" type="text/javascript"></script>
+
+  </head>
+  <body>
+    <script data-renderjs-configuration="portal_type" type="text/x-renderjs-configuration">opml</script>
+    <script data-renderjs-configuration="parent_relative_url" type="text/x-renderjs-configuration">opml_module</script>
+    <script data-renderjs-configuration="document_title" type="text/x-renderjs-configuration">Monitoring Tool</script>
+    <script data-renderjs-configuration="document_title_plural" type="text/x-renderjs-configuration">Monitoring Apps</script>
+    <script data-renderjs-configuration="erp5_attachment_synchro" type="text/x-renderjs-configuration"></script>
+    <script data-renderjs-configuration="global_setting_gadget_url" type="text/x-renderjs-configuration">../officejs_setting_gadget/app/</script>
+    <div data-gadget-url="gadget_erp5_router.html" data-gadget-scope="erp5_router"></div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_monitoring_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_router_html.xml
similarity index 87%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_monitoring_html.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_router_html.xml
index 43cdecef0544904c29fdf1f8c865a6126f1b9e22..006717f3482fbfc53c41460b6949b1ce15380692 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_monitoring_html.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_router_html.xml
@@ -67,6 +67,7 @@
             <key> <string>categories</string> </key>
             <value>
               <tuple>
+                <string>contributor/person_module/1</string>
                 <string>classification/collaborative/team</string>
               </tuple>
             </value>
@@ -81,22 +82,51 @@
             <key> <string>content_type</string> </key>
             <value> <string>text/html</string> </value>
         </item>
+        <item>
+            <key> <string>creators</string> </key>
+            <value>
+              <tuple>
+                <string>cedric.le.ninivin</string>
+              </tuple>
+            </value>
+        </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>monitoring_launcher.html</string> </value>
+            <value> <string>gadget_officejs_monitoring_router.html</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
-            <value> <string>Starting Point</string> </value>
+            <value>
+              <none/>
+            </value>
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>rjs_gadget_monitoring_html</string> </value>
+            <value> <string>gadget_officejs_monitoring_router_html</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
             <value> <string>en</string> </value>
         </item>
+        <item>
+            <key> <string>modification_date</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="DateTime" module="DateTime.DateTime"/>
+                </klass>
+                <tuple>
+                  <none/>
+                </tuple>
+                <state>
+                  <tuple>
+                    <float>1455284352.21</float>
+                    <string>UTC</string>
+                  </tuple>
+                </state>
+              </object>
+            </value>
+        </item>
         <item>
             <key> <string>portal_type</string> </key>
             <value> <string>Web Page</string> </value>
@@ -108,12 +138,14 @@
             </value>
         </item>
         <item>
-            <key> <string>text_content_substitution_mapping_method_id</string> </key>
-            <value> <string>WebPage_getRenderJSSubstitutionMappingDict</string> </value>
+            <key> <string>title</string> </key>
+            <value> <string>OfficeJS Monitoring router Gadget</string> </value>
         </item>
         <item>
-            <key> <string>title</string> </key>
-            <value> <string>Monitoring Application Launcher</string> </value>
+            <key> <string>url_string</string> </key>
+            <value>
+              <none/>
+            </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -199,7 +231,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1502456386.86</float>
+                        <float>1506001096.2</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -244,7 +276,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.46449.45833.54135</string> </value>
+                <value> <string>962.47406.45080.56866</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -262,7 +294,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1503930399.38</float>
+                        <float>1507819282.45</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -319,7 +351,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1502456091.69</float>
+                        <float>1506000938.79</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_sync_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_sync_html.html
similarity index 55%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_sync_html.html
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_sync_html.html
index a6d09c3bae31cf9fc7912660e185b51aa27e7b4f..89a34e508abb63862166cf2eaf049db4dc4e962c 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_sync_html.html
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_sync_html.html
@@ -6,17 +6,15 @@
 
     <title>Monitoring Sync Data</title>
 
-    <link href="gadget_monitoring_custom.css" rel="stylesheet" type="text/css"/>
-
-    <script src="notify.min.js"></script>
     <script src="rsvp.js"></script>
     <script src="renderjs.js"></script>
+    <script src="jquery.js" type="text/javascript"></script>
+    <script src="notify.min.js"></script>
 
-    <script src="gadget_monitoring_sync.js"></script>
+    <script src="gadget_officejs_monitoring_sync.js"></script>
 
   </head>
 
   <body>
-    <!--<div data-gadget-url="gadget_monitoring_log_widget.html" data-gadget-scope="log_gadget" data-gadget-sandbox="public"></div>-->
   </body>
 </html>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_sync_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_sync_html.xml
similarity index 96%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_sync_html.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_sync_html.xml
index f5642814604b05dc44e0a7640ccc5690815a958a..0bafa6b60d9ce53395f022a9059376ee28ba1c4b 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_sync_html.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_sync_html.xml
@@ -83,7 +83,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_sync.html</string> </value>
+            <value> <string>gadget_officejs_monitoring_sync.html</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -93,7 +93,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_sync_html</string> </value>
+            <value> <string>gadget_officejs_monitoring_sync_html</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -113,7 +113,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Monitoring Sync Data</string> </value>
+            <value> <string>Officejs Monitoring Sync Data</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -246,7 +246,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.17654.34815.58385</string> </value>
+                <value> <string>962.48761.27674.29661</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -264,7 +264,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1502210539.52</float>
+                        <float>1507900413.18</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_sync_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_sync_js.js
similarity index 87%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_sync_js.js
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_sync_js.js
index 4061360a2a3578d652f301abf16d9d4d2be3fe58..e98c88fa51e5feb18148cb3e092a09b829e346c7 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_sync_js.js
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_sync_js.js
@@ -1,6 +1,6 @@
-/*global window, rJS, RSVP, $, clearTimeout, setTimeout, console, XMLHttpRequest, document */
+/*global window, rJS, RSVP, clearTimeout, setTimeout, console, XMLHttpRequest, document */
 /*jslint nomen: true, indent: 2, maxerr: 3*/
-(function (window, rJS, RSVP, $, console, clearTimeout, setTimeout,
+(function (window, rJS, RSVP, console, clearTimeout, setTimeout,
   XMLHttpRequest, document) {
   "use strict";
 
@@ -10,18 +10,12 @@
     .ready(function (g) {
       g.props =  {};
     })
-    /*.ready(function (g) {
-      return g.getDeclaredGadget('log_gadget')
-        .push(function (log_gadget) {
-          g.props.log_gadget = log_gadget;
-        });
-    })*/
 
     .declareAcquiredMethod("getSetting", "getSetting")
     .declareAcquiredMethod("setSetting", "setSetting")
     .declareAcquiredMethod("jio_repair", "jio_repair")
 
-    .declareMethod("startSync", function (options) {
+    .declareMethod("registerSync", function (options) {
       var gadget = this;
 
       function testOnline(url) {
@@ -55,9 +49,9 @@
           return n < 10 ? "0" + n : n.toString();
         }
 
-        return d.getFullYear() + "-" + addZero(d.getMonth() + 1)
-          + "-" + addZero(d.getDate()) + " " + addZero(d.getHours())
-          + ":" + addZero(d.getMinutes()) + ":" + addZero(d.getSeconds());
+        return d.getFullYear() + "-" + addZero(d.getMonth() + 1) +
+          "-" + addZero(d.getDate()) + " " + addZero(d.getHours()) +
+          ":" + addZero(d.getMinutes()) + ":" + addZero(d.getSeconds());
       }
 
       function syncAllStorageWithCheck() {
@@ -72,7 +66,7 @@
                 .push(function () {
                   return testOnline(parser.origin);
                 })
-                .push(undefined, function() {
+                .push(undefined, function () {
                   return {status: "ERROR"};
                 })
                 .push(function (online_result) {
@@ -96,7 +90,7 @@
       }
 
       function syncAllStorage() {
-        var error_log,
+        var has_error = false,
           last_sync_time;
         gadget.props.started = true;
         return new RSVP.Queue()
@@ -119,7 +113,7 @@
             return gadget.jio_repair();
           })
           .push(undefined, function (error) {
-            error_log = error;
+            has_error = true;
             console.error(error);
             return false;
           })
@@ -134,7 +128,7 @@
               //log_message = '',
               log_title = "OK: " + message;
 
-            if (error_log !== undefined) {
+            if (has_error) {
               classname = "warning";
               time = 5000;
               //log_message = getErrorLog(gadget.props.error_list);
@@ -151,12 +145,6 @@
                 autoHideDelay: time
               }
             )]);
-              /*gadget.props.log_gadget.log({
-                message: log_message,
-                type: classname,
-                title: log_title,
-                method: 'Monitoring Sync'
-              })*/
           })
           .push(function () {
             gadget.props.started = false;
@@ -184,8 +172,8 @@
             .push(function (start_timestamp) {
               var current_time = new Date().getTime();
               if (start_timestamp !== undefined &&
-                  (current_time - gadget.props.timer_interval)
-                  <= start_timestamp) {
+                  (current_time - gadget.props.timer_interval) <=
+                  start_timestamp) {
                 // There was a recent sync don't start a new sync before the time_interval!
                 return;
               }
@@ -268,5 +256,5 @@
         });
     });
 
-}(window, rJS, RSVP, $, console, clearTimeout, setTimeout, XMLHttpRequest,
+}(window, rJS, RSVP, console, clearTimeout, setTimeout, XMLHttpRequest,
   document));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_sync_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_sync_js.xml
similarity index 96%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_sync_js.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_sync_js.xml
index 5299c4e6c2814e1bd69da1532c52b414a0862135..5897ff3a45de6ae29b89103d6d2c7074edd607a3 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_sync_js.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_sync_js.xml
@@ -83,7 +83,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_monitoring_sync.js</string> </value>
+            <value> <string>gadget_officejs_monitoring_sync.js</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -93,7 +93,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>gadget_monitoring_sync_js</string> </value>
+            <value> <string>gadget_officejs_monitoring_sync_js</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -111,7 +111,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Monitoring Sync Data Gadget JS</string> </value>
+            <value> <string>Officejs Monitoring Sync Data Gadget JS</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -242,7 +242,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.62215.16074.40192</string> </value>
+                <value> <string>962.53134.26022.64665</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -260,7 +260,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1504861961.08</float>
+                        <float>1508860939.04</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/jquery.magnific-popup.min.js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/jquery.magnific-popup.min.js.js
deleted file mode 100644
index 66b8fab32bff2b734bc6355b9b5ab43b3632fb4a..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/jquery.magnific-popup.min.js.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! Magnific Popup - v1.0.1 - 2015-12-30
-* http://dimsemenov.com/plugins/magnific-popup/
-* Copyright (c) 2015 Dmitry Semenov; */
-!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isIE7=-1!==c.indexOf("MSIE 7."),b.isIE8=-1!==c.indexOf("MSIE 8."),b.isLowIE=b.isIE7||b.isIE8,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x("bg").on("click"+p,function(){b.close()}),b.wrap=x("wrap").attr("tabindex",-1).on("click"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x("container",b.wrap)),b.contentContainer=x("content"),b.st.preloader&&(b.preloader=x("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b["init"+j].call(b)}y("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(z())),b.st.alignTop&&(f+=" mfp-align-top"),b.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}):b.wrap.css({top:v.scrollTop(),position:"absolute"}),(b.st.fixedBgPos===!1||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup"+p,function(a){27===a.keyCode&&b.close()}),v.on("resize"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):n.overflow="hidden");var r=b.st.mainClass;return b.isIE7&&(r+=" mfp-ie7"),r&&b._addClassToMFP(r),b.updateItemHTML(),y("BuildControls"),a("html").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on("focusin"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+" "+q+" ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup"+p+" focusin"+p),b.ev.off(p),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),!b.st.showCloseBtn||b.st.closeBtnInside&&b.currTemplate[b.currItem.type]!==!0||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b.st.autoFocusLast&&b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css("height",b.wH),y("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=b.st[d]?b.st[d].markup:!1;y("FirstMarkupParse",f),f?b.currTemplate[d]=a(f):b.currTemplate[d]=!0}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(".mfp-close").length||b.content.append(z()):b.content=a:b.content="",y(k),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,y("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||!(2===c.which||c.ctrlKey||c.metaKey||c.altKey||c.shiftKey)){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),d||"loading"!==a||(d=b.st.tLoading);var e={status:a,text:d};y("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(a,c){if(void 0===c||c===!1)return!0;if(e=a.split("_"),e.length>1){var d=b.find(p+"-"+e[0]);if(d.length>0){var f=e[1];"replaceWith"===f?d[0]!==c[0]&&d.replaceWith(c):"img"===f?d.is("img")?d.attr("src",c):d.replaceWith('<img src="'+c+'" class="'+d.attr("class")+'" />'):d.attr(e[1],c)}}else b.find(p+"-"+a).html(c)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&#215;</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery",g=Boolean(a.fn.mfpFastClick);return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s),h=g?"mfpFastClick":"click";e[h](function(){b.prev()}),f[h](function(){b.next()}),b.isIE7&&(x("b",e[0],!1,!0),x("a",e[0],!1,!0),x("b",f[0],!1,!0),x("a",f[0],!1,!0)),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowLeft&&g&&b.arrowLeft.add(b.arrowRight).destroyMfpFastClick(),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('<img class="mfp-img" />').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),function(){var b=1e3,c="ontouchstart"in window,d=function(){v.off("touchmove"+f+" touchend"+f)},e="mfpFastClick",f="."+e;a.fn.mfpFastClick=function(e){return a(this).each(function(){var g,h=a(this);if(c){var i,j,k,l,m,n;h.on("touchstart"+f,function(a){l=!1,n=1,m=a.originalEvent?a.originalEvent.touches[0]:a.touches[0],j=m.clientX,k=m.clientY,v.on("touchmove"+f,function(a){m=a.originalEvent?a.originalEvent.touches:a.touches,n=m.length,m=m[0],(Math.abs(m.clientX-j)>10||Math.abs(m.clientY-k)>10)&&(l=!0,d())}).on("touchend"+f,function(a){d(),l||n>1||(g=!0,a.preventDefault(),clearTimeout(i),i=setTimeout(function(){g=!1},b),e())})})}h.on("click"+f,function(){g||e()})})},a.fn.destroyMfpFastClick=function(){a(this).off("touchstart"+f+" click"+f),c&&v.off("touchmove"+f+" touchend"+f)}}(),A()});
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/magnific-popup.css.css b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/magnific-popup.css.css
deleted file mode 100644
index 1183cbefe99901cdb56988f57895c7e82d8bc1e2..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/magnific-popup.css.css
+++ /dev/null
@@ -1,391 +0,0 @@
-/* Magnific Popup CSS */
-.mfp-bg {
-  top: 0;
-  left: 0;
-  width: 100%;
-  height: 100%;
-  z-index: 1042;
-  overflow: hidden;
-  position: fixed;
-  background: #0b0b0b;
-  opacity: 0.8;
-  filter: alpha(opacity=80); }
-
-.mfp-wrap {
-  top: 0;
-  left: 0;
-  width: 100%;
-  height: 100%;
-  z-index: 1043;
-  position: fixed;
-  outline: none !important;
-  -webkit-backface-visibility: hidden; }
-
-.mfp-container {
-  text-align: center;
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  left: 0;
-  top: 0;
-  padding: 0 8px;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box; }
-
-.mfp-container:before {
-  content: '';
-  display: inline-block;
-  height: 100%;
-  vertical-align: middle; }
-
-.mfp-align-top .mfp-container:before {
-  display: none; }
-
-.mfp-content {
-  position: relative;
-  display: inline-block;
-  vertical-align: middle;
-  margin: 0 auto;
-  text-align: left;
-  z-index: 1045; }
-
-.mfp-inline-holder .mfp-content,
-.mfp-ajax-holder .mfp-content {
-  width: 100%;
-  cursor: auto; }
-
-.mfp-ajax-cur {
-  cursor: progress; }
-
-.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
-  cursor: -moz-zoom-out;
-  cursor: -webkit-zoom-out;
-  cursor: zoom-out; }
-
-.mfp-zoom {
-  cursor: pointer;
-  cursor: -webkit-zoom-in;
-  cursor: -moz-zoom-in;
-  cursor: zoom-in; }
-
-.mfp-auto-cursor .mfp-content {
-  cursor: auto; }
-
-.mfp-close,
-.mfp-arrow,
-.mfp-preloader,
-.mfp-counter {
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  user-select: none; }
-
-.mfp-loading.mfp-figure {
-  display: none; }
-
-.mfp-hide {
-  display: none !important; }
-
-.mfp-preloader {
-  color: #CCC;
-  position: absolute;
-  top: 50%;
-  width: auto;
-  text-align: center;
-  margin-top: -0.8em;
-  left: 8px;
-  right: 8px;
-  z-index: 1044; }
-  .mfp-preloader a {
-    color: #CCC; }
-    .mfp-preloader a:hover {
-      color: #FFF; }
-
-.mfp-s-ready .mfp-preloader {
-  display: none; }
-
-.mfp-s-error .mfp-content {
-  display: none; }
-
-button.mfp-close,
-button.mfp-arrow {
-  overflow: visible;
-  cursor: pointer;
-  background: transparent;
-  border: 0;
-  -webkit-appearance: none;
-  display: block;
-  outline: none;
-  padding: 0;
-  z-index: 1046;
-  -webkit-box-shadow: none;
-  box-shadow: none; }
-
-button::-moz-focus-inner {
-  padding: 0;
-  border: 0; }
-
-.mfp-close {
-  width: 44px;
-  height: 44px;
-  line-height: 44px;
-  position: absolute;
-  right: 0;
-  top: 0;
-  text-decoration: none;
-  text-align: center;
-  opacity: 0.65;
-  filter: alpha(opacity=65);
-  padding: 0 0 18px 10px;
-  color: #FFF;
-  font-style: normal;
-  font-size: 28px;
-  font-family: Arial, Baskerville, monospace; }
-  .mfp-close:hover,
-  .mfp-close:focus {
-    opacity: 1;
-    filter: alpha(opacity=100); }
-  .mfp-close:active {
-    top: 1px; }
-
-.mfp-close-btn-in .mfp-close {
-  color: #333; }
-
-.mfp-image-holder .mfp-close,
-.mfp-iframe-holder .mfp-close {
-  color: #FFF;
-  right: -6px;
-  text-align: right;
-  padding-right: 6px;
-  width: 100%; }
-
-.mfp-counter {
-  position: absolute;
-  top: 0;
-  right: 0;
-  color: #CCC;
-  font-size: 12px;
-  line-height: 18px;
-  white-space: nowrap; }
-
-.mfp-arrow {
-  position: absolute;
-  opacity: 0.65;
-  filter: alpha(opacity=65);
-  margin: 0;
-  top: 50%;
-  margin-top: -55px;
-  padding: 0;
-  width: 90px;
-  height: 110px;
-  -webkit-tap-highlight-color: transparent; }
-  .mfp-arrow:active {
-    margin-top: -54px; }
-  .mfp-arrow:hover,
-  .mfp-arrow:focus {
-    opacity: 1;
-    filter: alpha(opacity=100); }
-  .mfp-arrow:before,
-  .mfp-arrow:after,
-  .mfp-arrow .mfp-b,
-  .mfp-arrow .mfp-a {
-    content: '';
-    display: block;
-    width: 0;
-    height: 0;
-    position: absolute;
-    left: 0;
-    top: 0;
-    margin-top: 35px;
-    margin-left: 35px;
-    border: medium inset transparent; }
-  .mfp-arrow:after,
-  .mfp-arrow .mfp-a {
-    border-top-width: 13px;
-    border-bottom-width: 13px;
-    top: 8px; }
-  .mfp-arrow:before,
-  .mfp-arrow .mfp-b {
-    border-top-width: 21px;
-    border-bottom-width: 21px;
-    opacity: 0.7; }
-
-.mfp-arrow-left {
-  left: 0; }
-  .mfp-arrow-left:after,
-  .mfp-arrow-left .mfp-a {
-    border-right: 17px solid #FFF;
-    margin-left: 31px; }
-  .mfp-arrow-left:before,
-  .mfp-arrow-left .mfp-b {
-    margin-left: 25px;
-    border-right: 27px solid #3F3F3F; }
-
-.mfp-arrow-right {
-  right: 0; }
-  .mfp-arrow-right:after,
-  .mfp-arrow-right .mfp-a {
-    border-left: 17px solid #FFF;
-    margin-left: 39px; }
-  .mfp-arrow-right:before,
-  .mfp-arrow-right .mfp-b {
-    border-left: 27px solid #3F3F3F; }
-
-.mfp-iframe-holder {
-  padding-top: 40px;
-  padding-bottom: 40px; }
-  .mfp-iframe-holder .mfp-content {
-    line-height: 0;
-    width: 100%;
-    max-width: 900px; }
-  .mfp-iframe-holder .mfp-close {
-    top: -40px; }
-
-.mfp-iframe-scaler {
-  width: 100%;
-  height: 0;
-  overflow: hidden;
-  padding-top: 56.25%; }
-  .mfp-iframe-scaler iframe {
-    position: absolute;
-    display: block;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
-    box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
-    background: #000; }
-
-/* Main image in popup */
-img.mfp-img {
-  width: auto;
-  max-width: 100%;
-  height: auto;
-  display: block;
-  line-height: 0;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  padding: 40px 0 40px;
-  margin: 0 auto; }
-
-/* The shadow behind the image */
-.mfp-figure {
-  line-height: 0; }
-  .mfp-figure:after {
-    content: '';
-    position: absolute;
-    left: 0;
-    top: 40px;
-    bottom: 40px;
-    display: block;
-    right: 0;
-    width: auto;
-    height: auto;
-    z-index: -1;
-    box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
-    background: #444; }
-  .mfp-figure small {
-    color: #BDBDBD;
-    display: block;
-    font-size: 12px;
-    line-height: 14px; }
-  .mfp-figure figure {
-    margin: 0; }
-
-.mfp-bottom-bar {
-  margin-top: -36px;
-  position: absolute;
-  top: 100%;
-  left: 0;
-  width: 100%;
-  cursor: auto; }
-
-.mfp-title {
-  text-align: left;
-  line-height: 18px;
-  color: #F3F3F3;
-  word-wrap: break-word;
-  padding-right: 36px; }
-
-.mfp-image-holder .mfp-content {
-  max-width: 100%; }
-
-.mfp-gallery .mfp-image-holder .mfp-figure {
-  cursor: pointer; }
-
-@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
-  /**
-       * Remove all paddings around the image on small screen
-       */
-  .mfp-img-mobile .mfp-image-holder {
-    padding-left: 0;
-    padding-right: 0; }
-  .mfp-img-mobile img.mfp-img {
-    padding: 0; }
-  .mfp-img-mobile .mfp-figure:after {
-    top: 0;
-    bottom: 0; }
-  .mfp-img-mobile .mfp-figure small {
-    display: inline;
-    margin-left: 5px; }
-  .mfp-img-mobile .mfp-bottom-bar {
-    background: rgba(0, 0, 0, 0.6);
-    bottom: 0;
-    margin: 0;
-    top: auto;
-    padding: 3px 5px;
-    position: fixed;
-    -webkit-box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    box-sizing: border-box; }
-    .mfp-img-mobile .mfp-bottom-bar:empty {
-      padding: 0; }
-  .mfp-img-mobile .mfp-counter {
-    right: 5px;
-    top: 3px; }
-  .mfp-img-mobile .mfp-close {
-    top: 0;
-    right: 0;
-    width: 35px;
-    height: 35px;
-    line-height: 35px;
-    background: rgba(0, 0, 0, 0.6);
-    position: fixed;
-    text-align: center;
-    padding: 0; } }
-
-@media all and (max-width: 900px) {
-  .mfp-arrow {
-    -webkit-transform: scale(0.75);
-    transform: scale(0.75); }
-  .mfp-arrow-left {
-    -webkit-transform-origin: 0;
-    transform-origin: 0; }
-  .mfp-arrow-right {
-    -webkit-transform-origin: 100%;
-    transform-origin: 100%; }
-  .mfp-container {
-    padding-left: 6px;
-    padding-right: 6px; } }
-
-.mfp-ie7 .mfp-img {
-  padding: 0; }
-
-.mfp-ie7 .mfp-bottom-bar {
-  width: 600px;
-  left: 50%;
-  margin-left: -300px;
-  margin-top: 5px;
-  padding-bottom: 5px; }
-
-.mfp-ie7 .mfp-container {
-  padding: 0; }
-
-.mfp-ie7 .mfp-content {
-  padding-top: 44px; }
-
-.mfp-ie7 .mfp-close {
-  top: 0;
-  right: 0;
-  padding-top: 0; }
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/magnific-popup.css.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/magnific-popup.css.xml
deleted file mode 100644
index 3c347d1a70db95befd138fe6c2acbea13e95d4a1..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/magnific-popup.css.xml
+++ /dev/null
@@ -1,329 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Style" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>categories</string> </key>
-            <value>
-              <tuple>
-                <string>classification/collaborative/team</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>magnific-popup.css</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>magnific-popup.css</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Style</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>magnific-popup.css</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1455014096.47</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>949.2010.26884.10154</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1455014089.99</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1455014042.1</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_router_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/ojsm_gadget_erp5_statusfield_html.html
similarity index 61%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_router_html.html
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/ojsm_gadget_erp5_statusfield_html.html
index 38cfd771be82e114a1a5e059cdb2675a67e8165d..ecc7e66b8e454dd9b57923f2500a87f229c4937f 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_router_html.html
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/ojsm_gadget_erp5_statusfield_html.html
@@ -3,14 +3,16 @@
   <head>
     <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
     <meta name="viewport" content="width=device-width, user-scalable=no" />
-    <title>Monitoring Router Gadget</title>
+    <title>ERP5 Statusfield</title>
 
     <!-- renderjs -->
     <script src="rsvp.js" type="text/javascript"></script>
     <script src="renderjs.js" type="text/javascript"></script>
-
     <!-- custom script -->
-    <script src="gadget_monitoring_router.js" type="text/javascript"></script>
+    <script src="gadget_erp5_field_status.js" type="text/javascript"></script>
+    <script id="template-status-field" type="text/x-handlebars-template">
+      <span class="label label-{{value}}">{{value}}</span>
+    </script>
 
   </head>
   <body>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/ojsm_gadget_erp5_statusfield_html.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/ojsm_gadget_erp5_statusfield_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..736ac081c1cabcfcd02bab96d8423ac65db0b21d
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/ojsm_gadget_erp5_statusfield_html.xml
@@ -0,0 +1,332 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Page" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_erp5_field_status.html</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>ojsm_gadget_erp5_statusfield_html</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value> <string>en</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Page</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>passwordGadget ERP5 Statusfield</string> </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1509383932.65</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>963.8986.63671.20514</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1509446386.76</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1509381854.52</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/ojsm_gadget_erp5_statusfield_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/ojsm_gadget_erp5_statusfield_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..aa4385d564962fab9243ae94e7893c57af13fc01
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/ojsm_gadget_erp5_statusfield_js.js
@@ -0,0 +1,42 @@
+/*global window, rJS, Handlebars */
+/*jslint indent: 2, maxerr: 3 */
+(function (window, rJS, Handlebars) {
+  "use strict";
+
+  var gadget_klass = rJS(window),
+    templater = gadget_klass.__template_element,
+    status_field_template = Handlebars.compile(
+      templater.getElementById("template-status-field").innerHTML
+    ); 
+
+  gadget_klass
+    .declareMethod('render', function (options) {
+      var field_json = options || {},
+        state_dict = {
+          value: field_json.value || field_json.default || "",
+          name: field_json.key,
+          title: field_json.title,
+          alt: field_json.description,
+          hidden: field_json.hidden
+        };
+      return this.changeState(state_dict);
+    })
+
+    .onStateChange(function (modification_dict) {
+      if (this.state.hidded) {
+        this.element.innerHTML = "";
+      } else {
+        this.element.innerHTML = status_field_template({value: this.state.value});
+      }
+      // check others parameters...
+    })
+
+    .declareMethod('getContent', function () {
+      return {};
+    })
+
+    .declareMethod('checkValidity', function () {
+      return true;
+    });
+
+}(window, rJS, Handlebars));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/ojsm_gadget_erp5_statusfield_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/ojsm_gadget_erp5_statusfield_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6df16a19d8b1872d146c6ee53595bc32e8e23c33
--- /dev/null
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/ojsm_gadget_erp5_statusfield_js.xml
@@ -0,0 +1,328 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Web Script" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_local_roles_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Anonymous</string>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Associate</string>
+                <string>Auditor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>classification/collaborative/team</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_md5</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>gadget_erp5_field_status.js</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>ojsm_gadget_erp5_statusfield_js</string> </value>
+        </item>
+        <item>
+            <key> <string>language</string> </key>
+            <value> <string>en</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Web Script</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Gadget ERP5 Statusfield JS</string> </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>001</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>document_publication_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>edit_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>processing_status_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>publish_alive</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1509383886.65</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>published_alive</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>edit</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>963.7950.43708.60125</string> </value>
+            </item>
+            <item>
+                <key> <string>state</string> </key>
+                <value> <string>current</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1509446414.84</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value> <string>detect_converted_file</string> </value>
+            </item>
+            <item>
+                <key> <string>actor</string> </key>
+                <value> <string>zope</string> </value>
+            </item>
+            <item>
+                <key> <string>comment</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>error_message</string> </key>
+                <value> <string></string> </value>
+            </item>
+            <item>
+                <key> <string>external_processing_state</string> </key>
+                <value> <string>converted</string> </value>
+            </item>
+            <item>
+                <key> <string>serial</string> </key>
+                <value> <string>0.0.0.0</string> </value>
+            </item>
+            <item>
+                <key> <string>time</string> </key>
+                <value>
+                  <object>
+                    <klass>
+                      <global name="DateTime" module="DateTime.DateTime"/>
+                    </klass>
+                    <tuple>
+                      <none/>
+                    </tuple>
+                    <state>
+                      <tuple>
+                        <float>1509383862.21</float>
+                        <string>UTC</string>
+                      </tuple>
+                    </state>
+                  </object>
+                </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_erp5_css.css b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_erp5_css.css
deleted file mode 100644
index 0659c9946ccb05a42ef2351a33b36d39ad0ef117..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_erp5_css.css
+++ /dev/null
@@ -1,5007 +0,0 @@
-/*  ---------------------------  gadget_core.css -------------------------- */
-/*
-   =========================================================================
-   ================================ fonts  =================================
-   =========================================================================
-*/
-@font-face {
-  font-family: 'FontAwesome';
-  src: url('font-awesome/font-awesome-webfont.eot');
-  src: url('font-awesome/font-awesome-webfont.eot') format('embedded-opentype'), url('font-awesome/font-awesome-webfont.woff2') format('woff2'), url('font-awesome/font-awesome-webfont.woff') format('woff'), url('font-awesome/font-awesome-webfont.ttf') format('truetype'), url('font-awesome/font-awesome-webfont.svg') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-/* global reference font-size (.9em = 14.4px) */
-html.ui-mobile body div p,
-html.ui-mobile body div a,
-html.ui-mobile body div button,
-html.ui-mobile body div h1,
-html.ui-mobile body div h2,
-html.ui-mobile body div h3,
-html.ui-mobile body div h4,
-html.ui-mobile body div h5,
-html.ui-mobile body div h6,
-html.ui-mobile body div input,
-html.ui-mobile body div select,
-html.ui-mobile body div label,
-html.ui-mobile body div legend,
-html.ui-mobile body div option,
-html.ui-mobile body div span,
-html.ui-mobile body div textarea,
-html.ui-mobile body th,
-html.ui-mobile body td,
-
-/* ...sigh ... */
-html.ui-mobile body li.ui-li-divider,
-html.ui-mobile body .ui-input-btn,
-html.ui-mobile body th .ui-btn,
-html.ui-mobile body .ui-header h1.ui-title {
-  font-size: .9em;
-  font-weight: 400;
-  font-family: 'Open Sans', Helvetica, Arial, sans-serif;
-}
-
-/* ...sigh sigh ... */
-html.ui-mobile body th a,
-html.ui-mobile body td a,
-html.ui-mobile body th a.ui-btn,
-html.ui-mobile body td a.ui-btn,
-html.ui-mobile body .ui-header .ui-title .ui-btn {
-  font-size: 100%;
-}
-
-/* responsive listview-table */
-@media (max-width: 48em) {
-  html table tbody tr td:first-child ~ td a,
-  html table tbody tr th:first-child ~ th a,
-  html table tbody tr td:first-child ~ td a,
-  html table tbody tr th:first-child ~ th a {
-    font-size: 85%;
-  }
-}
-
-/* force all code to look like code */
-html.ui-mobile body div pre * {
-  font-family: inherit;
-  font-size: inherit;
-}
-
-/* from here on in % of whatever is set above */
-.ui-content-header-section .ui-content-title {
-  font-size: 500%;
-  letter-spacing: -0.05em;
-}
-.ui-content-header-fullwidth .ui-content-title,
-.ui-content-header-plain .ui-content-title {
-  font-size: 150%;
-}
-.ui-content-header-fullwidth .ui-content-subtitle,
-.ui-content-header-section .ui-content-subtitle {
-  font-size: 100%;
-}
-@media (max-width: 62em) {
-  .ui-content-header-section .ui-content-title {
-    font-size: 300%;
-  }
-  .ui-content-header-fullwidth .ui-content-title,
-  .ui-content-header-plain .ui-content-title {
-    font-size: 150%;
-  }
-}
-@media (max-width: 48em) {
-  .ui-content-header-section .ui-content-title {
-    font-size: 150%;
-  }
-  .ui-content-header-fullwidth .ui-content-title,
-  .ui-content-header-plain .ui-content-title {
-    font-size: 100%;
-  }
-}
-
-/*
-   =========================================================================
-   =========================  panel f&$* up  ===============================
-   =========================================================================
-*/
-/*
-@media (min-width: 64em) { 
-  div[data-gadget-scope='header'] > div,
-  article {
-    margin-left: 17em;
-    width: auto;
-  }
-  html body button.responsive[data-i18n='Menu'] {
-    display: none;
-  }
-  .jqm-navmenu-panel .ui-header .ui-controlgroup-controls form .ui-btn {
-    display: none;
-  }
-}
-*/
-/*
-   =========================================================================
-   ======================== overwriting widgets  ===========================
-   =========================================================================
-*/
-
-/*
-   -------------------------------------------------------------------------
-   ------------------------------- Loader ----------------------------------
-   -------------------------------------------------------------------------
-*/
-/* don't fade spinner */
-html body .ui-icon-spinner.ui-icon-spin {
-  opacity: 1;
-}
-
-/*
-   -------------------------------------------------------------------------
-   -------------------------------- Page -----------------------------------
-   -------------------------------------------------------------------------
-*/
-
-/* page theme backgrounds */
-html body,
-html body .ui-page,
-html body .ui-page .ui-panel-wrapper {
-  background: none;
-  border-color: transparent;
-  color: inherit;
-  text-shadow: none;
-}
-
-/* page padding - JQM tries to set this through the wrapping page-div. Once
-   this is gone, remove rule */
-html body .ui-page-header-fixed {
-  padding-top: 41px !important;
-}
-
-/*
-   -------------------------------------------------------------------------
-   ------------------------------- Content ---------------------------------
-   -------------------------------------------------------------------------
-*/
-
-/* dimensions inset header/content */
-.ui-content-header-section,
-.ui-content-section {
-  border-style: solid;
-  border-width: 1px;
-  /* max-width: 85%; */
-  margin: 0 auto;
-}
-.ui-content-header-plain {
-  /*  max-width: 85%; */
-  margin: 0 auto;
-}
-
-/* MOVE: icon positioning */
-.ui-content-header-plain .ui-content-title span {
-  padding-right: .5em;
-}
-
-/* fullwidth header box-shadow and max-height */
-.ui-content-header-fullwidth {
-  padding: 1em;
-  border-width: 0;
-  border-bottom-width: 1px;
-  -webkit-box-shadow: 0 1px 3px #aaa;
-  -moz-box-shadow: 0 1px 3px #aaa;
-  box-shadow: 0 1px 3px #aaa;
-  max-height: 5em;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  /* with navbar margin: 5em -1em 0; */
-  margin: -0.5em -1em 0;
-  width: auto;
-}
-
-/* indent fullwidth header text */
-.ui-content-header-fullwidth .ui-content-title,
-.ui-content-header-fullwidth .ui-content-subtitle {
-  margin: 0;
-}
-
-/* spacing of content-header = independent of global header */
-.ui-content-header-section,
-.ui-content-header-plain {
-  margin-top: 5%;
-}
-@media (max-width: 48em) {
-  .ui-content-header-section,
-  .ui-content-header-plain {
-    margin-top: 10%;
-  }
-  .ui-content-header-plain {
-    max-width: none;
-  }
-}
-
-.ui-content-header-section {
-  -webkit-border-bottom-left-radius: 0;
-  border-bottom-left-radius: 0;
-  -webkit-border-bottom-right-radius: 0;
-  border-bottom-right-radius: 0;
-  padding-bottom: .5em;
-}
-
-/* add box shadow and border radius */
-.ui-content-section {
-  margin-top: 1em;
-  padding: 1em;
-  -webkit-border-radius: .3125em;
-  border-radius: .3125em;
-  -webkit-box-shadow: 0 2px 2px #aaa;
-  -moz-box-shadow: 0 2px 2px #aaa;
-  box-shadow: 0 2px 2px #aaa;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-
-/* dock section following header to header */
-.ui-content-header-section ~ .ui-content-section {
-  border-top-width: 0;
-  padding-top: 0;
-  margin-top: 0;
-  -webkit-border-top-left-radius: 0;
-  border-top-left-radius: 0;
-  -webkit-border-top-right-radius: 0;
-  border-top-right-radius: 0;
-}
-/* add space between sections */
-.ui-content-section ~ .ui-content-section {
-  margin: 1em auto;
-}
-
-/* add top border */
-html body .ui-content-header-plain ~ .ui-content-section {
-  border-top-width: 1px;
-}
-
-
-/* custom icon positioning */
-.ui-content-menu .ui-controlgroup-controls .ui-icon-custom {
-  margin: 0 1em;
-  border: 0 none;
-  border-radius: 1em;
-  border-radius: 1.25em;
-  -webkit-box-sizing: padding-box;
-  -moz-box-sizing: padding-box;
-  box-sizing: padding-box;
-  height: 2.5em;
-  width: 2.5em;
-}
-.ui-content-menu .ui-icon-custom:after {
-  font-size: 150%;
-  border-radius: 1em;
-  padding: 0.4em;
-  vertical-align: middle;
-  left: 29%;
-  top: 30%;
-  margin-left: -11px;
-}
-.ui-content-header-section .ui-content-title,
-.ui-content-header-section .ui-content-subtitle,
-.ui-content-header-section .ui-content-menu,
-.ui-content-header-fullwidth .ui-content-menu {
-  text-align: center;
-}
-
-
-@media (max-width: 48em) {
-  .ui-content-header-section,
-  .ui-content-section {
-    max-width: 100%;
-  }
-}
-
-/* section and form section header */
-html body section ~ .ui-content-section .ui-content-header-inline,
-html.ui-mobile body form .ui-content-header-inline {
-  display: block;
-  font-weight: 700;
-  border-bottom: 1px solid rgb(115, 115, 115);
-  border-bottom: 1px solid rgba(0,0,0,.3);
-  margin-bottom: 0.5em;
-  margin-top: 0.5em;
-  padding-bottom: 1em;
-}
-
-/* Maximize content section*/
-html body .ui-content-maximize {
-  position: fixed;
-  right: 0;
-  bottom: 0;
-  top: 2.4em !important;
-  left: 0 !important;
-  z-index: 900 !important;
-  overflow: hidden !important;
-  height: 94%;
-  width: 100%;}
-
-/*
-   -------------------------------------------------------------------------
-   ---------------------- Form Field Positioning ---------------------------
-   -------------------------------------------------------------------------
-*/
-/* form validation (assuming label>span is used) */
-form label span {
-  color: red;
-}
-
-/* stretch controlgroup controls in case they don't */
-html.ui-mobile head + body .ui-field-contain fieldset .ui-controlgroup-controls {
-  width: 100%;
-}
-/* remove double borders on vertical fieldsets TODO: no pseudo, not generic! */
-html.ui-mobile head + body .ui-field-contain fieldset.ui-controlgroup-vertical .ui-controlgroup-controls > * .ui-btn {
-  border-bottom-width: 0;
-}
-html.ui-mobile head + body .ui-field-contain fieldset.ui-controlgroup-vertical .ui-controlgroup-controls > *:last-child .ui-btn {
-  border-bottom-width: 1px;
-}
-
-.left,
-.right,
-.center,
-.bottom {
-  vertical-align: top;
-  padding: 0 2%;
-}
-.center,
-.bottom  {
-  width: 96%;
-  display: block;
-}
-.left,
-.right {
-  display: inline-block;
-  width: 45%;
-}
-
-/* add JQM float ourselves, but only for form elements! */
-.ui-field-contain > label ~ [class*="ui-"],
-.ui-field-contain fieldset .ui-controlgroup-controls,
-.ui-field-contain > label + div {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  float: left;
-}
-
-/* stretch textarea */
-.left textara,
-.right textarea {
-  width: 100%;
-  display: inline-block;
-  vertical-align: middle;
-}
-
-/* override JQM forcing 78% on textrea */
-.ui-field-contain > label ~ textarea[class*="ui-"] {
-  width: 67%;
-}
-
-/* override border-radius for all inputs to match buttons XXX Punting with center */
-html.ui-mobile head + body .center .ui-input-text.ui-corner-all {
-  -webkit-border-radius: .325em;
-  border-radius: .325em;
-}
-/* field-containers with add on button have no right corners */
-html.ui-mobile head + body .center .ui-field-contain > :first-child:nth-last-child(2) {
-  -webkit-border-top-right-radius: 0;
-  border-top-right-radius: 0;
-  -webkit-border-bottom-right-radius: 0;
-  border-bottom-right-radius: 0;
-}
-
-/* remove left corners and margin from side button */
-html.ui-mobile head + body .ui-field-contain > :first-child:nth-last-child(2) ~ .ui-btn {
-  -webkit-border-top-left-radius: 0;
-  border-top-left-radius: 0;
-  -webkit-border-bottom-left-radius: 0;
-  border-bottom-left-radius: 0;
-  margin: 0;
-  border-left-width: 0;
-}
-
-
-/* labels width */
-html.ui-mobile head + body label:not(.ui-btn),
-html.ui-mobile head + body fieldset div.ui-controlgroup-label {
-  max-width: 31%;
-  min-width: 31%;
-}
-/* label center/bottom has double space, so needs half of the above */
-html.ui-mobile head + body .center label:not(.ui-btn),
-html.ui-mobile head + body .center fieldset div.ui-controlgroup-label,
-html.ui-mobile head + body .bottom label:not(.ui-btn),
-html.ui-mobile head + body .bottom fieldset div.ui-controlgroup-label {
-  max-width: 15%;
-  min-width: 15%;
-  margin-right: 0.5%; /* not perfetct, redo, this should be 1% */
-}
-
-/* input width depending on number of inputs (allow 3 selects side-by-side) */
-/* <label><div.gadget> */
-html.ui-mobile head + body .ui-field-contain :first-child:nth-last-child(2) ~ div,
-html.ui-mobile head + body .ui-field-contain fieldset .ui-controlgroup-controls :first-child:nth-last-child(2) ~ div {
-  width: 67%;
-}
-/* <label><div.gadget><label><div.gadget>
-html.ui-mobile head + body .ui-field-contain :first-child:nth-last-child(4) ~ div,
-html.ui-mobile head + body .ui-field-contain fieldset .ui-controlgroup-controls :first-child:nth-last-child(4) ~ div {
-  width: 50%;
-}
-*/
-/* <label><div.gadget><label><div.gadget><label><div.gadget> 
-html.ui-mobile head + body .ui-field-contain :first-child:nth-last-child(6) ~ div,
-html.ui-mobile head + body .ui-field-contain fieldset .ui-controlgroup-controls :first-child:nth-last-child(6) ~ div {
-  width: 32.99%;
-}
-*/
-/* reset for collections of checkbox/radio (up to 6) */
-html.ui-mobile head + body .ui-field-contain > div:first-of-type + div,
-html.ui-mobile head + body .ui-field-contain > div:first-of-type + div + div,
-html.ui-mobile head + body .ui-field-contain fieldset.ui-controlgroup div.ui-controlgroup-controls > div:first-of-type + div,
-html.ui-mobile head + body .ui-field-contain fieldset.ui-controlgroup div.ui-controlgroup-controls > div:first-of-type + div + div {
-  width: auto;
-}
-
-/* and textarea/other elements in center/bottom */
-html.ui-mobile head + body .bottom div.ui-field-contain textarea.ui-input-text,
-html.ui-mobile head + body .center div.ui-field-contain textarea.ui-input-text,
-/* include gadget */
-html.ui-mobile head + body .field_container .bottom div.ui-field-contain label ~ div,
-html.ui-mobile head + body .field_container .center div.ui-field-contain label ~ div {
-  width: 84.5%;
-}
-/* and gadget child textarea width */
-html.ui-mobile head + body .field_container .bottom div.ui-field-contain label ~ div textarea,
-html.ui-mobile head + body .field_container .center div.ui-field-contain label ~ div textarea {
-  width: 100%;
-}
-
-/* input vs side icon dimensions */
-html.ui-mobile head + body .field_container div.ui-field-contain div .ui-input-has-icon {
-  width: 79%;
-  display: inline-block;
-  -webkit-box-sizing: content-box;
-  -moz-box-sizing: content-box;
-  box-sizing: content-box;
-  padding-right: 9%;
-  vertical-align: middle;
-}
-/* icon next to input */
-html.ui-mobile head + body .field_container div.ui-field-contain div .ui-input-has-icon ~ .ui-btn {
-  margin-right: 0;
-  margin-top: 0;
-  margin-bottom: 0;
-  -webkit-border-radius: .325em;
-  padding: .2em .5%;
-  border-radius: .325em;
-  width: 8%;
-  vertical-align: middle;
-}
-/* extend only-child inputs without side icons  */
-html.ui-mobile head + body .field_container div.ui-field-contain div .ui-input-has-icon:only-child {
-  width: 100%;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-
-@media (min-width: 62em) {
-  /* USED for searchfield + icon */
-  /* XXX: this should not be necessary! fullwidth fields need different dimensions */
-  html.ui-mobile head + body .field_container .bottom div.ui-field-contain div .ui-input-has-icon {
-    width: 87%;
-    padding-right: 9%;
-  }
-  /* icon next to input */
-  html.ui-mobile head + body .field_container .bottom div.ui-field-contain div .ui-input-has-icon ~ .ui-btn {
-    width: 2%;
-  }
-}
-
-/* remove duplicate border on fieldset and set corners XXX IE8*/
-html.ui-mobile head + body .ui-field-contain fieldset label {
-  border-top-width: 0;
-}
-/* properly inherit corners into fieldset XXX IE8 */
-html.ui-mobile head + body .ui-controlgroup-controls div:first-of-type label {
-  border-top-width: 1px;
-  -webkit-border-top-left-radius: .325em;
-  border-top-left-radius: .325em;
-  -webkit-border-top-right-radius: .325em;
-  border-top-right-radius: .325em;
-}
-html.ui-mobile head + body .ui-controlgroup-controls div:last-of-type label {
-  -webkit-border-bottom-left-radius: .325em;
-  border-bottom-left-radius: .325em;
-  -webkit-border-bottom-right-radius: .325em;
-  border-bottom-right-radius: .325em;
-}
-
-/* input with icon on the right > needs specificty to overwriter JQM height */
-html.ui-mobile head + body div.ui-field-contain > a.ui-btn {
-    border-radius: 0 0.325em 0.325em 0;
-    height: 2.2em;
-    margin: 0 .4em 0 0;
-    width: 2.2em;
-    position: absolute;
-    top: 0;
-    right: 0;
-}
-
-/* make sure search input has no margin, to not offset right hand icon */
-html .ui-input-text,
-html .ui-input-search,
-html .ui-select {
-  margin: 0;
-}
-
-/* pre-enhanced input fix */
-html.ui-mobile head + body div.ui-field-contain div.ui-input-text div.ui-input-btn {
-  width: 1.75em;
-}
-
-/* border-radius for inputs and inputs with icon */
-html.ui-mobile head + body .ui-field-contain > div {
-  -webkit-border-top-right-radius: 0;
-  border-top-right-radius: 0;
-  -webkit-border-bottom-right-radius: 0;
-  border-bottom-right-radius: 0;
-}
-html.ui-mobile head + body .ui-field-contain > :last-child {
-  -webkit-border-top-right-radius: .325em;
-  border-top-right-radius: .325em;
-  -webkit-border-bottom-right-radius: .325em;
-  border-bottom-right-radius: .325em;
-}
-
-/* middle screen */
-@media (max-width: 62em) {
-
-  /* set width and spacing */
-  .left,
-  .right,
-  .center,
-  .bottom {
-    display: block;
-    -webkit-box-sizing: padding-box;
-    -moz-box-sizing: padding-box;
-    box-sizing: padding-box;
-  }
-  
-  /* set width (XXX assume listbox ONLY is in bottom, otherwise padded side */
-  .left,
-  .right,
-  .bottom,
-  .center {
-    width: auto;
-  }
-
-  /* reset min/max width and shrink labels ... */
-  html.ui-mobile head + body label,
-  html.ui-mobile head + body legend {
-    min-width: 0;
-    max-width: none;
-    font-size: 80%;
-  }
-  /* same for legend, except shrinking */
-  html.ui-mobile head + body label:not(.ui-btn),
-  html.ui-mobile head + body fieldset div.ui-controlgroup-label {
-    min-width: 0;
-    max-width: none;
-  }
-
-  /* <label><div.gadget> */
-  html.ui-mobile head + body .ui-field-contain :first-child:nth-last-child(2) ~ div,
-  html.ui-mobile head + body .ui-field-contain fieldset .ui-controlgroup-controls :first-child:nth-last-child(2) ~ div,
-  .ui-field-contain > label ~ textarea[class*="ui-"] {
-    width: 78%;
-  }
-  /* <label><div.gadget><label><div.gadget> 
-  html.ui-mobile head + body .ui-field-contain :first-child:nth-last-child(4) ~ div,
-  html.ui-mobile head + body .ui-field-contain fieldset .ui-controlgroupcontrols :first-child:nth-last-child(4) ~ div {
-    width: 46%;
-  } */
-  /* <label><div.gadget><label><div.gadget><label><div.gadget> 
-  html.ui-mobile head + body .ui-field-contain :first-child:nth-last-child(6) ~ div,
-  html.ui-mobile head + body .ui-field-contain fieldset .ui-controlgroup-controls :first-child:nth-last-child(6) ~ div {
-    width: 32.99%;
-  }*/
-
-
-  /* bottom/center > 94.4% + 2x2% padding + 2x.25padding */
-  /* extend textarea and fullwidth element container */
-  html.ui-mobile head + body .bottom div.ui-field-contain textarea.ui-input-text,
-  html.ui-mobile head + body .center div.ui-field-contain textarea.ui-input-text,
-  html.ui-mobile head + body .field_container .bottom div.ui-field-contain label + div,
-  html.ui-mobile head + body .field_container .center div.ui-field-contain label + div {
-    width: 78.4%;
-  }
-
-  /* textarea has double space, so needs half of the above */
-  html.ui-mobile head + body div.center div.ui-field-contain  label,
-  html.ui-mobile head + body div.bottom div.ui-field-contain label,
-  html.ui-mobile head + body div.ui-field-contain div.ui-field-contain label {
-    max-width: 20%;
-    min-width: 20%;
-    margin-right: 1.6%; /* no good either, should be 2% */
-  }
-  
-  /* input vs side icon dimensions */
-  html.ui-mobile head + body .field_container div.ui-field-contain div .ui-input-has-icon {
-    width: 84.5%;
-    padding-right: 9%;
-  }
-  /* icon next to input */
-  html.ui-mobile head + body .field_container div.ui-field-contain div .ui-input-has-icon ~ .ui-btn {
-    width: 4%;
-  }
-}
-
-@media (max-width: 48em) {
-
-   /* set width and spacing */
-  .left,
-  .right,
-  .center,
-  .bottom {
-    width: auto;
-    display: block;
-    -webkit-box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    box-sizing: border-box;
-  }
-
-  /* <label><div.gadget> */
-  html.ui-mobile head + body .ui-field-contain :first-child:nth-last-child(2) ~ div,
-  html.ui-mobile head + body .ui-field-contain fieldset .ui-controlgroup-controls :first-child:nth-last-child(2) ~ div,
-  .ui-field-contain > label ~ textarea[class*="ui-"] {
-    max-width: 88%;
-  }
-  /* <label><div.gadget><label><div.gadget> 
-  html.ui-mobile head + body .ui-field-contain :first-child:nth-last-child(4) ~ div,
-  html.ui-mobile head + body .ui-field-contain fieldset .ui-controlgroup-controls :first-child:nth-last-child(4) ~ div {
-    max-width: 88%;
-  }*/
-  /* <label><div.gadget><label><div.gadget><label><div.gadget> 
-  html.ui-mobile head + body .ui-field-contain :first-child:nth-last-child(6) ~ div,
-  html.ui-mobile head + body .ui-field-contain fieldset .ui-controlgroup-controls :first-child:nth-last-child(6) ~ div {
-    width: 32.99%;
-  }*/
-
-  /* bottom/center > 94.4% + 2x2% padding + 2x.25padding */
-  /* extend textarea and fullwidth element container 
-  html.ui-mobile head + body .bottom div.ui-field-contain textarea.ui-input-text,
-  html.ui-mobile head + body .center div.ui-field-contain textarea.ui-input-text {
-    max-width: 90%;
-  }*/
-
-  /* and textarea/other elements in center/bottom */
-  html.ui-mobile head + body .center textarea,
-  html.ui-mobile head + body .bottom textarea,
-  html.ui-mobile head + body .field_container .bottom div.ui-field-contain label ~ div,
-  html.ui-mobile head + body .field_container .center div.ui-field-contain label ~ div {
-    max-width: 100%;
-  }
-
-  /* input vs side icon dimensions */
-  html.ui-mobile head + body .field_container div.ui-field-contain div .ui-input-has-icon {
-    width: 83%;
-    padding-right: 7%;
-  }
-  /* icon next to input */
-  html.ui-mobile head + body .field_container div.ui-field-contain div .ui-input-has-icon ~ .ui-btn {
-    width: 6.5%;
-  }
-
-  /* extend textarea and fullwidth element container */
-  .center .ui-field-contain {
-    width: auto;
-  }
-}
-
-/* need to override JQM breakpoint */
-@media (max-width: 28em) {
-
-  /* remove float */
-  .ui-field-contain > label ~ [class*="ui-"],
-  .ui-field-contain fieldset .ui-controlgroup-controls,
-  .ui-field-contain > label + div {
-    margin: auto;
-    float: none;
-  }
-
-  /* unset max-width */
-  html.ui-mobile head + body .ui-field-contain :first-child:nth-last-child(2) ~ div,
-  html.ui-mobile head + body .ui-field-contain fieldset .ui-controlgroup-controls :first-child:nth-last-child(2) ~ div,
-  html.ui-mobile head + body .ui-field-contain :first-child:nth-last-child(3) ~ div,
-  html.ui-mobile head + body .ui-field-contain fieldset .ui-controlgroup-controls :first-child:nth-last-child(3) ~ div {
-    max-width: none;
-  }
-
-  /* make sure there is a bottom border */
-  .ui-field-contain,
-  .ui-field-contain:last-child {
-    border-bottom: 1px solid rgba(0, 0, 0, 0.15);
-  }
-
-  /* JQM switches margin to padding on the field-container to show the border,
-     adjust add-on icon position matching padding-top: .8em */
-  html.ui-mobile head + body div.ui-field-contain > a.ui-btn {
-    top: 22%;
-  }
-
-  /* <label><div.gadget> */
-  html.ui-mobile head + body .ui-field-contain :first-child:nth-last-child(2) ~ div,
-  html.ui-mobile head + body .ui-field-contain fieldset .ui-controlgroup-controls :first-child:nth-last-child(2) ~ div {
-    width: 100%;
-    max-width: none;
-    -webkit-box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    box-sizing: border-box;
-  }
-
-  /* and textarea/other elements in center/bottom */
-  html.ui-mobile head + body .bottom div.ui-field-contain textarea.ui-input-text,
-  html.ui-mobile head + body .center div.ui-field-contain textarea.ui-input-text,
-  html.ui-mobile head + body .field_container .bottom div.ui-field-contain label ~ div,
-  html.ui-mobile head + body .field_container .center div.ui-field-contain label ~ div {
-    max-width: none;
-    width: 100%;
-  }
-
-  /* input vs side icon dimensions */
-  html.ui-mobile head + body .field_container div.ui-field-contain div .ui-input-has-icon {
-    width: 81%;
-    padding-right: 7%;
-  }
-  /* icon next to input */
-  html.ui-mobile head + body .field_container div.ui-field-contain div .ui-input-has-icon ~ .ui-btn {
-    width: 8%;
-  }
-  /* bottom icon (center, too) need different dimensions */
-  html.ui-mobile head + body .field_container .bottom div.ui-field-contain div .ui-input-has-icon ~ .ui-btn {
-    width: 9.5%;
-    padding-top: 1em;
-    padding-bottom: 1em;
-  }
-  
-  /* extend textarea and fullwidth element container */
-  .center .ui-field-contain {
-    width: auto;
-  }
-}
-/*
-   -------------------------------------------------------------------------
-   ---------------------------- Collapsible --------------------------------
-   -------------------------------------------------------------------------
-*/
-.ui-collapsible .ui-listview .ui-last-child {
-  -webkit-border-bottom-left-radius: 0;
-  border-bottom-left-radius: 0;
-  -webkit-border-bottom-right-radius: 0;
-  border-bottom-right-radius: 0;
-}
-.ui-collapsible-set > .ui-last-child .ui-listview > .ui-last-child {
-  -webkit-border-bottom-left-radius: inherit;
-  border-bottom-left-radius: inherit;
-  -webkit-border-bottom-right-radius: inherit;
-  border-bottom-right-radius: inherit;
-}
-
-
-/* collapsible inside listview (make collapsible look like divider) */
-/* XXX: not sure this is so good */
-html .ui-listview > li.ui-collapsible {
-  margin: 0;
-  padding: 0;
-}
-/* no padding for header */
-html .ui-listview > li.ui-collapsible .ui-collapsible-heading {
-  padding: 0;
-}
-/* format button inside header */
-html .ui-listview > li.ui-collapsible .ui-collapsible-heading a {
-  background: 0 none;
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-  box-sizing: border-box;
-  display: block;
-  padding: 0 0 0 1.5em;
-  text-decoration: none;
-  width: 100%;
-  pointer-events: none;
-}
-/* icon size */ 
-html .ui-listview > li.ui-collapsible .ui-collapsible-heading a:after {
-  background: 0 none;
-}
-/* remove background on fake caret icon on header */
-html .ui-listview > li.ui-collapsible .ui-collapsible-heading:after {
-  background: 0 none;
-}
-/* remove margin and padding on collapsible content */
-html .ui-listview > li.ui-collapsible .ui-collapsible-content {
-  padding: 0;
-}
-html .ui-listview > li.ui-collapsible .ui-collapsible-content > fieldset {
-  margin: 0;
-}
-html .ui-listview > li.ui-collapsible .ui-collapsible-content > fieldset form .ui-btn {
-  border-right-width: 0;
-  border-left-width: 0;
-  text-align: left;
-}
-html .ui-listview > li.ui-collapsible .ui-collapsible-content > fieldset form:last-child .ui-btn {
-  border-bottom-width: 0;
-}
-/*
-   -------------------------------------------------------------------------
-   ------------------------------ Table --------t----------------------------
-   -------------------------------------------------------------------------
-*/
-
-/* default table styles */
-table {
-  border-collapse: separate;
-  border-spacing: 0;
-  padding: 0;
-  width: 100%;
-}
-table th,
-table td {
-  line-height: 1.5em;
-  text-align: left;
-  min-height: 2.5em; /* hardcoded if no links;*/
-  vertical-align: middle;
-  padding: 0;
-}
-table th .ui-btn,
-table td .ui-btn {
-  line-height: normal;
-}
-table th {
-  font-weight: bold;
-}
-table caption {
-  text-align: left;
-  margin-bottom: 1.4em;
-  opacity: .5;
-}
-
-/* table header  (not thead!) */
-.ui-table-header ~ table {
-  border-top-width: 0;
-}
-
-  
-/* hard-lock margin */
-html body .ui-table-header .ui-title {
-  margin: 0 30%
-}
-
-
-/* radius */
-.ui-table-inset {
-  -webkit-border-radius: .3125em;
-  border-radius: .3125em;
-}
-
-/* hover table header radius */
-.ui-table-header .ui-btn-left .ui-first-child:hover {
-  -webkit-border-top-left-radius: .325em;
-  border-top-left-radius: .325em;
-}
-.ui-table-header .ui-btn-right .ui-last-child:hover {
-  -webkit-border-top-right-radius: .325em;
-  border-top-right-radius: .325em;
-}
-
-/* reset page header customizations ... */
-.ui-table-header .ui-controlgroup-horizontal .ui-controlgroup-controls,
-.ui-table-header .ui-controlgroup-horizontal .ui-controlgroup-controls a.ui-btn, 
-.ui-table-header .ui-controlgroup-controls .ui-btn-icon-notext,
-/* reset field-container capturing table-header controlgroups as listbox is inside field-container... */
-html.ui-mobile head + body .ui-field-contain *:first-child:nth-last-child(3) ~ div, 
-html.ui-mobile head + body .ui-field-contain fieldset .ui-controlgroup-controls *:first-child:nth-last-child(3) ~ div {
-  width: auto;
-}
-
-.ui-table-inset thead,
-.ui-table-inset thead tr:first-child {
-  -webkit-border-top-left-radius: inherit;
-  border-top-left-radius: inherit;
-  -webkit-border-top-right-radius: inherit;
-  border-top-right-radius: inherit;
-}
-.ui-table-inset thead tr:first-child td:first-child,
-.ui-table-inset thead tr:first-child th:first-child,
-.ui-table-header ~ .ui-table-inset {
-  -webkit-border-top-left-radius: 0;
-  border-top-left-radius: 0;
-}
-.ui-table-inset thead tr:first-child td:last-child,
-.ui-table-inset thead tr:first-child th:last-child,
-.ui-table-header ~ .ui-table-inset {
-  -webkit-border-top-right-radius: 0;
-  border-top-right-radius: 0;
-}
-.ui-table-inset tbody tr:last-child td:first-child,
-.ui-table-inset tbody tr:last-child th:first-child,
-.ui-table-header {
-  -webkit-border-bottom-left-radius: inherit;
-  border-bottom-left-radius: inherit;
-}
-.ui-table-inset tbody tr:last-child td:last-child,
-.ui-table-inset tbody tr:last-child th:last-child,
-.ui-table-header {
-  -webkit-border-bottom-right-radius: inherit;
-  border-bottom-right-radius: inherit;
-}
-
-/* table footer */
-tfoot,
-tfoot tr,
-.ui-table-inset tfoot tr:last-child th:last-child,
-.ui-table-inset tfoot tr:last-child td:last-child,
-.ui-table-inset tfoot .ui-corner-all {
-  -webkit-border-bottom-right-radius: .325em;
-  border-bottom-right-radius: .325em;
-}
-tfoot,
-tfoot tr,
-.ui-table-inset tfoot tr:last-child th:first-child,
-.ui-table-inset tfoot tr:last-child td:first-child,
-.ui-table-inset tfoot .ui-corner-all {
-  -webkit-border-bottom-left-radius: .325em;
-  border-bottom-left-radius: .325em;
-}
-
-/* make sure JQM does not mess up table footer */
-html .ui-field-contain tfoot .ui-controlgroup-controls {
-    -webkit-box-sizing: content-box;
-    -moz-box-sizing: content-box;
-    box-sizing: content-box;
-    float: none;
-    width: auto;
-}
-html .ui-field-contain tfoot .ui-controlgroup-controls {
-    margin: auto;
-}
-
-/* box size everything */
-html table td,
-html table th,
-html table td a,
-html table th a {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-/* header cell formatting */
-html table thead th,
-html table thead td {
-  text-shadow: none;
-  font-weight: normal;
-  vertical-align: middle;
-  text-align: center;
-  padding: .5em 0; /* must be changed if there is a link in the header! */
-}
-
-/* uncss and stretch table body links */
-html table tbody td a,
-html table tbody th a {
-  text-decoration: none;
-  font-weight: normal;
-  width: 100%;
-  display: block;
-  padding: .4em .25em;
-  min-height: inherit;
-}
-html table tbody td:hover a,
-html table tbody th:hover a {
-  text-decoration: none;
-}
-
-/* override JQM default format */
-html table {
-  border: 1px solid;
-}
-/* alignment */
-html table thead th .ui-btn,
-html table thead td .ui-btn {
-  text-align: left;
-}
-
-/* center rowspan header cells */
-html table thead th[colspan] {
-  text-align: center;
-}
-
-html .ui-listbox-error {
-  text-align: center;
-}
-
-
-
-html .ui-content-non-editable {
-  word-wrap: break-word;
-  white-space: pre-line;
-}
-
-/* cell background */
-html table thead tr,
-html table tfoot tr,
-html table tbody tr:nth-child(even) {
-  background-color: #eeeeee;
-  background-color: rgba(0,0,0,.04);
-}
-
-/* cell strokes */
-html table tbody th,
-html table tbody td,
-html table thead th {
-  border-bottom: 1px solid #e6e6e6;
-  border-bottom: 1px solid rgba(0,0,0,.05);
-  border-right: 1px solid #e6e6e6;
-  border-right: 1px solid rgba(0,0,0,.05);
-}
-html table tbody tr:last-child td:last-child {
-  border-right: 0;
-}
-
-/* vertical strokes */
-html table thead tr td,
-html table thead tr th,
-html table tbody tr td,
-html table tbody tr th {
-  border-right-width: 1px;
-  border-left-width: 1px;
-}
-html table thead tr td:first-child,
-html table thead tr th:first-child,
-html table tbody tr td:first-child,
-html table tbody tr th:first-child {
-  border-left-width: 0;
-}
-html table thead tr td:last-child,
-html table thead tr th:last-child,
-html table tbody tr td:last-child,
-html table tbody tr th:last-child {
-  border-right-width: 0;
-}
-
-/* footer always blocks */
-tfoot th,
-tfoot td {
-  padding: 0;
-}
-/* pagination */
-tfoot .ui-controlgroup {
-  margin: 0;
-  width: 100%;
-  text-align: right;
-}
-/* cut corners */
-tfoot .ui-controlgroup .ui-controlgroup-controls .ui-first-child {
-  -webkit-border-top-left-radius: 0;
-  border-top-left-radius: 0;
-  -webkit-border-bottom-left-radius: 0;
-  border-bottom-left-radius: 0;
-}
-tfoot .ui-controlgroup.ui-controlgroup-horizontal .ui-controlgroup-controls .ui-btn.ui-last-child {
-  -webkit-border-top-right-radius: 0;
-  border-top-right-radius: 0;
-  border-right-width: 0;
-}
-tfoot .ui-controlgroup .ui-controlgroup-controls span,
-tfoot .ui-controlgroup .ui-controlgroup-controls a {
-  border-bottom-width: 0;
-  border-top-width: 0;
-}
-
-/* paging-menu records indicator height XXX not sure, don't like */
-.ui-paging-menu .ui-controlgroup-controls > span {
-  line-height: 1.6em;
-}
-
-/* hide table header border */
-div.ui-table-header {
-  border-width: 1px;
-}
-/* need pseudo to add transparency over ui-bar-xxx */
-html .ui-table-header:before {
-  background-color: rgba(0, 0, 0, 0.04);
-  content: "";
-  height: 39px; /* not nice */
-  position: absolute;
-  width: 100%;
-}
-
-/* convert to listview look */
-@media (max-width: 62em) {
-
-  /* show or hide table header/footer */
-  html table thead,
-  html table tfoot {
-    width: 100%;
-    display: block;
-  }
-  
-  table th, table td {
-    min-height: 0;
-  }
-
-  /* accessibly hide table header if there is a hand made table-header */
-  html .ui-table-header ~ table thead {
-    position: absolute !important;
-    height: 1px;
-    width: 1px;
-    overflow: hidden;
-    clip: rect(1px,1px,1px,1px);
-  }
-  
-  /* remove bottom border */
-  html div.ui-table-header {
-    border-bottom-width: 0;
-  }
-  /* overwrite JQM icon positioning */
-  html .ui-table-header .ui-controlgroup-controls .ui-btn:after {
-    left: .6em;
-  }
-
-  /* fix pagination width */
-  html .ui-field-contain tfoot .ui-controlgroup-controls {
-    width: 100%;
-  }
-
-  /* hide all but first row and first cell */
-  html table thead tr,
-  html table thead tr:first-child td,
-  html table thead tr:first-child th {
-    display: none;
-  }
-  html table thead tr:first-child,
-  html table thead tr:first-child td:first-child,
-  html table thead tr.first-child th:first-child {
-    display: block;
-  }
-
-  /* center first cell */
-  html table thead tr:first-child td:first-child,
-  html table thead tr:first-child th:first-child {
-    text-align: center;
-  }
-
-  /* remove all cell borders */
-  html body table tbody td,
-  html body table tbody th,
-  html body table thead td,
-  html body table thead th {
-    border-right-width: 0;
-    border-left-width: 0;
-  }
-
-  /* hide background and borders */
-  html table tbody tr:nth-child(odd) td,
-  html table tbody tr:nth-child(odd) th {
-    background-color: transparent;
-    border-right-width: 0;
-    border-left-width: 0;
-  }
-  html table tbody tr td,
-  html table tbody tr th {
-    border-bottom-width: 0;
-  }
-
-  /* block the table, set to overflow to cover leaking cells */
-  table.ui-responsive,
-  table.ui-responsive tbody {
-    display: block;
-    width: 100%;
-  }
-
-  /* each row becomes a table, now block */
-  table.ui-responsive tr {
-    display: block;
-    line-height: 1.5em;
-    overflow: hidden;
-    width: 100%;
-  }
-
-  /* all cells inline-block */
-  table.ui-responsive tr td,
-  table.ui-responsive tr th {
-    display: inline-block;
-  }
-  
-  /* first cell must be locked */
-  table.ui-responsive tr td:first-child,
-  table.ui-responsive tr th:first-child {
-    display: inline-block;
-    width: 100%;
-  }
-
-  /* link icon for table rows */
-  table.ui-responsive tbody tr {
-    min-height: 3.9em;
-    max-height: 3.9em;
-    position: relative;
-    line-height: 1.1em;
-    -webkit-box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    box-sizing: border-box;
-    border-top: 1px solid;
-    padding: .4em .25em;
-  }
-
-  /* bottom border on last row */  
-  table.ui-responsive tbody tr:last-child {
-    border-bottom-width: 1px;
-    border-bottom-style: solid;
-  }
-
-  /* icon itself */
-  table.ui-responsive tbody tr:after {
-    font-size: 1.25em;
-    background: transparent;
-    border-radius: 0;
-    content: "";   /* Thanks FontAwesome */
-    font-family: FontAwesome;
-    font-style: normal;
-    font-weight: normal;
-    line-height: 1;
-    right: 0;
-    margin-top: -11px;
-    top: 50%;
-    display: block;
-    height: 22px;
-    position: absolute;
-    width: 22px;
-  }
-
-  /* stretch first link to full width (positioned relative to <tr>) */
-  html table tbody tr td:first-child a,
-  html table tbody tr th:first-child a {
-    position: absolute;
-    width: 100%;
-    top: 0;
-    bottom: 0;
-    margin-left: -.25em;
-    overflow: hidden;
-    white-space: nowrap;
-    text-overflow: ellipsis;
-  }
-  
-  /* set line height on cells after first row */
-  table tbody tr th:first-child ~ th {
-    line-height: 0;
-  }
-
-  /* disactivate all links in these cells and set line-height, too */
-  html table tbody tr td:first-child ~ td a,
-  html table tbody tr th:first-child ~ th a,
-  html table tbody tr td:first-child ~ td a,
-  html table tbody tr th:first-child ~ th a {
-    display: inline-block;
-    padding: 0;
-    pointer-events: none;
-    line-height: 1em;
-    max-height: 1.05em;
-    overflow: hidden;
-  }
-  
-  /* pad non-empty cells just a little */
-  html table tbody tr td:first-child ~ td a:not(:empty),
-  html table tbody tr th:first-child ~ td a:not(:empty),
-  html table tbody tr td:first-child ~ th a:not(:empty),
-  html table tbody tr th:first-child ~ th a:not(:empty) {
-    padding: 0 0.1em;
-  }
-  
-  /* add tide */
-  html table tbody tr td:first-child ~ td:not(:last-child) a:not(:empty):after,
-  html table tbody tr th:first-child ~ td:not(:last-child) a:not(:empty):after,
-  html table tbody tr td:first-child ~ th:not(:last-child) a:not(:empty):after, 
-  html table tbody tr th:first-child ~ th:not(:last-child) a:not(:empty):after {
-    content: " ~ ";
-  }
-
-  /* pad top row */
-  html table tbody tr td:first-child, tbody tr th:first-child {
-    line-height: 1em;
-    padding-bottom: 1.25em;
-  }
-
-  /* expand to fullwidth */
-  tfoot .ui-controlgroup-controls {
-    width: 100%;
-  }
-
-  /* straighten corners of first/last child */
-  tfoot .ui-controlgroup-horizontal .ui-controlgroup-controls .ui-first-child {
-    -webkit-border-top-left-radius: 0;
-    border-top-left-radius: 0;
-    border-left-width: 0;
-    -webkit-border-bottom-left-radius: .325em;
-    border-bottom-left-radius: .325em;
-  }
-  tfoot .ui-controlgroup-horizontal .ui-controlgroup-controls .ui-last-child {
-    -webkit-border-top-right-radius: 0;
-    border-top-right-radius: 0;
-    border-right-width: 0;
-  }
-  tfoot .ui-controlgroup-horizontal .ui-controlgroup-controls a,
-  tfoot .ui-controlgroup-horizontal .ui-controlgroup-controls span {
-    border-bottom-width: 0;
-    border-top-width: 0;
-    -webkit-box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    box-sizing: border-box;
-  }
-}
-
-@media (max-width: 48em) {
-  /* give more space to record counter and move icons to the middle */
-  tfoot .ui-paging-menu.ui-controlgroup-horizontal .ui-controlgroup-controls > span {
-    width: 50%;
-  }
-  tfoot .ui-paging-menu.ui-controlgroup-horizontal .ui-controlgroup-controls > a.ui-btn {
-    width: 25%;
-  }
-  tfoot .ui-paging-menu.ui-controlgroup-horizontal .ui-controlgroup-controls > a.ui-btn-icon-left:after {
-    right: .5em;
-  }
-  tfoot .ui-paging-menu.ui-controlgroup-horizontal .ui-controlgroup-controls > a.ui-btn-icon-right:after {
-    left: .5em;
-  }
-}
-
-/*
-   -------------------------------------------------------------------------
-   ----------------------------- Textinput ---------------------------------
-   -------------------------------------------------------------------------
-*/
-/* remove JQM icons */
-.ui-input-search:after {
-  background-image: none;
-}
-/* pre-enhanced clear button padding */
-.ui-input-has-clear .ui-btn input {
-    padding-left: 0;
-    padding-right: 0;
-}
-/* multiline */
-.ui-input-has-multiline {
-  padding-left: 2.375em;
-}
-.ui-input-has-multiline textarea {
-  width: 100%;
-}
-/* correctly display loader TODO: REMOVE */
-html body .ui-input-has-clear .ui-icon-spinner:after {
-    font-size: 1.5em;
-}
-/* disable spinner href */
-html body .ui-input-has-clear .ui-icon-spinner {
-	cursor: default !important;
-	pointer-events: none;
-}
-/* autocomplete font-size TODO: Verify absolute works... */
-html body .ui-input-has-clear ul.ui-listview {
-  position: absolute;
-  margin: .5em 0 0 0;
-  width: 100%;
-  z-index: 501;
-}
-/* add side borders to results */
-html body .ui-input-has-clear ul.ui-listview li.ui-li-static,
-html body .ui-input-has-clear ul.ui-listview li.ui-li-divider {
-  border-left-width: 1px;
-  border-right-width: 1px;
-}
-/* font size should not be set here */
-html body .ui-input-has-clear ul.ui-listview li.ui-li-static {
-  font-size: .85em;
-  cursor: pointer;
-}
-/* borders, TODO: no font size here, TODO: theme this! */
-html body .ui-input-has-clear ul.ui-listview li.ui-li-divider {
-  font-size: .7em;
-  color: #777;
-  text-align: center;
-}
-
-/* hide background on search icon */
-html body .ui-input-has-clear .ui-listview li.ui-btn-icon-right:after {
-  background: 0 none;
-}
-/*
-   -------------------------------------------------------------------------
-   --------------------------- Inputs:readonly -----------------------------
-   -------------------------------------------------------------------------
-*/
-/* remove box-shadow on readonly elements */
-.ui-state-readonly,
-.ui-state-readonly:focus,
-.ui-state-readonly input.ui-focus,
-.ui-state-readonly select.ui-focus {
-	cursor: default !important;
-	pointer-events: none;
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-  border: 0 none;
-  text-align: left;
-  padding-left: 0;
-}
-html body .ui-select .ui-state-readonly {
-  padding-left: .4em;
-  padding-top: .4em;
-  padding-bottom: .4em;
-}
-html body .ui-state-readonly:after {
-  content: none;
-}
-/* skin readonly jump, too */
-html body .ui-state-readonly ~ .ui-btn {
-  border: 0 none;
-  -moz-box-shadow: none;
-  -webkit-box-shadow: none;
-  box-shadow: none;
-}
-/*
-   -------------------------------------------------------------------------
-   ----------------------------- Checkbox ----------------------------------
-   -------------------------------------------------------------------------
-*/
-/* overwrite JQM logos */
-html body form .ui-icon-check:after,
-html body form .ui-btn.ui-checkbox-on.ui-checkbox-on:after,
-html body form .ui-btn.ui-checkbox-off:after {
-  background: 0 none;
-  border: 0;
-  text-shadow: none;
-  color: inherit;
-  margin: -7px 2px 0;
-}
-html.ui-mobile body .ui-radio-on:after,
-html.ui-mobile body .ui-btn.ui-radio-on:after {
-  background: 0 none;
-  border: 0;
-  text-shadow: none;
-}
-
-/* fix double borders in groups of radios/checks */
-html.ui-mobile body .ui-controlgroup .ui-checkbox label {
-  border-bottom-width: 0px;
-}
-html.ui-mobile body .ui-controlgroup .ui-checkbox:last-child label {
-  border-bottom-width: 1px;
-}
-/*
-   -------------------------------------------------------------------------
-   ----------------------------- Select ------------------------------------
-   -------------------------------------------------------------------------
-*/
-/* align with height of inputs */
-html body div.ui-select div {
-    height: 2em;
-    line-height: 2em;
-    padding-bottom: 0;
-    padding-top: 0;
-}
-html body div.ui-select div span {
-  height: 100%;
-  vertical-align: middle ;
-}
-
-/* at least fit a year in a select without truncating */
-.ui-select .ui-btn > span:not(.ui-li-count) {
-  min-width: 3em;
-}
-
-/*
-   -------------------------------------------------------------------------
-   ------------------------------- Panel -----------------------------------
-   -------------------------------------------------------------------------
-*/
-/* panel header height and border (hardcode height for now) */
-html .ui-panel .ui-header {
-  border-bottom-width: 1px;
-  height: 39px;
-}
-html .ui-panel .ui-header .ui-btn,
-html .ui-panel .ui-header:hover .ui-btn {
-  min-height: 39px;
-}
-
-/* we should not need to set this, JQM does it too */
-html .ui-panel .ui-panel-inner {
-  padding: 0;
-}
-/* position panel content elements */
-html .ui-panel .ui-content > .ui-listview,
-html .ui-panel .ui-content > form,
-html .ui-panel .ui-panel-inner .ui-panel .ui-content .ui-listview {
-  margin: 1em -1em auto;
-}
-html .ui-panel .ui-content .center,
-html .ui-panel .ui-content .bottom {
-  padding: 0;
-}
-html .ui-panel .ui-content .ui-field-contain {
-  margin: 0;
-}
-/* fix font-size inside panel header/footer buttons */
-html body .ui-panel .ui-header .ui-controlgroup .ui-btn-icon-notext,
-html body .ui-panel .ui-footer .ui-controlgroup .ui-btn-icon-notext {
-  font-size: 100%;
-}
-/* content sections inside panels */
-html .ui-panel .ui-panel-inner .ui-content-section {
-  border: 0 none;
-  border-radius: 0;
-  -moz-box-shadow: none;
-  -webkit-box-shadow: none;
-  box-shadow: none;
-}
-/* handle listviews inside panels */
-html body .ui-listview .ui-li-divider {
-  font-weight: 700;
-  padding: 0.5em 1em;
-  border-bottom-width: 0;
-}
-/* padding for custom icons */
-html .ui-panel .ui-listview li a,
-html .ui-panel .ui-listview li div.ui-btn {
-  /*padding: .4em 2.75em .4em 1em;*/
-  padding: .4em 2.75em !important
-}
-/*
-html .ui-panel .ui-listview .ui-li-has-icon a {
-  padding-left: 2.75em;
-}
-*/
-
-.ui-panel .ui-listview > li p {
-  font-size: 70%;
-  margin: 0;
-}
-.ui-panel .ui-listview .ui-li-has-thumb > img:first-child,
-.ui-panel .ui-listview .ui-li-has-thumb > .ui-btn > img:first-child {
-  max-height: 2.5em;
-  max-width: 2.5em;
-  overflow: hidden;
-  padding: 0.2em 0;
-}
-/* form elements inside panel */
-html .ui-panel .ui-panel-inner .ui-corner-all {
-  -webkit-border-radius: 0.3125em;
-  border-radius: 0.3125em;
-}
-/* clean controlgroup borders (not nice, should be ui-content) */
-html .ui-panel .ui-content-section .ui-controlgroup-controls > div:first-of-type .ui-btn {
-  -webkit-border-bottom-left-radius: 0;
-  -webkit-border-bottom-right-radius: 0;
-  border-bottom-left-radius: 0;
-  border-bottom-right-radius: 0;
-}
-html .ui-panel .ui-content-section .ui-controlgroup-controls > div:last-of-type .ui-btn {
-  -webkit-border-top-left-radius: 0;
-  -webkit-border-top-right-radius: 0;
-  border-top-left-radius: 0;
-  border-top-right-radius: 0;
-  border-top-color: transparent;
-}
-
-html .ui-panel .ui-content-section {
-  margin-top: 0;
-}
-/* XXX: not generic!!! */ 
-/* side by side buttons (normally this should be done by postion:abs, but requires another wrapper */
-html .ui-panel .ui-content-section .ui-controlgroup-controls > div.ui-select:last-of-type {
-  display: inline-block;
-  vertical-align: top;
-  width: 81.25%; /* BAD! use wrapper & position */
-  padding: 0;
-}
-html .ui-panel .ui-content-section .ui-controlgroup-controls > div.ui-select:last-of-type ~ button {
-  vertical-align: top;
-  display: inline-block;
-  margin-left: -4px; /* to remove space between elements */
-  -webkit-border-bottom-right-radius: .3125em;
-  border-bottom-right-radius: .3125em;
-  border-left-color: transparent;
-  border-top-color: transparent;
-  padding-bottom: .75em;
-}
-html .ui-panel .ui-content-section .ui-controlgroup-controls > div.ui-select:last-of-type .ui-btn {
-  -webkit-border-bottom-right-radius: 0;
-  border-bottom-right-radius: 0;
-}
-/* element padding */
-html .ui-panel .ui-content-section .ui-controlgroup-controls > div.ui-select .ui-btn {
-  padding: 4px 0;
-}
-/* nasty padding */ 
-html .ui-controlgroup-controls ~.ui-controlgroup-controls {
-  padding: .5em 0;
-}
-  
-
-/*
-   -------------------------------------------------------------------------
-   ------------------------------- Grid ------------------------------------
-   -------------------------------------------------------------------------
-*/
-
-/* overwrite copy JQM CSS */
-.ui-grid-container > ul, .ui-grid-container > ul li {
-    list-style: none outside none;
-    margin-left: 0;
-    margin-right: 0;
-    padding: 0;
-}
-
-/* cutoff overlapping content*/
-.ui-grid-container > ul {
-    overflow: hidden;
-    margin: 0;
-}
-
-/* box-size */
-.ui-grid-container > ul > li {
-  float: left;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -ms-box-sizing: border-box;
-  box-sizing: border-box;
-}
-
-/* clear out */
-.ui-grid-container > ul > li:first-child {
-  clear: left;
-}
-
-/* thx: Lea Verou - http://bit.ly/1rAhqzm */
-/* grid cell width depending on number of elements, up to 10 */
-
-/* override JQM */
-.ui-grid-container > li.ui-block-a,
-.ui-grid-container > li.ui-block-b {
-  clear: none;
-}
-
-/* base width */
-.ui-grid-container.ui-responsive > ul > li {
-  width: auto;
-}
-
-/* "cell width" */
-.ui-grid-container > ul > li:first-child:nth-last-child(1) {
-  width: 100%;
-}
-.ui-grid-container > ul > li:first-child:nth-last-child(2),
-.ui-grid-container > ul > li:first-child:nth-last-child(2) ~ li {
-  width: 50%;
-}
-.ui-grid-container > ul li:first-child:nth-last-child(3),
-.ui-grid-container > ul li:first-child:nth-last-child(3) ~ li,
-.ui-grid-container > ul.ui-grid-column-3 > li:first-child:nth-last-child(n),
-.ui-grid-container > ul.ui-grid-column-3 > li:first-child:nth-last-child(n) ~ li  {
-  width: 33.3333%;
-}
-.ui-grid-container > ul > li:first-child:nth-last-child(4),
-.ui-grid-container > ul > li:first-child:nth-last-child(4) ~ li,
-.ui-grid-container > ul.ui-grid-column-4 > li:first-child:nth-last-child(n),
-.ui-grid-container > ul.ui-grid-column-4 > li:first-child:nth-last-child(n) ~ li {
-  width: 25%;
-}
-.ui-grid-container > ul > li:first-child:nth-last-child(5),
-.ui-grid-container > ul > li:first-child:nth-last-child(5) ~ li,
-.ui-grid-container > ul.ui-grid-column-5 > li:first-child:nth-last-child(n),
-.ui-grid-container > ul.ui-grid-column-5 > li:first-child:nth-last-child(n) ~ li {
-  width: 20%;
-}
-.ui-grid-container > ul > li:first-child:nth-last-child(6),
-.ui-grid-container > ul > li:first-child:nth-last-child(6) ~ li,
-.ui-grid-container > ul.ui-grid-column-6 > li:first-child:nth-last-child(n),
-.ui-grid-container > ul.ui-grid-column-6 > li:first-child:nth-last-child(n) ~ li {
-  width: 16.666%;
-}
-.ui-grid-container > ul > li:first-child:nth-last-child(7),
-.ui-grid-container > ul > li:first-child:nth-last-child(7) ~ li,
-.ui-grid-container > ul.ui-grid-column-7 > li:first-child:nth-last-child(n),
-.ui-grid-container > ul.ui-grid-column-7 > li:first-child:nth-last-child(n) ~ li {
-  width: 14.285714286%;
-}
-.ui-grid-container > ul > li:first-child:nth-last-child(8),
-.ui-grid-container > ul > li:first-child:nth-last-child(8) ~ li,
-.ui-grid-container > ul.ui-grid-column-8 > li:first-child:nth-last-child(n),
-.ui-grid-container > ul.ui-grid-column-8 > li:first-child:nth-last-child(n) ~ li {
-  width: 12.5%;
-}
-.ui-grid-container > ul > li:first-child:nth-last-child(9),
-.ui-grid-container > ul > li:first-child:nth-last-child(9) ~ li,
-.ui-grid-container > ul.ui-grid-column-9 > li:first-child:nth-last-child(n),
-.ui-grid-container > ul.ui-grid-column-9 > li:first-child:nth-last-child(n) ~ li {
-  width: 11.112%;
-}
-.ui-grid-container > ul > li:first-child:nth-last-child(10),
-.ui-grid-container > ul > li:first-child:nth-last-child(10) ~ li,
-.ui-grid-container > ul.ui-grid-column-10 > li:first-child:nth-last-child(n),
-.ui-grid-container > ul.ui-grid-column-10 > li:first-child:nth-last-child(n) ~ li {
-  width: 10%;
-}
-
-/* rowspan */
-/* 3 cells */
-html .ui-grid-container > ul.ui-grid-column-3 > li:nth-child(-n+2).ui-grid-span-2 {
-  width: 66.666%;
-}
-/* 4 cells */
-html .ui-grid-container > ul.ui-grid-column-4 > li:nth-child(-n+3).ui-grid-span-2 {
-  width: 50%;
-}
-html .ui-grid-container > ul.ui-grid-column-4 > li:nth-child(-n+2).ui-grid-span-3 {
-  width: 75%;
-}
-/* 5 cells */
-html .ui-grid-container > ul.ui-grid-column-5 > li:nth-child(-n+4).ui-grid-span-2 {
-  width: 40%;
-}
-html .ui-grid-container > ul.ui-grid-column-5 > li:nth-child(-n+3).ui-grid-span-3 {
-  width: 60%;
-}
-html .ui-grid-container > ul.ui-grid-column-5 > li:nth-child(-n+2).ui-grid-span-4 {
-  width: 80%;
-}
-/* 6 cells */
-html .ui-grid-container > ul.ui-grid-column-6 > li:nth-child(-n+5).ui-grid-span-2 {
-  width: 33.33%;
-}
-html .ui-grid-container > ul.ui-grid-column-6 > li:nth-child(-n+4).ui-grid-span-3 {
-  width: 50%;
-}
-html .ui-grid-container > ul.ui-grid-column-6 > li:nth-child(-n+4).ui-grid-span-4 {
-  width: 66.66%;
-}
-html .ui-grid-container > ul.ui-grid-column-6 > li:nth-child(-n+4).ui-grid-span-5 {
-  width: 83.33%;
-}
-/* 7 cells */
-html .ui-grid-container > ul.ui-grid-column-7 > li:nth-child(-n+6).ui-grid-span-2 {
-  width: 28.571428571%;
-}
-html .ui-grid-container > ul.ui-grid-column-7 > li:nth-child(-n+5).ui-grid-span-3 {
-  width: 42.857142857%;
-}
-html .ui-grid-container > ul.ui-grid-column-7 > li:nth-child(-n+4).ui-grid-span-4 {
-  width: 57.142857142%;
-}
-html .ui-grid-container > ul.ui-grid-column-7 > li:nth-child(-n+3).ui-grid-span-5 {
-  width: 71.428571428%;
-}
-html .ui-grid-container > ul.ui-grid-column-7 > li:nth-child(-n+2).ui-grid-span-6 {
-  width: 85.714285714%;
-}
-
-/* 8 cells */
-html .ui-grid-container > ul.ui-grid-column-8 > li:nth-child(-n+7).ui-grid-span-2 {
-  width: 25%;
-}
-html .ui-grid-container > ul.ui-grid-column-8 > li:nth-child(-n+6).ui-grid-span-3 {
-  width: 37.5%;
-}
-html .ui-grid-container > ul.ui-grid-column-8 > li:nth-child(-n+5).ui-grid-span-4 {
-  width: 50%;
-}
-html .ui-grid-container > ul.ui-grid-column-8 > li:nth-child(-n+4).ui-grid-span-5 {
-  width: 62.5%;
-}
-html .ui-grid-container > ul.ui-grid-column-8 > li:nth-child(-n+3).ui-grid-span-6 {
-  width: 75%;
-}
-html .ui-grid-container > ul.ui-grid-column-8 > li:nth-child(-n+2).ui-grid-span-7 {
-  width: 87.5%;
-}
-
-/* 9 cells */
-
-/* 10 cells */
-
-/* responsiveness */
-@media (max-width: 32em) {
-  html.ui-mobile .ui-grid-container.ui-responsive > ul > li,
-  html.ui-mobile .ui-grid-container.ui-responsive > ul[class*="ui-grid-column"] > li {
-    width: 100%;
-  }
-}
-
-/* spacing for grid content  (3rd party), simulate a table */
-/* NOTE: assumes there will be a gadget wrapping grid cell content */
-.ui-grid-container li > div {
-  display: table;
-  border-spacing: .25em;
-  width: 100%;
-}
-.ui-grid-container li > div .ui-grid-content-wrap {
-  display: table-row;
-}
-.ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content {
-  display: table-cell;
-  border-width: 1px;
-  border-style: solid;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-/* prevent table cells from breaking */
-.ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content .ui-link {
-  text-overflow: ellipsis;
-  white-space: nowrap;
-  overflow: hidden;
-}
-/* hardcode table cell width (needs: table-layout:fixed, not IE) */
-@media (min-width: 62em) {
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table {
-    table-layout: fixed;
-  }
-  /* set width depending on number of cols... */
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table tr th:first-child:nth-last-child(1),
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table tr td:first-child:nth-last-child(1) {
-    max-width: 100%;
-  }
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table tr th:first-child:nth-last-child(2),
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table tr th:first-child:nth-last-child(2) ~ th,
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table tr td:first-child:nth-last-child(2),
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table tr td:first-child:nth-last-child(2) ~ td {
-    max-width: 50%;
-  }
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table tr th:first-child:nth-last-child(3),
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table tr th:first-child:nth-last-child(3) ~ th,
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table tr td:first-child:nth-last-child(3),
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table tr td:first-child:nth-last-child(3) ~ td {
-    max-width: 33.3333%;
-  }
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table tr th:first-child:nth-last-child(4),
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table tr th:first-child:nth-last-child(4) ~ th,
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table tr td:first-child:nth-last-child(4),
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table tr td:first-child:nth-last-child(4) ~ td {
-    max-width: 25%;
-  }
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table tr th:first-child:nth-last-child(5),
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table tr th:first-child:nth-last-child(5) ~ th,
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table tr td:first-child:nth-last-child(5),
-  .ui-grid-container li > div .ui-grid-content-wrap .ui-grid-content table tr td:first-child:nth-last-child(5) ~ td {
-    max-width: 20%;
-  }
-}
-
-/* set correct border-radius */
-.ui-grid-content .ui-header {
-  -webkit-border-bottom-left-radius: 0;
-  border-bottom-left-radius: 0;
-  -webkit-border-bottom-right-radius: 0;
-  border-bottom-right-radius: 0;
-  -webkit-border-top-left-radius: .3125em;
-  border-top-left-radius: .3125em;
-  -webkit-border-top-right-radius: .3125em;
-  border-top-right-radius: .3125em;
-}
-
-/* reset border-spacing and max-width of header */
-.ui-grid-content .ui-header .ui-controlgroup {
-  max-width: none;
-  min-width: 0;
-  border-spacing: 0;
-}
-/* remove button border */
-.ui-grid-content .ui-header .ui-controlgroup-controls .ui-btn {
-  border: 0 none;
-}
-/* remove top borders on tables inside grid */
-.ui-grid-content .ui-table-inset {
-  -webkit-border-top-left-radius: 0;
-  border-top-left-radius: 0;
-  -webkit-border-top-right-radius: 0;
-  border-top-right-radius: 0;
-}
-/* remove margin on search field */
-.ui-grid-content .ui-field-contain {
-  margin: 0;
-}
-
-/* add top border to table with header and search form in between */
-.ui-grid-content .ui-table-header ~ form ~ table {
-  border-top-width: 1px;
-}
-/* remove margin from listview and top borders */
-.ui-grid-content .ui-table-header ~ .ui-listview {
-  margin: 0;
-  -webkit-border-top-left-radius: 0;
-  border-top-left-radius: 0;
-  -webkit-border-top-right-radius: 0;
-  border-top-right-radius: 0;
-}
-.ui-grid-content .ui-table-header ~ .ui-listview > li.ui-first-child > a.ui-btn {
-  border-top-width: 0;
-}
-/* corners again */
-.ui-grid-content .ui-controlgroup-controls .ui-btn.ui-corner-all.ui-first-child {
-  -webkit-border-top-left-radius: .3125em;
-  border-top-left-radius: .3125em;
-    -webkit-border-bottom-left-radius: .3125em;
-  border-bottom-left-radius: .3125em;
-}
-.ui-grid-content .ui-controlgroup-controls .ui-btn.ui-corner-all.ui-last-child {
-  -webkit-border-top-right-radius: .3125em;
-  border-top-right-radius: .3125em;
-  -webkit-border-bottom-right-radius: .3125em;
-  border-bottom-right-radius: .3125em;
-}
-
-/* ================================ */
-/* content spacing 
-.ui-grid-content-wrap {
-  position: relative;
-  display: block;
-  width: 99%;
-  margin: 0 0.5% 1em;    
-}
-.ui-grid-content-wrap:before {
-  content: "";
-  padding-top: 100%;
-}
-.ui-grid-content {
-  position: absolute;
-  top: 0;
-  left: 0;
-  bottom: 0;
-  right: 0;
-}
-*/
-/* ================================ */
-/*
-   -------------------------------------------------------------------------
-   ----------------------------- Listview ----------------------------------
-   -------------------------------------------------------------------------
-*/
-/* override JQM list divider px font-size */
-.ui-listview li.ui-li-divider {
-  font-size: inherit;
-}
-.ui-listview li h4.ui-li-divider {
-  font-size: 1em; 
-}
-/* space between listviews */
-html .ui-listview ~ .ui-listview {
-  margin-top: 1em;
-}
-/* remove margin on headers */
-html body .ui-listview > li h1,
-html body .ui-listview > li h2,
-html body .ui-listview > li h3,
-html body .ui-listview > li h4,
-html body .ui-listview > li h5,
-html body .ui-listview > li h6 {
-  margin: 0;
-}
-
-/* support checkbox/radio split buttons */
-html body .ui-listview li.ui-li-has-checkbox {
-  padding-right: 2.25em;
-  border-top-right-radius: 0;
-  border-bottom-right-radius: 0;
-  -webkit-border-top-right-radius: 0;
-  -webkit-border-bottom-right-radius: 0;
-}
-html body .ui-listview .ui-radio .ui-btn.ui-radio-on:after,
-html body .ui-listview .ui-checkbox .ui-btn.ui-checkbox-on:after {
-  background: 0 none;
-  border: 0 none;
-  height: auto;
-  width: auto;
-}
-html body .ui-listview li.ui-li-has-checkbox label {
-  border-left-width: 0px;
-  -moz-box-sizing: border-box;
-}
-html .ui-listview li.ui-li-has-alt a.ui-btn.ui-icon-caret-right:after,
-html .ui-listview li.ui-li-has-alt a.ui-btn.ui-icon-carat-r:after {
-  content: "";
-}
-html .ui-listview li div.ui-radio,
-html .ui-listview li div.ui-checkbox {
-  height: 100%;
-  margin: 0;
-  padding: 0;
-  position: absolute;
-  right: 0;
-  top: 0;
-  width: 2.5em;
-  z-index: 2;
-}
-html body .ui-listview li div.ui-radio label.ui-btn,
-html body .ui-listview li div.ui-checkbox label.ui-btn {
-  border-radius: .375em;
-  height: 100%;
-  min-height: 1em;
-  padding: 0;
-  width: auto;
-  border-bottom-width: 0;
-  border-right-width: 0;
-}
-html body .ui-listview li div.ui-radio,
-html body .ui-listview li div.ui-radio label.ui-btn,
-html body .ui-listview li div.ui-checkbox,
-html body .ui-listview li div.ui-checkbox label.ui-btn {
-  -moz-box-shadow: none;
-  -webkit-box-shadow: none;
-  box-shadow: none;
-  -webkit-border-radius: 0;
-  border-radius: 0;
-}
-html body .ui-listview li.ui-first-child div.ui-radio,
-html body .ui-listview li.ui-first-child div.ui-radio label.ui-btn,
-html body .ui-listview li.ui-first-child div.ui-checkbox,
-html body .ui-listview li.ui-first-child div.ui-checkbox label.ui-btn {
-  -webkit-border-top-right-radius: .375em;
-  border-top-right-radius: .375em;
-}
-html body .ui-listview li.ui-last-child div.ui-radio,
-html body .ui-listview li.ui-last-child div.ui-radio label,
-html body .ui-listview li.ui-last-child div.ui-checkbox,
-html body .ui-listview li.ui-last-child div.ui-checkbox label {
-  -webkit-border-bottom-right-radius: .375em;
-  border-bottom-right-radius: .375em;
-  border-bottom-width: 1px;
-  margin-bottom: -1px;
-}
-/* custom icons */
-.ui-listview li span.ui-li-icon-custom {
-  bottom: 0;
-  -moz-box-shadow: none;
-  -webkit-box-shadow: none;
-  box-shadow: none;
-  font-size: 1.2em;
-  height: 100%;
-  left: 0.25em;
-  line-height: 1em;
-  margin: 0;
-  max-height: 80px;
-  max-width: 80px;
-  position: absolute;
-  text-align: center;
-  width: 22px;
-  top: 29%; /* no friend... */
-}
-.ui-listview li span.ui-li-icon-custom:after {
-  background: none repeat scroll 0 center transparent;
-}
-
-/* color even odd */
-html .ui-listview li:nth-child(even),
-html .ui-listview li:nth-child(even) > .ui-btn {
-  background-color: #fff;
-  background-color: rgba(0,0,0,0);
-}
-
-/* fix relation string field background transparent error */
-html .ui-listview li.ui-autocomplete ~ li {
-  background-color: white;
-}
-
-/*
-   -------------------------------------------------------------------------
-   ----------------------------- Controlgroup ------------------------------
-   -------------------------------------------------------------------------
-*/
-
-/* fix button font-size */
-html body .ui-header .ui-controlgroup .ui-btn-icon-notext,
-html body .ui-footer .ui-controlgroup .ui-btn-icon-notext {
-  font-size: 100%;
-}
-/* search tag list needs to inline controlgroups */
-.ui-tag-list .ui-controlgroup {
-  display: inline-block;
-  vertical-align: top;
-}
-/* need to overwrite */
-html.ui-mobile head + body .ui-field-contain .ui-input-text .ui-tag-list > .ui-controlgroup {
-  width: auto;
-}
-/* set padding if text and notext controlgroups are combined */
-html body .ui-controlgroup-horizontal .ui-btn ~ .ui-btn-icon-notext {
-  padding-left: .2em;
-  padding-right: .2em;
-}
-/* set all paddings */
-html body .ui-tag-list .ui-controlgroup-horizontal .ui-btn {
-  font-size: .85em;
-  padding-top: .4em;
-  padding-bottom: .4em;
-}
-/*inset tag list */
-html body .ui-tag-list-inset {
-  position: absolute;
-  top: 0;
-  right: 0;
-  white-space: nowrap;
-  overflow: hidden;
-}
-/* indent if there is clear button */
-html body .ui-input-has-clear .ui-tag-list-inset {
-  right: 2em;
-}
-html body .ui-tag-list-inset .ui-controlgroup-horizontal .ui-controlgroup-controls {
-  margin-top: .2em;
-  margin-bottom: .2em;
-  margin-right: .2em;
-  width: 100%;
-}
-html body .ui-tag-list-inset .ui-controlgroup-horizontal .ui-controlgroup-controls .ui-btn {
-  font-size: .75em;
-  border-right-width: 1px;
-}
-/* fix size in tag XXX: remove font-size property here */
-html body .ui-tag-list-inset .ui-controlgroup-horizontal .ui-controlgroup-controls .ui-btn span {
-  font-size: 100%;
-}
-/* position input so events can be detected, does not work with label for unknown reason */
-/* TODO not sure if this is so smart*/
-html body .ui-tag-list-inset .ui-controlgroup-horizontal .ui-checkbox input {
-  top: 0;
-  left: 9px;
-  padding: 0;
-  z-index: 505;
-}
-html body .ui-tag-list-inset .ui-controlgroup-horizontal .ui-checkbox label {
-  cursor: pointer;
-}
-html body .ui-tag-list-inset .ui-controlgroup-horizontal .ui-checkbox .ui-btn-active {
-  text-shadow: none;
-  color: black;
-}
-
-/*
-   -------------------------------------------------------------------------
-   -------------------------------- Button ---------------------------------
-   -------------------------------------------------------------------------
-*/
-/* fix text-indent when trying to use custom icons on iconpos-notext buttons */
-.ui-btn-icon-notext:after {
-  text-indent: 0;
-}
-/* set icon dimensions */
-.ui-btn-icon-left:after,
-.ui-btn-icon-right:after {
-  width: auto;
-  height: auto;
-}
-
-/*
-   -------------------------------------------------------------------------
-   ---------------------------- Listview/Cards -----------------------------
-   -------------------------------------------------------------------------
-*/
-
-/* overwrite JQM font-size */
-.ui-card-deck > li p {
-  font-size: 100%;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: pre-line;
-  height: 2.6em; /* because JQM sets line-height to 1.3em and we need 2 lines*/
-}
-
-/* center and override inset in case it is set */
-.ui-card-deck.ui-listview-inset {
-  margin: 0 -1em;
-  border-width: 0;
-  -moz-box-shadow: none;
-  -webkit-box-shadow: none;
-  box-shadow: none;
-  -webkit-border-radius: 0;
-  border-radius: 0;
-}
-
-/* set card-deck icon corners on small screens */
-.ui-card-deck > .ui-first-child .ui-icon-custom {
-  -webkit-border-top-left-radius: inherit;
-  border-top-left-radius: inherit;
-}
-.ui-card-deck > .ui-last-child .ui-icon-custom {
-  -webkit-border-bottom-left-radius: inherit;
-  border-bottom-left-radius: inherit;
-}
-
-/* overrule list item padding on cards */
-.ui-card-deck .ui-li-static,
-.ui-card-deck li > .ui-btn {
-  padding-top: 0;
-  padding-bottom: 0;
-  -webkit-box-shadow: 0px 3px 4px #aaa;
-  -moz-box-shadow: 0px 3px 4px #aaa;
-  box-shadow: 0px 3px 4px #aaa;
-}
-/* override padding left (needs more specifity for JQM) */
-ul.ui-card-deck > .ui-li-has-icon > .ui-btn,
-ul.ui-card-deck > .ui-li-static.ui-li-has-icon {
-  padding-left: 5em;
-}
-
-/* set card-deck icon dimensions on small screens */
-ul.ui-card-deck .ui-li-has-icon.ui-li-static .ui-icon-custom,
-ul.ui-card-deck .ui-li-has-icon > .ui-btn .ui-icon-custom {
-  height: 100%;
-  top: 0;
-  left: 0;
-  max-height: 10em; /* doesn't work without hardcoding a value somewhere */
-  min-height: 10em;
-  line-height: 8em;
-  max-width: 5em;
-  width: 5em;
-  position: absolute;
-  text-align: center;
-  vertical-align: middle;
-}
-
-/* double borders */
-ul.ui-card-deck .ui-li-has-icon.ui-li-static .ui-icon-custom,
-ul.ui-card-deck .ui-li-has-icon > .ui-btn .ui-icon-custom {
-  border-right: 1px solid rgb(64, 0, 0); /* IE8 */
-  border-right: 1px solid rgba(0, 0, 0, 0.25)
-}
-
-/* icon size in regular listview */
-ul.ui-card-deck li > .ui-btn .ui-icon-custom:after,
-ul.ui-card-deck .ui-li-static .ui-icon-custom:after {
-    font-size: 200%;
-    border-radius: 1em;
-    padding: 0.25em;
-    vertical-align: middle;
-}
-
-/* set header inside cards */
-.ui-card-deck .ui-card-title {
-    font-weight: 700;
-    letter-spacing: 1px;
-    margin: 0;
-    padding: 0.75em;
-    text-transform: uppercase;
-}
-
-/* and text inside cards */
-.ui-card-deck .ui-card-text {
-  margin: 0;
-  padding: 0 0.75em;
-  text-align: left;
-}
-
-/* push button menu to the right */
-.ui-card-deck li .ui-controlgroup {
-  text-align: right;
-}
-
-
-/* 3 column layout. Tiles 250x250 pixels incl. margin at the breakpoint. */
-@media (min-width: 48em) {
-
-  /* pad deck */
-  ul.ui-card-deck {
-    padding: .5em 0;
-  }
-
-  /* single item needs bottom corners on small screens */
-  ul.ui-card-deck > .ui-first-child:only-child {
-    -webkit-border-bottom-right-radius: .3125em;
-    -webkit-border-bottom-left-radius: .3125em;
-    border-bottom-right-radius: .3125em;
-    border-bottom-left-radius: .3125em;
-  }
-
-  /* reset inset */
-  ul.ui-card-deck.ui-listview-inset {
-    margin: 0 auto;
-    -webkit-border-radius: .3125em;
-    border-radius: .3125em;
-  }
-
-  /* box shadow cards (not list!) */
-  ul.ui-card-deck .ui-li-static,
-  ul.ui-card-deck > li .ui-btn {
-    -moz-box-shadow: 0 1px 3px 0 #aaa;
-    -webkit-box-shadow: 0 1px 3px 0 #aaa;
-    box-shadow: 0 1px 3px 0 #aaa;
-  }
-
-  /* card deck header corners */
-  .ui-card-deck .ui-li-custom-icon {
-    -webkit-border-bottom-right-radius: 0;
-    -webkit-border-bottom-left-radius: 0;
-    border-bottom-right-radius: 0;
-    border-bottom-left-radius: 0;
-  }
-
-  /* set card dimensions */
-  .ui-card-deck > .ui-li-static,
-  .ui-card-deck > li > .ui-btn {
-    float: left;
-    width: 30.9333%;
-    height: 14.5em;
-    margin: .5625em 1.2%;
-    -webkit-box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    -ms-box-sizing: border-box;
-    box-sizing: border-box;
-  }
-
-  /* set padding */
-  ul.ui-card-deck > .ui-li-has-icon > .ui-btn,
-  ul.ui-card-deck > .ui-li-static.ui-li-has-icon{
-    padding: 0;
-  }
-
-  /* icon positioning */
-  ul.ui-card-deck .ui-li-has-icon.ui-li-static .ui-icon-custom,
-  ul.ui-card-deck .ui-li-has-icon > .ui-btn .ui-icon-custom {
-    display: inline-block;
-    line-height: 4em;
-    max-height: 4em;
-    max-width: initial;
-    min-height: 4em;
-    min-width: initial;
-    position: static;
-    width: 100%;
-  }
-
-  /* double borders */
-  ul.ui-card-deck .ui-li-has-icon.ui-li-static .ui-icon-custom,
-  ul.ui-card-deck .ui-li-has-icon > .ui-btn .ui-icon-custom {
-    border-right: none;
-    border-bottom: 1px solid rgb(232, 232, 232); /* IE8 */
-    border-bottom: 1px solid rgba(232, 232, 232, 0.5);
-  }
-
-  /* bottom corners on all li */
-  ul.ui-card-deck li > .ui-btn,
-  ul.ui-card-deck .ui-li-static {
-    height: 100%;
-    border-bottom-width: 1px;
-  }
-
-  /* Make all list items and anchors inherit the border-radius from the UL. */
-  ul.ui-card-deck li,
-  ul.ui-card-deck li .ui-btn,
-  ul.ui-card-deck .ui-li-thumb,
-  ul.ui-card-deck .ui-li-icon-custom {
-    -webkit-border-radius: inherit;
-    border-radius: inherit;
-  }
-
-  /* clear bottom corners */
-  ul.ui-card-deck > .ui-last-child .ui-icon-custom {
-    -webkit-border-bottom-left-radius: 0;
-    border-bottom-left-radius: 0;
-  }
-  ul.ui-card-deck > .ui-first-child .ui-icon-custom {
-    -webkit-border-bottom-right-radius: 0;
-    border-bottom-right-radius: 0;
-  }
-
-  /* re-scale images */
-  ul.ui-card-deck li.ui-li-has-thumb .ui-li-thumb,
-  ul.ui-card-deck li.ui-li-has-icon .ui-li-icon-custom {
-    height: auto;
-    max-width: 100%;
-    max-height: none;
-  }
-}
-
-/* 4 column layout.  */
-@media (min-width: 62em) {
-
-  /* prevent over-stretching cells 1200px by locking deck */
-  ul.ui-card-deck {
-    max-width: 75em;
-    max-width: 80vw;
-    margin: 0 auto;
-    clear: both;
-  }
-
-  /* max-width */
-  .ui-card-deck > .ui-li-static,
-  .ui-card-deck > li > .ui-btn {
-    max-width: 23%;
-    margin: .625em 1%;
-  }
-}
-
-/*
-   -------------------------------------------------------------------------
-   ---------------------------- HEADER/FOOTER ------------------------------
-   -------------------------------------------------------------------------
-*/
-
-/* NOTE: height of header will only be set through title (font + padding)! */
-/* NOTE: width-% does not work inside clear:left, only px */
-
-/* padding to match font-size (= .9em) */
-html .ui-header .ui-title,
-html .ui-footer .ui-title {
-  padding: 0.7em 0;
-  margin: 0 45px;
-}
-/* logo dimensions  XXX: remove? */
-html .ui-header img.ui-title {
-  max-height: 24px; 
-  padding: 0.5em 1.7em;
-  margin: 0 30%;
-}
-
-/* forms in controlgroup must behave like a buttons */
-.ui-controlgroup-horizontal .ui-controlgroup-controls > form {
-  float: left;
-	clear: none;
-}
-
-/* only-child forms inside controlgroups must stretch to full width, so... */
-.ui-controlgroup-horizontal .ui-controlgroup-controls > form:only-child {
-  float: none;
-}
-
-/* all controlgroups should at least be 45px, large screen 8% (below) */
-.ui-header .ui-controlgroup-horizontal {
-  min-width: 45px;
-}
-
-/* controlgroup dimensions (height used to be 100%) */
-.ui-header .ui-controlgroup, .ui-panel .ui-header .ui-controlgroup {
-  max-width: none;
-  height: inherit;
-}
-.ui-header .ui-controlgroup .ui-controlgroup-controls,
-.ui-panel .ui-header .ui-controlgroup .ui-controlgroup-controls {
-  height: inherit;
-  width: 100%;
-  min-width: inherit;
-}
-
-/* sizing for all header buttons  */
-.ui-header .ui-controlgroup-horizontal .ui-controlgroup-controls button.ui-btn,
-.ui-header .ui-controlgroup-horizontal .ui-controlgroup-controls a.ui-btn,
-.ui-header .ui-controlgroup-controls .ui-btn-icon-notext {
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-  box-sizing: border-box;
-  min-width: inherit;
-}
-/* panel button only stretches using 100% */
-.ui-panel .ui-header .ui-controlgroup-controls button.ui-btn:only-child,
-.ui-panel .ui-header .ui-controlgroup-controls a.ui-btn:only-child,
-.ui-panel .ui-header .ui-controlgroup-controls .ui-btn-icon-notext:only-child {
-  width: 100%
-}
-
-/* breadcrumb button inside title (depends on font size of title) */
-html .ui-title .ui-btn[class*="ui-icon-"]:after, 
-html .ui-title .ui-btn[class*="ui-icon-"]:after {
-    font-size: 1.15em;
-}
-
-/* breadcrumb button dimensions, not sure negative margin is good with padding */
-html .ui-header .ui-title .ui-btn {
-  display: block;
-  margin: -0.9em 0;
-  max-height: 3.1em;
-  border: 0 none;
-}
-
-/* pages with subheader increase padding on ui-content */
-.ui-has-subheader {
-  padding-top: 4.5em;
-}
-
-/* inset shadow for subheader */
-html body.ui-mobile-viewport .ui-subheader,
-html body .ui-mobile-viewport .ui-subheader {
-  -webkit-box-shadow: inset 0 1px 3px rgba(0,0,0,.2);
-  -moz-box-shadow: inset 0 1px 3px rgba(0,0,0,.2);
-  box-shadow: inset 0 1px 3px rgba(0,0,0,.2);
-}
-html body.ui-mobile-viewport .ui-subheader,
-html body .ui-mobile-viewport .ui-subheader {
-  border-top-color: rgb(115, 115, 115); /* IE8 */
-  border-top-color:   rgba(0, 0, 0, .25);
-  border-top-width: 1px;
-  border-top-style: solid;
-}
-
-
-/* remove border on header */
-.ui-header {
-  border-width: 0;
-}
-
-/* double borders header */
-html body .ui-header .ui-btn-left .ui-controlgroup-controls .ui-btn {
-  border-right: 1px solid rgb(115, 115, 115); /* IE8 */
-  border-right: 1px solid rgba(0, 0, 0, 0.55);
-}
-html body .ui-header .ui-btn-left .ui-controlgroup-controls .ui-btn:before {
-  right: 0;
-  border-right: 1px solid rgb(232, 232, 232); /* IE8 */
-  border-right: 1px solid rgba(232, 232, 232, 0.5);
-}
-html body .ui-header .ui-btn-right .ui-controlgroup-controls .ui-btn,
-html body .ui-subheader.ui-navbar .ui-btn  {
-  border-left: 1px solid rgb(115, 115, 115); /* IE8 */
-  border-left: 1px solid rgba(0, 0, 0, 0.55);
-}
-html body .ui-header .ui-btn-right .ui-controlgroup-controls .ui-btn:before,
-html body .ui-subheader.ui-navbar .ui-btn:before  {
-  left: 0;
-  border-left: 1px solid rgb(232, 232, 232); /* IE8 */
-  border-left: 1px solid rgba(232, 232, 232, 0.5);
-}
-/* clear first cell left border */
-html body .ui-navbar ul li .ui-btn.ui-first-child,
-html body .ui-navbar ul li .ui-btn.ui-first-child:before {
-  border-left-width: 0;
-}
-html body .ui-header .ui-btn-left .ui-controlgroup-controls .ui-first-child,
-html body .ui-header .ui-btn-left .ui-controlgroup-controls .ui-first-child:before {
-  border-left-width: 0;
-}
-
-/* position */
-.ui-header .ui-btn-left, .ui-header .ui-btn-right {
-  bottom: 0;
-  position: absolute;
-  top: 0;
-}
-.ui-header .ui-btn-left {
-  left: 0;
-}
-.ui-header .ui-btn-right {
-  right: 0;
-}
-
-/* overwrite JQM icon position */
-.ui-btn-icon-notext:after,
-.ui-btn-icon-left:after,
-.ui-btn-icon-right:after {
-  margin-top: -8px;
-}
-
-/* overwrite JQM icons and clear :before for double border */
-.ui-header .ui-btn:before {
-  content: "";
-  height: 100%;
-  position: absolute;
-  width: 0;
-  bottom: 0;
-  top: 0;
-}
-
-/* remove outside borders of first and last button > Hard to overwrite JQM */
-html .ui-header .ui-btn-left .ui-btn.ui-last-child {
-  border-left-width: 0;
-}
-html .ui-header .ui-btn-right .ui-controlgroup-controls .ui-btn.ui-last-child {
-  border-right-width: 0;
-}
-
-/* set button dimensions */
-html .ui-header .ui-btn {
-  line-height: 3.1em; /* ~ 40px = what's needed */
-  padding-bottom: 0;
-  padding-top: 0;
-  border-top: 0;
-  border-bottom: 0;
-}
-
-/* hide button text on small screens, center icon */
-.responsive.ui-btn,
-.ui-responsive.ui-btn {
-  text-indent: -9999px;
-}
-.responsive.ui-btn:after,
-.ui-responsive.ui-btn:after {
-  text-indent: 0;
-}
-
-.ui-header .responsive .ui-btn:after,
-.ui-header .responsive.ui-btn:after {
-  left: .8em;
-}
-
-/* subheader reset formatting for subheader buttons */
-.ui-header .ui-subheader .ui-btn.ui-btn-icon-top {
-    line-height: 3.25em;
-    padding-top: 1.5em;
-}
-
-@media (max-width: 32em) {
-  /* fix icon size on title (depends on font size of title) XXX move up */
-  html .ui-title .ui-btn[class*="ui-icon-"]:after, 
-  html .ui-title .ui-btn[class*="ui-icon-"]:after {
-      font-size: 1.35em;
-  }
-}
-
-/* reset on larger screens */
-@media (min-width: 48em) {
-
-
-  /* hard locked margin for single button (Thierry request) */
-  .ui-page > div > .ui-header .ui-controlgroup-horizontal {
-    min-width: 8%;
-  }
-  .ui-page > div > .ui-header .ui-controlgroup-horizontal + .ui-title {
-    margin: 0 8%;
-  }
-  
-  /* stretch single button */ 
-  .ui-page > div > .ui-header .ui-controlgroup-horizontal .ui-controlgroup-controls button.ui-btn:only-child,
-  .ui-page > div > .ui-header .ui-controlgroup-horizontal .ui-controlgroup-controls a.ui-btn:only-child,
-  .ui-page > div > .ui-header .ui-controlgroup-controls .ui-btn-icon-notext:only-child {
-    max-width: 100%;
-    min-width: 100%;
-  }
-  
-  html .ui-header img.ui-title {
-    margin: 0 30%;
-  }
-
-  /* unset for everywhere else a header is used.*/
-  html body div.ui-table-header div.ui-controlgroup {
-    max-width: none;
-    min-width: 0;
-  }
-
-  .responsive.ui-btn:after,
-  .ui-header .responsive.ui-btn-icon-left:after,
-  .ui-footer .responsive.ui-btn-icon-left:after,
-  .responsive.ui-btn,
-  .ui-responsive.ui-btn {
-    text-indent: 0;
-  }
-}
-
-
-
-/*  ---------------------------  gadget_themes.css -------------------------- */
-
-/*
- ==========================================================================
- ============================== Themes ====================================
- ==========================================================================
-*/
-
-/*
-  > JQM Default: > http://demos.jquerymobile.com/1.4.3/theme-default/
-
-  > NOTE all ui-page-theme-[x] have been removed and overwritten!
-
-  > Polymere suggestion: Primary + Accent (3-4 colors), plus dark, light
-  > http://www.google.com/design/spec/style/color.html#color-ui-color-palette
-
-  > Create color theme based on uploaded image: > http://pictaculous.com/
-
-  > Color Converter rgba > rgb > http://yolijn.com/convert-rgba-to-rgb
-
-  1. Primary (JQM: a)
-    Main:  #0E81C2
-    Dark:  #085078
-    Light: #85D8CE
-    Text:  #f8fff3
-
-  2. Accent (JQM: b)
-    Main: #ffff00
-    Dark: #f57f17
-    Light: #ffff8d
-    Text:  #757575
-
-  3. Light (JQM: c)
-    Main: #eeeeee  | #e0e0e0    |  
-    Dark: #aaaaaa  | #f0f0f0    |  #777777
-    Light: #ffffff | #f5f5f5    |  
-    Text: #444444  | #757575    |  #222222
-
-  4. Dark (JQM: d)
-    Main: #444444
-    Dark: #25292b
-    Light: #888888
-    Text: #ffffff
-
-
-*/
-/* ============================= A (Primary) ============================== */
-/* Page background (needs manual setting on body!) */
-html head + body.ui-overlay-a,
-html head + body.ui-overlay-a .ui-page,
-html head + body.ui-overlay-a .ui-page .ui-panel-wrapper{
-  background-color: rgb(255, 255, 255);
-}
-
-/* Text Color */
-html .ui-body-a,
-html .ui-bar-a,
-html .ui-btn-a,
-html .ui-bar-a .ui-body-inherit,
-html .ui-body-a .ui-link,
-html .ui-body-a .ui-body-inherit,
-html .ui-bar-a .ui-bar-inherit,
-html .ui-body-a .ui-bar-inherit,
-html .ui-bar-a .ui-btn-inherit,
-html .ui-body-a .ui-btn-inherit,
-html body .ui-group-theme-a .ui-bar-inherit,
-html body .ui-group-theme-a .ui-body-inherit,
-html body .ui-group-theme-a .ui-btn-inherit,
-html head + body .ui-body-a tbody tr td a,
-html head + body .ui-body-a tbody tr th a {
-  color: #f8fff3;
-}
-
-/* === CUSTOM === */
-/* Constrast labels in light color */
-html .ui-body-a label,
-html .ui-bar-a label,
-html .ui-btn-a label,
-html .ui-body-a thead th,
-html .ui-bar-a thead th,
-html.ui-mobile .ui-bar-a .ui-override-theme.ui-btn,
-html.ui-mobile .ui-bar-a .ui-override-theme.ui-title {
-  color: #085078;
-}
-/* Custom Icon Color and background opacity */
-html .ui-body-a.ui-icon-custom:after,
-html .ui-bar-a .ui-icon-custom.ui-body-inherit:after,
-html .ui-body-a .ui-icon-custom.ui-body-inherit:after,
-html .ui-group-theme-a .ui-icon-custom.ui-body-inherit:after,
-html .ui-icon-custom.ui-body-a:after {
-  background-color: rgba(255, 255, 255, 0.25);
-  color: #f8fff3;
-}
-
-/* No borders on custom icon elements */
-html .ui-body-a.ui-icon-custom,
-html .ui-bar-a .ui-icon-custom.ui-body-inherit,
-html .ui-body-a .ui-icon-custom.ui-body-inherit,
-html .ui-group-theme-a .ui-icon-custom.ui-body-inherit {
-  border-width: 0;
-}
-/* === CUSTOM END === */
-
-/* Bar */
-html .ui-body-a,
-html .ui-bar-a,
-html .ui-bar-a h1,
-html .ui-bar-a .ui-bar-inherit,
-html .ui-bar-a .ui-body-inherit,
-html .ui-body-a .ui-bar-inherit,
-html .ui-body-a .ui-body-inherit,
-html body .ui-group-theme-a .ui-bar-inherit,
-html body .ui-group-theme-a .ui-body-inherit {
-  text-shadow: none;
-  border-color: rgb(14, 129, 124);
-  border-color: rgba(255, 255, 255, .4);
-  font-weight: normal;
-}
-
-/* Bar Background = Solid/Dark (Contrast)  */
-html .ui-bar-a,
-html .ui-bar-a .ui-bar-inherit,
-html body .ui-body-a .ui-bar-inherit,
-html body .ui-group-theme-a .ui-bar-inherit {
-  background-color: #085078;
-}
-
-/* Body Background Solid/Main > also used for button! */
-html .ui-body-a:not(.ui-loader),
-html .ui-btn-a,
-html body .ui-bar-a.ui-btn-a, /* XXX not good */
-html .ui-bar-a .ui-body-inherit,
-html .ui-bar-a .ui-btn-inherit,
-html .ui-body-a .ui-body-inherit, /* panel background */
-html body .ui-body-a .ui-btn-inherit,
-html body .ui-group-theme-a .ui-body-inherit,
-html body .ui-group-theme-a .ui-btn-inherit {
-  background-color: #0E81C2;
-}
-
-/* Body Background Linear (add .ui-linear) */
-html .ui-body-a.ui-linear,
-html .ui-bar-a .ui-body-inherit.ui-linear,
-html .ui-body-a .ui-body-inherit.ui-linear, /* panel background */
-html body .ui-group-theme-a .ui-body-inherit.ui-linear {
-  background: #0E81C2;
-  background-image: -webkit-gradient(linear, left top, left bottom, from(#085078), to(#85D8CE));
-  background-image: -webkit-linear-gradient(#085078, #85D8CE);
-  background-image:    -moz-linear-gradient(#085078, #85D8CE);
-  background-image:     -ms-linear-gradient(#085078, #85D8CE);
-  background-image:      -o-linear-gradient(#085078, #85D8CE);
-  background-image:         linear-gradient(#085078, #85D8CE);
-}
-
-/* Body background radial (add .ui-radial) */
-html .ui-body-a.ui-radial,
-html .ui-bar-a .ui-body-inherit.ui-radial,
-html .ui-body-a .ui-body-inherit.ui-radial, /* panel background */
-html body .ui-group-theme-a .ui-body-inherit.ui-radial {
-  background-color: #0E81C2;
-  background: -webkit-radial-gradient(100% 100%, ellipse farthest-side, #f8fff3 10%, #85D8CE 50%, #085078 120%) repeat scroll 0 0 rgba(0, 0, 0, 0);
-  background:         radial-gradient(ellipse farthest-side at 100% 100% , #f8fff3 10%, #85D8CE 50%, #085078 120%) repeat scroll 0 0 rgba(0, 0, 0, 0);
-  background:    -moz-radial-gradient(ellipse farthest-side at 100% 100% , #f8fff3 10%, #85D8CE 50%, #085078 120%) repeat scroll 0 0 rgba(0, 0, 0, 0);
-  background:     -ms-radial-gradient(ellipse farthest-side at 100% 100% , #f8fff3 10%, #85D8CE 50%, #085078 120%) repeat scroll 0 0 rgba(0, 0, 0, 0);
-  background:      -o-radial-gradient(ellipse farthest-side at 100% 100% , #f8fff3 10%, #85D8CE 50%, #085078 120%) repeat scroll 0 0 rgba(0, 0, 0, 0);
-
-}
-
-/* Button on background */
-html .ui-btn.ui-btn-a,
-html .ui-bar-a .ui-btn,
-html .ui-body-a .ui-btn,
-html .ui-group-theme-a .ui-btn,
-html .ui-group-theme-a .ui-btn.ui-btn-a,
-
-/* Table row */
-html .ui-body-a tbody tr,
-
-/* Button Visited */
-html head + body .ui-bar-a .ui-btn:visited,
-html head + body .ui-body-a .ui-btn:visited,
-html head + body .ui-btn.ui-btn-a:visited,
-html head + body .ui-group-theme-a .ui-btn:visited,
-html head + body .ui-group-theme-a .ui-btn.ui-btn-a:visited,
-
-/* Link Visited|Active|Hover..... */
-html head + body .ui-bar-a .ui-link:visited,
-html head + body .ui-body-a .ui-link:visited,
-html head + body .ui-group-theme-a .ui-link:visited,
-
-html head + body .ui-bar-a .ui-link:active,
-html head + body .ui-body-a .ui-link:active,
-html head + body .ui-group-theme-a .ui-link:active,
-
-html head + body .ui-bar-a .ui-link:hover,
-html head + body .ui-body-a .ui-link:hover,
-html head + body .ui-group-theme-a .ui-link:hover {
-  background: none repeat scroll 0 0 transparent;
-  border-color: rgb(14, 129, 124);
-  border-color: rgba(255, 255, 255, .4);
-  color: #f8fff3;
-  text-shadow: none;
-}
-
-/* Hover */
-html head + body .ui-bar-a .ui-btn:hover,
-html head + body .ui-body-a .ui-btn:hover,
-html head + body .ui-btn.ui-btn-a:hover,
-html head + body .ui-group-theme-a .ui-btn:hover,
-html head + body .ui-group-theme-a .ui-btn.ui-btn-a:hover,
-html head + body .ui-group-theme-a .ui-btn.ui-btn-a:active,
-
-/* Button Active (JQM overwrite requires double classes)*/
-html head + body .ui-bar-a .ui-btn:active,
-html head + body .ui-body-a .ui-btn:active,
-html head + body .ui-btn.ui-btn-a:active,
-html head + body .ui-group-theme-a .ui-btn:active,
-html head + body .ui-group-theme-a .ui-btn-a:active,
-
-html head + body .ui-bar-a .ui-btn.ui-btn-active,
-html head + body .ui-body-a .ui-btn.ui-btn-active,
-html head + body .ui-btn.ui-btn-a.ui-btn-active,
-html head + body .ui-group-theme-a .ui-btn-active,
-html head + body .ui-group-theme-a .ui-btn-a.ui-btn-active {
-  background-color: #085078;
-  background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#85D8CE), to(#0E81C2));
-  background:        -webkit-linear-gradient(bottom, #85D8CE, #0E81C2);
-  background:                linear-gradient(bottom, #85D8CE, #0E81C2);
-  background:           -moz-linear-gradient(bottom, #85D8CE, #0E81C2);
-  background:             -o-linear-gradient(bottom, #85D8CE, #0E81C2);
-  background:            -ms-linear-gradient(bottom, #85D8CE, #0E81C2);
-  border-color: rgb(14, 129, 124);
-  border-color: rgba(255, 255, 255, .4);
-  color: #f8fff3;
-  text-shadow: none;
-}
-
-
-/* ============================= B (Accent) ============================= */
-
-/* Accent > needs a lot of specificity */
-html.ui-mobile body.ui-mobile-viewport .ui-accent {
-    color: #f57f17;
-    font-weight: 700;
-    text-transform: uppercase;
-    border: 0 none;
-}
-
-/* Table row */
-html head + body table tbody tr:hover,
-
-/* Save button XXX: should not depend on icon!*/
-html body .ui-header .ui-icon-save,
-html body .ui-header .ui-icon-exclamation,
-html body .ui-header .ui-icon-warning {
-  background: none repeat scroll 0 0 #e4ebf1;
-  border-color: rgba(0, 0, 0, 0.3);
-  color: #777;
-  text-shadow: none;
-}
-
-/* Focus */
-
-/* Button Focus */
-html body .ui-btn:focus,
-html body .ui-focus {
-  box-shadow: 0 0 12px #add8e6;
-}
-
-
-/* ============================= C (Light) ============================== */
-
-/* Page background (needs manual setting on body!) */
-html head + body.ui-overlay-c,
-html head + body.ui-overlay-c .ui-page,
-html head + body.ui-overlay-c .ui-page .ui-panel-wrapper{
-  background-color: rgb(241, 241, 241);
-}
-
-/* Text Color */
-html .ui-body-c,
-html .ui-btn-c,
-html .ui-bar-c,
-html .ui-body-c .ui-link,
-html .ui-bar-c .ui-body-inherit,
-html .ui-bar-c .ui-btn-inherit,
-html .ui-body-c .ui-body-inherit,
-html .ui-bar-c .ui-bar-inherit,
-html .ui-body-c .ui-btn-inherit,
-html .ui-body-c .ui-bar-inherit,
-html body .ui-group-theme-c .ui-btn-inherit,
-html body .ui-group-theme-c .ui-bar-inherit,
-html body .ui-group-theme-c .ui-body-inherit,
-html head + body .ui-body-c tbody tr td a,
-html head + body .ui-body-c tbody tr th a {
-  color: #222222;
-}
-
-
-/* === CUSTOM === */
-/* Constrast labels in light color */
-html .ui-body-c label,
-html .ui-bar-c label,
-html .ui-btn-c label,
-html .ui-body-c thead th,
-html .ui-bar-c thead th,
-html.ui-mobile .ui-bar-c .ui-override-theme.ui-btn,
-html.ui-mobile .ui-bar-c .ui-override-theme.ui-title {
-  color: #777777;
-}
-/* Custom Icon Color and background opacity */
-html .ui-body-c.ui-icon-custom:after,
-html .ui-bar-c .ui-icon-custom.ui-body-inherit:after,
-html .ui-body-c .ui-icon-custom.ui-body-inherit:after,
-html .ui-group-theme-c .ui-icon-custom.ui-body-inherit:after,
-html .ui-icon-custom.ui-body-c:after {
-  background-color: rgba(0, 0, 0, 0.15);
-  color: #222222;
-}
-
-/* No borders on custom icon elements */
-html .ui-body-c.ui-icon-custom,
-html .ui-bar-c .ui-icon-custom.ui-body-inherit,
-html .ui-body-c .ui-icon-custom.ui-body-inherit,
-html .ui-group-theme-c .ui-icon-custom.ui-body-inherit {
-  border-width: 0;
-}
-/* === CUSTOM END === */
-
-/* Bar */
-html .ui-body-c,
-html .ui-bar-c,
-html .ui-bar-c h1,
-html .ui-bar-c .ui-bar-inherit,
-html .ui-bar-c .ui-body-inherit,
-html .ui-body-c .ui-bar-inherit,
-html .ui-body-c .ui-body-inherit,
-html body .ui-group-theme-c .ui-bar-inherit,
-html body .ui-group-theme-c .ui-body-inherit {
-  text-shadow: none;
-  border-color: rgb(0, 0, 0);
-  border-color: rgba(0, 0, 0, 0.3);
-  font-weight: normal;
-}
-
-/* Bar Background = Solid/Dark (Contrast) */
-html .ui-bar-c,
-html .ui-bar-c .ui-bar-inherit,
-html body .ui-body-c .ui-bar-inherit,
-html body .ui-group-theme-c .ui-bar-inherit {
-  background-color: #f0f0f0;
-}
-
-/* Body Background Solid/Main  - also used for buttons */
-html .ui-body-c:not(.ui-loader),
-html .ui-btn-c,
-html body .ui-bar-c.ui-btn-c, /* XXX not good */
-html .ui-bar-c .ui-body-inherit,
-html .ui-bar-c .ui-btn-inherit,
-html .ui-body-c .ui-body-inherit, /* panel background */
-html body .ui-body-c .ui-btn-inherit,
-html body .ui-group-theme-c .ui-body-inherit,
-html body .ui-group-theme-c .ui-btn-inherit  {
-  background-color: #ffffff;
-}
-
-/* Body Background Linear (add .ui-linear) */
-html .ui-body-c.ui-linear,
-html .ui-bar-c .ui-body-inherit.ui-linear,
-html .ui-body-c .ui-body-inherit.ui-linear, /* panel background */
-html body .ui-group-theme-c .ui-body-inherit.ui-linear {
-  background: #e0e0e0;
-  background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#e0e0e0));
-  background-image: -webkit-linear-gradient(#ffffff, #e0e0e0);
-  background-image:    -moz-linear-gradient(#ffffff, #e0e0e0);
-  background-image:     -ms-linear-gradient(#ffffff, #e0e0e0);
-  background-image:      -o-linear-gradient(#ffffff, #e0e0e0);
-  background-image:         linear-gradient(#ffffff, #e0e0e0);
-}
-
-/* Body background radial (add .ui-radial) */
-html .ui-body-c.ui-radial,
-html .ui-bar-c .ui-body-inherit.ui-radial,
-html .ui-body-c .ui-body-inherit.ui-radial, /* panel background */
-html body .ui-group-theme-c .ui-body-inherit.ui-radial {
-  background-color: #e0e0e0;
-  background: -webkit-radial-gradient(100% 100%, ellipse farthest-side, #e0e0e0 10%, #eeeeee 50%, #f5f5f5 120%) repeat scroll 0 0 rgba(0, 0, 0, 0);
-  background:         radial-gradient(ellipse farthest-side at 100% 100% , #e0e0e0 10%, #eeeeee 50%, #f5f5f5 120%) repeat scroll 0 0 rgba(0, 0, 0, 0);
-  background:    -moz-radial-gradient(ellipse farthest-side at 100% 100% , #e0e0e0 10%, #eeeeee 50%, #f5f5f5 120%) repeat scroll 0 0 rgba(0, 0, 0, 0);
-  background:     -ms-radial-gradient(ellipse farthest-side at 100% 100% , #e0e0e0 10%, #eeeeee 50%, #f5f5f5 120%) repeat scroll 0 0 rgba(0, 0, 0, 0);
-  background:      -o-radial-gradient(ellipse farthest-side at 100% 100% , #e0e0e0 10%, #eeeeee 50%, #f5f5f5 120%) repeat scroll 0 0 rgba(0, 0, 0, 0);
-
-}
-
-/* Button On Background (<select>, too) */
-html .ui-btn.ui-btn-c,
-html .ui-bar-c .ui-btn,
-html .ui-body-c .ui-btn,
-html .ui-group-theme-c .ui-btn,
-html .ui-group-theme-c .ui-btn.ui-btn-c,
-
-/* Table Row */
-html .ui-body-c tbody tr,
-
-/* Button Visited */
-html head + body .ui-bar-c .ui-btn:visited,
-html head + body .ui-body-c .ui-btn:visited,
-html head + body .ui-btn.ui-btn-c:visited,
-html head + body .ui-group-theme-c .ui-btn:visited,
-html head + body .ui-group-theme-c .ui-btn.ui-btn-c:visited,
-
-/* Link Visited|Active|Hover..... */
-html head + body .ui-bar-c .ui-link:visited,
-html head + body .ui-body-c .ui-link:visited,
-html head + body .ui-group-theme-c .ui-link:visited,
-
-html head + body .ui-bar-c .ui-link:active,
-html head + body .ui-body-c .ui-link:active,
-html head + body .ui-group-theme-c .ui-link:active,
-
-html head + body .ui-bar-c .ui-link:hover,
-html head + body .ui-body-c .ui-link:hover,
-html head + body .ui-group-theme-c .ui-link:hover {
-  background: none repeat scroll 0 0 transparent;
-  color: #222222;
-  text-shadow: none;
-  border-color: rgb(0, 0, 0);
-  border-color: rgba(0, 0, 0, 0.3);
-}
-
-/* Button Hover */
-html head + body .ui-bar-c .ui-btn:hover,
-html head + body .ui-body-c .ui-btn:hover,
-html head + body .ui-btn.ui-btn-c:hover,
-html head + body .ui-group-theme-c .ui-btn:hover,
-html head + body .ui-group-theme-c .ui-btn.ui-btn-c:hover,
-
-/* Button Active (JQM overwrite requires double classes)*/
-html head + body .ui-bar-c .ui-btn:active,
-html head + body .ui-body-c .ui-btn:active,
-html head + body .ui-btn.ui-btn-c:active,
-html head + body .ui-group-theme-c .ui-btn:active,
-html head + body .ui-group-theme-c .ui-btn-c:active
-
-html head + body .ui-bar-c .ui-btn.ui-btn-active,
-html head + body .ui-body-c .ui-btn.ui-btn-active,
-html head + body .ui-btn.ui-btn-c.ui-btn-active,
-html head + body .ui-group-theme-c .ui-btn-active,
-html head + body .ui-group-theme-c .ui-btn-c.ui-btn-active {
-  background-color: #e0e0e0;
-  background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#eeeeee), to(#f5f5f5));
-  background:        -webkit-linear-gradient(bottom, #eeeeee, #f5f5f5);
-  background:                linear-gradient(bottom, #eeeeee, #f5f5f5);
-  background:           -moz-linear-gradient(bottom, #eeeeee, #f5f5f5);
-  background:             -o-linear-gradient(bottom, #eeeeee, #f5f5f5);
-  background:            -ms-linear-gradient(bottom, #eeeeee, #f5f5f5);
-  color: #222222;
-  text-shadow: none;
-  border-color: rgb(0, 0, 0);
-  border-color: rgba(0, 0, 0, 0.5);
-}
-
-
-/* ============================= D (Dark) =============================== */
-html head + body.ui-overlay-d,
-html head + body.ui-overlay-d .ui-page,
-html head + body.ui-overlay-d .ui-page .ui-panel-wrapper{
-  background-color: rgb(241, 241, 241);
-}
-
-
-/* Text Color */
-html .ui-body-d,
-html .ui-btn-d,
-html .ui-bar-d,
-html .ui-body-d .ui-link,
-html .ui-body-d .ui-btn-inherit,
-html .ui-bar-d .ui-btn-inherit,
-html .ui-bar-d .ui-bar-inherit,
-html .ui-bar-d .ui-body-inherit,
-html .ui-body-d .ui-bar-inherit,
-html .ui-body-d .ui-body-inherit,
-html body .ui-group-theme-d .ui-bar-inherit,
-html body .ui-group-theme-d .ui-body-inherit,
-html body .ui-group-theme-d .ui-btn-inherit,
-html head + body .ui-body-d tbody tr td a,
-html head + body .ui-body-d tbody tr th a {
-  color: #ffffff;
-}
-/* === CUSTOM === */
-/* Constrast labels in light color */
-html .ui-body-d label,
-html .ui-bar-d label,
-html .ui-btn-d label, 
-html .ui-body-d thead th,
-html .ui-bar-d thead th,
-html.ui-mobile .ui-bar-d .ui-override-theme.ui-btn,
-html.ui-mobile .ui-bar-d .ui-override-theme.ui-title {
-  color: #444444;
-}
-/* Custom Icon Color and background opacity */
-html .ui-body-d.ui-icon-custom:after,
-html .ui-bar-d .ui-icon-custom.ui-body-inherit:after,
-html .ui-body-d .ui-icon-custom.ui-body-inherit:after,
-html .ui-group-theme-d .ui-icon-custom.ui-body-inherit:after,
-html .ui-icon-custom.ui-body-d:after {
-  background-color: rgba(255, 255, 255, 0.15);
-  color: #ffffff;
-}
-
-/* No borders on custom icon elements */
-html .ui-body-d.ui-icon-custom,
-html .ui-bar-d .ui-icon-custom.ui-body-inherit,
-html .ui-body-d .ui-icon-custom.ui-body-inherit,
-html .ui-group-theme-d .ui-icon-custom.ui-body-inherit {
-  border-width: 0;
-}
-/* === CUSTOM END === */
-
-/* Bar */
-html .ui-body-d,
-html .ui-bar-d,
-html .ui-bar-d h1,
-html .ui-bar-d .ui-body-inherit,
-html .ui-bar-d .ui-bar-inherit,
-html .ui-body-d .ui-body-inherit,
-html .ui-body-d .ui-bar-inherit,
-html body .ui-group-theme-d .ui-bar-inherit,
-html body .ui-group-theme-d .ui-body-inherit {
-  text-shadow: none;
-  border-color: #888888;
-  font-weight: normal;
-}
-
-/* Bar Background = Solid/Dark (Contrast) */
-html .ui-bar-d,
-html .ui-bar-d .ui-bar-inherit,
-html body .ui-body-d .ui-bar-inherit,
-html body .ui-group-theme-d .ui-bar-inherit {
-  background-color: #25292b;
-}
-
-/* Body Background Solid/Main > also used for buttons */
-html .ui-btn-d,
-html body .ui-bar-d.ui-btn-d, /* XXX not good */
-html .ui-body-d:not(.ui-loader),
-html .ui-bar-d .ui-btn-inherit,
-html .ui-bar-d .ui-body-inherit,
-html body .ui-body-d .ui-btn-inherit,
-html .ui-body-d .ui-body-inherit, /* panel background */
-html body .ui-group-theme-d .ui-body-inherit,
-html body .ui-group-theme-d .ui-btn-inherit {
-  background-color: #444444;
-}
-
-/* Body Background Linear (add .ui-linear) */
-html .ui-body-d.ui-linear,
-html .ui-bar-d .ui-body-inherit.ui-linear,
-html .ui-body-d .ui-body-inherit.ui-linear, /* panel background */
-html body .ui-group-theme-d .ui-body-inherit.ui-linear {
-  background: #25292b;
-  background-image: -webkit-gradient(linear, left top, left bottom, from(#444), to(#222));
-  background-image: -webkit-linear-gradient(#444, #222);
-  background-image:    -moz-linear-gradient(#444, #222);
-  background-image:     -ms-linear-gradient(#444, #222);
-  background-image:      -o-linear-gradient(#444, #222);
-  background-image:         linear-gradient(#444, #222);
-}
-
-/* Body background radial (add .ui-radial) */
-html .ui-body-d.ui-radial,
-html .ui-bar-d .ui-body-inherit.ui-radial,
-html .ui-body-d .ui-body-inherit.ui-radial, /* panel background */
-html body .ui-group-theme-d .ui-body-inherit.ui-radial {
-  background-color: #25292b;
-  background: -webkit-radial-gradient(100% 100%, ellipse farthest-side, #888888 10%, #444444 50%, #25292b 120%) repeat scroll 0 0 rgba(0, 0, 0, 0);
-  background:         radial-gradient(ellipse farthest-side at 100% 100% , #888888 10%, #444444 50%, #25292b 120%) repeat scroll 0 0 rgba(0, 0, 0, 0);
-  background:    -moz-radial-gradient(ellipse farthest-side at 100% 100% , #888888 10%, #444444 50%, #25292b 120%) repeat scroll 0 0 rgba(0, 0, 0, 0);
-  background:     -ms-radial-gradient(ellipse farthest-side at 100% 100% , #888888 10%, #444444 50%, #25292b 120%) repeat scroll 0 0 rgba(0, 0, 0, 0);
-  background:      -o-radial-gradient(ellipse farthest-side at 100% 100% , #888888 10%, #444444 50%, #25292b 120%) repeat scroll 0 0 rgba(0, 0, 0, 0);
-
-}
-
-/* Button On Background (<select> too */
-html .ui-btn.ui-btn-d,
-html .ui-bar-d .ui-btn,
-html .ui-body-d .ui-btn,
-html .ui-group-theme-d .ui-btn,
-html .ui-group-theme-d .ui-btn.ui-btn-d,
-
-/* Table Row */
-html .ui-body-d tbody tr,
-
-/* Button Visited (... sigh ...) */
-html head + body .ui-bar-d .ui-btn:visited,
-html head + body .ui-body-d .ui-btn:visited,
-html head + body .ui-btn.ui-btn-d:visited,
-html head + body .ui-group-theme-d .ui-btn:visited,
-html head + body .ui-group-theme-d .ui-btn.ui-btn-d:visited,
-
-/* Link Visited|Active|Hover..... */
-html head + body .ui-bar-d .ui-link:visited,
-html head + body .ui-body-d .ui-link:visited,
-html head + body .ui-group-theme-d .ui-link:visited,
-
-html head + body .ui-bar-d .ui-link:active,
-html head + body .ui-body-d .ui-link:active,
-html head + body .ui-group-theme-d .ui-link:active,
-
-html head + body .ui-bar-d .ui-link:hover,
-html head + body .ui-body-d .ui-link:hover,
-html head + body .ui-group-theme-d .ui-link:hover {
-  background: none repeat scroll 0 0 transparent; /* why is this transparent? */
-  color: #ffffff;
-  text-shadow: none;
-  border-color: rgb(136, 136, 136); /*  #888888; IE8 */
-  border-color: rgba(255,255,255, .3);
-}
-
-/* Hover */
-html head + body .ui-bar-d .ui-btn:hover,
-html head + body .ui-body-d .ui-btn:hover,
-html head + body .ui-btn.ui-btn-d:hover,
-html head + body .ui-group-theme-d .ui-btn:hover,
-html head + body .ui-group-theme-d .ui-btn.ui-btn-d:hover,
-
-/* Button Active (JQM overwrite requires double classes)*/
-html head + body .ui-bar-d .ui-btn:active,
-html head + body .ui-body-d .ui-btn:active,
-html head + body .ui-btn.ui-btn-d:active,
-html head + body .ui-group-theme-d .ui-btn:active,
-html head + body .ui-group-theme-d .ui-btn.ui-btn-d:active,
-
-html head + body .ui-bar-d .ui-btn.ui-btn-active,
-html head + body .ui-body-d .ui-btn.ui-btn-active,
-html head + body .ui-btn.ui-btn-d.ui-btn-active,
-html head + body .ui-group-theme-d .ui-btn.ui-btn-active,
-html head + body .ui-group-theme-d .ui-btn.ui-btn-d.ui-btn-active {
-  background-color: #25292b;
-  background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#444444), to(#25292b));
-  background:        -webkit-linear-gradient(bottom, #444444, #25292b);
-  background:                linear-gradient(bottom, #444444, #25292b);
-  background:           -moz-linear-gradient(bottom, #444444, #25292b);
-  background:             -o-linear-gradient(bottom, #444444, #25292b);
-  background:            -ms-linear-gradient(bottom, #444444, #25292b);
-  color: #ffffff;
-  text-shadow: none;
-  border-color: rgb(136, 136, 136); /*  #888888; IE8 */
-  border-color: rgba(255,255,255, .3);
-}
-
-
-
-
-/*  ---------------------  fontawesome_import.css --------------------------- */
-
-
-/* imports separated from rest, so fonts can be fetched from CDN
-@font-face {
-  font-family: 'FontAwesome';
-  src: url('../fonts/fontawesome-webfont.eot?v=4.1.0');
-  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0') format('embedded-opentype'),
-       url('../fonts/fontawesome-webfont.woff?v=4.1.0') format('woff'),
-       url('../fonts/fontawesome-webfont.ttf?v=4.1.0') format('truetype'),
-       url('../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-*/
-/*  ---------------------  fontawesome_custom.css --------------------------- */
-
-
-/* imports separated from rest, so fonts can be fetched from CDN */
-/* CUSTOMIZED:
- * 1. update path @font-face
- * 2. icons: change fa- to html ui-icon-
- * 3. change :before to JQM :after
- * 4. update first html .ui-icon (former .fa)
- * 5. add checkbox-on/off, radio on/off icons to fontawesome icons
- * 6. add JQM compat at end
- * 7. replace all updated name in code... times
- * 8. JQM uses carat-t/b/l/r, add those to caret-left/right/top/bottom
- * 9. Add checkbox-on/off, radio on/off to icons (why JQM, why????)
- * 10: add :after to spin/2x/3x...
- */
-
-
-/*!
- *  Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome
- *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */
-/* FONT PATH
- * -------------------------- */
- /*
-@font-face {
-  font-family: 'FontAwesome';
-  src: url('../fonts/fontawesome-webfont.eot?v=4.1.0');
-  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0') format('embedded-opentype'),
-       url('../fonts/fontawesome-webfont.woff?v=4.1.0') format('woff'),
-       url('../fonts/fontawesome-webfont.ttf?v=4.1.0') format('truetype'),
-       url('../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-*/
-html [class^="ui-icon-"]:after,
-html [class*=" ui-icon-"]:after,
-html .ui-checkbox-on:after,
-html .ui-checkbox-off:after,
-html .ui-radio-on:after,
-html .ui-radio-off:after {
-  display: inline-block;
-  font-family: FontAwesome;
-  font-style: normal;
-  font-weight: normal;
-  line-height: 1;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-/* makes the font 33% larger relative to the icon container */
-html .ui-icon-lg {
-  font-size: 1.33333333em;
-  line-height: 0.75em;
-  vertical-align: -15%;
-}
-html .ui-icon-2x:after {
-  font-size: 2em;
-}
-html .ui-icon-3x:after {
-  font-size: 3em;
-}
-html .ui-icon-4x:after {
-  font-size: 4em;
-}
-html .ui-icon-5x:after {
-  font-size: 5em;
-}
-html .ui-icon-fw {
-  width: 1.28571429em;
-  text-align: center;
-}
-html .ui-icon-ul {
-  padding-left: 0;
-  margin-left: 2.14285714em;
-  list-style-type: none;
-}
-html .ui-icon-ul > li {
-  position: relative;
-}
-html .ui-icon-li {
-  position: absolute;
-  left: -2.14285714em;
-  width: 2.14285714em;
-  top: 0.14285714em;
-  text-align: center;
-}
-html .ui-icon-lihtml .ui-icon-lg {
-  left: -1.85714286em;
-}
-html .ui-icon-border {
-  padding: .2em .25em .15em;
-  border: solid 0.08em #eeeeee;
-  border-radius: .1em;
-}
-.pull-right {
-  float: right;
-}
-.pull-left {
-  float: left;
-}
-html .ui-icon.pull-left {
-  margin-right: .3em;
-}
-html .ui-icon.pull-right {
-  margin-left: .3em;
-}
-html .ui-icon-spin:after {
-  -webkit-animation: spin .5s infinite linear;
-  -moz-animation: spin .5s infinite linear;
-  -o-animation: spin .5s infinite linear;
-  animation: spin .5s infinite linear;
-}
-@-moz-keyframes spin {
-  0% {
-    -moz-transform: rotate(0deg);
-  }
-  100% {
-    -moz-transform: rotate(359deg);
-  }
-}
-@-webkit-keyframes spin {
-  0% {
-    -webkit-transform: rotate(0deg);
-  }
-  100% {
-    -webkit-transform: rotate(359deg);
-  }
-}
-@-o-keyframes spin {
-  0% {
-    -o-transform: rotate(0deg);
-  }
-  100% {
-    -o-transform: rotate(359deg);
-  }
-}
-@keyframes spin {
-  0% {
-    -webkit-transform: rotate(0deg);
-    transform: rotate(0deg);
-  }
-  100% {
-    -webkit-transform: rotate(359deg);
-    transform: rotate(359deg);
-  }
-}
-html .ui-icon-rotate-90:after {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
-  -webkit-transform: rotate(90deg);
-  -moz-transform: rotate(90deg);
-  -ms-transform: rotate(90deg);
-  -o-transform: rotate(90deg);
-  transform: rotate(90deg);
-}
-html .ui-icon-rotate-180:after {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
-  -webkit-transform: rotate(180deg);
-  -moz-transform: rotate(180deg);
-  -ms-transform: rotate(180deg);
-  -o-transform: rotate(180deg);
-  transform: rotate(180deg);
-}
-html .ui-icon-rotate-270:after {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
-  -webkit-transform: rotate(270deg);
-  -moz-transform: rotate(270deg);
-  -ms-transform: rotate(270deg);
-  -o-transform: rotate(270deg);
-  transform: rotate(270deg);
-}
-html .ui-icon-flip-horizontal:after {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
-  -webkit-transform: scale(-1, 1);
-  -moz-transform: scale(-1, 1);
-  -ms-transform: scale(-1, 1);
-  -o-transform: scale(-1, 1);
-  transform: scale(-1, 1);
-}
-html .ui-icon-flip-vertical:after {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
-  -webkit-transform: scale(1, -1);
-  -moz-transform: scale(1, -1);
-  -ms-transform: scale(1, -1);
-  -o-transform: scale(1, -1);
-  transform: scale(1, -1);
-}
-html .ui-icon-stack {
-  position: relative;
-  display: inline-block;
-  width: 2em;
-  height: 2em;
-  line-height: 2em;
-  vertical-align: middle;
-}
-html .ui-icon-stack-1x,
-html .ui-icon-stack-2x {
-  position: absolute;
-  left: 0;
-  width: 100%;
-  text-align: center;
-}
-html .ui-icon-stack-1x {
-  line-height: inherit;
-}
-html .ui-icon-stack-2x {
-  font-size: 2em;
-}
-html .ui-icon-inverse {
-  color: #ffffff;
-}
-/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
-   readers do not read off random characters that represent icons */
-html .ui-icon-glass:after {
-  content: "\f000";
-}
-html .ui-icon-music:after {
-  content: "\f001";
-}
-html .ui-icon-search:after {
-  content: "\f002";
-}
-html .ui-icon-envelope-o:after {
-  content: "\f003";
-}
-html .ui-icon-heart:after {
-  content: "\f004";
-}
-html .ui-icon-star:after {
-  content: "\f005";
-}
-html .ui-icon-star-o:after {
-  content: "\f006";
-}
-html .ui-icon-user:after {
-  content: "\f007";
-}
-html .ui-icon-film:after {
-  content: "\f008";
-}
-html .ui-icon-th-large:after {
-  content: "\f009";
-}
-html .ui-icon-th:after {
-  content: "\f00a";
-}
-html .ui-icon-th-list:after {
-  content: "\f00b";
-}
-html .ui-icon-check:after {
-  content: "\f00c";
-}
-html .ui-icon-times:after,
-html .ui-icon-delete:after {
-  content: "\f00d";
-}
-html .ui-icon-search-plus:after {
-  content: "\f00e";
-}
-html .ui-icon-search-minus:after {
-  content: "\f010";
-}
-html .ui-icon-power-off:after {
-  content: "\f011";
-}
-html .ui-icon-signal:after {
-  content: "\f012";
-}
-html .ui-icon-gear:after,
-html .ui-icon-cog:after {
-  content: "\f013";
-}
-html .ui-icon-trash-o:after {
-  content: "\f014";
-}
-html .ui-icon-home:after {
-  content: "\f015";
-}
-html .ui-icon-file-o:after {
-  content: "\f016";
-}
-html .ui-icon-clock-o:after {
-  content: "\f017";
-}
-html .ui-icon-road:after {
-  content: "\f018";
-}
-html .ui-icon-download:after {
-  content: "\f019";
-}
-html .ui-icon-arrow-circle-o-down:after {
-  content: "\f01a";
-}
-html .ui-icon-arrow-circle-o-up:after {
-  content: "\f01b";
-}
-html .ui-icon-inbox:after {
-  content: "\f01c";
-}
-html .ui-icon-play-circle-o:after {
-  content: "\f01d";
-}
-html .ui-icon-rotate-right:after,
-html .ui-icon-repeat:after {
-  content: "\f01e";
-}
-html .ui-icon-refresh:after {
-  content: "\f021";
-}
-html .ui-icon-list-alt:after {
-  content: "\f022";
-}
-html .ui-icon-lock:after {
-  content: "\f023";
-}
-html .ui-icon-flag:after {
-  content: "\f024";
-}
-html .ui-icon-headphones:after {
-  content: "\f025";
-}
-html .ui-icon-volume-off:after {
-  content: "\f026";
-}
-html .ui-icon-volume-down:after {
-  content: "\f027";
-}
-html .ui-icon-volume-up:after {
-  content: "\f028";
-}
-html .ui-icon-qrcode:after {
-  content: "\f029";
-}
-html .ui-icon-barcode:after {
-  content: "\f02a";
-}
-html .ui-icon-tag:after {
-  content: "\f02b";
-}
-html .ui-icon-tags:after {
-  content: "\f02c";
-}
-html .ui-icon-book:after {
-  content: "\f02d";
-}
-html .ui-icon-bookmark:after {
-  content: "\f02e";
-}
-html .ui-icon-print:after {
-  content: "\f02f";
-}
-html .ui-icon-camera:after {
-  content: "\f030";
-}
-html .ui-icon-font:after {
-  content: "\f031";
-}
-html .ui-icon-bold:after {
-  content: "\f032";
-}
-html .ui-icon-italic:after {
-  content: "\f033";
-}
-html .ui-icon-text-height:after {
-  content: "\f034";
-}
-html .ui-icon-text-width:after {
-  content: "\f035";
-}
-html .ui-icon-align-left:after {
-  content: "\f036";
-}
-html .ui-icon-align-center:after {
-  content: "\f037";
-}
-html .ui-icon-align-right:after {
-  content: "\f038";
-}
-html .ui-icon-align-justify:after {
-  content: "\f039";
-}
-html .ui-icon-list:after {
-  content: "\f03a";
-}
-html .ui-icon-dedent:after,
-html .ui-icon-outdent:after {
-  content: "\f03b";
-}
-html .ui-icon-indent:after {
-  content: "\f03c";
-}
-html .ui-icon-video-camera:after {
-  content: "\f03d";
-}
-html .ui-icon-photo:after,
-html .ui-icon-image:after,
-html .ui-icon-picture-o:after {
-  content: "\f03e";
-}
-html .ui-icon-pencil:after {
-  content: "\f040";
-}
-html .ui-icon-map-marker:after {
-  content: "\f041";
-}
-html .ui-icon-adjust:after {
-  content: "\f042";
-}
-html .ui-icon-tint:after {
-  content: "\f043";
-}
-html .ui-icon-edit:after,
-html .ui-icon-pencil-square-o:after {
-  content: "\f044";
-}
-html .ui-icon-share-square-o:after {
-  content: "\f045";
-}
-html .ui-icon-check-square-o:after,
-html .ui-icon-checkbox-on:after,
-html .ui-checkbox-on:after {
-  content: "\f046";
-}
-html .ui-icon-arrows:after {
-  content: "\f047";
-}
-html .ui-icon-step-backward:after {
-  content: "\f048";
-}
-html .ui-icon-fast-backward:after {
-  content: "\f049";
-}
-html .ui-icon-backward:after {
-  content: "\f04a";
-}
-html .ui-icon-play:after {
-  content: "\f04b";
-}
-html .ui-icon-pause:after {
-  content: "\f04c";
-}
-html .ui-icon-stop:after {
-  content: "\f04d";
-}
-html .ui-icon-forward:after {
-  content: "\f04e";
-}
-html .ui-icon-fast-forward:after {
-  content: "\f050";
-}
-html .ui-icon-step-forward:after {
-  content: "\f051";
-}
-html .ui-icon-eject:after {
-  content: "\f052";
-}
-html .ui-icon-chevron-left:after {
-  content: "\f053";
-}
-html .ui-icon-chevron-right:after {
-  content: "\f054";
-}
-html .ui-icon-plus-circle:after {
-  content: "\f055";
-}
-html .ui-icon-minus-circle:after {
-  content: "\f056";
-}
-html .ui-icon-times-circle:after {
-  content: "\f057";
-}
-html .ui-icon-check-circle:after {
-  content: "\f058";
-}
-html .ui-icon-question-circle:after {
-  content: "\f059";
-}
-html .ui-icon-info-circle:after {
-  content: "\f05a";
-}
-html .ui-icon-crosshairs:after {
-  content: "\f05b";
-}
-html .ui-icon-times-circle-o:after {
-  content: "\f05c";
-}
-html .ui-icon-check-circle-o:after,
-html .ui-icon-radio-off:after,
-html .ui-radio-on:after {
-  content: "\f05d";
-}
-html .ui-icon-ban:after {
-  content: "\f05e";
-}
-html .ui-icon-arrow-left:after {
-  content: "\f060";
-}
-html .ui-icon-arrow-right:after {
-  content: "\f061";
-}
-html .ui-icon-arrow-up:after {
-  content: "\f062";
-}
-html .ui-icon-arrow-down:after {
-  content: "\f063";
-}
-html .ui-icon-mail-forward:after,
-html .ui-icon-share:after {
-  content: "\f064";
-}
-html .ui-icon-expand:after {
-  content: "\f065";
-}
-html .ui-icon-compress:after {
-  content: "\f066";
-}
-html .ui-icon-plus:after {
-  content: "\f067";
-}
-html .ui-icon-minus:after {
-  content: "\f068";
-}
-html .ui-icon-asterisk:after {
-  content: "\f069";
-}
-html .ui-icon-exclamation-circle:after {
-  content: "\f06a";
-}
-html .ui-icon-gift:after {
-  content: "\f06b";
-}
-html .ui-icon-leaf:after {
-  content: "\f06c";
-}
-html .ui-icon-fire:after {
-  content: "\f06d";
-}
-html .ui-icon-eye:after {
-  content: "\f06e";
-}
-html .ui-icon-eye-slash:after {
-  content: "\f070";
-}
-html .ui-icon-warning:after,
-html .ui-icon-exclamation-triangle:after {
-  content: "\f071";
-}
-html .ui-icon-plane:after {
-  content: "\f072";
-}
-html .ui-icon-calendar:after {
-  content: "\f073";
-}
-html .ui-icon-random:after {
-  content: "\f074";
-}
-html .ui-icon-comment:after {
-  content: "\f075";
-}
-html .ui-icon-magnet:after {
-  content: "\f076";
-}
-html .ui-icon-chevron-up:after {
-  content: "\f077";
-}
-html .ui-icon-chevron-down:after {
-  content: "\f078";
-}
-html .ui-icon-retweet:after {
-  content: "\f079";
-}
-html .ui-icon-shopping-cart:after {
-  content: "\f07a";
-}
-html .ui-icon-folder:after {
-  content: "\f07b";
-}
-html .ui-icon-folder-open:after {
-  content: "\f07c";
-}
-html .ui-icon-arrows-v:after {
-  content: "\f07d";
-}
-html .ui-icon-arrows-h:after {
-  content: "\f07e";
-}
-html .ui-icon-bar-chart-o:after {
-  content: "\f080";
-}
-html .ui-icon-twitter-square:after {
-  content: "\f081";
-}
-html .ui-icon-facebook-square:after {
-  content: "\f082";
-}
-html .ui-icon-camera-retro:after {
-  content: "\f083";
-}
-html .ui-icon-key:after {
-  content: "\f084";
-}
-html .ui-icon-gears:after,
-html .ui-icon-cogs:after {
-  content: "\f085";
-}
-html .ui-icon-comments:after {
-  content: "\f086";
-}
-html .ui-icon-thumbs-o-up:after {
-  content: "\f087";
-}
-html .ui-icon-thumbs-o-down:after {
-  content: "\f088";
-}
-html .ui-icon-star-half:after {
-  content: "\f089";
-}
-html .ui-icon-heart-o:after {
-  content: "\f08a";
-}
-html .ui-icon-sign-out:after {
-  content: "\f08b";
-}
-html .ui-icon-linkedin-square:after {
-  content: "\f08c";
-}
-html .ui-icon-thumb-tack:after {
-  content: "\f08d";
-}
-html .ui-icon-external-link:after {
-  content: "\f08e";
-}
-html .ui-icon-sign-in:after {
-  content: "\f090";
-}
-html .ui-icon-trophy:after {
-  content: "\f091";
-}
-html .ui-icon-github-square:after {
-  content: "\f092";
-}
-html .ui-icon-upload:after {
-  content: "\f093";
-}
-html .ui-icon-lemon-o:after {
-  content: "\f094";
-}
-html .ui-icon-phone:after {
-  content: "\f095";
-}
-html .ui-icon-square-o:after,
-html .ui-icon-checkbox-off:after,
-html .ui-checkbox-off:after {
-  content: "\f096";
-}
-html .ui-icon-bookmark-o:after {
-  content: "\f097";
-}
-html .ui-icon-phone-square:after {
-  content: "\f098";
-}
-html .ui-icon-twitter:after {
-  content: "\f099";
-}
-html .ui-icon-facebook:after {
-  content: "\f09a";
-}
-html .ui-icon-github:after {
-  content: "\f09b";
-}
-html .ui-icon-unlock:after {
-  content: "\f09c";
-}
-html .ui-icon-credit-card:after {
-  content: "\f09d";
-}
-html .ui-icon-rss:after {
-  content: "\f09e";
-}
-html .ui-icon-hdd-o:after {
-  content: "\f0a0";
-}
-html .ui-icon-bullhorn:after {
-  content: "\f0a1";
-}
-html .ui-icon-bell:after {
-  content: "\f0f3";
-}
-html .ui-icon-certificate:after {
-  content: "\f0a3";
-}
-html .ui-icon-hand-o-right:after {
-  content: "\f0a4";
-}
-html .ui-icon-hand-o-left:after {
-  content: "\f0a5";
-}
-html .ui-icon-hand-o-up:after {
-  content: "\f0a6";
-}
-html .ui-icon-hand-o-down:after {
-  content: "\f0a7";
-}
-html .ui-icon-arrow-circle-left:after {
-  content: "\f0a8";
-}
-html .ui-icon-arrow-circle-right:after {
-  content: "\f0a9";
-}
-html .ui-icon-arrow-circle-up:after {
-  content: "\f0aa";
-}
-html .ui-icon-arrow-circle-down:after {
-  content: "\f0ab";
-}
-html .ui-icon-globe:after {
-  content: "\f0ac";
-}
-html .ui-icon-wrench:after {
-  content: "\f0ad";
-}
-html .ui-icon-tasks:after {
-  content: "\f0ae";
-}
-html .ui-icon-filter:after {
-  content: "\f0b0";
-}
-html .ui-icon-briefcase:after {
-  content: "\f0b1";
-}
-html .ui-icon-arrows-alt:after {
-  content: "\f0b2";
-}
-html .ui-icon-group:after,
-html .ui-icon-users:after {
-  content: "\f0c0";
-}
-html .ui-icon-chain:after,
-html .ui-icon-link:after {
-  content: "\f0c1";
-}
-html .ui-icon-cloud:after {
-  content: "\f0c2";
-}
-html .ui-icon-flask:after {
-  content: "\f0c3";
-}
-html .ui-icon-cut:after,
-html .ui-icon-scissors:after {
-  content: "\f0c4";
-}
-html .ui-icon-copy:after,
-html .ui-icon-files-o:after {
-  content: "\f0c5";
-}
-html .ui-icon-paperclip:after {
-  content: "\f0c6";
-}
-html .ui-icon-save:after,
-html .ui-icon-floppy-o:after {
-  content: "\f0c7";
-}
-html .ui-icon-square:after {
-  content: "\f0c8";
-}
-html .ui-icon-navicon:after,
-html .ui-icon-reorder:after,
-html .ui-icon-bars:after {
-  content: "\f0c9";
-}
-html .ui-icon-list-ul:after {
-  content: "\f0ca";
-}
-html .ui-icon-list-ol:after {
-  content: "\f0cb";
-}
-html .ui-icon-strikethrough:after {
-  content: "\f0cc";
-}
-html .ui-icon-underline:after {
-  content: "\f0cd";
-}
-html .ui-icon-table:after {
-  content: "\f0ce";
-}
-html .ui-icon-magic:after {
-  content: "\f0d0";
-}
-html .ui-icon-truck:after {
-  content: "\f0d1";
-}
-html .ui-icon-pinterest:after {
-  content: "\f0d2";
-}
-html .ui-icon-pinterest-square:after {
-  content: "\f0d3";
-}
-html .ui-icon-google-plus-square:after {
-  content: "\f0d4";
-}
-html .ui-icon-google-plus:after {
-  content: "\f0d5";
-}
-html .ui-icon-money:after {
-  content: "\f0d6";
-}
-html .ui-icon-caret-down:after,
-html .ui-icon-carat-d:after {
-  content: "\f0d7";
-}
-html .ui-icon-caret-up:after,
-hmtl .ui-icon-carat-u:after{
-  content: "\f0d8";
-}
-html .ui-icon-caret-left:after,
-html .ui-icon-carat-l:after {
-  content: "\f0d9";
-}
-html .ui-icon-caret-right:after,
-html .ui-icon-carat-r:after {
-  content: "\f0da";
-}
-html .ui-icon-columns:after {
-  content: "\f0db";
-}
-html .ui-icon-unsorted:after,
-html .ui-icon-sort:after {
-  content: "\f0dc";
-}
-html .ui-icon-sort-down:after,
-html .ui-icon-sort-desc:after {
-  content: "\f0dd";
-}
-html .ui-icon-sort-up:after,
-html .ui-icon-sort-asc:after {
-  content: "\f0de";
-}
-html .ui-icon-envelope:after {
-  content: "\f0e0";
-}
-html .ui-icon-linkedin:after {
-  content: "\f0e1";
-}
-html .ui-icon-rotate-left:after,
-html .ui-icon-undo:after {
-  content: "\f0e2";
-}
-html .ui-icon-legal:after,
-html .ui-icon-gavel:after {
-  content: "\f0e3";
-}
-html .ui-icon-dashboard:after,
-html .ui-icon-tachometer:after {
-  content: "\f0e4";
-}
-html .ui-icon-comment-o:after {
-  content: "\f0e5";
-}
-html .ui-icon-comments-o:after {
-  content: "\f0e6";
-}
-html .ui-icon-flash:after,
-html .ui-icon-bolt:after {
-  content: "\f0e7";
-}
-html .ui-icon-sitemap:after {
-  content: "\f0e8";
-}
-html .ui-icon-umbrella:after {
-  content: "\f0e9";
-}
-html .ui-icon-paste:after,
-html .ui-icon-clipboard:after {
-  content: "\f0ea";
-}
-html .ui-icon-lightbulb-o:after {
-  content: "\f0eb";
-}
-html .ui-icon-exchange:after {
-  content: "\f0ec";
-}
-html .ui-icon-cloud-download:after {
-  content: "\f0ed";
-}
-html .ui-icon-cloud-upload:after {
-  content: "\f0ee";
-}
-html .ui-icon-user-md:after {
-  content: "\f0f0";
-}
-html .ui-icon-stethoscope:after {
-  content: "\f0f1";
-}
-html .ui-icon-suitcase:after {
-  content: "\f0f2";
-}
-html .ui-icon-bell-o:after {
-  content: "\f0a2";
-}
-html .ui-icon-coffee:after {
-  content: "\f0f4";
-}
-html .ui-icon-cutlery:after {
-  content: "\f0f5";
-}
-html .ui-icon-file-text-o:after {
-  content: "\f0f6";
-}
-html .ui-icon-building-o:after {
-  content: "\f0f7";
-}
-html .ui-icon-hospital-o:after {
-  content: "\f0f8";
-}
-html .ui-icon-ambulance:after {
-  content: "\f0f9";
-}
-html .ui-icon-medkit:after {
-  content: "\f0fa";
-}
-html .ui-icon-fighter-jet:after {
-  content: "\f0fb";
-}
-html .ui-icon-beer:after {
-  content: "\f0fc";
-}
-html .ui-icon-h-square:after {
-  content: "\f0fd";
-}
-html .ui-icon-plus-square:after {
-  content: "\f0fe";
-}
-html .ui-icon-angle-double-left:after {
-  content: "\f100";
-}
-html .ui-icon-angle-double-right:after {
-  content: "\f101";
-}
-html .ui-icon-angle-double-up:after {
-  content: "\f102";
-}
-html .ui-icon-angle-double-down:after {
-  content: "\f103";
-}
-html .ui-icon-angle-left:after {
-  content: "\f104";
-}
-html .ui-icon-angle-right:after {
-  content: "\f105";
-}
-html .ui-icon-angle-up:after {
-  content: "\f106";
-}
-html .ui-icon-angle-down:after {
-  content: "\f107";
-}
-html .ui-icon-desktop:after {
-  content: "\f108";
-}
-html .ui-icon-laptop:after {
-  content: "\f109";
-}
-html .ui-icon-tablet:after {
-  content: "\f10a";
-}
-html .ui-icon-mobile-phone:after,
-html .ui-icon-mobile:after {
-  content: "\f10b";
-}
-html .ui-icon-circle-o:after,
-html .ui-radio-off:after {
-  content: "\f10c";
-}
-html .ui-icon-quote-left:after {
-  content: "\f10d";
-}
-html .ui-icon-quote-right:after {
-  content: "\f10e";
-}
-html .ui-icon-spinner:after {
-  content: "\f110";
-}
-html .ui-icon-circle:after {
-  content: "\f111";
-}
-html .ui-icon-mail-reply:after,
-html .ui-icon-reply:after {
-  content: "\f112";
-}
-html .ui-icon-github-alt:after {
-  content: "\f113";
-}
-html .ui-icon-folder-o:after {
-  content: "\f114";
-}
-html .ui-icon-folder-open-o:after {
-  content: "\f115";
-}
-html .ui-icon-smile-o:after {
-  content: "\f118";
-}
-html .ui-icon-frown-o:after {
-  content: "\f119";
-}
-html .ui-icon-meh-o:after {
-  content: "\f11a";
-}
-html .ui-icon-gamepad:after {
-  content: "\f11b";
-}
-html .ui-icon-keyboard-o:after {
-  content: "\f11c";
-}
-html .ui-icon-flag-o:after {
-  content: "\f11d";
-}
-html .ui-icon-flag-checkered:after {
-  content: "\f11e";
-}
-html .ui-icon-terminal:after {
-  content: "\f120";
-}
-html .ui-icon-code:after {
-  content: "\f121";
-}
-html .ui-icon-mail-reply-all:after,
-html .ui-icon-reply-all:after {
-  content: "\f122";
-}
-html .ui-icon-star-half-empty:after,
-html .ui-icon-star-half-full:after,
-html .ui-icon-star-half-o:after {
-  content: "\f123";
-}
-html .ui-icon-location-arrow:after {
-  content: "\f124";
-}
-html .ui-icon-crop:after {
-  content: "\f125";
-}
-html .ui-icon-code-fork:after {
-  content: "\f126";
-}
-html .ui-icon-unlink:after,
-html .ui-icon-chain-broken:after {
-  content: "\f127";
-}
-html .ui-icon-question:after {
-  content: "\f128";
-}
-html .ui-icon-info:after {
-  content: "\f129";
-}
-html .ui-icon-exclamation:after {
-  content: "\f12a";
-}
-html .ui-icon-superscript:after {
-  content: "\f12b";
-}
-html .ui-icon-subscript:after {
-  content: "\f12c";
-}
-html .ui-icon-eraser:after {
-  content: "\f12d";
-}
-html .ui-icon-puzzle-piece:after {
-  content: "\f12e";
-}
-html .ui-icon-microphone:after {
-  content: "\f130";
-}
-html .ui-icon-microphone-slash:after {
-  content: "\f131";
-}
-html .ui-icon-shield:after {
-  content: "\f132";
-}
-html .ui-icon-calendar-o:after {
-  content: "\f133";
-}
-html .ui-icon-fire-extinguisher:after {
-  content: "\f134";
-}
-html .ui-icon-rocket:after {
-  content: "\f135";
-}
-html .ui-icon-maxcdn:after {
-  content: "\f136";
-}
-html .ui-icon-chevron-circle-left:after {
-  content: "\f137";
-}
-html .ui-icon-chevron-circle-right:after {
-  content: "\f138";
-}
-html .ui-icon-chevron-circle-up:after {
-  content: "\f139";
-}
-html .ui-icon-chevron-circle-down:after {
-  content: "\f13a";
-}
-html .ui-icon-html5:after {
-  content: "\f13b";
-}
-html .ui-icon-css3:after {
-  content: "\f13c";
-}
-html .ui-icon-anchor:after {
-  content: "\f13d";
-}
-html .ui-icon-unlock-alt:after {
-  content: "\f13e";
-}
-html .ui-icon-bullseye:after {
-  content: "\f140";
-}
-html .ui-icon-ellipsis-h:after {
-  content: "\f141";
-}
-html .ui-icon-ellipsis-v:after {
-  content: "\f142";
-}
-html .ui-icon-rss-square:after {
-  content: "\f143";
-}
-html .ui-icon-play-circle:after {
-  content: "\f144";
-}
-html .ui-icon-ticket:after {
-  content: "\f145";
-}
-html .ui-icon-minus-square:after {
-  content: "\f146";
-}
-html .ui-icon-minus-square-o:after {
-  content: "\f147";
-}
-html .ui-icon-level-up:after {
-  content: "\f148";
-}
-html .ui-icon-level-down:after {
-  content: "\f149";
-}
-html .ui-icon-check-square:after {
-  content: "\f14a";
-}
-html .ui-icon-pencil-square:after {
-  content: "\f14b";
-}
-html .ui-icon-external-link-square:after {
-  content: "\f14c";
-}
-html .ui-icon-share-square:after {
-  content: "\f14d";
-}
-html .ui-icon-compass:after {
-  content: "\f14e";
-}
-html .ui-icon-toggle-down:after,
-html .ui-icon-caret-square-o-down:after {
-  content: "\f150";
-}
-html .ui-icon-toggle-up:after,
-html .ui-icon-caret-square-o-up:after {
-  content: "\f151";
-}
-html .ui-icon-toggle-right:after,
-html .ui-icon-caret-square-o-right:after {
-  content: "\f152";
-}
-html .ui-icon-euro:after,
-html .ui-icon-eur:after {
-  content: "\f153";
-}
-html .ui-icon-gbp:after {
-  content: "\f154";
-}
-html .ui-icon-dollar:after,
-html .ui-icon-usd:after {
-  content: "\f155";
-}
-html .ui-icon-rupee:after,
-html .ui-icon-inr:after {
-  content: "\f156";
-}
-html .ui-icon-cny:after,
-html .ui-icon-rmb:after,
-html .ui-icon-yen:after,
-html .ui-icon-jpy:after {
-  content: "\f157";
-}
-html .ui-icon-ruble:after,
-html .ui-icon-rouble:after,
-html .ui-icon-rub:after {
-  content: "\f158";
-}
-html .ui-icon-won:after,
-html .ui-icon-krw:after {
-  content: "\f159";
-}
-html .ui-icon-bitcoin:after,
-html .ui-icon-btc:after {
-  content: "\f15a";
-}
-html .ui-icon-file:after {
-  content: "\f15b";
-}
-html .ui-icon-file-text:after {
-  content: "\f15c";
-}
-html .ui-icon-sort-alpha-asc:after {
-  content: "\f15d";
-}
-html .ui-icon-sort-alpha-desc:after {
-  content: "\f15e";
-}
-html .ui-icon-sort-amount-asc:after {
-  content: "\f160";
-}
-html .ui-icon-sort-amount-desc:after {
-  content: "\f161";
-}
-html .ui-icon-sort-numeric-asc:after {
-  content: "\f162";
-}
-html .ui-icon-sort-numeric-desc:after {
-  content: "\f163";
-}
-html .ui-icon-thumbs-up:after {
-  content: "\f164";
-}
-html .ui-icon-thumbs-down:after {
-  content: "\f165";
-}
-html .ui-icon-youtube-square:after {
-  content: "\f166";
-}
-html .ui-icon-youtube:after {
-  content: "\f167";
-}
-html .ui-icon-xing:after {
-  content: "\f168";
-}
-html .ui-icon-xing-square:after {
-  content: "\f169";
-}
-html .ui-icon-youtube-play:after {
-  content: "\f16a";
-}
-html .ui-icon-dropbox:after {
-  content: "\f16b";
-}
-html .ui-icon-stack-overflow:after {
-  content: "\f16c";
-}
-html .ui-icon-instagram:after {
-  content: "\f16d";
-}
-html .ui-icon-flickr:after {
-  content: "\f16e";
-}
-html .ui-icon-adn:after {
-  content: "\f170";
-}
-html .ui-icon-bitbucket:after {
-  content: "\f171";
-}
-html .ui-icon-bitbucket-square:after {
-  content: "\f172";
-}
-html .ui-icon-tumblr:after {
-  content: "\f173";
-}
-html .ui-icon-tumblr-square:after {
-  content: "\f174";
-}
-html .ui-icon-long-arrow-down:after {
-  content: "\f175";
-}
-html .ui-icon-long-arrow-up:after {
-  content: "\f176";
-}
-html .ui-icon-long-arrow-left:after {
-  content: "\f177";
-}
-html .ui-icon-long-arrow-right:after {
-  content: "\f178";
-}
-html .ui-icon-apple:after {
-  content: "\f179";
-}
-html .ui-icon-windows:after {
-  content: "\f17a";
-}
-html .ui-icon-android:after {
-  content: "\f17b";
-}
-html .ui-icon-linux:after {
-  content: "\f17c";
-}
-html .ui-icon-dribbble:after {
-  content: "\f17d";
-}
-html .ui-icon-skype:after {
-  content: "\f17e";
-}
-html .ui-icon-foursquare:after {
-  content: "\f180";
-}
-html .ui-icon-trello:after {
-  content: "\f181";
-}
-html .ui-icon-female:after {
-  content: "\f182";
-}
-html .ui-icon-male:after {
-  content: "\f183";
-}
-html .ui-icon-gittip:after {
-  content: "\f184";
-}
-html .ui-icon-sun-o:after {
-  content: "\f185";
-}
-html .ui-icon-moon-o:after {
-  content: "\f186";
-}
-html .ui-icon-archive:after {
-  content: "\f187";
-}
-html .ui-icon-bug:after {
-  content: "\f188";
-}
-html .ui-icon-vk:after {
-  content: "\f189";
-}
-html .ui-icon-weibo:after {
-  content: "\f18a";
-}
-html .ui-icon-renren:after {
-  content: "\f18b";
-}
-html .ui-icon-pagelines:after {
-  content: "\f18c";
-}
-html .ui-icon-stack-exchange:after {
-  content: "\f18d";
-}
-html .ui-icon-arrow-circle-o-right:after {
-  content: "\f18e";
-}
-html .ui-icon-arrow-circle-o-left:after {
-  content: "\f190";
-}
-html .ui-icon-toggle-left:after,
-html .ui-icon-caret-square-o-left:after {
-  content: "\f191";
-}
-html .ui-icon-dot-circle-o:after {
-  content: "\f192";
-}
-html .ui-icon-wheelchair:after {
-  content: "\f193";
-}
-html .ui-icon-vimeo-square:after {
-  content: "\f194";
-}
-html .ui-icon-turkish-lira:after,
-html .ui-icon-try:after {
-  content: "\f195";
-}
-html .ui-icon-plus-square-o:after {
-  content: "\f196";
-}
-html .ui-icon-space-shuttle:after {
-  content: "\f197";
-}
-html .ui-icon-slack:after {
-  content: "\f198";
-}
-html .ui-icon-envelope-square:after {
-  content: "\f199";
-}
-html .ui-icon-wordpress:after {
-  content: "\f19a";
-}
-html .ui-icon-openid:after {
-  content: "\f19b";
-}
-html .ui-icon-institution:after,
-html .ui-icon-bank:after,
-html .ui-icon-university:after {
-  content: "\f19c";
-}
-html .ui-icon-mortar-board:after,
-html .ui-icon-graduation-cap:after {
-  content: "\f19d";
-}
-html .ui-icon-yahoo:after {
-  content: "\f19e";
-}
-html .ui-icon-google:after {
-  content: "\f1a0";
-}
-html .ui-icon-reddit:after {
-  content: "\f1a1";
-}
-html .ui-icon-reddit-square:after {
-  content: "\f1a2";
-}
-html .ui-icon-stumbleupon-circle:after {
-  content: "\f1a3";
-}
-html .ui-icon-stumbleupon:after {
-  content: "\f1a4";
-}
-html .ui-icon-delicious:after {
-  content: "\f1a5";
-}
-html .ui-icon-digg:after {
-  content: "\f1a6";
-}
-html .ui-icon-pied-piper-square:after,
-html .ui-icon-pied-piper:after {
-  content: "\f1a7";
-}
-html .ui-icon-pied-piper-alt:after {
-  content: "\f1a8";
-}
-html .ui-icon-drupal:after {
-  content: "\f1a9";
-}
-html .ui-icon-joomla:after {
-  content: "\f1aa";
-}
-html .ui-icon-language:after {
-  content: "\f1ab";
-}
-html .ui-icon-fax:after {
-  content: "\f1ac";
-}
-html .ui-icon-building:after {
-  content: "\f1ad";
-}
-html .ui-icon-child:after {
-  content: "\f1ae";
-}
-html .ui-icon-paw:after {
-  content: "\f1b0";
-}
-html .ui-icon-spoon:after {
-  content: "\f1b1";
-}
-html .ui-icon-cube:after {
-  content: "\f1b2";
-}
-html .ui-icon-cubes:after {
-  content: "\f1b3";
-}
-html .ui-icon-behance:after {
-  content: "\f1b4";
-}
-html .ui-icon-behance-square:after {
-  content: "\f1b5";
-}
-html .ui-icon-steam:after {
-  content: "\f1b6";
-}
-html .ui-icon-steam-square:after {
-  content: "\f1b7";
-}
-html .ui-icon-recycle:after {
-  content: "\f1b8";
-}
-html .ui-icon-automobile:after,
-html .ui-icon-car:after {
-  content: "\f1b9";
-}
-html .ui-icon-cab:after,
-html .ui-icon-taxi:after {
-  content: "\f1ba";
-}
-html .ui-icon-tree:after {
-  content: "\f1bb";
-}
-html .ui-icon-spotify:after {
-  content: "\f1bc";
-}
-html .ui-icon-deviantart:after {
-  content: "\f1bd";
-}
-html .ui-icon-soundcloud:after {
-  content: "\f1be";
-}
-html .ui-icon-database:after {
-  content: "\f1c0";
-}
-html .ui-icon-file-pdf-o:after {
-  content: "\f1c1";
-}
-html .ui-icon-file-word-o:after {
-  content: "\f1c2";
-}
-html .ui-icon-file-excel-o:after {
-  content: "\f1c3";
-}
-html .ui-icon-file-powerpoint-o:after {
-  content: "\f1c4";
-}
-html .ui-icon-file-photo-o:after,
-html .ui-icon-file-picture-o:after,
-html .ui-icon-file-image-o:after {
-  content: "\f1c5";
-}
-html .ui-icon-file-zip-o:after,
-html .ui-icon-file-archive-o:after {
-  content: "\f1c6";
-}
-html .ui-icon-file-sound-o:after,
-html .ui-icon-file-audio-o:after {
-  content: "\f1c7";
-}
-html .ui-icon-file-movie-o:after,
-html .ui-icon-file-video-o:after {
-  content: "\f1c8";
-}
-html .ui-icon-file-code-o:after {
-  content: "\f1c9";
-}
-html .ui-icon-vine:after {
-  content: "\f1ca";
-}
-html .ui-icon-codepen:after {
-  content: "\f1cb";
-}
-html .ui-icon-jsfiddle:after {
-  content: "\f1cc";
-}
-html .ui-icon-life-bouy:after,
-html .ui-icon-life-saver:after,
-html .ui-icon-support:after,
-html .ui-icon-life-ring:after {
-  content: "\f1cd";
-}
-html .ui-icon-circle-o-notch:after {
-  content: "\f1ce";
-}
-html .ui-icon-ra:after,
-html .ui-icon-rebel:after {
-  content: "\f1d0";
-}
-html .ui-icon-ge:after,
-html .ui-icon-empire:after {
-  content: "\f1d1";
-}
-html .ui-icon-git-square:after {
-  content: "\f1d2";
-}
-html .ui-icon-git:after {
-  content: "\f1d3";
-}
-html .ui-icon-hacker-news:after {
-  content: "\f1d4";
-}
-html .ui-icon-tencent-weibo:after {
-  content: "\f1d5";
-}
-html .ui-icon-qq:after {
-  content: "\f1d6";
-}
-html .ui-icon-wechat:after,
-html .ui-icon-weixin:after {
-  content: "\f1d7";
-}
-html .ui-icon-send:after,
-html .ui-icon-paper-plane:after {
-  content: "\f1d8";
-}
-html .ui-icon-send-o:after,
-html .ui-icon-paper-plane-o:after {
-  content: "\f1d9";
-}
-html .ui-icon-history:after {
-  content: "\f1da";
-}
-html .ui-icon-circle-thin:after {
-  content: "\f1db";
-}
-html .ui-icon-header:after {
-  content: "\f1dc";
-}
-html .ui-icon-paragraph:after {
-  content: "\f1dd";
-}
-html .ui-icon-sliders:after {
-  content: "\f1de";
-}
-html .ui-icon-share-alt:after {
-  content: "\f1e0";
-}
-html .ui-icon-share-alt-square:after {
-  content: "\f1e1";
-}
-html .ui-icon-bomb:after {
-  content: "\f1e2";
-}
-
-/* JQM compat */
-/* clear background */
-html .ui-btn:after {
-  background: 0 none;
-  border-radius: 0;
-  -webkit-border-radius: 0;
-}
-
-/* iconsize, positioning */
-html .ui-btn[class*="ui-icon-"]:after,
-html .ui-btn[class*="ui-icon-"]:after {
-  font-size: 1.25em;
-}
-/* panel get less XXX: keep? */
-html .ui-panel .ui-content .ui-btn[class*="ui-icon-"]:after,
-html .ui-panel .ui-content .ui-btn[class*="ui-icon-"]:after {
-  font-size: 1em;
-}
-
-@media (max-width: 32em) {
-  html .ui-btn[class*="ui-icon-"]:after,
-  html .ui-btn[class*="ui-icon-"]:after {
-    font-size: 1.5em;
-  }
-  html .ui-panel .ui-content .ui-btn[class*="ui-icon-"]:after,
-  html .ui-panel .ui-content .ui-btn[class*="ui-icon-"]:after {
-    font-size: 1.25em;
-  }
-}
-
-/* FALLBACK Icons - JQM compat: user, reorder, search, delete */
-/* bars */
-.ui-nosvg .ui-icon-reorder:after {
-  background-image: url(img/jquery-mobile/icons-png/bars-black.png);
-}
-/* delete */
-.ui-nosvg .ui-icon-delete:after {
-  background-image: url(images/icons-png/delete-black.png);
-}
-/* search */
-.ui-nosvg .ui-icon-search:after {
-  background-image: url(images/icons-png/search-black.png);
-}
-/* user */
-.ui-nosvg .ui-icon-user:after {
-  background-image: url(images/icons-png/user-white.png);
-}
-
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_erp5_css.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_erp5_css.xml
deleted file mode 100644
index 842677658ffcdbbfda366204ab4f1a29230022c4..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_erp5_css.xml
+++ /dev/null
@@ -1,257 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Style" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_erp5.css</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>rjs_gadget_erp5_css</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Style</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>RenderJS Gadget OfficeJS CSS</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>001</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish_alive</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1465381402.54</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published_alive</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>959.26374.14159.14984</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1496323644.36</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.js
deleted file mode 100644
index 68eeae085bb43da926806a95cf9c2151338cf037..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.js
+++ /dev/null
@@ -1,567 +0,0 @@
-/*globals window, document, RSVP, rJS,
-          loopEventListener, jQuery, URI, location, XMLHttpRequest, console*/
-/*jslint indent: 2, maxlen: 80*/
-(function (window, document, RSVP, rJS, loopEventListener,
-           $, XMLHttpRequest, location, console) {
-  "use strict";
-
-  /////////////////////////////////////////////////////////////////
-  // Desactivate jQuery Mobile URL management
-  /////////////////////////////////////////////////////////////////
-  $.mobile.ajaxEnabled = false;
-  $.mobile.linkBindingEnabled = false;
-  $.mobile.hashListeningEnabled = false;
-  $.mobile.pushStateEnabled = false;
-
-  var MAIN_SCOPE = "m";
-
-  function renderMainGadget(gadget, url, options) {
-    return gadget.declareGadget(url, {
-      scope: MAIN_SCOPE
-    })
-      .push(function (page_gadget) {
-        gadget.props.m_options_string = JSON.stringify(options);
-        if (page_gadget.render === undefined) {
-          return [page_gadget];
-        }
-        return RSVP.all([
-          page_gadget,
-          page_gadget.render(options)
-        ]);
-      })
-      .push(function (all_result) {
-        return all_result[0];
-      });
-  }
-
-  function initHeaderOptions(gadget) {
-    gadget.props.header_argument_list = {
-      panel_action: true,
-      title: gadget.props.application_title || "OfficeJS"
-    };
-  }
-
-  function route(my_root_gadget, my_scope, my_method, my_param_list) {
-    return RSVP.Queue()
-      .push(function () {
-        return my_root_gadget.getDeclaredGadget(my_scope);
-      })
-      .push(function (my_gadget) {
-        if (my_param_list) {
-          return my_gadget[my_method].apply(my_gadget, my_param_list);
-        }
-        return my_gadget[my_method]();
-      });
-  }
-
-  function updateHeader(gadget) {
-    return gadget.getDeclaredGadget("header")
-      .push(function (header_gadget) {
-        return header_gadget.render(gadget.props.header_argument_list);
-      });
-  }
-
-  function increaseLoadingCounter(gadget) {
-    return new RSVP.Queue()
-      .push(function () {
-        gadget.props.loading_counter += 1;
-        if (gadget.props.loading_counter === 1) {
-          return gadget.getDeclaredGadget("header")
-            .push(function (header_gadget) {
-              return header_gadget.notifyLoading();
-            });
-        }
-      });
-  }
-
-  function decreaseLoadingCounter(gadget) {
-    return new RSVP.Queue()
-      .push(function () {
-        gadget.props.loading_counter -= 1;
-        if (gadget.props.loading_counter < 0) {
-          gadget.props.loading_counter = 0;
-          // throw new Error("Unexpected negative loading counter");
-        }
-        if (gadget.props.loading_counter === 0) {
-          return gadget.getDeclaredGadget("header")
-            .push(function (header_gadget) {
-              return header_gadget.notifyLoaded();
-            });
-        }
-      });
-  }
-
-  function callJioGadget(gadget, method, param_list) {
-    var called = false;
-    return new RSVP.Queue()
-      .push(function () {
-        called = true;
-        return increaseLoadingCounter(gadget);
-      })
-      .push(function () {
-        return gadget.getDeclaredGadget("jio_gadget");
-      })
-      .push(function (jio_gadget) {
-        return jio_gadget[method].apply(jio_gadget, param_list);
-      })
-      .push(function (result) {
-        return decreaseLoadingCounter(gadget)
-          .push(function () {
-            return result;
-          });
-      }, function (error) {
-        if (called) {
-          return decreaseLoadingCounter(gadget)
-            .push(function () {
-              throw error;
-            });
-        }
-        throw error;
-      });
-  }
-
-  function displayErrorContent(gadget, error) {
-    // Do not break the application in case of errors.
-    // Display it to the user for now,
-    // and allow user to go back to the frontpage
-    var error_text = "";
-    if (error instanceof RSVP.CancellationError) {
-      return;
-    }
-
-    if (error.target instanceof XMLHttpRequest) {
-      error_text = error.target.toString() + " " +
-        error.target.status + " " +
-        error.target.statusText + "\n" +
-        error.target.responseURL + "\n\n" +
-        error.target.getAllResponseHeaders();
-    } else if (error instanceof Error) {
-      error_text = error.toString();
-    } else {
-      error_text = JSON.stringify(error);
-    }
-
-    console.error(error);
-    if (error instanceof Error) {
-      console.error(error.stack);
-    }
-    // XXX Improve error rendering
-    gadget.props.content_element.innerHTML = "<br/><br/><br/><pre></pre>";
-    gadget.props.content_element.querySelector('pre').textContent =
-      "Error: " + error_text;
-    // XXX Notify error
-  }
-
-  function displayError(gadget, error) {
-    return new RSVP.Queue()
-      .push(function () {
-        return displayErrorContent(gadget, error);
-      })
-      .push(function () {
-        return gadget.dropGadget(MAIN_SCOPE)
-          .push(undefined, function () {
-            // Do not crash the app if the pg gadget in not defined
-            // ie, keep the original error on screen
-            return;
-          });
-      });
-  }
-
-  function getSetting(gadget, key, default_value) {
-    return gadget.getDeclaredGadget("setting_gadget")
-      .push(function (jio_gadget) {
-        return jio_gadget.get("setting");
-      })
-      .push(function (doc) {
-        return doc[key] || default_value;
-      }, function (error) {
-        if (error.status_code === 404) {
-          return default_value;
-        }
-        throw error;
-      });
-  }
-
-  function setSetting(gadget, key, value) {
-    var jio_gadget;
-    return gadget.getDeclaredGadget("setting_gadget")
-      .push(function (result) {
-        jio_gadget = result;
-        return jio_gadget.get("setting");
-      })
-      .push(undefined, function (error) {
-        if (error.status_code === 404) {
-          return {};
-        }
-        throw error;
-      })
-      .push(function (doc) {
-        doc[key] = value;
-        return jio_gadget.put('setting', doc);
-      });
-  }
-
-  //////////////////////////////////////////
-  // Page rendering
-  //////////////////////////////////////////
-  rJS(window)
-    .ready(function (g) {
-      g.props = {};
-      return g.getElement()
-        .push(function (element) {
-          $(element).trigger("create");
-          g.props.loading_counter = 0;
-          g.props.element = element;
-          g.props.content_element = element.querySelector('.gadget-content');
-        });
-    })
-    // Configure setting storage
-    .ready(function (g) {
-      return g.getDeclaredGadget("setting_gadget")
-        .push(function (jio_gadget) {
-          return jio_gadget.createJio({
-            type: "indexeddb",
-            database: window.location.pathname + "setting"
-          });
-        });
-    })
-    .ready(function (g) {
-      // Extract configuration parameters stored in HTML
-      // XXX Will work only if top gadget...
-      var element_list =
-        document.querySelectorAll("[data-renderjs-configuration]"),
-        len = element_list.length,
-        key,
-        value,
-        i,
-        queue = new RSVP.Queue();
-
-      function push(a, b) {
-        queue.push(function () {
-          return setSetting(g, a, b);
-        });
-      }
-
-      for (i = 0; i < len; i += 1) {
-        key = element_list[i].getAttribute('data-renderjs-configuration');
-        value = element_list[i].textContent;
-        g.props[key] = value;
-        push(key, value);
-      }
-      return queue;
-    })
-    .ready(function (g) {
-      return setSetting(g, 'hateoas_url',
-          (new URI(g.props.hateoas_url))
-            .absoluteTo(location.href)
-            .toString()
-        );
-    })
-    // Configure jIO storage
-    .ready(function (g) {
-      var jio_gadget;
-      return g.getDeclaredGadget("jio_gadget")
-        .push(function (result) {
-          jio_gadget = result;
-          return getSetting(g, 'jio_storage_description');
-        })
-        .push(function (result) {
-          return jio_gadget.createJio(result);
-        });
-    })
-    .ready(function (g) {
-      return g.getDeclaredGadget('panel')
-        .push(function (panel_gadget) {
-          return panel_gadget.render();
-        });
-    })
-    .ready(function (g) {
-      return g.getDeclaredGadget('router')
-        .push(function (router_gadget) {
-          return router_gadget.start();
-        });
-    })
-
-    //////////////////////////////////////////
-    // Allow Acquisition
-    //////////////////////////////////////////
-    .allowPublicAcquisition("getSetting", function (argument_list) {
-      return getSetting(this, argument_list[0], argument_list[1]);
-    })
-    .allowPublicAcquisition("setSetting", function (argument_list) {
-      return setSetting(this, argument_list[0], argument_list[1]);
-    })
-    .allowPublicAcquisition("translateHtml", function (argument_list) {
-      return this.getDeclaredGadget("translation_gadget")
-        .push(function (translation_gadget) {
-          return translation_gadget.translateHtml(argument_list[0]);
-        });
-    })
-
-    // XXX Those methods may be directly integrated into the header,
-    // as it handles the submit triggering
-    .allowPublicAcquisition('notifySubmitting', function () {
-      return route(this, "header", 'notifySubmitting');
-    })
-    .allowPublicAcquisition('notifySubmitted', function () {
-      return route(this, "header", "notifySubmitted");
-    })
-    .allowPublicAcquisition('notifyChange', function () {
-      return route(this, "header", 'notifyChange');
-    })
-
-    .allowPublicAcquisition('refresh', function () {
-      var gadget = this;
-      return gadget.getDeclaredGadget(MAIN_SCOPE)
-        .push(function (main) {
-          if (main.render !== undefined) {
-            return main.render(JSON.parse(gadget.props.m_options_string))
-              .push(function () {
-                $(gadget.props.content_element).trigger("create");
-              });
-          }
-        }, function () {
-          return;
-        });
-    })
-
-    .allowPublicAcquisition("translate", function (argument_list) {
-      return this.getDeclaredGadget("translation_gadget")
-        .push(function (translation_gadget) {
-          return translation_gadget.translate(argument_list[0]);
-        });
-    })
-
-    .allowPublicAcquisition("redirect", function (param_list) {
-      return this.getDeclaredGadget('router')
-        .push(function (router_gadget) {
-          return router_gadget.redirect.apply(router_gadget, param_list);
-        });
-    })
-    .allowPublicAcquisition('reload', function () {
-      return location.reload();
-    })
-    .allowPublicAcquisition("getUrlParameter", function (param_list) {
-      return this.getDeclaredGadget('router')
-        .push(function (router_gadget) {
-          return router_gadget.getUrlParameter.apply(router_gadget, param_list);
-        });
-    })
-    .allowPublicAcquisition("getUrlFor", function (param_list) {
-      return this.getDeclaredGadget('router')
-        .push(function (router_gadget) {
-          return router_gadget.getCommandUrlFor.apply(router_gadget,
-                                                      param_list);
-        });
-    })
-
-    .allowPublicAcquisition("updateHeader", function (param_list) {
-      var gadget = this;
-      initHeaderOptions(gadget);
-      return this.getDeclaredGadget("translation_gadget")
-        .push(function (translation_gadget) {
-          var promise_list = [],
-            key;
-          for (key in param_list[0]) {
-            if (param_list[0].hasOwnProperty(key)) {
-              gadget.props.header_argument_list[key] = param_list[0][key];
-            }
-          }
-
-          promise_list.push(translation_gadget.translate(
-            gadget.props.header_argument_list.title
-          ));
-          if (gadget.props.header_argument_list.hasOwnProperty('right_title')) {
-            promise_list.push(translation_gadget.translate(
-              gadget.props.header_argument_list.right_title
-            ));
-          }
-          return RSVP.all(promise_list);
-        })
-        .push(function (result_list) {
-          gadget.props.header_argument_list.title = result_list[0];
-          if (result_list.length === 2) {
-            gadget.props.header_argument_list.right_title = result_list[1];
-          }
-
-          // XXX Sven hack: number of _url determine padding for
-          // subheader on ui-content
-          var key,
-            count = 0;
-          for (key in gadget.props.header_argument_list) {
-            if (gadget.props.header_argument_list.hasOwnProperty(key)) {
-              if (key.indexOf('_url') > -1) {
-                count += 1;
-              }
-            }
-          }
-          if (count > 2) {
-            gadget.props.sub_header_class = "ui-has-subheader";
-          }
-        });
-    })
-
-    .allowPublicAcquisition('triggerPanel', function () {
-      return route(this, "panel", "toggle");
-    })
-    .allowPublicAcquisition('renderEditorPanel', function (param_list) {
-      return route(this, "editor_panel", 'render', param_list);
-    })
-    .allowPublicAcquisition("jio_allDocs", function (param_list) {
-      return callJioGadget(this, "allDocs", param_list);
-    })
-    .allowPublicAcquisition("jio_remove", function (param_list) {
-      return callJioGadget(this, "remove", param_list);
-    })
-    .allowPublicAcquisition("jio_post", function (param_list) {
-      return callJioGadget(this, "post", param_list);
-    })
-    .allowPublicAcquisition("jio_put", function (param_list) {
-      return callJioGadget(this, "put", param_list);
-    })
-    .allowPublicAcquisition("jio_get", function (param_list) {
-      return callJioGadget(this, "get", param_list);
-    })
-    .allowPublicAcquisition("jio_allAttachments", function (param_list) {
-      return callJioGadget(this, "allAttachments", param_list);
-    })
-    .allowPublicAcquisition("jio_getAttachment", function (param_list) {
-      return callJioGadget(this, "getAttachment", param_list);
-    })
-    .allowPublicAcquisition("jio_putAttachment", function (param_list) {
-      return callJioGadget(this, "putAttachment", param_list);
-    })
-    .allowPublicAcquisition("jio_removeAttachment", function (param_list) {
-      return callJioGadget(this, "removeAttachment", param_list);
-    })
-    .allowPublicAcquisition("jio_repair", function (param_list) {
-      return callJioGadget(this, "repair", param_list);
-    })
-    .allowPublicAcquisition("triggerSubmit", function (param_list) {
-      return this.getDeclaredGadget(MAIN_SCOPE)
-        .push(function (main_gadget) {
-          return main_gadget.triggerSubmit(param_list);
-        });
-    })
-    /////////////////////////////////////////////////////////////////
-    // declared methods
-    /////////////////////////////////////////////////////////////////
-    .allowPublicAcquisition("renderApplication", function (param_list) {
-      return this.renderXXX.apply(this, param_list);
-    })
-    // Render the page
-    .declareMethod('renderXXX', function (options) {
-      var gadget = this;
-
-      gadget.props.options = options;
-      // Reinitialize the loading counter
-      gadget.props.loading_counter = 0;
-      // By default, init the header options to be empty
-      // (ERP5 title by default + sidebar)
-      initHeaderOptions(gadget);
-      return new RSVP.Queue()
-        .push(function () {
-          return increaseLoadingCounter(gadget);
-        })
-        .push(function () {
-          return gadget.getDeclaredGadget('panel');
-        })
-        .push(function (panel_gadget) {
-          return panel_gadget.close();
-        })
-        .push(function () {
-          return gadget.getDeclaredGadget('editor_panel');
-        })
-        .push(function (editor_panel) {
-          return editor_panel.close();
-        })
-        .push(function () {
-          return gadget.getDeclaredGadget('router');
-        })
-        .push(function (router_gadget) {
-          return router_gadget.route(options);
-        })
-        .push(function (route_result) {
-          return renderMainGadget(
-            gadget,
-            route_result.url,
-            route_result.options
-          );
-        })
-        .push(function (main_gadget) {
-          // Append loaded gadget in the page
-          if (main_gadget !== undefined) {
-            return main_gadget.getElement()
-              .push(function (fragment) {
-                var element = gadget.props.content_element,
-                  content_container = document.createElement("div");
-                content_container.className = "ui-content " +
-                  (gadget.props.sub_header_class || "");
-                // reset subheader indicator
-                delete gadget.props.sub_header_class;
-
-                // go to the top of the page
-                window.scrollTo(0, 0);
-
-                // Clear first to DOM, append after to reduce flickering/manip
-                while (element.firstChild) {
-                  element.removeChild(element.firstChild);
-                }
-                content_container.appendChild(fragment);
-                element.appendChild(content_container);
-
-                $(element).trigger("create");
-
-                return updateHeader(gadget);
-                // XXX Drop notification
-                // return header_gadget.notifyLoaded();
-              });
-          }
-        })
-        .push(function () {
-          return decreaseLoadingCounter(gadget);
-        }, function (error) {
-          return decreaseLoadingCounter(gadget)
-            .push(function () {
-              throw error;
-            });
-        })
-        .push(undefined, function (error) {
-          return displayError(gadget, error);
-        });
-    })
-
-    /////////////////////////////////
-    // Handle sub gadgets services
-    /////////////////////////////////
-    .allowPublicAcquisition('reportServiceError', function (param_list,
-                                                            gadget_scope) {
-      if (gadget_scope === undefined) {
-        // don't fail in case of dropped subgadget (like previous page)
-        return;
-      }
-      return displayError(this, param_list[0]);
-    })
-
-    .declareService(function () {
-      ////////////////////////////////////
-      // Form submit listening. Prevent browser to automatically
-      // handle the form submit in case of a bug
-      ////////////////////////////////////
-      var gadget = this;
-
-      function catchFormSubmit() {
-        return displayError(gadget, new Error("Unexpected form submit"));
-      }
-
-      // Listen to form submit
-      return loopEventListener(
-        gadget.props.element,
-        'submit',
-        false,
-        catchFormSubmit
-      );
-    });
-
-}(window, document, RSVP, rJS, loopEventListener, jQuery,
-  XMLHttpRequest, location, console));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.xml
deleted file mode 100644
index 3618cb87d29cd470ed8bbdb205544c7a7480cd15..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.xml
+++ /dev/null
@@ -1,320 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Script" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>erp5_launcher.js</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>rjs_gadget_erp5_js</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Script</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>OfficeJS Launcher JS</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>001</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish_alive</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>romain</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1406898405.68</float>
-                        <string>GMT</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published_alive</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>957.11877.38028.13977</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1487945144.32</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>romain</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1405426548.84</float>
-                        <string>GMT</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_global_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_global_js.js
deleted file mode 100644
index a3370c42f35c1e1c4e22ad0ea5b4213ea60b7da0..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_global_js.js
+++ /dev/null
@@ -1,129 +0,0 @@
-/*global window, RSVP, FileReader */
-/*jslint indent: 2, maxerr: 3, unparam: true */
-(function (window, RSVP, FileReader) {
-  "use strict";
-
-  window.loopEventListener = function (target, type, useCapture, callback,
-                                       prevent_default) {
-    //////////////////////////
-    // Infinite event listener (promise is never resolved)
-    // eventListener is removed when promise is cancelled/rejected
-    //////////////////////////
-    var handle_event_callback,
-      callback_promise;
-
-    if (prevent_default === undefined) {
-      prevent_default = true;
-    }
-
-    function cancelResolver() {
-      if ((callback_promise !== undefined) &&
-          (typeof callback_promise.cancel === "function")) {
-        callback_promise.cancel();
-      }
-    }
-
-    function canceller() {
-      if (handle_event_callback !== undefined) {
-        target.removeEventListener(type, handle_event_callback, useCapture);
-      }
-      cancelResolver();
-    }
-    function itsANonResolvableTrap(resolve, reject) {
-      var result;
-      handle_event_callback = function (evt) {
-        if (prevent_default) {
-          evt.stopPropagation();
-          evt.preventDefault();
-        }
-
-        cancelResolver();
-
-        try {
-          result = callback(evt);
-        } catch (e) {
-          result = RSVP.reject(e);
-        }
-
-        callback_promise = result;
-        new RSVP.Queue()
-          .push(function () {
-            return result;
-          })
-          .push(undefined, function (error) {
-            if (!(error instanceof RSVP.CancellationError)) {
-              canceller();
-              reject(error);
-            }
-          });
-      };
-
-      target.addEventListener(type, handle_event_callback, useCapture);
-    }
-    return new RSVP.Promise(itsANonResolvableTrap, canceller);
-  };
-
-  window.promiseEventListener = function (target, type, useCapture) {
-    //////////////////////////
-    // Resolve the promise as soon as the event is triggered
-    // eventListener is removed when promise is cancelled/resolved/rejected
-    //////////////////////////
-    var handle_event_callback;
-
-    function canceller() {
-      target.removeEventListener(type, handle_event_callback, useCapture);
-    }
-
-    function resolver(resolve) {
-      handle_event_callback = function (evt) {
-        canceller();
-        evt.stopPropagation();
-        evt.preventDefault();
-        resolve(evt);
-        return false;
-      };
-
-      target.addEventListener(type, handle_event_callback, useCapture);
-    }
-    return new RSVP.Promise(resolver, canceller);
-  };
-
-  window.promiseReadAsText = function (file) {
-    return new RSVP.Promise(function (resolve, reject) {
-      var reader = new FileReader();
-      reader.onload = function (evt) {
-        resolve(evt.target.result);
-      };
-      reader.onerror = function (evt) {
-        reject(evt);
-      };
-      reader.readAsText(file);
-    });
-  };
-
-  window.promiseDoWhile = function (loopFunction, input) {
-    // calls loopFunction(input) until it returns a non positive value
-
-    // this queue is to protect the inner loop queue from the
-    // `promiseDoWhile` caller, avoiding it to enqueue the inner
-    // loop queue.
-    return new RSVP.Queue()
-      .push(function () {
-        // here is the inner loop queue
-        var loop_queue = new RSVP.Queue();
-        function iterate(previous_iteration_result) {
-          if (!previous_iteration_result) {
-            return input;
-          }
-          loop_queue.push(iterate);
-          return loopFunction(input);
-        }
-        return loop_queue
-          .push(function () {
-            return loopFunction(input);
-          })
-          .push(iterate);
-      });
-  };
-
-}(window, RSVP, FileReader));
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_global_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_global_js.xml
deleted file mode 100644
index 5ed325cf41a98a5d1cb1ec1fd2da03704e78cae7..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_global_js.xml
+++ /dev/null
@@ -1,320 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Script" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>gadget_global.js</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>rjs_gadget_global_js</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Script</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>gadget_global.js</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>001</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish_alive</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>romain</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1406898405.88</float>
-                        <string>GMT</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published_alive</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>947.51167.64410.14796</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1450099422.01</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>romain</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1405522101.02</float>
-                        <string>GMT</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_monitoring_html.html b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_monitoring_html.html
deleted file mode 100644
index 3be117878d331e914ba2546b6ecc198e3b7ba9ea..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_monitoring_html.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE html>
-<html manifest="${manifest_url}">
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <link rel="shortcut icon" href="favicon.ico">
-
-    <title>${application_title}</title>
-
-    <link href="font-awesome/font-awesome.css" rel="stylesheet" type="text/css" />
-    <link rel="stylesheet" href="jquerymobile.css">
-    <link rel="stylesheet" href="gadget_erp5.css">
-
-    <script data-renderjs-configuration="application_title" type="text/x-renderjs-configuration">${application_title}</script>
-    <script data-renderjs-configuration="panel_gadget" type="text/x-renderjs-configuration">${panel_gadget}</script>
-    <script data-renderjs-configuration="action_view" type="text/x-renderjs-configuration">${action_view}</script>
-    <script data-renderjs-configuration="default_view_reference" type="text/x-renderjs-configuration">${default_view_reference}</script>
-    <script data-renderjs-configuration="hateoas_url" type="text/x-renderjs-configuration">${hateoas_url}</script>
-    <script data-renderjs-configuration="frontpage_gadget" type="text/x-renderjs-configuration">${frontpage_gadget}</script>
-    <script data-renderjs-configuration="language_map" type="text/x-renderjs-configuration">${language_map}</script>
-    <script data-renderjs-configuration="default_selected_language" type="text/x-renderjs-configuration">${default_selected_language}</script>
-    <script data-renderjs-configuration="website_url_set" type="text/x-renderjs-configuration">${website_url_set}</script>
-
-    <script src="jquery.js"></script>
-    <script src="jquerymobile.js"></script>
-    <script src="rsvp.js"></script>
-    <script src="renderjs.js"></script>
-    <script src="gadget_global.js" ></script>
-    <script src="erp5_launcher.js"></script>
-
-  </head>
-
-  <body>
-    <div data-role="page">
-
-      <div data-gadget-url="gadget_jio.html"
-          data-gadget-scope="setting_gadget"
-          data-gadget-sandbox="public"></div>
-
-      <div data-gadget-url="${router_gadget}"
-          data-gadget-scope="router"
-          data-gadget-sandbox="public"></div>
-
-      <div data-gadget-url="${translation_gadget}"
-          data-gadget-scope="translation_gadget"
-          data-gadget-sandbox="public"></div>
-
-      <div data-gadget-url="${header_gadget}"
-          data-gadget-scope="header"
-          data-gadget-sandbox="public"></div>
-
-      <div data-gadget-url="${jio_gadget}"
-          data-gadget-scope="jio_gadget"
-          data-gadget-sandbox="public"></div>
-
-
-      <div data-gadget-url="gadget_erp5_editor_panel.html"
-          data-gadget-scope="editor_panel"
-          data-gadget-sandbox="public"></div>
-
-      <div data-gadget-url="${panel_gadget}"
-          data-gadget-scope="panel"
-          data-gadget-sandbox="public"></div>
-
-      <div role="main" class="ui-content gadget-content"></div>
-    </div>
-
-  </body>
-</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_jquerymobile_css.css b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_jquerymobile_css.css
deleted file mode 100644
index 2bff5c1015163bdb296a8befb750cc16626ca397..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_jquerymobile_css.css
+++ /dev/null
@@ -1,4711 +0,0 @@
-/*!
-* jQuery Mobile 1.5.0-pre
-* Git HEAD hash: 39cb20fe26969941329347e2f41a222f94c63138 <> Date: Tue Aug 26 2014 13:31:05 UTC
-* http://jquerymobile.com
-*
-* Copyright 2010, 2014 jQuery Foundation, Inc. and othercontributors
-* Released under the MIT license.
-* http://jquery.org/license
-*
-*/
-
-
-/* SVG icons */
-.ui-icon-action:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M9%2C5v3l5-4L9%2C0v3c0%2C0-5%2C0-5%2C7C6%2C5%2C9%2C5%2C9%2C5z%20M11%2C12H2V5h1l2-2H0v11h13V7l-2%2C2V12z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-alert:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M7%2C0L0%2C12h14L7%2C0z%20M7%2C11c-0.553%2C0-1-0.447-1-1s0.447-1%2C1-1c0.553%2C0%2C1%2C0.447%2C1%2C1S7.553%2C11%2C7%2C11z%20M7%2C8%20C6.447%2C8%2C6%2C7.553%2C6%2C7V5c0-0.553%2C0.447-1%2C1-1c0.553%2C0%2C1%2C0.447%2C1%2C1v2C8%2C7.553%2C7.553%2C8%2C7%2C8z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-arrow-d-l:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20fill%3D%22%23FFF%22%20points%3D%2214%2C3%2011%2C0%203.5%2C7.5%200%2C4%200%2C14%2010%2C14%206.5%2C10.5%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-arrow-d-r:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20fill%3D%22%23FFF%22%20points%3D%2210.5%2C7.5%203%2C0%200%2C3%207.5%2C10.5%204%2C14%2014%2C14%2014%2C4%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-arrow-d:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20fill%3D%22%23FFF%22%20points%3D%229%2C7%209%2C0%205%2C0%205%2C7%200%2C7%207%2C14%2014%2C7%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-arrow-l:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20fill%3D%22%23FFF%22%20points%3D%227%2C5%207%2C0%200%2C7%207%2C14%207%2C9%2014%2C9%2014%2C5%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-arrow-r:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20fill%3D%22%23FFF%22%20points%3D%2214%2C7%207%2C0%207%2C5%200%2C5%200%2C9%207%2C9%207%2C14%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-arrow-u-l:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20fill%3D%22%23FFF%22%20points%3D%2214%2C11%206.5%2C3.5%2010%2C0%200%2C0%200%2C10%203.5%2C6.5%2011%2C14%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-arrow-u-r:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20fill%3D%22%23FFF%22%20points%3D%2214%2C0%204%2C0%207.5%2C3.5%200%2C11%203%2C14%2010.5%2C6.5%2014%2C10%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-arrow-u:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20fill%3D%22%23FFF%22%20points%3D%227%2C0%200%2C7%205%2C7%205%2C14%209%2C14%209%2C7%2014%2C7%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-audio:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214.018px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014.018%2014%22%20style%3D%22enable-background%3Anew%200%200%2014.018%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M1%2C4C0.447%2C4%2C0%2C4.447%2C0%2C5v4c0%2C0.553%2C0.447%2C1%2C1%2C1h1l4%2C4V0L2%2C4H1z%20M10.346%2C7c0-1.699-1.042-3.154-2.546-3.867L6.982%2C4.68%20C7.885%2C5.107%2C8.51%2C5.98%2C8.51%2C7S7.885%2C8.893%2C6.982%2C9.32L7.8%2C10.867C9.304%2C10.154%2C10.346%2C8.699%2C10.346%2C7z%20M9.447%2C0.017L8.618%2C1.586%20C10.723%2C2.584%2C12.182%2C4.621%2C12.182%2C7s-1.459%2C4.416-3.563%2C5.414l0.829%2C1.569c2.707-1.283%2C4.57-3.925%2C4.57-6.983%20S12.154%2C1.3%2C9.447%2C0.017z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-back:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M5%2C3V0L1%2C4l4%2C4V5c0%2C0%2C6%2C0%2C6%2C3s-5%2C4-5%2C4v2c0%2C0%2C7-1%2C7-6C13%2C4%2C8%2C3%2C5%2C3z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-bars:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M1%2C4h12c0.553%2C0%2C1-0.447%2C1-1s-0.447-1-1-1H1C0.447%2C2%2C0%2C2.447%2C0%2C3S0.447%2C4%2C1%2C4z%20M13%2C6H1%20C0.447%2C6%2C0%2C6.447%2C0%2C7c0%2C0.553%2C0.447%2C1%2C1%2C1h12c0.553%2C0%2C1-0.447%2C1-1C14%2C6.447%2C13.553%2C6%2C13%2C6z%20M13%2C10H1c-0.553%2C0-1%2C0.447-1%2C1%20s0.447%2C1%2C1%2C1h12c0.553%2C0%2C1-0.447%2C1-1S13.553%2C10%2C13%2C10z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-bullets:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M5%2C4h8c0.553%2C0%2C1-0.447%2C1-1s-0.447-1-1-1H5C4.447%2C2%2C4%2C2.447%2C4%2C3S4.447%2C4%2C5%2C4z%20M13%2C6H5%20C4.447%2C6%2C4%2C6.447%2C4%2C7c0%2C0.553%2C0.447%2C1%2C1%2C1h8c0.553%2C0%2C1-0.447%2C1-1C14%2C6.447%2C13.553%2C6%2C13%2C6z%20M13%2C10H5c-0.553%2C0-1%2C0.447-1%2C1%20s0.447%2C1%2C1%2C1h8c0.553%2C0%2C1-0.447%2C1-1S13.553%2C10%2C13%2C10z%20M1%2C2C0.447%2C2%2C0%2C2.447%2C0%2C3s0.447%2C1%2C1%2C1s1-0.447%2C1-1S1.553%2C2%2C1%2C2z%20M1%2C6%20C0.447%2C6%2C0%2C6.447%2C0%2C7c0%2C0.553%2C0.447%2C1%2C1%2C1s1-0.447%2C1-1C2%2C6.447%2C1.553%2C6%2C1%2C6z%20M1%2C10c-0.553%2C0-1%2C0.447-1%2C1s0.447%2C1%2C1%2C1s1-0.447%2C1-1%20S1.553%2C10%2C1%2C10z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-calendar:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M0%2C8h2V6H0V8z%20M3%2C8h2V6H3V8z%20M6%2C8h2V6H6V8z%20M9%2C8h2V6H9V8z%20M12%2C8h2V6h-2V8z%20M0%2C11h2V9H0V11z%20M3%2C11h2V9H3V11z%20M6%2C11h2V9H6V11z%20%20M9%2C11h2V9H9V11z%20M12%2C11h2V9h-2V11z%20M0%2C14h2v-2H0V14z%20M3%2C14h2v-2H3V14z%20M6%2C14h2v-2H6V14z%20M9%2C14h2v-2H9V14z%20M12%2C1%20c0-0.553-0.447-1-1-1s-1%2C0.447-1%2C1H4c0-0.553-0.447-1-1-1S2%2C0.447%2C2%2C1H0v4h14V1H12z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-camera:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M12%2C2.5H9.908c-0.206-0.581-0.756-1-1.408-1h-3c-0.652%2C0-1.202%2C0.419-1.408%2C1H2c-1.104%2C0-2%2C0.896-2%2C2%20v6c0%2C1.104%2C0.896%2C2%2C2%2C2h10c1.104%2C0%2C2-0.896%2C2-2v-6C14%2C3.396%2C13.104%2C2.5%2C12%2C2.5z%20M7%2C10.5c-1.657%2C0-3-1.344-3-3c0-1.657%2C1.343-3%2C3-3%20s3%2C1.343%2C3%2C3C10%2C9.156%2C8.657%2C10.5%2C7%2C10.5z%20M7%2C5.5c-1.104%2C0-2%2C0.896-2%2C2c0%2C1.104%2C0.896%2C2%2C2%2C2c1.104%2C0%2C2-0.896%2C2-2%20C9%2C6.396%2C8.104%2C5.5%2C7%2C5.5z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-carat-d:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20style%3D%22fill%3A%23FFFFFF%3B%22%20points%3D%2211.949%2C3.404%207%2C8.354%202.05%2C3.404%20-0.071%2C5.525%207%2C12.596%2014.07%2C5.525%20%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-carat-l:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20style%3D%22fill%3A%23FFFFFF%3B%22%20points%3D%2210.596%2C11.949%205.646%2C7%2010.596%2C2.05%208.475%2C-0.071%201.404%2C7%208.475%2C14.07%20%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-carat-r:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20style%3D%22fill%3A%23FFFFFF%3B%22%20points%3D%223.404%2C2.051%208.354%2C7%203.404%2C11.95%205.525%2C14.07%2012.596%2C7%205.525%2C-0.071%20%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-carat-u:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20style%3D%22fill%3A%23FFFFFF%3B%22%20points%3D%222.051%2C10.596%207%2C5.646%2011.95%2C10.596%2014.07%2C8.475%207%2C1.404%20-0.071%2C8.475%20%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-check:after,
-/* Used ui-checkbox-on twice to increase specificity. If active state has background-image for gradient this rule overrides. */
-html .ui-btn.ui-checkbox-on.ui-checkbox-on:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20style%3D%22fill%3A%23FFFFFF%3B%22%20points%3D%2214%2C4%2011%2C1%205.003%2C6.997%203%2C5%200%2C8%204.966%2C13%204.983%2C12.982%205%2C13%20%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-clock:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M7%2C0C3.134%2C0%2C0%2C3.134%2C0%2C7s3.134%2C7%2C7%2C7s7-3.134%2C7-7S10.866%2C0%2C7%2C0z%20M7%2C12c-2.762%2C0-5-2.238-5-5s2.238-5%2C5-5s5%2C2.238%2C5%2C5%20S9.762%2C12%2C7%2C12z%20M9%2C6H8V4c0-0.553-0.447-1-1-1S6%2C3.447%2C6%2C4v3c0%2C0.553%2C0.447%2C1%2C1%2C1h2c0.553%2C0%2C1-0.447%2C1-1S9.553%2C6%2C9%2C6z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-cloud:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M14%2C9.5c0-0.793-0.465-1.473-1.134-1.795C12.949%2C7.484%2C13%2C7.249%2C13%2C7c0-1.104-0.896-2-2-2%20c-0.158%2C0-0.311%2C0.023-0.457%2C0.058C9.816%2C3.549%2C8.286%2C2.5%2C6.5%2C2.5c-2.33%2C0-4.224%2C1.777-4.454%2C4.046C0.883%2C6.76%2C0%2C7.773%2C0%2C9%20c0%2C1.381%2C1.119%2C2.5%2C2.5%2C2.5h10v-0.07C13.361%2C11.206%2C14%2C10.432%2C14%2C9.5z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-comment:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M12%2C0H2C0.896%2C0%2C0%2C0.896%2C0%2C2v7c0%2C1.104%2C0.896%2C2%2C2%2C2h1v3l3-3h6c1.104%2C0%2C2-0.896%2C2-2V2C14%2C0.896%2C13.104%2C0%2C12%2C0z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-delete:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20fill%3D%22%23FFF%22%20points%3D%2214%2C3%2011%2C0%207%2C4%203%2C0%200%2C3%204%2C7%200%2C11%203%2C14%207%2C10%2011%2C14%2014%2C11%2010%2C7%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-edit:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M1%2C10l-1%2C4l4-1l7-7L8%2C3L1%2C10z%20M11%2C0L9%2C2l3%2C3l2-2L11%2C0z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-eye:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M7%2C2C3%2C2%2C0%2C7%2C0%2C7s3%2C5%2C7%2C5s7-5%2C7-5S11%2C2%2C7%2C2z%20M7%2C10c-1.657%2C0-3-1.344-3-3c0-1.657%2C1.343-3%2C3-3%20s3%2C1.343%2C3%2C3C10%2C8.656%2C8.657%2C10%2C7%2C10z%20M7%2C6C6.448%2C6%2C6%2C6.447%2C6%2C7c0%2C0.553%2C0.448%2C1%2C1%2C1s1-0.447%2C1-1C8%2C6.447%2C7.552%2C6%2C7%2C6z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-forbidden:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M12.601%2C11.187C13.476%2C10.018%2C14%2C8.572%2C14%2C7c0-3.866-3.134-7-7-7C5.428%2C0%2C3.982%2C0.524%2C2.813%2C1.399L2.757%2C1.343L2.053%2C2.048%20L2.048%2C2.053L1.343%2C2.758l0.056%2C0.056C0.524%2C3.982%2C0%2C5.428%2C0%2C7c0%2C3.866%2C3.134%2C7%2C7%2C7c1.572%2C0%2C3.018-0.524%2C4.187-1.399l0.056%2C0.057%20l0.705-0.705l0.005-0.005l0.705-0.705L12.601%2C11.187z%20M7%2C2c2.761%2C0%2C5%2C2.238%2C5%2C5c0%2C1.019-0.308%2C1.964-0.832%2C2.754L4.246%2C2.832%20C5.036%2C2.308%2C5.981%2C2%2C7%2C2z%20M7%2C12c-2.761%2C0-5-2.238-5-5c0-1.019%2C0.308-1.964%2C0.832-2.754l6.922%2C6.922C8.964%2C11.692%2C8.019%2C12%2C7%2C12z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-forward:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M13%2C4L9%2C0v3C6%2C3%2C1%2C4%2C1%2C8c0%2C5%2C7%2C6%2C7%2C6v-2c0%2C0-5-1-5-4s6-3%2C6-3v3L13%2C4z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-gear:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M13.621%2C5.904l-1.036-0.259c-0.168-0.042-0.303-0.168-0.355-0.332c-0.092-0.284-0.205-0.559-0.339-0.82%20c-0.079-0.153-0.073-0.337%2C0.017-0.486l0.549-0.915c0.118-0.196%2C0.088-0.448-0.075-0.61l-0.862-0.863%20c-0.162-0.163-0.414-0.193-0.611-0.075l-0.916%2C0.55C9.844%2C2.182%2C9.659%2C2.188%2C9.506%2C2.109C9.244%2C1.975%2C8.97%2C1.861%2C8.686%2C1.77%20c-0.165-0.052-0.29-0.187-0.332-0.354L8.095%2C0.379C8.039%2C0.156%2C7.839%2C0%2C7.609%2C0H6.391c-0.229%2C0-0.43%2C0.156-0.485%2C0.379L5.646%2C1.415%20C5.604%2C1.582%2C5.479%2C1.718%2C5.313%2C1.77c-0.284%2C0.092-0.559%2C0.206-0.82%2C0.34C4.339%2C2.188%2C4.155%2C2.182%2C4.007%2C2.093L3.092%2C1.544%20c-0.196-0.118-0.448-0.087-0.61%2C0.075L1.619%2C2.481C1.457%2C2.644%2C1.426%2C2.896%2C1.544%2C3.093l0.549%2C0.914%20c0.089%2C0.148%2C0.095%2C0.332%2C0.017%2C0.486C1.975%2C4.755%2C1.861%2C5.029%2C1.77%2C5.314c-0.053%2C0.164-0.188%2C0.29-0.354%2C0.332L0.379%2C5.905%20C0.156%2C5.961%2C0%2C6.161%2C0%2C6.391v1.219c0%2C0.229%2C0.156%2C0.43%2C0.379%2C0.485l1.036%2C0.26C1.582%2C8.396%2C1.717%2C8.521%2C1.77%2C8.687%20c0.092%2C0.284%2C0.205%2C0.559%2C0.34%2C0.82C2.188%2C9.66%2C2.182%2C9.844%2C2.093%2C9.993l-0.549%2C0.915c-0.118%2C0.195-0.087%2C0.448%2C0.075%2C0.61%20l0.862%2C0.862c0.162%2C0.163%2C0.414%2C0.193%2C0.61%2C0.075l0.915-0.549c0.148-0.089%2C0.332-0.095%2C0.486-0.017%20c0.262%2C0.135%2C0.536%2C0.248%2C0.82%2C0.34c0.165%2C0.053%2C0.291%2C0.187%2C0.332%2C0.354l0.259%2C1.036C5.96%2C13.844%2C6.16%2C14%2C6.39%2C14h1.22%20c0.229%2C0%2C0.43-0.156%2C0.485-0.379l0.259-1.036c0.042-0.167%2C0.168-0.302%2C0.333-0.354c0.284-0.092%2C0.559-0.205%2C0.82-0.34%20c0.154-0.078%2C0.338-0.072%2C0.486%2C0.017l0.914%2C0.549c0.197%2C0.118%2C0.449%2C0.088%2C0.611-0.074l0.862-0.863%20c0.163-0.162%2C0.193-0.415%2C0.075-0.611l-0.549-0.915c-0.089-0.148-0.096-0.332-0.017-0.485c0.134-0.263%2C0.248-0.536%2C0.339-0.82%20c0.053-0.165%2C0.188-0.291%2C0.355-0.333l1.036-0.259C13.844%2C8.039%2C14%2C7.839%2C14%2C7.609V6.39C14%2C6.16%2C13.844%2C5.96%2C13.621%2C5.904z%20M7%2C10%20c-1.657%2C0-3-1.343-3-3s1.343-3%2C3-3s3%2C1.343%2C3%2C3S8.657%2C10%2C7%2C10z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-grid:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M3%2C0H1C0.447%2C0%2C0%2C0.447%2C0%2C1v2c0%2C0.553%2C0.447%2C1%2C1%2C1h2c0.553%2C0%2C1-0.447%2C1-1V1C4%2C0.447%2C3.553%2C0%2C3%2C0z%20M8%2C0H6%20C5.447%2C0%2C5%2C0.447%2C5%2C1v2c0%2C0.553%2C0.447%2C1%2C1%2C1h2c0.553%2C0%2C1-0.447%2C1-1V1C9%2C0.447%2C8.553%2C0%2C8%2C0z%20M13%2C0h-2c-0.553%2C0-1%2C0.447-1%2C1v2%20c0%2C0.553%2C0.447%2C1%2C1%2C1h2c0.553%2C0%2C1-0.447%2C1-1V1C14%2C0.447%2C13.553%2C0%2C13%2C0z%20M3%2C5H1C0.447%2C5%2C0%2C5.447%2C0%2C6v2c0%2C0.553%2C0.447%2C1%2C1%2C1h2%20c0.553%2C0%2C1-0.447%2C1-1V6C4%2C5.447%2C3.553%2C5%2C3%2C5z%20M8%2C5H6C5.447%2C5%2C5%2C5.447%2C5%2C6v2c0%2C0.553%2C0.447%2C1%2C1%2C1h2c0.553%2C0%2C1-0.447%2C1-1V6%20C9%2C5.447%2C8.553%2C5%2C8%2C5z%20M13%2C5h-2c-0.553%2C0-1%2C0.447-1%2C1v2c0%2C0.553%2C0.447%2C1%2C1%2C1h2c0.553%2C0%2C1-0.447%2C1-1V6C14%2C5.447%2C13.553%2C5%2C13%2C5z%20M3%2C10%20H1c-0.553%2C0-1%2C0.447-1%2C1v2c0%2C0.553%2C0.447%2C1%2C1%2C1h2c0.553%2C0%2C1-0.447%2C1-1v-2C4%2C10.447%2C3.553%2C10%2C3%2C10z%20M8%2C10H6c-0.553%2C0-1%2C0.447-1%2C1v2%20c0%2C0.553%2C0.447%2C1%2C1%2C1h2c0.553%2C0%2C1-0.447%2C1-1v-2C9%2C10.447%2C8.553%2C10%2C8%2C10z%20M13%2C10h-2c-0.553%2C0-1%2C0.447-1%2C1v2c0%2C0.553%2C0.447%2C1%2C1%2C1h2%20c0.553%2C0%2C1-0.447%2C1-1v-2C14%2C10.447%2C13.553%2C10%2C13%2C10z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-heart:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M7%2C1.872c-2-3-7-2-7%2C2c0%2C3%2C4%2C7%2C4%2C7s2.417%2C2.479%2C3%2C3c0.583-0.521%2C3-3%2C3-3s4-4%2C4-7%20C14-0.128%2C9-1.128%2C7%2C1.872z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-home:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20fill%3D%22%23FFF%22%20points%3D%227%2C0%200%2C7%202%2C7%202%2C14%205%2C14%205%2C9%209%2C9%209%2C14%2012%2C14%2012%2C7%2014%2C7%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-info:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M7%2C0C3.134%2C0%2C0%2C3.134%2C0%2C7s3.134%2C7%2C7%2C7s7-3.134%2C7-7S10.866%2C0%2C7%2C0z%20M7%2C2c0.552%2C0%2C1%2C0.447%2C1%2C1S7.552%2C4%2C7%2C4S6%2C3.553%2C6%2C3%20S6.448%2C2%2C7%2C2z%20M9%2C11H5v-1h1V6H5V5h3v5h1V11z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-location:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M7%2C0C4.791%2C0%2C3%2C1.791%2C3%2C4c0%2C2%2C4%2C10%2C4%2C10s4-8%2C4-10C11%2C1.791%2C9.209%2C0%2C7%2C0z%20M7%2C6C5.896%2C6%2C5%2C5.104%2C5%2C4%20s0.896-2%2C2-2c1.104%2C0%2C2%2C0.896%2C2%2C2S8.104%2C6%2C7%2C6z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-lock:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M12%2C6V5c0-2.762-2.238-5-5-5C4.239%2C0%2C2%2C2.238%2C2%2C5v1H1v8h12V6H12z%20M7.5%2C9.848V12h-1V9.848%20C6.207%2C9.673%2C6%2C9.366%2C6%2C9c0-0.553%2C0.448-1%2C1-1s1%2C0.447%2C1%2C1C8%2C9.366%2C7.793%2C9.673%2C7.5%2C9.848z%20M10%2C6H4V5c0-1.657%2C1.343-3%2C3-3%20s3%2C1.343%2C3%2C3V6z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-mail:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M0%2C3.75V12h14V3.75L7%2C9L0%2C3.75z%20M14%2C2H0l7%2C5L14%2C2z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-minus:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Crect%20y%3D%225%22%20style%3D%22fill%3A%23FFFFFF%3B%22%20width%3D%2214%22%20height%3D%224%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-navigation:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20style%3D%22fill%3A%23FFFFFF%3B%22%20points%3D%2213%2C1%200%2C6%207%2C7%208%2C14%20%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-phone:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%22-0.01%200.008%2014%2014%22%20style%3D%22enable-background%3Anew%20-0.01%200.008%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M6.939%2C9.189C6.165%2C8.557%2C5.271%2C7.705%2C4.497%2C6.744C3.953%2C6.071%2C3.473%2C5.363%2C3.969%2C4.866l-3.482-3.48%20C-0.021%2C2.02-1.146%2C5.04%2C3.675%2C9.984c5.08%2C5.211%2C8.356%2C4.097%2C8.92%2C3.511l-3.396-3.4C8.725%2C10.568%2C8.113%2C10.146%2C6.939%2C9.189z%20%20M13.82%2C11.519v-0.004c0%2C0-2.648-2.646-2.649-2.647c-0.21-0.211-0.546-0.205-0.754%2C0.002L9.455%2C9.831l3.403%2C3.407%20c0%2C0%2C0.962-0.96%2C0.961-0.961l0.002-0.001C14.043%2C12.056%2C14.021%2C11.721%2C13.82%2C11.519z%20M5.192%2C3.644V3.642%20c0.222-0.222%2C0.2-0.557%2C0-0.758V2.881c0%2C0-2.726-2.725-2.727-2.726C2.255-0.055%2C1.92-0.05%2C1.712%2C0.156L0.751%2C1.121l3.479%2C3.482%20C4.231%2C4.604%2C5.192%2C3.645%2C5.192%2C3.644z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-plus:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20fill%3D%22%23FFF%22%20points%3D%2214%2C5%209%2C5%209%2C0%205%2C0%205%2C5%200%2C5%200%2C9%205%2C9%205%2C14%209%2C14%209%2C9%2014%2C9%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-power:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M11.243%2C2.408c-0.392-0.401-1.024-0.401-1.415%2C0c-0.391%2C0.401-0.391%2C1.054%2C0%2C1.455%20C10.584%2C4.642%2C11%2C5.675%2C11%2C6.773s-0.416%2C2.133-1.172%2C2.91c-1.512%2C1.558-4.145%2C1.558-5.656%2C0C3.416%2C8.904%2C3%2C7.872%2C3%2C6.773%20C3%2C5.673%2C3.416%2C4.64%2C4.172%2C3.863c0.39-0.401%2C0.39-1.054%2C0-1.455c-0.391-0.401-1.024-0.401-1.415%2C0C1.624%2C3.574%2C1%2C5.125%2C1%2C6.773%20c0%2C1.647%2C0.624%2C3.199%2C1.757%2C4.365c1.134%2C1.166%2C2.64%2C1.809%2C4.243%2C1.809c1.604%2C0%2C3.109-0.645%2C4.243-1.811%20C12.376%2C9.975%2C13%2C8.423%2C13%2C6.773C13%2C5.125%2C12.376%2C3.574%2C11.243%2C2.408z%20M7%2C8.053c0.553%2C0%2C1-0.445%2C1-1v-6c0-0.553-0.447-1-1-1%20c-0.553%2C0-1%2C0.447-1%2C1v6C6%2C7.604%2C6.447%2C8.053%2C7%2C8.053z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-recycle:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M3%2C7h1L2%2C4L0%2C7h1c0%2C3.313%2C2.687%2C6%2C6%2C6c0.702%2C0%2C1.374-0.127%2C2-0.35v-2.205C8.41%2C10.789%2C7.732%2C11%2C7%2C11%20C4.791%2C11%2C3%2C9.209%2C3%2C7z%20M13%2C7c0-3.313-2.688-6-6-6C6.298%2C1%2C5.626%2C1.127%2C5%2C1.349v2.206C5.59%2C3.211%2C6.268%2C3%2C7%2C3c2.209%2C0%2C4%2C1.791%2C4%2C4%20h-1l2%2C3l2-3H13z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-refresh:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214.001px%22%20height%3D%2214.002px%22%20viewBox%3D%220%200%2014.001%2014.002%22%20style%3D%22enable-background%3Anew%200%200%2014.001%2014.002%3B%22%20%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M14.001%2C6.001v-6l-2.06%2C2.06c-0.423-0.424-0.897-0.809-1.44-1.122C7.153-0.994%2C2.872%2C0.153%2C0.939%2C3.501%20c-1.933%2C3.348-0.786%2C7.629%2C2.562%2C9.562c3.348%2C1.933%2C7.629%2C0.785%2C9.562-2.562l-1.732-1c-1.381%2C2.392-4.438%2C3.211-6.83%2C1.83%20s-3.211-4.438-1.83-6.83s4.438-3.211%2C6.83-1.83c0.389%2C0.225%2C0.718%2C0.506%2C1.02%2C0.81l-2.52%2C2.52H14.001z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-search:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M10.171%2C8.766c0.617-0.888%2C0.979-1.964%2C0.979-3.126c0-3.037-2.463-5.5-5.5-5.5s-5.5%2C2.463-5.5%2C5.5%20s2.463%2C5.5%2C5.5%2C5.5c1.152%2C0%2C2.223-0.355%2C3.104-0.962l3.684%2C3.683l1.414-1.414L10.171%2C8.766z%20M5.649%2C9.14c-1.933%2C0-3.5-1.567-3.5-3.5%20c0-1.933%2C1.567-3.5%2C3.5-3.5c1.933%2C0%2C3.5%2C1.567%2C3.5%2C3.5C9.149%2C7.572%2C7.582%2C9.14%2C5.649%2C9.14z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-shop:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M10%2C4V3c0-1.657-1.343-3-3-3S4%2C1.343%2C4%2C3v1H1v10h12V4H10z%20M4.5%2C6C4.224%2C6%2C4%2C5.776%2C4%2C5.5%20S4.224%2C5%2C4.5%2C5S5%2C5.224%2C5%2C5.5S4.776%2C6%2C4.5%2C6z%20M5%2C3c0-1.104%2C0.896-2%2C2-2c1.104%2C0%2C2%2C0.896%2C2%2C2v1H5V3z%20M9.5%2C6C9.225%2C6%2C9%2C5.776%2C9%2C5.5%20S9.225%2C5%2C9.5%2C5S10%2C5.224%2C10%2C5.5S9.775%2C6%2C9.5%2C6z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-star:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20style%3D%22fill%3A%23FFFFFF%3B%22%20points%3D%2214%2C5%209%2C5%207%2C0%205%2C5%200%2C5%204%2C8%202.625%2C13%207%2C10%2011.375%2C13%2010%2C8%20%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-icon-tag:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M5%2C0H0v5l9%2C9l5-5L5%2C0z%20M3%2C4C2.447%2C4%2C2%2C3.553%2C2%2C3s0.447-1%2C1-1s1%2C0.447%2C1%2C1S3.553%2C4%2C3%2C4z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-user:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M8.851%2C10.101c-0.18-0.399-0.2-0.763-0.153-1.104C9.383%2C8.49%2C9.738%2C7.621%2C9.891%2C6.465C10.493%2C6.355%2C10.5%2C5.967%2C10.5%2C5.5%20c0-0.437-0.008-0.804-0.502-0.94C9.999%2C4.539%2C10%2C4.521%2C10%2C4.5c0-2.103-1-4-2-4C8%2C0.5%2C7.5%2C0%2C6.5%2C0C5%2C0%2C4%2C1.877%2C4%2C4.5%20c0%2C0.021%2C0.001%2C0.039%2C0.002%2C0.06C3.508%2C4.696%2C3.5%2C5.063%2C3.5%2C5.5c0%2C0.467%2C0.007%2C0.855%2C0.609%2C0.965%20C4.262%2C7.621%2C4.617%2C8.49%2C5.303%2C8.997c0.047%2C0.341%2C0.026%2C0.704-0.153%2C1.104C1.503%2C10.503%2C0%2C12%2C0%2C12v2h14v-2%20C14%2C12%2C12.497%2C10.503%2C8.851%2C10.101z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-icon-video:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%20-2%2014%2014%22%20style%3D%22enable-background%3Anew%200%20-2%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M8%2C0H2C0.896%2C0%2C0%2C0.896%2C0%2C2v6c0%2C1.104%2C0.896%2C2%2C2%2C2h6c1.104%2C0%2C2-0.896%2C2-2V5V2C10%2C0.896%2C9.104%2C0%2C8%2C0z%20%20M10%2C5l4%2C4V1L10%2C5z%22%2F%3E%3C%2Fsvg%3E");
-}
-/* Alt icons */
-.ui-alt-icon.ui-icon-action:after,
-.ui-alt-icon .ui-icon-action:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M9%2C5v3l5-4L9%2C0v3c0%2C0-5%2C0-5%2C7C6%2C5%2C9%2C5%2C9%2C5z%20M11%2C12H2V5h1l2-2H0v11h13V7l-2%2C2V12z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-alert:after,
-.ui-alt-icon .ui-icon-alert:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M7%2C0L0%2C12h14L7%2C0z%20M7%2C11c-0.553%2C0-1-0.447-1-1s0.447-1%2C1-1c0.553%2C0%2C1%2C0.447%2C1%2C1S7.553%2C11%2C7%2C11z%20M7%2C8C6.447%2C8%2C6%2C7.553%2C6%2C7V5%20c0-0.553%2C0.447-1%2C1-1c0.553%2C0%2C1%2C0.447%2C1%2C1v2C8%2C7.553%2C7.553%2C8%2C7%2C8z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-arrow-d:after,
-.ui-alt-icon .ui-icon-arrow-d:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%229%2C7%209%2C0%205%2C0%205%2C7%200%2C7%207%2C14%2014%2C7%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-arrow-d-l:after,
-.ui-alt-icon .ui-icon-arrow-d-l:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%2214%2C3%2011%2C0%203.5%2C7.5%200%2C4%200%2C14%2010%2C14%206.5%2C10.5%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-arrow-d-r:after,
-.ui-alt-icon .ui-icon-arrow-d-r:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%2210.5%2C7.5%203%2C0%200%2C3%207.5%2C10.5%204%2C14%2014%2C14%2014%2C4%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-arrow-l:after,
-.ui-alt-icon .ui-icon-arrow-l:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%227%2C5%207%2C0%200%2C7%207%2C14%207%2C9%2014%2C9%2014%2C5%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-arrow-r:after,
-.ui-alt-icon .ui-icon-arrow-r:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%2214%2C7%207%2C0%207%2C5%200%2C5%200%2C9%207%2C9%207%2C14%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-arrow-u:after,
-.ui-alt-icon .ui-icon-arrow-u:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%227%2C0%200%2C7%205%2C7%205%2C14%209%2C14%209%2C7%2014%2C7%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-arrow-u-l:after,
-.ui-alt-icon .ui-icon-arrow-u-l:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%2214%2C11%206.5%2C3.5%2010%2C0%200%2C0%200%2C10%203.5%2C6.5%2011%2C14%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-arrow-u-r:after,
-.ui-alt-icon .ui-icon-arrow-u-r:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%2214%2C0%204%2C0%207.5%2C3.5%200%2C11%203%2C14%2010.5%2C6.5%2014%2C10%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-audio:after,
-.ui-alt-icon .ui-icon-audio:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214.018px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014.018%2014%22%20style%3D%22enable-background%3Anew%200%200%2014.018%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M1%2C4C0.447%2C4%2C0%2C4.447%2C0%2C5v4c0%2C0.553%2C0.447%2C1%2C1%2C1h1l4%2C4V0L2%2C4H1z%20M10.346%2C7c0-1.699-1.042-3.154-2.546-3.867L6.982%2C4.68%20C7.885%2C5.107%2C8.51%2C5.98%2C8.51%2C7S7.885%2C8.893%2C6.982%2C9.32L7.8%2C10.867C9.304%2C10.154%2C10.346%2C8.699%2C10.346%2C7z%20M9.447%2C0.017L8.618%2C1.586%20C10.723%2C2.584%2C12.182%2C4.621%2C12.182%2C7s-1.459%2C4.416-3.563%2C5.414l0.829%2C1.569c2.707-1.283%2C4.57-3.925%2C4.57-6.983%20S12.154%2C1.3%2C9.447%2C0.017z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-back:after,
-.ui-alt-icon .ui-icon-back:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M5%2C3V0L1%2C4l4%2C4V5c0%2C0%2C6%2C0%2C6%2C3s-5%2C4-5%2C4v2c0%2C0%2C7-1%2C7-6C13%2C4%2C8%2C3%2C5%2C3z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-bars:after,
-.ui-alt-icon .ui-icon-bars:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M1%2C4h12c0.553%2C0%2C1-0.447%2C1-1s-0.447-1-1-1H1C0.447%2C2%2C0%2C2.447%2C0%2C3S0.447%2C4%2C1%2C4z%20M13%2C6H1C0.447%2C6%2C0%2C6.447%2C0%2C7%20c0%2C0.553%2C0.447%2C1%2C1%2C1h12c0.553%2C0%2C1-0.447%2C1-1C14%2C6.447%2C13.553%2C6%2C13%2C6z%20M13%2C10H1c-0.553%2C0-1%2C0.447-1%2C1s0.447%2C1%2C1%2C1h12%20c0.553%2C0%2C1-0.447%2C1-1S13.553%2C10%2C13%2C10z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-bullets:after,
-.ui-alt-icon .ui-icon-bullets:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M5%2C4h8c0.553%2C0%2C1-0.447%2C1-1s-0.447-1-1-1H5C4.447%2C2%2C4%2C2.447%2C4%2C3S4.447%2C4%2C5%2C4z%20M13%2C6H5C4.447%2C6%2C4%2C6.447%2C4%2C7%20c0%2C0.553%2C0.447%2C1%2C1%2C1h8c0.553%2C0%2C1-0.447%2C1-1C14%2C6.447%2C13.553%2C6%2C13%2C6z%20M13%2C10H5c-0.553%2C0-1%2C0.447-1%2C1s0.447%2C1%2C1%2C1h8%20c0.553%2C0%2C1-0.447%2C1-1S13.553%2C10%2C13%2C10z%20M1%2C2C0.447%2C2%2C0%2C2.447%2C0%2C3s0.447%2C1%2C1%2C1s1-0.447%2C1-1S1.553%2C2%2C1%2C2z%20M1%2C6C0.447%2C6%2C0%2C6.447%2C0%2C7%20c0%2C0.553%2C0.447%2C1%2C1%2C1s1-0.447%2C1-1C2%2C6.447%2C1.553%2C6%2C1%2C6z%20M1%2C10c-0.553%2C0-1%2C0.447-1%2C1s0.447%2C1%2C1%2C1s1-0.447%2C1-1S1.553%2C10%2C1%2C10z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-calendar:after,
-.ui-alt-icon .ui-icon-calendar:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M0%2C8h2V6H0V8z%20M3%2C8h2V6H3V8z%20M6%2C8h2V6H6V8z%20M9%2C8h2V6H9V8z%20M12%2C8h2V6h-2V8z%20M0%2C11h2V9H0V11z%20M3%2C11h2V9H3V11z%20M6%2C11h2V9H6V11z%20%20M9%2C11h2V9H9V11z%20M12%2C11h2V9h-2V11z%20M0%2C14h2v-2H0V14z%20M3%2C14h2v-2H3V14z%20M6%2C14h2v-2H6V14z%20M9%2C14h2v-2H9V14z%20M12%2C1%20c0-0.553-0.447-1-1-1s-1%2C0.447-1%2C1H4c0-0.553-0.447-1-1-1S2%2C0.447%2C2%2C1H0v4h14V1H12z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-camera:after,
-.ui-alt-icon .ui-icon-camera:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M12%2C2.5H9.908c-0.206-0.581-0.756-1-1.408-1h-3c-0.652%2C0-1.202%2C0.419-1.408%2C1H2c-1.104%2C0-2%2C0.896-2%2C2v6c0%2C1.104%2C0.896%2C2%2C2%2C2%20h10c1.104%2C0%2C2-0.896%2C2-2v-6C14%2C3.396%2C13.104%2C2.5%2C12%2C2.5z%20M7%2C10.5c-1.657%2C0-3-1.344-3-3c0-1.657%2C1.343-3%2C3-3s3%2C1.343%2C3%2C3%20C10%2C9.156%2C8.657%2C10.5%2C7%2C10.5z%20M7%2C5.5c-1.104%2C0-2%2C0.896-2%2C2c0%2C1.104%2C0.896%2C2%2C2%2C2c1.104%2C0%2C2-0.896%2C2-2C9%2C6.396%2C8.104%2C5.5%2C7%2C5.5z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-carat-d:after,
-.ui-alt-icon .ui-icon-carat-d:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%2211.949%2C3.404%207%2C8.354%202.05%2C3.404%20-0.071%2C5.525%207%2C12.596%2014.07%2C5.525%20%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-carat-l:after,
-.ui-alt-icon .ui-icon-carat-l:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%2210.596%2C11.949%205.646%2C7%2010.596%2C2.05%208.475%2C-0.071%201.404%2C7%208.475%2C14.07%20%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-carat-r:after,
-.ui-alt-icon .ui-icon-carat-r:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%223.404%2C2.051%208.354%2C7%203.404%2C11.95%205.525%2C14.07%2012.596%2C7%205.525%2C-0.071%20%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-carat-u:after,
-.ui-alt-icon .ui-icon-carat-u:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%222.051%2C10.596%207%2C5.646%2011.95%2C10.596%2014.07%2C8.475%207%2C1.404%20-0.071%2C8.475%20%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-check:after,
-.ui-alt-icon .ui-icon-check:after,
-html .ui-alt-icon.ui-btn.ui-checkbox-on:after,
-html .ui-alt-icon .ui-btn.ui-checkbox-on:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%2214%2C4%2011%2C1%205.003%2C6.997%203%2C5%200%2C8%204.966%2C13%204.983%2C12.982%205%2C13%20%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-clock:after,
-.ui-alt-icon .ui-icon-clock:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M7%2C0C3.134%2C0%2C0%2C3.134%2C0%2C7s3.134%2C7%2C7%2C7s7-3.134%2C7-7S10.866%2C0%2C7%2C0z%20M7%2C12c-2.762%2C0-5-2.238-5-5s2.238-5%2C5-5s5%2C2.238%2C5%2C5%20S9.762%2C12%2C7%2C12z%20M9%2C6H8V4c0-0.553-0.447-1-1-1S6%2C3.447%2C6%2C4v3c0%2C0.553%2C0.447%2C1%2C1%2C1h2c0.553%2C0%2C1-0.447%2C1-1S9.553%2C6%2C9%2C6z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-cloud:after,
-.ui-alt-icon .ui-icon-cloud:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M14%2C9.5c0-0.793-0.465-1.473-1.134-1.795C12.949%2C7.484%2C13%2C7.249%2C13%2C7c0-1.104-0.896-2-2-2c-0.158%2C0-0.311%2C0.023-0.457%2C0.058%20C9.816%2C3.549%2C8.286%2C2.5%2C6.5%2C2.5c-2.33%2C0-4.224%2C1.777-4.454%2C4.046C0.883%2C6.76%2C0%2C7.773%2C0%2C9c0%2C1.381%2C1.119%2C2.5%2C2.5%2C2.5h10v-0.07%20C13.361%2C11.206%2C14%2C10.432%2C14%2C9.5z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-comment:after,
-.ui-alt-icon .ui-icon-comment:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M12%2C0H2C0.896%2C0%2C0%2C0.896%2C0%2C2v7c0%2C1.104%2C0.896%2C2%2C2%2C2h1v3l3-3h6c1.104%2C0%2C2-0.896%2C2-2V2C14%2C0.896%2C13.104%2C0%2C12%2C0z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-delete:after,
-.ui-alt-icon .ui-icon-delete:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%2214%2C3%2011%2C0%207%2C4%203%2C0%200%2C3%204%2C7%200%2C11%203%2C14%207%2C10%2011%2C14%2014%2C11%2010%2C7%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-edit:after,
-.ui-alt-icon .ui-icon-edit:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M1%2C10l-1%2C4l4-1l7-7L8%2C3L1%2C10z%20M11%2C0L9%2C2l3%2C3l2-2L11%2C0z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-eye:after,
-.ui-alt-icon .ui-icon-eye:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M7%2C2C3%2C2%2C0%2C7%2C0%2C7s3%2C5%2C7%2C5s7-5%2C7-5S11%2C2%2C7%2C2z%20M7%2C10c-1.657%2C0-3-1.344-3-3c0-1.657%2C1.343-3%2C3-3s3%2C1.343%2C3%2C3%20C10%2C8.656%2C8.657%2C10%2C7%2C10z%20M7%2C6C6.448%2C6%2C6%2C6.447%2C6%2C7c0%2C0.553%2C0.448%2C1%2C1%2C1s1-0.447%2C1-1C8%2C6.447%2C7.552%2C6%2C7%2C6z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-forbidden:after,
-.ui-alt-icon .ui-icon-forbidden:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M12.601%2C11.187C13.476%2C10.018%2C14%2C8.572%2C14%2C7c0-3.866-3.134-7-7-7C5.428%2C0%2C3.982%2C0.524%2C2.813%2C1.399L2.757%2C1.343L2.053%2C2.048%20L2.048%2C2.053L1.343%2C2.758l0.056%2C0.056C0.524%2C3.982%2C0%2C5.428%2C0%2C7c0%2C3.866%2C3.134%2C7%2C7%2C7c1.572%2C0%2C3.018-0.524%2C4.187-1.399l0.056%2C0.057%20l0.705-0.705l0.005-0.005l0.705-0.705L12.601%2C11.187z%20M7%2C2c2.761%2C0%2C5%2C2.238%2C5%2C5c0%2C1.019-0.308%2C1.964-0.832%2C2.754L4.246%2C2.832%20C5.036%2C2.308%2C5.981%2C2%2C7%2C2z%20M7%2C12c-2.761%2C0-5-2.238-5-5c0-1.019%2C0.308-1.964%2C0.832-2.754l6.922%2C6.922C8.964%2C11.692%2C8.019%2C12%2C7%2C12z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-forward:after,
-.ui-alt-icon .ui-icon-forward:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M13%2C4L9%2C0v3C6%2C3%2C1%2C4%2C1%2C8c0%2C5%2C7%2C6%2C7%2C6v-2c0%2C0-5-1-5-4s6-3%2C6-3v3L13%2C4z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-gear:after,
-.ui-alt-icon .ui-icon-gear:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M13.621%2C5.904l-1.036-0.259c-0.168-0.042-0.303-0.168-0.355-0.332c-0.092-0.284-0.205-0.559-0.339-0.82%20c-0.079-0.153-0.073-0.337%2C0.017-0.486l0.549-0.915c0.118-0.196%2C0.088-0.448-0.075-0.61l-0.862-0.863%20c-0.162-0.163-0.414-0.193-0.611-0.075l-0.916%2C0.55C9.844%2C2.182%2C9.659%2C2.188%2C9.506%2C2.109C9.244%2C1.975%2C8.97%2C1.861%2C8.686%2C1.77%20c-0.165-0.052-0.29-0.187-0.332-0.354L8.095%2C0.379C8.039%2C0.156%2C7.839%2C0%2C7.609%2C0H6.391c-0.229%2C0-0.43%2C0.156-0.485%2C0.379L5.646%2C1.415%20C5.604%2C1.582%2C5.479%2C1.718%2C5.313%2C1.77c-0.284%2C0.092-0.559%2C0.206-0.82%2C0.34C4.339%2C2.188%2C4.155%2C2.182%2C4.007%2C2.093L3.092%2C1.544%20c-0.196-0.118-0.448-0.087-0.61%2C0.075L1.619%2C2.481C1.457%2C2.644%2C1.426%2C2.896%2C1.544%2C3.093l0.549%2C0.914%20c0.089%2C0.148%2C0.095%2C0.332%2C0.017%2C0.486C1.975%2C4.755%2C1.861%2C5.029%2C1.77%2C5.314c-0.053%2C0.164-0.188%2C0.29-0.354%2C0.332L0.379%2C5.905%20C0.156%2C5.961%2C0%2C6.161%2C0%2C6.391v1.219c0%2C0.229%2C0.156%2C0.43%2C0.379%2C0.485l1.036%2C0.26C1.582%2C8.396%2C1.717%2C8.521%2C1.77%2C8.687%20c0.092%2C0.284%2C0.205%2C0.559%2C0.34%2C0.82C2.188%2C9.66%2C2.182%2C9.844%2C2.093%2C9.993l-0.549%2C0.915c-0.118%2C0.195-0.087%2C0.448%2C0.075%2C0.61%20l0.862%2C0.862c0.162%2C0.163%2C0.414%2C0.193%2C0.61%2C0.075l0.915-0.549c0.148-0.089%2C0.332-0.095%2C0.486-0.017%20c0.262%2C0.135%2C0.536%2C0.248%2C0.82%2C0.34c0.165%2C0.053%2C0.291%2C0.187%2C0.332%2C0.354l0.259%2C1.036C5.96%2C13.844%2C6.16%2C14%2C6.39%2C14h1.22%20c0.229%2C0%2C0.43-0.156%2C0.485-0.379l0.259-1.036c0.042-0.167%2C0.168-0.302%2C0.333-0.354c0.284-0.092%2C0.559-0.205%2C0.82-0.34%20c0.154-0.078%2C0.338-0.072%2C0.486%2C0.017l0.914%2C0.549c0.197%2C0.118%2C0.449%2C0.088%2C0.611-0.074l0.862-0.863%20c0.163-0.162%2C0.193-0.415%2C0.075-0.611l-0.549-0.915c-0.089-0.148-0.096-0.332-0.017-0.485c0.134-0.263%2C0.248-0.536%2C0.339-0.82%20c0.053-0.165%2C0.188-0.291%2C0.355-0.333l1.036-0.259C13.844%2C8.039%2C14%2C7.839%2C14%2C7.609V6.39C14%2C6.16%2C13.844%2C5.96%2C13.621%2C5.904z%20M7%2C10%20c-1.657%2C0-3-1.343-3-3s1.343-3%2C3-3s3%2C1.343%2C3%2C3S8.657%2C10%2C7%2C10z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-grid:after,
-.ui-alt-icon .ui-icon-grid:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M3%2C0H1C0.447%2C0%2C0%2C0.447%2C0%2C1v2c0%2C0.553%2C0.447%2C1%2C1%2C1h2c0.553%2C0%2C1-0.447%2C1-1V1C4%2C0.447%2C3.553%2C0%2C3%2C0z%20M8%2C0H6%20C5.447%2C0%2C5%2C0.447%2C5%2C1v2c0%2C0.553%2C0.447%2C1%2C1%2C1h2c0.553%2C0%2C1-0.447%2C1-1V1C9%2C0.447%2C8.553%2C0%2C8%2C0z%20M13%2C0h-2c-0.553%2C0-1%2C0.447-1%2C1v2%20c0%2C0.553%2C0.447%2C1%2C1%2C1h2c0.553%2C0%2C1-0.447%2C1-1V1C14%2C0.447%2C13.553%2C0%2C13%2C0z%20M3%2C5H1C0.447%2C5%2C0%2C5.447%2C0%2C6v2c0%2C0.553%2C0.447%2C1%2C1%2C1h2%20c0.553%2C0%2C1-0.447%2C1-1V6C4%2C5.447%2C3.553%2C5%2C3%2C5z%20M8%2C5H6C5.447%2C5%2C5%2C5.447%2C5%2C6v2c0%2C0.553%2C0.447%2C1%2C1%2C1h2c0.553%2C0%2C1-0.447%2C1-1V6%20C9%2C5.447%2C8.553%2C5%2C8%2C5z%20M13%2C5h-2c-0.553%2C0-1%2C0.447-1%2C1v2c0%2C0.553%2C0.447%2C1%2C1%2C1h2c0.553%2C0%2C1-0.447%2C1-1V6C14%2C5.447%2C13.553%2C5%2C13%2C5z%20M3%2C10%20H1c-0.553%2C0-1%2C0.447-1%2C1v2c0%2C0.553%2C0.447%2C1%2C1%2C1h2c0.553%2C0%2C1-0.447%2C1-1v-2C4%2C10.447%2C3.553%2C10%2C3%2C10z%20M8%2C10H6c-0.553%2C0-1%2C0.447-1%2C1v2%20c0%2C0.553%2C0.447%2C1%2C1%2C1h2c0.553%2C0%2C1-0.447%2C1-1v-2C9%2C10.447%2C8.553%2C10%2C8%2C10z%20M13%2C10h-2c-0.553%2C0-1%2C0.447-1%2C1v2c0%2C0.553%2C0.447%2C1%2C1%2C1h2%20c0.553%2C0%2C1-0.447%2C1-1v-2C14%2C10.447%2C13.553%2C10%2C13%2C10z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-heart:after,
-.ui-alt-icon .ui-icon-heart:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M7%2C1.958c-2-3-7-2.128-7%2C1.872c0%2C3%2C4%2C7%2C4%2C7s2.417%2C2.48%2C3%2C3c0.583-0.52%2C3-3%2C3-3s4-4%2C4-7C14-0.169%2C9-1.042%2C7%2C1.958z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-home:after,
-.ui-alt-icon .ui-icon-home:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%227%2C0%200%2C7%202%2C7%202%2C14%205%2C14%205%2C9%209%2C9%209%2C14%2012%2C14%2012%2C7%2014%2C7%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-info:after,
-.ui-alt-icon .ui-icon-info:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M7%2C0C3.134%2C0%2C0%2C3.134%2C0%2C7s3.134%2C7%2C7%2C7s7-3.134%2C7-7S10.866%2C0%2C7%2C0z%20M7%2C2c0.552%2C0%2C1%2C0.447%2C1%2C1S7.552%2C4%2C7%2C4S6%2C3.553%2C6%2C3%20S6.448%2C2%2C7%2C2z%20M9%2C11H5v-1h1V6H5V5h3v5h1V11z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-location:after,
-.ui-alt-icon .ui-icon-location:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M7%2C0C4.791%2C0%2C3%2C1.791%2C3%2C4c0%2C2%2C4%2C10%2C4%2C10s4-8%2C4-10C11%2C1.791%2C9.209%2C0%2C7%2C0z%20M7%2C6C5.896%2C6%2C5%2C5.104%2C5%2C4s0.896-2%2C2-2%20c1.104%2C0%2C2%2C0.896%2C2%2C2S8.104%2C6%2C7%2C6z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-lock:after,
-.ui-alt-icon .ui-icon-lock:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M12%2C6V5c0-2.762-2.238-5-5-5C4.239%2C0%2C2%2C2.238%2C2%2C5v1H1v8h12V6H12z%20M7.5%2C9.848V12h-1V9.848C6.207%2C9.673%2C6%2C9.366%2C6%2C9%20c0-0.553%2C0.448-1%2C1-1s1%2C0.447%2C1%2C1C8%2C9.366%2C7.793%2C9.673%2C7.5%2C9.848z%20M10%2C6H4V5c0-1.657%2C1.343-3%2C3-3s3%2C1.343%2C3%2C3V6z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-mail:after,
-.ui-alt-icon .ui-icon-mail:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M0%2C3.75V12h14V3.75L7%2C9L0%2C3.75z%20M14%2C2H0l7%2C5L14%2C2z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-minus:after,
-.ui-alt-icon .ui-icon-minus:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Crect%20y%3D%225%22%20width%3D%2214%22%20height%3D%224%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-navigation:after,
-.ui-alt-icon .ui-icon-navigation:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%2213%2C1%200%2C6%207%2C7%208%2C14%20%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-phone:after,
-.ui-alt-icon .ui-icon-phone:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M6.949%2C9.182C6.175%2C8.549%2C5.281%2C7.697%2C4.507%2C6.736C3.963%2C6.063%2C3.483%2C5.355%2C3.979%2C4.858l-3.482-3.48%20c-0.508%2C0.634-1.633%2C3.654%2C3.188%2C8.598c5.08%2C5.211%2C8.356%2C4.097%2C8.92%2C3.511l-3.396-3.399C8.734%2C10.561%2C8.123%2C10.139%2C6.949%2C9.182z%20%20M13.83%2C11.512v-0.004c0%2C0-2.648-2.646-2.649-2.647c-0.21-0.212-0.546-0.205-0.754%2C0.002L9.465%2C9.823l3.402%2C3.407%20c0%2C0%2C0.963-0.961%2C0.961-0.961l0.002-0.002C14.053%2C12.049%2C14.031%2C11.713%2C13.83%2C11.512z%20M5.202%2C3.636V3.634%20c0.222-0.222%2C0.2-0.557%2C0-0.758V2.873c0%2C0-2.726-2.725-2.727-2.726c-0.21-0.21-0.545-0.205-0.753%2C0.001L0.761%2C1.113L4.24%2C4.595%20C4.241%2C4.596%2C5.202%2C3.637%2C5.202%2C3.636z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-plus:after,
-.ui-alt-icon .ui-icon-plus:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%2214%2C5%209%2C5%209%2C0%205%2C0%205%2C5%200%2C5%200%2C9%205%2C9%205%2C14%209%2C14%209%2C9%2014%2C9%20%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-power:after,
-.ui-alt-icon .ui-icon-power:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M11.243%2C2.408c-0.392-0.401-1.024-0.401-1.415%2C0c-0.391%2C0.401-0.391%2C1.054%2C0%2C1.455C10.584%2C4.642%2C11%2C5.675%2C11%2C6.773%20s-0.416%2C2.133-1.172%2C2.91c-1.512%2C1.558-4.145%2C1.558-5.656%2C0C3.416%2C8.904%2C3%2C7.872%2C3%2C6.773C3%2C5.673%2C3.416%2C4.64%2C4.172%2C3.863%20c0.39-0.401%2C0.39-1.054%2C0-1.455c-0.391-0.401-1.024-0.401-1.415%2C0C1.624%2C3.574%2C1%2C5.125%2C1%2C6.773c0%2C1.647%2C0.624%2C3.199%2C1.757%2C4.365%20c1.134%2C1.166%2C2.64%2C1.809%2C4.243%2C1.809c1.604%2C0%2C3.109-0.645%2C4.243-1.811C12.376%2C9.975%2C13%2C8.423%2C13%2C6.773%20C13%2C5.125%2C12.376%2C3.574%2C11.243%2C2.408z%20M7%2C8.053c0.553%2C0%2C1-0.445%2C1-1v-6c0-0.553-0.447-1-1-1c-0.553%2C0-1%2C0.447-1%2C1v6%20C6%2C7.604%2C6.447%2C8.053%2C7%2C8.053z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-recycle:after,
-.ui-alt-icon .ui-icon-recycle:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M3%2C7h1L2%2C4L0%2C7h1c0%2C3.313%2C2.687%2C6%2C6%2C6c0.702%2C0%2C1.374-0.127%2C2-0.35v-2.205C8.41%2C10.789%2C7.732%2C11%2C7%2C11C4.791%2C11%2C3%2C9.209%2C3%2C7z%20%20M13%2C7c0-3.313-2.688-6-6-6C6.298%2C1%2C5.626%2C1.127%2C5%2C1.349v2.206C5.59%2C3.211%2C6.268%2C3%2C7%2C3c2.209%2C0%2C4%2C1.791%2C4%2C4h-1l2%2C3l2-3H13z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-refresh:after,
-.ui-alt-icon .ui-icon-refresh:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214.001px%22%20height%3D%2214.002px%22%20viewBox%3D%220%200%2014.001%2014.002%22%20style%3D%22enable-background%3Anew%200%200%2014.001%2014.002%3B%22%20%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M14.001%2C6.001v-6l-2.06%2C2.06c-0.423-0.424-0.897-0.809-1.44-1.122C7.153-0.994%2C2.872%2C0.153%2C0.939%2C3.501%20c-1.933%2C3.348-0.786%2C7.629%2C2.562%2C9.562c3.348%2C1.933%2C7.629%2C0.785%2C9.562-2.562l-1.732-1c-1.381%2C2.392-4.438%2C3.211-6.83%2C1.83%20s-3.211-4.438-1.83-6.83s4.438-3.211%2C6.83-1.83c0.389%2C0.225%2C0.718%2C0.506%2C1.02%2C0.81l-2.52%2C2.52H14.001z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-search:after,
-.ui-alt-icon .ui-icon-search:after,
-.ui-input-search:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M10.171%2C8.766c0.617-0.888%2C0.979-1.964%2C0.979-3.126c0-3.037-2.463-5.5-5.5-5.5s-5.5%2C2.463-5.5%2C5.5s2.463%2C5.5%2C5.5%2C5.5%20c1.152%2C0%2C2.223-0.355%2C3.104-0.962l3.684%2C3.683l1.414-1.414L10.171%2C8.766z%20M5.649%2C9.14c-1.933%2C0-3.5-1.567-3.5-3.5%20c0-1.933%2C1.567-3.5%2C3.5-3.5c1.933%2C0%2C3.5%2C1.567%2C3.5%2C3.5C9.149%2C7.572%2C7.582%2C9.14%2C5.649%2C9.14z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-shop:after,
-.ui-alt-icon .ui-icon-shop:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M10%2C4V3c0-1.657-1.343-3-3-3S4%2C1.343%2C4%2C3v1H1v10h12V4H10z%20M4.5%2C6C4.224%2C6%2C4%2C5.776%2C4%2C5.5S4.224%2C5%2C4.5%2C5S5%2C5.224%2C5%2C5.5%20S4.776%2C6%2C4.5%2C6z%20M5%2C3c0-1.104%2C0.896-2%2C2-2c1.104%2C0%2C2%2C0.896%2C2%2C2v1H5V3z%20M9.5%2C6C9.225%2C6%2C9%2C5.776%2C9%2C5.5S9.225%2C5%2C9.5%2C5S10%2C5.224%2C10%2C5.5%20S9.775%2C6%2C9.5%2C6z%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-star:after,
-.ui-alt-icon .ui-icon-star:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%2214%2C5%209%2C5%207%2C0%205%2C5%200%2C5%204%2C8%202.625%2C13%207%2C10%2011.375%2C13%2010%2C8%20%22%2F%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-tag:after,
-.ui-alt-icon .ui-icon-tag:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M5%2C0H0v5l9%2C9l5-5L5%2C0z%20M3%2C4C2.447%2C4%2C2%2C3.553%2C2%2C3s0.447-1%2C1-1s1%2C0.447%2C1%2C1S3.553%2C4%2C3%2C4z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-user:after,
-.ui-alt-icon .ui-icon-user:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M8.851%2C10.101c-0.18-0.399-0.2-0.763-0.153-1.104C9.383%2C8.49%2C9.738%2C7.621%2C9.891%2C6.465C10.493%2C6.355%2C10.5%2C5.967%2C10.5%2C5.5%20c0-0.437-0.008-0.804-0.502-0.94C9.999%2C4.539%2C10%2C4.521%2C10%2C4.5c0-2.103-1-4-2-4C8%2C0.5%2C7.5%2C0%2C6.5%2C0C5%2C0%2C4%2C1.877%2C4%2C4.5%20c0%2C0.021%2C0.001%2C0.039%2C0.002%2C0.06C3.508%2C4.696%2C3.5%2C5.063%2C3.5%2C5.5c0%2C0.467%2C0.007%2C0.855%2C0.609%2C0.965%20C4.262%2C7.621%2C4.617%2C8.49%2C5.303%2C8.997c0.047%2C0.341%2C0.026%2C0.704-0.153%2C1.104C1.503%2C10.503%2C0%2C12%2C0%2C12v2h14v-2%20C14%2C12%2C12.497%2C10.503%2C8.851%2C10.101z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
-}
-.ui-alt-icon.ui-icon-video:after,
-.ui-alt-icon .ui-icon-video:after {
-	background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%20-2%2014%2014%22%20style%3D%22enable-background%3Anew%200%20-2%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M8%2C0H2C0.896%2C0%2C0%2C0.896%2C0%2C2v6c0%2C1.104%2C0.896%2C2%2C2%2C2h6c1.104%2C0%2C2-0.896%2C2-2V5V2C10%2C0.896%2C9.104%2C0%2C8%2C0z%20M10%2C5l4%2C4V1L10%2C5z%22%2F%3E%3C%2Fsvg%3E");
-}
-/* PNG icons */
-.ui-nosvg .ui-icon-action:after {
-	background-image: url(images/icons-png/action-white.png);
-}
-.ui-nosvg .ui-icon-alert:after {
-	background-image: url(images/icons-png/alert-white.png);
-}
-.ui-nosvg .ui-icon-arrow-d-l:after {
-	background-image: url(images/icons-png/arrow-d-l-white.png);
-}
-.ui-nosvg .ui-icon-arrow-d-r:after {
-	background-image: url(images/icons-png/arrow-d-r-white.png);
-}
-.ui-nosvg .ui-icon-arrow-d:after {
-	background-image: url(images/icons-png/arrow-d-white.png);
-}
-.ui-nosvg .ui-icon-arrow-l:after {
-	background-image: url(images/icons-png/arrow-l-white.png);
-}
-.ui-nosvg .ui-icon-arrow-r:after {
-	background-image: url(images/icons-png/arrow-r-white.png);
-}
-.ui-nosvg .ui-icon-arrow-u-l:after {
-	background-image: url(images/icons-png/arrow-u-l-white.png);
-}
-.ui-nosvg .ui-icon-arrow-u-r:after {
-	background-image: url(images/icons-png/arrow-u-r-white.png);
-}
-.ui-nosvg .ui-icon-arrow-u:after {
-	background-image: url(images/icons-png/arrow-u-white.png);
-}
-.ui-nosvg .ui-icon-audio:after {
-	background-image: url(images/icons-png/audio-white.png);
-}
-.ui-nosvg .ui-icon-back:after {
-	background-image: url(images/icons-png/back-white.png);
-}
-.ui-nosvg .ui-icon-bars:after {
-	background-image: url(images/icons-png/bars-white.png);
-}
-.ui-nosvg .ui-icon-bullets:after {
-	background-image: url(images/icons-png/bullets-white.png);
-}
-.ui-nosvg .ui-icon-calendar:after {
-	background-image: url(images/icons-png/calendar-white.png);
-}
-.ui-nosvg .ui-icon-camera:after {
-	background-image: url(images/icons-png/camera-white.png);
-}
-.ui-nosvg .ui-icon-carat-d:after {
-	background-image: url(images/icons-png/carat-d-white.png);
-}
-.ui-nosvg .ui-icon-carat-l:after {
-	background-image: url(images/icons-png/carat-l-white.png);
-}
-.ui-nosvg .ui-icon-carat-r:after {
-	background-image: url(images/icons-png/carat-r-white.png);
-}
-.ui-nosvg .ui-icon-carat-u:after {
-	background-image: url(images/icons-png/carat-u-white.png);
-}
-.ui-nosvg .ui-icon-check:after,
-html.ui-nosvg .ui-btn.ui-checkbox-on:after {
-	background-image: url(images/icons-png/check-white.png);
-}
-.ui-nosvg .ui-icon-clock:after {
-	background-image: url(images/icons-png/clock-white.png);
-}
-.ui-nosvg .ui-icon-cloud:after {
-	background-image: url(images/icons-png/cloud-white.png);
-}
-.ui-nosvg .ui-icon-comment:after {
-	background-image: url(images/icons-png/comment-white.png);
-}
-.ui-nosvg .ui-icon-delete:after {
-	background-image: url(images/icons-png/delete-white.png);
-}
-.ui-nosvg .ui-icon-edit:after {
-	background-image: url(images/icons-png/edit-white.png);
-}
-.ui-nosvg .ui-icon-eye:after {
-	background-image: url(images/icons-png/eye-white.png);
-}
-.ui-nosvg .ui-icon-forbidden:after {
-	background-image: url(images/icons-png/forbidden-white.png);
-}
-.ui-nosvg .ui-icon-forward:after {
-	background-image: url(images/icons-png/forward-white.png);
-}
-.ui-nosvg .ui-icon-gear:after {
-	background-image: url(images/icons-png/gear-white.png);
-}
-.ui-nosvg .ui-icon-grid:after {
-	background-image: url(images/icons-png/grid-white.png);
-}
-.ui-nosvg .ui-icon-heart:after {
-	background-image: url(images/icons-png/heart-white.png);
-}
-.ui-nosvg .ui-icon-home:after {
-	background-image: url(images/icons-png/home-white.png);
-}
-.ui-nosvg .ui-icon-info:after {
-	background-image: url(images/icons-png/info-white.png);
-}
-.ui-nosvg .ui-icon-location:after {
-	background-image: url(images/icons-png/location-white.png);
-}
-.ui-nosvg .ui-icon-lock:after {
-	background-image: url(images/icons-png/lock-white.png);
-}
-.ui-nosvg .ui-icon-mail:after {
-	background-image: url(images/icons-png/mail-white.png);
-}
-.ui-nosvg .ui-icon-minus:after {
-	background-image: url(images/icons-png/minus-white.png);
-}
-.ui-nosvg .ui-icon-navigation:after {
-	background-image: url(images/icons-png/navigation-white.png);
-}
-.ui-nosvg .ui-icon-phone:after {
-	background-image: url(images/icons-png/phone-white.png);
-}
-.ui-nosvg .ui-icon-plus:after {
-	background-image: url(images/icons-png/plus-white.png);
-}
-.ui-nosvg .ui-icon-power:after {
-	background-image: url(images/icons-png/power-white.png);
-}
-.ui-nosvg .ui-icon-recycle:after {
-	background-image: url(images/icons-png/recycle-white.png);
-}
-.ui-nosvg .ui-icon-refresh:after {
-	background-image: url(images/icons-png/refresh-white.png);
-}
-.ui-nosvg .ui-icon-search:after {
-	background-image: url(images/icons-png/search-white.png);
-}
-.ui-nosvg .ui-icon-shop:after {
-	background-image: url(images/icons-png/shop-white.png);
-}
-.ui-nosvg .ui-icon-star:after {
-	background-image: url(images/icons-png/star-white.png);
-}
-.ui-nosvg .ui-icon-tag:after {
-	background-image: url(images/icons-png/tag-white.png);
-}
-.ui-nosvg .ui-icon-user:after {
-	background-image: url(images/icons-png/user-white.png);
-}
-.ui-nosvg .ui-icon-video:after {
-	background-image: url(images/icons-png/video-white.png);
-}
-/* Alt icons */
-.ui-nosvg .ui-alt-icon.ui-icon-action:after,
-.ui-nosvg .ui-alt-icon .ui-icon-action:after {
-	background-image: url(images/icons-png/action-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-alert:after,
-.ui-nosvg .ui-alt-icon .ui-icon-alert:after {
-	background-image: url(images/icons-png/alert-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-arrow-d:after,
-.ui-nosvg .ui-alt-icon .ui-icon-arrow-d:after {
-	background-image: url(images/icons-png/arrow-d-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-arrow-d-l:after,
-.ui-nosvg .ui-alt-icon .ui-icon-arrow-d-l:after {
-	background-image: url(images/icons-png/arrow-d-l-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-arrow-d-r:after,
-.ui-nosvg .ui-alt-icon .ui-icon-arrow-d-r:after {
-	background-image: url(images/icons-png/arrow-d-r-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-arrow-l:after,
-.ui-nosvg .ui-alt-icon .ui-icon-arrow-l:after {
-	background-image: url(images/icons-png/arrow-l-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-arrow-r:after,
-.ui-nosvg .ui-alt-icon .ui-icon-arrow-r:after {
-	background-image: url(images/icons-png/arrow-r-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-arrow-u:after,
-.ui-nosvg .ui-alt-icon .ui-icon-arrow-u:after {
-	background-image: url(images/icons-png/arrow-u-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-arrow-u-l:after,
-.ui-nosvg .ui-alt-icon .ui-icon-arrow-u-l:after {
-	background-image: url(images/icons-png/arrow-u-l-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-arrow-u-r:after,
-.ui-nosvg .ui-alt-icon .ui-icon-arrow-u-r:after {
-	background-image: url(images/icons-png/arrow-u-r-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-audio:after,
-.ui-nosvg .ui-alt-icon .ui-icon-audio:after {
-	background-image: url(images/icons-png/audio-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-back:after,
-.ui-nosvg .ui-alt-icon .ui-icon-back:after {
-	background-image: url(images/icons-png/back-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-bars:after,
-.ui-nosvg .ui-alt-icon .ui-icon-bars:after {
-	background-image: url(images/icons-png/bars-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-bullets:after,
-.ui-nosvg .ui-alt-icon .ui-icon-bullets:after {
-	background-image: url(images/icons-png/bullets-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-calendar:after,
-.ui-nosvg .ui-alt-icon .ui-icon-calendar:after {
-	background-image: url(images/icons-png/calendar-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-camera:after,
-.ui-nosvg .ui-alt-icon .ui-icon-camera:after {
-	background-image: url(images/icons-png/camera-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-carat-d:after,
-.ui-nosvg .ui-alt-icon .ui-icon-carat-d:after {
-	background-image: url(images/icons-png/carat-d-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-carat-l:after,
-.ui-nosvg .ui-alt-icon .ui-icon-carat-l:after {
-	background-image: url(images/icons-png/carat-l-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-carat-r:after,
-.ui-nosvg .ui-alt-icon .ui-icon-carat-r:after {
-	background-image: url(images/icons-png/carat-r-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-carat-u:after,
-.ui-nosvg .ui-alt-icon .ui-icon-carat-u:after {
-	background-image: url(images/icons-png/carat-u-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-check:after,
-.ui-nosvg .ui-alt-icon .ui-icon-check:after,
-.ui-nosvg .ui-alt-icon.ui-btn.ui-checkbox-on:after,
-.ui-nosvg .ui-alt-icon .ui-btn.ui-checkbox-on:after {
-	background-image: url(images/icons-png/check-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-clock:after,
-.ui-nosvg .ui-alt-icon .ui-icon-clock:after {
-	background-image: url(images/icons-png/clock-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-cloud:after,
-.ui-nosvg .ui-alt-icon .ui-icon-cloud:after {
-	background-image: url(images/icons-png/cloud-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-comment:after,
-.ui-nosvg .ui-alt-icon .ui-icon-comment:after {
-	background-image: url(images/icons-png/comment-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-delete:after,
-.ui-nosvg .ui-alt-icon .ui-icon-delete:after {
-	background-image: url(images/icons-png/delete-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-edit:after,
-.ui-nosvg .ui-alt-icon .ui-icon-edit:after {
-	background-image: url(images/icons-png/edit-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-eye:after,
-.ui-nosvg .ui-alt-icon .ui-icon-eye:after {
-	background-image: url(images/icons-png/eye-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-forbidden:after,
-.ui-nosvg .ui-alt-icon .ui-icon-forbidden:after {
-	background-image: url(images/icons-png/forbidden-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-forward:after,
-.ui-nosvg .ui-alt-icon .ui-icon-forward:after {
-	background-image: url(images/icons-png/forward-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-gear:after,
-.ui-nosvg .ui-alt-icon .ui-icon-gear:after {
-	background-image: url(images/icons-png/gear-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-grid:after,
-.ui-nosvg .ui-alt-icon .ui-icon-grid:after {
-	background-image: url(images/icons-png/grid-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-heart:after,
-.ui-nosvg .ui-alt-icon .ui-icon-heart:after {
-	background-image: url(images/icons-png/heart-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-home:after,
-.ui-nosvg .ui-alt-icon .ui-icon-home:after {
-	background-image: url(images/icons-png/home-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-info:after,
-.ui-nosvg .ui-alt-icon .ui-icon-info:after {
-	background-image: url(images/icons-png/info-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-location:after,
-.ui-nosvg .ui-alt-icon .ui-icon-location:after {
-	background-image: url(images/icons-png/location-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-lock:after,
-.ui-nosvg .ui-alt-icon .ui-icon-lock:after {
-	background-image: url(images/icons-png/lock-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-mail:after,
-.ui-nosvg .ui-alt-icon .ui-icon-mail:after {
-	background-image: url(images/icons-png/mail-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-minus:after,
-.ui-nosvg .ui-alt-icon .ui-icon-minus:after {
-	background-image: url(images/icons-png/minus-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-navigation:after,
-.ui-nosvg .ui-alt-icon .ui-icon-navigation:after {
-	background-image: url(images/icons-png/navigation-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-phone:after,
-.ui-nosvg .ui-alt-icon .ui-icon-phone:after {
-	background-image: url(images/icons-png/phone-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-plus:after,
-.ui-nosvg .ui-alt-icon .ui-icon-plus:after {
-	background-image: url(images/icons-png/plus-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-power:after,
-.ui-nosvg .ui-alt-icon .ui-icon-power:after {
-	background-image: url(images/icons-png/power-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-recycle:after,
-.ui-nosvg .ui-alt-icon .ui-icon-recycle:after {
-	background-image: url(images/icons-png/recycle-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-refresh:after,
-.ui-nosvg .ui-alt-icon .ui-icon-refresh:after {
-	background-image: url(images/icons-png/refresh-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-search:after,
-.ui-nosvg .ui-alt-icon .ui-icon-search:after,
-.ui-nosvg .ui-input-search:after {
-	background-image: url(images/icons-png/search-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-shop:after,
-.ui-nosvg .ui-alt-icon .ui-icon-shop:after {
-	background-image: url(images/icons-png/shop-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-star:after,
-.ui-nosvg .ui-alt-icon .ui-icon-star:after {
-	background-image: url(images/icons-png/star-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-tag:after,
-.ui-nosvg .ui-alt-icon .ui-icon-tag:after {
-	background-image: url(images/icons-png/tag-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-user:after,
-.ui-nosvg .ui-alt-icon .ui-icon-user:after {
-	background-image: url(images/icons-png/user-black.png);
-}
-.ui-nosvg .ui-alt-icon.ui-icon-video:after,
-.ui-nosvg .ui-alt-icon .ui-icon-video:after {
-	background-image: url(images/icons-png/video-black.png);
-}
-/* Globals */
-/* Font
------------------------------------------------------------------------------------------------------------*/
-html {
-	font-size: 100%;
-}
-body,
-input,
-select,
-textarea,
-button,
-.ui-btn {
-	font-size: 1em;
-	line-height: 1.3;
-	font-family: sans-serif /*{global-font-family}*/;
-}
-legend,
-.ui-input-text input,
-.ui-input-search input {
-	color: inherit;
-	text-shadow: inherit;
-}
-/* Form labels (overrides font-weight bold in bars, and mini font-size) */
-.ui-mobile label,
-div.ui-controlgroup-label {
-	font-weight: normal;
-	font-size: 16px;
-}
-/* Separators
------------------------------------------------------------------------------------------------------------*/
-/* Field contain separator (< 28em) */
-.ui-field-contain {
-	border-bottom-color: #828282;
-	border-bottom-color: rgba(0,0,0,.15);
-	border-bottom-width: 1px;
-	border-bottom-style: solid;
-}
-/* Table opt-in classes: strokes between each row, and alternating row stripes */
-/* Classes table-stroke and table-stripe are deprecated in 1.4. */
-.table-stroke thead th,
-.table-stripe thead th,
-.table-stripe tbody tr:last-child {
-	border-bottom: 1px solid #d6d6d6; /* non-RGBA fallback */
-	border-bottom: 1px solid rgba(0,0,0,.1);
-}
-.table-stroke tbody th,
-.table-stroke tbody td {
-	border-bottom: 1px solid #e6e6e6; /* non-RGBA fallback  */
-	border-bottom: 1px solid rgba(0,0,0,.05);
-}
-.table-stripe.table-stroke tbody tr:last-child th,
-.table-stripe.table-stroke tbody tr:last-child td {
-	border-bottom: 0;
-}
-.table-stripe tbody tr:nth-child(odd) td,
-.table-stripe tbody tr:nth-child(odd) th {
-	background-color: #eeeeee; /* non-RGBA fallback  */
-	background-color: rgba(0,0,0,.04);
-}
-/* Buttons
------------------------------------------------------------------------------------------------------------*/
-.ui-btn,
-label.ui-btn {
-	font-weight: bold;
-	border-width: 1px;
-	border-style: solid;
-}
-.ui-btn {
-	text-decoration: none !important;
-}
-.ui-btn-active {
-	cursor: pointer;
-}
-/* Corner rounding
------------------------------------------------------------------------------------------------------------*/
-/* Class ui-btn-corner-all deprecated in 1.4 */
-.ui-corner-all {
-	-webkit-border-radius: 				.3125em /*{global-radii-blocks}*/;
-	border-radius: 						.3125em /*{global-radii-blocks}*/;
-}
-/* Buttons */
-.ui-btn-corner-all,
-.ui-btn.ui-corner-all,
-/* Slider track */
-.ui-slider-track.ui-corner-all,
-/* Flipswitch */
-.ui-flipswitch.ui-corner-all,
-/* Count bubble */
-.ui-li-count {
-	-webkit-border-radius: 				.3125em /*{global-radii-buttons}*/;
-	border-radius: 						.3125em /*{global-radii-buttons}*/;
-}
-/* Icon-only buttons */
-.ui-btn-icon-notext.ui-btn-corner-all,
-.ui-btn-icon-notext.ui-corner-all {
-	-webkit-border-radius: 1em;
-	border-radius: 1em;
-}
-/* Radius clip workaround for cleaning up corner trapping */
-.ui-btn-corner-all,
-.ui-corner-all {
-	-webkit-background-clip: padding;
-	background-clip: padding-box;
-}
-/* Popup arrow */
-.ui-popup.ui-corner-all > .ui-popup-arrow-guide {
-	left: .6em /*{global-radii-blocks}*/;
-	right: .6em /*{global-radii-blocks}*/;
-	top: .6em /*{global-radii-blocks}*/;
-	bottom: .6em /*{global-radii-blocks}*/;
-}
-/* Shadow
------------------------------------------------------------------------------------------------------------*/
-.ui-shadow {
-	-webkit-box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ 		rgba(0,0,0,.15) /*{global-box-shadow-color}*/;
-	-moz-box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ 		rgba(0,0,0,.15) /*{global-box-shadow-color}*/;
-	box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ 				rgba(0,0,0,.15) /*{global-box-shadow-color}*/;
-}
-.ui-shadow-inset {
-	-webkit-box-shadow: inset 0 1px 3px /*{global-box-shadow-size}*/ 	rgba(0,0,0,.2) /*{global-box-shadow-color}*/;
-	-moz-box-shadow: inset 0 1px 3px /*{global-box-shadow-size}*/ 		rgba(0,0,0,.2) /*{global-box-shadow-color}*/;
-	box-shadow: inset 0 1px 3px /*{global-box-shadow-size}*/ 	rgba(0,0,0,.2) /*{global-box-shadow-color}*/;
-}
-.ui-overlay-shadow {
-	-webkit-box-shadow: 0 0 12px 		rgba(0,0,0,.6);
-	-moz-box-shadow: 0 0 12px 			rgba(0,0,0,.6);
-	box-shadow: 0 0 12px 				rgba(0,0,0,.6);
-}
-/* Icons
------------------------------------------------------------------------------------------------------------*/
-.ui-btn-icon-left:after,
-.ui-btn-icon-right:after,
-.ui-btn-icon-top:after,
-.ui-btn-icon-bottom:after,
-.ui-btn-icon-notext:after {
-	background-color: 					#666 /*{global-icon-color}*/;
-	background-color: 					rgba(0,0,0,.3) /*{global-icon-disc}*/;
-	background-position: center center;
-	background-repeat: no-repeat;
-	-webkit-border-radius: 1em;
-	border-radius: 1em;
-}
-/* Alt icons */
-.ui-alt-icon.ui-btn:after,
-.ui-alt-icon .ui-btn:after,
-html .ui-alt-icon.ui-checkbox-off:after,
-html .ui-alt-icon.ui-radio-off:after,
-html .ui-alt-icon .ui-checkbox-off:after,
-html .ui-alt-icon .ui-radio-off:after {
-	background-color: 					#666 /*{global-icon-color}*/;
-	background-color: 					rgba(0,0,0,.15) /*{global-icon-disc}*/;
-}
-/* No disc */
-.ui-nodisc-icon.ui-btn:after,
-.ui-nodisc-icon .ui-btn:after {
-	background-color: transparent;
-}
-/* Icon shadow */
-.ui-shadow-icon.ui-btn:after,
-.ui-shadow-icon .ui-btn:after {
-	-webkit-box-shadow: 0 1px 0 			rgba(255,255,255,.3) /*{global-icon-shadow}*/;
-	-moz-box-shadow: 0 1px 0 				rgba(255,255,255,.3) /*{global-icon-shadow}*/;
-	box-shadow: 0 1px 0 					rgba(255,255,255,.3) /*{global-icon-shadow}*/;
-}
-/* Checkbox and radio */
-.ui-btn.ui-checkbox-off:after,
-.ui-btn.ui-checkbox-on:after,
-.ui-btn.ui-radio-off:after,
-.ui-btn.ui-radio-on:after {
-	display: block;
-	width: 18px;
-	height: 18px;
-	margin: -9px 2px 0 2px;
-}
-.ui-checkbox-off:after,
-.ui-btn.ui-radio-off:after {
-	filter: Alpha(Opacity=30);
-	opacity: .3;
-}
-.ui-btn.ui-checkbox-off:after,
-.ui-btn.ui-checkbox-on:after {
-	-webkit-border-radius: .1875em;
-	border-radius: .1875em;
-}
-.ui-btn.ui-checkbox-off:after {
-	background-color: #666;
-	background-color: rgba(0,0,0,.3);
-}
-.ui-radio .ui-btn.ui-radio-on:after {
-	background-image: none;
-	background-color: #fff;
-	width: 8px;
-	height: 8px;
-	border-width: 5px;
-	border-style: solid; 
-}
-.ui-alt-icon.ui-btn.ui-radio-on:after,
-.ui-alt-icon .ui-btn.ui-radio-on:after {
-	background-color: #000;
-}
-/* Loader
-.ui-icon-loading {
-	background: url(images/ajax-loader.gif);
-	background-size: 2.875em 2.875em;
-} */
-/* Swatches */
-/* A
------------------------------------------------------------------------------------------------------------*/
-/* Bar: Toolbars, dividers, slider track */
-.ui-bar-a,
-.ui-page-theme-a .ui-bar-inherit,
-html .ui-bar-a .ui-bar-inherit,
-html .ui-body-a .ui-bar-inherit,
-html body .ui-group-theme-a .ui-bar-inherit {
-	background-color: 			#e9e9e9 /*{a-bar-background-color}*/;
-	border-color:	 		#ddd /*{a-bar-border}*/;
-	color: 					#333 /*{a-bar-color}*/;
-	text-shadow: 0 /*{a-bar-shadow-x}*/ 1px /*{a-bar-shadow-y}*/ 0 /*{a-bar-shadow-radius}*/ 	#eee /*{a-bar-shadow-color}*/;
-	font-weight: bold;
-}
-.ui-bar-a {
-	border-width: 1px;
-	border-style: solid;
-}
-/* Page and overlay */
-.ui-overlay-a,
-.ui-page-theme-a,
-.ui-page-theme-a .ui-panel-wrapper {
-	background-color: 			#f9f9f9 /*{a-page-background-color}*/;
-	border-color:	 		#bbb /*{a-page-border}*/;
-	color: 					#333 /*{a-page-color}*/;
-	text-shadow: 0 /*{a-page-shadow-x}*/ 1px /*{a-page-shadow-y}*/ 0 /*{a-page-shadow-radius}*/ 	#f3f3f3 /*{a-page-shadow-color}*/;
-}
-/* Body: Read-only lists, text inputs, collapsible content */
-.ui-body-a,
-.ui-page-theme-a .ui-body-inherit,
-html .ui-bar-a .ui-body-inherit,
-html .ui-body-a .ui-body-inherit,
-html body .ui-group-theme-a .ui-body-inherit,
-html .ui-panel-page-container-a {
-	background-color: 			#fff /*{a-body-background-color}*/;
-	border-color:	 		#ddd /*{a-body-border}*/;
-	color: 					#333 /*{a-body-color}*/;
-	text-shadow: 0 /*{a-body-shadow-x}*/ 1px /*{a-body-shadow-y}*/ 0 /*{a-body-shadow-radius}*/ 	#f3f3f3 /*{a-body-shadow-color}*/;
-}
-.ui-body-a {
-	border-width: 1px;
-	border-style: solid;
-}
-/* Links */
-.ui-page-theme-a a,
-html .ui-bar-a a,
-html .ui-body-a a,
-html body .ui-group-theme-a a {
-	color: #3388cc /*{a-link-color}*/;
-	font-weight: bold;
-}
-.ui-page-theme-a a:visited,
-html .ui-bar-a a:visited,
-html .ui-body-a a:visited,
-html body .ui-group-theme-a a:visited {
-    color: #3388cc /*{a-link-visited}*/;
-}
-.ui-page-theme-a a:hover,
-html .ui-bar-a a:hover,
-html .ui-body-a a:hover,
-html body .ui-group-theme-a a:hover {
-	color: #005599 /*{a-link-hover}*/;
-}
-.ui-page-theme-a a:active,
-html .ui-bar-a a:active,
-html .ui-body-a a:active,
-html body .ui-group-theme-a a:active {
-	color: #005599 /*{a-link-active}*/;
-}
-/* Button up */
-.ui-page-theme-a .ui-btn,
-html .ui-bar-a .ui-btn,
-html .ui-body-a .ui-btn,
-html body .ui-group-theme-a .ui-btn,
-html head + body .ui-btn.ui-btn-a,
-/* Button visited */
-.ui-page-theme-a .ui-btn:visited,
-html .ui-bar-a .ui-btn:visited,
-html .ui-body-a .ui-btn:visited,
-html body .ui-group-theme-a .ui-btn:visited,
-html head + body .ui-btn.ui-btn-a:visited {
-	background-color: 			#f6f6f6 /*{a-bup-background-color}*/;
-	border-color:	 		#ddd /*{a-bup-border}*/;
-	color: 					#333 /*{a-bup-color}*/;
-	text-shadow: 0 /*{a-bup-shadow-x}*/ 1px /*{a-bup-shadow-y}*/ 0 /*{a-bup-shadow-radius}*/ #f3f3f3 /*{a-bup-shadow-color}*/;
-}
-/* Button hover */
-.ui-page-theme-a .ui-btn:hover,
-html .ui-bar-a .ui-btn:hover,
-html .ui-body-a .ui-btn:hover,
-html body .ui-group-theme-a .ui-btn:hover,
-html head + body .ui-btn.ui-btn-a:hover {
-	background-color: 			#ededed /*{a-bhover-background-color}*/;
-	border-color:	 		#ddd /*{a-bhover-border}*/;
-	color: 					#333 /*{a-bhover-color}*/;
-	text-shadow: 0 /*{a-bhover-shadow-x}*/ 1px /*{a-bhover-shadow-y}*/ 0 /*{a-bhover-shadow-radius}*/ #f3f3f3 /*{a-bhover-shadow-color}*/;
-}
-/* Button down */
-.ui-page-theme-a .ui-btn:active,
-html .ui-bar-a .ui-btn:active,
-html .ui-body-a .ui-btn:active,
-html body .ui-group-theme-a .ui-btn:active,
-html head + body .ui-btn.ui-btn-a:active {
-	background-color: 			#e8e8e8 /*{a-bdown-background-color}*/;
-	border-color:	 		#ddd /*{a-bdown-border}*/;
-	color: 					#333 /*{a-bdown-color}*/;
-	text-shadow: 0 /*{a-bdown-shadow-x}*/ 1px /*{a-bdown-shadow-y}*/ 0 /*{a-bdown-shadow-radius}*/ #f3f3f3 /*{a-bdown-shadow-color}*/;
-}
-/* Active button */
-.ui-page-theme-a .ui-btn.ui-btn-active,
-html .ui-bar-a .ui-btn.ui-btn-active,
-html .ui-body-a .ui-btn.ui-btn-active,
-html body .ui-group-theme-a .ui-btn.ui-btn-active,
-html head + body .ui-btn.ui-btn-a.ui-btn-active,
-/* Active checkbox icon */
-.ui-page-theme-a .ui-checkbox-on:after,
-html .ui-bar-a .ui-checkbox-on:after,
-html .ui-body-a .ui-checkbox-on:after,
-html body .ui-group-theme-a .ui-checkbox-on:after,
-.ui-btn.ui-checkbox-on.ui-btn-a:after,
-/* Active flipswitch background */
-.ui-page-theme-a .ui-flipswitch-active,
-html .ui-bar-a .ui-flipswitch-active,
-html .ui-body-a .ui-flipswitch-active,
-html body .ui-group-theme-a .ui-flipswitch-active,
-html body .ui-flipswitch.ui-bar-a.ui-flipswitch-active,
-/* Active slider track */
-.ui-page-theme-a .ui-slider-track .ui-btn-active,
-html .ui-bar-a .ui-slider-track .ui-btn-active,
-html .ui-body-a .ui-slider-track .ui-btn-active,
-html body .ui-group-theme-a .ui-slider-track .ui-btn-active,
-html body div.ui-slider-track.ui-body-a .ui-btn-active {
-	background-color: 		#3388cc /*{a-active-background-color}*/;
-	border-color:	 		#3388cc /*{a-active-border}*/;
-	color: 					#fff /*{a-active-color}*/;
-	text-shadow: 0 /*{a-active-shadow-x}*/ 1px /*{a-active-shadow-y}*/ 0 /*{a-active-shadow-radius}*/ #005599 /*{a-active-shadow-color}*/;
-}
-/* Active radio button icon */
-.ui-page-theme-a .ui-radio-on:after,
-html .ui-bar-a .ui-radio-on:after,
-html .ui-body-a .ui-radio-on:after,
-html body .ui-group-theme-a .ui-radio-on:after,
-.ui-btn.ui-radio-on.ui-btn-a:after {
-	border-color:			#3388cc /*{a-active-background-color}*/;
-}
-/* Focus */
-.ui-page-theme-a .ui-btn:focus,
-html .ui-bar-a .ui-btn:focus,
-html .ui-body-a .ui-btn:focus,
-html body .ui-group-theme-a .ui-btn:focus,
-html head + body .ui-btn.ui-btn-a:focus,
-/* Focus buttons and text inputs with div wrap */
-.ui-page-theme-a .ui-focus,
-html .ui-bar-a .ui-focus,
-html .ui-body-a .ui-focus,
-html body .ui-group-theme-a .ui-focus,
-html head + body .ui-btn-a.ui-focus,
-html head + body .ui-body-a.ui-focus {
-	-webkit-box-shadow: 0 0 12px 	#3388cc /*{a-active-background-color}*/;
-	-moz-box-shadow: 0 0 12px 		#3388cc /*{a-active-background-color}*/;
-	box-shadow: 0 0 12px 			#3388cc /*{a-active-background-color}*/;
-}
-/* B
------------------------------------------------------------------------------------------------------------*/
-/* Bar: Toolbars, dividers, slider track */
-.ui-bar-b,
-.ui-page-theme-b .ui-bar-inherit,
-html .ui-bar-b .ui-bar-inherit,
-html .ui-body-b .ui-bar-inherit,
-html body .ui-group-theme-b .ui-bar-inherit {
-	background-color: 			#1d1d1d /*{b-bar-background-color}*/;
-	border-color:	 		#1b1b1b /*{b-bar-border}*/;
-	color: 					#fff /*{b-bar-color}*/;
-	text-shadow: 0 /*{b-bar-shadow-x}*/ 1px /*{b-bar-shadow-y}*/ 0 /*{b-bar-shadow-radius}*/ 	#111 /*{b-bar-shadow-color}*/;
-	font-weight: bold;
-}
-.ui-bar-b {
-	border-width: 1px;
-	border-style: solid;
-}
-/* Page and overlay */
-.ui-overlay-b,
-.ui-page-theme-b,
-.ui-page-theme-b .ui-panel-wrapper {
-	background-color: 			#252525 /*{b-page-background-color}*/;
-	border-color:	 		#454545 /*{b-page-border}*/;
-	color: 					#fff /*{b-page-color}*/;
-	text-shadow: 0 /*{b-page-shadow-x}*/ 1px /*{b-page-shadow-y}*/ 0 /*{b-page-shadow-radius}*/ 	#111 /*{b-page-shadow-color}*/;
-}
-/* Body: Read-only lists, text inputs, collapsible content */
-.ui-body-b,
-.ui-page-theme-b .ui-body-inherit,
-html .ui-bar-b .ui-body-inherit,
-html .ui-body-b .ui-body-inherit,
-html body .ui-group-theme-b .ui-body-inherit,
-html .ui-panel-page-container-b {
-	background-color: 			#2a2a2a /*{b-body-background-color}*/;
-	border-color:	 		#1d1d1d /*{b-body-border}*/;
-	color: 					#fff /*{b-body-color}*/;
-	text-shadow: 0 /*{b-body-shadow-x}*/ 1px /*{b-body-shadow-y}*/ 0 /*{b-body-shadow-radius}*/ 	#111 /*{b-body-shadow-color}*/;
-}
-.ui-body-b {
-	border-width: 1px;
-	border-style: solid;
-}
-/* Links */
-.ui-page-theme-b a,
-html .ui-bar-b a,
-html .ui-body-b a,
-html body .ui-group-theme-b a {
-	color: #22aadd /*{b-link-color}*/;
-	font-weight: bold;
-}
-.ui-page-theme-b a:visited,
-html .ui-bar-b a:visited,
-html .ui-body-b a:visited,
-html body .ui-group-theme-b a:visited {
-    color: #22aadd /*{b-link-visited}*/;
-}
-.ui-page-theme-b a:hover,
-html .ui-bar-b a:hover,
-html .ui-body-b a:hover,
-html body .ui-group-theme-b a:hover {
-	color: #0088bb /*{b-link-hover}*/;
-}
-.ui-page-theme-b a:active,
-html .ui-bar-b a:active,
-html .ui-body-b a:active,
-html body .ui-group-theme-b a:active {
-	color: #0088bb /*{b-link-active}*/;
-}
-/* Button up */
-.ui-page-theme-b .ui-btn,
-html .ui-bar-b .ui-btn,
-html .ui-body-b .ui-btn,
-html body .ui-group-theme-b .ui-btn,
-html head + body .ui-btn.ui-btn-b,
-/* Button visited */
-.ui-page-theme-b .ui-btn:visited,
-html .ui-bar-b .ui-btn:visited,
-html .ui-body-b .ui-btn:visited,
-html body .ui-group-theme-b .ui-btn:visited,
-html head + body .ui-btn.ui-btn-b:visited {
-	background-color: 			#333 /*{b-bup-background-color}*/;
-	border-color:	 		#1f1f1f /*{b-bup-border}*/;
-	color: 					#fff /*{b-bup-color}*/;
-	text-shadow: 0 /*{b-bup-shadow-x}*/ 1px /*{b-bup-shadow-y}*/ 0 /*{b-bup-shadow-radius}*/ #111 /*{b-bup-shadow-color}*/;
-}
-/* Button hover */
-.ui-page-theme-b .ui-btn:hover,
-html .ui-bar-b .ui-btn:hover,
-html .ui-body-b .ui-btn:hover,
-html body .ui-group-theme-b .ui-btn:hover,
-html head + body .ui-btn.ui-btn-b:hover {
-	background-color: 			#373737 /*{b-bhover-background-color}*/;
-	border-color:	 		#1f1f1f /*{b-bhover-border}*/;
-	color: 					#fff /*{b-bhover-color}*/;
-	text-shadow: 0 /*{b-bhover-shadow-x}*/ 1px /*{b-bhover-shadow-y}*/ 0 /*{b-bhover-shadow-radius}*/ #111 /*{b-bhover-shadow-color}*/;
-}
-/* Button down */
-.ui-page-theme-b .ui-btn:active,
-html .ui-bar-b .ui-btn:active,
-html .ui-body-b .ui-btn:active,
-html body .ui-group-theme-b .ui-btn:active,
-html head + body .ui-btn.ui-btn-b:active {
-	background-color: 			#404040 /*{b-bdown-background-color}*/;
-	border-color:	 		#1f1f1f /*{b-bdown-border}*/;
-	color: 					#fff /*{b-bdown-color}*/;
-	text-shadow: 0 /*{b-bdown-shadow-x}*/ 1px /*{b-bdown-shadow-y}*/ 0 /*{b-bdown-shadow-radius}*/ #111 /*{b-bdown-shadow-color}*/;
-}
-/* Active button */
-.ui-page-theme-b .ui-btn.ui-btn-active,
-html .ui-bar-b .ui-btn.ui-btn-active,
-html .ui-body-b .ui-btn.ui-btn-active,
-html body .ui-group-theme-b .ui-btn.ui-btn-active,
-html head + body .ui-btn.ui-btn-b.ui-btn-active,
-/* Active checkbox icon */
-.ui-page-theme-b .ui-checkbox-on:after,
-html .ui-bar-b .ui-checkbox-on:after,
-html .ui-body-b .ui-checkbox-on:after,
-html body .ui-group-theme-b .ui-checkbox-on:after,
-.ui-btn.ui-checkbox-on.ui-btn-b:after,
-/* Active flipswitch background */
-.ui-page-theme-b .ui-flipswitch-active,
-html .ui-bar-b .ui-flipswitch-active,
-html .ui-body-b .ui-flipswitch-active,
-html body .ui-group-theme-b .ui-flipswitch-active,
-html body .ui-flipswitch.ui-bar-b.ui-flipswitch-active,
-/* Active slider track */
-.ui-page-theme-b .ui-slider-track .ui-btn-active,
-html .ui-bar-b .ui-slider-track .ui-btn-active,
-html .ui-body-b .ui-slider-track .ui-btn-active,
-html body .ui-group-theme-b .ui-slider-track .ui-btn-active,
-html body div.ui-slider-track.ui-body-b .ui-btn-active {
-	background-color: 		#22aadd /*{b-active-background-color}*/;
-	border-color:	 		#22aadd /*{b-active-border}*/;
-	color: 					#fff /*{b-active-color}*/;
-	text-shadow: 0 /*{b-active-shadow-x}*/ 1px /*{b-active-shadow-y}*/ 0 /*{b-active-shadow-radius}*/ #0088bb /*{b-active-shadow-color}*/;
-}
-/* Active radio button icon */
-.ui-page-theme-b .ui-radio-on:after,
-html .ui-bar-b .ui-radio-on:after,
-html .ui-body-b .ui-radio-on:after,
-html body .ui-group-theme-b .ui-radio-on:after,
-.ui-btn.ui-radio-on.ui-btn-b:after {
-	border-color:			#22aadd /*{b-active-background-color}*/;
-}
-/* Focus */
-.ui-page-theme-b .ui-btn:focus,
-html .ui-bar-b .ui-btn:focus,
-html .ui-body-b .ui-btn:focus,
-html body .ui-group-theme-b .ui-btn:focus,
-html head + body .ui-btn.ui-btn-b:focus,
-/* Focus buttons and text inputs with div wrap */
-.ui-page-theme-b .ui-focus,
-html .ui-bar-b .ui-focus,
-html .ui-body-b .ui-focus,
-html body .ui-group-theme-b .ui-focus,
-html head + body .ui-btn-b.ui-focus,
-html head + body .ui-body-b.ui-focus {
-	-webkit-box-shadow: 0 0 12px 	#22aadd /*{b-active-background-color}*/;
-	-moz-box-shadow: 0 0 12px 		#22aadd /*{b-active-background-color}*/;
-	box-shadow: 0 0 12px 			#22aadd /*{b-active-background-color}*/;
-}
-/* Structure */
-/* Disabled
------------------------------------------------------------------------------------------------------------*/
-/* Class ui-disabled deprecated in 1.4. :disabled not supported by IE8 so we use [disabled] */
-.ui-disabled,
-.ui-state-disabled,
-button[disabled],
-.ui-select .ui-btn.ui-state-disabled {
-	filter: Alpha(Opacity=30);
-	opacity: .3;
-	cursor: default !important;
-	pointer-events: none;
-}
-/* Focus state outline
------------------------------------------------------------------------------------------------------------*/
-.ui-btn:focus,
-.ui-btn.ui-focus {
-	outline: 0;
-}
-/* Unset box-shadow in browsers that don't do it right */
-.ui-noboxshadow .ui-shadow,
-.ui-noboxshadow .ui-shadow-inset,
-.ui-noboxshadow .ui-overlay-shadow,
-.ui-noboxshadow .ui-shadow-icon.ui-btn:after,
-.ui-noboxshadow .ui-shadow-icon .ui-btn:after,
-.ui-noboxshadow .ui-focus,
-.ui-noboxshadow .ui-btn:focus,
-.ui-noboxshadow  input:focus,
-.ui-noboxshadow .ui-panel {
-	-webkit-box-shadow: none !important;
-	-moz-box-shadow: none !important;
-	box-shadow: none !important;
-}
-.ui-noboxshadow .ui-btn:focus,
-.ui-noboxshadow .ui-focus {
-	outline-width: 1px;
-	outline-style: auto;
-}
-/* Some unsets */
-.ui-mobile,
-.ui-mobile body {
-	height: 99.9%;
-}
-.ui-mobile fieldset,
-.ui-page {
-	padding: 0;
-	margin: 0;
-}
-.ui-mobile a img,
-.ui-mobile fieldset {
-	border-width: 0;
-}
-/* Fixes for fieldset issues on IE10 and FF (see #6077) */
-.ui-mobile fieldset {
-	min-width: 0;
-}
-@-moz-document url-prefix() {
-	.ui-mobile fieldset {
-		display: table-column;
-		vertical-align: middle;
-	}
-}
-/* Viewport */
-.ui-mobile-viewport {
-	margin: 0;
-	overflow-x: visible;
-	-webkit-text-size-adjust: 100%;
-	-ms-text-size-adjust:none;
-	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-}
-/* Issue #2066 */
-body.ui-mobile-viewport,
-div.ui-mobile-viewport {
-	overflow-x: hidden;
-}
-/* "page" containers - full-screen views, one should always be in view post-pageload */
-.ui-mobile [data-role=page],
-.ui-mobile [data-role=dialog],
-.ui-page {
-	top: 0;
-	left: 0;
-	width: 100%;
-	min-height: 100%;
-	position: absolute;
-	display: none;
-	border: 0;
-}
-/* On ios4, setting focus on the page element causes flashing during transitions when there is an outline, so we turn off outlines */
-.ui-page {
-	outline: none;
-}
-.ui-mobile .ui-page-active {
-	display: block;
-	overflow: visible;
-	overflow-x: hidden;
-}
-@media screen and (orientation: portrait) {
-	.ui-mobile .ui-page {
-		min-height: 420px;
-	}
-}
-@media screen and (orientation: landscape) {
-	.ui-mobile .ui-page {
-		min-height: 300px;
-	}
-}
-/* Fouc */
-.ui-mobile-rendering > * {
-	visibility: hidden;
-}
-/* Non-js content hiding */
-.ui-nojs {
-	position: absolute !important;
-	height: 1px;
-	width: 1px;
-	overflow: hidden;
-	clip: rect(1px,1px,1px,1px);
-}
-/* Loading screen */
-.ui-loading .ui-loader {
-	display: block;
-}
-.ui-loader {
-	display: none;
-	z-index: 9999999;
-	position: fixed;
-	top: 50%;
-	left: 50%;
-	border:0;
-}
-.ui-loader-default {
-	background: none;
-	filter: Alpha(Opacity=18);
-	opacity: .18;
-	width: 2.875em;
-	height: 2.875em;
-	margin-left: -1.4375em;
-	margin-top: -1.4375em;
-}
-.ui-loader-verbose {
-	width: 12.5em;
-	filter: Alpha(Opacity=88);
-	opacity: .88;
-	box-shadow: 0 1px 1px -1px #fff;
-	height: auto;
-	margin-left: -6.875em;
-	margin-top: -2.6875em;
-	padding: .625em;
-}
-.ui-loader-default h1 {
-	font-size: 0;
-	width: 0;
-	height: 0;
-	overflow: hidden;
-}
-.ui-loader-verbose h1 {
-	font-size: 1em;
-	margin: 0;
-	text-align: center;
-}
-.ui-loader .ui-icon-loading {
-	background-color: #000;
-	display: block;
-	margin: 0;
-	width: 2.75em;
-	height: 2.75em;
-	padding: .0625em;
-	-webkit-border-radius: 2.25em;
-	border-radius: 2.25em;
-}
-.ui-loader-verbose .ui-icon-loading {
-	margin: 0 auto .625em;
-	filter: Alpha(Opacity=75);
-	opacity: .75;
-}
-.ui-loader-textonly {
-	padding: .9375em;
-	margin-left: -7.1875em;
-}
-.ui-loader-textonly .ui-icon-loading {
-	display: none;
-}
-.ui-loader-fakefix {
-	position: absolute;
-}
-/* Headers, content panels */
-.ui-bar,
-.ui-body {
-	position: relative;
-	padding: .4em 1em;
-	overflow: hidden;
-	display: block;
-	clear: both;
-}
-.ui-bar h1,
-.ui-bar h2,
-.ui-bar h3,
-.ui-bar h4,
-.ui-bar h5,
-.ui-bar h6 {
-	margin: 0;
-	padding: 0;
-	font-size: 1em;
-	display: inline-block;
-}
-.ui-header,
-.ui-footer {
-	border-width: 1px 0;
-	border-style: solid;
-	position: relative;
-}
-.ui-header:empty,
-.ui-footer:empty {
-	min-height: 2.6875em;
-}
-.ui-header .ui-title,
-.ui-footer .ui-title {
-	font-size: 1em;
-	min-height: 1.1em;
-	text-align: center;
-	display: block;
-	margin: 0 30%;
-	padding: .7em 0;
-	text-overflow: ellipsis;
-	overflow: hidden;
-	white-space: nowrap;
-	outline: 0 !important;
-}
-.ui-footer .ui-title {
-	margin: 0 1em;
-}
-.ui-content {
-	border-width: 0;
-	overflow: visible;
-	overflow-x: hidden;
-	padding: 1em;
-}
-/* Corner styling for dialogs and popups */
-.ui-corner-all > .ui-header:first-child,
-.ui-corner-all > .ui-content:first-child,
-.ui-corner-all > .ui-footer:first-child {
-	-webkit-border-top-left-radius: inherit;
-	border-top-left-radius: inherit;
-	-webkit-border-top-right-radius: inherit;
-	border-top-right-radius: inherit;
-}
-.ui-corner-all > .ui-header:last-child,
-.ui-corner-all > .ui-content:last-child,
-.ui-corner-all > .ui-footer:last-child {
-	-webkit-border-bottom-left-radius: inherit;
-	border-bottom-left-radius: inherit;
-	-webkit-border-bottom-right-radius: inherit;
-	border-bottom-right-radius: inherit;
-}
-/* Buttons and icons */
-.ui-btn {
-	font-size: 16px;
-	margin: .5em 0;
-	padding: .7em 1em;
-	display: block;
-	position: relative;
-	text-align: center;
-	text-overflow: ellipsis;
-	overflow: hidden;
-	white-space: nowrap;
-	cursor: pointer;
-	-webkit-user-select: none;
-	-moz-user-select: none;
-	-ms-user-select: none;
-	user-select: none;
-}
-.ui-btn-icon-notext,
-.ui-header button.ui-btn.ui-btn-icon-notext,
-.ui-footer button.ui-btn.ui-btn-icon-notext {
-	padding: 0;
-	width: 1.75em;
-	height: 1.75em;
-	text-indent: -9999px;
-	white-space: nowrap !important;
-}
-.ui-mini {
-	font-size: 12.5px;
-}
-.ui-mini .ui-btn {
-	font-size: inherit;
-}
-/* Make buttons in toolbars default to mini and inline. */
-.ui-header .ui-btn,
-.ui-footer .ui-btn {
-	font-size: 12.5px;
-	display: inline-block;
-	vertical-align: middle;
-}
-.ui-header .ui-controlgroup .ui-btn-icon-notext,
-.ui-footer .ui-controlgroup .ui-btn-icon-notext {
-    font-size: 12.5px;
-}
-/* To ensure same top and left/right position when ui-btn-left/right are added to something other than buttons. */
-.ui-header .ui-btn-left,
-.ui-header .ui-btn-right {
-	font-size: 12.5px;
-}
-.ui-mini.ui-btn-icon-notext,
-.ui-mini .ui-btn-icon-notext,
-.ui-header .ui-btn-icon-notext,
-.ui-footer .ui-btn-icon-notext {
-	font-size: 16px;	
-	padding: 0;
-}
-.ui-btn-inline {
-	display: inline-block;
-	vertical-align: middle;
-	margin-right: .625em;
-}
-.ui-btn-icon-left {
-	padding-left: 2.5em;
-}
-.ui-btn-icon-right {
-	padding-right: 2.5em;
-}
-.ui-btn-icon-top {
-	padding-top: 2.5em;
-}
-.ui-btn-icon-bottom {
-	padding-bottom: 2.5em;
-}
-.ui-header .ui-btn-icon-top,
-.ui-footer .ui-btn-icon-top,
-.ui-header .ui-btn-icon-bottom,
-.ui-footer .ui-btn-icon-bottom {
-	padding-left: .3125em;
-	padding-right: .3125em;
-}
-.ui-btn-icon-left:after,
-.ui-btn-icon-right:after,
-.ui-btn-icon-top:after,
-.ui-btn-icon-bottom:after,
-.ui-btn-icon-notext:after {
-	content: "";
-	position: absolute;
-	display: block;
-	width: 22px;
-	height: 22px;
-}
-.ui-btn-icon-notext:after,
-.ui-btn-icon-left:after,
-.ui-btn-icon-right:after {
-	top: 50%;
-	margin-top: -11px;
-}
-.ui-btn-icon-left:after {
-	left: .5625em;
-}
-.ui-btn-icon-right:after {
-	right: .5625em;
-}
-.ui-mini.ui-btn-icon-left:after,
-.ui-mini .ui-btn-icon-left:after,
-.ui-header .ui-btn-icon-left:after,
-.ui-footer .ui-btn-icon-left:after {
-	left: .37em;
-}
-.ui-mini.ui-btn-icon-right:after,
-.ui-mini .ui-btn-icon-right:after,
-.ui-header .ui-btn-icon-right:after,
-.ui-footer .ui-btn-icon-right:after {
-	right: .37em;
-}
-.ui-btn-icon-notext:after,
-.ui-btn-icon-top:after,
-.ui-btn-icon-bottom:after {
-	left: 50%;
-	margin-left: -11px;
-}
-.ui-btn-icon-top:after {
-	top: .5625em;
-}
-.ui-btn-icon-bottom:after {
-	top: auto;
-	bottom: .5625em;
-}
-/* Buttons in header position classes */
-.ui-header .ui-btn-left,
-.ui-header .ui-btn-right,
-.ui-btn-left > [class*="ui-"],
-.ui-btn-right > [class*="ui-"] {
-	margin: 0;
-}
-.ui-btn-left,
-.ui-btn-right {
-	position: absolute;
-	top: .24em;
-}
-.ui-btn-left {
-	left: .4em;
-}
-.ui-btn-right {
-	right: .4em;
-}
-.ui-btn-icon-notext.ui-btn-left {
-	top: .3125em;
-	left: .3125em;
-}
-.ui-btn-icon-notext.ui-btn-right {
-	top: .3125em;
-	right: .3125em;
-}
-/* Button elements */
-button.ui-btn,
-.ui-controlgroup-controls button.ui-btn-icon-notext {
-	-webkit-box-sizing: border-box;
-	-moz-box-sizing: border-box;
-	box-sizing: border-box;
-	-webkit-appearance: none;
-	-moz-appearance: none;
-	width: 100%;
-}
-button.ui-btn-inline,
-.ui-header button.ui-btn,
-.ui-footer button.ui-btn {
-	width: auto;
-}
-/* Firefox adds a 1px border in a button element. We negate this to make sure they have the same height as other buttons in controlgroups. */
-button.ui-btn::-moz-focus-inner {
-	border: 0;
-}
-button.ui-btn-icon-notext,
-.ui-controlgroup-horizontal .ui-controlgroup-controls button.ui-btn {
-	-webkit-box-sizing: content-box;
-	-moz-box-sizing: content-box;
-	box-sizing: content-box;
-	width: 1.75em;
-}
-/* Form labels */
-.ui-mobile label,
-.ui-controlgroup-label {
-	display: block;
-	margin: 0 0 .4em;
-}
-/* Accessible content hiding */
-/* ui-hide-label deprecated in 1.4. TODO: Remove in 1.5 */
-.ui-hide-label > label,
-.ui-hide-label .ui-controlgroup-label,
-.ui-hide-label .ui-rangeslider label,
-.ui-hidden-accessible {
-	position: absolute !important;
-	height: 1px;
-	width: 1px;
-	overflow: hidden;
-	clip: rect(1px,1px,1px,1px);
-}
-/* Used for hiding elements by the filterable widget. You can also use this class to hide list items or buttons in controlgroups; this ensures correct corner styling. */
-.ui-screen-hidden {
-	display: none !important;
-}
-/* Transitions originally inspired by those from jQtouch, nice work, folks */
-.ui-mobile-viewport-transitioning,
-.ui-mobile-viewport-transitioning .ui-page {
-	width: 100%;
-	height: 100%;
-	overflow: hidden;
-	-webkit-box-sizing: border-box;
-	-moz-box-sizing: border-box;
-	box-sizing: border-box;
-}
-.ui-page-pre-in {
-	opacity: 0;
-}
-.in {
-	-webkit-animation-timing-function: ease-out;
-	-webkit-animation-duration: 350ms;
-	-moz-animation-timing-function: ease-out;
-	-moz-animation-duration: 350ms;
-	animation-timing-function: ease-out;
-	animation-duration: 350ms;
-}
-.out {
-	-webkit-animation-timing-function: ease-in;
-	-webkit-animation-duration: 225ms;
-	-moz-animation-timing-function: ease-in;
-	-moz-animation-duration: 225ms;
-	animation-timing-function: ease-in;
-	animation-duration: 225ms;
-}
-@-webkit-keyframes fadein {
-    from { opacity: 0; }
-    to { opacity: 1; }
-}
-@-moz-keyframes fadein {
-    from { opacity: 0; }
-    to { opacity: 1; }
-}
-@keyframes fadein {
-    from { opacity: 0; }
-    to { opacity: 1; }
-}
-@-webkit-keyframes fadeout {
-    from { opacity: 1; }
-    to { opacity: 0; }
-}
-@-moz-keyframes fadeout {
-    from { opacity: 1; }
-    to { opacity: 0; }
-}
-@keyframes fadeout {
-    from { opacity: 1; }
-    to { opacity: 0; }
-}
-.fade.out {
-	opacity: 0;
-	-webkit-animation-duration: 125ms;
-	-webkit-animation-name: fadeout;
-	-moz-animation-duration: 125ms;
-	-moz-animation-name: fadeout;
-	animation-duration: 125ms;
-	animation-name: fadeout;
-}
-.fade.in {
-	opacity: 1;
-	-webkit-animation-duration: 225ms;
-	-webkit-animation-name: fadein;
-	-moz-animation-duration: 225ms;
-	-moz-animation-name: fadein;
-	animation-duration: 225ms;
-	animation-name: fadein;
-}
-.pop {
-	-webkit-transform-origin: 50% 50%;
-	-moz-transform-origin: 50% 50%;
-	transform-origin: 50% 50%;
-}
-.pop.in {
-	-webkit-transform: scale(1);
-	-webkit-animation-name: popin;
-	-webkit-animation-duration: 350ms;
-	-moz-transform: scale(1);
-	-moz-animation-name: popin;
-	-moz-animation-duration: 350ms;
-	transform: scale(1);
-	animation-name: popin;
-	animation-duration: 350ms;
-    opacity: 1;
-}
-.pop.out {
-	-webkit-animation-name: fadeout;
-	-webkit-animation-duration: 100ms;
-	-moz-animation-name: fadeout;
-	-moz-animation-duration: 100ms;
-	animation-name: fadeout;
-	animation-duration: 100ms;
-	opacity: 0;
-}
-.pop.in.reverse {
-	-webkit-animation-name: fadein;
-	-moz-animation-name: fadein;
-	animation-name: fadein;
-}
-.pop.out.reverse {
-	-webkit-transform: scale(.8);
-	-webkit-animation-name: popout;
-	-moz-transform: scale(.8);
-	-moz-animation-name: popout;
-	transform: scale(.8);
-	animation-name: popout;
-}
-@-webkit-keyframes popin {
-    from {
-        -webkit-transform: scale(.8);
-        opacity: 0;
-    }
-    to {
-        -webkit-transform: scale(1);
-        opacity: 1;
-    }
-}
-@-moz-keyframes popin {
-    from {
-        -moz-transform: scale(.8);
-        opacity: 0;
-    }
-    to {
-        -moz-transform: scale(1);
-        opacity: 1;
-    }
-}
-@keyframes popin {
-    from {
-        transform: scale(.8);
-        opacity: 0;
-    }
-    to {
-        transform: scale(1);
-        opacity: 1;
-    }
-}
-@-webkit-keyframes popout {
-    from {
-        -webkit-transform: scale(1);
-        opacity: 1;
-    }
-    to {
-        -webkit-transform: scale(.8);
-        opacity: 0;
-    }
-}
-@-moz-keyframes popout {
-    from {
-        -moz-transform: scale(1);
-        opacity: 1;
-    }
-    to {
-        -moz-transform: scale(.8);
-        opacity: 0;
-    }
-}
-@keyframes popout {
-    from {
-        transform: scale(1);
-        opacity: 1;
-    }
-    to {
-        transform: scale(.8);
-        opacity: 0;
-    }
-}
-/* keyframes for slidein from sides */
-@-webkit-keyframes slideinfromright {
-    from { -webkit-transform: translate3d(100%,0,0); }
-    to { -webkit-transform: translate3d(0,0,0); }
-}
-@-moz-keyframes slideinfromright {
-    from { -moz-transform: translateX(100%); }
-    to { -moz-transform: translateX(0); }
-}
-@keyframes slideinfromright {
-    from { transform: translateX(100%); }
-    to { transform: translateX(0); }
-}
-@-webkit-keyframes slideinfromleft {
-    from { -webkit-transform: translate3d(-100%,0,0); }
-    to { -webkit-transform: translate3d(0,0,0); }
-}
-@-moz-keyframes slideinfromleft {
-    from { -moz-transform: translateX(-100%); }
-    to { -moz-transform: translateX(0); }
-}
-@keyframes slideinfromleft {
-    from { transform: translateX(-100%); }
-    to { transform: translateX(0); }
-}
-/* keyframes for slideout to sides */
-@-webkit-keyframes slideouttoleft {
-    from { -webkit-transform: translate3d(0,0,0); }
-    to { -webkit-transform: translate3d(-100%,0,0); }
-}
-@-moz-keyframes slideouttoleft {
-    from { -moz-transform: translateX(0); }
-    to { -moz-transform: translateX(-100%); }
-}
-@keyframes slideouttoleft {
-    from { transform: translateX(0); }
-    to { transform: translateX(-100%); }
-}
-@-webkit-keyframes slideouttoright {
-    from { -webkit-transform: translate3d(0,0,0); }
-    to { -webkit-transform: translate3d(100%,0,0); }
-}
-@-moz-keyframes slideouttoright {
-    from { -moz-transform: translateX(0); }
-    to { -moz-transform: translateX(100%); }
-}
-@keyframes slideouttoright {
-    from { transform: translateX(0); }
-    to { transform: translateX(100%); }
-}
-.slide.out, .slide.in {
-	-webkit-animation-timing-function: ease-out;
-	-webkit-animation-duration: 350ms;
-	-moz-animation-timing-function: ease-out;
-	-moz-animation-duration: 350ms;
-	animation-timing-function: ease-out;
-	animation-duration: 350ms;
-}
-.slide.out {
-	-webkit-transform: translate3d(-100%,0,0);
-	-webkit-animation-name: slideouttoleft;
-	-moz-transform: translateX(-100%);
-	-moz-animation-name: slideouttoleft;
-	transform: translateX(-100%);
-	animation-name: slideouttoleft;
-}
-.slide.in {
-	-webkit-transform: translate3d(0,0,0);
-	-webkit-animation-name: slideinfromright;
-	-moz-transform: translateX(0);
-	-moz-animation-name: slideinfromright;
-	transform: translateX(0);
-	animation-name: slideinfromright;
-}
-.slide.out.reverse {
-	-webkit-transform: translate3d(100%,0,0);
-	-webkit-animation-name: slideouttoright;
-	-moz-transform: translateX(100%);
-	-moz-animation-name: slideouttoright;
-	transform: translateX(100%);
-	animation-name: slideouttoright;
-}
-.slide.in.reverse {
-	-webkit-transform: translate3d(0,0,0);
-	-webkit-animation-name: slideinfromleft;
-	-moz-transform: translateX(0);
-	-moz-animation-name: slideinfromleft;
-	transform: translateX(0);
-	animation-name: slideinfromleft;
-}
-.slidefade.out {
-	-webkit-transform: translateX(-100%);
-	-webkit-animation-name: slideouttoleft;
-	-webkit-animation-duration: 225ms;
-	-moz-transform: translateX(-100%);
-	-moz-animation-name: slideouttoleft;
-	-moz-animation-duration: 225ms;
-	transform: translateX(-100%);
-	animation-name: slideouttoleft;
-	animation-duration: 225ms;
-}
-.slidefade.in {
-	-webkit-transform: translateX(0);
-	-webkit-animation-name: fadein;
-	-webkit-animation-duration: 200ms;
-	-moz-transform: translateX(0);
-	-moz-animation-name: fadein;
-	-moz-animation-duration: 200ms;
-	transform: translateX(0);
-	animation-name: fadein;
-	animation-duration: 200ms;
-}
-.slidefade.out.reverse {
-	-webkit-transform: translateX(100%);
-	-webkit-animation-name: slideouttoright;
-	-webkit-animation-duration: 200ms;
-	-moz-transform: translateX(100%);
-	-moz-animation-name: slideouttoright;
-	-moz-animation-duration: 200ms;
-	transform: translateX(100%);
-	animation-name: slideouttoright;
-	animation-duration: 200ms;
-}
-.slidefade.in.reverse {
-	-webkit-transform: translateX(0);
-	-webkit-animation-name: fadein;
-	-webkit-animation-duration: 200ms;
-	-moz-transform: translateX(0);
-	-moz-animation-name: fadein;
-	-moz-animation-duration: 200ms;
-	transform: translateX(0);
-	animation-name: fadein;
-	animation-duration: 200ms;
-}
-/* slide down */
-.slidedown.out {
-	-webkit-animation-name: fadeout;
-	-webkit-animation-duration: 100ms;
-	-moz-animation-name: fadeout;
-	-moz-animation-duration: 100ms;
-	animation-name: fadeout;
-	animation-duration: 100ms;
-}
-.slidedown.in {
-	-webkit-transform: translateY(0);
-	-webkit-animation-name: slideinfromtop;
-	-webkit-animation-duration: 250ms;
-	-moz-transform: translateY(0);
-	-moz-animation-name: slideinfromtop;
-	-moz-animation-duration: 250ms;
-	transform: translateY(0);
-	animation-name: slideinfromtop;
-	animation-duration: 250ms;
-}
-.slidedown.in.reverse {
-	-webkit-animation-name: fadein;
-	-webkit-animation-duration: 150ms;
-	-moz-animation-name: fadein;
-	-moz-animation-duration: 150ms;
-	animation-name: fadein;
-	animation-duration: 150ms;
-}
-.slidedown.out.reverse {
-	-webkit-transform: translateY(-100%);
-	-webkit-animation-name: slideouttotop;
-	-webkit-animation-duration: 200ms;
-	-moz-transform: translateY(-100%);
-	-moz-animation-name: slideouttotop;
-	-moz-animation-duration: 200ms;
-	transform: translateY(-100%);
-	animation-name: slideouttotop;
-	animation-duration: 200ms;
-}
-@-webkit-keyframes slideinfromtop {
-    from { -webkit-transform: translateY(-100%); }
-    to { -webkit-transform: translateY(0); }
-}
-@-moz-keyframes slideinfromtop {
-    from { -moz-transform: translateY(-100%); }
-    to { -moz-transform: translateY(0); }
-}
-@keyframes slideinfromtop {
-    from { transform: translateY(-100%); }
-    to { transform: translateY(0); }
-}
-@-webkit-keyframes slideouttotop {
-    from { -webkit-transform: translateY(0); }
-    to { -webkit-transform: translateY(-100%); }
-}
-@-moz-keyframes slideouttotop {
-    from { -moz-transform: translateY(0); }
-    to { -moz-transform: translateY(-100%); }
-}
-@keyframes slideouttotop {
-    from { transform: translateY(0); }
-    to { transform: translateY(-100%); }
-}
-/* slide up */
-.slideup.out {
-	-webkit-animation-name: fadeout;
-	-webkit-animation-duration: 100ms;
-	-moz-animation-name: fadeout;
-	-moz-animation-duration: 100ms;
-	animation-name: fadeout;
-	animation-duration: 100ms;
-}
-.slideup.in {
-	-webkit-transform: translateY(0);
-	-webkit-animation-name: slideinfrombottom;
-	-webkit-animation-duration: 250ms;
-	-moz-transform: translateY(0);
-	-moz-animation-name: slideinfrombottom;
-	-moz-animation-duration: 250ms;
-	transform: translateY(0);
-	animation-name: slideinfrombottom;
-	animation-duration: 250ms;
-}
-.slideup.in.reverse {
-	-webkit-animation-name: fadein;
-	-webkit-animation-duration: 150ms;
-	-moz-animation-name: fadein;
-	-moz-animation-duration: 150ms;
-	animation-name: fadein;
-	animation-duration: 150ms;
-}
-.slideup.out.reverse {
-	-webkit-transform: translateY(100%);
-	-webkit-animation-name: slideouttobottom;
-	-webkit-animation-duration: 200ms;
-	-moz-transform: translateY(100%);
-	-moz-animation-name: slideouttobottom;
-	-moz-animation-duration: 200ms;
-	transform: translateY(100%);
-	animation-name: slideouttobottom;
-	animation-duration: 200ms;
-}
-@-webkit-keyframes slideinfrombottom {
-    from { -webkit-transform: translateY(100%); }
-    to { -webkit-transform: translateY(0); }
-}
-@-moz-keyframes slideinfrombottom {
-    from { -moz-transform: translateY(100%); }
-    to { -moz-transform: translateY(0); }
-}
-@keyframes slideinfrombottom {
-    from { transform: translateY(100%); }
-    to { transform: translateY(0); }
-}
-@-webkit-keyframes slideouttobottom {
-    from { -webkit-transform: translateY(0); }
-    to { -webkit-transform: translateY(100%); }
-}
-@-moz-keyframes slideouttobottom {
-    from { -moz-transform: translateY(0); }
-    to { -moz-transform: translateY(100%); }
-}
-@keyframes slideouttobottom {
-    from { transform: translateY(0); }
-    to { transform: translateY(100%); }
-}
-/* The properties in this rule are only necessary for the 'flip' transition.
- * We need specify the perspective to create a projection matrix. This will add
- * some depth as the element flips. The depth number represents the distance of
- * the viewer from the z-plane. According to the CSS3 spec, 1000 is a moderate
- * value.
- */
-.viewport-flip {
-	-webkit-perspective: 1000;
-	-moz-perspective: 1000;
-	perspective: 1000;
-	position: absolute;
-}
-.flip {
-	-webkit-backface-visibility: hidden;
-	-webkit-transform: translateX(0); /* Needed to work around an iOS 3.1 bug that causes listview thumbs to disappear when -webkit-visibility:hidden is used. */
-	-moz-backface-visibility: hidden;
-	-moz-transform: translateX(0);
-	backface-visibility: hidden;
-	transform: translateX(0);
-}
-.flip.out {
-	-webkit-transform: rotateY(-90deg) scale(.9);
-	-webkit-animation-name: flipouttoleft;
-	-webkit-animation-duration: 175ms;
-	-moz-transform: rotateY(-90deg) scale(.9);
-	-moz-animation-name: flipouttoleft;
-	-moz-animation-duration: 175ms;
-	transform: rotateY(-90deg) scale(.9);
-	animation-name: flipouttoleft;
-	animation-duration: 175ms;
-}
-.flip.in {
-	-webkit-animation-name: flipintoright;
-	-webkit-animation-duration: 225ms;
-	-moz-animation-name: flipintoright;
-	-moz-animation-duration: 225ms;
-	animation-name: flipintoright;
-	animation-duration: 225ms;
-}
-.flip.out.reverse {
-	-webkit-transform: rotateY(90deg) scale(.9);
-	-webkit-animation-name: flipouttoright;
-	-moz-transform: rotateY(90deg) scale(.9);
-	-moz-animation-name: flipouttoright;
-	transform: rotateY(90deg) scale(.9);
-	animation-name: flipouttoright;
-}
-.flip.in.reverse {
-	-webkit-animation-name: flipintoleft;
-	-moz-animation-name: flipintoleft;
-	animation-name: flipintoleft;
-}
-@-webkit-keyframes flipouttoleft {
-    from { -webkit-transform: rotateY(0); }
-    to { -webkit-transform: rotateY(-90deg) scale(.9); }
-}
-@-moz-keyframes flipouttoleft {
-    from { -moz-transform: rotateY(0); }
-    to { -moz-transform: rotateY(-90deg) scale(.9); }
-}
-@keyframes flipouttoleft {
-    from { transform: rotateY(0); }
-    to { transform: rotateY(-90deg) scale(.9); }
-}
-@-webkit-keyframes flipouttoright {
-    from { -webkit-transform: rotateY(0) ; }
-    to { -webkit-transform: rotateY(90deg) scale(.9); }
-}
-@-moz-keyframes flipouttoright {
-    from { -moz-transform: rotateY(0); }
-    to { -moz-transform: rotateY(90deg) scale(.9); }
-}
-@keyframes flipouttoright {
-    from { transform: rotateY(0); }
-    to { transform: rotateY(90deg) scale(.9); }
-}
-@-webkit-keyframes flipintoleft {
-    from { -webkit-transform: rotateY(-90deg) scale(.9); }
-    to { -webkit-transform: rotateY(0); }
-}
-@-moz-keyframes flipintoleft {
-    from { -moz-transform: rotateY(-90deg) scale(.9); }
-    to { -moz-transform: rotateY(0); }
-}
-@keyframes flipintoleft {
-    from { transform: rotateY(-90deg) scale(.9); }
-    to { transform: rotateY(0); }
-}
-@-webkit-keyframes flipintoright {
-    from { -webkit-transform: rotateY(90deg) scale(.9); }
-    to { -webkit-transform: rotateY(0); }
-}
-@-moz-keyframes flipintoright {
-    from { -moz-transform: rotateY(90deg) scale(.9); }
-    to { -moz-transform: rotateY(0); }
-}
-@keyframes flipintoright {
-    from { transform: rotateY(90deg) scale(.9); }
-    to { transform: rotateY(0); }
-}
-/* The properties in this rule are only necessary for the 'flip' transition.
- * We need specify the perspective to create a projection matrix. This will add
- * some depth as the element flips. The depth number represents the distance of
- * the viewer from the z-plane. According to the CSS3 spec, 1000 is a moderate
- * value.
- */
-.viewport-turn {
-	-webkit-perspective: 200px;
-	-moz-perspective: 200px;
-	-ms-perspective: 200px;
-	perspective: 200px;
-	position: absolute;
-}
-.turn {
-	-webkit-backface-visibility: hidden;
-	-webkit-transform: translateX(0); /* Needed to work around an iOS 3.1 bug that causes listview thumbs to disappear when -webkit-visibility:hidden is used. */
-	-webkit-transform-origin: 0;
-	
-	-moz-backface-visibility: hidden;
-	-moz-transform: translateX(0);
-	-moz-transform-origin: 0;
-	
-	backface-visibility :hidden;
-	transform: translateX(0);
-	transform-origin: 0;
-}
-.turn.out {
-	-webkit-transform: rotateY(-90deg) scale(.9);
-	-webkit-animation-name: flipouttoleft;
-	-webkit-animation-duration: 125ms;
-	-moz-transform: rotateY(-90deg) scale(.9);
-	-moz-animation-name: flipouttoleft;
-	-moz-animation-duration: 125ms;
-	transform: rotateY(-90deg) scale(.9);
-	animation-name: flipouttoleft;
-	animation-duration: 125ms;
-}
-.turn.in {
-	-webkit-animation-name: flipintoright;
-	-webkit-animation-duration: 250ms;
-	-moz-animation-name: flipintoright;
-	-moz-animation-duration: 250ms;
-	animation-name: flipintoright;
-	animation-duration: 250ms;
-	
-}
-.turn.out.reverse {
-	-webkit-transform: rotateY(90deg) scale(.9);
-	-webkit-animation-name: flipouttoright;
-	-moz-transform: rotateY(90deg) scale(.9);
-	-moz-animation-name: flipouttoright;
-	transform: rotateY(90deg) scale(.9);
-	animation-name: flipouttoright;
-}
-.turn.in.reverse {
-	-webkit-animation-name: flipintoleft;
-	-moz-animation-name: flipintoleft;
-	animation-name: flipintoleft;
-}
-@-webkit-keyframes flipouttoleft {
-    from { -webkit-transform: rotateY(0); }
-    to { -webkit-transform: rotateY(-90deg) scale(.9); }
-}
-@-moz-keyframes flipouttoleft {
-    from { -moz-transform: rotateY(0); }
-    to { -moz-transform: rotateY(-90deg) scale(.9); }
-}
-@keyframes flipouttoleft {
-    from { transform: rotateY(0); }
-    to { transform: rotateY(-90deg) scale(.9); }
-}
-@-webkit-keyframes flipouttoright {
-    from { -webkit-transform: rotateY(0) ; }
-    to { -webkit-transform: rotateY(90deg) scale(.9); }
-}
-@-moz-keyframes flipouttoright {
-    from { -moz-transform: rotateY(0); }
-    to { -moz-transform: rotateY(90deg) scale(.9); }
-}
-@keyframes flipouttoright {
-    from { transform: rotateY(0); }
-    to { transform: rotateY(90deg) scale(.9); }
-}
-@-webkit-keyframes flipintoleft {
-    from { -webkit-transform: rotateY(-90deg) scale(.9); }
-    to { -webkit-transform: rotateY(0); }
-}
-@-moz-keyframes flipintoleft {
-    from { -moz-transform: rotateY(-90deg) scale(.9); }
-    to { -moz-transform: rotateY(0); }
-}
-@keyframes flipintoleft {
-    from { transform: rotateY(-90deg) scale(.9); }
-    to { transform: rotateY(0); }
-}
-@-webkit-keyframes flipintoright {
-    from { -webkit-transform: rotateY(90deg) scale(.9); }
-    to { -webkit-transform: rotateY(0); }
-}
-@-moz-keyframes flipintoright {
-    from { -moz-transform: rotateY(90deg) scale(.9); }
-    to { -moz-transform: rotateY(0); }
-}
-@keyframes flipintoright {
-    from { transform: rotateY(90deg) scale(.9); }
-    to { transform: rotateY(0); }
-}
-/* flow transition */
-.flow {
-	-webkit-transform-origin: 50% 30%;
-	-webkit-box-shadow: 0 0 20px rgba(0,0,0,.4);
-	-moz-transform-origin: 50% 30%;	
-	-moz-box-shadow: 0 0 20px rgba(0,0,0,.4);
-	transform-origin: 50% 30%;	
-	box-shadow: 0 0 20px rgba(0,0,0,.4);
-}
-.ui-dialog.flow {
-	-webkit-transform-origin: none;
-	-webkit-box-shadow: none;
-	-moz-transform-origin: none;	
-	-moz-box-shadow: none;
-	transform-origin: none;	
-	box-shadow: none;
-}
-.flow.out {
-	-webkit-transform: translateX(-100%) scale(.7);
-	-webkit-animation-name: flowouttoleft;
-	-webkit-animation-timing-function: ease;
-	-webkit-animation-duration: 350ms;
-	-moz-transform: translateX(-100%) scale(.7);
-	-moz-animation-name: flowouttoleft;
-	-moz-animation-timing-function: ease;
-	-moz-animation-duration: 350ms;
-	transform: translateX(-100%) scale(.7);
-	animation-name: flowouttoleft;
-	animation-timing-function: ease;
-	animation-duration: 350ms;
-}
-.flow.in {
-	-webkit-transform: translateX(0) scale(1);
-	-webkit-animation-name: flowinfromright;
-	-webkit-animation-timing-function: ease;
-	-webkit-animation-duration: 350ms;
-	-moz-transform: translateX(0) scale(1);
-	-moz-animation-name: flowinfromright;
-	-moz-animation-timing-function: ease;
-	-moz-animation-duration: 350ms;
-	transform: translateX(0) scale(1);
-	animation-name: flowinfromright;
-	animation-timing-function: ease;
-	animation-duration: 350ms;
-}
-.flow.out.reverse {
-	-webkit-transform: translateX(100%);
-	-webkit-animation-name: flowouttoright;
-	-moz-transform: translateX(100%);
-	-moz-animation-name: flowouttoright;
-	transform: translateX(100%);
-	animation-name: flowouttoright;
-}
-.flow.in.reverse {
-	-webkit-animation-name: flowinfromleft;
-	-moz-animation-name: flowinfromleft;
-	animation-name: flowinfromleft;
-}
-@-webkit-keyframes flowouttoleft {
-    0% { -webkit-transform: translateX(0) scale(1); }
-	60%, 70% { -webkit-transform: translateX(0) scale(.7); }
-    100% { -webkit-transform: translateX(-100%) scale(.7); }
-}
-@-moz-keyframes flowouttoleft {
-    0% { -moz-transform: translateX(0) scale(1); }
-	60%, 70% { -moz-transform: translateX(0) scale(.7); }
-    100% { -moz-transform:  translateX(-100%) scale(.7); }
-}
-@keyframes flowouttoleft {
-    0% { transform: translateX(0) scale(1); }
-	60%, 70% { transform: translateX(0) scale(.7); }
-    100% { transform:  translateX(-100%) scale(.7); }
-}
-@-webkit-keyframes flowouttoright {
-    0% { -webkit-transform: translateX(0) scale(1); }
-	60%, 70% { -webkit-transform: translateX(0) scale(.7); }
-    100% { -webkit-transform:  translateX(100%) scale(.7); }
-}
-@-moz-keyframes flowouttoright {
-    0% { -moz-transform: translateX(0) scale(1); }
-	60%, 70% { -moz-transform: translateX(0) scale(.7); }
-    100% { -moz-transform:  translateX(100%) scale(.7); }
-}
-@keyframes flowouttoright {
-    0% { transform: translateX(0) scale(1); }
-	60%, 70% { transform: translateX(0) scale(.7); }
-    100% { transform:  translateX(100%) scale(.7); }
-}
-@-webkit-keyframes flowinfromleft {
-    0% { -webkit-transform: translateX(-100%) scale(.7); }
-	30%, 40% { -webkit-transform: translateX(0) scale(.7); }
-    100% { -webkit-transform: translateX(0) scale(1); }
-}
-@-moz-keyframes flowinfromleft {
-    0% { -moz-transform: translateX(-100%) scale(.7); }
-	30%, 40% { -moz-transform: translateX(0) scale(.7); }
-    100% { -moz-transform: translateX(0) scale(1); }
-}
-@keyframes flowinfromleft {
-    0% { transform: translateX(-100%) scale(.7); }
-	30%, 40% { transform: translateX(0) scale(.7); }
-    100% { transform: translateX(0) scale(1); }
-}
-@-webkit-keyframes flowinfromright {
-    0% { -webkit-transform: translateX(100%) scale(.7); }
-	30%, 40% { -webkit-transform: translateX(0) scale(.7); }
-    100% { -webkit-transform: translateX(0) scale(1); }
-}
-@-moz-keyframes flowinfromright {
-    0% { -moz-transform: translateX(100%) scale(.7); }
-	30%, 40% { -moz-transform: translateX(0) scale(.7); }
-    100% { -moz-transform: translateX(0) scale(1); }
-}
-@keyframes flowinfromright {
-    0% { transform: translateX(100%) scale(.7); }
-	30%, 40% { transform: translateX(0) scale(.7); }
-    100% { transform: translateX(0) scale(1); }
-}
-.ui-field-contain,
-.ui-mobile fieldset.ui-field-contain {
-	display: block;
-	position: relative;
-	overflow: visible;
-	clear: both;
-	padding: .8em 0;
-}
-.ui-field-contain > label ~ [class*="ui-"],
-.ui-field-contain .ui-controlgroup-controls {
-	margin: 0;
-}
-.ui-field-contain:last-child {
-	border-bottom-width: 0;
-}
-@media (min-width: 28em) {
-	.ui-field-contain,
-	.ui-mobile fieldset.ui-field-contain {
-		padding: 0;
-		margin: 1em 0;
-		border-bottom-width: 0;
-	}
-	.ui-field-contain:before,
-	.ui-field-contain:after {
-		content: "";
-		display: table;
-	}
-	.ui-field-contain:after {
-		clear: both;
-	}
-	.ui-field-contain > label,
-	.ui-field-contain .ui-controlgroup-label,
-	.ui-field-contain > .ui-rangeslider > label {
-		float: left;
-		width: 20%;
-		margin: .5em 2% 0 0;
-	}
-	.ui-popup .ui-field-contain > label,
-	.ui-popup .ui-field-contain .ui-controlgroup-label,
-	.ui-popup .ui-field-contain > .ui-rangeslider > label {
-		float: none;
-		width: auto;
-		margin: 0 0 .4em;
-	}
-	.ui-field-contain > label ~ [class*="ui-"],
-	.ui-field-contain .ui-controlgroup-controls {
-		float: left;
-		width: 78%;
-		-webkit-box-sizing: border-box;
-		-moz-box-sizing: border-box;
-		box-sizing: border-box;
-	}
-	/* ui-hide-label deprecated in 1.4. TODO: Remove in 1.5 */
-	.ui-hide-label > label ~ [class*="ui-"],
-	.ui-hide-label .ui-controlgroup-controls,
-	.ui-popup .ui-field-contain > label ~ [class*="ui-"],
-	.ui-popup .ui-field-contain .ui-controlgroup-controls {
-		float: none;
-		width: 100%;
-	}
-	.ui-field-contain > label ~ .ui-btn-inline {
-		width: auto;
-		margin-right: .625em;
-	}
-	.ui-field-contain > label ~ .ui-btn-inline.ui-btn-icon-notext {
-		width: 1.75em;
-	}
-}
-/* content configurations. */
-.ui-grid-a,
-.ui-grid-b,
-.ui-grid-c,
-.ui-grid-d,
-.ui-grid-solo {
-	overflow: hidden;
-}
-.ui-block-a,
-.ui-block-b,
-.ui-block-c,
-.ui-block-d,
-.ui-block-e {
-	margin: 0;
-	padding: 0;
-	border: 0;
-	float: left;
-	min-height: 1px;
-	-webkit-box-sizing: border-box;
-	-moz-box-sizing: border-box;
-	box-sizing: border-box;
-}
-/* force new row */
-.ui-block-a {
-	clear: left;
-}
-ul.ui-grid-a,
-ul.ui-grid-b,
-ul.ui-grid-c,
-ul.ui-grid-d,
-ul.ui-grid-solo,
-li.ui-block-a,
-li.ui-block-b,
-li.ui-block-c,
-li.ui-block-d,
-li.ui-block-e {
-	margin-left: 0;
-	margin-right: 0;
-	padding: 0;
-	list-style: none;
-}
-/* No margin in grids for 100% width button elements until we can use max-width: fill-available; */
-[class*="ui-block-"] > button.ui-btn {
-	margin-right: 0;
-	margin-left: 0;
-}
-[class*="ui-block-"] > .ui-btn,
-[class*="ui-block-"] > .ui-select,
-[class*="ui-block-"] > .ui-checkbox,
-[class*="ui-block-"] > .ui-radio,
-[class*="ui-block-"] > button.ui-btn-inline,
-[class*="ui-block-"] > button.ui-btn-icon-notext,
-.ui-header [class*="ui-block-"] > button.ui-btn,
-.ui-footer [class*="ui-block-"] > button.ui-btn {
-	margin-right: .3125em;
-	margin-left: .3125em;
-}
-.ui-grid-a > .ui-block-a,
-.ui-grid-a > .ui-block-b {
-	/* width: 49.95%; IE7 */
-	/* margin-right: -.5px; BB5 */
-	width: 50%;
-}
-.ui-grid-b > .ui-block-a,
-.ui-grid-b > .ui-block-b,
-.ui-grid-b > .ui-block-c {
-	/* width: 33.25%; IE7 */
-	/* margin-right: -.5px; BB5 */
-	width: 33.333%;
-}
-.ui-grid-c > .ui-block-a,
-.ui-grid-c > .ui-block-b,
-.ui-grid-c > .ui-block-c,
-.ui-grid-c > .ui-block-d {
-	/* width: 24.925%; IE7 */
-	/* margin-right: -.5px; BB5 */
-	width: 25%;
-}
-.ui-grid-d > .ui-block-a,
-.ui-grid-d > .ui-block-b,
-.ui-grid-d > .ui-block-c,
-.ui-grid-d > .ui-block-d,
-.ui-grid-d > .ui-block-e {
-	/* width: 19.925%; IE7 */
-	width: 20%;
-}
-.ui-grid-solo > .ui-block-a {
-	width: 100%;
-	float: none; 
-}
-/* preset breakpoint to switch to stacked grid styles below 35em (560px) */
-@media (max-width: 35em) {
-	.ui-responsive > .ui-block-a,
-	.ui-responsive > .ui-block-b,
-	.ui-responsive > .ui-block-c,
-	.ui-responsive > .ui-block-d,
-	.ui-responsive > .ui-block-e {
-		width: 100%; 
-		float: none; 
-	}
-}
-/* fixed page header & footer configuration */
-.ui-header-fixed,
-.ui-footer-fixed {
-	left: 0;
-	right: 0;
-	width: 100%;
-	position: fixed;
-	z-index: 1000;
-}
-.ui-header-fixed {
-	top: -1px;
-	padding-top: 1px;
-}
-.ui-header-fixed.ui-fixed-hidden {
-	top: 0;
-	padding-top: 0;
-}
-.ui-header-fixed .ui-btn-left,
-.ui-header-fixed .ui-btn-right {
-	margin-top: 1px;
-}
-.ui-header-fixed.ui-fixed-hidden .ui-btn-left,
-.ui-header-fixed.ui-fixed-hidden .ui-btn-right {
-	margin-top: 0;
-}
-.ui-footer-fixed {
-	bottom: -1px;
-	padding-bottom: 1px;
-}
-.ui-footer-fixed.ui-fixed-hidden {
-	bottom: 0;
-	padding-bottom: 0;
-}
-.ui-header-fullscreen,
-.ui-footer-fullscreen {
-	filter: Alpha(Opacity=90);
-	opacity: .9;
-}
-/* updatePagePadding() will update the padding to actual height of header and footer. */
-.ui-page-header-fixed {
-	padding-top: 2.8125em;
-}
-.ui-page-footer-fixed {
-	padding-bottom: 2.8125em;
-}
-.ui-page-header-fullscreen > .ui-content,
-.ui-page-footer-fullscreen > .ui-content {
-	padding: 0;
-}
-.ui-fixed-hidden {
-	position: absolute;
-}
-/* Tap toggle: hide external fixed footer. See issue #6604 */
-.ui-footer-fixed.ui-fixed-hidden {
-  display: none;
-}
-.ui-page .ui-footer-fixed.ui-fixed-hidden {
-  display: block
-}
-.ui-page-header-fullscreen .ui-fixed-hidden,
-.ui-page-footer-fullscreen .ui-fixed-hidden {
-	position: absolute !important;
-	height: 1px;
-	width: 1px;
-	overflow: hidden;
-	clip: rect(1px,1px,1px,1px);
-}
-.ui-header-fixed .ui-btn,
-.ui-footer-fixed .ui-btn { 
-	z-index: 10;
-}
-/* workarounds for other widgets */
-.ui-android-2x-fixed .ui-li-has-thumb {
-	-webkit-transform: translate3d(0,0,0);
-}
-.ui-navbar {
-	max-width: 100%;
-}
-.ui-navbar ul:before,
-.ui-navbar ul:after {
-	content: "";
-	display: table;
-}
-.ui-navbar ul:after {
-	clear: both;
-}
-.ui-navbar ul {
-	list-style: none;
-	margin: 0;
-	padding: 0;
-	position: relative;
-	display: block;
-	border: 0;
-	max-width: 100%;
-	overflow: visible;
-}
-.ui-navbar li .ui-btn {
-	font-size: 12.5px;
-	display: block;
-	margin: 0;
-	border-right-width: 0;
-}
-.ui-header .ui-navbar li button.ui-btn,
-.ui-footer .ui-navbar li button.ui-btn {
-	margin: 0;
-	width: 100%;
-}
-.ui-navbar .ui-btn:focus {
-	z-index: 1;
-}
-/* fixes gaps caused by subpixel problem */
-.ui-navbar li:last-child .ui-btn {
-	margin-right: -4px;
-}
-.ui-navbar li:last-child .ui-btn:after {
-	margin-right: 4px;
-}
-.ui-content .ui-navbar li:last-child .ui-btn,
-.ui-content .ui-navbar .ui-grid-duo .ui-block-b .ui-btn {
-	border-right-width: 1px;
-	margin-right: 0;
-}
-.ui-content .ui-navbar li:last-child .ui-btn:after,
-.ui-content .ui-navbar .ui-grid-duo .ui-block-b .ui-btn:after {
-	margin-right: 0;
-}
-.ui-navbar .ui-grid-duo .ui-block-a:last-child .ui-btn {
-	border-right-width: 1px;
-	margin-right: -1px;
-}
-.ui-navbar .ui-grid-duo .ui-block-a:last-child .ui-btn:after {
-	margin-right: 1px;
-}
-.ui-navbar .ui-grid-duo .ui-btn {
-	border-top-width: 0;
-}
-.ui-navbar .ui-grid-duo .ui-block-a:first-child .ui-btn,
-.ui-navbar .ui-grid-duo .ui-block-a:first-child + .ui-block-b .ui-btn {
-	border-top-width: 1px;
-}
-.ui-header .ui-navbar .ui-btn,
-.ui-footer .ui-navbar .ui-btn {
-	border-top-width: 0;
-	border-bottom-width: 0;
-}
-.ui-header .ui-navbar .ui-grid-duo .ui-block-a:first-child .ui-btn,
-.ui-footer .ui-navbar .ui-grid-duo .ui-block-a:first-child .ui-btn,
-.ui-header .ui-navbar .ui-grid-duo .ui-block-a:first-child + .ui-block-b .ui-btn,
-.ui-footer .ui-navbar .ui-grid-duo .ui-block-a:first-child + .ui-block-b .ui-btn {
-	border-top-width: 0;
-}
-.ui-header .ui-title ~ .ui-navbar .ui-btn,
-.ui-footer .ui-title ~ .ui-navbar .ui-btn,
-.ui-header .ui-navbar .ui-grid-duo .ui-btn,
-.ui-footer .ui-navbar .ui-grid-duo .ui-btn,
-.ui-header .ui-title ~ .ui-navbar .ui-grid-duo .ui-block-a:first-child .ui-btn,
-.ui-footer .ui-title ~ .ui-navbar .ui-grid-duo .ui-block-a:first-child .ui-btn,
-.ui-header .ui-title ~ .ui-navbar .ui-grid-duo .ui-block-a:first-child + .ui-block-b .ui-btn,
-.ui-footer .ui-title ~ .ui-navbar .ui-grid-duo .ui-block-a:first-child + .ui-block-b .ui-btn {
-	border-top-width: 1px;
-}
-/* Hide the native input element */
-.ui-input-btn input {
-	position: absolute;
-	top: 0;
-	left: 0;
-	width: 100%;
-	height: 100%;
-	padding: 0;
-	border: 0;
-	outline: 0;
-	-webkit-border-radius: inherit;
-	border-radius: inherit;	
-	-webkit-appearance: none;
-	-moz-appearance: none;
-	cursor: pointer;
-	background: #fff;
-	background: rgba(255,255,255,0);
-	filter: Alpha(Opacity=0);
-	opacity: .1;
-	font-size: 1px;
-	text-indent: -9999px;
-	z-index: 2;
-}
-/* Fixes IE/WP filter alpha opacity bugs */
-.ui-input-btn.ui-state-disabled input {
-	position: absolute !important;
-	height: 1px;
-	width: 1px;
-	overflow: hidden;
-	clip: rect(1px,1px,1px,1px);
-}
-.ui-collapsible {
-	margin: 0 -1em;
-}
-.ui-collapsible-inset,
-.ui-collapsible-set {
-	margin: .5em 0;
-}
-.ui-collapsible-heading {
-	display: block;
-	margin: 0;
-	padding: 0;
-	position: relative;
-}
-.ui-collapsible-heading .ui-btn {
-	text-align: left;
-	margin: 0;
-	border-left-width: 0;
-	border-right-width: 0;
-}
-.ui-collapsible-heading .ui-btn-icon-top,
-.ui-collapsible-heading .ui-btn-icon-bottom {
-	text-align: center;
-}
-.ui-collapsible-inset .ui-collapsible-heading .ui-btn {
-	border-right-width: 1px;
-	border-left-width: 1px;
-}
-.ui-collapsible-collapsed + .ui-collapsible:not(.ui-collapsible-inset) > .ui-collapsible-heading .ui-btn {
-	border-top-width: 0;
-}
-.ui-collapsible-set .ui-collapsible:not(.ui-collapsible-inset) .ui-collapsible-heading .ui-btn {
-	border-top-width: 1px;
-}
-.ui-collapsible-heading-status {
-	position: absolute !important;
-	height: 1px;
-	width: 1px;
-	overflow: hidden;
-	clip: rect(1px,1px,1px,1px);
-}
-.ui-collapsible-content {
-	display: block;
-	margin: 0;	
-	padding: .5em 1em;
-}
-.ui-collapsible-themed-content .ui-collapsible-content {
-	border-left-width: 0;
-	border-right-width: 0;
-	border-top-width: 0;
-	border-bottom-width: 1px;
-	border-style: solid;
-}
-.ui-collapsible-inset.ui-collapsible-themed-content .ui-collapsible-content {
-	border-left-width: 1px;
-	border-right-width: 1px;
-}
-.ui-collapsible-inset .ui-collapsible-content {
-	margin: 0;
-}
-.ui-collapsible-content-collapsed {
-	display: none;
-}
-.ui-collapsible-set > .ui-collapsible.ui-corner-all {
-	-webkit-border-radius: 0;
-	border-radius: 0;
-}
-.ui-collapsible-heading,
-.ui-collapsible-heading > .ui-btn {
-	-webkit-border-radius: inherit;	
-	border-radius: inherit;	
-}
-.ui-collapsible-set .ui-collapsible.ui-first-child {
-	-webkit-border-top-right-radius: inherit;	
-	border-top-right-radius: inherit;
-	-webkit-border-top-left-radius: inherit;	
-	border-top-left-radius: inherit;		
-}
-.ui-collapsible-content,
-.ui-collapsible-set .ui-collapsible.ui-last-child {
-	-webkit-border-bottom-right-radius: inherit;	
-	border-bottom-right-radius: inherit;
-	-webkit-border-bottom-left-radius: inherit;	
-	border-bottom-left-radius: inherit;		
-}
-.ui-collapsible-themed-content:not(.ui-collapsible-collapsed) > .ui-collapsible-heading {
-	-webkit-border-bottom-right-radius: 0;	
-	border-bottom-right-radius: 0;
-	-webkit-border-bottom-left-radius: 0;	
-	border-bottom-left-radius: 0;		
-}
-.ui-collapsible-set .ui-collapsible {
-	margin: -1px -1em 0;
-}
-.ui-collapsible-set .ui-collapsible-inset {
-	margin: -1px 0 0;
-}
-.ui-collapsible-set .ui-collapsible.ui-first-child {
-	margin-top: 0;
-}
-.ui-controlgroup,
-fieldset.ui-controlgroup {
-	padding: 0;
-	margin: .5em 0;
-}
-.ui-field-contain .ui-controlgroup,
-.ui-field-contain fieldset.ui-controlgroup {
-	margin: 0;
-}
-.ui-mini .ui-controlgroup-label {
-	font-size: 16px;
-}
-.ui-controlgroup.ui-mini .ui-btn-icon-notext,
-.ui-controlgroup .ui-mini.ui-btn-icon-notext {
-	font-size: inherit;
-}
-.ui-controlgroup-controls .ui-btn,
-.ui-controlgroup-controls .ui-checkbox,
-.ui-controlgroup-controls .ui-radio,
-.ui-controlgroup-controls .ui-select {
-	margin: 0;
-}
-.ui-controlgroup-controls .ui-btn:focus,
-.ui-controlgroup-controls .ui-btn.ui-focus {
-	z-index: 1;
-}
-.ui-controlgroup-controls li {
-	list-style: none;
-}
-.ui-controlgroup-horizontal .ui-controlgroup-controls {
-	display: inline-block;
-	vertical-align: middle;
-}
-.ui-controlgroup-horizontal .ui-controlgroup-controls:before,
-.ui-controlgroup-horizontal .ui-controlgroup-controls:after {
-	content: "";
-	display: table;
-}
-.ui-controlgroup-horizontal .ui-controlgroup-controls:after {
-	clear: both;
-}
-.ui-controlgroup-horizontal .ui-controlgroup-controls > .ui-btn,
-.ui-controlgroup-horizontal .ui-controlgroup-controls li > .ui-btn,
-.ui-controlgroup-horizontal .ui-controlgroup-controls .ui-checkbox,
-.ui-controlgroup-horizontal .ui-controlgroup-controls .ui-radio,
-.ui-controlgroup-horizontal .ui-controlgroup-controls .ui-select {
-	float: left;
-	clear: none;
-}
-.ui-controlgroup-horizontal .ui-controlgroup-controls button.ui-btn,
-.ui-controlgroup-controls .ui-btn-icon-notext {
-	width: auto;
-}
-.ui-controlgroup-horizontal .ui-controlgroup-controls .ui-btn-icon-notext,
-.ui-controlgroup-horizontal .ui-controlgroup-controls button.ui-btn-icon-notext {
-	width: 1.5em;
-}
- .ui-controlgroup-controls .ui-btn-icon-notext {
-	height: auto;
-	padding: .7em 1em;
-}
-.ui-controlgroup-vertical .ui-controlgroup-controls .ui-btn {
-	border-bottom-width: 0;
-}
-.ui-controlgroup-vertical .ui-controlgroup-controls .ui-btn.ui-last-child {
-	border-bottom-width: 1px;
-}
-.ui-controlgroup-horizontal .ui-controlgroup-controls .ui-btn {
-	border-right-width: 0;
-}
-.ui-controlgroup-horizontal .ui-controlgroup-controls .ui-btn.ui-last-child {
-	border-right-width: 1px;
-}
-.ui-controlgroup-controls .ui-btn-corner-all,
-.ui-controlgroup-controls .ui-btn.ui-corner-all {
-	-webkit-border-radius: 0;
-	border-radius: 0;
-}
-.ui-controlgroup-controls,
-.ui-controlgroup-controls .ui-radio,
-.ui-controlgroup-controls .ui-checkbox,
-.ui-controlgroup-controls .ui-select,
-.ui-controlgroup-controls li {
-	-webkit-border-radius: inherit;
-	border-radius: inherit;
-}
-.ui-controlgroup-vertical .ui-btn.ui-first-child {
-	-webkit-border-top-left-radius: inherit;
-	border-top-left-radius: inherit;
-	-webkit-border-top-right-radius: inherit;
-	border-top-right-radius: inherit;
-}
-.ui-controlgroup-vertical .ui-btn.ui-last-child {
-	-webkit-border-bottom-left-radius: inherit;
-	border-bottom-left-radius: inherit;
-	-webkit-border-bottom-right-radius: inherit;
-	border-bottom-right-radius: inherit;
-}
-.ui-controlgroup-horizontal .ui-btn.ui-first-child {
-	-webkit-border-top-left-radius: inherit;
-	border-top-left-radius: inherit;
-	-webkit-border-bottom-left-radius: inherit;
-	border-bottom-left-radius: inherit;
-}
-.ui-controlgroup-horizontal .ui-btn.ui-last-child {
-	-webkit-border-top-right-radius: inherit;
-	border-top-right-radius: inherit;
-	-webkit-border-bottom-right-radius: inherit;
-	border-bottom-right-radius: inherit;
-}
-.ui-controlgroup-controls a.ui-shadow:not(:focus),
-.ui-controlgroup-controls button.ui-shadow:not(:focus),
-.ui-controlgroup-controls div.ui-shadow:not(.ui-focus) {
-	-moz-box-shadow: none;
-	-webkit-box-shadow: none;
-	box-shadow: none;
-}
-/* Fixes legend not wrapping on IE10 */
-.ui-controlgroup-label legend {
-	max-width: 100%;
-}
-.ui-controlgroup-controls > label {
-	position: absolute !important;
-	height: 1px;
-	width: 1px;
-	overflow: hidden;
-	clip: rect(1px,1px,1px,1px);
-}
-.ui-dialog {
-	 background: none !important; /* this is to ensure that dialog theming does not apply (by default at least) on the page div */
-}
-.ui-dialog-contain {
-	width: 92.5%;
-	max-width: 500px;
-	margin: 10% auto 1em auto;
-	padding: 0;
-	position: relative;
-	top: -1em;
-}
-.ui-dialog-contain > .ui-header, 
-.ui-dialog-contain > .ui-content, 
-.ui-dialog-contain > .ui-footer { 
-	display: block;
-	position: relative; 
-	width: auto;
-	margin: 0;
-}
-.ui-dialog-contain > .ui-header {
-	overflow: hidden;
-	z-index: 10; 
-	padding: 0;
-	border-top-width: 0;
-}
-.ui-dialog-contain > .ui-footer {
-	z-index: 10; 
-	padding: 0 1em; 
-	border-bottom-width: 0;
-}
-.ui-popup-open .ui-header-fixed,
-.ui-popup-open .ui-footer-fixed {
-	position: absolute !important; /* See issues #4816, #4844 and #4874 and popup.js */
-}
-.ui-popup-screen {
-	background-image: url("data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="); /* Necessary to set some form of background to ensure element is clickable in IE6/7. While legacy IE won't understand the data-URI'd image, it ensures no additional requests occur in all other browsers with little overhead. */
-	top: 0;
-	left: 0;
-	right: 0;
-	bottom: 1px;
-	position: absolute;
-	filter: Alpha(Opacity=0);
-	opacity: 0;
-	z-index: 1099;
-}
-.ui-popup-screen.in {
-	opacity: 0.5;
-	filter: Alpha(Opacity=50);
-}
-.ui-popup-screen.out {
-	opacity: 0;
-	filter: Alpha(Opacity=0);
-}
-.ui-popup-container {
-	z-index: 1100;
-	display: inline-block;
-	position: absolute;
-	padding: 0;
-	outline: 0;
-}
-.ui-popup {
-	position: relative;
-}
-.ui-popup.ui-body-inherit {
-	border-width: 1px;
-	border-style: solid;
-}
-.ui-popup-hidden {
-	left: 0;
-	top: 0;
-	position: absolute !important;
-	visibility: hidden;
-}
-.ui-popup-truncate {
-	height: 1px;
-	width: 1px;
-	margin: -1px;
-	overflow: hidden;
-	clip: rect(1px,1px,1px,1px);
-}
-.ui-popup.ui-content,
-.ui-popup .ui-content {
-	overflow: visible;
-}
-.ui-popup > .ui-header {
-	border-top-width: 0;
-}
-.ui-popup > .ui-footer {
-	border-bottom-width: 0;
-}
-.ui-popup > p,
-.ui-popup > h1,
-.ui-popup > h2,
-.ui-popup > h3,
-.ui-popup > h4,
-.ui-popup > h5,
-.ui-popup > h6 {
-	margin: .5em .4375em;
-}
-.ui-popup > span {
-	display: block;
-	margin: .5em .4375em;
-}
-.ui-popup-container .ui-content > p,
-.ui-popup-container .ui-content > h1,
-.ui-popup-container .ui-content > h2,
-.ui-popup-container .ui-content > h3,
-.ui-popup-container .ui-content > h4,
-.ui-popup-container .ui-content > h5,
-.ui-popup-container .ui-content > h6 {
-	margin: .5em 0;
-}
-.ui-popup-container .ui-content > span {
-	margin: 0;
-}
-.ui-popup-container .ui-content > p:first-child,
-.ui-popup-container .ui-content > h1:first-child,
-.ui-popup-container .ui-content > h2:first-child,
-.ui-popup-container .ui-content > h3:first-child,
-.ui-popup-container .ui-content > h4:first-child,
-.ui-popup-container .ui-content > h5:first-child,
-.ui-popup-container .ui-content > h6:first-child {
-	margin-top: 0;
-}
-.ui-popup-container .ui-content > p:last-child,
-.ui-popup-container .ui-content > h1:last-child,
-.ui-popup-container .ui-content > h2:last-child,
-.ui-popup-container .ui-content > h3:last-child,
-.ui-popup-container .ui-content > h4:last-child,
-.ui-popup-container .ui-content > h5:last-child,
-.ui-popup-container .ui-content > h6:last-child {
-	margin-bottom: 0;
-}
-.ui-popup > img {
-	max-width: 100%;
-	max-height: 100%;
-	vertical-align: middle;
-}
-.ui-popup:not(.ui-content) > img:only-child,
-.ui-popup:not(.ui-content) > .ui-btn-left:first-child + img:last-child,
-.ui-popup:not(.ui-content) > .ui-btn-right:first-child + img:last-child {
-	-webkit-border-radius: inherit;
-	border-radius: inherit;
-}
-.ui-popup iframe {
-	vertical-align: middle;
-}
-.ui-popup > .ui-btn-left,
-.ui-popup > .ui-btn-right {
-	position: absolute; 
-	top: -11px;
-	margin: 0;
-	z-index: 1101;
-}
-.ui-popup > .ui-btn-left {
-	left: -11px;
-}
-.ui-popup > .ui-btn-right {
-	right: -11px;
-}
-/* Dimensions related to the popup arrow
------------------------------------------------------------------------------------------------------------*/
-/* desired triangle height: 10px */
-/**
- * guide for the arrow - its width, height, and offset are theme-dependent and
- * should be expessed as left, right, top, bottom, so that the element bearing
- * such a class becomes stretched inside its parent position: relative element.
- * The left/top/right/bottom specified below should reflect the corresponding
- * border radii and so it leaves room for the shadow:
- *     ..--------------------..
- *   ."        ^ top           ".
- *  /          v                 \
- * |     +------------------+     |
- * |     |                  |     |
- * | left|                  |right|
- * |<--->|                  |<--->|
- * |     +------------------+     |
- *  \          ^                 /
- *   `.        v bottom        .'
- *     ""--------------------""
- * The idea is that the top/left of the arrow container box does not move to a
- * coordinate smaller than the top/left of the guide and the right/bottom of
- * the arrow container box does not move to a coordinate larger than the
- * bottom/right of the guide. This will help us avoid the following situation:
- *        ..--------------------..
- *      ."        ^ top           ".
- *   /|/          v                 \
- *  / |     +------------------+     |
- *  \ |     |                  |     |
- *   \| left|                  |right|
- *    |<--->|                  |<--->|
- *    |     +------------------+     |
- *     \          ^                 /
- *      `.        v bottom        .'
- *        ""--------------------""
- * The arrow should not receive a top/left coordinate such that it is too close
- * to one of the corners, because then at first the shadow of the arrow and,
- * given a coordinate even closer to the corner, even the body of the arrow will
- * "stick out" of the corner of the popup. The guide provides a hint to the
- * arrow positioning code as to which range of values is acceptable for the
- * arrow container's top/left coordinate.
- **/
-.ui-popup-arrow-container {
-	width: 20px;
-	height: 20px;
-}
-/* aside from the "infinities" (-1000,2000), triangle height is used */
-.ui-popup-arrow-container.ui-popup-arrow-l {
-	left: -10px;
-	clip: rect(-1000px,10px,2000px,-1000px);
-}
-.ui-popup-arrow-container.ui-popup-arrow-t {
-	top: -10px;
-	clip: rect(-1000px,2000px,10px,-1000px);
-}
-.ui-popup-arrow-container.ui-popup-arrow-r {
-	right: -10px;
-	clip: rect(-1000px,2000px,2000px,10px);
-}
-.ui-popup-arrow-container.ui-popup-arrow-b {
-	bottom: -10px;
-	clip: rect(10px,2000px,1000px,-1000px);
-}
-/**
- * For each side, the arrow is twice the desired size and its corner is aligned
- * with the edge of the container:
- *                                           
- *           /\         /\                +----+       /\
- *          /  \       /  \               | /\ |top   /  \
- *      +----+  \     /  +----+       +-->|/  \|     /    \
- *  left| /  |   \   /   |  \ |right  |   |    |    /      \
- *      |/   |    \ /    |   \|       |  /|    |\  /        \
- *      |\   |    / \    |   /|       | / +----+ \ \ +----+ /
- *      | \  |   /   \   |  / |       | \        /  \|    |/
- *      +----+  /     \  +----+       |  \      /    |    |
- *       ^  \  /       \  /  ^        |   \    /  +->|\  /|
- *       |   \/         \/   |        |    \  /   |  | \/ |bottom
- *       |                   |        |     \/    |  +----+
- *       +-------------------+--------+-----------+
- *                           |
- *                    arrow container
- *                     (clips arrow)
- **/
-.ui-popup-arrow-container .ui-popup-arrow {
-	/* (4*desired triangle height)/sqrt(2) - does not account for border - centred within the outer rectangle */
-	width: 28.284271247px;
-	height: 28.284271247px;
-	border-width: 1px;
-	border-style: solid;
-}
-.ui-popup-arrow-container.ui-popup-arrow-t .ui-popup-arrow {
-	left: -4.142135623px;
-	top: 5.857864376px;
-}
-.ui-popup-arrow-container.ui-popup-arrow-b .ui-popup-arrow {
-	left: -4.142135623px;
-	top: -14.142135623px;
-}
-.ui-popup-arrow-container.ui-popup-arrow-l .ui-popup-arrow {
-	left: 5.857864376px;
-	top: -4.142135623px;
-}
-.ui-popup-arrow-container.ui-popup-arrow-r .ui-popup-arrow {
-	left: -14.142135623px;
-	top: -4.142135623px;
-}
-/* Fix rotation center for oldIE - see http://www.useragentman.com/IETransformsTranslator/ */
-.ui-popup-arrow-container.ui-popup-arrow-t.ie .ui-popup-arrow {
-    margin-left: -5.857864376269049px;
-    margin-top: -7.0710678118654755px;
-}
-.ui-popup-arrow-container.ui-popup-arrow-b.ie .ui-popup-arrow {
-    margin-left: -5.857864376269049px;
-    margin-top: -4.142135623730951px;
-}
- 
-.ui-popup-arrow-container.ui-popup-arrow-l.ie .ui-popup-arrow {
-    margin-left: -7.0710678118654755px;
-    margin-top: -5.857864376269049px;
-}
-.ui-popup-arrow-container.ui-popup-arrow-r.ie .ui-popup-arrow {
-    margin-left: -4.142135623730951px;
-    margin-top: -5.857864376269049px;
-}
-/* structure */
-.ui-popup > .ui-popup-arrow-guide {
-	position: absolute;
-	left: 0;
-	right: 0;
-	top: 0;
-	bottom: 0;
-	visibility: hidden;
-}
-.ui-popup-arrow-container {
-	position: absolute;
-}
-.ui-popup-arrow {
-	-webkit-transform: rotate(45deg);
-	-moz-transform: rotate(45deg);
-	-ms-transform: rotate(45deg);
-	transform: rotate(45deg);
-	position: absolute;
-	overflow: hidden;
-	box-sizing: border-box;
-}
-.ui-popup-arrow-container.ie .ui-popup-arrow {
-	-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.7071067811865474, M12=-0.7071067811865477, M21=0.7071067811865477, M22=0.7071067811865474, SizingMethod='auto expand')";
-	filter: progid:DXImageTransform.Microsoft.Matrix(
-	      	M11=0.7071067811865474,
-        	M12=-0.7071067811865477,
-        	M21=0.7071067811865477,
-        	M22=0.7071067811865474,
-        	SizingMethod='auto expand');
-}
-.ui-checkbox,
-.ui-radio {
-	margin: .5em 0;
-	position: relative;
-}
-.ui-checkbox .ui-btn,
-.ui-radio .ui-btn {
-	margin: 0;
-	text-align: left;
-	white-space: normal; /* Nowrap + ellipsis doesn't work on label. Issue #1419. */
-	z-index: 2;
-}
-.ui-controlgroup .ui-checkbox .ui-btn.ui-focus,
-.ui-controlgroup .ui-radio .ui-btn.ui-focus {
-	z-index: 3;
-}
-.ui-checkbox .ui-btn-icon-top,
-.ui-radio .ui-btn-icon-top,
-.ui-checkbox .ui-btn-icon-bottom,
-.ui-radio .ui-btn-icon-bottom {
-	text-align: center;
-}
-.ui-controlgroup-horizontal .ui-checkbox .ui-btn:after,
-.ui-controlgroup-horizontal .ui-radio .ui-btn:after {
-	content: none;
-	display: none;
-}
-/* Native input positioning */
-.ui-checkbox input,
-.ui-radio input {
-	position: absolute;
-	left: .466em;
-	top: 50%;
-	width: 22px;
-	height: 22px;
-	margin: -11px 0 0 0;
-	outline: 0 !important;
-	z-index: 1;
-}
-.ui-controlgroup-horizontal .ui-checkbox input,
-.ui-controlgroup-horizontal .ui-radio input {
-	left: 50%;
-	margin-left: -9px;
-}
-.ui-checkbox input:disabled,
-.ui-radio input:disabled {
-	position: absolute !important;
-	height: 1px;
-	width: 1px;
-	overflow: hidden;
-	clip: rect(1px,1px,1px,1px);
-}
-.ui-select {
-	margin-top: .5em;
-	margin-bottom: .5em; /* no shorthand for margin because it would override margin-right for inline selects */
-	position: relative;
-}
-.ui-select > select {
-	position: absolute !important;
-	height: 1px;
-	width: 1px;
-	overflow: hidden;
-	clip: rect(1px,1px,1px,1px);
-}
-.ui-select .ui-btn {
-	margin: 0;
-	opacity: 1; /* Fixes #2588: When Windows Phone 7.5 (Mango) tries to calculate a numeric opacity for a select (including "inherit") without explicitly specifying an opacity on the parent to give it context, a bug appears where clicking elsewhere on the page after opening the select will open the select again. */
-}
-.ui-select .ui-btn select {
-	position: absolute;
-	top: 0;
-	left: 0;
-	width: 100%;
-	min-height: 1.5em;
-	min-height: 100%;
-	height: 3em;
-	max-height: 100%;
-	outline: 0;
-	-webkit-border-radius: inherit;
-	border-radius: inherit;	
-	-webkit-appearance: none;
-	-moz-appearance: none;
-	cursor: pointer;
-	filter: Alpha(Opacity=0);
-	opacity: 0;
-	z-index: 2;
-}
-@-moz-document url-prefix() {
-	.ui-select .ui-btn select {
-		opacity: 0.0001;
-	}
-}
-/* Display none because of issues with IE/WP's filter alpha opacity */
-.ui-select .ui-state-disabled select {
-	display: none;
-}
-/* Because we add all classes of the select and option elements to the span... */ 
-.ui-select span.ui-state-disabled {
-	filter: Alpha(Opacity=100);
-	opacity: 1;
-}
-.ui-select .ui-btn.ui-select-nativeonly {
-	border-radius: 0;
-	border: 0;
-}
-.ui-select .ui-btn.ui-select-nativeonly select {
-	opacity: 1;
-	text-indent: 0;
-	display: block;
-}
-/* ui-li-count is styled in the listview CSS. We set padding and offset here because select supports icon position while listview doesn't. */
-.ui-select .ui-li-has-count.ui-btn {
-	padding-right: 2.8125em;
-}
-.ui-select .ui-li-has-count.ui-btn-icon-right {
-	padding-right: 4.6875em;
-}
-.ui-select .ui-btn-icon-right .ui-li-count {
-	right: 3.2em;
-}
-/* We set the rules for the span as well to fix an issue on Chrome with text-overflow ellipsis for the button in combination with text-align center. */
-.ui-select .ui-btn > span:not(.ui-li-count) {
-	display: block;
-	text-overflow: ellipsis;
-	overflow: hidden !important;
-	white-space: nowrap;
-}
-.ui-selectmenu.ui-popup {
-	min-width: 11em;
-}
-.ui-selectmenu .ui-dialog-contain {
-	overflow: hidden;
-}
-.ui-selectmenu .ui-header {
-	margin: 0;
-	padding: 0;
-	border-width: 0;
-}
-.ui-selectmenu.ui-dialog .ui-header {
-	z-index: 1;
-	position: relative;
-}
-.ui-selectmenu.ui-popup .ui-header {
-	-webkit-border-bottom-right-radius: 0;
-	border-bottom-right-radius: 0;
-	-webkit-border-bottom-left-radius: 0;
-	border-bottom-left-radius: 0;
-}
-/* when no placeholder is defined in a multiple select, the header height doesn't even extend past the close button.  this shim's content in there */
-.ui-selectmenu.ui-popup .ui-header h1:after {
-	content: '.';
-	visibility: hidden;
-}
-.ui-selectmenu .ui-header .ui-title {
-	margin: 0 2.875em;
-}
-.ui-selectmenu.ui-dialog .ui-content {
-	overflow: visible;
-	z-index: 1;
-}
-.ui-selectmenu .ui-selectmenu-list {
-	margin: 0;
-	-webkit-border-radius: inherit;
-	border-radius: inherit;	
-}
-.ui-header:not(.ui-screen-hidden) + .ui-selectmenu-list {
-	-webkit-border-top-right-radius: 0;
-	border-top-right-radius: 0;
-	-webkit-border-top-left-radius: 0;
-	border-top-left-radius: 0;
-}
-.ui-header.ui-screen-hidden + .ui-selectmenu-list li.ui-first-child .ui-btn {
-	border-top-width: 0;
-}
-.ui-selectmenu .ui-selectmenu-list li.ui-last-child .ui-btn {
-	border-bottom-width: 0;
-}
-.ui-selectmenu .ui-btn.ui-li-divider {
-	cursor: default;
-}
-.ui-selectmenu .ui-selectmenu-placeholder {
-	display: none;
-}
-.ui-listview,
-.ui-listview > li {
-	margin: 0;
-	padding: 0;
-	list-style: none;
-}
-.ui-content .ui-listview,
-.ui-panel-inner > .ui-listview {
-	margin: -1em;
-}
-.ui-content .ui-listview-inset,
-.ui-panel-inner > .ui-listview-inset {
-	margin: 1em 0;
-}
-.ui-collapsible-content > .ui-listview {
-	margin: -.5em -1em;
-}
-.ui-collapsible-content > .ui-listview-inset {
-	margin: .5em 0;
-}
-.ui-listview > li {
-	display: block;
-	position: relative;
-	overflow: visible;
-}
-.ui-listview > .ui-li-static,
-.ui-listview > .ui-li-divider,
-.ui-listview > li > a.ui-btn {
-	margin: 0;
-	display: block;
-	position: relative;
-	text-align: left;
-	text-overflow: ellipsis;
-	overflow: hidden;
-	white-space: nowrap;
-}
-.ui-listview > li > .ui-btn:focus {
-	z-index: 1;
-}
-.ui-listview > .ui-li-static,
-.ui-listview > .ui-li-divider,
-.ui-listview > li > a.ui-btn {
-	border-width: 1px 0 0 0;
-	border-style: solid;
-}
-.ui-listview-inset > .ui-li-static,
-.ui-listview-inset > .ui-li-divider,
-.ui-listview-inset > li > a.ui-btn {
-	border-right-width: 1px;
-	border-left-width: 1px;
-}
-.ui-listview > .ui-li-static.ui-last-child,
-.ui-listview > .ui-li-divider.ui-last-child,
-.ui-listview > li.ui-last-child > a.ui-btn {
-	border-bottom-width: 1px;
-}
-.ui-collapsible-content > .ui-listview:not(.ui-listview-inset) > li.ui-first-child,
-.ui-collapsible-content > .ui-listview:not(.ui-listview-inset) > li.ui-first-child > a.ui-btn {
-	border-top-width: 0;
-}
-.ui-collapsible-themed-content .ui-listview:not(.ui-listview-inset) > li.ui-last-child,
-.ui-collapsible-themed-content .ui-listview:not(.ui-listview-inset) > li.ui-last-child > a.ui-btn {
-	border-bottom-width: 0;
-}
-.ui-listview > li.ui-first-child,
-.ui-listview > li.ui-first-child > a.ui-btn {
-	-webkit-border-top-right-radius: inherit;	
-	border-top-right-radius: inherit;
-	-webkit-border-top-left-radius: inherit;
-	border-top-left-radius: inherit;
-}
-.ui-listview > li.ui-last-child,
-.ui-listview > li.ui-last-child > a.ui-btn {
-	-webkit-border-bottom-right-radius: inherit;
-	border-bottom-right-radius: inherit;
-	-webkit-border-bottom-left-radius: inherit;
-	border-bottom-left-radius: inherit;
-}
-.ui-listview > li.ui-li-has-alt > a.ui-btn {
-	-webkit-border-top-right-radius: 0;
-	border-top-right-radius: 0;
-	-webkit-border-bottom-right-radius: 0;
-	border-bottom-right-radius: 0;
-}
-.ui-listview > li.ui-first-child > a.ui-btn + a.ui-btn {
-	-webkit-border-top-left-radius: 0;	
-	border-top-left-radius: 0;
-	-webkit-border-top-right-radius: inherit;
-	border-top-right-radius: inherit;
-}
-.ui-listview > li.ui-last-child > a.ui-btn + a.ui-btn {
-	-webkit-border-bottom-left-radius: 0;
-	border-bottom-left-radius: 0;
-	-webkit-border-bottom-right-radius: inherit;
-	border-bottom-right-radius: inherit;
-}
-.ui-listview > li.ui-first-child img:first-child:not(.ui-li-icon) {
-	-webkit-border-top-left-radius: inherit;
-	border-top-left-radius: inherit;	
-}
-.ui-listview > li.ui-last-child img:first-child:not(.ui-li-icon) {
-	-webkit-border-bottom-left-radius: inherit;
-	border-bottom-left-radius: inherit;	
-}
-.ui-collapsible-content > .ui-listview:not(.ui-listview-inset) {
-	-webkit-border-radius: inherit;
-	border-radius: inherit;	
-}
-.ui-listview > .ui-li-static {
-	padding: .7em 1em;
-}
-.ui-listview > .ui-li-divider {
-	padding: .5em 1.143em;
-	font-size: 14px;
-	font-weight: bold;
-	cursor: default;
-	outline: 0; /* Dividers in custom selectmenus have tabindex */
-}
-.ui-listview > .ui-li-has-count > .ui-btn,
-.ui-listview > .ui-li-static.ui-li-has-count,
-.ui-listview > .ui-li-divider.ui-li-has-count {
-	padding-right: 2.8125em;
-}
-.ui-listview > .ui-li-has-count > .ui-btn-icon-right {
-	padding-right: 4.6875em;
-}
-.ui-listview > .ui-li-has-thumb > .ui-btn,
-.ui-listview > .ui-li-static.ui-li-has-thumb {
-	min-height: 3.625em;
-	padding-left: 6.25em;
-}
-/* ui-li-has-icon deprecated in 1.4. TODO: remove in 1.5 */
-.ui-listview > .ui-li-has-icon > .ui-btn,
-.ui-listview > .ui-li-static.ui-li-has-icon {
-	min-height: 1.25em;
-	padding-left: 2.5em;
-}
-/* Used by both listview and custom multiple select button */
-.ui-li-count {
-	position: absolute;
-	font-size: 12.5px;
-	font-weight: bold;
-	text-align: center;
-	border-width: 1px;
-	border-style: solid;
-	padding: 0 .48em;
-	line-height: 1.6em;
-	min-height: 1.6em;
-	min-width: .64em;
-	right: .8em;
-	top: 50%;
-	margin-top: -.88em;
-}
-.ui-listview .ui-btn-icon-right .ui-li-count {
-	right: 3.2em;
-}
-.ui-listview .ui-li-has-thumb > img:first-child,
-.ui-listview .ui-li-has-thumb > .ui-btn > img:first-child,
-.ui-listview .ui-li-has-thumb .ui-li-thumb {
-	position: absolute;
-	left: 0;
-	top: 0;
-	max-height: 5em;
-	max-width: 5em;
-}
-/* ui-li-has-icon deprecated in 1.4. TODO: remove in 1.5 */
-.ui-listview > .ui-li-has-icon > img:first-child,
-.ui-listview > .ui-li-has-icon > .ui-btn > img:first-child {
-	position: absolute;
-	left: .625em;
-	top: .9em;
-	max-height: 1em;
-	max-width: 1em;
-}
-.ui-listview > li h1,
-.ui-listview > li h2,
-.ui-listview > li h3,
-.ui-listview > li h4,
-.ui-listview > li h5,
-.ui-listview > li h6 {
-	font-size: 1em;
-	font-weight: bold;
-	display: block;
-	margin: .45em 0;
-	text-overflow: ellipsis;
-	overflow: hidden;
-	white-space: nowrap;
-}
-.ui-listview > li p {
-	font-size: .75em;
-	font-weight: normal;
-	display: block;
-	margin: .6em 0;
-	text-overflow: ellipsis;
-	overflow: hidden;
-	white-space: nowrap;
-}
-.ui-listview .ui-li-aside {
-	position: absolute;
-	top: 1em;
-	right: 3.333em;
-	margin: 0;
-	text-align: right;
-}
-.ui-listview > li.ui-li-has-alt > .ui-btn {
-	margin-right: 2.5em;
-	border-right-width: 0;
-}
-.ui-listview > li.ui-li-has-alt > .ui-btn + .ui-btn {
-	position: absolute;
-	width: 2.5em;
-	height: 100%;
-	min-height: auto;
-	-webkit-box-sizing: border-box;
-	-moz-box-sizing: border-box;
-	box-sizing: border-box;
-	border-left-width: 1px;
-	top: 0;
-	right: 0;
-	margin: 0;
-	padding: 0;
-	z-index: 2;
-}
-.ui-listview-inset > li.ui-li-has-alt > .ui-btn + .ui-btn {
-	border-right-width: 1px;
-}
-.ui-listview > li.ui-li-has-alt > .ui-btn + .ui-btn:focus {
-	z-index: 3;
-}
-ol.ui-listview,
-ol.ui-listview > .ui-li-divider {
-	counter-reset: listnumbering;
-}
-ol.ui-listview > li > .ui-btn,
-ol.ui-listview > li.ui-li-static {
-	vertical-align: middle;
-}
-ol.ui-listview > li > .ui-btn:first-child:before,
-ol.ui-listview > li.ui-li-static:before,
-ol.ui-listview > li.ui-field-contain > label:before,
-ol.ui-listview > li.ui-field-contain > .ui-controlgroup-label:before {
-	display: inline-block;
-	font-size: .9em;
-	font-weight: normal;
-	padding-right: .3em;
-	min-width: 1.4em;
-	line-height: 1.5;
-	vertical-align: middle;
-	counter-increment: listnumbering;
-	content: counter(listnumbering) ".";
-}
-ol.ui-listview > li.ui-field-contain:before {
-	content: none;
-	display: none;
-}
-ol.ui-listview > li h1:first-child,
-ol.ui-listview > li h2:first-child,
-ol.ui-listview > li h3:first-child,
-ol.ui-listview > li h4:first-child,
-ol.ui-listview > li h5:first-child,
-ol.ui-listview > li h6:first-child,
-ol.ui-listview > li p:first-child,
-ol.ui-listview > li img:first-child + * {
-	display: inline-block;
-	vertical-align: middle;
-}
-ol.ui-listview > li h1:first-child ~ *,
-ol.ui-listview > li h2:first-child ~ *,
-ol.ui-listview > li h3:first-child ~ *,
-ol.ui-listview > li h4:first-child ~ *,
-ol.ui-listview > li h5:first-child ~ *,
-ol.ui-listview > li h6:first-child ~ *,
-ol.ui-listview > li p:first-child ~ *,
-ol.ui-listview > li img:first-child + * ~ * {
-	margin-top: 0;
-	text-indent: 2.04em; /* (1.4em + .3em) * .9em / .75em */
-}
-html .ui-filterable + .ui-listview,
-html .ui-filterable.ui-listview {
-	margin-top: .5em;
-}
-.ui-collapsible-content > form.ui-filterable {
-	margin-top: -.5em;
-}
-.ui-collapsible-content > .ui-input-search.ui-filterable {
-	margin-top: 0;
-}
-.ui-collapsible-content > .ui-filterable + .ui-listview:not(.ui-listview-inset) > li.ui-first-child,
-.ui-collapsible-content > .ui-filterable + .ui-listview:not(.ui-listview-inset) > li.ui-first-child > a.ui-btn,
-.ui-collapsible-content > .ui-filterable.ui-listview:not(.ui-listview-inset) > li.ui-first-child,
-.ui-collapsible-content > .ui-filterable.ui-listview:not(.ui-listview-inset) > li.ui-first-child > a.ui-btn {
-	border-top-width: 1px;
-}
-div.ui-slider {
-	height: 30px;
-	margin: .5em 0;
-	padding: 0;
-	-ms-touch-action: pan-y pinch-zoom double-tap-zoom;
-}
-div.ui-slider:before,
-div.ui-slider:after {
-	content: "";
-	display: table;
-}
-div.ui-slider:after {
-	clear: both;
-}
-input.ui-slider-input {
-	display: block;
-	float: left;
-	font-size: 14px;
-	font-weight: bold;
-	margin: 0;
-	padding: 4px;
-	width: 40px;
-	height: 20px;
-	line-height: 20px;
-	border-width: 1px;
-	border-style: solid;
-	outline: 0;
-	text-align: center;
-	vertical-align: text-bottom;
-	-webkit-appearance: none;
-	-moz-appearance: none;
-	appearance: none;
-	-webkit-box-sizing: content-box;
-	-moz-box-sizing: content-box;
-	box-sizing: content-box;
-}
-.ui-slider-input::-webkit-outer-spin-button,
-.ui-slider-input::-webkit-inner-spin-button {
-	-webkit-appearance: none;
-	margin: 0;
-}
-.ui-slider-track {
-	position: relative;
-	overflow: visible;
-	border-width: 1px;
-	border-style: solid;
-	height: 15px;
-	margin: 0 15px 0 68px;
-	top: 6px;
-}
-.ui-slider-track.ui-mini {
-	height: 12px;
-	top: 8px;
-}
-.ui-slider-track .ui-slider-bg {
-	height: 100%;
-}
-/* High level of specificity to override button margins in grids */
-.ui-slider-track .ui-btn.ui-slider-handle {
-	position: absolute;
-	z-index: 1;
-	top: 50%;
-	width: 28px;
-	height: 28px;
-	margin: -15px 0 0 -15px;
-	outline: 0;
-	padding: 0;
-}
-.ui-slider-track.ui-mini .ui-slider-handle {
-	height: 14px;
-	width: 14px;
-	margin: -8px 0 0 -8px;
-}
-select.ui-slider-switch {
-	position: absolute !important;
-	height: 1px;
-	width: 1px;
-	overflow: hidden;
-	clip: rect(1px,1px,1px,1px);
-}
-div.ui-slider-switch {
-	display: inline-block;
-	height: 32px;
-	width: 5.8em;
-	top: 0;
-}
-/* reset the clearfix */
-div.ui-slider-switch:before,
-div.ui-slider-switch:after {
-	display: none;
-	clear: none;
-}
-div.ui-slider-switch.ui-mini {
-	height: 29px;
-	top: 0;
-}
-.ui-slider-inneroffset {
-	margin: 0 16px;
-	position: relative;
-	z-index: 1;
-}
-.ui-slider-switch.ui-mini .ui-slider-inneroffset {
-	margin: 0 15px 0 14px;
-}
-.ui-slider-switch .ui-btn.ui-slider-handle {
-	margin: 1px 0 0 -15px;
-}
-.ui-slider-switch.ui-mini .ui-slider-handle {
-	width: 25px;
-	height: 25px;
-	margin: 1px 0 0 -13px;
-	padding: 0;
-}
-.ui-slider-handle-snapping {
-	-webkit-transition: left 70ms linear;
-	-moz-transition: left 70ms linear;
-	transition: left 70ms linear;
-}
-.ui-slider-switch .ui-slider-label {
-	position: absolute;
-	text-align: center;
-	width: 100%;
-	overflow: hidden;
-	font-size: 16px;
-	top: 0;
-	line-height: 2;
-	min-height: 100%;
-	white-space: nowrap;
-	cursor: pointer;
-}
-.ui-slider-switch.ui-mini .ui-slider-label {
-	font-size: 14px;
-}
-.ui-slider-switch .ui-slider-label-a {
-	z-index: 1;
-	left: 0;
-	text-indent: -1.5em;
-}
-.ui-slider-switch .ui-slider-label-b {
-	z-index: 0;
-	right: 0;
-	text-indent: 1.5em;
-}
-/* The corner radii for ui-slider-switch/track can be specified in theme CSS. The bg and handle inherits. */
-.ui-slider-track .ui-slider-bg,
-.ui-slider-switch .ui-slider-label,
-.ui-slider-switch .ui-slider-inneroffset,
-.ui-slider-handle {
-	-webkit-border-radius: inherit;
-	border-radius: inherit;
-}
-.ui-field-contain div.ui-slider-switch {
-	margin: 0;
-}
-/* ui-hide-label deprecated in 1.4. TODO: Remove in 1.5 */
-.ui-field-contain div.ui-slider-switch,
-.ui-field-contain.ui-hide-label div.ui-slider-switch,
-html .ui-popup .ui-field-contain div.ui-slider-switch {
-	display: inline-block;
-	width: 5.8em;
-}
-/* slider tooltip
------------------------------------------------------------------------------------------------------------*/
-.ui-slider-popup {
-	width: 64px;
-	height: 64px;
-	font-size: 36px;
-	padding-top: 14px;
-	opacity: 0.8;
-}
-.ui-slider-popup {
-	position: absolute !important;
-	text-align: center;
-	z-index: 100;
-}
-.ui-slider-track .ui-btn.ui-slider-handle {
-	font-size: .9em;
-	line-height: 30px;
-}
-.ui-rangeslider {
-	margin: .5em 0;
-}
-.ui-rangeslider:before,
-.ui-rangeslider:after {
-	content: "";
-	display: table;
-}
-.ui-rangeslider:after {
-	clear: both;
-}
-.ui-rangeslider .ui-slider-input.ui-rangeslider-last {
-	float: right;
-}
-.ui-rangeslider .ui-rangeslider-sliders {
-	position: relative;
-	overflow: visible;
-	height: 30px;
-	margin: 0 68px;
-}
-.ui-rangeslider .ui-rangeslider-sliders .ui-slider-track {
-	position: absolute;
-	top: 6px;
-	right: 0;
-	left: 0;
-	margin: 0;
-}
-.ui-rangeslider.ui-mini .ui-rangeslider-sliders .ui-slider-track {
-	top: 8px;
-}
-.ui-rangeslider .ui-slider-track:first-child .ui-slider-bg {
-	display: none;
-}
-.ui-rangeslider .ui-rangeslider-sliders .ui-slider-track:first-child {
-	background-color: transparent;
-	background: none;
-	border-width: 0;
-	height: 0;
-}
-/* this makes ie6 and ie7 set height to 0 to fix z-index problem */
-html >/**/body .ui-rangeslider .ui-rangeslider-sliders .ui-slider-track:first-child {
-	height: 15px;
-	border-width: 1px;
-}
-html >/**/body .ui-rangeslider.ui-mini .ui-rangeslider-sliders .ui-slider-track:first-child {
-	height: 12px;
-}
-/* Hide the second label (the first is moved outside the div) */
-div.ui-rangeslider label {
-	position: absolute !important;
-	height: 1px;
-	width: 1px;
-	overflow: hidden;
-	clip: rect(1px,1px,1px,1px);
-}
-.ui-field-contain .ui-rangeslider input.ui-slider-input,
-.ui-field-contain .ui-rangeslider.ui-mini input.ui-slider-input,
-.ui-field-contain .ui-rangeslider .ui-rangeslider-sliders,
-.ui-field-contain .ui-rangeslider.ui-mini .ui-rangeslider-sliders {
-	margin-top: 0;
-	margin-bottom: 0;
-}
-.ui-input-text,
-.ui-input-search {
-	margin: .5em 0;
-	border-width: 1px;
-	border-style: solid;
-}
-.ui-input-text input,
-.ui-input-search input,
-textarea.ui-input-text {
-	padding: .4em;
-	line-height: 1.4em;
-	display: block;
-	width: 100%;
-	-webkit-box-sizing: border-box;
-	-moz-box-sizing: border-box;
-	box-sizing: border-box;
-	outline: 0;
-}
-.ui-input-text input,
-.ui-input-search input {
-	margin: 0;
-	min-height: 2.2em;
-	text-align: left; /* Opera aligns type="date" right by default */
-	border: 0;
-	background: transparent none;
-	-webkit-appearance: none;
-	-webkit-border-radius: inherit;
-	border-radius: inherit;
-}
-textarea.ui-input-text {
-	overflow: auto;
-	resize: vertical;
-}
-.ui-mini .ui-input-text input,
-.ui-mini .ui-input-search input,
-.ui-input-text.ui-mini input,
-.ui-input-search.ui-mini input,
-.ui-mini textarea.ui-input-text,
-textarea.ui-mini {
-	font-size: 14px;
-}
-/* Same margin for mini textareas as other mini sized widgets (12.5/14 * 0.5em) */
-.ui-mini textarea.ui-input-text,
-textarea.ui-mini {
-	margin: .446em 0;
-}
-.ui-input-has-clear,
-.ui-input-search {
-	position: relative;
-}
-/* Padding on the div instead of input because of browser spinners etc. */
-.ui-input-has-clear {
-	padding-right: 2.375em;
-}
-.ui-mini.ui-input-has-clear {
-	padding-right: 2.923em;
-}
-.ui-input-has-clear input {
-	padding-right: 0;
-	/* Autofill on Chrome has bg color so we unset corners right as well. */
-	-webkit-border-top-right-radius: 0;
-	border-top-right-radius: 0;
-	-webkit-border-bottom-right-radius: 0;
-	border-bottom-right-radius: 0;
-}
-/* Search icon */
-.ui-input-search input {
-	padding-left: 1.75em;
-}
-.ui-input-search:after {
-	position: absolute;
-	left: .3125em;
-	top: 50%;
-	margin-top: -7px;
-	content: "";
-	background-position: center center;
-	background-repeat: no-repeat;
-	width: 14px;
-	height: 14px;
-	filter: Alpha(Opacity=50);
-	opacity: .5;
-}
-.ui-input-search.ui-input-has-clear .ui-btn.ui-input-clear,
-.ui-input-text.ui-input-has-clear .ui-btn.ui-input-clear {
-	position: absolute;
-	right: 0;
-	top: 50%;
-	margin: -14px .3125em 0;
-	border: 0;
-	background-color: transparent;
-}
-.ui-input-search .ui-input-clear-hidden,
-.ui-input-text .ui-input-clear-hidden {
-	display: none;
-}
-/* Resolves issue #5166: Added to support issue introduced in Firefox 15. We can likely remove this in the future. */
-.ui-input-text input::-moz-placeholder,
-.ui-input-search input::-moz-placeholder,
-textarea.ui-input-text::-moz-placeholder {
-	color: #aaa;
-}
-/* Same for IE10 */
-.ui-input-text input:-ms-input-placeholder,
-.ui-input-search input:-ms-input-placeholder,
-textarea.ui-input-text:-ms-input-placeholder {
-	color: #aaa;
-}
-/* Resolves issue #5131: Width of textinput depends on its type,
-for Android 4.1 */
-.ui-input-text input[type=number]::-webkit-outer-spin-button {
-	margin: 0;
-}
-/* Resolves issue #5756: Textinput in IE10 has a default clear button */
-.ui-input-text input::-ms-clear,
-.ui-input-search input::-ms-clear {
-	display: none;
-}
-.ui-input-text input:focus,
-.ui-input-search input:focus {
-	-webkit-box-shadow: none;
-	-moz-box-shadow: none;
-	box-shadow: none;
-}
-textarea.ui-input-text.ui-textinput-autogrow {
-	overflow: hidden;
-}
-.ui-textinput-autogrow-resize {
-	-webkit-transition: height 0.25s;
-	-o-transition: height 0.25s;
-	-moz-transition: height 0.25s;
-	transition: height 0.25s;
-}
-.ui-flipswitch {
-	display: inline-block;
-	vertical-align: middle;
-	width: 5.875em; /* Override this and padding-left in next rule if you use labels other than "on/off" and need more space */
-	height: 1.875em;
-	border-width: 1px;
-	border-style: solid;
-	margin: .5em 0;
-	overflow: hidden;
-	-webkit-transition-property: padding, width, background-color, color, border-color;
-	-moz-transition-property: padding, width, background-color, color, border-color;
-	-o-transition-property: padding, width, background-color, color, border-color;
-	transition-property: padding, width, background-color, color, border-color;
-	-webkit-transition-duration: 100ms;
-	-moz-transition-duration: 100ms;
-	-o-transition-duration: 100ms;
-	transition-duration: 100ms;
-	-webkit-touch-callout: none;
-	-webkit-user-select: none;
-	-moz-user-select: none;
-	-ms-user-select: none;
-	user-select: none;
-	cursor: pointer;
-}
-.ui-flipswitch.ui-flipswitch-active {
-	padding-left: 4em;  /* Override this and width in previous rule if you use labels other than "on/off" and need more space */
-	width: 1.875em;
-}
-.ui-flipswitch-input {
-	position: absolute;
-	height: 1px;
-	width: 1px;
-	margin: -1px;
-	overflow: hidden;
-	clip: rect(1px,1px,1px,1px);
-	border: 0;
-	outline: 0;
-	filter: Alpha(Opacity=0);
-	opacity: 0;
-}
-.ui-flipswitch .ui-btn.ui-flipswitch-on,
-.ui-flipswitch .ui-flipswitch-off {
-	float: left;
-	height: 1.75em;
-	margin: .0625em;
-	line-height: 1.65em;
-}
-.ui-flipswitch .ui-btn.ui-flipswitch-on {
-	width: 1.75em;
-	padding: 0;
-	text-indent: -2.6em; /* Override this to center text if you use a label other than "on" */
-	text-align: left;
-	border-width: 1px;
-	border-style: solid;
-	-webkit-box-sizing: border-box;
-	-moz-box-sizing: border-box;
-	box-sizing: border-box;
-	border-radius: inherit;
-	overflow: visible;
-	color: inherit;
-	text-shadow: inherit;
-}
-.ui-flipswitch .ui-flipswitch-off {
-	padding: 1px;
-	text-indent: 1em; /* Override this to center text if you use a label other than "off" */
-}
-/* Override field container CSS to prevent the flipswitch from becomming full width */
-html .ui-field-contain > label + .ui-flipswitch,
-html .ui-popup .ui-field-contain > label + .ui-flipswitch {
-	display: inline-block;
-	width: 5.875em; /* If you override the width for .ui-flipswitch you should repeat the same value here */
-	-webkit-box-sizing: content-box;
-	-moz-box-sizing: content-box;
-	box-sizing: content-box;
-}
-.ui-field-contain .ui-flipswitch.ui-flipswitch-active,
-.ui-popup .ui-field-contain .ui-flipswitch.ui-flipswitch-active {
-	width: 1.875em;
-}
-.ui-table {
-	border: 0;
-	border-collapse: collapse;
-	padding: 0;
-	width: 100%;
-}
-.ui-table th,
-.ui-table td {
-	line-height: 1.5em;
-	text-align: left;
-	padding: .4em .5em;
-	vertical-align:top;
-}
-.ui-table th .ui-btn,
-.ui-table td .ui-btn {
-	line-height: normal;
-}
-.ui-table th {
-	font-weight: bold;
-}
-.ui-table caption {
-	text-align: left;
-	margin-bottom: 1.4em;
-	opacity: .5;
-}
-/*
- Styles for the table columntoggle mode
-*/
-.ui-table-columntoggle-btn {
-	float: right;
-	margin-bottom: .8em;
-}
-/* Remove top/bottom margins around the fieldcontain on check list */
-.ui-table-columntoggle-popup fieldset {
-	margin:0;
-}
-.ui-table-columntoggle {
-	clear: both;
-}
-/* Hide all prioritized columns by default */
-@media only all {
-	th.ui-table-priority-6,
-	td.ui-table-priority-6,
-	th.ui-table-priority-5,
-	td.ui-table-priority-5,
-	th.ui-table-priority-4,
-	td.ui-table-priority-4,
-	th.ui-table-priority-3,
-	td.ui-table-priority-3,
-	th.ui-table-priority-2,
-	td.ui-table-priority-2,
-	th.ui-table-priority-1,
-	td.ui-table-priority-1 {
-		display: none;
-	}
-}
-/* Preset breakpoints if ".ui-responsive" class added to table */
-/* Show priority 1 at 320px (20em x 16px) */
-@media screen and (min-width: 20em) {
-	.ui-table-columntoggle.ui-responsive th.ui-table-priority-1,
-	.ui-table-columntoggle.ui-responsive td.ui-table-priority-1 {
-		display: table-cell;
-	}
-}
-/* Show priority 2 at 480px (30em x 16px) */
-@media screen and (min-width: 30em) {
-	.ui-table-columntoggle.ui-responsive th.ui-table-priority-2,
-	.ui-table-columntoggle.ui-responsive td.ui-table-priority-2 {
-		display: table-cell;
-	}
-}
-/* Show priority 3 at 640px (40em x 16px) */
-@media screen and (min-width: 40em) {
-	.ui-table-columntoggle.ui-responsive th.ui-table-priority-3,
-	.ui-table-columntoggle.ui-responsive td.ui-table-priority-3 {
-		display: table-cell;
-	}
-}
-/* Show priority 4 at 800px (50em x 16px) */
-@media screen and (min-width: 50em) {
-	.ui-table-columntoggle.ui-responsive th.ui-table-priority-4,
-	.ui-table-columntoggle.ui-responsive td.ui-table-priority-4 {
-		display: table-cell;
-	}
-}
-/* Show priority 5 at 960px (60em x 16px) */
-@media screen and (min-width: 60em) {
-	.ui-table-columntoggle.ui-responsive th.ui-table-priority-5,
-	.ui-table-columntoggle.ui-responsive td.ui-table-priority-5 {
-		display: table-cell;
-	}
-}
-/* Show priority 6 at 1,120px (70em x 16px) */
-@media screen and (min-width: 70em) {
-	.ui-table-columntoggle.ui-responsive th.ui-table-priority-6,
-	.ui-table-columntoggle.ui-responsive td.ui-table-priority-6 {
-		display: table-cell;
-	}
-}
-/* Unchecked manually: Always hide */
-.ui-table-columntoggle th.ui-table-cell-hidden,
-.ui-table-columntoggle td.ui-table-cell-hidden,
-.ui-table-columntoggle.ui-responsive th.ui-table-cell-hidden,
-.ui-table-columntoggle.ui-responsive td.ui-table-cell-hidden {
-	display: none;
-}
-/* Checked manually: Always show */
-.ui-table-columntoggle th.ui-table-cell-visible,
-.ui-table-columntoggle td.ui-table-cell-visible,
-.ui-table-columntoggle.ui-responsive th.ui-table-cell-visible,
-.ui-table-columntoggle.ui-responsive td.ui-table-cell-visible {
-	display: table-cell;
-}
-/*
- Styles for the table columntoggle mode
-*/
-.ui-table-reflow td .ui-table-cell-label,
-.ui-table-reflow th .ui-table-cell-label { 
-	display: none;
-}
-/* Mobile first styles: Begin with the stacked presentation at narrow widths */ 
-@media only all {
-	/* Hide the table headers */ 
-	.ui-table-reflow thead td, 
-	.ui-table-reflow thead th {
-		display: none;
-	}
-	/* Show the table cells as a block level element */ 
-	.ui-table-reflow td,
-	.ui-table-reflow th { 
-		text-align: left;
-		display: block;
-	}
-	/* Add a fair amount of top margin to visually separate each row when stacked */  
-	.ui-table-reflow tbody th {
-		margin-top: 3em;
-	}
-	/* Make the label elements a percentage width */ 
-	.ui-table-reflow td .ui-table-cell-label,
-	.ui-table-reflow th .ui-table-cell-label { 
-		padding: .4em; 
-		min-width: 30%; 
-		display: inline-block;
-		margin: -.4em 1em -.4em -.4em;
-	}
-	/* For grouped headers, have a different style to visually separate the levels by classing the first label in each col group */ 
-	.ui-table-reflow th .ui-table-cell-label-top,
-	.ui-table-reflow td .ui-table-cell-label-top {
-		display: block;
-		padding: .4em 0;
-		margin: .4em 0;
-		text-transform: uppercase;
-		font-size: .9em;
-		font-weight: normal;
-	}
-}
-/* Breakpoint to show as a standard table at 560px (35em x 16px) or wider */ 
-@media ( min-width: 35em ) {
-	/* Show the table header rows */ 
-	.ui-table-reflow.ui-responsive td,
-	.ui-table-reflow.ui-responsive th,
-	.ui-table-reflow.ui-responsive tbody th,
-	.ui-table-reflow.ui-responsive tbody td,
-	.ui-table-reflow.ui-responsive thead td,
-	.ui-table-reflow.ui-responsive thead th {
-		display: table-cell;
-		margin: 0;
-	}
-	/* Hide the labels in each cell */ 
-	.ui-table-reflow.ui-responsive td .ui-table-cell-label,
-	.ui-table-reflow.ui-responsive th .ui-table-cell-label { 
-		display: none;
-	}
-}
-/* Hack to make IE9 and WP7.5 treat cells like block level elements, scoped to ui-responsive class */ 
-/* Applied in a max-width media query up to the table layout breakpoint so we don't need to negate this*/ 
-@media ( max-width: 35em ) {
-	.ui-table-reflow.ui-responsive td,
-	.ui-table-reflow.ui-responsive th {
-		width: 100%;
-		-webkit-box-sizing: border-box;
-		-moz-box-sizing: border-box;
-		box-sizing: border-box;
-		float: left;
-		clear: left;
-	}
-}
-/* Panel */
-.ui-panel {
-	width: 17em;
-	min-height: 100%;
-	max-height: none;
-	border-width: 0;
-	position: absolute;
-	top: 0;
-	display: block;
-}
-.ui-panel-closed {
-	width: 0;
-	max-height: 100%;
-	overflow: hidden;
-	visibility: hidden;
-}
-.ui-panel-fixed {
-	position: fixed;
-	bottom: -1px; /* Fixes gap on Chrome for Android */
-	padding-bottom: 1px;
-}
-.ui-panel-display-reveal {
-	z-index: 1;
-}
-.ui-panel-display-push {
-	z-index: 999;
-}
-.ui-panel-display-overlay {
-	z-index: 1001; /* Fixed toolbars have z-index 1000 */
-}
-.ui-panel-inner {
-	padding: 1em;
-}
-/* Container, page and wrapper */
-.ui-panel-page-container {
-	overflow-x: visible;
-}
-.ui-panel-page-container-themed .ui-page-active {
-	background: none;
-}
-.ui-panel-wrapper {
-	position: relative;
-	min-height: inherit;
-	border: 0;
-	overflow-x: hidden;
-	z-index: 999;
-}
-/* Fixed toolbars */
-.ui-panel-fixed-toolbar {
-	overflow-x: hidden;
-}
-/* Dismiss */
-.ui-panel-dismiss {
-	position: absolute;
-	top: 0;
-	left: 0;
-	right: 0;
-	height: 100%;
-	z-index: 1002;
-	display: none;
-}
-.ui-panel-dismiss-open {
-	display: block;
-}
-/* Animate class is added to panel, wrapper and fixed toolbars */
-.ui-panel-animate {
-	-webkit-transition: -webkit-transform 300ms ease;
-	-webkit-transition-duration: 300ms;
-	-moz-transition: -moz-transform 300ms ease;
-	transition: transform 300ms ease;
-}
-/* Fix for Windows Phone issue #6349: unset the transition for transforms in case of fixed toolbars. */
-@media screen and ( max-device-width: 768px ) {
-	.ui-page-header-fixed .ui-panel-animate.ui-panel-wrapper,
-	.ui-page-footer-fixed .ui-panel-animate.ui-panel-wrapper,
-	.ui-panel-animate.ui-panel-fixed-toolbar {
-		-ms-transition: none;
-	}
-	/* We need a transitionend event ... */
-	.ui-panel-animate.ui-panel-fixed-toolbar {
-		-ms-transition: -ms-transform 1ms;
-		-ms-transform: rotate(0deg);
-	}
-}
-/* Hardware acceleration for smoother transitions on WebKit browsers */
-.ui-panel-animate.ui-panel:not(.ui-panel-display-reveal) {
-	-webkit-backface-visibility: hidden;
-	-webkit-transform: translate3d(0,0,0);
-}
-/* Panel positioning (for overlay and push) */
-/* Panel left closed */
-.ui-panel-position-left {
-	left: -17em;
-}
-/* Panel left closed animated */
-.ui-panel-animate.ui-panel-position-left.ui-panel-display-overlay,
-.ui-panel-animate.ui-panel-position-left.ui-panel-display-push {
-	left: 0;
-	-webkit-transform: translate3d(-17em,0,0);
-	-moz-transform: translate3d(-17em,0,0);
-	transform: translate3d(-17em,0,0);
-}
-/* Panel left open */
-.ui-panel-position-left.ui-panel-display-reveal, /* Unset "panel left closed" for reveal */
-.ui-panel-open.ui-panel-position-left {
-	left: 0;
-}
-/* Panel left open animated */
-.ui-panel-animate.ui-panel-open.ui-panel-position-left.ui-panel-display-overlay,
-.ui-panel-animate.ui-panel-open.ui-panel-position-left.ui-panel-display-push {
-	-webkit-transform: translate3d(0,0,0);
-	transform: translate3d(0,0,0);
-	-moz-transform: none;
-}
-/* Panel right closed */
-.ui-panel-position-right {
-	right: -17em;
-}
-/* Panel right closed animated */
-.ui-panel-animate.ui-panel-position-right.ui-panel-display-overlay,
-.ui-panel-animate.ui-panel-position-right.ui-panel-display-push {
-	right: 0;
-	-webkit-transform: translate3d(17em,0,0);
-	-moz-transform: translate3d(17em,0,0);
-	transform: translate3d(17em,0,0);
-}
-/* Panel right open */
-.ui-panel-position-right.ui-panel-display-reveal, /* Unset "panel right closed" for reveal */
-.ui-panel-position-right.ui-panel-open {
-	right: 0;
-}
-/* Panel right open animated */
-.ui-panel-animate.ui-panel-open.ui-panel-position-right.ui-panel-display-overlay,
-.ui-panel-animate.ui-panel-open.ui-panel-position-right.ui-panel-display-push {
-	-webkit-transform: translate3d(0,0,0);
-	transform: translate3d(0,0,0);
-	-moz-transform: none;
-}
-/* Wrapper and fixed toolbars positioning (for reveal and push) */
-/* Panel left open */
-.ui-panel-page-content-position-left {
-	left: 17em;
-	right: -17em;
-}
-/* Panel left open animated */
-.ui-panel-animate.ui-panel-page-content-position-left {
-	left: 0;
-	right: 0;
-	-webkit-transform: translate3d(17em,0,0);
-	-moz-transform: translate3d(17em,0,0);
-	transform: translate3d(17em,0,0);
-}
-/* Panel right open */
-.ui-panel-page-content-position-right {
-	left: -17em;
-	right: 17em;
-}
-/* Panel right open animated */
-.ui-panel-animate.ui-panel-page-content-position-right {
-	left: 0;
-	right: 0;
-	-webkit-transform: translate3d(-17em,0,0);
-	-moz-transform: translate3d(-17em,0,0);
-	transform: translate3d(-17em,0,0);
-}
-/* Dismiss model open */
-.ui-panel-dismiss-open.ui-panel-dismiss-position-left {
-	left: 17em;
-}
-.ui-panel-dismiss-open.ui-panel-dismiss-position-right {
-	right: 17em;
-}
-/* Shadows and borders */
-.ui-panel-display-reveal {
-	-webkit-box-shadow: inset -5px 0 5px rgba(0,0,0,.15);
-	-moz-box-shadow: inset -5px 0 5px rgba(0,0,0,.15);
-	box-shadow: inset -5px 0 5px rgba(0,0,0,.15);
-}
-.ui-panel-position-right.ui-panel-display-reveal {
-	-webkit-box-shadow: inset 5px 0 5px rgba(0,0,0,.15);
-	-moz-box-shadow: inset 5px 0 5px rgba(0,0,0,.15);
-	box-shadow: inset 5px 0 5px rgba(0,0,0,.15);
-}
-.ui-panel-display-overlay {
-	-webkit-box-shadow: 5px 0 5px rgba(0,0,0,.15);
-	-moz-box-shadow: 5px 0 5px rgba(0,0,0,.15);
-	box-shadow: 5px 0 5px rgba(0,0,0,.15);
-}
-.ui-panel-position-right.ui-panel-display-overlay {
-	-webkit-box-shadow: -5px 0 5px rgba(0,0,0,.15);
-	-moz-box-shadow: -5px 0 5px rgba(0,0,0,.15);
-	box-shadow: -5px 0 5px rgba(0,0,0,.15);
-}
-.ui-panel-open.ui-panel-position-left.ui-panel-display-push {
-	border-right-width: 1px;
-	margin-right: -1px;
-}
-.ui-panel-page-content-position-left.ui-panel-page-content-display-push {
-	margin-left: 1px;
-	width: auto;
-}
-.ui-panel-open.ui-panel-position-right.ui-panel-display-push {
-	border-left-width: 1px;
-	margin-left: -1px;
-}
-.ui-panel-page-content-position-right.ui-panel-page-content-display-push {
-	margin-right: 1px;
-	width: auto;
-}
-/* Responsive: wrap on wide viewports once open */
-@media (min-width:55em) {
-	.ui-responsive-panel .ui-panel-page-content-open.ui-panel-page-content-position-left {
-		margin-right: 17em;
-	}
-	.ui-responsive-panel .ui-panel-page-content-open.ui-panel-page-content-position-right {
-		margin-left: 17em;
-	}
-	.ui-responsive-panel .ui-panel-page-content-open {
-		width: auto;	
-	}
-	.ui-responsive-panel .ui-panel-dismiss-display-push,
-	.ui-responsive-panel.ui-page-active ~ .ui-panel-dismiss-display-push {
-		display: none;
-	}
-}
-.ui-tabs {
-	position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-	padding: .2em;
-}
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_jquerymobile_css.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_jquerymobile_css.xml
deleted file mode 100644
index 07d3487c3dfe588ce2cd91a550787b1dd3113a90..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_jquerymobile_css.xml
+++ /dev/null
@@ -1,322 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Style" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>jquerymobile.css</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>rjs_jquerymobile_css</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Style</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>jQuery Mobile CSS</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>1.4.0-alpha.2</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish_alive</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>romain</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1406898405.64</float>
-                        <string>GMT</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published_alive</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>zope</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>946.44927.40202.16725</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1446483721.78</float>
-                        <string>UTC</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>romain</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>empty</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1404999442.96</float>
-                        <string>GMT</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_jquerymobile_js.js b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_jquerymobile_js.js
deleted file mode 100644
index 07d7039d0db35de9b9254e4da26d6f2e94d9b22f..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_jquerymobile_js.js
+++ /dev/null
@@ -1,14988 +0,0 @@
-// CUSTOM HACKS:
-// added wrapper class property on select to enable readonly (wontfix)
-
-/*!
-* jQuery Mobile 1.5.0-pre
-* Git HEAD hash: 39cb20fe26969941329347e2f41a222f94c63138 <> Date: Tue Aug 26 2014 13:31:05 UTC
-* http://jquerymobile.com
-*
-* Copyright 2010, 2014 jQuery Foundation, Inc. and othercontributors
-* Released under the MIT license.
-* http://jquery.org/license
-*
-*/
-
-
-(function ( root, doc, factory ) {
-	if ( typeof define === "function" && define.amd ) {
-		// AMD. Register as an anonymous module.
-		define( [ "jquery" ], function ( $ ) {
-			factory( $, root, doc );
-			return $.mobile;
-		});
-	} else {
-		// Browser globals
-		factory( root.jQuery, root, doc );
-	}
-}( this, document, function ( jQuery, window, document, undefined ) {
-(function( $ ) {
-	$.mobile = {};
-}( jQuery ));
-
-(function( $, window, undefined ) {
-	$.extend( $.mobile, {
-
-		// Version of the jQuery Mobile Framework
-		version: "1.5.0-pre",
-
-		// Deprecated and no longer used in 1.4 remove in 1.5
-		// Define the url parameter used for referencing widget-generated sub-pages.
-		// Translates to example.html&ui-page=subpageIdentifier
-		// hash segment before &ui-page= is used to make Ajax request
-		subPageUrlKey: "ui-page",
-
-		hideUrlBar: true,
-
-		// Keepnative Selector
-		keepNative: ":jqmData(role='none'), :jqmData(role='nojs')",
-
-		// Deprecated in 1.4 remove in 1.5
-		// Class assigned to page currently in view, and during transitions
-		activePageClass: "ui-page-active",
-
-		// Deprecated in 1.4 remove in 1.5
-		// Class used for "active" button state, from CSS framework
-		activeBtnClass: "ui-btn-active",
-
-		// Deprecated in 1.4 remove in 1.5
-		// Class used for "focus" form element state, from CSS framework
-		focusClass: "ui-focus",
-
-		// Automatically handle clicks and form submissions through Ajax, when same-domain
-		ajaxEnabled: true,
-
-		// Automatically load and show pages based on location.hash
-		hashListeningEnabled: true,
-
-		// disable to prevent jquery from bothering with links
-		linkBindingEnabled: true,
-
-		// Set default page transition - 'none' for no transitions
-		defaultPageTransition: "fade",
-
-		// Set maximum window width for transitions to apply - 'false' for no limit
-		maxTransitionWidth: false,
-
-		// Minimum scroll distance that will be remembered when returning to a page
-		// Deprecated remove in 1.5
-		minScrollBack: 0,
-
-		// Set default dialog transition - 'none' for no transitions
-		defaultDialogTransition: "pop",
-
-		// Error response message - appears when an Ajax page request fails
-		pageLoadErrorMessage: "Error Loading Page",
-
-		// For error messages, which theme does the box use?
-		pageLoadErrorMessageTheme: "a",
-
-		// replace calls to window.history.back with phonegaps navigation helper
-		// where it is provided on the window object
-		phonegapNavigationEnabled: false,
-
-		//automatically initialize the DOM when it's ready
-		autoInitializePage: true,
-
-		pushStateEnabled: true,
-
-		// allows users to opt in to ignoring content by marking a parent element as
-		// data-ignored
-		ignoreContentEnabled: false,
-
-		buttonMarkup: {
-			hoverDelay: 200
-		},
-
-		// disable the alteration of the dynamic base tag or links in the case
-		// that a dynamic base tag isn't supported
-		dynamicBaseEnabled: true,
-
-		// default the property to remove dependency on assignment in init module
-		pageContainer: $(),
-
-		//enable cross-domain page support
-		allowCrossDomainPages: false,
-
-		dialogHashKey: "&ui-state=dialog"
-	});
-})( jQuery, this );
-
-(function( $, window, undefined ) {
-	var nsNormalizeDict = {},
-		oldFind = $.find,
-		rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
-		jqmDataRE = /:jqmData\(([^)]*)\)/g;
-
-	$.extend( $.mobile, {
-
-		// Namespace used framework-wide for data-attrs. Default is no namespace
-
-		ns: "",
-
-		// Retrieve an attribute from an element and perform some massaging of the value
-
-		getAttribute: function( element, key ) {
-			var data;
-
-			element = element.jquery ? element[0] : element;
-
-			if ( element && element.getAttribute ) {
-				data = element.getAttribute( "data-" + $.mobile.ns + key );
-			}
-
-			// Copied from core's src/data.js:dataAttr()
-			// Convert from a string to a proper data type
-			try {
-				data = data === "true" ? true :
-					data === "false" ? false :
-					data === "null" ? null :
-					// Only convert to a number if it doesn't change the string
-					+data + "" === data ? +data :
-					rbrace.test( data ) ? JSON.parse( data ) :
-					data;
-			} catch( err ) {}
-
-			return data;
-		},
-
-		// Expose our cache for testing purposes.
-		nsNormalizeDict: nsNormalizeDict,
-
-		// Take a data attribute property, prepend the namespace
-		// and then camel case the attribute string. Add the result
-		// to our nsNormalizeDict so we don't have to do this again.
-		nsNormalize: function( prop ) {
-			return nsNormalizeDict[ prop ] ||
-				( nsNormalizeDict[ prop ] = $.camelCase( $.mobile.ns + prop ) );
-		},
-
-		// Find the closest javascript page element to gather settings data jsperf test
-		// http://jsperf.com/single-complex-selector-vs-many-complex-selectors/edit
-		// possibly naive, but it shows that the parsing overhead for *just* the page selector vs
-		// the page and dialog selector is negligable. This could probably be speed up by
-		// doing a similar parent node traversal to the one found in the inherited theme code above
-		closestPageData: function( $target ) {
-			return $target
-				.closest( ":jqmData(role='page'), :jqmData(role='dialog')" )
-				.data( "mobile-page" );
-		}
-
-	});
-
-	// Mobile version of data and removeData and hasData methods
-	// ensures all data is set and retrieved using jQuery Mobile's data namespace
-	$.fn.jqmData = function( prop, value ) {
-		var result;
-		if ( typeof prop !== "undefined" ) {
-			if ( prop ) {
-				prop = $.mobile.nsNormalize( prop );
-			}
-
-			// undefined is permitted as an explicit input for the second param
-			// in this case it returns the value and does not set it to undefined
-			if ( arguments.length < 2 || value === undefined ) {
-				result = this.data( prop );
-			} else {
-				result = this.data( prop, value );
-			}
-		}
-		return result;
-	};
-
-	$.jqmData = function( elem, prop, value ) {
-		var result;
-		if ( typeof prop !== "undefined" ) {
-			result = $.data( elem, prop ? $.mobile.nsNormalize( prop ) : prop, value );
-		}
-		return result;
-	};
-
-	$.fn.jqmRemoveData = function( prop ) {
-		return this.removeData( $.mobile.nsNormalize( prop ) );
-	};
-
-	$.jqmRemoveData = function( elem, prop ) {
-		return $.removeData( elem, $.mobile.nsNormalize( prop ) );
-	};
-
-	$.find = function( selector, context, ret, extra ) {
-		if ( selector.indexOf( ":jqmData" ) > -1 ) {
-			selector = selector.replace( jqmDataRE, "[data-" + ( $.mobile.ns || "" ) + "$1]" );
-		}
-
-		return oldFind.call( this, selector, context, ret, extra );
-	};
-
-	$.extend( $.find, oldFind );
-
-})( jQuery, this );
-
-/*!
- * jQuery UI Core c0ab71056b936627e8a7821f03c044aec6280a40
- * http://jqueryui.com
- *
- * Copyright 2013 jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/category/ui-core/
- */
-(function( $, undefined ) {
-
-var uuid = 0,
-	runiqueId = /^ui-id-\d+$/;
-
-// $.ui might exist from components with no dependencies, e.g., $.ui.position
-$.ui = $.ui || {};
-
-$.extend( $.ui, {
-	version: "c0ab71056b936627e8a7821f03c044aec6280a40",
-
-	keyCode: {
-		BACKSPACE: 8,
-		COMMA: 188,
-		DELETE: 46,
-		DOWN: 40,
-		END: 35,
-		ENTER: 13,
-		ESCAPE: 27,
-		HOME: 36,
-		LEFT: 37,
-		PAGE_DOWN: 34,
-		PAGE_UP: 33,
-		PERIOD: 190,
-		RIGHT: 39,
-		SPACE: 32,
-		TAB: 9,
-		UP: 38
-	}
-});
-
-// plugins
-$.fn.extend({
-	focus: (function( orig ) {
-		return function( delay, fn ) {
-			return typeof delay === "number" ?
-				this.each(function() {
-					var elem = this;
-					setTimeout(function() {
-						$( elem ).focus();
-						if ( fn ) {
-							fn.call( elem );
-						}
-					}, delay );
-				}) :
-				orig.apply( this, arguments );
-		};
-	})( $.fn.focus ),
-
-	scrollParent: function() {
-		var scrollParent;
-		if (($.ui.ie && (/(static|relative)/).test(this.css("position"))) || (/absolute/).test(this.css("position"))) {
-			scrollParent = this.parents().filter(function() {
-				return (/(relative|absolute|fixed)/).test($.css(this,"position")) && (/(auto|scroll)/).test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x"));
-			}).eq(0);
-		} else {
-			scrollParent = this.parents().filter(function() {
-				return (/(auto|scroll)/).test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x"));
-			}).eq(0);
-		}
-
-		return ( /fixed/ ).test( this.css( "position") ) || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent;
-	},
-
-	uniqueId: function() {
-		return this.each(function() {
-			if ( !this.id ) {
-				this.id = "ui-id-" + (++uuid);
-			}
-		});
-	},
-
-	removeUniqueId: function() {
-		return this.each(function() {
-			if ( runiqueId.test( this.id ) ) {
-				$( this ).removeAttr( "id" );
-			}
-		});
-	}
-});
-
-// selectors
-function focusable( element, isTabIndexNotNaN ) {
-	var map, mapName, img,
-		nodeName = element.nodeName.toLowerCase();
-	if ( "area" === nodeName ) {
-		map = element.parentNode;
-		mapName = map.name;
-		if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
-			return false;
-		}
-		img = $( "img[usemap=#" + mapName + "]" )[0];
-		return !!img && visible( img );
-	}
-	return ( /input|select|textarea|button|object/.test( nodeName ) ?
-		!element.disabled :
-		"a" === nodeName ?
-			element.href || isTabIndexNotNaN :
-			isTabIndexNotNaN) &&
-		// the element and all of its ancestors must be visible
-		visible( element );
-}
-
-function visible( element ) {
-	return $.expr.filters.visible( element ) &&
-		!$( element ).parents().addBack().filter(function() {
-			return $.css( this, "visibility" ) === "hidden";
-		}).length;
-}
-
-$.extend( $.expr[ ":" ], {
-	data: $.expr.createPseudo ?
-		$.expr.createPseudo(function( dataName ) {
-			return function( elem ) {
-				return !!$.data( elem, dataName );
-			};
-		}) :
-		// support: jQuery <1.8
-		function( elem, i, match ) {
-			return !!$.data( elem, match[ 3 ] );
-		},
-
-	focusable: function( element ) {
-		return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) );
-	},
-
-	tabbable: function( element ) {
-		var tabIndex = $.attr( element, "tabindex" ),
-			isTabIndexNaN = isNaN( tabIndex );
-		return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );
-	}
-});
-
-// support: jQuery <1.8
-if ( !$( "<a>" ).outerWidth( 1 ).jquery ) {
-	$.each( [ "Width", "Height" ], function( i, name ) {
-		var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
-			type = name.toLowerCase(),
-			orig = {
-				innerWidth: $.fn.innerWidth,
-				innerHeight: $.fn.innerHeight,
-				outerWidth: $.fn.outerWidth,
-				outerHeight: $.fn.outerHeight
-			};
-
-		function reduce( elem, size, border, margin ) {
-			$.each( side, function() {
-				size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;
-				if ( border ) {
-					size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0;
-				}
-				if ( margin ) {
-					size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;
-				}
-			});
-			return size;
-		}
-
-		$.fn[ "inner" + name ] = function( size ) {
-			if ( size === undefined ) {
-				return orig[ "inner" + name ].call( this );
-			}
-
-			return this.each(function() {
-				$( this ).css( type, reduce( this, size ) + "px" );
-			});
-		};
-
-		$.fn[ "outer" + name] = function( size, margin ) {
-			if ( typeof size !== "number" ) {
-				return orig[ "outer" + name ].call( this, size );
-			}
-
-			return this.each(function() {
-				$( this).css( type, reduce( this, size, true, margin ) + "px" );
-			});
-		};
-	});
-}
-
-// support: jQuery <1.8
-if ( !$.fn.addBack ) {
-	$.fn.addBack = function( selector ) {
-		return this.add( selector == null ?
-			this.prevObject : this.prevObject.filter( selector )
-		);
-	};
-}
-
-// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413)
-if ( $( "<a>" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) {
-	$.fn.removeData = (function( removeData ) {
-		return function( key ) {
-			if ( arguments.length ) {
-				return removeData.call( this, $.camelCase( key ) );
-			} else {
-				return removeData.call( this );
-			}
-		};
-	})( $.fn.removeData );
-}
-
-
-
-
-
-// deprecated
-$.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
-
-$.support.selectstart = "onselectstart" in document.createElement( "div" );
-$.fn.extend({
-	disableSelection: function() {
-		return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
-			".ui-disableSelection", function( event ) {
-				event.preventDefault();
-			});
-	},
-
-	enableSelection: function() {
-		return this.unbind( ".ui-disableSelection" );
-	},
-
-	zIndex: function( zIndex ) {
-		if ( zIndex !== undefined ) {
-			return this.css( "zIndex", zIndex );
-		}
-
-		if ( this.length ) {
-			var elem = $( this[ 0 ] ), position, value;
-			while ( elem.length && elem[ 0 ] !== document ) {
-				// Ignore z-index if position is set to a value where z-index is ignored by the browser
-				// This makes behavior of this function consistent across browsers
-				// WebKit always returns auto if the element is positioned
-				position = elem.css( "position" );
-				if ( position === "absolute" || position === "relative" || position === "fixed" ) {
-					// IE returns 0 when zIndex is not specified
-					// other browsers return a string
-					// we ignore the case of nested elements with an explicit value of 0
-					// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
-					value = parseInt( elem.css( "zIndex" ), 10 );
-					if ( !isNaN( value ) && value !== 0 ) {
-						return value;
-					}
-				}
-				elem = elem.parent();
-			}
-		}
-
-		return 0;
-	}
-});
-
-// $.ui.plugin is deprecated. Use $.widget() extensions instead.
-$.ui.plugin = {
-	add: function( module, option, set ) {
-		var i,
-			proto = $.ui[ module ].prototype;
-		for ( i in set ) {
-			proto.plugins[ i ] = proto.plugins[ i ] || [];
-			proto.plugins[ i ].push( [ option, set[ i ] ] );
-		}
-	},
-	call: function( instance, name, args, allowDisconnected ) {
-		var i,
-			set = instance.plugins[ name ];
-
-		if ( !set ) {
-			return;
-		}
-
-		if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) ) {
-			return;
-		}
-
-		for ( i = 0; i < set.length; i++ ) {
-			if ( instance.options[ set[ i ][ 0 ] ] ) {
-				set[ i ][ 1 ].apply( instance.element, args );
-			}
-		}
-	}
-};
-
-})( jQuery );
-
-(function( $, window, undefined ) {
-
-	// Subtract the height of external toolbars from the page height, if the page does not have
-	// internal toolbars of the same type
-	var compensateToolbars = function( page, desiredHeight ) {
-		var pageParent = page.parent(),
-			toolbarsAffectingHeight = [],
-			externalHeaders = pageParent.children( ":jqmData(role='header')" ),
-			internalHeaders = page.children( ":jqmData(role='header')" ),
-			externalFooters = pageParent.children( ":jqmData(role='footer')" ),
-			internalFooters = page.children( ":jqmData(role='footer')" );
-
-		// If we have no internal headers, but we do have external headers, then their height
-		// reduces the page height
-		if ( internalHeaders.length === 0 && externalHeaders.length > 0 ) {
-			toolbarsAffectingHeight = toolbarsAffectingHeight.concat( externalHeaders.toArray() );
-		}
-
-		// If we have no internal footers, but we do have external footers, then their height
-		// reduces the page height
-		if ( internalFooters.length === 0 && externalFooters.length > 0 ) {
-			toolbarsAffectingHeight = toolbarsAffectingHeight.concat( externalFooters.toArray() );
-		}
-
-		$.each( toolbarsAffectingHeight, function( index, value ) {
-			desiredHeight -= $( value ).outerHeight();
-		});
-
-		// Height must be at least zero
-		return Math.max( 0, desiredHeight );
-	};
-
-	$.extend( $.mobile, {
-		// define the window and the document objects
-		window: $( window ),
-		document: $( document ),
-
-		// TODO: Remove and use $.ui.keyCode directly
-		keyCode: $.ui.keyCode,
-
-		// Place to store various widget extensions
-		behaviors: {},
-
-		// Scroll page vertically: scroll to 0 to hide iOS address bar, or pass a Y value
-		silentScroll: function( ypos ) {
-			if ( $.type( ypos ) !== "number" ) {
-				ypos = $.mobile.defaultHomeScroll;
-			}
-
-			// prevent scrollstart and scrollstop events
-			$.event.special.scrollstart.enabled = false;
-
-			setTimeout(function() {
-				window.scrollTo( 0, ypos );
-				$.mobile.document.trigger( "silentscroll", { x: 0, y: ypos });
-			}, 20 );
-
-			setTimeout(function() {
-				$.event.special.scrollstart.enabled = true;
-			}, 150 );
-		},
-
-		getClosestBaseUrl: function( ele )	{
-			// Find the closest page and extract out its url.
-			var url = $( ele ).closest( ".ui-page" ).jqmData( "url" ),
-				base = $.mobile.path.documentBase.hrefNoHash;
-
-			if ( !$.mobile.dynamicBaseEnabled || !url || !$.mobile.path.isPath( url ) ) {
-				url = base;
-			}
-
-			return $.mobile.path.makeUrlAbsolute( url, base );
-		},
-		removeActiveLinkClass: function( forceRemoval ) {
-			if ( !!$.mobile.activeClickedLink &&
-				( !$.mobile.activeClickedLink.closest( "." + $.mobile.activePageClass ).length ||
-					forceRemoval ) ) {
-
-				$.mobile.activeClickedLink.removeClass( $.mobile.activeBtnClass );
-			}
-			$.mobile.activeClickedLink = null;
-		},
-
-		// DEPRECATED in 1.4
-		// Find the closest parent with a theme class on it. Note that
-		// we are not using $.fn.closest() on purpose here because this
-		// method gets called quite a bit and we need it to be as fast
-		// as possible.
-		getInheritedTheme: function( el, defaultTheme ) {
-			var e = el[ 0 ],
-				ltr = "",
-				re = /ui-(bar|body|overlay)-([a-z])\b/,
-				c, m;
-			while ( e ) {
-				c = e.className || "";
-				if ( c && ( m = re.exec( c ) ) && ( ltr = m[ 2 ] ) ) {
-					// We found a parent with a theme class
-					// on it so bail from this loop.
-					break;
-				}
-
-				e = e.parentNode;
-			}
-			// Return the theme letter we found, if none, return the
-			// specified default.
-			return ltr || defaultTheme || "a";
-		},
-
-		enhanceable: function( elements ) {
-			return this.haveParents( elements, "enhance" );
-		},
-
-		hijackable: function( elements ) {
-			return this.haveParents( elements, "ajax" );
-		},
-
-		haveParents: function( elements, attr ) {
-			if ( !$.mobile.ignoreContentEnabled ) {
-				return elements;
-			}
-
-			var count = elements.length,
-				$newSet = $(),
-				e, $element, excluded,
-				i, c;
-
-			for ( i = 0; i < count; i++ ) {
-				$element = elements.eq( i );
-				excluded = false;
-				e = elements[ i ];
-
-				while ( e ) {
-					c = e.getAttribute ? e.getAttribute( "data-" + $.mobile.ns + attr ) : "";
-
-					if ( c === "false" ) {
-						excluded = true;
-						break;
-					}
-
-					e = e.parentNode;
-				}
-
-				if ( !excluded ) {
-					$newSet = $newSet.add( $element );
-				}
-			}
-
-			return $newSet;
-		},
-
-		getScreenHeight: function() {
-			// Native innerHeight returns more accurate value for this across platforms,
-			// jQuery version is here as a normalized fallback for platforms like Symbian
-			return window.innerHeight || $.mobile.window.height();
-		},
-
-		//simply set the active page's minimum height to screen height, depending on orientation
-		resetActivePageHeight: function( height ) {
-			var page = $( "." + $.mobile.activePageClass ),
-				pageHeight = page.height(),
-				pageOuterHeight = page.outerHeight( true );
-
-			height = compensateToolbars( page,
-				( typeof height === "number" ) ? height : $.mobile.getScreenHeight() );
-
-			// Remove any previous min-height setting
-			page.css( "min-height", "" );
-
-			// Set the minimum height only if the height as determined by CSS is insufficient
-			if ( page.height() < height ) {
-				page.css( "min-height", height - ( pageOuterHeight - pageHeight ) );
-			}
-		},
-
-		loading: function() {
-			// If this is the first call to this function, instantiate a loader widget
-			var loader = this.loading._widget || $( $.mobile.loader.prototype.defaultHtml ).loader(),
-
-				// Call the appropriate method on the loader
-				returnValue = loader.loader.apply( loader, arguments );
-
-			// Make sure the loader is retained for future calls to this function.
-			this.loading._widget = loader;
-
-			return returnValue;
-		}
-	});
-
-	$.addDependents = function( elem, newDependents ) {
-		var $elem = $( elem ),
-			dependents = $elem.jqmData( "dependents" ) || $();
-
-		$elem.jqmData( "dependents", $( dependents ).add( newDependents ) );
-	};
-
-	// plugins
-	$.fn.extend({
-		removeWithDependents: function() {
-			$.removeWithDependents( this );
-		},
-
-		// Enhance child elements
-		enhanceWithin: function() {
-			var index,
-				widgetElements = {},
-				keepNative = $.mobile.page.prototype.keepNativeSelector(),
-				that = this;
-
-			// Add no js class to elements
-			if ( $.mobile.nojs ) {
-				$.mobile.nojs( this );
-			}
-
-			// Bind links for ajax nav
-			if ( $.mobile.links ) {
-				$.mobile.links( this );
-			}
-
-			// Degrade inputs for styleing
-			if ( $.mobile.degradeInputsWithin ) {
-				$.mobile.degradeInputsWithin( this );
-			}
-
-			// Run buttonmarkup
-			if ( $.fn.buttonMarkup ) {
-				this.find( $.fn.buttonMarkup.initSelector ).not( keepNative )
-				.jqmEnhanceable().buttonMarkup();
-			}
-
-			// Add classes for fieldContain
-			if ( $.fn.fieldcontain ) {
-				this.find( ":jqmData(role='fieldcontain')" ).not( keepNative )
-				.jqmEnhanceable().fieldcontain();
-			}
-
-			// Enhance widgets
-			$.each( $.mobile.widgets, function( name, constructor ) {
-
-				// If initSelector not false find elements
-				if ( constructor.initSelector ) {
-
-					// Filter elements that should not be enhanced based on parents
-					var elements = $.mobile.enhanceable( that.find( constructor.initSelector ) );
-
-					// If any matching elements remain filter ones with keepNativeSelector
-					if ( elements.length > 0 ) {
-
-						// $.mobile.page.prototype.keepNativeSelector is deprecated this is just for backcompat
-						// Switch to $.mobile.keepNative in 1.5 which is just a value not a function
-						elements = elements.not( keepNative );
-					}
-
-					// Enhance whatever is left
-					if ( elements.length > 0 ) {
-						widgetElements[ constructor.prototype.widgetName ] = elements;
-					}
-				}
-			});
-
-			for ( index in widgetElements ) {
-				widgetElements[ index ][ index ]();
-			}
-
-			return this;
-		},
-
-		addDependents: function( newDependents ) {
-			$.addDependents( this, newDependents );
-		},
-
-		// note that this helper doesn't attempt to handle the callback
-		// or setting of an html element's text, its only purpose is
-		// to return the html encoded version of the text in all cases. (thus the name)
-		getEncodedText: function() {
-			return $( "<a>" ).text( this.text() ).html();
-		},
-
-		// fluent helper function for the mobile namespaced equivalent
-		jqmEnhanceable: function() {
-			return $.mobile.enhanceable( this );
-		},
-
-		jqmHijackable: function() {
-			return $.mobile.hijackable( this );
-		}
-	});
-
-	$.removeWithDependents = function( nativeElement ) {
-		var element = $( nativeElement );
-
-		( element.jqmData( "dependents" ) || $() ).remove();
-		element.remove();
-	};
-	$.addDependents = function( nativeElement, newDependents ) {
-		var element = $( nativeElement ),
-			dependents = element.jqmData( "dependents" ) || $();
-
-		element.jqmData( "dependents", $( dependents ).add( newDependents ) );
-	};
-
-	$.find.matches = function( expr, set ) {
-		return $.find( expr, null, null, set );
-	};
-
-	$.find.matchesSelector = function( node, expr ) {
-		return $.find( expr, null, null, [ node ] ).length > 0;
-	};
-
-})( jQuery, this );
-
-
-/*!
- * jQuery UI Widget c0ab71056b936627e8a7821f03c044aec6280a40
- * http://jqueryui.com
- *
- * Copyright 2013 jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/jQuery.widget/
- */
-(function( $, undefined ) {
-
-var uuid = 0,
-	slice = Array.prototype.slice,
-	_cleanData = $.cleanData;
-$.cleanData = function( elems ) {
-	for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
-		try {
-			$( elem ).triggerHandler( "remove" );
-		// http://bugs.jquery.com/ticket/8235
-		} catch( e ) {}
-	}
-	_cleanData( elems );
-};
-
-$.widget = function( name, base, prototype ) {
-	var fullName, existingConstructor, constructor, basePrototype,
-		// proxiedPrototype allows the provided prototype to remain unmodified
-		// so that it can be used as a mixin for multiple widgets (#8876)
-		proxiedPrototype = {},
-		namespace = name.split( "." )[ 0 ];
-
-	name = name.split( "." )[ 1 ];
-	fullName = namespace + "-" + name;
-
-	if ( !prototype ) {
-		prototype = base;
-		base = $.Widget;
-	}
-
-	// create selector for plugin
-	$.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
-		return !!$.data( elem, fullName );
-	};
-
-	$[ namespace ] = $[ namespace ] || {};
-	existingConstructor = $[ namespace ][ name ];
-	constructor = $[ namespace ][ name ] = function( options, element ) {
-		// allow instantiation without "new" keyword
-		if ( !this._createWidget ) {
-			return new constructor( options, element );
-		}
-
-		// allow instantiation without initializing for simple inheritance
-		// must use "new" keyword (the code above always passes args)
-		if ( arguments.length ) {
-			this._createWidget( options, element );
-		}
-	};
-	// extend with the existing constructor to carry over any static properties
-	$.extend( constructor, existingConstructor, {
-		version: prototype.version,
-		// copy the object used to create the prototype in case we need to
-		// redefine the widget later
-		_proto: $.extend( {}, prototype ),
-		// track widgets that inherit from this widget in case this widget is
-		// redefined after a widget inherits from it
-		_childConstructors: []
-	});
-
-	basePrototype = new base();
-	// we need to make the options hash a property directly on the new instance
-	// otherwise we'll modify the options hash on the prototype that we're
-	// inheriting from
-	basePrototype.options = $.widget.extend( {}, basePrototype.options );
-	$.each( prototype, function( prop, value ) {
-		if ( !$.isFunction( value ) ) {
-			proxiedPrototype[ prop ] = value;
-			return;
-		}
-		proxiedPrototype[ prop ] = (function() {
-			var _super = function() {
-					return base.prototype[ prop ].apply( this, arguments );
-				},
-				_superApply = function( args ) {
-					return base.prototype[ prop ].apply( this, args );
-				};
-			return function() {
-				var __super = this._super,
-					__superApply = this._superApply,
-					returnValue;
-
-				this._super = _super;
-				this._superApply = _superApply;
-
-				returnValue = value.apply( this, arguments );
-
-				this._super = __super;
-				this._superApply = __superApply;
-
-				return returnValue;
-			};
-		})();
-	});
-	constructor.prototype = $.widget.extend( basePrototype, {
-		// TODO: remove support for widgetEventPrefix
-		// always use the name + a colon as the prefix, e.g., draggable:start
-		// don't prefix for widgets that aren't DOM-based
-		widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name
-	}, proxiedPrototype, {
-		constructor: constructor,
-		namespace: namespace,
-		widgetName: name,
-		widgetFullName: fullName
-	});
-
-	// If this widget is being redefined then we need to find all widgets that
-	// are inheriting from it and redefine all of them so that they inherit from
-	// the new version of this widget. We're essentially trying to replace one
-	// level in the prototype chain.
-	if ( existingConstructor ) {
-		$.each( existingConstructor._childConstructors, function( i, child ) {
-			var childPrototype = child.prototype;
-
-			// redefine the child widget using the same prototype that was
-			// originally used, but inherit from the new version of the base
-			$.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto );
-		});
-		// remove the list of existing child constructors from the old constructor
-		// so the old child constructors can be garbage collected
-		delete existingConstructor._childConstructors;
-	} else {
-		base._childConstructors.push( constructor );
-	}
-
-	$.widget.bridge( name, constructor );
-
-	return constructor;
-};
-
-$.widget.extend = function( target ) {
-	var input = slice.call( arguments, 1 ),
-		inputIndex = 0,
-		inputLength = input.length,
-		key,
-		value;
-	for ( ; inputIndex < inputLength; inputIndex++ ) {
-		for ( key in input[ inputIndex ] ) {
-			value = input[ inputIndex ][ key ];
-			if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
-				// Clone objects
-				if ( $.isPlainObject( value ) ) {
-					target[ key ] = $.isPlainObject( target[ key ] ) ?
-						$.widget.extend( {}, target[ key ], value ) :
-						// Don't extend strings, arrays, etc. with objects
-						$.widget.extend( {}, value );
-				// Copy everything else by reference
-				} else {
-					target[ key ] = value;
-				}
-			}
-		}
-	}
-	return target;
-};
-
-$.widget.bridge = function( name, object ) {
-	var fullName = object.prototype.widgetFullName || name;
-	$.fn[ name ] = function( options ) {
-		var isMethodCall = typeof options === "string",
-			args = slice.call( arguments, 1 ),
-			returnValue = this;
-
-		// allow multiple hashes to be passed on init
-		options = !isMethodCall && args.length ?
-			$.widget.extend.apply( null, [ options ].concat(args) ) :
-			options;
-
-		if ( isMethodCall ) {
-			this.each(function() {
-				var methodValue,
-					instance = $.data( this, fullName );
-				if ( options === "instance" ) {
-					returnValue = instance;
-					return false;
-				}
-				if ( !instance ) {
-					return $.error( "cannot call methods on " + name + " prior to initialization; " +
-						"attempted to call method '" + options + "'" );
-				}
-				if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) {
-					return $.error( "no such method '" + options + "' for " + name + " widget instance" );
-				}
-				methodValue = instance[ options ].apply( instance, args );
-				if ( methodValue !== instance && methodValue !== undefined ) {
-					returnValue = methodValue && methodValue.jquery ?
-						returnValue.pushStack( methodValue.get() ) :
-						methodValue;
-					return false;
-				}
-			});
-		} else {
-			this.each(function() {
-				var instance = $.data( this, fullName );
-				if ( instance ) {
-					instance.option( options || {} )._init();
-				} else {
-					$.data( this, fullName, new object( options, this ) );
-				}
-			});
-		}
-
-		return returnValue;
-	};
-};
-
-$.Widget = function( /* options, element */ ) {};
-$.Widget._childConstructors = [];
-
-$.Widget.prototype = {
-	widgetName: "widget",
-	widgetEventPrefix: "",
-	defaultElement: "<div>",
-	options: {
-		disabled: false,
-
-		// callbacks
-		create: null
-	},
-	_createWidget: function( options, element ) {
-		element = $( element || this.defaultElement || this )[ 0 ];
-		this.element = $( element );
-		this.uuid = uuid++;
-		this.eventNamespace = "." + this.widgetName + this.uuid;
-		this.options = $.widget.extend( {},
-			this.options,
-			this._getCreateOptions(),
-			options );
-
-		this.bindings = $();
-		this.hoverable = $();
-		this.focusable = $();
-
-		if ( element !== this ) {
-			$.data( element, this.widgetFullName, this );
-			this._on( true, this.element, {
-				remove: function( event ) {
-					if ( event.target === element ) {
-						this.destroy();
-					}
-				}
-			});
-			this.document = $( element.style ?
-				// element within the document
-				element.ownerDocument :
-				// element is window or document
-				element.document || element );
-			this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
-		}
-
-		this._create();
-		this._trigger( "create", null, this._getCreateEventData() );
-		this._init();
-	},
-	_getCreateOptions: $.noop,
-	_getCreateEventData: $.noop,
-	_create: $.noop,
-	_init: $.noop,
-
-	destroy: function() {
-		this._destroy();
-		// we can probably remove the unbind calls in 2.0
-		// all event bindings should go through this._on()
-		this.element
-			.unbind( this.eventNamespace )
-			.removeData( this.widgetFullName )
-			// support: jquery <1.6.3
-			// http://bugs.jquery.com/ticket/9413
-			.removeData( $.camelCase( this.widgetFullName ) );
-		this.widget()
-			.unbind( this.eventNamespace )
-			.removeAttr( "aria-disabled" )
-			.removeClass(
-				this.widgetFullName + "-disabled " +
-				"ui-state-disabled" );
-
-		// clean up events and states
-		this.bindings.unbind( this.eventNamespace );
-		this.hoverable.removeClass( "ui-state-hover" );
-		this.focusable.removeClass( "ui-state-focus" );
-	},
-	_destroy: $.noop,
-
-	widget: function() {
-		return this.element;
-	},
-
-	option: function( key, value ) {
-		var options = key,
-			parts,
-			curOption,
-			i;
-
-		if ( arguments.length === 0 ) {
-			// don't return a reference to the internal hash
-			return $.widget.extend( {}, this.options );
-		}
-
-		if ( typeof key === "string" ) {
-			// handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
-			options = {};
-			parts = key.split( "." );
-			key = parts.shift();
-			if ( parts.length ) {
-				curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
-				for ( i = 0; i < parts.length - 1; i++ ) {
-					curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
-					curOption = curOption[ parts[ i ] ];
-				}
-				key = parts.pop();
-				if ( value === undefined ) {
-					return curOption[ key ] === undefined ? null : curOption[ key ];
-				}
-				curOption[ key ] = value;
-			} else {
-				if ( value === undefined ) {
-					return this.options[ key ] === undefined ? null : this.options[ key ];
-				}
-				options[ key ] = value;
-			}
-		}
-
-		this._setOptions( options );
-
-		return this;
-	},
-	_setOptions: function( options ) {
-		var key;
-
-		for ( key in options ) {
-			this._setOption( key, options[ key ] );
-		}
-
-		return this;
-	},
-	_setOption: function( key, value ) {
-		this.options[ key ] = value;
-
-		if ( key === "disabled" ) {
-			this.widget()
-				.toggleClass( this.widgetFullName + "-disabled", !!value );
-			this.hoverable.removeClass( "ui-state-hover" );
-			this.focusable.removeClass( "ui-state-focus" );
-		}
-
-		return this;
-	},
-
-	enable: function() {
-		return this._setOptions({ disabled: false });
-	},
-	disable: function() {
-		return this._setOptions({ disabled: true });
-	},
-
-	_on: function( suppressDisabledCheck, element, handlers ) {
-		var delegateElement,
-			instance = this;
-
-		// no suppressDisabledCheck flag, shuffle arguments
-		if ( typeof suppressDisabledCheck !== "boolean" ) {
-			handlers = element;
-			element = suppressDisabledCheck;
-			suppressDisabledCheck = false;
-		}
-
-		// no element argument, shuffle and use this.element
-		if ( !handlers ) {
-			handlers = element;
-			element = this.element;
-			delegateElement = this.widget();
-		} else {
-			// accept selectors, DOM elements
-			element = delegateElement = $( element );
-			this.bindings = this.bindings.add( element );
-		}
-
-		$.each( handlers, function( event, handler ) {
-			function handlerProxy() {
-				// allow widgets to customize the disabled handling
-				// - disabled as an array instead of boolean
-				// - disabled class as method for disabling individual parts
-				if ( !suppressDisabledCheck &&
-						( instance.options.disabled === true ||
-							$( this ).hasClass( "ui-state-disabled" ) ) ) {
-					return;
-				}
-				return ( typeof handler === "string" ? instance[ handler ] : handler )
-					.apply( instance, arguments );
-			}
-
-			// copy the guid so direct unbinding works
-			if ( typeof handler !== "string" ) {
-				handlerProxy.guid = handler.guid =
-					handler.guid || handlerProxy.guid || $.guid++;
-			}
-
-			var match = event.match( /^(\w+)\s*(.*)$/ ),
-				eventName = match[1] + instance.eventNamespace,
-				selector = match[2];
-			if ( selector ) {
-				delegateElement.delegate( selector, eventName, handlerProxy );
-			} else {
-				element.bind( eventName, handlerProxy );
-			}
-		});
-	},
-
-	_off: function( element, eventName ) {
-		eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + this.eventNamespace;
-		element.unbind( eventName ).undelegate( eventName );
-	},
-
-	_delay: function( handler, delay ) {
-		function handlerProxy() {
-			return ( typeof handler === "string" ? instance[ handler ] : handler )
-				.apply( instance, arguments );
-		}
-		var instance = this;
-		return setTimeout( handlerProxy, delay || 0 );
-	},
-
-	_hoverable: function( element ) {
-		this.hoverable = this.hoverable.add( element );
-		this._on( element, {
-			mouseenter: function( event ) {
-				$( event.currentTarget ).addClass( "ui-state-hover" );
-			},
-			mouseleave: function( event ) {
-				$( event.currentTarget ).removeClass( "ui-state-hover" );
-			}
-		});
-	},
-
-	_focusable: function( element ) {
-		this.focusable = this.focusable.add( element );
-		this._on( element, {
-			focusin: function( event ) {
-				$( event.currentTarget ).addClass( "ui-state-focus" );
-			},
-			focusout: function( event ) {
-				$( event.currentTarget ).removeClass( "ui-state-focus" );
-			}
-		});
-	},
-
-	_trigger: function( type, event, data ) {
-		var prop, orig,
-			callback = this.options[ type ];
-
-		data = data || {};
-		event = $.Event( event );
-		event.type = ( type === this.widgetEventPrefix ?
-			type :
-			this.widgetEventPrefix + type ).toLowerCase();
-		// the original event may come from any element
-		// so we need to reset the target on the new event
-		event.target = this.element[ 0 ];
-
-		// copy original event properties over to the new event
-		orig = event.originalEvent;
-		if ( orig ) {
-			for ( prop in orig ) {
-				if ( !( prop in event ) ) {
-					event[ prop ] = orig[ prop ];
-				}
-			}
-		}
-
-		this.element.trigger( event, data );
-		return !( $.isFunction( callback ) &&
-			callback.apply( this.element[0], [ event ].concat( data ) ) === false ||
-			event.isDefaultPrevented() );
-	}
-};
-
-$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
-	$.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
-		if ( typeof options === "string" ) {
-			options = { effect: options };
-		}
-		var hasOptions,
-			effectName = !options ?
-				method :
-				options === true || typeof options === "number" ?
-					defaultEffect :
-					options.effect || defaultEffect;
-		options = options || {};
-		if ( typeof options === "number" ) {
-			options = { duration: options };
-		}
-		hasOptions = !$.isEmptyObject( options );
-		options.complete = callback;
-		if ( options.delay ) {
-			element.delay( options.delay );
-		}
-		if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
-			element[ method ]( options );
-		} else if ( effectName !== method && element[ effectName ] ) {
-			element[ effectName ]( options.duration, options.easing, callback );
-		} else {
-			element.queue(function( next ) {
-				$( this )[ method ]();
-				if ( callback ) {
-					callback.call( element[ 0 ] );
-				}
-				next();
-			});
-		}
-	};
-});
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-var rcapitals = /[A-Z]/g,
-	replaceFunction = function( c ) {
-		return "-" + c.toLowerCase();
-	};
-
-$.extend( $.Widget.prototype, {
-	_getCreateOptions: function() {
-		var option, value,
-			elem = this.element[ 0 ],
-			options = {};
-
-		//
-		if ( !$.mobile.getAttribute( elem, "defaults" ) ) {
-			for ( option in this.options ) {
-				value = $.mobile.getAttribute( elem, option.replace( rcapitals, replaceFunction ) );
-
-				if ( value != null ) {
-					options[ option ] = value;
-				}
-			}
-		}
-
-		return options;
-	}
-});
-
-//TODO: Remove in 1.5 for backcompat only
-$.mobile.widget = $.Widget;
-
-})( jQuery );
-
-
-(function( $ ) {
-	// TODO move loader class down into the widget settings
-	var loaderClass = "ui-loader", $html = $( "html" );
-
-	$.widget( "mobile.loader", {
-		// NOTE if the global config settings are defined they will override these
-		//      options
-		options: {
-			// the theme for the loading message
-			theme: "a",
-
-			// whether the text in the loading message is shown
-			textVisible: false,
-
-			// custom html for the inner content of the loading message
-			html: "",
-
-			// the text to be displayed when the popup is shown
-			text: "loading"
-		},
-
-		defaultHtml: "<div class='" + loaderClass + "'>" +
-			"<span class='ui-icon-loading'></span>" +
-			"<h1></h1>" +
-			"</div>",
-
-		// For non-fixed supportin browsers. Position at y center (if scrollTop supported), above the activeBtn (if defined), or just 100px from top
-		fakeFixLoader: function() {
-			var activeBtn = $( "." + $.mobile.activeBtnClass ).first();
-
-			this.element
-				.css({
-					top: $.support.scrollTop && this.window.scrollTop() + this.window.height() / 2 ||
-						activeBtn.length && activeBtn.offset().top || 100
-				});
-		},
-
-		// check position of loader to see if it appears to be "fixed" to center
-		// if not, use abs positioning
-		checkLoaderPosition: function() {
-			var offset = this.element.offset(),
-				scrollTop = this.window.scrollTop(),
-				screenHeight = $.mobile.getScreenHeight();
-
-			if ( offset.top < scrollTop || ( offset.top - scrollTop ) > screenHeight ) {
-				this.element.addClass( "ui-loader-fakefix" );
-				this.fakeFixLoader();
-				this.window
-					.unbind( "scroll", this.checkLoaderPosition )
-					.bind( "scroll", $.proxy( this.fakeFixLoader, this ) );
-			}
-		},
-
-		resetHtml: function() {
-			this.element.html( $( this.defaultHtml ).html() );
-		},
-
-		// Turn on/off page loading message. Theme doubles as an object argument
-		// with the following shape: { theme: '', text: '', html: '', textVisible: '' }
-		// NOTE that the $.mobile.loading* settings and params past the first are deprecated
-		// TODO sweet jesus we need to break some of this out
-		show: function( theme, msgText, textonly ) {
-			var textVisible, message, loadSettings;
-
-			this.resetHtml();
-
-			// use the prototype options so that people can set them globally at
-			// mobile init. Consistency, it's what's for dinner
-			if ( $.type( theme ) === "object" ) {
-				loadSettings = $.extend( {}, this.options, theme );
-
-				theme = loadSettings.theme;
-			} else {
-				loadSettings = this.options;
-
-				// here we prefer the theme value passed as a string argument, then
-				// we prefer the global option because we can't use undefined default
-				// prototype options, then the prototype option
-				theme = theme || loadSettings.theme;
-			}
-
-			// set the message text, prefer the param, then the settings object
-			// then loading message
-			message = msgText || ( loadSettings.text === false ? "" : loadSettings.text );
-
-			// prepare the dom
-			$html.addClass( "ui-loading" );
-
-			textVisible = loadSettings.textVisible;
-
-			// add the proper css given the options (theme, text, etc)
-			// Force text visibility if the second argument was supplied, or
-			// if the text was explicitly set in the object args
-			this.element.attr("class", loaderClass +
-				" ui-corner-all ui-body-" + theme +
-				" ui-loader-" + ( textVisible || msgText || theme.text ? "verbose" : "default" ) +
-				( loadSettings.textonly || textonly ? " ui-loader-textonly" : "" ) );
-
-			// TODO verify that jquery.fn.html is ok to use in both cases here
-			//      this might be overly defensive in preventing unknowing xss
-			// if the html attribute is defined on the loading settings, use that
-			// otherwise use the fallbacks from above
-			if ( loadSettings.html ) {
-				this.element.html( loadSettings.html );
-			} else {
-				this.element.find( "h1" ).text( message );
-			}
-
-			// attach the loader to the DOM
-			this.element.appendTo( $.mobile.pageContainer );
-
-			// check that the loader is visible
-			this.checkLoaderPosition();
-
-			// on scroll check the loader position
-			this.window.bind( "scroll", $.proxy( this.checkLoaderPosition, this ) );
-		},
-
-		hide: function() {
-			$html.removeClass( "ui-loading" );
-
-			if ( this.options.text ) {
-				this.element.removeClass( "ui-loader-fakefix" );
-			}
-
-			$.mobile.window.unbind( "scroll", this.fakeFixLoader );
-			$.mobile.window.unbind( "scroll", this.checkLoaderPosition );
-		}
-	});
-
-})(jQuery, this);
-
-
-(function( $, undefined ) {
-
-	/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */
-	window.matchMedia = window.matchMedia || (function( doc, undefined ) {
-
-		var bool,
-			docElem = doc.documentElement,
-			refNode = docElem.firstElementChild || docElem.firstChild,
-			// fakeBody required for <FF4 when executed in <head>
-			fakeBody = doc.createElement( "body" ),
-			div = doc.createElement( "div" );
-
-		div.id = "mq-test-1";
-		div.style.cssText = "position:absolute;top:-100em";
-		fakeBody.style.background = "none";
-		fakeBody.appendChild(div);
-
-		return function(q){
-
-			div.innerHTML = "&shy;<style media=\"" + q + "\"> #mq-test-1 { width: 42px; }</style>";
-
-			docElem.insertBefore( fakeBody, refNode );
-			bool = div.offsetWidth === 42;
-			docElem.removeChild( fakeBody );
-
-			return {
-				matches: bool,
-				media: q
-			};
-
-		};
-
-	}( document ));
-
-	// $.mobile.media uses matchMedia to return a boolean.
-	$.mobile.media = function( q ) {
-		return window.matchMedia( q ).matches;
-	};
-
-})(jQuery);
-
-	(function( $, undefined ) {
-		var support = {
-			touch: "ontouchend" in document
-		};
-
-		$.mobile.support = $.mobile.support || {};
-		$.extend( $.support, support );
-		$.extend( $.mobile.support, support );
-	}( jQuery ));
-
-	(function( $, undefined ) {
-		$.extend( $.support, {
-			orientation: "orientation" in window && "onorientationchange" in window
-		});
-	}( jQuery ));
-
-(function( $, undefined ) {
-
-// thx Modernizr
-function propExists( prop ) {
-	var uc_prop = prop.charAt( 0 ).toUpperCase() + prop.substr( 1 ),
-		props = ( prop + " " + vendors.join( uc_prop + " " ) + uc_prop ).split( " " ),
-		v;
-
-	for ( v in props ) {
-		if ( fbCSS[ props[ v ] ] !== undefined ) {
-			return true;
-		}
-	}
-}
-
-var fakeBody = $( "<body>" ).prependTo( "html" ),
-	fbCSS = fakeBody[ 0 ].style,
-	vendors = [ "Webkit", "Moz", "O" ],
-	webos = "palmGetResource" in window, //only used to rule out scrollTop
-	operamini = window.operamini && ({}).toString.call( window.operamini ) === "[object OperaMini]",
-	bb = window.blackberry && !propExists( "-webkit-transform" ), //only used to rule out box shadow, as it's filled opaque on BB 5 and lower
-	nokiaLTE7_3;
-
-// inline SVG support test
-function inlineSVG() {
-	// Thanks Modernizr & Erik Dahlstrom
-	var w = window,
-		svg = !!w.document.createElementNS && !!w.document.createElementNS( "http://www.w3.org/2000/svg", "svg" ).createSVGRect && !( w.opera && navigator.userAgent.indexOf( "Chrome" ) === -1 ),
-		support = function( data ) {
-			if ( !( data && svg ) ) {
-				$( "html" ).addClass( "ui-nosvg" );
-			}
-		},
-		img = new w.Image();
-
-	img.onerror = function() {
-		support( false );
-	};
-	img.onload = function() {
-		support( img.width === 1 && img.height === 1 );
-	};
-	img.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
-}
-
-function transform3dTest() {
-	var mqProp = "transform-3d",
-		// Because the `translate3d` test below throws false positives in Android:
-		ret = $.mobile.media( "(-" + vendors.join( "-" + mqProp + "),(-" ) + "-" + mqProp + "),(" + mqProp + ")" ),
-		el, transforms, t;
-
-	if ( ret ) {
-		return !!ret;
-	}
-
-	el = document.createElement( "div" );
-	transforms = {
-		// We’re omitting Opera for the time being; MS uses unprefixed.
-		"MozTransform": "-moz-transform",
-		"transform": "transform"
-	};
-
-	fakeBody.append( el );
-
-	for ( t in transforms ) {
-		if ( el.style[ t ] !== undefined ) {
-			el.style[ t ] = "translate3d( 100px, 1px, 1px )";
-			ret = window.getComputedStyle( el ).getPropertyValue( transforms[ t ] );
-		}
-	}
-	return ( !!ret && ret !== "none" );
-}
-
-// Test for dynamic-updating base tag support ( allows us to avoid href,src attr rewriting )
-function baseTagTest() {
-	var fauxBase = location.protocol + "//" + location.host + location.pathname + "ui-dir/",
-		base = $( "head base" ),
-		fauxEle = null,
-		href = "",
-		link, rebase;
-
-	if ( !base.length ) {
-		base = fauxEle = $( "<base>", { "href": fauxBase }).appendTo( "head" );
-	} else {
-		href = base.attr( "href" );
-	}
-
-	link = $( "<a href='testurl' />" ).prependTo( fakeBody );
-	rebase = link[ 0 ].href;
-	base[ 0 ].href = href || location.pathname;
-
-	if ( fauxEle ) {
-		fauxEle.remove();
-	}
-	return rebase.indexOf( fauxBase ) === 0;
-}
-
-// Thanks Modernizr
-function cssPointerEventsTest() {
-	var element = document.createElement( "x" ),
-		documentElement = document.documentElement,
-		getComputedStyle = window.getComputedStyle,
-		supports;
-
-	if ( !( "pointerEvents" in element.style ) ) {
-		return false;
-	}
-
-	element.style.pointerEvents = "auto";
-	element.style.pointerEvents = "x";
-	documentElement.appendChild( element );
-	supports = getComputedStyle &&
-	getComputedStyle( element, "" ).pointerEvents === "auto";
-	documentElement.removeChild( element );
-	return !!supports;
-}
-
-function boundingRect() {
-	var div = document.createElement( "div" );
-	return typeof div.getBoundingClientRect !== "undefined";
-}
-
-// non-UA-based IE version check by James Padolsey, modified by jdalton - from http://gist.github.com/527683
-// allows for inclusion of IE 6+, including Windows Mobile 7
-$.extend( $.mobile, { browser: {} } );
-$.mobile.browser.oldIE = (function() {
-	var v = 3,
-		div = document.createElement( "div" ),
-		a = div.all || [];
-
-	do {
-		div.innerHTML = "<!--[if gt IE " + ( ++v ) + "]><br><![endif]-->";
-	} while( a[0] );
-
-	return v > 4 ? v : !v;
-})();
-
-function fixedPosition() {
-	var w = window,
-		ua = navigator.userAgent,
-		platform = navigator.platform,
-		// Rendering engine is Webkit, and capture major version
-		wkmatch = ua.match( /AppleWebKit\/([0-9]+)/ ),
-		wkversion = !!wkmatch && wkmatch[ 1 ],
-		ffmatch = ua.match( /Fennec\/([0-9]+)/ ),
-		ffversion = !!ffmatch && ffmatch[ 1 ],
-		operammobilematch = ua.match( /Opera Mobi\/([0-9]+)/ ),
-		omversion = !!operammobilematch && operammobilematch[ 1 ];
-
-	if (
-		// iOS 4.3 and older : Platform is iPhone/Pad/Touch and Webkit version is less than 534 (ios5)
-		( ( platform.indexOf( "iPhone" ) > -1 || platform.indexOf( "iPad" ) > -1  || platform.indexOf( "iPod" ) > -1 ) && wkversion && wkversion < 534 ) ||
-		// Opera Mini
-		( w.operamini && ({}).toString.call( w.operamini ) === "[object OperaMini]" ) ||
-		( operammobilematch && omversion < 7458 )	||
-		//Android lte 2.1: Platform is Android and Webkit version is less than 533 (Android 2.2)
-		( ua.indexOf( "Android" ) > -1 && wkversion && wkversion < 533 ) ||
-		// Firefox Mobile before 6.0 -
-		( ffversion && ffversion < 6 ) ||
-		// WebOS less than 3
-		( "palmGetResource" in window && wkversion && wkversion < 534 )	||
-		// MeeGo
-		( ua.indexOf( "MeeGo" ) > -1 && ua.indexOf( "NokiaBrowser/8.5.0" ) > -1 ) ) {
-		return false;
-	}
-
-	return true;
-}
-
-$.extend( $.support, {
-	// Note, Chrome for iOS has an extremely quirky implementation of popstate.
-	// We've chosen to take the shortest path to a bug fix here for issue #5426
-	// See the following link for information about the regex chosen
-	// https://developers.google.com/chrome/mobile/docs/user-agent#chrome_for_ios_user-agent
-	pushState: "pushState" in history &&
-		"replaceState" in history &&
-		// When running inside a FF iframe, calling replaceState causes an error
-		!( window.navigator.userAgent.indexOf( "Firefox" ) >= 0 && window.top !== window ) &&
-		( window.navigator.userAgent.search(/CriOS/) === -1 ),
-
-	mediaquery: $.mobile.media( "only all" ),
-	cssPseudoElement: !!propExists( "content" ),
-	touchOverflow: !!propExists( "overflowScrolling" ),
-	cssTransform3d: transform3dTest(),
-	boxShadow: !!propExists( "boxShadow" ) && !bb,
-	fixedPosition: fixedPosition(),
-	scrollTop: ("pageXOffset" in window ||
-		"scrollTop" in document.documentElement ||
-		"scrollTop" in fakeBody[ 0 ]) && !webos && !operamini,
-
-	dynamicBaseTag: baseTagTest(),
-	cssPointerEvents: cssPointerEventsTest(),
-	boundingRect: boundingRect(),
-	inlineSVG: inlineSVG
-});
-
-fakeBody.remove();
-
-// $.mobile.ajaxBlacklist is used to override ajaxEnabled on platforms that have known conflicts with hash history updates (BB5, Symbian)
-// or that generally work better browsing in regular http for full page refreshes (Opera Mini)
-// Note: This detection below is used as a last resort.
-// We recommend only using these detection methods when all other more reliable/forward-looking approaches are not possible
-nokiaLTE7_3 = (function() {
-
-	var ua = window.navigator.userAgent;
-
-	//The following is an attempt to match Nokia browsers that are running Symbian/s60, with webkit, version 7.3 or older
-	return ua.indexOf( "Nokia" ) > -1 &&
-			( ua.indexOf( "Symbian/3" ) > -1 || ua.indexOf( "Series60/5" ) > -1 ) &&
-			ua.indexOf( "AppleWebKit" ) > -1 &&
-			ua.match( /(BrowserNG|NokiaBrowser)\/7\.[0-3]/ );
-})();
-
-// Support conditions that must be met in order to proceed
-// default enhanced qualifications are media query support OR IE 7+
-
-$.mobile.gradeA = function() {
-	return ( ( $.support.mediaquery && $.support.cssPseudoElement ) || $.mobile.browser.oldIE && $.mobile.browser.oldIE >= 8 ) && ( $.support.boundingRect || $.fn.jquery.match(/1\.[0-7+]\.[0-9+]?/) !== null );
-};
-
-$.mobile.ajaxBlacklist =
-			// BlackBerry browsers, pre-webkit
-			window.blackberry && !window.WebKitPoint ||
-			// Opera Mini
-			operamini ||
-			// Symbian webkits pre 7.3
-			nokiaLTE7_3;
-
-// Lastly, this workaround is the only way we've found so far to get pre 7.3 Symbian webkit devices
-// to render the stylesheets when they're referenced before this script, as we'd recommend doing.
-// This simply reappends the CSS in place, which for some reason makes it apply
-if ( nokiaLTE7_3 ) {
-	$(function() {
-		$( "head link[rel='stylesheet']" ).attr( "rel", "alternate stylesheet" ).attr( "rel", "stylesheet" );
-	});
-}
-
-// For ruling out shadows via css
-if ( !$.support.boxShadow ) {
-	$( "html" ).addClass( "ui-noboxshadow" );
-}
-
-})( jQuery );
-
-
-(function( $, undefined ) {
-	var $win = $.mobile.window, self,
-		dummyFnToInitNavigate = function() {
-		};
-
-	$.event.special.beforenavigate = {
-		setup: function() {
-			$win.on( "navigate", dummyFnToInitNavigate );
-		},
-
-		teardown: function() {
-			$win.off( "navigate", dummyFnToInitNavigate );
-		}
-	};
-
-	$.event.special.navigate = self = {
-		bound: false,
-
-		pushStateEnabled: true,
-
-		originalEventName: undefined,
-
-		// If pushstate support is present and push state support is defined to
-		// be true on the mobile namespace.
-		isPushStateEnabled: function() {
-			return $.support.pushState &&
-				$.mobile.pushStateEnabled === true &&
-				this.isHashChangeEnabled();
-		},
-
-		// !! assumes mobile namespace is present
-		isHashChangeEnabled: function() {
-			return $.mobile.hashListeningEnabled === true;
-		},
-
-		// TODO a lot of duplication between popstate and hashchange
-		popstate: function( event ) {
-			var newEvent = new $.Event( "navigate" ),
-				beforeNavigate = new $.Event( "beforenavigate" ),
-				state = event.originalEvent.state || {};
-
-			beforeNavigate.originalEvent = event;
-			$win.trigger( beforeNavigate );
-
-			if ( beforeNavigate.isDefaultPrevented() ) {
-				return;
-			}
-
-			if ( event.historyState ) {
-				$.extend(state, event.historyState);
-			}
-
-			// Make sure the original event is tracked for the end
-			// user to inspect incase they want to do something special
-			newEvent.originalEvent = event;
-
-			// NOTE we let the current stack unwind because any assignment to
-			//      location.hash will stop the world and run this event handler. By
-			//      doing this we create a similar behavior to hashchange on hash
-			//      assignment
-			setTimeout(function() {
-				$win.trigger( newEvent, {
-					state: state
-				});
-			}, 0);
-		},
-
-		hashchange: function( event /*, data */ ) {
-			var newEvent = new $.Event( "navigate" ),
-				beforeNavigate = new $.Event( "beforenavigate" );
-
-			beforeNavigate.originalEvent = event;
-			$win.trigger( beforeNavigate );
-
-			if ( beforeNavigate.isDefaultPrevented() ) {
-				return;
-			}
-
-			// Make sure the original event is tracked for the end
-			// user to inspect incase they want to do something special
-			newEvent.originalEvent = event;
-
-			// Trigger the hashchange with state provided by the user
-			// that altered the hash
-			$win.trigger( newEvent, {
-				// Users that want to fully normalize the two events
-				// will need to do history management down the stack and
-				// add the state to the event before this binding is fired
-				// TODO consider allowing for the explicit addition of callbacks
-				//      to be fired before this value is set to avoid event timing issues
-				state: event.hashchangeState || {}
-			});
-		},
-
-		// TODO We really only want to set this up once
-		//      but I'm not clear if there's a beter way to achieve
-		//      this with the jQuery special event structure
-		setup: function( /* data, namespaces */ ) {
-			if ( self.bound ) {
-				return;
-			}
-
-			self.bound = true;
-
-			if ( self.isPushStateEnabled() ) {
-				self.originalEventName = "popstate";
-				$win.bind( "popstate.navigate", self.popstate );
-			} else if ( self.isHashChangeEnabled() ) {
-				self.originalEventName = "hashchange";
-				$win.bind( "hashchange.navigate", self.hashchange );
-			}
-		}
-	};
-})( jQuery );
-
-
-
-(function( $, undefined ) {
-		var path, $base, dialogHashKey = "&ui-state=dialog";
-
-		$.mobile.path = path = {
-			uiStateKey: "&ui-state",
-
-			// This scary looking regular expression parses an absolute URL or its relative
-			// variants (protocol, site, document, query, and hash), into the various
-			// components (protocol, host, path, query, fragment, etc that make up the
-			// URL as well as some other commonly used sub-parts. When used with RegExp.exec()
-			// or String.match, it parses the URL into a results array that looks like this:
-			//
-			//     [0]: http://jblas:password@mycompany.com:8080/mail/inbox?msg=1234&type=unread#msg-content
-			//     [1]: http://jblas:password@mycompany.com:8080/mail/inbox?msg=1234&type=unread
-			//     [2]: http://jblas:password@mycompany.com:8080/mail/inbox
-			//     [3]: http://jblas:password@mycompany.com:8080
-			//     [4]: http:
-			//     [5]: //
-			//     [6]: jblas:password@mycompany.com:8080
-			//     [7]: jblas:password
-			//     [8]: jblas
-			//     [9]: password
-			//    [10]: mycompany.com:8080
-			//    [11]: mycompany.com
-			//    [12]: 8080
-			//    [13]: /mail/inbox
-			//    [14]: /mail/
-			//    [15]: inbox
-			//    [16]: ?msg=1234&type=unread
-			//    [17]: #msg-content
-			//
-			urlParseRE: /^\s*(((([^:\/#\?]+:)?(?:(\/\/)((?:(([^:@\/#\?]+)(?:\:([^:@\/#\?]+))?)@)?(([^:\/#\?\]\[]+|\[[^\/\]@#?]+\])(?:\:([0-9]+))?))?)?)?((\/?(?:[^\/\?#]+\/+)*)([^\?#]*)))?(\?[^#]+)?)(#.*)?/,
-
-			// Abstraction to address xss (Issue #4787) by removing the authority in
-			// browsers that auto-decode it. All references to location.href should be
-			// replaced with a call to this method so that it can be dealt with properly here
-			getLocation: function( url ) {
-				var parsedUrl = this.parseUrl( url || location.href ),
-					uri = url ? parsedUrl : location,
-
-					// Make sure to parse the url or the location object for the hash because using
-					// location.hash is autodecoded in firefox, the rest of the url should be from
-					// the object (location unless we're testing) to avoid the inclusion of the
-					// authority
-					hash = parsedUrl.hash;
-
-				// mimic the browser with an empty string when the hash is empty
-				hash = hash === "#" ? "" : hash;
-
-				return uri.protocol +
-					parsedUrl.doubleSlash +
-					uri.host +
-
-					// The pathname must start with a slash if there's a protocol, because you
-					// can't have a protocol followed by a relative path. Also, it's impossible to
-					// calculate absolute URLs from relative ones if the absolute one doesn't have
-					// a leading "/".
-					( ( uri.protocol !== "" && uri.pathname.substring( 0, 1 ) !== "/" ) ?
-						"/" : "" ) +
-					uri.pathname +
-					uri.search +
-					hash;
-			},
-
-			//return the original document url
-			getDocumentUrl: function( asParsedObject ) {
-				return asParsedObject ? $.extend( {}, path.documentUrl ) : path.documentUrl.href;
-			},
-
-			parseLocation: function() {
-				return this.parseUrl( this.getLocation() );
-			},
-
-			//Parse a URL into a structure that allows easy access to
-			//all of the URL components by name.
-			parseUrl: function( url ) {
-				// If we're passed an object, we'll assume that it is
-				// a parsed url object and just return it back to the caller.
-				if ( $.type( url ) === "object" ) {
-					return url;
-				}
-
-				var matches = path.urlParseRE.exec( url || "" ) || [];
-
-					// Create an object that allows the caller to access the sub-matches
-					// by name. Note that IE returns an empty string instead of undefined,
-					// like all other browsers do, so we normalize everything so its consistent
-					// no matter what browser we're running on.
-					return {
-						href:         matches[  0 ] || "",
-						hrefNoHash:   matches[  1 ] || "",
-						hrefNoSearch: matches[  2 ] || "",
-						domain:       matches[  3 ] || "",
-						protocol:     matches[  4 ] || "",
-						doubleSlash:  matches[  5 ] || "",
-						authority:    matches[  6 ] || "",
-						username:     matches[  8 ] || "",
-						password:     matches[  9 ] || "",
-						host:         matches[ 10 ] || "",
-						hostname:     matches[ 11 ] || "",
-						port:         matches[ 12 ] || "",
-						pathname:     matches[ 13 ] || "",
-						directory:    matches[ 14 ] || "",
-						filename:     matches[ 15 ] || "",
-						search:       matches[ 16 ] || "",
-						hash:         matches[ 17 ] || ""
-					};
-			},
-
-			//Turn relPath into an asbolute path. absPath is
-			//an optional absolute path which describes what
-			//relPath is relative to.
-			makePathAbsolute: function( relPath, absPath ) {
-				var absStack,
-					relStack,
-					i, d;
-
-				if ( relPath && relPath.charAt( 0 ) === "/" ) {
-					return relPath;
-				}
-
-				relPath = relPath || "";
-				absPath = absPath ? absPath.replace( /^\/|(\/[^\/]*|[^\/]+)$/g, "" ) : "";
-
-				absStack = absPath ? absPath.split( "/" ) : [];
-				relStack = relPath.split( "/" );
-
-				for ( i = 0; i < relStack.length; i++ ) {
-					d = relStack[ i ];
-					switch ( d ) {
-						case ".":
-							break;
-						case "..":
-							if ( absStack.length ) {
-								absStack.pop();
-							}
-							break;
-						default:
-							absStack.push( d );
-							break;
-					}
-				}
-				return "/" + absStack.join( "/" );
-			},
-
-			//Returns true if both urls have the same domain.
-			isSameDomain: function( absUrl1, absUrl2 ) {
-				return path.parseUrl( absUrl1 ).domain.toLowerCase() ===
-					path.parseUrl( absUrl2 ).domain.toLowerCase();
-			},
-
-			//Returns true for any relative variant.
-			isRelativeUrl: function( url ) {
-				// All relative Url variants have one thing in common, no protocol.
-				return path.parseUrl( url ).protocol === "";
-			},
-
-			//Returns true for an absolute url.
-			isAbsoluteUrl: function( url ) {
-				return path.parseUrl( url ).protocol !== "";
-			},
-
-			//Turn the specified realtive URL into an absolute one. This function
-			//can handle all relative variants (protocol, site, document, query, fragment).
-			makeUrlAbsolute: function( relUrl, absUrl ) {
-				if ( !path.isRelativeUrl( relUrl ) ) {
-					return relUrl;
-				}
-
-				if ( absUrl === undefined ) {
-					absUrl = this.documentBase;
-				}
-
-				var relObj = path.parseUrl( relUrl ),
-					absObj = path.parseUrl( absUrl ),
-					protocol = relObj.protocol || absObj.protocol,
-					doubleSlash = relObj.protocol ? relObj.doubleSlash : ( relObj.doubleSlash || absObj.doubleSlash ),
-					authority = relObj.authority || absObj.authority,
-					hasPath = relObj.pathname !== "",
-					pathname = path.makePathAbsolute( relObj.pathname || absObj.filename, absObj.pathname ),
-					search = relObj.search || ( !hasPath && absObj.search ) || "",
-					hash = relObj.hash;
-
-				return protocol + doubleSlash + authority + pathname + search + hash;
-			},
-
-			//Add search (aka query) params to the specified url.
-			addSearchParams: function( url, params ) {
-				var u = path.parseUrl( url ),
-					p = ( typeof params === "object" ) ? $.param( params ) : params,
-					s = u.search || "?";
-				return u.hrefNoSearch + s + ( s.charAt( s.length - 1 ) !== "?" ? "&" : "" ) + p + ( u.hash || "" );
-			},
-
-			convertUrlToDataUrl: function( absUrl ) {
-				var u = path.parseUrl( absUrl );
-				if ( path.isEmbeddedPage( u ) ) {
-					// For embedded pages, remove the dialog hash key as in getFilePath(),
-					// and remove otherwise the Data Url won't match the id of the embedded Page.
-					return u.hash
-						.split( dialogHashKey )[0]
-						.replace( /^#/, "" )
-						.replace( /\?.*$/, "" );
-				} else if ( path.isSameDomain( u, this.documentBase ) ) {
-					return u.hrefNoHash.replace( this.documentBase.domain, "" ).split( dialogHashKey )[0];
-				}
-
-				return window.decodeURIComponent(absUrl);
-			},
-
-			//get path from current hash, or from a file path
-			get: function( newPath ) {
-				if ( newPath === undefined ) {
-					newPath = path.parseLocation().hash;
-				}
-				return path.stripHash( newPath ).replace( /[^\/]*\.[^\/*]+$/, "" );
-			},
-
-			//set location hash to path
-			set: function( path ) {
-				location.hash = path;
-			},
-
-			//test if a given url (string) is a path
-			//NOTE might be exceptionally naive
-			isPath: function( url ) {
-				return ( /\// ).test( url );
-			},
-
-			//return a url path with the window's location protocol/hostname/pathname removed
-			clean: function( url ) {
-				return url.replace( this.documentBase.domain, "" );
-			},
-
-			//just return the url without an initial #
-			stripHash: function( url ) {
-				return url.replace( /^#/, "" );
-			},
-
-			stripQueryParams: function( url ) {
-				return url.replace( /\?.*$/, "" );
-			},
-
-			//remove the preceding hash, any query params, and dialog notations
-			cleanHash: function( hash ) {
-				return path.stripHash( hash.replace( /\?.*$/, "" ).replace( dialogHashKey, "" ) );
-			},
-
-			isHashValid: function( hash ) {
-				return ( /^#[^#]+$/ ).test( hash );
-			},
-
-			//check whether a url is referencing the same domain, or an external domain or different protocol
-			//could be mailto, etc
-			isExternal: function( url ) {
-				var u = path.parseUrl( url );
-
-				return !!( u.protocol &&
-					( u.domain.toLowerCase() !== this.documentUrl.domain.toLowerCase() ) );
-			},
-
-			hasProtocol: function( url ) {
-				return ( /^(:?\w+:)/ ).test( url );
-			},
-
-			isEmbeddedPage: function( url ) {
-				var u = path.parseUrl( url );
-
-				//if the path is absolute, then we need to compare the url against
-				//both the this.documentUrl and the documentBase. The main reason for this
-				//is that links embedded within external documents will refer to the
-				//application document, whereas links embedded within the application
-				//document will be resolved against the document base.
-				if ( u.protocol !== "" ) {
-					return ( !this.isPath(u.hash) && u.hash && ( u.hrefNoHash === this.documentUrl.hrefNoHash || ( this.documentBaseDiffers && u.hrefNoHash === this.documentBase.hrefNoHash ) ) );
-				}
-				return ( /^#/ ).test( u.href );
-			},
-
-			squash: function( url, resolutionUrl ) {
-				var href, cleanedUrl, search, stateIndex, docUrl,
-					isPath = this.isPath( url ),
-					uri = this.parseUrl( url ),
-					preservedHash = uri.hash,
-					uiState = "";
-
-				// produce a url against which we can resolve the provided path
-				if ( !resolutionUrl ) {
-					if ( isPath ) {
-						resolutionUrl = path.getLocation();
-					} else {
-						docUrl = path.getDocumentUrl( true );
-						if ( path.isPath( docUrl.hash ) ) {
-							resolutionUrl = path.squash( docUrl.href );
-						} else {
-							resolutionUrl = docUrl.href;
-						}
-					}
-				}
-
-				// If the url is anything but a simple string, remove any preceding hash
-				// eg #foo/bar -> foo/bar
-				//    #foo -> #foo
-				cleanedUrl = isPath ? path.stripHash( url ) : url;
-
-				// If the url is a full url with a hash check if the parsed hash is a path
-				// if it is, strip the #, and use it otherwise continue without change
-				cleanedUrl = path.isPath( uri.hash ) ? path.stripHash( uri.hash ) : cleanedUrl;
-
-				// Split the UI State keys off the href
-				stateIndex = cleanedUrl.indexOf( this.uiStateKey );
-
-				// store the ui state keys for use
-				if ( stateIndex > -1 ) {
-					uiState = cleanedUrl.slice( stateIndex );
-					cleanedUrl = cleanedUrl.slice( 0, stateIndex );
-				}
-
-				// make the cleanedUrl absolute relative to the resolution url
-				href = path.makeUrlAbsolute( cleanedUrl, resolutionUrl );
-
-				// grab the search from the resolved url since parsing from
-				// the passed url may not yield the correct result
-				search = this.parseUrl( href ).search;
-
-				// TODO all this crap is terrible, clean it up
-				if ( isPath ) {
-					// reject the hash if it's a path or it's just a dialog key
-					if ( path.isPath( preservedHash ) || preservedHash.replace("#", "").indexOf( this.uiStateKey ) === 0) {
-						preservedHash = "";
-					}
-
-					// Append the UI State keys where it exists and it's been removed
-					// from the url
-					if ( uiState && preservedHash.indexOf( this.uiStateKey ) === -1) {
-						preservedHash += uiState;
-					}
-
-					// make sure that pound is on the front of the hash
-					if ( preservedHash.indexOf( "#" ) === -1 && preservedHash !== "" ) {
-						preservedHash = "#" + preservedHash;
-					}
-
-					// reconstruct each of the pieces with the new search string and hash
-					href = path.parseUrl( href );
-					href = href.protocol + href.doubleSlash + href.host + href.pathname + search +
-						preservedHash;
-				} else {
-					href += href.indexOf( "#" ) > -1 ? uiState : "#" + uiState;
-				}
-
-				return href;
-			},
-
-			isPreservableHash: function( hash ) {
-				return hash.replace( "#", "" ).indexOf( this.uiStateKey ) === 0;
-			},
-
-			// Escape weird characters in the hash if it is to be used as a selector
-			hashToSelector: function( hash ) {
-				var hasHash = ( hash.substring( 0, 1 ) === "#" );
-				if ( hasHash ) {
-					hash = hash.substring( 1 );
-				}
-				return ( hasHash ? "#" : "" ) + hash.replace( /([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g, "\\$1" );
-			},
-
-			// return the substring of a filepath before the sub-page key, for making
-			// a server request
-			getFilePath: function( path ) {
-				var splitkey = "&" + $.mobile.subPageUrlKey;
-				return path && path.split( splitkey )[0].split( dialogHashKey )[0];
-			},
-
-			// check if the specified url refers to the first page in the main
-			// application document.
-			isFirstPageUrl: function( url ) {
-				// We only deal with absolute paths.
-				var u = path.parseUrl( path.makeUrlAbsolute( url, this.documentBase ) ),
-
-					// Does the url have the same path as the document?
-					samePath = u.hrefNoHash === this.documentUrl.hrefNoHash ||
-						( this.documentBaseDiffers &&
-							u.hrefNoHash === this.documentBase.hrefNoHash ),
-
-					// Get the first page element.
-					fp = $.mobile.firstPage,
-
-					// Get the id of the first page element if it has one.
-					fpId = fp && fp[0] ? fp[0].id : undefined;
-
-				// The url refers to the first page if the path matches the document and
-				// it either has no hash value, or the hash is exactly equal to the id
-				// of the first page element.
-				return samePath &&
-					( !u.hash ||
-						u.hash === "#" ||
-						( fpId && u.hash.replace( /^#/, "" ) === fpId ) );
-			},
-
-			// Some embedded browsers, like the web view in Phone Gap, allow
-			// cross-domain XHR requests if the document doing the request was loaded
-			// via the file:// protocol. This is usually to allow the application to
-			// "phone home" and fetch app specific data. We normally let the browser
-			// handle external/cross-domain urls, but if the allowCrossDomainPages
-			// option is true, we will allow cross-domain http/https requests to go
-			// through our page loading logic.
-			isPermittedCrossDomainRequest: function( docUrl, reqUrl ) {
-				return $.mobile.allowCrossDomainPages &&
-					(docUrl.protocol === "file:" || docUrl.protocol === "content:") &&
-					reqUrl.search( /^https?:/ ) !== -1;
-			}
-		};
-
-		path.documentUrl = path.parseLocation();
-
-		$base = $( "head" ).find( "base" );
-
-		path.documentBase = $base.length ?
-			path.parseUrl( path.makeUrlAbsolute( $base.attr( "href" ), path.documentUrl.href ) ) :
-			path.documentUrl;
-
-		path.documentBaseDiffers = (path.documentUrl.hrefNoHash !== path.documentBase.hrefNoHash);
-
-		//return the original document base url
-		path.getDocumentBase = function( asParsedObject ) {
-			return asParsedObject ? $.extend( {}, path.documentBase ) : path.documentBase.href;
-		};
-
-		// DEPRECATED as of 1.4.0 - remove in 1.5.0
-		$.extend( $.mobile, {
-
-			//return the original document url
-			getDocumentUrl: path.getDocumentUrl,
-
-			//return the original document base url
-			getDocumentBase: path.getDocumentBase
-		});
-})( jQuery );
-
-
-
-(function( $, undefined ) {
-	$.mobile.History = function( stack, index ) {
-		this.stack = stack || [];
-		this.activeIndex = index || 0;
-	};
-
-	$.extend($.mobile.History.prototype, {
-		getActive: function() {
-			return this.stack[ this.activeIndex ];
-		},
-
-		getLast: function() {
-			return this.stack[ this.previousIndex ];
-		},
-
-		getNext: function() {
-			return this.stack[ this.activeIndex + 1 ];
-		},
-
-		getPrev: function() {
-			return this.stack[ this.activeIndex - 1 ];
-		},
-
-		// addNew is used whenever a new page is added
-		add: function( url, data ) {
-			data = data || {};
-
-			//if there's forward history, wipe it
-			if ( this.getNext() ) {
-				this.clearForward();
-			}
-
-			// if the hash is included in the data make sure the shape
-			// is consistent for comparison
-			if ( data.hash && data.hash.indexOf( "#" ) === -1) {
-				data.hash = "#" + data.hash;
-			}
-
-			data.url = url;
-			this.stack.push( data );
-			this.activeIndex = this.stack.length - 1;
-		},
-
-		//wipe urls ahead of active index
-		clearForward: function() {
-			this.stack = this.stack.slice( 0, this.activeIndex + 1 );
-		},
-
-		find: function( url, stack, earlyReturn ) {
-			stack = stack || this.stack;
-
-			var entry, i, length = stack.length, index;
-
-			for ( i = 0; i < length; i++ ) {
-				entry = stack[i];
-
-				if ( decodeURIComponent(url) === decodeURIComponent(entry.url) ||
-					decodeURIComponent(url) === decodeURIComponent(entry.hash) ) {
-					index = i;
-
-					if ( earlyReturn ) {
-						return index;
-					}
-				}
-			}
-
-			return index;
-		},
-
-		_findById: function( id ) {
-			var stackIndex,
-				stackLength = this.stack.length;
-
-			for ( stackIndex = 0 ; stackIndex < stackLength ; stackIndex++ ) {
-				if ( this.stack[ stackIndex ].id === id ) {
-					break;
-				}
-			}
-
-			return ( stackIndex < stackLength ? stackIndex : undefined );
-		},
-
-		closest: function( url, id ) {
-			var closest = ( id === undefined ? undefined : this._findById( id ) ),
-				a = this.activeIndex;
-
-			// First, we check whether we've found an entry by id. If so, we're done.
-			if ( closest !== undefined ) {
-				return closest;
-			}
-
-			// Failing that take the slice of the history stack before the current index and search
-			// for a url match. If one is found, we'll avoid avoid looking through forward history
-			// NOTE the preference for backward history movement is driven by the fact that
-			//      most mobile browsers only have a dedicated back button, and users rarely use
-			//      the forward button in desktop browser anyhow
-			closest = this.find( url, this.stack.slice(0, a) );
-
-			// If nothing was found in backward history check forward. The `true`
-			// value passed as the third parameter causes the find method to break
-			// on the first match in the forward history slice. The starting index
-			// of the slice must then be added to the result to get the element index
-			// in the original history stack :( :(
-			//
-			// TODO this is hyper confusing and should be cleaned up (ugh so bad)
-			if ( closest === undefined ) {
-				closest = this.find( url, this.stack.slice(a), true );
-				closest = closest === undefined ? closest : closest + a;
-			}
-
-			return closest;
-		},
-
-		direct: function( opts ) {
-			var newActiveIndex = this.closest( opts.url, opts.id ), a = this.activeIndex;
-
-			// save new page index, null check to prevent falsey 0 result
-			// record the previous index for reference
-			if ( newActiveIndex !== undefined ) {
-				this.activeIndex = newActiveIndex;
-				this.previousIndex = a;
-			}
-
-			// invoke callbacks where appropriate
-			//
-			// TODO this is also convoluted and confusing
-			if ( newActiveIndex < a ) {
-				( opts.present || opts.back || $.noop )( this.getActive(), "back" );
-			} else if ( newActiveIndex > a ) {
-				( opts.present || opts.forward || $.noop )( this.getActive(), "forward" );
-			} else if ( newActiveIndex === undefined && opts.missing ) {
-				opts.missing( this.getActive() );
-			}
-		}
-	});
-})( jQuery );
-
-
-
-(function( $, undefined ) {
-	var path = $.mobile.path,
-		initialHref = location.href;
-
-	$.mobile.Navigator = function( history ) {
-		this.history = history;
-		this.ignoreInitialHashChange = true;
-
-		$.mobile.window.bind({
-			"popstate.history": $.proxy( this.popstate, this ),
-			"hashchange.history": $.proxy( this.hashchange, this )
-		});
-	};
-
-	$.extend($.mobile.Navigator.prototype, {
-		historyEntryId: 0,
-		squash: function( url, data ) {
-			var state, href, hash = path.isPath(url) ? path.stripHash(url) : url;
-
-			href = path.squash( url );
-
-			// make sure to provide this information when it isn't explicitly set in the
-			// data object that was passed to the squash method
-			state = $.extend({
-				id: ++this.historyEntryId,
-				hash: hash,
-				url: href
-			}, data);
-
-			// replace the current url with the new href and store the state
-			// Note that in some cases we might be replacing an url with the
-			// same url. We do this anyways because we need to make sure that
-			// all of our history entries have a state object associated with
-			// them. This allows us to work around the case where $.mobile.back()
-			// is called to transition from an external page to an embedded page.
-			// In that particular case, a hashchange event is *NOT* generated by the browser.
-			// Ensuring each history entry has a state object means that onPopState()
-			// will always trigger our hashchange callback even when a hashchange event
-			// is not fired.
-			window.history.replaceState( state, state.title || document.title, href );
-
-			return state;
-		},
-
-		hash: function( url, href ) {
-			var parsed, loc, hash, resolved;
-
-			// Grab the hash for recording. If the passed url is a path
-			// we used the parsed version of the squashed url to reconstruct,
-			// otherwise we assume it's a hash and store it directly
-			parsed = path.parseUrl( url );
-			loc = path.parseLocation();
-
-			if ( loc.pathname + loc.search === parsed.pathname + parsed.search ) {
-				// If the pathname and search of the passed url is identical to the current loc
-				// then we must use the hash. Otherwise there will be no event
-				// eg, url = "/foo/bar?baz#bang", location.href = "http://example.com/foo/bar?baz"
-				hash = parsed.hash ? parsed.hash : parsed.pathname + parsed.search;
-			} else if ( path.isPath(url) ) {
-				resolved = path.parseUrl( href );
-				// If the passed url is a path, make it domain relative and remove any trailing hash
-				hash = resolved.pathname + resolved.search + (path.isPreservableHash( resolved.hash )? resolved.hash.replace( "#", "" ) : "");
-			} else {
-				hash = url;
-			}
-
-			return hash;
-		},
-
-		// TODO reconsider name
-		go: function( url, data, noEvents ) {
-			var state, href, hash, popstateEvent,
-				isPopStateEvent = $.event.special.navigate.isPushStateEnabled();
-
-			// Get the url as it would look squashed on to the current resolution url
-			href = path.squash( url );
-
-			// sort out what the hash sould be from the url
-			hash = this.hash( url, href );
-
-			// Here we prevent the next hash change or popstate event from doing any
-			// history management. In the case of hashchange we don't swallow it
-			// if there will be no hashchange fired (since that won't reset the value)
-			// and will swallow the following hashchange
-			if ( noEvents && hash !== path.stripHash(path.parseLocation().hash) ) {
-				this.preventNextHashChange = noEvents;
-			}
-
-			// IMPORTANT in the case where popstate is supported the event will be triggered
-			//      directly, stopping further execution - ie, interupting the flow of this
-			//      method call to fire bindings at this expression. Below the navigate method
-			//      there is a binding to catch this event and stop its propagation.
-			//
-			//      We then trigger a new popstate event on the window with a null state
-			//      so that the navigate events can conclude their work properly
-			//
-			// if the url is a path we want to preserve the query params that are available on
-			// the current url.
-			this.preventHashAssignPopState = true;
-			window.location.hash = hash;
-
-			// If popstate is enabled and the browser triggers `popstate` events when the hash
-			// is set (this often happens immediately in browsers like Chrome), then the
-			// this flag will be set to false already. If it's a browser that does not trigger
-			// a `popstate` on hash assignement or `replaceState` then we need avoid the branch
-			// that swallows the event created by the popstate generated by the hash assignment
-			// At the time of this writing this happens with Opera 12 and some version of IE
-			this.preventHashAssignPopState = false;
-
-			state = $.extend({
-				url: href,
-				hash: hash,
-				title: document.title
-			}, data);
-
-			if ( isPopStateEvent ) {
-				popstateEvent = new $.Event( "popstate" );
-				popstateEvent.originalEvent = {
-					type: "popstate",
-					state: null
-				};
-
-				state.id = ( this.squash( url, state ) || {} ).id;
-
-				// Trigger a new faux popstate event to replace the one that we
-				// caught that was triggered by the hash setting above.
-				if ( !noEvents ) {
-					this.ignorePopState = true;
-					$.mobile.window.trigger( popstateEvent );
-				}
-			}
-
-			// record the history entry so that the information can be included
-			// in hashchange event driven navigate events in a similar fashion to
-			// the state that's provided by popstate
-			this.history.add( state.url, state );
-		},
-
-		// This binding is intended to catch the popstate events that are fired
-		// when execution of the `$.navigate` method stops at window.location.hash = url;
-		// and completely prevent them from propagating. The popstate event will then be
-		// retriggered after execution resumes
-		//
-		// TODO grab the original event here and use it for the synthetic event in the
-		//      second half of the navigate execution that will follow this binding
-		popstate: function( event ) {
-			var hash, state;
-
-			// Partly to support our test suite which manually alters the support
-			// value to test hashchange. Partly to prevent all around weirdness
-			if ( !$.event.special.navigate.isPushStateEnabled() ) {
-				return;
-			}
-
-			// If this is the popstate triggered by the actual alteration of the hash
-			// prevent it completely. History is tracked manually
-			if ( this.preventHashAssignPopState ) {
-				this.preventHashAssignPopState = false;
-				event.stopImmediatePropagation();
-				return;
-			}
-
-			// if this is the popstate triggered after the `replaceState` call in the go
-			// method, then simply ignore it. The history entry has already been captured
-			if ( this.ignorePopState ) {
-				this.ignorePopState = false;
-				return;
-			}
-
-			// If there is no state, and the history stack length is one were
-			// probably getting the page load popstate fired by browsers like chrome
-			// avoid it and set the one time flag to false.
-			// TODO: Do we really need all these conditions? Comparing location hrefs
-			// should be sufficient.
-			if ( !event.originalEvent.state &&
-				this.history.stack.length === 1 &&
-				this.ignoreInitialHashChange ) {
-				this.ignoreInitialHashChange = false;
-
-				if ( location.href === initialHref ) {
-					event.preventDefault();
-					return;
-				}
-			}
-
-			// account for direct manipulation of the hash. That is, we will receive a popstate
-			// when the hash is changed by assignment, and it won't have a state associated. We
-			// then need to squash the hash. See below for handling of hash assignment that
-			// matches an existing history entry
-			// TODO it might be better to only add to the history stack
-			//      when the hash is adjacent to the active history entry
-			hash = path.parseLocation().hash;
-			if ( !event.originalEvent.state && hash ) {
-				// squash the hash that's been assigned on the URL with replaceState
-				// also grab the resulting state object for storage
-				state = this.squash( hash );
-
-				// record the new hash as an additional history entry
-				// to match the browser's treatment of hash assignment
-				this.history.add( state.url, state );
-
-				// pass the newly created state information
-				// along with the event
-				event.historyState = state;
-
-				// do not alter history, we've added a new history entry
-				// so we know where we are
-				return;
-			}
-
-			// If all else fails this is a popstate that comes from the back or forward buttons
-			// make sure to set the state of our history stack properly, and record the directionality
-			this.history.direct({
-				id: ( event.originalEvent.state || {} ).id,
-				url: (event.originalEvent.state || {}).url || hash,
-
-				// When the url is either forward or backward in history include the entry
-				// as data on the event object for merging as data in the navigate event
-				present: function( historyEntry, direction ) {
-					// make sure to create a new object to pass down as the navigate event data
-					event.historyState = $.extend({}, historyEntry);
-					event.historyState.direction = direction;
-				}
-			});
-		},
-
-		// NOTE must bind before `navigate` special event hashchange binding otherwise the
-		//      navigation data won't be attached to the hashchange event in time for those
-		//      bindings to attach it to the `navigate` special event
-		// TODO add a check here that `hashchange.navigate` is bound already otherwise it's
-		//      broken (exception?)
-		hashchange: function( event ) {
-			var history, hash;
-
-			// If hashchange listening is explicitly disabled or pushstate is supported
-			// avoid making use of the hashchange handler.
-			if (!$.event.special.navigate.isHashChangeEnabled() ||
-				$.event.special.navigate.isPushStateEnabled() ) {
-				return;
-			}
-
-			// On occasion explicitly want to prevent the next hash from propogating because we only
-			// with to alter the url to represent the new state do so here
-			if ( this.preventNextHashChange ) {
-				this.preventNextHashChange = false;
-				event.stopImmediatePropagation();
-				return;
-			}
-
-			history = this.history;
-			hash = path.parseLocation().hash;
-
-			// If this is a hashchange caused by the back or forward button
-			// make sure to set the state of our history stack properly
-			this.history.direct({
-				url: hash,
-
-				// When the url is either forward or backward in history include the entry
-				// as data on the event object for merging as data in the navigate event
-				present: function( historyEntry, direction ) {
-					// make sure to create a new object to pass down as the navigate event data
-					event.hashchangeState = $.extend({}, historyEntry);
-					event.hashchangeState.direction = direction;
-				},
-
-				// When we don't find a hash in our history clearly we're aiming to go there
-				// record the entry as new for future traversal
-				//
-				// NOTE it's not entirely clear that this is the right thing to do given that we
-				//      can't know the users intention. It might be better to explicitly _not_
-				//      support location.hash assignment in preference to $.navigate calls
-				// TODO first arg to add should be the href, but it causes issues in identifying
-				//      embeded pages
-				missing: function() {
-					history.add( hash, {
-						hash: hash,
-						title: document.title
-					});
-				}
-			});
-		}
-	});
-})( jQuery );
-
-
-
-(function( $, undefined ) {
-	// TODO consider queueing navigation activity until previous activities have completed
-	//      so that end users don't have to think about it. Punting for now
-	// TODO !! move the event bindings into callbacks on the navigate event
-	$.mobile.navigate = function( url, data, noEvents ) {
-		$.mobile.navigate.navigator.go( url, data, noEvents );
-	};
-
-	// expose the history on the navigate method in anticipation of full integration with
-	// existing navigation functionalty that is tightly coupled to the history information
-	$.mobile.navigate.history = new $.mobile.History();
-
-	// instantiate an instance of the navigator for use within the $.navigate method
-	$.mobile.navigate.navigator = new $.mobile.Navigator( $.mobile.navigate.history );
-
-	var loc = $.mobile.path.parseLocation();
-	$.mobile.navigate.history.add( loc.href, {hash: loc.hash} );
-})( jQuery );
-
-
-(function( $, undefined ) {
-	var props = {
-			"animation": {},
-			"transition": {}
-		},
-		testElement = document.createElement( "a" ),
-		vendorPrefixes = [ "", "webkit-", "moz-", "o-" ];
-
-	$.each( [ "animation", "transition" ], function( i, test ) {
-
-		// Get correct name for test
-		var testName = ( i === 0 ) ? test + "-" + "name" : test;
-
-		$.each( vendorPrefixes, function( j, prefix ) {
-			if ( testElement.style[ $.camelCase( prefix + testName ) ] !== undefined ) {
-				 props[ test ][ "prefix" ] = prefix;
-				return false;
-			}
-		});
-
-		// Set event and duration names for later use
-		props[ test ][ "duration" ] =
-			$.camelCase( props[ test ][ "prefix" ] + test + "-" + "duration" );
-		props[ test ][ "event" ] =
-			$.camelCase( props[ test ][ "prefix" ] + test + "-" + "end" );
-
-		// All lower case if not a vendor prop
-		if ( props[ test ][ "prefix" ] === "" ) {
-			props[ test ][ "event" ] = props[ test ][ "event" ].toLowerCase();
-		}
-	});
-
-	// If a valid prefix was found then the it is supported by the browser
-	$.support.cssTransitions = ( props[ "transition" ][ "prefix" ] !== undefined );
-	$.support.cssAnimations = ( props[ "animation" ][ "prefix" ] !== undefined );
-
-	// Remove the testElement
-	$( testElement ).remove();
-
-	// Animation complete callback
-	$.fn.animationComplete = function( callback, type, fallbackTime ) {
-		var timer, duration,
-			that = this,
-			eventBinding = function() {
-
-				// Clear the timer so we don't call callback twice
-				clearTimeout( timer );
-				callback.apply( this, arguments );
-			},
-			animationType = ( !type || type === "animation" ) ? "animation" : "transition";
-
-		// Make sure selected type is supported by browser
-		if ( ( $.support.cssTransitions && animationType === "transition" ) ||
-			( $.support.cssAnimations && animationType === "animation" ) ) {
-
-			// If a fallback time was not passed set one
-			if ( fallbackTime === undefined ) {
-
-				// Make sure the was not bound to document before checking .css
-				if ( $( this ).context !== document ) {
-
-					// Parse the durration since its in second multiple by 1000 for milliseconds
-					// Multiply by 3 to make sure we give the animation plenty of time.
-					duration = parseFloat(
-						$( this ).css( props[ animationType ].duration )
-					) * 3000;
-				}
-
-				// If we could not read a duration use the default
-				if ( duration === 0 || duration === undefined || isNaN( duration ) ) {
-					duration = $.fn.animationComplete.defaultDuration;
-				}
-			}
-
-			// Sets up the fallback if event never comes
-			timer = setTimeout( function() {
-				$( that ).off( props[ animationType ].event, eventBinding );
-				callback.apply( that );
-			}, duration );
-
-			// Bind the event
-			return $( this ).one( props[ animationType ].event, eventBinding );
-		} else {
-
-			// CSS animation / transitions not supported
-			// Defer execution for consistency between webkit/non webkit
-			setTimeout( $.proxy( callback, this ), 0 );
-			return $( this );
-		}
-	};
-
-	// Allow default callback to be configured on mobileInit
-	$.fn.animationComplete.defaultDuration = 1000;
-})( jQuery );
-
-// This plugin is an experiment for abstracting away the touch and mouse
-// events so that developers don't have to worry about which method of input
-// the device their document is loaded on supports.
-//
-// The idea here is to allow the developer to register listeners for the
-// basic mouse events, such as mousedown, mousemove, mouseup, and click,
-// and the plugin will take care of registering the correct listeners
-// behind the scenes to invoke the listener at the fastest possible time
-// for that device, while still retaining the order of event firing in
-// the traditional mouse environment, should multiple handlers be registered
-// on the same element for different events.
-//
-// The current version exposes the following virtual events to jQuery bind methods:
-// "vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel"
-
-(function( $, window, document, undefined ) {
-
-var dataPropertyName = "virtualMouseBindings",
-	touchTargetPropertyName = "virtualTouchID",
-	virtualEventNames = "vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel".split( " " ),
-	touchEventProps = "clientX clientY pageX pageY screenX screenY".split( " " ),
-	mouseHookProps = $.event.mouseHooks ? $.event.mouseHooks.props : [],
-	mouseEventProps = $.event.props.concat( mouseHookProps ),
-	activeDocHandlers = {},
-	resetTimerID = 0,
-	startX = 0,
-	startY = 0,
-	didScroll = false,
-	clickBlockList = [],
-	blockMouseTriggers = false,
-	blockTouchTriggers = false,
-	eventCaptureSupported = "addEventListener" in document,
-	$document = $( document ),
-	nextTouchID = 1,
-	lastTouchID = 0, threshold,
-	i;
-
-$.vmouse = {
-	moveDistanceThreshold: 10,
-	clickDistanceThreshold: 10,
-	resetTimerDuration: 1500
-};
-
-function getNativeEvent( event ) {
-
-	while ( event && typeof event.originalEvent !== "undefined" ) {
-		event = event.originalEvent;
-	}
-	return event;
-}
-
-function createVirtualEvent( event, eventType ) {
-
-	var t = event.type,
-		oe, props, ne, prop, ct, touch, i, j, len;
-
-	event = $.Event( event );
-	event.type = eventType;
-
-	oe = event.originalEvent;
-	props = $.event.props;
-
-	// addresses separation of $.event.props in to $.event.mouseHook.props and Issue 3280
-	// https://github.com/jquery/jquery-mobile/issues/3280
-	if ( t.search( /^(mouse|click)/ ) > -1 ) {
-		props = mouseEventProps;
-	}
-
-	// copy original event properties over to the new event
-	// this would happen if we could call $.event.fix instead of $.Event
-	// but we don't have a way to force an event to be fixed multiple times
-	if ( oe ) {
-		for ( i = props.length, prop; i; ) {
-			prop = props[ --i ];
-			event[ prop ] = oe[ prop ];
-		}
-	}
-
-	// make sure that if the mouse and click virtual events are generated
-	// without a .which one is defined
-	if ( t.search(/mouse(down|up)|click/) > -1 && !event.which ) {
-		event.which = 1;
-	}
-
-	if ( t.search(/^touch/) !== -1 ) {
-		ne = getNativeEvent( oe );
-		t = ne.touches;
-		ct = ne.changedTouches;
-		touch = ( t && t.length ) ? t[0] : ( ( ct && ct.length ) ? ct[ 0 ] : undefined );
-
-		if ( touch ) {
-			for ( j = 0, len = touchEventProps.length; j < len; j++) {
-				prop = touchEventProps[ j ];
-				event[ prop ] = touch[ prop ];
-			}
-		}
-	}
-
-	return event;
-}
-
-function getVirtualBindingFlags( element ) {
-
-	var flags = {},
-		b, k;
-
-	while ( element ) {
-
-		b = $.data( element, dataPropertyName );
-
-		for (  k in b ) {
-			if ( b[ k ] ) {
-				flags[ k ] = flags.hasVirtualBinding = true;
-			}
-		}
-		element = element.parentNode;
-	}
-	return flags;
-}
-
-function getClosestElementWithVirtualBinding( element, eventType ) {
-	var b;
-	while ( element ) {
-
-		b = $.data( element, dataPropertyName );
-
-		if ( b && ( !eventType || b[ eventType ] ) ) {
-			return element;
-		}
-		element = element.parentNode;
-	}
-	return null;
-}
-
-function enableTouchBindings() {
-	blockTouchTriggers = false;
-}
-
-function disableTouchBindings() {
-	blockTouchTriggers = true;
-}
-
-function enableMouseBindings() {
-	lastTouchID = 0;
-	clickBlockList.length = 0;
-	blockMouseTriggers = false;
-
-	// When mouse bindings are enabled, our
-	// touch bindings are disabled.
-	disableTouchBindings();
-}
-
-function disableMouseBindings() {
-	// When mouse bindings are disabled, our
-	// touch bindings are enabled.
-	enableTouchBindings();
-}
-
-function startResetTimer() {
-	clearResetTimer();
-	resetTimerID = setTimeout( function() {
-		resetTimerID = 0;
-		enableMouseBindings();
-	}, $.vmouse.resetTimerDuration );
-}
-
-function clearResetTimer() {
-	if ( resetTimerID ) {
-		clearTimeout( resetTimerID );
-		resetTimerID = 0;
-	}
-}
-
-function triggerVirtualEvent( eventType, event, flags ) {
-	var ve;
-
-	if ( ( flags && flags[ eventType ] ) ||
-				( !flags && getClosestElementWithVirtualBinding( event.target, eventType ) ) ) {
-
-		ve = createVirtualEvent( event, eventType );
-
-		$( event.target).trigger( ve );
-	}
-
-	return ve;
-}
-
-function mouseEventCallback( event ) {
-	var touchID = $.data( event.target, touchTargetPropertyName ),
-		ve;
-
-	if ( !blockMouseTriggers && ( !lastTouchID || lastTouchID !== touchID ) ) {
-		ve = triggerVirtualEvent( "v" + event.type, event );
-		if ( ve ) {
-			if ( ve.isDefaultPrevented() ) {
-				event.preventDefault();
-			}
-			if ( ve.isPropagationStopped() ) {
-				event.stopPropagation();
-			}
-			if ( ve.isImmediatePropagationStopped() ) {
-				event.stopImmediatePropagation();
-			}
-		}
-	}
-}
-
-function handleTouchStart( event ) {
-
-	var touches = getNativeEvent( event ).touches,
-		target, flags, t;
-
-	if ( touches && touches.length === 1 ) {
-
-		target = event.target;
-		flags = getVirtualBindingFlags( target );
-
-		if ( flags.hasVirtualBinding ) {
-
-			lastTouchID = nextTouchID++;
-			$.data( target, touchTargetPropertyName, lastTouchID );
-
-			clearResetTimer();
-
-			disableMouseBindings();
-			didScroll = false;
-
-			t = getNativeEvent( event ).touches[ 0 ];
-			startX = t.pageX;
-			startY = t.pageY;
-
-			triggerVirtualEvent( "vmouseover", event, flags );
-			triggerVirtualEvent( "vmousedown", event, flags );
-		}
-	}
-}
-
-function handleScroll( event ) {
-	if ( blockTouchTriggers ) {
-		return;
-	}
-
-	if ( !didScroll ) {
-		triggerVirtualEvent( "vmousecancel", event, getVirtualBindingFlags( event.target ) );
-	}
-
-	didScroll = true;
-	startResetTimer();
-}
-
-function handleTouchMove( event ) {
-	if ( blockTouchTriggers ) {
-		return;
-	}
-
-	var t = getNativeEvent( event ).touches[ 0 ],
-		didCancel = didScroll,
-		moveThreshold = $.vmouse.moveDistanceThreshold,
-		flags = getVirtualBindingFlags( event.target );
-
-		didScroll = didScroll ||
-			( Math.abs( t.pageX - startX ) > moveThreshold ||
-				Math.abs( t.pageY - startY ) > moveThreshold );
-
-	if ( didScroll && !didCancel ) {
-		triggerVirtualEvent( "vmousecancel", event, flags );
-	}
-
-	triggerVirtualEvent( "vmousemove", event, flags );
-	startResetTimer();
-}
-
-function handleTouchEnd( event ) {
-	if ( blockTouchTriggers ) {
-		return;
-	}
-
-	disableTouchBindings();
-
-	var flags = getVirtualBindingFlags( event.target ),
-		ve, t;
-	triggerVirtualEvent( "vmouseup", event, flags );
-
-	if ( !didScroll ) {
-		ve = triggerVirtualEvent( "vclick", event, flags );
-		if ( ve && ve.isDefaultPrevented() ) {
-			// The target of the mouse events that follow the touchend
-			// event don't necessarily match the target used during the
-			// touch. This means we need to rely on coordinates for blocking
-			// any click that is generated.
-			t = getNativeEvent( event ).changedTouches[ 0 ];
-			clickBlockList.push({
-				touchID: lastTouchID,
-				x: t.clientX,
-				y: t.clientY
-			});
-
-			// Prevent any mouse events that follow from triggering
-			// virtual event notifications.
-			blockMouseTriggers = true;
-		}
-	}
-	triggerVirtualEvent( "vmouseout", event, flags);
-	didScroll = false;
-
-	startResetTimer();
-}
-
-function hasVirtualBindings( ele ) {
-	var bindings = $.data( ele, dataPropertyName ),
-		k;
-
-	if ( bindings ) {
-		for ( k in bindings ) {
-			if ( bindings[ k ] ) {
-				return true;
-			}
-		}
-	}
-	return false;
-}
-
-function dummyMouseHandler() {}
-
-function getSpecialEventObject( eventType ) {
-	var realType = eventType.substr( 1 );
-
-	return {
-		setup: function(/* data, namespace */) {
-			// If this is the first virtual mouse binding for this element,
-			// add a bindings object to its data.
-
-			if ( !hasVirtualBindings( this ) ) {
-				$.data( this, dataPropertyName, {} );
-			}
-
-			// If setup is called, we know it is the first binding for this
-			// eventType, so initialize the count for the eventType to zero.
-			var bindings = $.data( this, dataPropertyName );
-			bindings[ eventType ] = true;
-
-			// If this is the first virtual mouse event for this type,
-			// register a global handler on the document.
-
-			activeDocHandlers[ eventType ] = ( activeDocHandlers[ eventType ] || 0 ) + 1;
-
-			if ( activeDocHandlers[ eventType ] === 1 ) {
-				$document.bind( realType, mouseEventCallback );
-			}
-
-			// Some browsers, like Opera Mini, won't dispatch mouse/click events
-			// for elements unless they actually have handlers registered on them.
-			// To get around this, we register dummy handlers on the elements.
-
-			$( this ).bind( realType, dummyMouseHandler );
-
-			// For now, if event capture is not supported, we rely on mouse handlers.
-			if ( eventCaptureSupported ) {
-				// If this is the first virtual mouse binding for the document,
-				// register our touchstart handler on the document.
-
-				activeDocHandlers[ "touchstart" ] = ( activeDocHandlers[ "touchstart" ] || 0) + 1;
-
-				if ( activeDocHandlers[ "touchstart" ] === 1 ) {
-					$document.bind( "touchstart", handleTouchStart )
-						.bind( "touchend", handleTouchEnd )
-
-						// On touch platforms, touching the screen and then dragging your finger
-						// causes the window content to scroll after some distance threshold is
-						// exceeded. On these platforms, a scroll prevents a click event from being
-						// dispatched, and on some platforms, even the touchend is suppressed. To
-						// mimic the suppression of the click event, we need to watch for a scroll
-						// event. Unfortunately, some platforms like iOS don't dispatch scroll
-						// events until *AFTER* the user lifts their finger (touchend). This means
-						// we need to watch both scroll and touchmove events to figure out whether
-						// or not a scroll happenens before the touchend event is fired.
-
-						.bind( "touchmove", handleTouchMove )
-						.bind( "scroll", handleScroll );
-				}
-			}
-		},
-
-		teardown: function(/* data, namespace */) {
-			// If this is the last virtual binding for this eventType,
-			// remove its global handler from the document.
-
-			--activeDocHandlers[ eventType ];
-
-			if ( !activeDocHandlers[ eventType ] ) {
-				$document.unbind( realType, mouseEventCallback );
-			}
-
-			if ( eventCaptureSupported ) {
-				// If this is the last virtual mouse binding in existence,
-				// remove our document touchstart listener.
-
-				--activeDocHandlers[ "touchstart" ];
-
-				if ( !activeDocHandlers[ "touchstart" ] ) {
-					$document.unbind( "touchstart", handleTouchStart )
-						.unbind( "touchmove", handleTouchMove )
-						.unbind( "touchend", handleTouchEnd )
-						.unbind( "scroll", handleScroll );
-				}
-			}
-
-			var $this = $( this ),
-				bindings = $.data( this, dataPropertyName );
-
-			// teardown may be called when an element was
-			// removed from the DOM. If this is the case,
-			// jQuery core may have already stripped the element
-			// of any data bindings so we need to check it before
-			// using it.
-			if ( bindings ) {
-				bindings[ eventType ] = false;
-			}
-
-			// Unregister the dummy event handler.
-
-			$this.unbind( realType, dummyMouseHandler );
-
-			// If this is the last virtual mouse binding on the
-			// element, remove the binding data from the element.
-
-			if ( !hasVirtualBindings( this ) ) {
-				$this.removeData( dataPropertyName );
-			}
-		}
-	};
-}
-
-// Expose our custom events to the jQuery bind/unbind mechanism.
-
-for ( i = 0; i < virtualEventNames.length; i++ ) {
-	$.event.special[ virtualEventNames[ i ] ] = getSpecialEventObject( virtualEventNames[ i ] );
-}
-
-// Add a capture click handler to block clicks.
-// Note that we require event capture support for this so if the device
-// doesn't support it, we punt for now and rely solely on mouse events.
-if ( eventCaptureSupported ) {
-	document.addEventListener( "click", function( e ) {
-		var cnt = clickBlockList.length,
-			target = e.target,
-			x, y, ele, i, o, touchID;
-
-		if ( cnt ) {
-			x = e.clientX;
-			y = e.clientY;
-			threshold = $.vmouse.clickDistanceThreshold;
-
-			// The idea here is to run through the clickBlockList to see if
-			// the current click event is in the proximity of one of our
-			// vclick events that had preventDefault() called on it. If we find
-			// one, then we block the click.
-			//
-			// Why do we have to rely on proximity?
-			//
-			// Because the target of the touch event that triggered the vclick
-			// can be different from the target of the click event synthesized
-			// by the browser. The target of a mouse/click event that is synthesized
-			// from a touch event seems to be implementation specific. For example,
-			// some browsers will fire mouse/click events for a link that is near
-			// a touch event, even though the target of the touchstart/touchend event
-			// says the user touched outside the link. Also, it seems that with most
-			// browsers, the target of the mouse/click event is not calculated until the
-			// time it is dispatched, so if you replace an element that you touched
-			// with another element, the target of the mouse/click will be the new
-			// element underneath that point.
-			//
-			// Aside from proximity, we also check to see if the target and any
-			// of its ancestors were the ones that blocked a click. This is necessary
-			// because of the strange mouse/click target calculation done in the
-			// Android 2.1 browser, where if you click on an element, and there is a
-			// mouse/click handler on one of its ancestors, the target will be the
-			// innermost child of the touched element, even if that child is no where
-			// near the point of touch.
-
-			ele = target;
-
-			while ( ele ) {
-				for ( i = 0; i < cnt; i++ ) {
-					o = clickBlockList[ i ];
-					touchID = 0;
-
-					if ( ( ele === target && Math.abs( o.x - x ) < threshold && Math.abs( o.y - y ) < threshold ) ||
-								$.data( ele, touchTargetPropertyName ) === o.touchID ) {
-						// XXX: We may want to consider removing matches from the block list
-						//      instead of waiting for the reset timer to fire.
-						e.preventDefault();
-						e.stopPropagation();
-						return;
-					}
-				}
-				ele = ele.parentNode;
-			}
-		}
-	}, true);
-}
-})( jQuery, window, document );
-
-
-(function( $, window, undefined ) {
-	var $document = $( document ),
-		supportTouch = $.mobile.support.touch,
-		scrollEvent = "touchmove scroll",
-		touchStartEvent = supportTouch ? "touchstart" : "mousedown",
-		touchStopEvent = supportTouch ? "touchend" : "mouseup",
-		touchMoveEvent = supportTouch ? "touchmove" : "mousemove";
-
-	// setup new event shortcuts
-	$.each( ( "touchstart touchmove touchend " +
-		"tap taphold " +
-		"swipe swipeleft swiperight " +
-		"scrollstart scrollstop" ).split( " " ), function( i, name ) {
-
-		$.fn[ name ] = function( fn ) {
-			return fn ? this.bind( name, fn ) : this.trigger( name );
-		};
-
-		// jQuery < 1.8
-		if ( $.attrFn ) {
-			$.attrFn[ name ] = true;
-		}
-	});
-
-	function triggerCustomEvent( obj, eventType, event, bubble ) {
-		var originalType = event.type;
-		event.type = eventType;
-		if ( bubble ) {
-			$.event.trigger( event, undefined, obj );
-		} else {
-			$.event.dispatch.call( obj, event );
-		}
-		event.type = originalType;
-	}
-
-	// also handles scrollstop
-	$.event.special.scrollstart = {
-
-		enabled: true,
-		setup: function() {
-
-			var thisObject = this,
-				$this = $( thisObject ),
-				scrolling,
-				timer;
-
-			function trigger( event, state ) {
-				scrolling = state;
-				triggerCustomEvent( thisObject, scrolling ? "scrollstart" : "scrollstop", event );
-			}
-
-			// iPhone triggers scroll after a small delay; use touchmove instead
-			$this.bind( scrollEvent, function( event ) {
-
-				if ( !$.event.special.scrollstart.enabled ) {
-					return;
-				}
-
-				if ( !scrolling ) {
-					trigger( event, true );
-				}
-
-				clearTimeout( timer );
-				timer = setTimeout( function() {
-					trigger( event, false );
-				}, 50 );
-			});
-		},
-		teardown: function() {
-			$( this ).unbind( scrollEvent );
-		}
-	};
-
-	// also handles taphold
-	$.event.special.tap = {
-		tapholdThreshold: 750,
-		emitTapOnTaphold: true,
-		setup: function() {
-			var thisObject = this,
-				$this = $( thisObject ),
-				isTaphold = false;
-
-			$this.bind( "vmousedown", function( event ) {
-				isTaphold = false;
-				if ( event.which && event.which !== 1 ) {
-					return false;
-				}
-
-				var origTarget = event.target,
-					timer;
-
-				function clearTapTimer() {
-					clearTimeout( timer );
-				}
-
-				function clearTapHandlers() {
-					clearTapTimer();
-
-					$this.unbind( "vclick", clickHandler )
-						.unbind( "vmouseup", clearTapTimer );
-					$document.unbind( "vmousecancel", clearTapHandlers );
-				}
-
-				function clickHandler( event ) {
-					clearTapHandlers();
-
-					// ONLY trigger a 'tap' event if the start target is
-					// the same as the stop target.
-					if ( !isTaphold && origTarget === event.target ) {
-						triggerCustomEvent( thisObject, "tap", event );
-					} else if ( isTaphold ) {
-						event.preventDefault();
-					}
-				}
-
-				$this.bind( "vmouseup", clearTapTimer )
-					.bind( "vclick", clickHandler );
-				$document.bind( "vmousecancel", clearTapHandlers );
-
-				timer = setTimeout( function() {
-					if ( !$.event.special.tap.emitTapOnTaphold ) {
-						isTaphold = true;
-					}
-					triggerCustomEvent( thisObject, "taphold", $.Event( "taphold", { target: origTarget } ) );
-				}, $.event.special.tap.tapholdThreshold );
-			});
-		},
-		teardown: function() {
-			$( this ).unbind( "vmousedown" ).unbind( "vclick" ).unbind( "vmouseup" );
-			$document.unbind( "vmousecancel" );
-		}
-	};
-
-	// Also handles swipeleft, swiperight
-	$.event.special.swipe = {
-
-		// More than this horizontal displacement, and we will suppress scrolling.
-		scrollSupressionThreshold: 30,
-
-		// More time than this, and it isn't a swipe.
-		durationThreshold: 1000,
-
-		// Swipe horizontal displacement must be more than this.
-		horizontalDistanceThreshold: 30,
-
-		// Swipe vertical displacement must be less than this.
-		verticalDistanceThreshold: 30,
-
-		getLocation: function ( event ) {
-			var winPageX = window.pageXOffset,
-				winPageY = window.pageYOffset,
-				x = event.clientX,
-				y = event.clientY;
-
-			if ( event.pageY === 0 && Math.floor( y ) > Math.floor( event.pageY ) ||
-				event.pageX === 0 && Math.floor( x ) > Math.floor( event.pageX ) ) {
-
-				// iOS4 clientX/clientY have the value that should have been
-				// in pageX/pageY. While pageX/page/ have the value 0
-				x = x - winPageX;
-				y = y - winPageY;
-			} else if ( y < ( event.pageY - winPageY) || x < ( event.pageX - winPageX ) ) {
-
-				// Some Android browsers have totally bogus values for clientX/Y
-				// when scrolling/zooming a page. Detectable since clientX/clientY
-				// should never be smaller than pageX/pageY minus page scroll
-				x = event.pageX - winPageX;
-				y = event.pageY - winPageY;
-			}
-
-			return {
-				x: x,
-				y: y
-			};
-		},
-
-		start: function( event ) {
-			var data = event.originalEvent.touches ?
-					event.originalEvent.touches[ 0 ] : event,
-				location = $.event.special.swipe.getLocation( data );
-			return {
-						time: ( new Date() ).getTime(),
-						coords: [ location.x, location.y ],
-						origin: $( event.target )
-					};
-		},
-
-		stop: function( event ) {
-			var data = event.originalEvent.touches ?
-					event.originalEvent.touches[ 0 ] : event,
-				location = $.event.special.swipe.getLocation( data );
-			return {
-						time: ( new Date() ).getTime(),
-						coords: [ location.x, location.y ]
-					};
-		},
-
-		handleSwipe: function( start, stop, thisObject, origTarget ) {
-			if ( stop.time - start.time < $.event.special.swipe.durationThreshold &&
-				Math.abs( start.coords[ 0 ] - stop.coords[ 0 ] ) > $.event.special.swipe.horizontalDistanceThreshold &&
-				Math.abs( start.coords[ 1 ] - stop.coords[ 1 ] ) < $.event.special.swipe.verticalDistanceThreshold ) {
-				var direction = start.coords[0] > stop.coords[ 0 ] ? "swipeleft" : "swiperight";
-
-				triggerCustomEvent( thisObject, "swipe", $.Event( "swipe", { target: origTarget, swipestart: start, swipestop: stop }), true );
-				triggerCustomEvent( thisObject, direction,$.Event( direction, { target: origTarget, swipestart: start, swipestop: stop } ), true );
-				return true;
-			}
-			return false;
-
-		},
-
-		// This serves as a flag to ensure that at most one swipe event event is
-		// in work at any given time
-		eventInProgress: false,
-
-		setup: function() {
-			var events,
-				thisObject = this,
-				$this = $( thisObject ),
-				context = {};
-
-			// Retrieve the events data for this element and add the swipe context
-			events = $.data( this, "mobile-events" );
-			if ( !events ) {
-				events = { length: 0 };
-				$.data( this, "mobile-events", events );
-			}
-			events.length++;
-			events.swipe = context;
-
-			context.start = function( event ) {
-
-				// Bail if we're already working on a swipe event
-				if ( $.event.special.swipe.eventInProgress ) {
-					return;
-				}
-				$.event.special.swipe.eventInProgress = true;
-
-				var stop,
-					start = $.event.special.swipe.start( event ),
-					origTarget = event.target,
-					emitted = false;
-
-				context.move = function( event ) {
-					if ( !start || event.isDefaultPrevented() ) {
-						return;
-					}
-
-					stop = $.event.special.swipe.stop( event );
-					if ( !emitted ) {
-						emitted = $.event.special.swipe.handleSwipe( start, stop, thisObject, origTarget );
-						if ( emitted ) {
-
-							// Reset the context to make way for the next swipe event
-							$.event.special.swipe.eventInProgress = false;
-						}
-					}
-					// prevent scrolling
-					if ( Math.abs( start.coords[ 0 ] - stop.coords[ 0 ] ) > $.event.special.swipe.scrollSupressionThreshold ) {
-						event.preventDefault();
-					}
-				};
-
-				context.stop = function() {
-						emitted = true;
-
-						// Reset the context to make way for the next swipe event
-						$.event.special.swipe.eventInProgress = false;
-						$document.off( touchMoveEvent, context.move );
-						context.move = null;
-				};
-
-				$document.on( touchMoveEvent, context.move )
-					.one( touchStopEvent, context.stop );
-			};
-			$this.on( touchStartEvent, context.start );
-		},
-
-		teardown: function() {
-			var events, context;
-
-			events = $.data( this, "mobile-events" );
-			if ( events ) {
-				context = events.swipe;
-				delete events.swipe;
-				events.length--;
-				if ( events.length === 0 ) {
-					$.removeData( this, "mobile-events" );
-				}
-			}
-
-			if ( context ) {
-				if ( context.start ) {
-					$( this ).off( touchStartEvent, context.start );
-				}
-				if ( context.move ) {
-					$document.off( touchMoveEvent, context.move );
-				}
-				if ( context.stop ) {
-					$document.off( touchStopEvent, context.stop );
-				}
-			}
-		}
-	};
-	$.each({
-		scrollstop: "scrollstart",
-		taphold: "tap",
-		swipeleft: "swipe.left",
-		swiperight: "swipe.right"
-	}, function( event, sourceEvent ) {
-
-		$.event.special[ event ] = {
-			setup: function() {
-				$( this ).bind( sourceEvent, $.noop );
-			},
-			teardown: function() {
-				$( this ).unbind( sourceEvent );
-			}
-		};
-	});
-
-})( jQuery, this );
-
-
-	// throttled resize event
-	(function( $ ) {
-		$.event.special.throttledresize = {
-			setup: function() {
-				$( this ).bind( "resize", handler );
-			},
-			teardown: function() {
-				$( this ).unbind( "resize", handler );
-			}
-		};
-
-		var throttle = 250,
-			handler = function() {
-				curr = ( new Date() ).getTime();
-				diff = curr - lastCall;
-
-				if ( diff >= throttle ) {
-
-					lastCall = curr;
-					$( this ).trigger( "throttledresize" );
-
-				} else {
-
-					if ( heldCall ) {
-						clearTimeout( heldCall );
-					}
-
-					// Promise a held call will still execute
-					heldCall = setTimeout( handler, throttle - diff );
-				}
-			},
-			lastCall = 0,
-			heldCall,
-			curr,
-			diff;
-	})( jQuery );
-
-
-(function( $, window ) {
-	var win = $( window ),
-		event_name = "orientationchange",
-		get_orientation,
-		last_orientation,
-		initial_orientation_is_landscape,
-		initial_orientation_is_default,
-		portrait_map = { "0": true, "180": true },
-		ww, wh, landscape_threshold;
-
-	// It seems that some device/browser vendors use window.orientation values 0 and 180 to
-	// denote the "default" orientation. For iOS devices, and most other smart-phones tested,
-	// the default orientation is always "portrait", but in some Android and RIM based tablets,
-	// the default orientation is "landscape". The following code attempts to use the window
-	// dimensions to figure out what the current orientation is, and then makes adjustments
-	// to the to the portrait_map if necessary, so that we can properly decode the
-	// window.orientation value whenever get_orientation() is called.
-	//
-	// Note that we used to use a media query to figure out what the orientation the browser
-	// thinks it is in:
-	//
-	//     initial_orientation_is_landscape = $.mobile.media("all and (orientation: landscape)");
-	//
-	// but there was an iPhone/iPod Touch bug beginning with iOS 4.2, up through iOS 5.1,
-	// where the browser *ALWAYS* applied the landscape media query. This bug does not
-	// happen on iPad.
-
-	if ( $.support.orientation ) {
-
-		// Check the window width and height to figure out what the current orientation
-		// of the device is at this moment. Note that we've initialized the portrait map
-		// values to 0 and 180, *AND* we purposely check for landscape so that if we guess
-		// wrong, , we default to the assumption that portrait is the default orientation.
-		// We use a threshold check below because on some platforms like iOS, the iPhone
-		// form-factor can report a larger width than height if the user turns on the
-		// developer console. The actual threshold value is somewhat arbitrary, we just
-		// need to make sure it is large enough to exclude the developer console case.
-
-		ww = window.innerWidth || win.width();
-		wh = window.innerHeight || win.height();
-		landscape_threshold = 50;
-
-		initial_orientation_is_landscape = ww > wh && ( ww - wh ) > landscape_threshold;
-
-		// Now check to see if the current window.orientation is 0 or 180.
-		initial_orientation_is_default = portrait_map[ window.orientation ];
-
-		// If the initial orientation is landscape, but window.orientation reports 0 or 180, *OR*
-		// if the initial orientation is portrait, but window.orientation reports 90 or -90, we
-		// need to flip our portrait_map values because landscape is the default orientation for
-		// this device/browser.
-		if ( ( initial_orientation_is_landscape && initial_orientation_is_default ) || ( !initial_orientation_is_landscape && !initial_orientation_is_default ) ) {
-			portrait_map = { "-90": true, "90": true };
-		}
-	}
-
-	$.event.special.orientationchange = $.extend( {}, $.event.special.orientationchange, {
-		setup: function() {
-			// If the event is supported natively, return false so that jQuery
-			// will bind to the event using DOM methods.
-			if ( $.support.orientation && !$.event.special.orientationchange.disabled ) {
-				return false;
-			}
-
-			// Get the current orientation to avoid initial double-triggering.
-			last_orientation = get_orientation();
-
-			// Because the orientationchange event doesn't exist, simulate the
-			// event by testing window dimensions on resize.
-			win.bind( "throttledresize", handler );
-		},
-		teardown: function() {
-			// If the event is not supported natively, return false so that
-			// jQuery will unbind the event using DOM methods.
-			if ( $.support.orientation && !$.event.special.orientationchange.disabled ) {
-				return false;
-			}
-
-			// Because the orientationchange event doesn't exist, unbind the
-			// resize event handler.
-			win.unbind( "throttledresize", handler );
-		},
-		add: function( handleObj ) {
-			// Save a reference to the bound event handler.
-			var old_handler = handleObj.handler;
-
-			handleObj.handler = function( event ) {
-				// Modify event object, adding the .orientation property.
-				event.orientation = get_orientation();
-
-				// Call the originally-bound event handler and return its result.
-				return old_handler.apply( this, arguments );
-			};
-		}
-	});
-
-	// If the event is not supported natively, this handler will be bound to
-	// the window resize event to simulate the orientationchange event.
-	function handler() {
-		// Get the current orientation.
-		var orientation = get_orientation();
-
-		if ( orientation !== last_orientation ) {
-			// The orientation has changed, so trigger the orientationchange event.
-			last_orientation = orientation;
-			win.trigger( event_name );
-		}
-	}
-
-	// Get the current page orientation. This method is exposed publicly, should it
-	// be needed, as jQuery.event.special.orientationchange.orientation()
-	$.event.special.orientationchange.orientation = get_orientation = function() {
-		var isPortrait = true, elem = document.documentElement;
-
-		// prefer window orientation to the calculation based on screensize as
-		// the actual screen resize takes place before or after the orientation change event
-		// has been fired depending on implementation (eg android 2.3 is before, iphone after).
-		// More testing is required to determine if a more reliable method of determining the new screensize
-		// is possible when orientationchange is fired. (eg, use media queries + element + opacity)
-		if ( $.support.orientation ) {
-			// if the window orientation registers as 0 or 180 degrees report
-			// portrait, otherwise landscape
-			isPortrait = portrait_map[ window.orientation ];
-		} else {
-			isPortrait = elem && elem.clientWidth / elem.clientHeight < 1.1;
-		}
-
-		return isPortrait ? "portrait" : "landscape";
-	};
-
-	$.fn[ event_name ] = function( fn ) {
-		return fn ? this.bind( event_name, fn ) : this.trigger( event_name );
-	};
-
-	// jQuery < 1.8
-	if ( $.attrFn ) {
-		$.attrFn[ event_name ] = true;
-	}
-
-}( jQuery, this ));
-
-
-
-
-(function( $, undefined ) {
-
-	// existing base tag?
-	var baseElement = $( "head" ).children( "base" ),
-
-	// base element management, defined depending on dynamic base tag support
-	// TODO move to external widget
-	base = {
-
-		// define base element, for use in routing asset urls that are referenced
-		// in Ajax-requested markup
-		element: ( baseElement.length ? baseElement :
-			$( "<base>", { href: $.mobile.path.documentBase.hrefNoHash } ).prependTo( $( "head" ) ) ),
-
-		linkSelector: "[src], link[href], a[rel='external'], :jqmData(ajax='false'), a[target]",
-
-		// set the generated BASE element's href to a new page's base path
-		set: function( href ) {
-
-			// we should do nothing if the user wants to manage their url base
-			// manually
-			if ( !$.mobile.dynamicBaseEnabled ) {
-				return;
-			}
-
-			// we should use the base tag if we can manipulate it dynamically
-			if ( $.support.dynamicBaseTag ) {
-				base.element.attr( "href",
-					$.mobile.path.makeUrlAbsolute( href, $.mobile.path.documentBase ) );
-			}
-		},
-
-		rewrite: function( href, page ) {
-			var newPath = $.mobile.path.get( href );
-
-			page.find( base.linkSelector ).each(function( i, link ) {
-				var thisAttr = $( link ).is( "[href]" ) ? "href" :
-					$( link ).is( "[src]" ) ? "src" : "action",
-				theLocation = $.mobile.path.parseLocation(),
-				thisUrl = $( link ).attr( thisAttr );
-
-				// XXX_jblas: We need to fix this so that it removes the document
-				//            base URL, and then prepends with the new page URL.
-				// if full path exists and is same, chop it - helps IE out
-				thisUrl = thisUrl.replace( theLocation.protocol + theLocation.doubleSlash +
-					theLocation.host + theLocation.pathname, "" );
-
-				if ( !/^(\w+:|#|\/)/.test( thisUrl ) ) {
-					$( link ).attr( thisAttr, newPath + thisUrl );
-				}
-			});
-		},
-
-		// set the generated BASE element's href to a new page's base path
-		reset: function(/* href */) {
-			base.element.attr( "href", $.mobile.path.documentBase.hrefNoSearch );
-		}
-	};
-
-	$.mobile.base = base;
-
-})( jQuery );
-
-
-(function( $, undefined ) {
-$.mobile.widgets = {};
-
-var originalWidget = $.widget,
-
-	// Record the original, non-mobileinit-modified version of $.mobile.keepNative
-	// so we can later determine whether someone has modified $.mobile.keepNative
-	keepNativeFactoryDefault = $.mobile.keepNative;
-
-$.widget = (function( orig ) {
-	return function() {
-		var constructor = orig.apply( this, arguments ),
-			name = constructor.prototype.widgetName;
-
-		constructor.initSelector = ( ( constructor.prototype.initSelector !== undefined ) ?
-			constructor.prototype.initSelector : ":jqmData(role='" + name + "')" );
-
-		$.mobile.widgets[ name ] = constructor;
-
-		return constructor;
-	};
-})( $.widget );
-
-// Make sure $.widget still has bridge and extend methods
-$.extend( $.widget, originalWidget );
-
-// For backcompat remove in 1.5
-$.mobile.document.on( "create", function( event ) {
-	$( event.target ).enhanceWithin();
-});
-
-$.widget( "mobile.page", {
-	options: {
-		theme: "a",
-		domCache: false,
-
-		// Deprecated in 1.4 remove in 1.5
-		keepNativeDefault: $.mobile.keepNative,
-
-		// Deprecated in 1.4 remove in 1.5
-		contentTheme: null,
-		enhanced: false
-	},
-
-	// DEPRECATED for > 1.4
-	// TODO remove at 1.5
-	_createWidget: function() {
-		$.Widget.prototype._createWidget.apply( this, arguments );
-		this._trigger( "init" );
-	},
-
-	_create: function() {
-		// If false is returned by the callbacks do not create the page
-		if ( this._trigger( "beforecreate" ) === false ) {
-			return false;
-		}
-
-		if ( !this.options.enhanced ) {
-			this._enhance();
-		}
-
-		this._on( this.element, {
-			pagebeforehide: "removeContainerBackground",
-			pagebeforeshow: "_handlePageBeforeShow"
-		});
-
-		this.element.enhanceWithin();
-		// Dialog widget is deprecated in 1.4 remove this in 1.5
-		if ( $.mobile.getAttribute( this.element[0], "role" ) === "dialog" && $.mobile.dialog ) {
-			this.element.dialog();
-		}
-	},
-
-	_enhance: function () {
-		var attrPrefix = "data-" + $.mobile.ns,
-			self = this;
-
-		if ( this.options.role ) {
-			this.element.attr( "data-" + $.mobile.ns + "role", this.options.role );
-		}
-
-		this.element
-			.attr( "tabindex", "0" )
-			.addClass( "ui-page ui-page-theme-" + this.options.theme );
-
-		// Manipulation of content os Deprecated as of 1.4 remove in 1.5
-		this.element.find( "[" + attrPrefix + "role='content']" ).each( function() {
-			var $this = $( this ),
-				theme = this.getAttribute( attrPrefix + "theme" ) || undefined;
-				self.options.contentTheme = theme || self.options.contentTheme || ( self.options.dialog && self.options.theme ) || ( self.element.jqmData("role") === "dialog" &&  self.options.theme );
-				$this.addClass( "ui-content" );
-				if ( self.options.contentTheme ) {
-					$this.addClass( "ui-body-" + ( self.options.contentTheme ) );
-				}
-				// Add ARIA role
-				$this.attr( "role", "main" ).addClass( "ui-content" );
-		});
-	},
-
-	bindRemove: function( callback ) {
-		var page = this.element;
-
-		// when dom caching is not enabled or the page is embedded bind to remove the page on hide
-		if ( !page.data( "mobile-page" ).options.domCache &&
-			page.is( ":jqmData(external-page='true')" ) ) {
-
-			// TODO use _on - that is, sort out why it doesn't work in this case
-			page.bind( "pagehide.remove", callback || function( e, data ) {
-
-				//check if this is a same page transition and if so don't remove the page
-				if( !data.samePage ){
-					var $this = $( this ),
-						prEvent = new $.Event( "pageremove" );
-
-					$this.trigger( prEvent );
-
-					if ( !prEvent.isDefaultPrevented() ) {
-						$this.removeWithDependents();
-					}
-				}
-			});
-		}
-	},
-
-	_setOptions: function( o ) {
-		if ( o.theme !== undefined ) {
-			this.element.removeClass( "ui-page-theme-" + this.options.theme ).addClass( "ui-page-theme-" + o.theme );
-		}
-
-		if ( o.contentTheme !== undefined ) {
-			this.element.find( "[data-" + $.mobile.ns + "='content']" ).removeClass( "ui-body-" + this.options.contentTheme )
-				.addClass( "ui-body-" + o.contentTheme );
-		}
-	},
-
-	_handlePageBeforeShow: function(/* e */) {
-		this.setContainerBackground();
-	},
-	// Deprecated in 1.4 remove in 1.5
-	removeContainerBackground: function() {
-		this.element.closest( ":mobile-pagecontainer" ).pagecontainer({ "theme": "none" });
-	},
-	// Deprecated in 1.4 remove in 1.5
-	// set the page container background to the page theme
-	setContainerBackground: function( theme ) {
-		this.element.parent().pagecontainer( { "theme": theme || this.options.theme } );
-	},
-	// Deprecated in 1.4 remove in 1.5
-	keepNativeSelector: function() {
-		var options = this.options,
-			keepNative = $.trim( options.keepNative || "" ),
-			globalValue = $.trim( $.mobile.keepNative ),
-			optionValue = $.trim( options.keepNativeDefault ),
-
-			// Check if $.mobile.keepNative has changed from the factory default
-			newDefault = ( keepNativeFactoryDefault === globalValue ?
-				"" : globalValue ),
-
-			// If $.mobile.keepNative has not changed, use options.keepNativeDefault
-			oldDefault = ( newDefault === "" ? optionValue : "" );
-
-		// Concatenate keepNative selectors from all sources where the value has
-		// changed or, if nothing has changed, return the default
-		return ( ( keepNative ? [ keepNative ] : [] )
-			.concat( newDefault ? [ newDefault ] : [] )
-			.concat( oldDefault ? [ oldDefault ] : [] )
-			.join( ", " ) );
-	}
-});
-})( jQuery );
-
-(function( $, undefined ) {
-
-	$.widget( "mobile.pagecontainer", {
-		options: {
-			theme: "a"
-		},
-
-		initSelector: false,
-
-		_create: function() {
-			this._trigger( "beforecreate" );
-			this.setLastScrollEnabled = true;
-
-			this._on( this.window, {
-				// disable an scroll setting when a hashchange has been fired,
-				// this only works because the recording of the scroll position
-				// is delayed for 100ms after the browser might have changed the
-				// position because of the hashchange
-				navigate: "_disableRecordScroll",
-
-				// bind to scrollstop for the first page, "pagechange" won't be
-				// fired in that case
-				scrollstop: "_delayedRecordScroll"
-			});
-
-			// TODO consider moving the navigation handler OUT of widget into
-			//      some other object as glue between the navigate event and the
-			//      content widget load and change methods
-			this._on( this.window, { navigate: "_filterNavigateEvents" });
-
-			// TODO move from page* events to content* events
-			this._on({ pagechange: "_afterContentChange" });
-
-			// handle initial hashchange from chrome :(
-			this.window.one( "navigate", $.proxy(function() {
-				this.setLastScrollEnabled = true;
-			}, this));
-		},
-
-		_setOptions: function( options ) {
-			if ( options.theme !== undefined && options.theme !== "none" ) {
-				this.element.removeClass( "ui-overlay-" + this.options.theme )
-					.addClass( "ui-overlay-" + options.theme );
-			} else if ( options.theme !== undefined ) {
-				this.element.removeClass( "ui-overlay-" + this.options.theme );
-			}
-
-			this._super( options );
-		},
-
-		_disableRecordScroll: function() {
-			this.setLastScrollEnabled = false;
-		},
-
-		_enableRecordScroll: function() {
-			this.setLastScrollEnabled = true;
-		},
-
-		// TODO consider the name here, since it's purpose specific
-		_afterContentChange: function() {
-			// once the page has changed, re-enable the scroll recording
-			this.setLastScrollEnabled = true;
-
-			// remove any binding that previously existed on the get scroll
-			// which may or may not be different than the scroll element
-			// determined for this page previously
-			this._off( this.window, "scrollstop" );
-
-			// determine and bind to the current scoll element which may be the
-			// window or in the case of touch overflow the element touch overflow
-			this._on( this.window, { scrollstop: "_delayedRecordScroll" });
-		},
-
-		_recordScroll: function() {
-			// this barrier prevents setting the scroll value based on
-			// the browser scrolling the window based on a hashchange
-			if ( !this.setLastScrollEnabled ) {
-				return;
-			}
-
-			var active = this._getActiveHistory(),
-				currentScroll, minScroll, defaultScroll;
-
-			if ( active ) {
-				currentScroll = this._getScroll();
-				minScroll = this._getMinScroll();
-				defaultScroll = this._getDefaultScroll();
-
-				// Set active page's lastScroll prop. If the location we're
-				// scrolling to is less than minScrollBack, let it go.
-				active.lastScroll = currentScroll < minScroll ? defaultScroll : currentScroll;
-			}
-		},
-
-		_delayedRecordScroll: function() {
-			setTimeout( $.proxy(this, "_recordScroll"), 100 );
-		},
-
-		_getScroll: function() {
-			return this.window.scrollTop();
-		},
-
-		_getMinScroll: function() {
-			return $.mobile.minScrollBack;
-		},
-
-		_getDefaultScroll: function() {
-			return $.mobile.defaultHomeScroll;
-		},
-
-		_filterNavigateEvents: function( e, data ) {
-			var url;
-
-			if ( e.originalEvent && e.originalEvent.isDefaultPrevented() ) {
-				return;
-			}
-
-			url = e.originalEvent.type.indexOf( "hashchange" ) > -1 ? data.state.hash : data.state.url;
-
-			if ( !url ) {
-				url = this._getHash();
-			}
-
-			if ( !url || url === "#" || url.indexOf( "#" + $.mobile.path.uiStateKey ) === 0 ) {
-				url = location.href;
-			}
-
-			this._handleNavigate( url, data.state );
-		},
-
-		_getHash: function() {
-			return $.mobile.path.parseLocation().hash;
-		},
-
-		// TODO active page should be managed by the container (ie, it should be a property)
-		getActivePage: function() {
-			return this.activePage;
-		},
-
-		// TODO the first page should be a property set during _create using the logic
-		//      that currently resides in init
-		_getInitialContent: function() {
-			return $.mobile.firstPage;
-		},
-
-		// TODO each content container should have a history object
-		_getHistory: function() {
-			return $.mobile.navigate.history;
-		},
-
-		_getActiveHistory: function() {
-			return this._getHistory().getActive();
-		},
-
-		// TODO the document base should be determined at creation
-		_getDocumentBase: function() {
-			return $.mobile.path.documentBase;
-		},
-
-		back: function() {
-			this.go( -1 );
-		},
-
-		forward: function() {
-			this.go( 1 );
-		},
-
-		go: function( steps ) {
-
-			//if hashlistening is enabled use native history method
-			if ( $.mobile.hashListeningEnabled ) {
-				window.history.go( steps );
-			} else {
-
-				//we are not listening to the hash so handle history internally
-				var activeIndex = $.mobile.navigate.history.activeIndex,
-					index = activeIndex + parseInt( steps, 10 ),
-					url = $.mobile.navigate.history.stack[ index ].url,
-					direction = ( steps >= 1 )? "forward" : "back";
-
-				//update the history object
-				$.mobile.navigate.history.activeIndex = index;
-				$.mobile.navigate.history.previousIndex = activeIndex;
-
-				//change to the new page
-				this.change( url, { direction: direction, changeHash: false, fromHashChange: true } );
-			}
-		},
-
-		// TODO rename _handleDestination
-		_handleDestination: function( to ) {
-			var history;
-
-			// clean the hash for comparison if it's a url
-			if ( $.type(to) === "string" ) {
-				to = $.mobile.path.stripHash( to );
-			}
-
-			if ( to ) {
-				history = this._getHistory();
-
-				// At this point, 'to' can be one of 3 things, a cached page
-				// element from a history stack entry, an id, or site-relative /
-				// absolute URL. If 'to' is an id, we need to resolve it against
-				// the documentBase, not the location.href, since the hashchange
-				// could've been the result of a forward/backward navigation
-				// that crosses from an external page/dialog to an internal
-				// page/dialog.
-				//
-				// TODO move check to history object or path object?
-				to = !$.mobile.path.isPath( to ) ? ( $.mobile.path.makeUrlAbsolute( "#" + to, this._getDocumentBase() ) ) : to;
-			}
-			return to || this._getInitialContent();
-		},
-
-		// The options by which a given page was reached are stored in the history entry for that
-		// page. When this function is called, history is already at the new entry. So, when moving
-		// back, this means we need to consult the old entry and reverse the meaning of the
-		// options. Otherwise, if we're moving forward, we need to consult the options for the
-		// current entry.
-		_optionFromHistory: function( direction, optionName, fallbackValue ) {
-			var history = this._getHistory(),
-				entry = ( direction === "back" ? history.getLast() : history.getActive() );
-
-			return ( ( entry && entry[ optionName ] ) || fallbackValue );
-		},
-
-		_handleDialog: function( changePageOptions, data ) {
-			var to, active, activeContent = this.getActivePage();
-
-			// If current active page is not a dialog skip the dialog and continue
-			// in the same direction
-			// Note: The dialog widget is deprecated as of 1.4.0 and will be removed in 1.5.0.
-			// Thus, as of 1.5.0 activeContent.data( "mobile-dialog" ) will always evaluate to
-			// falsy, so the second condition in the if-statement below can be removed altogether.
-			if ( activeContent && !activeContent.data( "mobile-dialog" ) ) {
-				// determine if we're heading forward or backward and continue
-				// accordingly past the current dialog
-				if ( data.direction === "back" ) {
-					this.back();
-				} else {
-					this.forward();
-				}
-
-				// prevent changePage call
-				return false;
-			} else {
-				// if the current active page is a dialog and we're navigating
-				// to a dialog use the dialog objected saved in the stack
-				to = data.pageUrl;
-				active = this._getActiveHistory();
-
-				// make sure to set the role, transition and reversal
-				// as most of this is lost by the domCache cleaning
-				$.extend( changePageOptions, {
-					role: active.role,
-					transition: this._optionFromHistory( data.direction, "transition",
-						changePageOptions.transition ),
-					reverse: data.direction === "back"
-				});
-			}
-
-			return to;
-		},
-
-		_handleNavigate: function( url, data ) {
-			//find first page via hash
-			// TODO stripping the hash twice with handleUrl
-			var to = $.mobile.path.stripHash( url ), history = this._getHistory(),
-
-				// transition is false if it's the first page, undefined
-				// otherwise (and may be overridden by default)
-				transition = history.stack.length === 0 ? "none" :
-					this._optionFromHistory( data.direction, "transition" ),
-
-				// default options for the changPage calls made after examining
-				// the current state of the page and the hash, NOTE that the
-				// transition is derived from the previous history entry
-				changePageOptions = {
-					changeHash: false,
-					fromHashChange: true,
-					reverse: data.direction === "back"
-				};
-
-			$.extend( changePageOptions, data, {
-				transition: transition,
-				allowSamePageTransition: this._optionFromHistory( data.direction,
-					"allowSamePageTransition" )
-			});
-
-			// TODO move to _handleDestination ?
-			// If this isn't the first page, if the current url is a dialog hash
-			// key, and the initial destination isn't equal to the current target
-			// page, use the special dialog handling
-			if ( history.activeIndex > 0 &&
-				to.indexOf( $.mobile.dialogHashKey ) > -1 ) {
-
-				to = this._handleDialog( changePageOptions, data );
-
-				if ( to === false ) {
-					return;
-				}
-			}
-
-			this._changeContent( this._handleDestination( to ), changePageOptions );
-		},
-
-		_changeContent: function( to, opts ) {
-			$.mobile.changePage( to, opts );
-		},
-
-		_getBase: function() {
-			return $.mobile.base;
-		},
-
-		_getNs: function() {
-			return $.mobile.ns;
-		},
-
-		_enhance: function( content, role ) {
-			// TODO consider supporting a custom callback, and passing in
-			// the settings which includes the role
-			return content.page({ role: role });
-		},
-
-		_include: function( page, settings ) {
-			// append to page and enhance
-			page.appendTo( this.element );
-
-			// use the page widget to enhance
-			this._enhance( page, settings.role );
-
-			// remove page on hide
-			page.page( "bindRemove" );
-		},
-
-		_find: function( absUrl ) {
-			// TODO consider supporting a custom callback
-			var fileUrl = this._createFileUrl( absUrl ),
-				dataUrl = this._createDataUrl( absUrl ),
-				page, initialContent = this._getInitialContent();
-
-			// Check to see if the page already exists in the DOM.
-			// NOTE do _not_ use the :jqmData pseudo selector because parenthesis
-			//      are a valid url char and it breaks on the first occurence
-			page = this.element
-				.children( "[data-" + this._getNs() +"url='" + dataUrl + "']" );
-
-			// If we failed to find the page, check to see if the url is a
-			// reference to an embedded page. If so, it may have been dynamically
-			// injected by a developer, in which case it would be lacking a
-			// data-url attribute and in need of enhancement.
-			if ( page.length === 0 && dataUrl && !$.mobile.path.isPath( dataUrl ) ) {
-				page = this.element.children( $.mobile.path.hashToSelector("#" + dataUrl) )
-					.attr( "data-" + this._getNs() + "url", dataUrl )
-					.jqmData( "url", dataUrl );
-			}
-
-			// If we failed to find a page in the DOM, check the URL to see if it
-			// refers to the first page in the application. Also check to make sure
-			// our cached-first-page is actually in the DOM. Some user deployed
-			// apps are pruning the first page from the DOM for various reasons.
-			// We check for this case here because we don't want a first-page with
-			// an id falling through to the non-existent embedded page error case.
-			if ( page.length === 0 &&
-				$.mobile.path.isFirstPageUrl( fileUrl ) &&
-				initialContent &&
-				initialContent.parent().length ) {
-				page = $( initialContent );
-			}
-
-			return page;
-		},
-
-		_getLoader: function() {
-			return $.mobile.loading();
-		},
-
-		_showLoading: function( delay, theme, msg, textonly ) {
-			// This configurable timeout allows cached pages a brief
-			// delay to load without showing a message
-			if ( this._loadMsg ) {
-				return;
-			}
-
-			this._loadMsg = setTimeout($.proxy(function() {
-				this._getLoader().loader( "show", theme, msg, textonly );
-				this._loadMsg = 0;
-			}, this), delay );
-		},
-
-		_hideLoading: function() {
-			// Stop message show timer
-			clearTimeout( this._loadMsg );
-			this._loadMsg = 0;
-
-			// Hide loading message
-			this._getLoader().loader( "hide" );
-		},
-
-		_showError: function() {
-			// make sure to remove the current loading message
-			this._hideLoading();
-
-			// show the error message
-			this._showLoading( 0, $.mobile.pageLoadErrorMessageTheme, $.mobile.pageLoadErrorMessage, true );
-
-			// hide the error message after a delay
-			// TODO configuration
-			setTimeout( $.proxy(this, "_hideLoading"), 1500 );
-		},
-
-		_parse: function( html, fileUrl ) {
-			// TODO consider allowing customization of this method. It's very JQM specific
-			var page, all = $( "<div></div>" );
-
-			//workaround to allow scripts to execute when included in page divs
-			all.get( 0 ).innerHTML = html;
-
-			page = all.find( ":jqmData(role='page'), :jqmData(role='dialog')" ).first();
-
-			//if page elem couldn't be found, create one and insert the body element's contents
-			if ( !page.length ) {
-				page = $( "<div data-" + this._getNs() + "role='page'>" +
-					( html.split( /<\/?body[^>]*>/gmi )[1] || "" ) +
-					"</div>" );
-			}
-
-			// TODO tagging a page with external to make sure that embedded pages aren't
-			// removed by the various page handling code is bad. Having page handling code
-			// in many places is bad. Solutions post 1.0
-			page.attr( "data-" + this._getNs() + "url", $.mobile.path.convertUrlToDataUrl(fileUrl) )
-				.attr( "data-" + this._getNs() + "external-page", true );
-
-			return page;
-		},
-
-		_setLoadedTitle: function( page, html ) {
-			//page title regexp
-			var newPageTitle = html.match( /<title[^>]*>([^<]*)/ ) && RegExp.$1;
-
-			if ( newPageTitle && !page.jqmData("title") ) {
-				newPageTitle = $( "<div>" + newPageTitle + "</div>" ).text();
-				page.jqmData( "title", newPageTitle );
-			}
-		},
-
-		_isRewritableBaseTag: function() {
-			return $.mobile.dynamicBaseEnabled && !$.support.dynamicBaseTag;
-		},
-
-		_createDataUrl: function( absoluteUrl ) {
-			return $.mobile.path.convertUrlToDataUrl( absoluteUrl );
-		},
-
-		_createFileUrl: function( absoluteUrl ) {
-			return $.mobile.path.getFilePath( absoluteUrl );
-		},
-
-		_triggerWithDeprecated: function( name, data, page ) {
-			var deprecatedEvent = $.Event( "page" + name ),
-				newEvent = $.Event( this.widgetName + name );
-
-			// DEPRECATED
-			// trigger the old deprecated event on the page if it's provided
-			( page || this.element ).trigger( deprecatedEvent, data );
-
-			// use the widget trigger method for the new content* event
-			this._trigger( name, newEvent, data );
-
-			return {
-				deprecatedEvent: deprecatedEvent,
-				event: newEvent
-			};
-		},
-
-		// TODO it would be nice to split this up more but everything appears to be "one off"
-		//      or require ordering such that other bits are sprinkled in between parts that
-		//      could be abstracted out as a group
-		_loadSuccess: function( absUrl, triggerData, settings, deferred ) {
-			var fileUrl = this._createFileUrl( absUrl ),
-				dataUrl = this._createDataUrl( absUrl );
-
-			return $.proxy(function( html, textStatus, xhr ) {
-				//pre-parse html to check for a data-url,
-				//use it as the new fileUrl, base path, etc
-				var content,
-
-					// TODO handle dialogs again
-					pageElemRegex = new RegExp( "(<[^>]+\\bdata-" + this._getNs() + "role=[\"']?page[\"']?[^>]*>)" ),
-
-					dataUrlRegex = new RegExp( "\\bdata-" + this._getNs() + "url=[\"']?([^\"'>]*)[\"']?" );
-
-				// data-url must be provided for the base tag so resource requests
-				// can be directed to the correct url. loading into a temprorary
-				// element makes these requests immediately
-				if ( pageElemRegex.test( html ) &&
-					RegExp.$1 &&
-					dataUrlRegex.test( RegExp.$1 ) &&
-					RegExp.$1 ) {
-					fileUrl = $.mobile.path.getFilePath( $("<div>" + RegExp.$1 + "</div>").text() );
-				}
-
-				//dont update the base tag if we are prefetching
-				if ( settings.prefetch === undefined ) {
-					this._getBase().set( fileUrl );
-				}
-
-				content = this._parse( html, fileUrl );
-
-				this._setLoadedTitle( content, html );
-
-				// Add the content reference and xhr to our triggerData.
-				triggerData.xhr = xhr;
-				triggerData.textStatus = textStatus;
-
-				// DEPRECATED
-				triggerData.page = content;
-
-				triggerData.content = content;
-
-				triggerData.toPage = content;
-
-				// If the default behavior is prevented, stop here!
-				// Note that it is the responsibility of the listener/handler
-				// that called preventDefault(), to resolve/reject the
-				// deferred object within the triggerData.
-				if ( this._triggerWithDeprecated( "load", triggerData ).event.isDefaultPrevented() ) {
-					return;
-				}
-
-				// rewrite src and href attrs to use a base url if the base tag won't work
-				if ( this._isRewritableBaseTag() && content ) {
-					this._getBase().rewrite( fileUrl, content );
-				}
-
-				this._include( content, settings );
-
-				// Enhancing the content may result in new dialogs/sub content being inserted
-				// into the DOM. If the original absUrl refers to a sub-content, that is the
-				// real content we are interested in.
-				if ( absUrl.indexOf( "&" + $.mobile.subPageUrlKey ) > -1 ) {
-					content = this.element.children( "[data-" + this._getNs() +"url='" + dataUrl + "']" );
-				}
-
-				// Remove loading message.
-				if ( settings.showLoadMsg ) {
-					this._hideLoading();
-				}
-
-				deferred.resolve( absUrl, settings, content );
-			}, this);
-		},
-
-		_loadDefaults: {
-			type: "get",
-			data: undefined,
-
-			// DEPRECATED
-			reloadPage: false,
-
-			reload: false,
-
-			// By default we rely on the role defined by the @data-role attribute.
-			role: undefined,
-
-			showLoadMsg: false,
-
-			// This delay allows loads that pull from browser cache to
-			// occur without showing the loading message.
-			loadMsgDelay: 50
-		},
-
-		load: function( url, options ) {
-			// This function uses deferred notifications to let callers
-			// know when the content is done loading, or if an error has occurred.
-			var deferred = ( options && options.deferred ) || $.Deferred(),
-
-				// The default load options with overrides specified by the caller.
-				settings = $.extend( {}, this._loadDefaults, options ),
-
-				// The DOM element for the content after it has been loaded.
-				content = null,
-
-				// The absolute version of the URL passed into the function. This
-				// version of the URL may contain dialog/subcontent params in it.
-				absUrl = $.mobile.path.makeUrlAbsolute( url, this._findBaseWithDefault() ),
-				fileUrl, dataUrl, pblEvent, triggerData;
-
-			// DEPRECATED reloadPage
-			settings.reload = settings.reloadPage;
-
-			// If the caller provided data, and we're using "get" request,
-			// append the data to the URL.
-			if ( settings.data && settings.type === "get" ) {
-				absUrl = $.mobile.path.addSearchParams( absUrl, settings.data );
-				settings.data = undefined;
-			}
-
-			// If the caller is using a "post" request, reload must be true
-			if ( settings.data && settings.type === "post" ) {
-				settings.reload = true;
-			}
-
-			// The absolute version of the URL minus any dialog/subcontent params.
-			// In otherwords the real URL of the content to be loaded.
-			fileUrl = this._createFileUrl( absUrl );
-
-			// The version of the Url actually stored in the data-url attribute of
-			// the content. For embedded content, it is just the id of the page. For
-			// content within the same domain as the document base, it is the site
-			// relative path. For cross-domain content (Phone Gap only) the entire
-			// absolute Url is used to load the content.
-			dataUrl = this._createDataUrl( absUrl );
-
-			content = this._find( absUrl );
-
-			// If it isn't a reference to the first content and refers to missing
-			// embedded content reject the deferred and return
-			if ( content.length === 0 &&
-				$.mobile.path.isEmbeddedPage(fileUrl) &&
-				!$.mobile.path.isFirstPageUrl(fileUrl) ) {
-				deferred.reject( absUrl, settings );
-				return deferred.promise();
-			}
-
-			// Reset base to the default document base
-			// TODO figure out why we doe this
-			this._getBase().reset();
-
-			// If the content we are interested in is already in the DOM,
-			// and the caller did not indicate that we should force a
-			// reload of the file, we are done. Resolve the deferrred so that
-			// users can bind to .done on the promise
-			if ( content.length && !settings.reload ) {
-				this._enhance( content, settings.role );
-				deferred.resolve( absUrl, settings, content );
-
-				//if we are reloading the content make sure we update
-				// the base if its not a prefetch
-				if ( !settings.prefetch ) {
-					this._getBase().set(url);
-				}
-
-				return deferred.promise();
-			}
-
-			triggerData = {
-				url: url,
-				absUrl: absUrl,
-				toPage: url,
-				prevPage: options ? options.fromPage : undefined,
-				dataUrl: dataUrl,
-				deferred: deferred,
-				options: settings
-			};
-
-			// Let listeners know we're about to load content.
-			pblEvent = this._triggerWithDeprecated( "beforeload", triggerData );
-
-			// If the default behavior is prevented, stop here!
-			if ( pblEvent.deprecatedEvent.isDefaultPrevented() ||
-				pblEvent.event.isDefaultPrevented() ) {
-				return deferred.promise();
-			}
-
-			if ( settings.showLoadMsg ) {
-				this._showLoading( settings.loadMsgDelay );
-			}
-
-			// Reset base to the default document base.
-			// only reset if we are not prefetching
-			if ( settings.prefetch === undefined ) {
-				this._getBase().reset();
-			}
-
-			if ( !( $.mobile.allowCrossDomainPages ||
-				$.mobile.path.isSameDomain($.mobile.path.documentUrl, absUrl ) ) ) {
-				deferred.reject( absUrl, settings );
-				return deferred.promise();
-			}
-
-			// Load the new content.
-			$.ajax({
-				url: fileUrl,
-				type: settings.type,
-				data: settings.data,
-				contentType: settings.contentType,
-				dataType: "html",
-				success: this._loadSuccess( absUrl, triggerData, settings, deferred ),
-				error: this._loadError( absUrl, triggerData, settings, deferred )
-			});
-
-			return deferred.promise();
-		},
-
-		_loadError: function( absUrl, triggerData, settings, deferred ) {
-			return $.proxy(function( xhr, textStatus, errorThrown ) {
-				//set base back to current path
-				this._getBase().set( $.mobile.path.get() );
-
-				// Add error info to our triggerData.
-				triggerData.xhr = xhr;
-				triggerData.textStatus = textStatus;
-				triggerData.errorThrown = errorThrown;
-
-				// Let listeners know the page load failed.
-				var plfEvent = this._triggerWithDeprecated( "loadfailed", triggerData );
-
-				// If the default behavior is prevented, stop here!
-				// Note that it is the responsibility of the listener/handler
-				// that called preventDefault(), to resolve/reject the
-				// deferred object within the triggerData.
-				if ( plfEvent.deprecatedEvent.isDefaultPrevented() ||
-					plfEvent.event.isDefaultPrevented() ) {
-					return;
-				}
-
-				// Remove loading message.
-				if ( settings.showLoadMsg ) {
-					this._showError();
-				}
-
-				deferred.reject( absUrl, settings );
-			}, this);
-		},
-
-		_getTransitionHandler: function( transition ) {
-			transition = $.mobile._maybeDegradeTransition( transition );
-
-			//find the transition handler for the specified transition. If there
-			//isn't one in our transitionHandlers dictionary, use the default one.
-			//call the handler immediately to kick-off the transition.
-			return $.mobile.transitionHandlers[ transition ] || $.mobile.defaultTransitionHandler;
-		},
-
-		// TODO move into transition handlers?
-		_triggerCssTransitionEvents: function( to, from, prefix ) {
-			var samePage = false;
-
-			prefix = prefix || "";
-
-			// TODO decide if these events should in fact be triggered on the container
-			if ( from ) {
-
-				//Check if this is a same page transition and tell the handler in page
-				if( to[0] === from[0] ){
-					samePage = true;
-				}
-
-				//trigger before show/hide events
-				// TODO deprecate nextPage in favor of next
-				this._triggerWithDeprecated( prefix + "hide", {
-
-					// Deprecated in 1.4 remove in 1.5
-					nextPage: to,
-					toPage: to,
-					prevPage: from,
-					samePage: samePage
-				}, from );
-			}
-
-			// TODO deprecate prevPage in favor of previous
-			this._triggerWithDeprecated( prefix + "show", {
-				prevPage: from || $( "" ),
-				toPage: to
-			}, to );
-		},
-
-		// TODO make private once change has been defined in the widget
-		_cssTransition: function( to, from, options ) {
-			var transition = options.transition,
-				reverse = options.reverse,
-				deferred = options.deferred,
-				TransitionHandler,
-				promise;
-
-			this._triggerCssTransitionEvents( to, from, "before" );
-
-			// TODO put this in a binding to events *outside* the widget
-			this._hideLoading();
-
-			TransitionHandler = this._getTransitionHandler( transition );
-
-			promise = ( new TransitionHandler( transition, reverse, to, from ) ).transition();
-
-			promise.done( $.proxy( function() {
-				this._triggerCssTransitionEvents( to, from );
-			}, this ));
-
-			// TODO temporary accomodation of argument deferred
-			promise.done(function() {
-				deferred.resolve.apply( deferred, arguments );
-			});
-		},
-
-		_releaseTransitionLock: function() {
-			//release transition lock so navigation is free again
-			isPageTransitioning = false;
-			if ( pageTransitionQueue.length > 0 ) {
-				$.mobile.changePage.apply( null, pageTransitionQueue.pop() );
-			}
-		},
-
-		_removeActiveLinkClass: function( force ) {
-			//clear out the active button state
-			$.mobile.removeActiveLinkClass( force );
-		},
-
-		_loadUrl: function( to, triggerData, settings ) {
-			// preserve the original target as the dataUrl value will be
-			// simplified eg, removing ui-state, and removing query params
-			// from the hash this is so that users who want to use query
-			// params have access to them in the event bindings for the page
-			// life cycle See issue #5085
-			settings.target = to;
-			settings.deferred = $.Deferred();
-
-			this.load( to, settings );
-
-			settings.deferred.done($.proxy(function( url, options, content ) {
-				isPageTransitioning = false;
-
-				// store the original absolute url so that it can be provided
-				// to events in the triggerData of the subsequent changePage call
-				options.absUrl = triggerData.absUrl;
-
-				this.transition( content, triggerData, options );
-			}, this));
-
-			settings.deferred.fail($.proxy(function(/* url, options */) {
-				this._removeActiveLinkClass( true );
-				this._releaseTransitionLock();
-				this._triggerWithDeprecated( "changefailed", triggerData );
-			}, this));
-		},
-
-		_triggerPageBeforeChange: function( to, triggerData, settings ) {
-			var returnEvents;
-
-			triggerData.prevPage = this.activePage;
-			$.extend( triggerData, {
-				toPage: to,
-				options: settings
-			});
-
-			// NOTE: preserve the original target as the dataUrl value will be
-			// simplified eg, removing ui-state, and removing query params from
-			// the hash this is so that users who want to use query params have
-			// access to them in the event bindings for the page life cycle
-			// See issue #5085
-			if ( $.type(to) === "string" ) {
-				// if the toPage is a string simply convert it
-				triggerData.absUrl = $.mobile.path.makeUrlAbsolute( to, this._findBaseWithDefault() );
-			} else {
-				// if the toPage is a jQuery object grab the absolute url stored
-				// in the loadPage callback where it exists
-				triggerData.absUrl = settings.absUrl;
-			}
-
-			// Let listeners know we're about to change the current page.
-			returnEvents = this._triggerWithDeprecated( "beforechange", triggerData );
-
-			// If the default behavior is prevented, stop here!
-			if ( returnEvents.event.isDefaultPrevented() ||
-				returnEvents.deprecatedEvent.isDefaultPrevented() ) {
-				return false;
-			}
-
-			return true;
-		},
-
-		change: function( to, options ) {
-			// If we are in the midst of a transition, queue the current request.
-			// We'll call changePage() once we're done with the current transition
-			// to service the request.
-			if ( isPageTransitioning ) {
-				pageTransitionQueue.unshift( arguments );
-				return;
-			}
-
-			var settings = $.extend( {}, $.mobile.changePage.defaults, options ),
-				triggerData = {};
-
-			// Make sure we have a fromPage.
-			settings.fromPage = settings.fromPage || this.activePage;
-
-			// if the page beforechange default is prevented return early
-			if ( !this._triggerPageBeforeChange(to, triggerData, settings) ) {
-				return;
-			}
-
-			// We allow "pagebeforechange" observers to modify the to in
-			// the trigger data to allow for redirects. Make sure our to is
-			// updated. We also need to re-evaluate whether it is a string,
-			// because an object can also be replaced by a string
-			to = triggerData.toPage;
-
-			// If the caller passed us a url, call loadPage()
-			// to make sure it is loaded into the DOM. We'll listen
-			// to the promise object it returns so we know when
-			// it is done loading or if an error ocurred.
-			if ( $.type(to) === "string" ) {
-				// Set the isPageTransitioning flag to prevent any requests from
-				// entering this method while we are in the midst of loading a page
-				// or transitioning.
-				isPageTransitioning = true;
-
-				this._loadUrl( to, triggerData, settings );
-			} else {
-				this.transition( to, triggerData, settings );
-			}
-		},
-
-		transition: function( toPage, triggerData, settings ) {
-			var fromPage, url, pageUrl, fileUrl,
-				active, activeIsInitialPage,
-				historyDir, pageTitle, isDialog,
-				alreadyThere, newPageTitle,
-				params,	cssTransitionDeferred,
-				beforeTransition;
-
-			// If we are in the midst of a transition, queue the current request.
-			// We'll call changePage() once we're done with the current transition
-			// to service the request.
-			if ( isPageTransitioning ) {
-				// make sure to only queue the to and settings values so the arguments
-				// work with a call to the change method
-				pageTransitionQueue.unshift( [toPage, settings] );
-				return;
-			}
-
-			// DEPRECATED - this call only, in favor of the before transition
-			// if the page beforechange default is prevented return early
-			if ( !this._triggerPageBeforeChange(toPage, triggerData, settings) ) {
-				return;
-			}
-
-			triggerData.prevPage = settings.fromPage;
-			// if the (content|page)beforetransition default is prevented return early
-			// Note, we have to check for both the deprecated and new events
-			beforeTransition = this._triggerWithDeprecated( "beforetransition", triggerData );
-			if (beforeTransition.deprecatedEvent.isDefaultPrevented() ||
-				beforeTransition.event.isDefaultPrevented() ) {
-				return;
-			}
-
-			// Set the isPageTransitioning flag to prevent any requests from
-			// entering this method while we are in the midst of loading a page
-			// or transitioning.
-			isPageTransitioning = true;
-
-			// If we are going to the first-page of the application, we need to make
-			// sure settings.dataUrl is set to the application document url. This allows
-			// us to avoid generating a document url with an id hash in the case where the
-			// first-page of the document has an id attribute specified.
-			if ( toPage[ 0 ] === $.mobile.firstPage[ 0 ] && !settings.dataUrl ) {
-				settings.dataUrl = $.mobile.path.documentUrl.hrefNoHash;
-			}
-
-			// The caller passed us a real page DOM element. Update our
-			// internal state and then trigger a transition to the page.
-			fromPage = settings.fromPage;
-			url = ( settings.dataUrl && $.mobile.path.convertUrlToDataUrl(settings.dataUrl) ) ||
-				toPage.jqmData( "url" );
-
-			// The pageUrl var is usually the same as url, except when url is obscured
-			// as a dialog url. pageUrl always contains the file path
-			pageUrl = url;
-			fileUrl = $.mobile.path.getFilePath( url );
-			active = $.mobile.navigate.history.getActive();
-			activeIsInitialPage = $.mobile.navigate.history.activeIndex === 0;
-			historyDir = 0;
-			pageTitle = document.title;
-			isDialog = ( settings.role === "dialog" ||
-				toPage.jqmData( "role" ) === "dialog" ) &&
-				toPage.jqmData( "dialog" ) !== true;
-
-			// By default, we prevent changePage requests when the fromPage and toPage
-			// are the same element, but folks that generate content
-			// manually/dynamically and reuse pages want to be able to transition to
-			// the same page. To allow this, they will need to change the default
-			// value of allowSamePageTransition to true, *OR*, pass it in as an
-			// option when they manually call changePage(). It should be noted that
-			// our default transition animations assume that the formPage and toPage
-			// are different elements, so they may behave unexpectedly. It is up to
-			// the developer that turns on the allowSamePageTransitiona option to
-			// either turn off transition animations, or make sure that an appropriate
-			// animation transition is used.
-			if ( fromPage && fromPage[0] === toPage[0] &&
-				!settings.allowSamePageTransition ) {
-
-				isPageTransitioning = false;
-				this._triggerWithDeprecated( "transition", triggerData );
-				this._triggerWithDeprecated( "change", triggerData );
-
-				// Even if there is no page change to be done, we should keep the
-				// urlHistory in sync with the hash changes
-				if ( settings.fromHashChange ) {
-					$.mobile.navigate.history.direct({ url: url });
-				}
-
-				return;
-			}
-
-			// We need to make sure the page we are given has already been enhanced.
-			toPage.page({ role: settings.role });
-
-			// If the changePage request was sent from a hashChange event, check to
-			// see if the page is already within the urlHistory stack. If so, we'll
-			// assume the user hit the forward/back button and will try to match the
-			// transition accordingly.
-			if ( settings.fromHashChange ) {
-				historyDir = settings.direction === "back" ? -1 : 1;
-			}
-
-			// Kill the keyboard.
-			// XXX_jblas: We need to stop crawling the entire document to kill focus.
-			//            Instead, we should be tracking focus with a delegate()
-			//            handler so we already have the element in hand at this
-			//            point.
-			// Wrap this in a try/catch block since IE9 throw "Unspecified error" if
-			// document.activeElement is undefined when we are in an IFrame.
-			try {
-				if ( document.activeElement &&
-					document.activeElement.nodeName.toLowerCase() !== "body" ) {
-
-					$( document.activeElement ).blur();
-				} else {
-					$( "input:focus, textarea:focus, select:focus" ).blur();
-				}
-			} catch( e ) {}
-
-			// Record whether we are at a place in history where a dialog used to be -
-			// if so, do not add a new history entry and do not change the hash either
-			alreadyThere = false;
-
-			// If we're displaying the page as a dialog, we don't want the url
-			// for the dialog content to be used in the hash. Instead, we want
-			// to append the dialogHashKey to the url of the current page.
-			if ( isDialog && active ) {
-				// on the initial page load active.url is undefined and in that case
-				// should be an empty string. Moving the undefined -> empty string back
-				// into urlHistory.addNew seemed imprudent given undefined better
-				// represents the url state
-
-				// If we are at a place in history that once belonged to a dialog, reuse
-				// this state without adding to urlHistory and without modifying the
-				// hash. However, if a dialog is already displayed at this point, and
-				// we're about to display another dialog, then we must add another hash
-				// and history entry on top so that one may navigate back to the
-				// original dialog
-				if ( active.url &&
-					active.url.indexOf( $.mobile.dialogHashKey ) > -1 &&
-					this.activePage &&
-					!this.activePage.hasClass( "ui-dialog" ) &&
-					$.mobile.navigate.history.activeIndex > 0 ) {
-
-					settings.changeHash = false;
-					alreadyThere = true;
-				}
-
-				// Normally, we tack on a dialog hash key, but if this is the location
-				// of a stale dialog, we reuse the URL from the entry
-				url = ( active.url || "" );
-
-				// account for absolute urls instead of just relative urls use as hashes
-				if ( !alreadyThere && url.indexOf("#") > -1 ) {
-					url += $.mobile.dialogHashKey;
-				} else {
-					url += "#" + $.mobile.dialogHashKey;
-				}
-			}
-
-			// if title element wasn't found, try the page div data attr too
-			// If this is a deep-link or a reload ( active === undefined ) then just
-			// use pageTitle
-			newPageTitle = ( !active ) ? pageTitle : toPage.jqmData( "title" ) ||
-				toPage.children( ":jqmData(role='header')" ).find( ".ui-title" ).text();
-			if ( !!newPageTitle && pageTitle === document.title ) {
-				pageTitle = newPageTitle;
-			}
-			if ( !toPage.jqmData( "title" ) ) {
-				toPage.jqmData( "title", pageTitle );
-			}
-
-			// Make sure we have a transition defined.
-			settings.transition = settings.transition ||
-				( ( historyDir && !activeIsInitialPage ) ? active.transition : undefined ) ||
-				( isDialog ? $.mobile.defaultDialogTransition : $.mobile.defaultPageTransition );
-
-			//add page to history stack if it's not back or forward
-			if ( !historyDir && alreadyThere ) {
-				$.mobile.navigate.history.getActive().pageUrl = pageUrl;
-			}
-
-			// Set the location hash.
-			if ( url && !settings.fromHashChange ) {
-
-				// rebuilding the hash here since we loose it earlier on
-				// TODO preserve the originally passed in path
-				if ( !$.mobile.path.isPath( url ) && url.indexOf( "#" ) < 0 ) {
-					url = "#" + url;
-				}
-
-				// TODO the property names here are just silly
-				params = {
-					allowSamePageTransition: settings.allowSamePageTransition,
-					transition: settings.transition,
-					title: pageTitle,
-					pageUrl: pageUrl,
-					role: settings.role
-				};
-
-				if ( settings.changeHash !== false && $.mobile.hashListeningEnabled ) {
-					$.mobile.navigate( url, params, true);
-				} else if ( toPage[ 0 ] !== $.mobile.firstPage[ 0 ] ) {
-					$.mobile.navigate.history.add( url, params );
-				}
-			}
-
-			//set page title
-			document.title = pageTitle;
-
-			//set "toPage" as activePage deprecated in 1.4 remove in 1.5
-			$.mobile.activePage = toPage;
-
-			//new way to handle activePage
-			this.activePage = toPage;
-
-			// If we're navigating back in the URL history, set reverse accordingly.
-			settings.reverse = settings.reverse || historyDir < 0;
-
-			cssTransitionDeferred = $.Deferred();
-
-			this._cssTransition(toPage, fromPage, {
-				transition: settings.transition,
-				reverse: settings.reverse,
-				deferred: cssTransitionDeferred
-			});
-
-			cssTransitionDeferred.done($.proxy(function( name, reverse, $to, $from, alreadyFocused ) {
-				$.mobile.removeActiveLinkClass();
-
-				//if there's a duplicateCachedPage, remove it from the DOM now that it's hidden
-				if ( settings.duplicateCachedPage ) {
-					settings.duplicateCachedPage.remove();
-				}
-
-				// despite visibility: hidden addresses issue #2965
-				// https://github.com/jquery/jquery-mobile/issues/2965
-				if ( !alreadyFocused ) {
-					$.mobile.focusPage( toPage );
-				}
-
-				this._releaseTransitionLock();
-				this._triggerWithDeprecated( "transition", triggerData );
-				this._triggerWithDeprecated( "change", triggerData );
-			}, this));
-		},
-
-		// determine the current base url
-		_findBaseWithDefault: function() {
-			var closestBase = ( this.activePage &&
-			$.mobile.getClosestBaseUrl( this.activePage ) );
-		return closestBase || $.mobile.path.documentBase.hrefNoHash;
-		}
-	});
-
-	// The following handlers should be bound after mobileinit has been triggered
-	// the following deferred is resolved in the init file
-	$.mobile.navreadyDeferred = $.Deferred();
-
-	//these variables make all page containers use the same queue and only navigate one at a time
-	// queue to hold simultanious page transitions
-	var pageTransitionQueue = [],
-
-		// indicates whether or not page is in process of transitioning
-		isPageTransitioning = false;
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-		// resolved on domready
-	var domreadyDeferred = $.Deferred(),
-
-		// resolved and nulled on window.load()
-		loadDeferred = $.Deferred(),
-
-		// function that resolves the above deferred
-		pageIsFullyLoaded = function() {
-
-			// Resolve and null the deferred
-			loadDeferred.resolve();
-			loadDeferred = null;
-		},
-
-		documentUrl = $.mobile.path.documentUrl,
-
-		// used to track last vclicked element to make sure its value is added to form data
-		$lastVClicked = null;
-
-	/* Event Bindings - hashchange, submit, and click */
-	function findClosestLink( ele )	{
-		while ( ele ) {
-			// Look for the closest element with a nodeName of "a".
-			// Note that we are checking if we have a valid nodeName
-			// before attempting to access it. This is because the
-			// node we get called with could have originated from within
-			// an embedded SVG document where some symbol instance elements
-			// don't have nodeName defined on them, or strings are of type
-			// SVGAnimatedString.
-			if ( ( typeof ele.nodeName === "string" ) && ele.nodeName.toLowerCase() === "a" ) {
-				break;
-			}
-			ele = ele.parentNode;
-		}
-		return ele;
-	}
-
-	$.mobile.loadPage = function( url, opts ) {
-		var container;
-
-		opts = opts || {};
-		container = ( opts.pageContainer || $.mobile.pageContainer );
-
-		// create the deferred that will be supplied to loadPage callers
-		// and resolved by the content widget's load method
-		opts.deferred = $.Deferred();
-
-		// Preferring to allow exceptions for uninitialized opts.pageContainer
-		// widgets so we know if we need to force init here for users
-		container.pagecontainer( "load", url, opts );
-
-		// provide the deferred
-		return opts.deferred.promise();
-	};
-
-	//define vars for interal use
-
-	/* internal utility functions */
-
-	// NOTE Issue #4950 Android phonegap doesn't navigate back properly
-	//      when a full page refresh has taken place. It appears that hashchange
-	//      and replacestate history alterations work fine but we need to support
-	//      both forms of history traversal in our code that uses backward history
-	//      movement
-	$.mobile.back = function() {
-		var nav = window.navigator;
-
-		// if the setting is on and the navigator object is
-		// available use the phonegap navigation capability
-		if ( this.phonegapNavigationEnabled &&
-			nav &&
-			nav.app &&
-			nav.app.backHistory ) {
-			nav.app.backHistory();
-		} else {
-			$.mobile.pageContainer.pagecontainer( "back" );
-		}
-	};
-
-	// Direct focus to the page title, or otherwise first focusable element
-	$.mobile.focusPage = function ( page ) {
-		var autofocus = page.find( "[autofocus]" ),
-			pageTitle = page.find( ".ui-title:eq(0)" );
-
-		if ( autofocus.length ) {
-			autofocus.focus();
-			return;
-		}
-
-		if ( pageTitle.length ) {
-			pageTitle.focus();
-		} else{
-			page.focus();
-		}
-	};
-
-	// No-op implementation of transition degradation
-	$.mobile._maybeDegradeTransition = $.mobile._maybeDegradeTransition || function( transition ) {
-		return transition;
-	};
-
-	// Exposed $.mobile methods
-
-	$.mobile.changePage = function( to, options ) {
-		$.mobile.pageContainer.pagecontainer( "change", to, options );
-	};
-
-	$.mobile.changePage.defaults = {
-		transition: undefined,
-		reverse: false,
-		changeHash: true,
-		fromHashChange: false,
-		role: undefined, // By default we rely on the role defined by the @data-role attribute.
-		duplicateCachedPage: undefined,
-		pageContainer: undefined,
-		showLoadMsg: true, //loading message shows by default when pages are being fetched during changePage
-		dataUrl: undefined,
-		fromPage: undefined,
-		allowSamePageTransition: false
-	};
-
-	$.mobile._registerInternalEvents = function() {
-		var getAjaxFormData = function( $form, calculateOnly ) {
-			var url, ret = true, formData, vclickedName, method;
-			if ( !$.mobile.ajaxEnabled ||
-					// test that the form is, itself, ajax false
-					$form.is( ":jqmData(ajax='false')" ) ||
-					// test that $.mobile.ignoreContentEnabled is set and
-					// the form or one of it's parents is ajax=false
-					!$form.jqmHijackable().length ||
-					$form.attr( "target" ) ) {
-				return false;
-			}
-
-			url = ( $lastVClicked && $lastVClicked.attr( "formaction" ) ) ||
-				$form.attr( "action" );
-			method = ( $form.attr( "method" ) || "get" ).toLowerCase();
-
-			// If no action is specified, browsers default to using the
-			// URL of the document containing the form. Since we dynamically
-			// pull in pages from external documents, the form should submit
-			// to the URL for the source document of the page containing
-			// the form.
-			if ( !url ) {
-				// Get the @data-url for the page containing the form.
-				url = $.mobile.getClosestBaseUrl( $form );
-
-				// NOTE: If the method is "get", we need to strip off the query string
-				// because it will get replaced with the new form data. See issue #5710.
-				if ( method === "get" ) {
-					url = $.mobile.path.parseUrl( url ).hrefNoSearch;
-				}
-
-				if ( url === $.mobile.path.documentBase.hrefNoHash ) {
-					// The url we got back matches the document base,
-					// which means the page must be an internal/embedded page,
-					// so default to using the actual document url as a browser
-					// would.
-					url = documentUrl.hrefNoSearch;
-				}
-			}
-
-			url = $.mobile.path.makeUrlAbsolute(  url, $.mobile.getClosestBaseUrl( $form ) );
-
-			if ( ( $.mobile.path.isExternal( url ) && !$.mobile.path.isPermittedCrossDomainRequest( documentUrl, url ) ) ) {
-				return false;
-			}
-
-			if ( !calculateOnly ) {
-				formData = $form.serializeArray();
-
-				if ( $lastVClicked && $lastVClicked[ 0 ].form === $form[ 0 ] ) {
-					vclickedName = $lastVClicked.attr( "name" );
-					if ( vclickedName ) {
-						// Make sure the last clicked element is included in the form
-						$.each( formData, function( key, value ) {
-							if ( value.name === vclickedName ) {
-								// Unset vclickedName - we've found it in the serialized data already
-								vclickedName = "";
-								return false;
-							}
-						});
-						if ( vclickedName ) {
-							formData.push( { name: vclickedName, value: $lastVClicked.attr( "value" ) } );
-						}
-					}
-				}
-
-				ret = {
-					url: url,
-					options: {
-						type:		method,
-						data:		$.param( formData ),
-						transition:	$form.jqmData( "transition" ),
-						reverse:	$form.jqmData( "direction" ) === "reverse",
-						reloadPage:	true
-					}
-				};
-			}
-
-			return ret;
-		};
-
-		//bind to form submit events, handle with Ajax
-		$.mobile.document.delegate( "form", "submit", function( event ) {
-			var formData;
-
-			if ( !event.isDefaultPrevented() ) {
-				formData = getAjaxFormData( $( this ) );
-				if ( formData ) {
-					$.mobile.changePage( formData.url, formData.options );
-					event.preventDefault();
-				}
-			}
-		});
-
-		//add active state on vclick
-		$.mobile.document.bind( "vclick", function( event ) {
-			var $btn, btnEls, target = event.target, needClosest = false;
-			// if this isn't a left click we don't care. Its important to note
-			// that when the virtual event is generated it will create the which attr
-			if ( event.which > 1 || !$.mobile.linkBindingEnabled ) {
-				return;
-			}
-
-			// Record that this element was clicked, in case we need it for correct
-			// form submission during the "submit" handler above
-			$lastVClicked = $( target );
-
-			// Try to find a target element to which the active class will be applied
-			if ( $.data( target, "mobile-button" ) ) {
-				// If the form will not be submitted via AJAX, do not add active class
-				if ( !getAjaxFormData( $( target ).closest( "form" ), true ) ) {
-					return;
-				}
-				// We will apply the active state to this button widget - the parent
-				// of the input that was clicked will have the associated data
-				if ( target.parentNode ) {
-					target = target.parentNode;
-				}
-			} else {
-				target = findClosestLink( target );
-				if ( !( target && $.mobile.path.parseUrl( target.getAttribute( "href" ) || "#" ).hash !== "#" ) ) {
-					return;
-				}
-
-				// TODO teach $.mobile.hijackable to operate on raw dom elements so the
-				// link wrapping can be avoided
-				if ( !$( target ).jqmHijackable().length ) {
-					return;
-				}
-			}
-
-			// Avoid calling .closest by using the data set during .buttonMarkup()
-			// List items have the button data in the parent of the element clicked
-			if ( !!~target.className.indexOf( "ui-link-inherit" ) ) {
-				if ( target.parentNode ) {
-					btnEls = $.data( target.parentNode, "buttonElements" );
-				}
-			// Otherwise, look for the data on the target itself
-			} else {
-				btnEls = $.data( target, "buttonElements" );
-			}
-			// If found, grab the button's outer element
-			if ( btnEls ) {
-				target = btnEls.outer;
-			} else {
-				needClosest = true;
-			}
-
-			$btn = $( target );
-			// If the outer element wasn't found by the our heuristics, use .closest()
-			if ( needClosest ) {
-				$btn = $btn.closest( ".ui-btn" );
-			}
-
-			if ( $btn.length > 0 &&
-				!( $btn.hasClass( "ui-state-disabled" ||
-
-					// DEPRECATED as of 1.4.0 - remove after 1.4.0 release
-					// only ui-state-disabled should be present thereafter
-					$btn.hasClass( "ui-disabled" ) ) ) ) {
-				$.mobile.removeActiveLinkClass( true );
-				$.mobile.activeClickedLink = $btn;
-				$.mobile.activeClickedLink.addClass( $.mobile.activeBtnClass );
-			}
-		});
-
-		// click routing - direct to HTTP or Ajax, accordingly
-		$.mobile.document.bind( "click", function( event ) {
-			if ( !$.mobile.linkBindingEnabled || event.isDefaultPrevented() ) {
-				return;
-			}
-
-			var link = findClosestLink( event.target ),
-				$link = $( link ),
-
-				//remove active link class if external (then it won't be there if you come back)
-				httpCleanup = function() {
-					window.setTimeout(function() { $.mobile.removeActiveLinkClass( true ); }, 200 );
-				},
-				baseUrl, href,
-				useDefaultUrlHandling, isExternal,
-				transition, reverse, role;
-
-			// If a button was clicked, clean up the active class added by vclick above
-			if ( $.mobile.activeClickedLink &&
-				$.mobile.activeClickedLink[ 0 ] === event.target.parentNode ) {
-				httpCleanup();
-			}
-
-			// If there is no link associated with the click or its not a left
-			// click we want to ignore the click
-			// TODO teach $.mobile.hijackable to operate on raw dom elements so the link wrapping
-			// can be avoided
-			if ( !link || event.which > 1 || !$link.jqmHijackable().length ) {
-				return;
-			}
-
-			//if there's a data-rel=back attr, go back in history
-			if ( $link.is( ":jqmData(rel='back')" ) ) {
-				$.mobile.back();
-				return false;
-			}
-
-			baseUrl = $.mobile.getClosestBaseUrl( $link );
-
-			//get href, if defined, otherwise default to empty hash
-			href = $.mobile.path.makeUrlAbsolute( $link.attr( "href" ) || "#", baseUrl );
-
-			//if ajax is disabled, exit early
-			if ( !$.mobile.ajaxEnabled && !$.mobile.path.isEmbeddedPage( href ) ) {
-				httpCleanup();
-				//use default click handling
-				return;
-			}
-
-			// XXX_jblas: Ideally links to application pages should be specified as
-			//            an url to the application document with a hash that is either
-			//            the site relative path or id to the page. But some of the
-			//            internal code that dynamically generates sub-pages for nested
-			//            lists and select dialogs, just write a hash in the link they
-			//            create. This means the actual URL path is based on whatever
-			//            the current value of the base tag is at the time this code
-			//            is called.
-			if ( href.search( "#" ) !== -1 &&
-				!( $.mobile.path.isExternal( href ) && $.mobile.path.isAbsoluteUrl( href ) ) ) {
-
-				href = href.replace( /[^#]*#/, "" );
-				if ( !href ) {
-					//link was an empty hash meant purely
-					//for interaction, so we ignore it.
-					event.preventDefault();
-					return;
-				} else if ( $.mobile.path.isPath( href ) ) {
-					//we have apath so make it the href we want to load.
-					href = $.mobile.path.makeUrlAbsolute( href, baseUrl );
-				} else {
-					//we have a simple id so use the documentUrl as its base.
-					href = $.mobile.path.makeUrlAbsolute( "#" + href, documentUrl.hrefNoHash );
-				}
-			}
-
-			// Should we handle this link, or let the browser deal with it?
-			useDefaultUrlHandling = $link.is( "[rel='external']" ) || $link.is( ":jqmData(ajax='false')" ) || $link.is( "[target]" );
-
-			// Some embedded browsers, like the web view in Phone Gap, allow cross-domain XHR
-			// requests if the document doing the request was loaded via the file:// protocol.
-			// This is usually to allow the application to "phone home" and fetch app specific
-			// data. We normally let the browser handle external/cross-domain urls, but if the
-			// allowCrossDomainPages option is true, we will allow cross-domain http/https
-			// requests to go through our page loading logic.
-
-			//check for protocol or rel and its not an embedded page
-			//TODO overlap in logic from isExternal, rel=external check should be
-			//     moved into more comprehensive isExternalLink
-			isExternal = useDefaultUrlHandling || ( $.mobile.path.isExternal( href ) && !$.mobile.path.isPermittedCrossDomainRequest( documentUrl, href ) );
-
-			if ( isExternal ) {
-				httpCleanup();
-				//use default click handling
-				return;
-			}
-
-			//use ajax
-			transition = $link.jqmData( "transition" );
-			reverse = $link.jqmData( "direction" ) === "reverse" ||
-						// deprecated - remove by 1.0
-						$link.jqmData( "back" );
-
-			//this may need to be more specific as we use data-rel more
-			role = $link.attr( "data-" + $.mobile.ns + "rel" ) || undefined;
-
-			$.mobile.changePage( href, { transition: transition, reverse: reverse, role: role, link: $link } );
-			event.preventDefault();
-		});
-
-		//prefetch pages when anchors with data-prefetch are encountered
-		$.mobile.document.delegate( ".ui-page", "pageshow.prefetch", function() {
-			var urls = [];
-			$( this ).find( "a:jqmData(prefetch)" ).each(function() {
-				var $link = $( this ),
-					url = $link.attr( "href" );
-
-				if ( url && $.inArray( url, urls ) === -1 ) {
-					urls.push( url );
-
-					$.mobile.loadPage( url, { role: $link.attr( "data-" + $.mobile.ns + "rel" ),prefetch: true } );
-				}
-			});
-		});
-
-		// TODO ensure that the navigate binding in the content widget happens at the right time
-		$.mobile.pageContainer.pagecontainer();
-
-		//set page min-heights to be device specific
-		$.mobile.document.bind( "pageshow", function() {
-
-			// We need to wait for window.load to make sure that styles have already been rendered,
-			// otherwise heights of external toolbars will have the wrong value
-			if ( loadDeferred ) {
-				loadDeferred.done( $.mobile.resetActivePageHeight );
-			} else {
-				$.mobile.resetActivePageHeight();
-			}
-		});
-		$.mobile.window.bind( "throttledresize", $.mobile.resetActivePageHeight );
-
-	};//navreadyDeferred done callback
-
-	$( function() { domreadyDeferred.resolve(); } );
-
-	// Account for the possibility that the load event has already fired
-	if ( document.readyState === "complete" ) {
-		pageIsFullyLoaded();
-	} else {
-		$.mobile.window.load( pageIsFullyLoaded );
-	}
-
-	$.when( domreadyDeferred, $.mobile.navreadyDeferred ).done( function() { $.mobile._registerInternalEvents(); } );
-})( jQuery );
-
-
-(function( $, window, undefined ) {
-
-	// TODO remove direct references to $.mobile and properties, we should
-	//      favor injection with params to the constructor
-	$.mobile.Transition = function() {
-		this.init.apply( this, arguments );
-	};
-
-	$.extend($.mobile.Transition.prototype, {
-		toPreClass: " ui-page-pre-in",
-
-		init: function( name, reverse, $to, $from ) {
-			$.extend(this, {
-				name: name,
-				reverse: reverse,
-				$to: $to,
-				$from: $from,
-				deferred: new $.Deferred()
-			});
-		},
-
-		cleanFrom: function() {
-			this.$from
-				.removeClass( $.mobile.activePageClass + " out in reverse " + this.name )
-				.height( "" );
-		},
-
-		// NOTE overridden by child object prototypes, noop'd here as defaults
-		beforeDoneIn: function() {},
-		beforeDoneOut: function() {},
-		beforeStartOut: function() {},
-
-		doneIn: function() {
-			this.beforeDoneIn();
-
-			this.$to.removeClass( "out in reverse " + this.name ).height( "" );
-
-			this.toggleViewportClass();
-
-			// In some browsers (iOS5), 3D transitions block the ability to scroll to the desired location during transition
-			// This ensures we jump to that spot after the fact, if we aren't there already.
-			if ( $.mobile.window.scrollTop() !== this.toScroll ) {
-				this.scrollPage();
-			}
-			if ( !this.sequential ) {
-				this.$to.addClass( $.mobile.activePageClass );
-			}
-			this.deferred.resolve( this.name, this.reverse, this.$to, this.$from, true );
-		},
-
-		doneOut: function( screenHeight, reverseClass, none, preventFocus ) {
-			this.beforeDoneOut();
-			this.startIn( screenHeight, reverseClass, none, preventFocus );
-		},
-
-		hideIn: function( callback ) {
-			// Prevent flickering in phonegap container: see comments at #4024 regarding iOS
-			this.$to.css( "z-index", -10 );
-			callback.call( this );
-			this.$to.css( "z-index", "" );
-		},
-
-		scrollPage: function() {
-			// By using scrollTo instead of silentScroll, we can keep things better in order
-			// Just to be precautios, disable scrollstart listening like silentScroll would
-			$.event.special.scrollstart.enabled = false;
-			//if we are hiding the url bar or the page was previously scrolled scroll to hide or return to position
-			if ( $.mobile.hideUrlBar || this.toScroll !== $.mobile.defaultHomeScroll ) {
-				window.scrollTo( 0, this.toScroll );
-			}
-
-			// reenable scrollstart listening like silentScroll would
-			setTimeout( function() {
-				$.event.special.scrollstart.enabled = true;
-			}, 150 );
-		},
-
-		startIn: function( screenHeight, reverseClass, none, preventFocus ) {
-			this.hideIn(function() {
-				this.$to.addClass( $.mobile.activePageClass + this.toPreClass );
-
-				// Send focus to page as it is now display: block
-				if ( !preventFocus ) {
-					$.mobile.focusPage( this.$to );
-				}
-
-				// Set to page height
-				this.$to.height( screenHeight + this.toScroll );
-
-                if ( !none ) {
-                    this.scrollPage();
-                }
-			});
-
-			this.$to
-				.removeClass( this.toPreClass )
-				.addClass( this.name + " in " + reverseClass );
-
-			if ( !none ) {
-				this.$to.animationComplete( $.proxy(function() {
-					this.doneIn();
-				}, this ));
-			} else {
-				this.doneIn();
-			}
-
-		},
-
-		startOut: function( screenHeight, reverseClass, none ) {
-			this.beforeStartOut( screenHeight, reverseClass, none );
-
-			// Set the from page's height and start it transitioning out
-			// Note: setting an explicit height helps eliminate tiling in the transitions
-			this.$from
-				.height( screenHeight + $.mobile.window.scrollTop() )
-				.addClass( this.name + " out" + reverseClass );
-		},
-
-		toggleViewportClass: function() {
-			$.mobile.pageContainer.toggleClass( "ui-mobile-viewport-transitioning viewport-" + this.name );
-		},
-
-		transition: function() {
-			// NOTE many of these could be calculated/recorded in the constructor, it's my
-			//      opinion that binding them as late as possible has value with regards to
-			//      better transitions with fewer bugs. Ie, it's not guaranteed that the
-			//      object will be created and transition will be run immediately after as
-			//      it is today. So we wait until transition is invoked to gather the following
-			var none,
-				reverseClass = this.reverse ? " reverse" : "",
-				screenHeight = $.mobile.getScreenHeight(),
-				maxTransitionOverride = $.mobile.maxTransitionWidth !== false &&
-					$.mobile.window.width() > $.mobile.maxTransitionWidth;
-
-			this.toScroll = $.mobile.navigate.history.getActive().lastScroll || $.mobile.defaultHomeScroll;
-
-			none = !$.support.cssTransitions || !$.support.cssAnimations ||
-				maxTransitionOverride || !this.name || this.name === "none" ||
-				Math.max( $.mobile.window.scrollTop(), this.toScroll ) >
-					$.mobile.getMaxScrollForTransition();
-
-			this.toggleViewportClass();
-
-			if ( this.$from && !none ) {
-				this.startOut( screenHeight, reverseClass, none );
-			} else {
-				this.doneOut( screenHeight, reverseClass, none, true );
-			}
-
-			return this.deferred.promise();
-		}
-	});
-})( jQuery, this );
-
-
-(function( $ ) {
-
-	$.mobile.SerialTransition = function() {
-		this.init.apply(this, arguments);
-	};
-
-	$.extend($.mobile.SerialTransition.prototype, $.mobile.Transition.prototype, {
-		sequential: true,
-
-		beforeDoneOut: function() {
-			if ( this.$from ) {
-				this.cleanFrom();
-			}
-		},
-
-		beforeStartOut: function( screenHeight, reverseClass, none ) {
-			this.$from.animationComplete($.proxy(function() {
-				this.doneOut( screenHeight, reverseClass, none );
-			}, this ));
-		}
-	});
-
-})( jQuery );
-
-
-(function( $ ) {
-
-	$.mobile.ConcurrentTransition = function() {
-		this.init.apply(this, arguments);
-	};
-
-	$.extend($.mobile.ConcurrentTransition.prototype, $.mobile.Transition.prototype, {
-		sequential: false,
-
-		beforeDoneIn: function() {
-			if ( this.$from ) {
-				this.cleanFrom();
-			}
-		},
-
-		beforeStartOut: function( screenHeight, reverseClass, none ) {
-			this.doneOut( screenHeight, reverseClass, none );
-		}
-	});
-
-})( jQuery );
-
-
-(function( $ ) {
-
-	// generate the handlers from the above
-	var defaultGetMaxScrollForTransition = function() {
-		return $.mobile.getScreenHeight() * 3;
-	};
-
-	//transition handler dictionary for 3rd party transitions
-	$.mobile.transitionHandlers = {
-		"sequential": $.mobile.SerialTransition,
-		"simultaneous": $.mobile.ConcurrentTransition
-	};
-
-	// Make our transition handler the public default.
-	$.mobile.defaultTransitionHandler = $.mobile.transitionHandlers.sequential;
-
-	$.mobile.transitionFallbacks = {};
-
-	// If transition is defined, check if css 3D transforms are supported, and if not, if a fallback is specified
-	$.mobile._maybeDegradeTransition = function( transition ) {
-		if ( transition && !$.support.cssTransform3d && $.mobile.transitionFallbacks[ transition ] ) {
-			transition = $.mobile.transitionFallbacks[ transition ];
-		}
-
-		return transition;
-	};
-
-	// Set the getMaxScrollForTransition to default if no implementation was set by user
-	$.mobile.getMaxScrollForTransition = $.mobile.getMaxScrollForTransition || defaultGetMaxScrollForTransition;
-
-})( jQuery );
-
-/*
-* fallback transition for flip in non-3D supporting browsers (which tend to handle complex transitions poorly in general
-*/
-
-(function( $, window, undefined ) {
-
-$.mobile.transitionFallbacks.flip = "fade";
-
-})( jQuery, this );
-
-/*
-* fallback transition for flow in non-3D supporting browsers (which tend to handle complex transitions poorly in general
-*/
-
-(function( $, window, undefined ) {
-
-$.mobile.transitionFallbacks.flow = "fade";
-
-})( jQuery, this );
-
-/*
-* fallback transition for pop in non-3D supporting browsers (which tend to handle complex transitions poorly in general
-*/
-
-(function( $, window, undefined ) {
-
-$.mobile.transitionFallbacks.pop = "fade";
-
-})( jQuery, this );
-
-/*
-* fallback transition for slide in non-3D supporting browsers (which tend to handle complex transitions poorly in general
-*/
-
-(function( $, window, undefined ) {
-
-// Use the simultaneous transitions handler for slide transitions
-$.mobile.transitionHandlers.slide = $.mobile.transitionHandlers.simultaneous;
-
-// Set the slide transitions's fallback to "fade"
-$.mobile.transitionFallbacks.slide = "fade";
-
-})( jQuery, this );
-
-/*
-* fallback transition for slidedown in non-3D supporting browsers (which tend to handle complex transitions poorly in general
-*/
-
-(function( $, window, undefined ) {
-
-$.mobile.transitionFallbacks.slidedown = "fade";
-
-})( jQuery, this );
-
-/*
-* fallback transition for slidefade in non-3D supporting browsers (which tend to handle complex transitions poorly in general
-*/
-
-(function( $, window, undefined ) {
-
-// Set the slide transitions's fallback to "fade"
-$.mobile.transitionFallbacks.slidefade = "fade";
-
-})( jQuery, this );
-
-/*
-* fallback transition for slideup in non-3D supporting browsers (which tend to handle complex transitions poorly in general
-*/
-
-(function( $, window, undefined ) {
-
-$.mobile.transitionFallbacks.slideup = "fade";
-
-})( jQuery, this );
-
-/*
-* fallback transition for turn in non-3D supporting browsers (which tend to handle complex transitions poorly in general
-*/
-
-(function( $, window, undefined ) {
-
-$.mobile.transitionFallbacks.turn = "fade";
-
-})( jQuery, this );
-
-
-(function( $, undefined ) {
-
-$.mobile.degradeInputs = {
-	color: false,
-	date: false,
-	datetime: false,
-	"datetime-local": false,
-	email: false,
-	month: false,
-	number: false,
-	range: "number",
-	search: "text",
-	tel: false,
-	time: false,
-	url: false,
-	week: false
-};
-// Backcompat remove in 1.5
-$.mobile.page.prototype.options.degradeInputs = $.mobile.degradeInputs;
-
-// Auto self-init widgets
-$.mobile.degradeInputsWithin = function( target ) {
-
-	target = $( target );
-
-	// Degrade inputs to avoid poorly implemented native functionality
-	target.find( "input" ).not( $.mobile.page.prototype.keepNativeSelector() ).each(function() {
-		var element = $( this ),
-			type = this.getAttribute( "type" ),
-			optType = $.mobile.degradeInputs[ type ] || "text",
-			html, hasType, findstr, repstr;
-
-		if ( $.mobile.degradeInputs[ type ] ) {
-			html = $( "<div>" ).html( element.clone() ).html();
-			// In IE browsers, the type sometimes doesn't exist in the cloned markup, so we replace the closing tag instead
-			hasType = html.indexOf( " type=" ) > -1;
-			findstr = hasType ? /\s+type=["']?\w+['"]?/ : /\/?>/;
-			repstr = " type=\"" + optType + "\" data-" + $.mobile.ns + "type=\"" + type + "\"" + ( hasType ? "" : ">" );
-
-			element.replaceWith( html.replace( findstr, repstr ) );
-		}
-	});
-
-};
-
-})( jQuery );
-
-(function( $, window, undefined ) {
-
-$.widget( "mobile.page", $.mobile.page, {
-	options: {
-
-		// Accepts left, right and none
-		closeBtn: "left",
-		closeBtnText: "Close",
-		overlayTheme: "a",
-		corners: true,
-		dialog: false
-	},
-
-	_create: function() {
-		this._super();
-		if ( this.options.dialog ) {
-
-			$.extend( this, {
-				_inner: this.element.children(),
-				_headerCloseButton: null
-			});
-
-			if ( !this.options.enhanced ) {
-				this._setCloseBtn( this.options.closeBtn );
-			}
-		}
-	},
-
-	_enhance: function() {
-		this._super();
-
-		// Class the markup for dialog styling and wrap interior
-		if ( this.options.dialog ) {
-			this.element.addClass( "ui-dialog" )
-				.wrapInner( $( "<div/>", {
-
-					// ARIA role
-					"role" : "dialog",
-					"class" : "ui-dialog-contain ui-overlay-shadow" +
-						( this.options.corners ? " ui-corner-all" : "" )
-				}));
-		}
-	},
-
-	_setOptions: function( options ) {
-		var closeButtonLocation, closeButtonText,
-			currentOpts = this.options;
-
-		if ( options.corners !== undefined ) {
-			this._inner.toggleClass( "ui-corner-all", !!options.corners );
-		}
-
-		if ( options.overlayTheme !== undefined ) {
-			if ( $.mobile.activePage[ 0 ] === this.element[ 0 ] ) {
-				currentOpts.overlayTheme = options.overlayTheme;
-				this._handlePageBeforeShow();
-			}
-		}
-
-		if ( options.closeBtnText !== undefined ) {
-			closeButtonLocation = currentOpts.closeBtn;
-			closeButtonText = options.closeBtnText;
-		}
-
-		if ( options.closeBtn !== undefined ) {
-			closeButtonLocation = options.closeBtn;
-		}
-
-		if ( closeButtonLocation ) {
-			this._setCloseBtn( closeButtonLocation, closeButtonText );
-		}
-
-		this._super( options );
-	},
-
-	_handlePageBeforeShow: function () {
-		if ( this.options.overlayTheme && this.options.dialog ) {
-			this.removeContainerBackground();
-			this.setContainerBackground( this.options.overlayTheme );
-		} else {
-			this._super();
-		}
-	},
-
-	_setCloseBtn: function( location, text ) {
-		var dst,
-			btn = this._headerCloseButton;
-
-		// Sanitize value
-		location = "left" === location ? "left" : "right" === location ? "right" : "none";
-
-		if ( "none" === location ) {
-			if ( btn ) {
-				btn.remove();
-				btn = null;
-			}
-		} else if ( btn ) {
-			btn.removeClass( "ui-btn-left ui-btn-right" ).addClass( "ui-btn-" + location );
-			if ( text ) {
-				btn.text( text );
-			}
-		} else {
-			dst = this._inner.find( ":jqmData(role='header')" ).first();
-			btn = $( "<a></a>", {
-					"href": "#",
-					"class": "ui-btn ui-corner-all ui-icon-delete ui-btn-icon-notext ui-btn-" + location
-				})
-				.attr( "data-" + $.mobile.ns + "rel", "back" )
-				.text( text || this.options.closeBtnText || "" )
-				.prependTo( dst );
-		}
-
-		this._headerCloseButton = btn;
-	}
-});
-
-})( jQuery, this );
-
-(function( $, window, undefined ) {
-
-$.widget( "mobile.dialog", {
-	options: {
-
-		// Accepts left, right and none
-		closeBtn: "left",
-		closeBtnText: "Close",
-		overlayTheme: "a",
-		corners: true
-	},
-
-	// Override the theme set by the page plugin on pageshow
-	_handlePageBeforeShow: function() {
-		this._isCloseable = true;
-		if ( this.options.overlayTheme ) {
-			this.element
-				.page( "removeContainerBackground" )
-				.page( "setContainerBackground", this.options.overlayTheme );
-		}
-	},
-
-	_handlePageBeforeHide: function() {
-		this._isCloseable = false;
-	},
-
-	// click and submit events:
-	// - clicks and submits should use the closing transition that the dialog
-	//   opened with unless a data-transition is specified on the link/form
-	// - if the click was on the close button, or the link has a data-rel="back"
-	//   it'll go back in history naturally
-	_handleVClickSubmit: function( event ) {
-		var attrs,
-			$target = $( event.target ).closest( event.type === "vclick" ? "a" : "form" );
-
-		if ( $target.length && !$target.jqmData( "transition" ) ) {
-			attrs = {};
-			attrs[ "data-" + $.mobile.ns + "transition" ] =
-				( $.mobile.navigate.history.getActive() || {} )[ "transition" ] ||
-				$.mobile.defaultDialogTransition;
-			attrs[ "data-" + $.mobile.ns + "direction" ] = "reverse";
-			$target.attr( attrs );
-		}
-	},
-
-	_create: function() {
-		var elem = this.element,
-			opts = this.options;
-
-		// Class the markup for dialog styling and wrap interior
-		elem.addClass( "ui-dialog" )
-			.wrapInner( $( "<div/>", {
-
-				// ARIA role
-				"role" : "dialog",
-				"class" : "ui-dialog-contain ui-overlay-shadow" +
-					( !!opts.corners ? " ui-corner-all" : "" )
-			}));
-
-		$.extend( this, {
-			_isCloseable: false,
-			_inner: elem.children(),
-			_headerCloseButton: null
-		});
-
-		this._on( elem, {
-			vclick: "_handleVClickSubmit",
-			submit: "_handleVClickSubmit",
-			pagebeforeshow: "_handlePageBeforeShow",
-			pagebeforehide: "_handlePageBeforeHide"
-		});
-
-		this._setCloseBtn( opts.closeBtn );
-	},
-
-	_setOptions: function( options ) {
-		var closeButtonLocation, closeButtonText,
-			currentOpts = this.options;
-
-		if ( options.corners !== undefined ) {
-			this._inner.toggleClass( "ui-corner-all", !!options.corners );
-		}
-
-		if ( options.overlayTheme !== undefined ) {
-			if ( $.mobile.activePage[ 0 ] === this.element[ 0 ] ) {
-				currentOpts.overlayTheme = options.overlayTheme;
-				this._handlePageBeforeShow();
-			}
-		}
-
-		if ( options.closeBtnText !== undefined ) {
-			closeButtonLocation = currentOpts.closeBtn;
-			closeButtonText = options.closeBtnText;
-		}
-
-		if ( options.closeBtn !== undefined ) {
-			closeButtonLocation = options.closeBtn;
-		}
-
-		if ( closeButtonLocation ) {
-			this._setCloseBtn( closeButtonLocation, closeButtonText );
-		}
-
-		this._super( options );
-	},
-
-	_setCloseBtn: function( location, text ) {
-		var dst,
-			btn = this._headerCloseButton;
-
-		// Sanitize value
-		location = "left" === location ? "left" : "right" === location ? "right" : "none";
-
-		if ( "none" === location ) {
-			if ( btn ) {
-				btn.remove();
-				btn = null;
-			}
-		} else if ( btn ) {
-			btn.removeClass( "ui-btn-left ui-btn-right" ).addClass( "ui-btn-" + location );
-			if ( text ) {
-				btn.text( text );
-			}
-		} else {
-			dst = this._inner.find( ":jqmData(role='header')" ).first();
-			btn = $( "<a></a>", {
-					"role": "button",
-					"href": "#",
-					"class": "ui-btn ui-corner-all ui-icon-delete ui-btn-icon-notext ui-btn-" + location
-				})
-				.text( text || this.options.closeBtnText || "" )
-				.prependTo( dst );
-			this._on( btn, { click: "close" } );
-		}
-
-		this._headerCloseButton = btn;
-	},
-
-	// Close method goes back in history
-	close: function() {
-		var hist = $.mobile.navigate.history;
-
-		if ( this._isCloseable ) {
-			this._isCloseable = false;
-			// If the hash listening is enabled and there is at least one preceding history
-			// entry it's ok to go back. Initial pages with the dialog hash state are an example
-			// where the stack check is necessary
-			if ( $.mobile.hashListeningEnabled && hist.activeIndex > 0 ) {
-				$.mobile.back();
-			} else {
-				$.mobile.pageContainer.pagecontainer( "back" );
-			}
-		}
-	}
-});
-
-})( jQuery, this );
-
-(function( $, undefined ) {
-
-var rInitialLetter = /([A-Z])/g,
-
-	// Construct iconpos class from iconpos value
-	iconposClass = function( iconpos ) {
-		return ( "ui-btn-icon-" + ( iconpos === null ? "left" : iconpos ) );
-	};
-
-$.widget( "mobile.collapsible", {
-	options: {
-		enhanced: false,
-		expandCueText: null,
-		collapseCueText: null,
-		collapsed: true,
-		heading: "h1,h2,h3,h4,h5,h6,legend",
-		collapsedIcon: null,
-		expandedIcon: null,
-		iconpos: null,
-		theme: null,
-		contentTheme: null,
-		inset: null,
-		corners: null,
-		mini: null
-	},
-
-	_create: function() {
-		var elem = this.element,
-			ui = {
-				accordion: elem
-					.closest( ":jqmData(role='collapsible-set')," +
-						":jqmData(role='collapsibleset')" +
-						( $.mobile.collapsibleset ? ", :mobile-collapsibleset" :
-							"" ) )
-					.addClass( "ui-collapsible-set" )
-			};
-
-		this._ui = ui;
-		this._renderedOptions = this._getOptions( this.options );
-
-		if ( this.options.enhanced ) {
-			ui.heading = this.element.children( ".ui-collapsible-heading" );
-			ui.content = ui.heading.next();
-			ui.anchor = ui.heading.children();
-			ui.status = ui.anchor.children( ".ui-collapsible-heading-status" );
-		} else {
-			this._enhance( elem, ui );
-		}
-
-		this._on( ui.heading, {
-			"tap": function() {
-				ui.heading.find( "a" ).first().addClass( $.mobile.activeBtnClass );
-			},
-
-			"click": function( event ) {
-				this._handleExpandCollapse( !ui.heading.hasClass( "ui-collapsible-heading-collapsed" ) );
-				event.preventDefault();
-				event.stopPropagation();
-			}
-		});
-	},
-
-	// Adjust the keys inside options for inherited values
-	_getOptions: function( options ) {
-		var key,
-			accordion = this._ui.accordion,
-			accordionWidget = this._ui.accordionWidget;
-
-		// Copy options
-		options = $.extend( {}, options );
-
-		if ( accordion.length && !accordionWidget ) {
-			this._ui.accordionWidget =
-			accordionWidget = accordion.data( "mobile-collapsibleset" );
-		}
-
-		for ( key in options ) {
-
-			// Retrieve the option value first from the options object passed in and, if
-			// null, from the parent accordion or, if that's null too, or if there's no
-			// parent accordion, then from the defaults.
-			options[ key ] =
-				( options[ key ] != null ) ? options[ key ] :
-				( accordionWidget ) ? accordionWidget.options[ key ] :
-				accordion.length ? $.mobile.getAttribute( accordion[ 0 ],
-					key.replace( rInitialLetter, "-$1" ).toLowerCase() ):
-				null;
-
-			if ( null == options[ key ] ) {
-				options[ key ] = $.mobile.collapsible.defaults[ key ];
-			}
-		}
-
-		return options;
-	},
-
-	_themeClassFromOption: function( prefix, value ) {
-		return ( value ? ( value === "none" ? "" : prefix + value ) : "" );
-	},
-
-	_enhance: function( elem, ui ) {
-		var iconclass,
-			opts = this._renderedOptions,
-			contentThemeClass = this._themeClassFromOption( "ui-body-", opts.contentTheme );
-
-		elem.addClass( "ui-collapsible " +
-			( opts.inset ? "ui-collapsible-inset " : "" ) +
-			( opts.inset && opts.corners ? "ui-corner-all " : "" ) +
-			( contentThemeClass ? "ui-collapsible-themed-content " : "" ) );
-		ui.originalHeading = elem.children( this.options.heading ).first(),
-		ui.content = elem
-			.wrapInner( "<div " +
-				"class='ui-collapsible-content " +
-				contentThemeClass + "'></div>" )
-			.children( ".ui-collapsible-content" ),
-		ui.heading = ui.originalHeading;
-
-		// Replace collapsibleHeading if it's a legend
-		if ( ui.heading.is( "legend" ) ) {
-			ui.heading = $( "<div role='heading'>"+ ui.heading.html() +"</div>" );
-			ui.placeholder = $( "<div><!-- placeholder for legend --></div>" ).insertBefore( ui.originalHeading );
-			ui.originalHeading.remove();
-		}
-
-		iconclass = ( opts.collapsed ? ( opts.collapsedIcon ? "ui-icon-" + opts.collapsedIcon : "" ):
-			( opts.expandedIcon ? "ui-icon-" + opts.expandedIcon : "" ) );
-
-		ui.status = $( "<span class='ui-collapsible-heading-status'></span>" );
-		ui.anchor = ui.heading
-			.detach()
-			//modify markup & attributes
-			.addClass( "ui-collapsible-heading" )
-			.append( ui.status )
-			.wrapInner( "<a href='#' class='ui-collapsible-heading-toggle'></a>" )
-			.find( "a" )
-				.first()
-				.addClass( "ui-btn " +
-					( iconclass ? iconclass + " " : "" ) +
-					( iconclass ? iconposClass( opts.iconpos ) +
-						" " : "" ) +
-					this._themeClassFromOption( "ui-btn-", opts.theme ) + " " +
-					( opts.mini ? "ui-mini " : "" ) );
-
-		//drop heading in before content
-		ui.heading.insertBefore( ui.content );
-
-		this._handleExpandCollapse( this.options.collapsed );
-
-		return ui;
-	},
-
-	refresh: function() {
-		this._applyOptions( this.options );
-		this._renderedOptions = this._getOptions( this.options );
-	},
-
-	_applyOptions: function( options ) {
-		var isCollapsed, newTheme, oldTheme, hasCorners, hasIcon,
-			elem = this.element,
-			currentOpts = this._renderedOptions,
-			ui = this._ui,
-			anchor = ui.anchor,
-			status = ui.status,
-			opts = this._getOptions( options );
-
-		// First and foremost we need to make sure the collapsible is in the proper
-		// state, in case somebody decided to change the collapsed option at the
-		// same time as another option
-		if ( options.collapsed !== undefined ) {
-			this._handleExpandCollapse( options.collapsed );
-		}
-
-		isCollapsed = elem.hasClass( "ui-collapsible-collapsed" );
-
-		// We only need to apply the cue text for the current state right away.
-		// The cue text for the alternate state will be stored in the options
-		// and applied the next time the collapsible's state is toggled
-		if ( isCollapsed ) {
-			if ( opts.expandCueText !== undefined ) {
-				status.text( opts.expandCueText );
-			}
-		} else {
-			if ( opts.collapseCueText !== undefined ) {
-				status.text( opts.collapseCueText );
-			}
-		}
-
-		// Update icon
-
-		// Is it supposed to have an icon?
-		hasIcon =
-
-			// If the collapsedIcon is being set, consult that
-			( opts.collapsedIcon !== undefined ? opts.collapsedIcon !== false :
-
-				// Otherwise consult the existing option value
-				currentOpts.collapsedIcon !== false );
-
-
-		// If any icon-related options have changed, make sure the new icon
-		// state is reflected by first removing all icon-related classes
-		// reflecting the current state and then adding all icon-related
-		// classes for the new state
-		if ( !( opts.iconpos === undefined &&
-			opts.collapsedIcon === undefined &&
-			opts.expandedIcon === undefined ) ) {
-
-			// Remove all current icon-related classes
-			anchor.removeClass( [ iconposClass( currentOpts.iconpos ) ]
-				.concat( ( currentOpts.expandedIcon ?
-					[ "ui-icon-" + currentOpts.expandedIcon ] : [] ) )
-				.concat( ( currentOpts.collapsedIcon ?
-					[ "ui-icon-" + currentOpts.collapsedIcon ] : [] ) )
-				.join( " " ) );
-
-			// Add new classes if an icon is supposed to be present
-			if ( hasIcon ) {
-				anchor.addClass(
-					[ iconposClass( opts.iconpos !== undefined ?
-						opts.iconpos : currentOpts.iconpos ) ]
-						.concat( isCollapsed ?
-							[ "ui-icon-" + ( opts.collapsedIcon !== undefined ?
-								opts.collapsedIcon :
-								currentOpts.collapsedIcon ) ] :
-							[ "ui-icon-" + ( opts.expandedIcon !== undefined ?
-								opts.expandedIcon :
-								currentOpts.expandedIcon ) ] )
-						.join( " " ) );
-			}
-		}
-
-		if ( opts.theme !== undefined ) {
-			oldTheme = this._themeClassFromOption( "ui-btn-", currentOpts.theme );
-			newTheme = this._themeClassFromOption( "ui-btn-", opts.theme );
-			anchor.removeClass( oldTheme ).addClass( newTheme );
-		}
-
-		if ( opts.contentTheme !== undefined ) {
-			oldTheme = this._themeClassFromOption( "ui-body-",
-				currentOpts.contentTheme );
-			newTheme = this._themeClassFromOption( "ui-body-",
-				opts.contentTheme );
-			ui.content.removeClass( oldTheme ).addClass( newTheme );
-		}
-
-		if ( opts.inset !== undefined ) {
-			elem.toggleClass( "ui-collapsible-inset", opts.inset );
-			hasCorners = !!( opts.inset && ( opts.corners || currentOpts.corners ) );
-		}
-
-		if ( opts.corners !== undefined ) {
-			hasCorners = !!( opts.corners && ( opts.inset || currentOpts.inset ) );
-		}
-
-		if ( hasCorners !== undefined ) {
-			elem.toggleClass( "ui-corner-all", hasCorners );
-		}
-
-		if ( opts.mini !== undefined ) {
-			anchor.toggleClass( "ui-mini", opts.mini );
-		}
-	},
-
-	_setOptions: function( options ) {
-		this._applyOptions( options );
-		this._super( options );
-		this._renderedOptions = this._getOptions( this.options );
-	},
-
-	_handleExpandCollapse: function( isCollapse ) {
-		var opts = this._renderedOptions,
-			ui = this._ui;
-
-		ui.status.text( isCollapse ? opts.expandCueText : opts.collapseCueText );
-		ui.heading
-			.toggleClass( "ui-collapsible-heading-collapsed", isCollapse )
-			.find( "a" ).first()
-			.toggleClass( "ui-icon-" + opts.expandedIcon, !isCollapse )
-
-			// logic or cause same icon for expanded/collapsed state would remove the ui-icon-class
-			.toggleClass( "ui-icon-" + opts.collapsedIcon, ( isCollapse || opts.expandedIcon === opts.collapsedIcon ) )
-			.removeClass( $.mobile.activeBtnClass );
-
-		this.element.toggleClass( "ui-collapsible-collapsed", isCollapse );
-		ui.content
-			.toggleClass( "ui-collapsible-content-collapsed", isCollapse )
-			.attr( "aria-hidden", isCollapse )
-			.trigger( "updatelayout" );
-		this.options.collapsed = isCollapse;
-		this._trigger( isCollapse ? "collapse" : "expand" );
-	},
-
-	expand: function() {
-		this._handleExpandCollapse( false );
-	},
-
-	collapse: function() {
-		this._handleExpandCollapse( true );
-	},
-
-	_destroy: function() {
-		var ui = this._ui,
-			opts = this.options;
-
-		if ( opts.enhanced ) {
-			return;
-		}
-
-		if ( ui.placeholder ) {
-			ui.originalHeading.insertBefore( ui.placeholder );
-			ui.placeholder.remove();
-			ui.heading.remove();
-		} else {
-			ui.status.remove();
-			ui.heading
-				.removeClass( "ui-collapsible-heading ui-collapsible-heading-collapsed" )
-				.children()
-					.contents()
-						.unwrap();
-		}
-
-		ui.anchor.contents().unwrap();
-		ui.content.contents().unwrap();
-		this.element
-			.removeClass( "ui-collapsible ui-collapsible-collapsed " +
-				"ui-collapsible-themed-content ui-collapsible-inset ui-corner-all" );
-	}
-});
-
-// Defaults to be used by all instances of collapsible if per-instance values
-// are unset or if nothing is specified by way of inheritance from an accordion.
-// Note that this hash does not contain options "collapsed" or "heading",
-// because those are not inheritable.
-$.mobile.collapsible.defaults = {
-	expandCueText: " click to expand contents",
-	collapseCueText: " click to collapse contents",
-	collapsedIcon: "plus",
-	contentTheme: "inherit",
-	expandedIcon: "minus",
-	iconpos: "left",
-	inset: true,
-	corners: true,
-	theme: "inherit",
-	mini: false
-};
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-var uiScreenHiddenRegex = /\bui-screen-hidden\b/;
-function noHiddenClass( elements ) {
-	var index,
-		length = elements.length,
-		result = [];
-
-	for ( index = 0; index < length; index++ ) {
-		if ( !elements[ index ].className.match( uiScreenHiddenRegex ) ) {
-			result.push( elements[ index ] );
-		}
-	}
-
-	return $( result );
-}
-
-$.mobile.behaviors.addFirstLastClasses = {
-	_getVisibles: function( $els, create ) {
-		var visibles;
-
-		if ( create ) {
-			visibles = noHiddenClass( $els );
-		} else {
-			visibles = $els.filter( ":visible" );
-			if ( visibles.length === 0 ) {
-				visibles = noHiddenClass( $els );
-			}
-		}
-
-		return visibles;
-	},
-
-	_addFirstLastClasses: function( $els, $visibles, create ) {
-		$els.removeClass( "ui-first-child ui-last-child" );
-		$visibles.eq( 0 ).addClass( "ui-first-child" ).end().last().addClass( "ui-last-child" );
-		if ( !create ) {
-			this.element.trigger( "updatelayout" );
-		}
-	},
-
-	_removeFirstLastClasses: function( $els ) {
-		$els.removeClass( "ui-first-child ui-last-child" );
-	}
-};
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-var childCollapsiblesSelector = ":mobile-collapsible, " + $.mobile.collapsible.initSelector;
-
-$.widget( "mobile.collapsibleset", $.extend( {
-
-	// The initSelector is deprecated as of 1.4.0. In 1.5.0 we will use
-	// :jqmData(role='collapsibleset') which will allow us to get rid of the line
-	// below altogether, because the autoinit will generate such an initSelector
-	initSelector: ":jqmData(role='collapsible-set'),:jqmData(role='collapsibleset')",
-
-	options: $.extend( {
-		enhanced: false
-	}, $.mobile.collapsible.defaults ),
-
-	_handleCollapsibleExpand: function( event ) {
-		var closestCollapsible = $( event.target ).closest( ".ui-collapsible" );
-
-		if ( closestCollapsible.parent().is( ":mobile-collapsibleset, :jqmData(role='collapsible-set')" ) ) {
-			closestCollapsible
-				.siblings( ".ui-collapsible:not(.ui-collapsible-collapsed)" )
-				.collapsible( "collapse" );
-		}
-	},
-
-	_create: function() {
-		var elem = this.element,
-			opts = this.options;
-
-		$.extend( this, {
-			_classes: ""
-		});
-
-		if ( !opts.enhanced ) {
-			elem.addClass( "ui-collapsible-set " +
-				this._themeClassFromOption( "ui-group-theme-", opts.theme ) + " " +
-				( opts.corners && opts.inset ? "ui-corner-all " : "" ) );
-			this.element.find( $.mobile.collapsible.initSelector ).collapsible();
-		}
-
-		this._on( elem, { collapsibleexpand: "_handleCollapsibleExpand" } );
-	},
-
-	_themeClassFromOption: function( prefix, value ) {
-		return ( value ? ( value === "none" ? "" : prefix + value ) : "" );
-	},
-
-	_init: function() {
-		this._refresh( true );
-
-		// Because the corners are handled by the collapsible itself and the default state is collapsed
-		// That was causing https://github.com/jquery/jquery-mobile/issues/4116
-		this.element
-			.children( childCollapsiblesSelector )
-			.filter( ":jqmData(collapsed='false')" )
-			.collapsible( "expand" );
-	},
-
-	_setOptions: function( options ) {
-		var ret, hasCorners,
-			elem = this.element,
-			themeClass = this._themeClassFromOption( "ui-group-theme-", options.theme );
-
-		if ( themeClass ) {
-			elem
-				.removeClass( this._themeClassFromOption( "ui-group-theme-", this.options.theme ) )
-				.addClass( themeClass );
-		}
-
-		if ( options.inset !== undefined ) {
-			hasCorners = !!( options.inset && ( options.corners || this.options.corners ) );
-		}
-
-		if ( options.corners !== undefined ) {
-			hasCorners = !!( options.corners && ( options.inset || this.options.inset ) );
-		}
-
-		if ( hasCorners !== undefined ) {
-			elem.toggleClass( "ui-corner-all", hasCorners );
-		}
-
-		ret = this._super( options );
-		this.element.children( ":mobile-collapsible" ).collapsible( "refresh" );
-		return ret;
-	},
-
-	_destroy: function() {
-		var el = this.element;
-
-		this._removeFirstLastClasses( el.children( childCollapsiblesSelector ) );
-		el
-			.removeClass( "ui-collapsible-set ui-corner-all " +
-				this._themeClassFromOption( "ui-group-theme-", this.options.theme ) )
-			.children( ":mobile-collapsible" )
-			.collapsible( "destroy" );
-	},
-
-	_refresh: function( create ) {
-		var collapsiblesInSet = this.element.children( childCollapsiblesSelector );
-
-		this.element.find( $.mobile.collapsible.initSelector ).not( ".ui-collapsible" ).collapsible();
-
-		this._addFirstLastClasses( collapsiblesInSet, this._getVisibles( collapsiblesInSet, create ), create );
-	},
-
-	refresh: function() {
-		this._refresh( false );
-	}
-}, $.mobile.behaviors.addFirstLastClasses ) );
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-// Deprecated in 1.4
-$.fn.fieldcontain = function(/* options */) {
-	return this.addClass( "ui-field-contain" );
-};
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-$.fn.grid = function( options ) {
-	return this.each(function() {
-
-		var $this = $( this ),
-			o = $.extend({
-				grid: null
-			}, options ),
-			$kids = $this.children(),
-			gridCols = { solo:1, a:2, b:3, c:4, d:5 },
-			grid = o.grid,
-			iterator,
-			letter;
-
-			if ( !grid ) {
-				if ( $kids.length <= 5 ) {
-					for ( letter in gridCols ) {
-						if ( gridCols[ letter ] === $kids.length ) {
-							grid = letter;
-						}
-					}
-				} else {
-					grid = "a";
-					$this.addClass( "ui-grid-duo" );
-				}
-			}
-			iterator = gridCols[grid];
-
-		$this.addClass( "ui-grid-" + grid );
-
-		$kids.filter( ":nth-child(" + iterator + "n+1)" ).addClass( "ui-block-a" );
-
-		if ( iterator > 1 ) {
-			$kids.filter( ":nth-child(" + iterator + "n+2)" ).addClass( "ui-block-b" );
-		}
-		if ( iterator > 2 ) {
-			$kids.filter( ":nth-child(" + iterator + "n+3)" ).addClass( "ui-block-c" );
-		}
-		if ( iterator > 3 ) {
-			$kids.filter( ":nth-child(" + iterator + "n+4)" ).addClass( "ui-block-d" );
-		}
-		if ( iterator > 4 ) {
-			$kids.filter( ":nth-child(" + iterator + "n+5)" ).addClass( "ui-block-e" );
-		}
-	});
-};
-})( jQuery );
-
-(function( $, undefined ) {
-
-$.widget( "mobile.navbar", {
-	options: {
-		iconpos: "top",
-		grid: null
-	},
-
-	_create: function() {
-
-		var $navbar = this.element,
-			$navbtns = $navbar.find( "a, button" ),
-			iconpos = $navbtns.filter( ":jqmData(icon)" ).length ? this.options.iconpos : undefined;
-
-		$navbar.addClass( "ui-navbar" )
-			.attr( "role", "navigation" )
-			.find( "ul" )
-			.jqmEnhanceable()
-			.grid({ grid: this.options.grid });
-
-		$navbtns
-			.each( function() {
-				var icon = $.mobile.getAttribute( this, "icon" ),
-					theme = $.mobile.getAttribute( this, "theme" ),
-					classes = "ui-btn";
-
-				if ( theme ) {
-					classes += " ui-btn-" + theme;
-				}
-				if ( icon ) {
-					classes += " ui-icon-" + icon + " ui-btn-icon-" + iconpos;
-				}
-				$( this ).addClass( classes );
-			});
-
-		$navbar.delegate( "a", "vclick", function( /* event */ ) {
-			var activeBtn = $( this );
-
-			if ( !( activeBtn.hasClass( "ui-state-disabled" ) ||
-
-				// DEPRECATED as of 1.4.0 - remove after 1.4.0 release
-				// only ui-state-disabled should be present thereafter
-				activeBtn.hasClass( "ui-disabled" ) ||
-				activeBtn.hasClass( $.mobile.activeBtnClass ) ) ) {
-
-				$navbtns.removeClass( $.mobile.activeBtnClass );
-				activeBtn.addClass( $.mobile.activeBtnClass );
-
-				// The code below is a workaround to fix #1181
-				$( document ).one( "pagehide", function() {
-					activeBtn.removeClass( $.mobile.activeBtnClass );
-				});
-			}
-		});
-
-		// Buttons in the navbar with ui-state-persist class should regain their active state before page show
-		$navbar.closest( ".ui-page" ).bind( "pagebeforeshow", function() {
-			$navbtns.filter( ".ui-state-persist" ).addClass( $.mobile.activeBtnClass );
-		});
-	}
-});
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-var getAttr = $.mobile.getAttribute;
-
-$.widget( "mobile.listview", $.extend( {
-
-	options: {
-		theme: null,
-		countTheme: null, /* Deprecated in 1.4 */
-		dividerTheme: null,
-		icon: "carat-r",
-		splitIcon: "carat-r",
-		splitTheme: null,
-		corners: true,
-		shadow: true,
-		inset: false
-	},
-
-	_create: function() {
-		var t = this,
-			listviewClasses = "";
-
-		listviewClasses += t.options.inset ? " ui-listview-inset" : "";
-
-		if ( !!t.options.inset ) {
-			listviewClasses += t.options.corners ? " ui-corner-all" : "";
-			listviewClasses += t.options.shadow ? " ui-shadow" : "";
-		}
-
-		// create listview markup
-		t.element.addClass( " ui-listview" + listviewClasses );
-
-		t.refresh( true );
-	},
-
-	// TODO: Remove in 1.5
-	_findFirstElementByTagName: function( ele, nextProp, lcName, ucName ) {
-		var dict = {};
-		dict[ lcName ] = dict[ ucName ] = true;
-		while ( ele ) {
-			if ( dict[ ele.nodeName ] ) {
-				return ele;
-			}
-			ele = ele[ nextProp ];
-		}
-		return null;
-	},
-	// TODO: Remove in 1.5
-	_addThumbClasses: function( containers ) {
-		var i, img, len = containers.length;
-		for ( i = 0; i < len; i++ ) {
-			img = $( this._findFirstElementByTagName( containers[ i ].firstChild, "nextSibling", "img", "IMG" ) );
-			if ( img.length ) {
-				$( this._findFirstElementByTagName( img[ 0 ].parentNode, "parentNode", "li", "LI" ) ).addClass( img.hasClass( "ui-li-icon" ) ? "ui-li-has-icon" : "ui-li-has-thumb" );
-			}
-		}
-	},
-
-	_getChildrenByTagName: function( ele, lcName, ucName ) {
-		var results = [],
-			dict = {};
-		dict[ lcName ] = dict[ ucName ] = true;
-		ele = ele.firstChild;
-		while ( ele ) {
-			if ( dict[ ele.nodeName ] ) {
-				results.push( ele );
-			}
-			ele = ele.nextSibling;
-		}
-		return $( results );
-	},
-
-	_beforeListviewRefresh: $.noop,
-	_afterListviewRefresh: $.noop,
-
-	refresh: function( create ) {
-		var buttonClass, pos, numli, item, itemClass, itemTheme, itemIcon, icon, a,
-			isDivider, startCount, newStartCount, value, last, splittheme, splitThemeClass, spliticon,
-			altButtonClass, dividerTheme, li,
-			o = this.options,
-			$list = this.element,
-			ol = !!$.nodeName( $list[ 0 ], "ol" ),
-			start = $list.attr( "start" ),
-			itemClassDict = {},
-			countBubbles = $list.find( ".ui-li-count" ),
-			countTheme = getAttr( $list[ 0 ], "counttheme" ) || this.options.countTheme,
-			countThemeClass = countTheme ? "ui-body-" + countTheme : "ui-body-inherit";
-
-		if ( o.theme ) {
-			$list.addClass( "ui-group-theme-" + o.theme );
-		}
-
-		// Check if a start attribute has been set while taking a value of 0 into account
-		if ( ol && ( start || start === 0 ) ) {
-			startCount = parseInt( start, 10 ) - 1;
-			$list.css( "counter-reset", "listnumbering " + startCount );
-		}
-
-		this._beforeListviewRefresh();
-
-		li = this._getChildrenByTagName( $list[ 0 ], "li", "LI" );
-
-		for ( pos = 0, numli = li.length; pos < numli; pos++ ) {
-			item = li.eq( pos );
-			itemClass = "";
-
-			if ( create || item[ 0 ].className.search( /\bui-li-static\b|\bui-li-divider\b/ ) < 0 ) {
-				a = this._getChildrenByTagName( item[ 0 ], "a", "A" );
-				isDivider = ( getAttr( item[ 0 ], "role" ) === "list-divider" );
-				value = item.attr( "value" );
-				itemTheme = getAttr( item[ 0 ], "theme" );
-
-				if ( a.length && a[ 0 ].className.search( /\bui-btn\b/ ) < 0 && !isDivider ) {
-					itemIcon = getAttr( item[ 0 ], "icon" );
-					icon = ( itemIcon === false ) ? false : ( itemIcon || o.icon );
-
-					// TODO: Remove in 1.5 together with links.js (links.js / .ui-link deprecated in 1.4)
-					a.removeClass( "ui-link" );
-
-					buttonClass = "ui-btn";
-
-					if ( itemTheme ) {
-						buttonClass += " ui-btn-" + itemTheme;
-					}
-
-					if ( a.length > 1 ) {
-						itemClass = "ui-li-has-alt";
-
-						last = a.last();
-						splittheme = getAttr( last[ 0 ], "theme" ) || o.splitTheme || getAttr( item[ 0 ], "theme", true );
-						splitThemeClass = splittheme ? " ui-btn-" + splittheme : "";
-						spliticon = getAttr( last[ 0 ], "icon" ) || getAttr( item[ 0 ], "icon" ) || o.splitIcon;
-						altButtonClass = "ui-btn ui-btn-icon-notext ui-icon-" + spliticon + splitThemeClass;
-
-						last
-							.attr( "title", $.trim( last.getEncodedText() ) )
-							.addClass( altButtonClass )
-							.empty();
-
-						// Reduce to the first anchor, because only the first gets the buttonClass
-						a = a.first();
-					} else if ( icon ) {
-						buttonClass += " ui-btn-icon-right ui-icon-" + icon;
-					}
-
-					// Apply buttonClass to the (first) anchor
-					a.addClass( buttonClass );
-				} else if ( isDivider ) {
-					dividerTheme = ( getAttr( item[ 0 ], "theme" ) || o.dividerTheme || o.theme );
-
-					itemClass = "ui-li-divider ui-bar-" + ( dividerTheme ? dividerTheme : "inherit" );
-
-					item.attr( "role", "heading" );
-				} else if ( a.length <= 0 ) {
-					itemClass = "ui-li-static ui-body-" + ( itemTheme ? itemTheme : "inherit" );
-				}
-				if ( ol && value ) {
-					newStartCount = parseInt( value , 10 ) - 1;
-
-					item.css( "counter-reset", "listnumbering " + newStartCount );
-				}
-			}
-
-			// Instead of setting item class directly on the list item
-			// at this point in time, push the item into a dictionary
-			// that tells us what class to set on it so we can do this after this
-			// processing loop is finished.
-
-			if ( !itemClassDict[ itemClass ] ) {
-				itemClassDict[ itemClass ] = [];
-			}
-
-			itemClassDict[ itemClass ].push( item[ 0 ] );
-		}
-
-		// Set the appropriate listview item classes on each list item.
-		// The main reason we didn't do this
-		// in the for-loop above is because we can eliminate per-item function overhead
-		// by calling addClass() and children() once or twice afterwards. This
-		// can give us a significant boost on platforms like WP7.5.
-
-		for ( itemClass in itemClassDict ) {
-			$( itemClassDict[ itemClass ] ).addClass( itemClass );
-		}
-
-		countBubbles.each( function() {
-			$( this ).closest( "li" ).addClass( "ui-li-has-count" );
-		});
-		if ( countThemeClass ) {
-			countBubbles.not( "[class*='ui-body-']" ).addClass( countThemeClass );
-		}
-
-		// Deprecated in 1.4. From 1.5 you have to add class ui-li-has-thumb or ui-li-has-icon to the LI.
-		this._addThumbClasses( li );
-		this._addThumbClasses( li.find( ".ui-btn" ) );
-
-		this._afterListviewRefresh();
-
-		this._addFirstLastClasses( li, this._getVisibles( li, create ), create );
-	}
-}, $.mobile.behaviors.addFirstLastClasses ) );
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-function defaultAutodividersSelector( elt ) {
-	// look for the text in the given element
-	var text = $.trim( elt.text() ) || null;
-
-	if ( !text ) {
-		return null;
-	}
-
-	// create the text for the divider (first uppercased letter)
-	text = text.slice( 0, 1 ).toUpperCase();
-
-	return text;
-}
-
-$.widget( "mobile.listview", $.mobile.listview, {
-	options: {
-		autodividers: false,
-		autodividersSelector: defaultAutodividersSelector
-	},
-
-	_beforeListviewRefresh: function() {
-		if ( this.options.autodividers ) {
-			this._replaceDividers();
-			this._superApply( arguments );
-		}
-	},
-
-	_replaceDividers: function() {
-		var i, lis, li, dividerText,
-			lastDividerText = null,
-			list = this.element,
-			divider;
-
-		list.children( "li:jqmData(role='list-divider')" ).remove();
-
-		lis = list.children( "li" );
-
-		for ( i = 0; i < lis.length ; i++ ) {
-			li = lis[ i ];
-			dividerText = this.options.autodividersSelector( $( li ) );
-
-			if ( dividerText && lastDividerText !== dividerText ) {
-				divider = document.createElement( "li" );
-				divider.appendChild( document.createTextNode( dividerText ) );
-				divider.setAttribute( "data-" + $.mobile.ns + "role", "list-divider" );
-				li.parentNode.insertBefore( divider, li );
-			}
-
-			lastDividerText = dividerText;
-		}
-	}
-});
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-var rdivider = /(^|\s)ui-li-divider($|\s)/,
-	rhidden = /(^|\s)ui-screen-hidden($|\s)/;
-
-$.widget( "mobile.listview", $.mobile.listview, {
-	options: {
-		hideDividers: false
-	},
-
-	_afterListviewRefresh: function() {
-		var items, idx, item, hideDivider = true;
-
-		this._superApply( arguments );
-
-		if ( this.options.hideDividers ) {
-			items = this._getChildrenByTagName( this.element[ 0 ], "li", "LI" );
-			for ( idx = items.length - 1 ; idx > -1 ; idx-- ) {
-				item = items[ idx ];
-				if ( item.className.match( rdivider ) ) {
-					if ( hideDivider ) {
-						item.className = item.className + " ui-screen-hidden";
-					}
-					hideDivider = true;
-				} else {
-					if ( !item.className.match( rhidden ) ) {
-						hideDivider = false;
-					}
-				}
-			}
-		}
-	}
-});
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-$.mobile.nojs = function( target ) {
-	$( ":jqmData(role='nojs')", target ).addClass( "ui-nojs" );
-};
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-$.mobile.behaviors.formReset = {
-	_handleFormReset: function() {
-		this._on( this.element.closest( "form" ), {
-			reset: function() {
-				this._delay( "_reset" );
-			}
-		});
-	}
-};
-
-})( jQuery );
-
-/*
-* "checkboxradio" plugin
-*/
-
-(function( $, undefined ) {
-
-var escapeId = $.mobile.path.hashToSelector;
-
-$.widget( "mobile.checkboxradio", $.extend( {
-
-	initSelector: "input:not( :jqmData(role='flipswitch' ) )[type='checkbox'],input[type='radio']:not( :jqmData(role='flipswitch' ))",
-
-	options: {
-		theme: "inherit",
-
-		// Deprecated as of 1.5.0
-		mini: false,
-		wrapperClass: null,
-		enhanced: false,
-		iconpos: "left"
-
-	},
-	_create: function() {
-		var input = this.element,
-			o = this.options,
-			inheritAttr = function( input, dataAttr ) {
-				return input.jqmData( dataAttr ) ||
-					input.closest( "form, fieldset" ).jqmData( dataAttr );
-			},
-			label = this.options.enhanced ?
-				{
-					element: this.element.siblings( "label" ),
-					isParent: false
-				} :
-				this._findLabel(),
-			inputtype = input[0].type,
-			checkedClass = "ui-" + inputtype + "-on",
-			uncheckedClass = "ui-" + inputtype + "-off";
-
-		if ( inputtype !== "checkbox" && inputtype !== "radio" ) {
-			return;
-		}
-
-		if ( this.element[0].disabled ) {
-			this.options.disabled = true;
-		}
-
-		o.iconpos = inheritAttr( input, "iconpos" ) ||
-			label.element.attr( "data-" + $.mobile.ns + "iconpos" ) || o.iconpos,
-
-		// Deprecated as of 1.5.0
-		// Establish options
-		o.mini = inheritAttr( input, "mini" ) || o.mini;
-
-		// Expose for other methods
-		$.extend( this, {
-			input: input,
-			label: label.element,
-			labelIsParent: label.isParent,
-			inputtype: inputtype,
-			checkedClass: checkedClass,
-			uncheckedClass: uncheckedClass
-		});
-
-		if ( !this.options.enhanced ) {
-			this._enhance();
-		}
-
-		this._on( label.element, {
-			vmouseover: "_handleLabelVMouseOver",
-			vclick: "_handleLabelVClick"
-		});
-
-		this._on( input, {
-			vmousedown: "_cacheVals",
-			vclick: "_handleInputVClick",
-			focus: "_handleInputFocus",
-			blur: "_handleInputBlur"
-		});
-
-		this._handleFormReset();
-		this.refresh();
-	},
-
-	_findLabel: function() {
-		var parentLabel, label, isParent,
-			input = this.element,
-			labelsList = input[ 0 ].labels;
-
-		if( labelsList && labelsList.length > 0 ) {
-			label = $( labelsList[ 0 ] );
-			isParent = $.contains( label[ 0 ], input[ 0 ] );
-		} else {
-			parentLabel = input.closest( "label" );
-			isParent = ( parentLabel.length > 0 );
-
-			// NOTE: Windows Phone could not find the label through a selector
-			// filter works though.
-			label = isParent ? parentLabel :
-				$( this.document[ 0 ].getElementsByTagName( "label" ) )
-					.filter( "[for='" + escapeId( input[ 0 ].id ) + "']" )
-					.first();
-		}
-
-		return {
-			element: label,
-			isParent: isParent
-		};
-	},
-
-	_enhance: function() {
-		this.label.addClass( "ui-btn ui-corner-all");
-
-		if ( this.labelIsParent ) {
-			this.input.add( this.label ).wrapAll( this._wrapper() );
-		} else {
-			//this.element.replaceWith( this.input.add( this.label ).wrapAll( this._wrapper() ) );
-			this.element.wrap( this._wrapper() );
-			this.element.parent().prepend( this.label );
-		}
-
-		// Wrap the input + label in a div
-
-		this._setOptions({
-			"theme": this.options.theme,
-			"iconpos": this.options.iconpos,
-			"wrapperClass": this.options.wrapperClass,
-
-			// Deprecated as of 1.5.0
-			"mini": this.options.mini
-		});
-
-	},
-
-	_wrapper: function() {
-		return $( "<div class='ui-" + this.inputtype +
-			( this.options.disabled ? " ui-state-disabled" : "" ) + "' ></div>" );
-	},
-
-	_handleInputFocus: function() {
-		this.label.addClass( $.mobile.focusClass );
-	},
-
-	_handleInputBlur: function() {
-		this.label.removeClass( $.mobile.focusClass );
-	},
-
-	_handleInputVClick: function() {
-		// Adds checked attribute to checked input when keyboard is used
-		this.element.prop( "checked", this.element.is( ":checked" ) );
-		this._getInputSet().not( this.element ).prop( "checked", false );
-		this._updateAll( true );
-	},
-
-	_handleLabelVMouseOver: function( event ) {
-		if ( this.label.parent().hasClass( "ui-state-disabled" ) ) {
-			event.stopPropagation();
-		}
-	},
-
-	_handleLabelVClick: function( event ) {
-		var input = this.element;
-
-		if ( input.is( ":disabled" ) ) {
-			event.preventDefault();
-			return;
-		}
-
-		this._cacheVals();
-
-		input.prop( "checked", this.inputtype === "radio" && true || !input.prop( "checked" ) );
-
-		// trigger click handler's bound directly to the input as a substitute for
-		// how label clicks behave normally in the browsers
-		// TODO: it would be nice to let the browser's handle the clicks and pass them
-		//       through to the associate input. we can swallow that click at the parent
-		//       wrapper element level
-		input.triggerHandler( "click" );
-
-		// Input set for common radio buttons will contain all the radio
-		// buttons, but will not for checkboxes. clearing the checked status
-		// of other radios ensures the active button state is applied properly
-		this._getInputSet().not( input ).prop( "checked", false );
-
-		this._updateAll();
-		return false;
-	},
-
-	_cacheVals: function() {
-		this._getInputSet().each( function() {
-			$( this ).attr("data-" + $.mobile.ns + "cacheVal", this.checked );
-		});
-	},
-
-	// Returns those radio buttons that are supposed to be in the same group as
-	// this radio button. In the case of a checkbox or a radio lacking a name
-	// attribute, it returns this.element.
-	_getInputSet: function() {
-		var selector, formId,
-			radio = this.element[ 0 ],
-			name = radio.name,
-			form = radio.form,
-			doc = this.element.parents().last().get( 0 ),
-
-			// A radio is always a member of its own group
-			radios = this.element;
-
-		// Only start running selectors if this is an attached radio button with a name
-		if ( name && this.inputtype === "radio" && doc ) {
-			selector = "input[type='radio'][name='" + escapeId( name ) + "']";
-
-			// If we're inside a form
-			if ( form ) {
-				formId = form.getAttribute( "id" );
-
-				// If the form has an ID, collect radios scattered throught the document which
-				// nevertheless are part of the form by way of the value of their form attribute
-				if ( formId ) {
-					radios = $( selector + "[form='" + escapeId( formId ) + "']", doc );
-				}
-
-				// Also add to those the radios in the form itself
-				radios = $( form ).find( selector ).filter( function() {
-
-					// Some radios inside the form may belong to some other form by virtue of
-					// having a form attribute defined on them, so we must filter them out here
-					return ( this.form === form );
-				}).add( radios );
-
-			// If we're outside a form
-			} else {
-
-				// Collect all those radios which are also outside of a form and match our name
-				radios = $( selector, doc ).filter( function() {
-					return !this.form;
-				});
-			}
-		}
-		return radios;
-	},
-
-	_updateAll: function( changeTriggered ) {
-		var self = this;
-
-		this._getInputSet().each( function() {
-			var $this = $( this );
-
-			if ( ( this.checked || self.inputtype === "checkbox" ) && !changeTriggered ) {
-				$this.trigger( "change" );
-			}
-		})
-		.checkboxradio( "refresh" );
-	},
-
-	_reset: function() {
-		this.refresh();
-	},
-
-	// Is the widget supposed to display an icon?
-	_hasIcon: function() {
-		var controlgroup, controlgroupWidget,
-			controlgroupConstructor = $.mobile.controlgroup;
-
-		// If the controlgroup widget is defined ...
-		if ( controlgroupConstructor ) {
-			controlgroup = this.element.closest(
-				":mobile-controlgroup," +
-				controlgroupConstructor.prototype.initSelector );
-
-			// ... and the checkbox is in a controlgroup ...
-			if ( controlgroup.length > 0 ) {
-
-				// ... look for a controlgroup widget instance, and ...
-				controlgroupWidget = $.data( controlgroup[ 0 ], "mobile-controlgroup" );
-
-				// ... if found, decide based on the option value, ...
-				return ( ( controlgroupWidget ? controlgroupWidget.options.type :
-
-					// ... otherwise decide based on the "type" data attribute.
-					controlgroup.attr( "data-" + $.mobile.ns + "type" ) ) !== "horizontal" );
-			}
-		}
-
-		// Normally, the widget displays an icon.
-		return true;
-	},
-
-	refresh: function() {
-		var isChecked = this.element[ 0 ].checked,
-			active = $.mobile.activeBtnClass,
-			iconposClass = "ui-btn-icon-" + this.options.iconpos,
-			addClasses = [],
-			removeClasses = [];
-
-		if ( this._hasIcon() ) {
-			removeClasses.push( active );
-			addClasses.push( iconposClass );
-		} else {
-			removeClasses.push( iconposClass );
-			( isChecked ? addClasses : removeClasses ).push( active );
-		}
-
-		if ( isChecked ) {
-			addClasses.push( this.checkedClass );
-			removeClasses.push( this.uncheckedClass );
-		} else {
-			addClasses.push( this.uncheckedClass );
-			removeClasses.push( this.checkedClass );
-		}
-
-		this.widget().toggleClass( "ui-state-disabled", this.element.prop( "disabled" ) );
-
-		this.label
-			.addClass( addClasses.join( " " ) )
-			.removeClass( removeClasses.join( " " ) );
-	},
-
-	widget: function() {
-		return this.label.parent();
-	},
-
-	_setOptions: function( options ) {
-		var label = this.label,
-			currentOptions = this.options,
-			outer = this.widget(),
-			hasIcon = this._hasIcon();
-
-		if ( options.disabled !== undefined ) {
-			this.input.prop( "disabled", !!options.disabled );
-			outer.toggleClass( "ui-state-disabled", !!options.disabled );
-		}
-
-		// Deprecated as of 1.5.0
-		if ( options.mini !== undefined ) {
-			outer.toggleClass( "ui-mini", !!options.mini );
-		}
-		if ( options.theme !== undefined ) {
-			label
-				.removeClass( "ui-btn-" + currentOptions.theme )
-				.addClass( "ui-btn-" + options.theme );
-		}
-		if ( options.wrapperClass !== undefined ) {
-			outer
-				.removeClass( currentOptions.wrapperClass )
-				.addClass( options.wrapperClass );
-		}
-		if ( options.iconpos !== undefined && hasIcon ) {
-			label.removeClass( "ui-btn-icon-" + currentOptions.iconpos ).addClass( "ui-btn-icon-" + options.iconpos );
-		} else if ( !hasIcon ) {
-			label.removeClass( "ui-btn-icon-" + currentOptions.iconpos );
-		}
-		this._super( options );
-	}
-
-}, $.mobile.behaviors.formReset ) );
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-$.widget( "mobile.button", {
-
-	initSelector: "input[type='button'], input[type='submit'], input[type='reset']",
-
-	options: {
-		theme: null,
-		icon: null,
-		iconpos: "left",
-		iconshadow: false, /* TODO: Deprecated in 1.4, remove in 1.5. */
-		corners: true,
-		shadow: true,
-		inline: null,
-		mini: null,
-		wrapperClass: null,
-		enhanced: false
-	},
-
-	_create: function() {
-
-		if ( this.element.is( ":disabled" ) ) {
-			this.options.disabled = true;
-		}
-
-		if ( !this.options.enhanced ) {
-			this._enhance();
-		}
-
-		$.extend( this, {
-			wrapper: this.element.parent()
-		});
-
-		this._on( {
-			focus: function() {
-				this.widget().addClass( $.mobile.focusClass );
-			},
-
-			blur: function() {
-				this.widget().removeClass( $.mobile.focusClass );
-			}
-		});
-
-		this.refresh( true );
-	},
-
-	_enhance: function() {
-		this.element.wrap( this._button() );
-	},
-
-	_button: function() {
-		var options = this.options,
-			iconClasses = this._getIconClasses( this.options );
-
-		return $("<div class='ui-btn ui-input-btn" +
-			( options.wrapperClass ? " " + options.wrapperClass : "" ) +
-			( options.theme ? " ui-btn-" + options.theme : "" ) +
-			( options.corners ? " ui-corner-all" : "" ) +
-			( options.shadow ? " ui-shadow" : "" ) +
-			( options.inline ? " ui-btn-inline" : "" ) +
-			( options.mini ? " ui-mini" : "" ) +
-			( options.disabled ? " ui-state-disabled" : "" ) +
-			( iconClasses ? ( " " + iconClasses ) : "" ) +
-			"' >" + this.element.val() + "</div>" );
-	},
-
-	widget: function() {
-		return this.wrapper;
-	},
-
-	_destroy: function() {
-			this.element.insertBefore( this.wrapper );
-			this.wrapper.remove();
-	},
-
-	_getIconClasses: function( options ) {
-		return ( options.icon ? ( "ui-icon-" + options.icon +
-			( options.iconshadow ? " ui-shadow-icon" : "" ) + /* TODO: Deprecated in 1.4, remove in 1.5. */
-			" ui-btn-icon-" + options.iconpos ) : "" );
-	},
-
-	_setOptions: function( options ) {
-		var outer = this.widget();
-
-		if ( options.theme !== undefined ) {
-			outer
-				.removeClass( this.options.theme )
-				.addClass( "ui-btn-" + options.theme );
-		}
-		if ( options.corners !== undefined ) {
-			outer.toggleClass( "ui-corner-all", options.corners );
-		}
-		if ( options.shadow !== undefined ) {
-			outer.toggleClass( "ui-shadow", options.shadow );
-		}
-		if ( options.inline !== undefined ) {
-			outer.toggleClass( "ui-btn-inline", options.inline );
-		}
-		if ( options.mini !== undefined ) {
-			outer.toggleClass( "ui-mini", options.mini );
-		}
-		if ( options.disabled !== undefined ) {
-			this.element.prop( "disabled", options.disabled );
-			outer.toggleClass( "ui-state-disabled", options.disabled );
-		}
-
-		if ( options.icon !== undefined ||
-				options.iconshadow !== undefined || /* TODO: Deprecated in 1.4, remove in 1.5. */
-				options.iconpos !== undefined ) {
-			outer
-				.removeClass( this._getIconClasses( this.options ) )
-				.addClass( this._getIconClasses(
-					$.extend( {}, this.options, options ) ) );
-		}
-
-		this._super( options );
-	},
-
-	refresh: function( create ) {
-		var originalElement,
-			isDisabled = this.element.prop( "disabled" );
-
-		if ( this.options.icon && this.options.iconpos === "notext" && this.element.attr( "title" ) ) {
-			this.element.attr( "title", this.element.val() );
-		}
-		if ( !create ) {
-			originalElement = this.element.detach();
-			$( this.wrapper ).text( this.element.val() ).append( originalElement );
-		}
-		if ( this.options.disabled !== isDisabled ) {
-			this._setOptions({ disabled: isDisabled });
-		}
-	}
-});
-
-})( jQuery );
-
-(function( $ ) {
-	var	meta = $( "meta[name=viewport]" ),
-		initialContent = meta.attr( "content" ),
-		disabledZoom = initialContent + ",maximum-scale=1, user-scalable=no",
-		enabledZoom = initialContent + ",maximum-scale=10, user-scalable=yes",
-		disabledInitially = /(user-scalable[\s]*=[\s]*no)|(maximum-scale[\s]*=[\s]*1)[$,\s]/.test( initialContent );
-
-	$.mobile.zoom = $.extend( {}, {
-		enabled: !disabledInitially,
-		locked: false,
-		disable: function( lock ) {
-			if ( !disabledInitially && !$.mobile.zoom.locked ) {
-				meta.attr( "content", disabledZoom );
-				$.mobile.zoom.enabled = false;
-				$.mobile.zoom.locked = lock || false;
-			}
-		},
-		enable: function( unlock ) {
-			if ( !disabledInitially && ( !$.mobile.zoom.locked || unlock === true ) ) {
-				meta.attr( "content", enabledZoom );
-				$.mobile.zoom.enabled = true;
-				$.mobile.zoom.locked = false;
-			}
-		},
-		restore: function() {
-			if ( !disabledInitially ) {
-				meta.attr( "content", initialContent );
-				$.mobile.zoom.enabled = true;
-			}
-		}
-	});
-
-}( jQuery ));
-
-(function( $, undefined ) {
-
-$.widget( "mobile.textinput", {
-	initSelector: "input[type='text']," +
-		"input[type='search']," +
-		":jqmData(type='search')," +
-		"input[type='number']," +
-		":jqmData(type='number')," +
-		"input[type='password']," +
-		"input[type='email']," +
-		"input[type='url']," +
-		"input[type='tel']," +
-		"textarea," +
-		"input[type='time']," +
-		"input[type='date']," +
-		"input[type='month']," +
-		"input[type='week']," +
-		"input[type='datetime']," +
-		"input[type='datetime-local']," +
-		"input[type='color']," +
-		"input:not([type])," +
-		"input[type='file']",
-
-	options: {
-		theme: null,
-		corners: true,
-		mini: false,
-		// This option defaults to true on iOS devices.
-		preventFocusZoom: /iPhone|iPad|iPod/.test( navigator.platform ) && navigator.userAgent.indexOf( "AppleWebKit" ) > -1,
-		wrapperClass: "",
-		enhanced: false
-	},
-
-	_create: function() {
-
-		var options = this.options,
-			isSearch = this.element.is( "[type='search'], :jqmData(type='search')" ),
-			isTextarea = this.element[ 0 ].tagName === "TEXTAREA",
-			isRange = this.element.is( "[data-" + ( $.mobile.ns || "" ) + "type='range']" ),
-			inputNeedsWrap = ( (this.element.is( "input" ) ||
-				this.element.is( "[data-" + ( $.mobile.ns || "" ) + "type='search']" ) ) &&
-					!isRange );
-
-		if ( this.element.prop( "disabled" ) ) {
-			options.disabled = true;
-		}
-
-		$.extend( this, {
-			classes: this._classesFromOptions(),
-			isSearch: isSearch,
-			isTextarea: isTextarea,
-			isRange: isRange,
-			inputNeedsWrap: inputNeedsWrap
-		});
-
-		this._autoCorrect();
-
-		if ( !options.enhanced ) {
-			this._enhance();
-		}
-
-		this._on( {
-			"focus": "_handleFocus",
-			"blur": "_handleBlur"
-		});
-
-	},
-
-	refresh: function() {
-		this.setOptions({
-			"disabled" : this.element.is( ":disabled" )
-		});
-	},
-
-	_enhance: function() {
-		var elementClasses = [];
-
-		if ( this.isTextarea ) {
-			elementClasses.push( "ui-input-text" );
-		}
-
-		if ( this.isTextarea || this.isRange ) {
-			elementClasses.push( "ui-shadow-inset" );
-		}
-
-		//"search" and "text" input widgets
-		if ( this.inputNeedsWrap ) {
-			this.element.wrap( this._wrap() );
-		} else {
-			elementClasses = elementClasses.concat( this.classes );
-		}
-
-		this.element.addClass( elementClasses.join( " " ) );
-	},
-
-	widget: function() {
-		return ( this.inputNeedsWrap ) ? this.element.parent() : this.element;
-	},
-
-	_classesFromOptions: function() {
-		var options = this.options,
-			classes = [];
-
-		classes.push( "ui-body-" + ( ( options.theme === null ) ? "inherit" : options.theme ) );
-		if ( options.corners ) {
-			classes.push( "ui-corner-all" );
-		}
-		if ( options.mini ) {
-			classes.push( "ui-mini" );
-		}
-		if ( options.disabled ) {
-			classes.push( "ui-state-disabled" );
-		}
-		if ( options.wrapperClass ) {
-			classes.push( options.wrapperClass );
-		}
-
-		return classes;
-	},
-
-	_wrap: function() {
-		return $( "<div class='" +
-			( this.isSearch ? "ui-input-search " : "ui-input-text " ) +
-			this.classes.join( " " ) + " " +
-			"ui-shadow-inset'></div>" );
-	},
-
-	_autoCorrect: function() {
-		// XXX: Temporary workaround for issue 785 (Apple bug 8910589).
-		//      Turn off autocorrect and autocomplete on non-iOS 5 devices
-		//      since the popup they use can't be dismissed by the user. Note
-		//      that we test for the presence of the feature by looking for
-		//      the autocorrect property on the input element. We currently
-		//      have no test for iOS 5 or newer so we're temporarily using
-		//      the touchOverflow support flag for jQM 1.0. Yes, I feel dirty.
-		//      - jblas
-		if ( typeof this.element[0].autocorrect !== "undefined" &&
-			!$.support.touchOverflow ) {
-
-			// Set the attribute instead of the property just in case there
-			// is code that attempts to make modifications via HTML.
-			this.element[0].setAttribute( "autocorrect", "off" );
-			this.element[0].setAttribute( "autocomplete", "off" );
-		}
-	},
-
-	_handleBlur: function() {
-		this.widget().removeClass( $.mobile.focusClass );
-		if ( this.options.preventFocusZoom ) {
-			$.mobile.zoom.enable( true );
-		}
-	},
-
-	_handleFocus: function() {
-		// In many situations, iOS will zoom into the input upon tap, this
-		// prevents that from happening
-		if ( this.options.preventFocusZoom ) {
-			$.mobile.zoom.disable( true );
-		}
-		this.widget().addClass( $.mobile.focusClass );
-	},
-
-	_setOptions: function ( options ) {
-		var outer = this.widget();
-
-		this._super( options );
-
-		if ( !( options.disabled === undefined &&
-			options.mini === undefined &&
-			options.corners === undefined &&
-			options.theme === undefined &&
-			options.wrapperClass === undefined ) ) {
-
-			outer.removeClass( this.classes.join( " " ) );
-			this.classes = this._classesFromOptions();
-			outer.addClass( this.classes.join( " " ) );
-		}
-
-		if ( options.disabled !== undefined ) {
-			this.element.prop( "disabled", !!options.disabled );
-		}
-	},
-
-	_destroy: function() {
-		if ( this.options.enhanced ) {
-			return;
-		}
-		if ( this.inputNeedsWrap ) {
-			this.element.unwrap();
-		}
-		this.element.removeClass( "ui-input-text " + this.classes.join( " " ) );
-	}
-});
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-$.widget( "mobile.slider", $.extend( {
-	initSelector: "input[type='range'], :jqmData(type='range'), :jqmData(role='slider')",
-
-	widgetEventPrefix: "slide",
-
-	options: {
-		theme: null,
-		trackTheme: null,
-		corners: true,
-		mini: false,
-		highlight: false
-	},
-
-	_create: function() {
-
-		// TODO: Each of these should have comments explain what they're for
-		var self = this,
-			control = this.element,
-			trackTheme = this.options.trackTheme || $.mobile.getAttribute( control[ 0 ], "theme" ),
-			trackThemeClass = trackTheme ? " ui-bar-" + trackTheme : " ui-bar-inherit",
-			cornerClass = ( this.options.corners || control.jqmData( "corners" ) ) ? " ui-corner-all" : "",
-			miniClass = ( this.options.mini || control.jqmData( "mini" ) ) ? " ui-mini" : "",
-			cType = control[ 0 ].nodeName.toLowerCase(),
-			isToggleSwitch = ( cType === "select" ),
-			isRangeslider = control.parent().is( ":jqmData(role='rangeslider')" ),
-			selectClass = ( isToggleSwitch ) ? "ui-slider-switch" : "",
-			controlID = control.attr( "id" ),
-			$label = $( "[for='" + controlID + "']" ),
-			labelID = $label.attr( "id" ) || controlID + "-label",
-			min = !isToggleSwitch ? parseFloat( control.attr( "min" ) ) : 0,
-			max =  !isToggleSwitch ? parseFloat( control.attr( "max" ) ) : control.find( "option" ).length-1,
-			step = window.parseFloat( control.attr( "step" ) || 1 ),
-			domHandle = document.createElement( "a" ),
-			handle = $( domHandle ),
-			domSlider = document.createElement( "div" ),
-			slider = $( domSlider ),
-			valuebg = this.options.highlight && !isToggleSwitch ? (function() {
-				var bg = document.createElement( "div" );
-				bg.className = "ui-slider-bg " + $.mobile.activeBtnClass;
-				return $( bg ).prependTo( slider );
-			})() : false,
-			options,
-			wrapper,
-			j, length,
-			i, optionsCount, origTabIndex,
-			side, activeClass, sliderImg;
-
-		$label.attr( "id", labelID );
-		this.isToggleSwitch = isToggleSwitch;
-
-		domHandle.setAttribute( "href", "#" );
-		domSlider.setAttribute( "role", "application" );
-		domSlider.className = [ this.isToggleSwitch ? "ui-slider ui-slider-track ui-shadow-inset " : "ui-slider-track ui-shadow-inset ", selectClass, trackThemeClass, cornerClass, miniClass ].join( "" );
-		domHandle.className = "ui-slider-handle";
-		domSlider.appendChild( domHandle );
-
-		handle.attr({
-			"role": "slider",
-			"aria-valuemin": min,
-			"aria-valuemax": max,
-			"aria-valuenow": this._value(),
-			"aria-valuetext": this._value(),
-			"title": this._value(),
-			"aria-labelledby": labelID
-		});
-
-		$.extend( this, {
-			slider: slider,
-			handle: handle,
-			control: control,
-			type: cType,
-			step: step,
-			max: max,
-			min: min,
-			valuebg: valuebg,
-			isRangeslider: isRangeslider,
-			dragging: false,
-			beforeStart: null,
-			userModified: false,
-			mouseMoved: false
-		});
-
-		if ( isToggleSwitch ) {
-			// TODO: restore original tabindex (if any) in a destroy method
-			origTabIndex = control.attr( "tabindex" );
-			if ( origTabIndex ) {
-				handle.attr( "tabindex", origTabIndex );
-			}
-			control.attr( "tabindex", "-1" ).focus(function() {
-				$( this ).blur();
-				handle.focus();
-			});
-
-			wrapper = document.createElement( "div" );
-			wrapper.className = "ui-slider-inneroffset";
-
-			for ( j = 0, length = domSlider.childNodes.length; j < length; j++ ) {
-				wrapper.appendChild( domSlider.childNodes[j] );
-			}
-
-			domSlider.appendChild( wrapper );
-
-			// slider.wrapInner( "<div class='ui-slider-inneroffset'></div>" );
-
-			// make the handle move with a smooth transition
-			handle.addClass( "ui-slider-handle-snapping" );
-
-			options = control.find( "option" );
-
-			for ( i = 0, optionsCount = options.length; i < optionsCount; i++ ) {
-				side = !i ? "b" : "a";
-				activeClass = !i ? "" : " " + $.mobile.activeBtnClass;
-				sliderImg = document.createElement( "span" );
-
-				sliderImg.className = [ "ui-slider-label ui-slider-label-", side, activeClass ].join( "" );
-				sliderImg.setAttribute( "role", "img" );
-				sliderImg.appendChild( document.createTextNode( options[i].innerHTML ) );
-				$( sliderImg ).prependTo( slider );
-			}
-
-			self._labels = $( ".ui-slider-label", slider );
-
-		}
-
-		// monitor the input for updated values
-		control.addClass( isToggleSwitch ? "ui-slider-switch" : "ui-slider-input" );
-
-		this._on( control, {
-			"change": "_controlChange",
-			"keyup": "_controlKeyup",
-			"blur": "_controlBlur",
-			"vmouseup": "_controlVMouseUp"
-		});
-
-		slider.bind( "vmousedown", $.proxy( this._sliderVMouseDown, this ) )
-			.bind( "vclick", false );
-
-		// We have to instantiate a new function object for the unbind to work properly
-		// since the method itself is defined in the prototype (causing it to unbind everything)
-		this._on( document, { "vmousemove": "_preventDocumentDrag" });
-		this._on( slider.add( document ), { "vmouseup": "_sliderVMouseUp" });
-
-		slider.insertAfter( control );
-
-		// wrap in a div for styling purposes
-		if ( !isToggleSwitch && !isRangeslider ) {
-			wrapper = this.options.mini ? "<div class='ui-slider ui-mini'>" : "<div class='ui-slider'>";
-
-			control.add( slider ).wrapAll( wrapper );
-		}
-
-		// bind the handle event callbacks and set the context to the widget instance
-		this._on( this.handle, {
-			"vmousedown": "_handleVMouseDown",
-			"keydown": "_handleKeydown",
-			"keyup": "_handleKeyup"
-		});
-
-		this.handle.bind( "vclick", false );
-
-		this._handleFormReset();
-
-		this.refresh( undefined, undefined, true );
-	},
-
-	_setOptions: function( options ) {
-		if ( options.theme !== undefined ) {
-			this._setTheme( options.theme );
-		}
-
-		if ( options.trackTheme !== undefined ) {
-			this._setTrackTheme( options.trackTheme );
-		}
-
-		if ( options.corners !== undefined ) {
-			this._setCorners( options.corners );
-		}
-
-		if ( options.mini !== undefined ) {
-			this._setMini( options.mini );
-		}
-
-		if ( options.highlight !== undefined ) {
-			this._setHighlight( options.highlight );
-		}
-
-		if ( options.disabled !== undefined ) {
-			this._setDisabled( options.disabled );
-		}
-		this._super( options );
-	},
-
-	_controlChange: function( event ) {
-		// if the user dragged the handle, the "change" event was triggered from inside refresh(); don't call refresh() again
-		if ( this._trigger( "controlchange", event ) === false ) {
-			return false;
-		}
-		if ( !this.mouseMoved ) {
-			this.refresh( this._value(), true );
-		}
-	},
-
-	_controlKeyup: function(/* event */) { // necessary?
-		this.refresh( this._value(), true, true );
-	},
-
-	_controlBlur: function(/* event */) {
-		this.refresh( this._value(), true );
-	},
-
-	// it appears the clicking the up and down buttons in chrome on
-	// range/number inputs doesn't trigger a change until the field is
-	// blurred. Here we check thif the value has changed and refresh
-	_controlVMouseUp: function(/* event */) {
-		this._checkedRefresh();
-	},
-
-	// NOTE force focus on handle
-	_handleVMouseDown: function(/* event */) {
-		this.handle.focus();
-	},
-
-	_handleKeydown: function( event ) {
-		var index = this._value();
-		if ( this.options.disabled ) {
-			return;
-		}
-
-		// In all cases prevent the default and mark the handle as active
-		switch ( event.keyCode ) {
-			case $.mobile.keyCode.HOME:
-			case $.mobile.keyCode.END:
-			case $.mobile.keyCode.PAGE_UP:
-			case $.mobile.keyCode.PAGE_DOWN:
-			case $.mobile.keyCode.UP:
-			case $.mobile.keyCode.RIGHT:
-			case $.mobile.keyCode.DOWN:
-			case $.mobile.keyCode.LEFT:
-				event.preventDefault();
-
-				if ( !this._keySliding ) {
-					this._keySliding = true;
-					this.handle.addClass( "ui-state-active" ); /* TODO: We don't use this class for styling. Do we need to add it? */
-				}
-
-				break;
-		}
-
-		// move the slider according to the keypress
-		switch ( event.keyCode ) {
-			case $.mobile.keyCode.HOME:
-				this.refresh( this.min );
-				break;
-			case $.mobile.keyCode.END:
-				this.refresh( this.max );
-				break;
-			case $.mobile.keyCode.PAGE_UP:
-			case $.mobile.keyCode.UP:
-			case $.mobile.keyCode.RIGHT:
-				this.refresh( index + this.step );
-				break;
-			case $.mobile.keyCode.PAGE_DOWN:
-			case $.mobile.keyCode.DOWN:
-			case $.mobile.keyCode.LEFT:
-				this.refresh( index - this.step );
-				break;
-		}
-	}, // remove active mark
-
-	_handleKeyup: function(/* event */) {
-		if ( this._keySliding ) {
-			this._keySliding = false;
-			this.handle.removeClass( "ui-state-active" ); /* See comment above. */
-		}
-	},
-
-	_sliderVMouseDown: function( event ) {
-		// NOTE: we don't do this in refresh because we still want to
-		//       support programmatic alteration of disabled inputs
-		if ( this.options.disabled || !( event.which === 1 || event.which === 0 || event.which === undefined ) ) {
-			return false;
-		}
-		if ( this._trigger( "beforestart", event ) === false ) {
-			return false;
-		}
-		this.dragging = true;
-		this.userModified = false;
-		this.mouseMoved = false;
-
-		if ( this.isToggleSwitch ) {
-			this.beforeStart = this.element[0].selectedIndex;
-		}
-
-		this.refresh( event );
-		this._trigger( "start" );
-		return false;
-	},
-
-	_sliderVMouseUp: function() {
-		if ( this.dragging ) {
-			this.dragging = false;
-
-			if ( this.isToggleSwitch ) {
-				// make the handle move with a smooth transition
-				this.handle.addClass( "ui-slider-handle-snapping" );
-
-				if ( this.mouseMoved ) {
-					// this is a drag, change the value only if user dragged enough
-					if ( this.userModified ) {
-						this.refresh( this.beforeStart === 0 ? 1 : 0 );
-					} else {
-						this.refresh( this.beforeStart );
-					}
-				} else {
-					// this is just a click, change the value
-					this.refresh( this.beforeStart === 0 ? 1 : 0 );
-				}
-			}
-
-			this.mouseMoved = false;
-			this._trigger( "stop" );
-			return false;
-		}
-	},
-
-	_preventDocumentDrag: function( event ) {
-			// NOTE: we don't do this in refresh because we still want to
-			//       support programmatic alteration of disabled inputs
-			if ( this._trigger( "drag", event ) === false) {
-				return false;
-			}
-			if ( this.dragging && !this.options.disabled ) {
-
-				// this.mouseMoved must be updated before refresh() because it will be used in the control "change" event
-				this.mouseMoved = true;
-
-				if ( this.isToggleSwitch ) {
-					// make the handle move in sync with the mouse
-					this.handle.removeClass( "ui-slider-handle-snapping" );
-				}
-
-				this.refresh( event );
-
-				// only after refresh() you can calculate this.userModified
-				this.userModified = this.beforeStart !== this.element[0].selectedIndex;
-				return false;
-			}
-		},
-
-	_checkedRefresh: function() {
-		if ( this.value !== this._value() ) {
-			this.refresh( this._value() );
-		}
-	},
-
-	_value: function() {
-		return  this.isToggleSwitch ? this.element[0].selectedIndex : parseFloat( this.element.val() ) ;
-	},
-
-	_reset: function() {
-		this.refresh( undefined, false, true );
-	},
-
-	refresh: function( val, isfromControl, preventInputUpdate ) {
-		// NOTE: we don't return here because we want to support programmatic
-		//       alteration of the input value, which should still update the slider
-
-		var self = this,
-			parentTheme = $.mobile.getAttribute( this.element[ 0 ], "theme" ),
-			theme = this.options.theme || parentTheme,
-			themeClass =  theme ? " ui-btn-" + theme : "",
-			trackTheme = this.options.trackTheme || parentTheme,
-			trackThemeClass = trackTheme ? " ui-bar-" + trackTheme : " ui-bar-inherit",
-			cornerClass = this.options.corners ? " ui-corner-all" : "",
-			miniClass = this.options.mini ? " ui-mini" : "",
-			left, width, data, tol,
-			pxStep, percent,
-			control, isInput, optionElements, min, max, step,
-			newval, valModStep, alignValue, percentPerStep,
-			handlePercent, aPercent, bPercent,
-			valueChanged;
-
-		self.slider[0].className = [ this.isToggleSwitch ? "ui-slider ui-slider-switch ui-slider-track ui-shadow-inset" : "ui-slider-track ui-shadow-inset", trackThemeClass, cornerClass, miniClass ].join( "" );
-		if ( this.options.disabled || this.element.prop( "disabled" ) ) {
-			this.disable();
-		}
-
-		// set the stored value for comparison later
-		this.value = this._value();
-		if ( this.options.highlight && !this.isToggleSwitch && this.slider.find( ".ui-slider-bg" ).length === 0 ) {
-			this.valuebg = (function() {
-				var bg = document.createElement( "div" );
-				bg.className = "ui-slider-bg " + $.mobile.activeBtnClass;
-				return $( bg ).prependTo( self.slider );
-			})();
-		}
-		this.handle.addClass( "ui-btn" + themeClass + " ui-shadow" );
-
-		control = this.element;
-		isInput = !this.isToggleSwitch;
-		optionElements = isInput ? [] : control.find( "option" );
-		min =  isInput ? parseFloat( control.attr( "min" ) ) : 0;
-		max = isInput ? parseFloat( control.attr( "max" ) ) : optionElements.length - 1;
-		step = ( isInput && parseFloat( control.attr( "step" ) ) > 0 ) ? parseFloat( control.attr( "step" ) ) : 1;
-
-		if ( typeof val === "object" ) {
-			data = val;
-			// a slight tolerance helped get to the ends of the slider
-			tol = 8;
-
-			left = this.slider.offset().left;
-			width = this.slider.width();
-			pxStep = width/((max-min)/step);
-			if ( !this.dragging ||
-					data.pageX < left - tol ||
-					data.pageX > left + width + tol ) {
-				return;
-			}
-			if ( pxStep > 1 ) {
-				percent = ( ( data.pageX - left ) / width ) * 100;
-			} else {
-				percent = Math.round( ( ( data.pageX - left ) / width ) * 100 );
-			}
-		} else {
-			if ( val == null ) {
-				val = isInput ? parseFloat( control.val() || 0 ) : control[0].selectedIndex;
-			}
-			percent = ( parseFloat( val ) - min ) / ( max - min ) * 100;
-		}
-
-		if ( isNaN( percent ) ) {
-			return;
-		}
-
-		newval = ( percent / 100 ) * ( max - min ) + min;
-
-		//from jQuery UI slider, the following source will round to the nearest step
-		valModStep = ( newval - min ) % step;
-		alignValue = newval - valModStep;
-
-		if ( Math.abs( valModStep ) * 2 >= step ) {
-			alignValue += ( valModStep > 0 ) ? step : ( -step );
-		}
-
-		percentPerStep = 100/((max-min)/step);
-		// Since JavaScript has problems with large floats, round
-		// the final value to 5 digits after the decimal point (see jQueryUI: #4124)
-		newval = parseFloat( alignValue.toFixed(5) );
-
-		if ( typeof pxStep === "undefined" ) {
-			pxStep = width / ( (max-min) / step );
-		}
-		if ( pxStep > 1 && isInput ) {
-			percent = ( newval - min ) * percentPerStep * ( 1 / step );
-		}
-		if ( percent < 0 ) {
-			percent = 0;
-		}
-
-		if ( percent > 100 ) {
-			percent = 100;
-		}
-
-		if ( newval < min ) {
-			newval = min;
-		}
-
-		if ( newval > max ) {
-			newval = max;
-		}
-
-		this.handle.css( "left", percent + "%" );
-
-		this.handle[0].setAttribute( "aria-valuenow", isInput ? newval : optionElements.eq( newval ).attr( "value" ) );
-
-		this.handle[0].setAttribute( "aria-valuetext", isInput ? newval : optionElements.eq( newval ).getEncodedText() );
-
-		this.handle[0].setAttribute( "title", isInput ? newval : optionElements.eq( newval ).getEncodedText() );
-
-		if ( this.valuebg ) {
-			this.valuebg.css( "width", percent + "%" );
-		}
-
-		// drag the label widths
-		if ( this._labels ) {
-			handlePercent = this.handle.width() / this.slider.width() * 100;
-			aPercent = percent && handlePercent + ( 100 - handlePercent ) * percent / 100;
-			bPercent = percent === 100 ? 0 : Math.min( handlePercent + 100 - aPercent, 100 );
-
-			this._labels.each(function() {
-				var ab = $( this ).hasClass( "ui-slider-label-a" );
-				$( this ).width( ( ab ? aPercent : bPercent  ) + "%" );
-			});
-		}
-
-		if ( !preventInputUpdate ) {
-			valueChanged = false;
-
-			// update control"s value
-			if ( isInput ) {
-				valueChanged = control.val() !== newval;
-				control.val( newval );
-			} else {
-				valueChanged = control[ 0 ].selectedIndex !== newval;
-				control[ 0 ].selectedIndex = newval;
-			}
-			if ( this._trigger( "beforechange", val ) === false) {
-					return false;
-			}
-			if ( !isfromControl && valueChanged ) {
-				control.trigger( "change" );
-			}
-		}
-	},
-
-	_setHighlight: function( value ) {
-		value = !!value;
-		if ( value ) {
-			this.options.highlight = !!value;
-			this.refresh();
-		} else if ( this.valuebg ) {
-			this.valuebg.remove();
-			this.valuebg = false;
-		}
-	},
-
-	_setTheme: function( value ) {
-		this.handle
-			.removeClass( "ui-btn-" + this.options.theme )
-			.addClass( "ui-btn-" + value );
-
-		var currentTheme = this.options.theme ? this.options.theme : "inherit",
-			newTheme = value ? value : "inherit";
-
-		this.control
-			.removeClass( "ui-body-" + currentTheme )
-			.addClass( "ui-body-" + newTheme );
-	},
-
-	_setTrackTheme: function( value ) {
-		var currentTrackTheme = this.options.trackTheme ? this.options.trackTheme : "inherit",
-			newTrackTheme = value ? value : "inherit";
-
-		this.slider
-			.removeClass( "ui-body-" + currentTrackTheme )
-			.addClass( "ui-body-" + newTrackTheme );
-	},
-
-	_setMini: function( value ) {
-		value = !!value;
-		if ( !this.isToggleSwitch && !this.isRangeslider ) {
-			this.slider.parent().toggleClass( "ui-mini", value );
-			this.element.toggleClass( "ui-mini", value );
-		}
-		this.slider.toggleClass( "ui-mini", value );
-	},
-
-	_setCorners: function( value ) {
-		this.slider.toggleClass( "ui-corner-all", value );
-
-		if ( !this.isToggleSwitch ) {
-			this.control.toggleClass( "ui-corner-all", value );
-		}
-	},
-
-	_setDisabled: function( value ) {
-		value = !!value;
-		this.element.prop( "disabled", value );
-		this.slider
-			.toggleClass( "ui-state-disabled", value )
-			.attr( "aria-disabled", value );
-
-		this.element.toggleClass( "ui-state-disabled", value );
-	}
-
-}, $.mobile.behaviors.formReset ) );
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-var popup;
-
-function getPopup() {
-	if ( !popup ) {
-		popup = $( "<div></div>", {
-			"class": "ui-slider-popup ui-shadow ui-corner-all"
-		});
-	}
-	return popup.clone();
-}
-
-$.widget( "mobile.slider", $.mobile.slider, {
-	options: {
-		popupEnabled: false,
-		showValue: false
-	},
-
-	_create: function() {
-		this._super();
-
-		$.extend( this, {
-			_currentValue: null,
-			_popup: null,
-			_popupVisible: false
-		});
-
-		this._setOption( "popupEnabled", this.options.popupEnabled );
-
-		this._on( this.handle, { "vmousedown" : "_showPopup" } );
-		this._on( this.slider.add( this.document ), { "vmouseup" : "_hidePopup" } );
-		this._refresh();
-	},
-
-	// position the popup centered 5px above the handle
-	_positionPopup: function() {
-		var dstOffset = this.handle.offset();
-
-		this._popup.offset( {
-			left: dstOffset.left + ( this.handle.width() - this._popup.width() ) / 2,
-			top: dstOffset.top - this._popup.outerHeight() - 5
-		});
-	},
-
-	_setOption: function( key, value ) {
-		this._super( key, value );
-
-		if ( key === "showValue" ) {
-			this.handle.html( value && !this.options.mini ? this._value() : "" );
-		} else if ( key === "popupEnabled" ) {
-			if ( value && !this._popup ) {
-				this._popup = getPopup()
-					.addClass( "ui-body-" + ( this.options.theme || "a" ) )
-					.hide()
-					.insertBefore( this.element );
-			}
-		}
-	},
-
-	// show value on the handle and in popup
-	refresh: function() {
-		this._super.apply( this, arguments );
-		this._refresh();
-	},
-
-	_refresh: function() {
-		var o = this.options, newValue;
-
-		if ( o.popupEnabled ) {
-			// remove the title attribute from the handle (which is
-			// responsible for the annoying tooltip); NB we have
-			// to do it here as the jqm slider sets it every time
-			// the slider's value changes :(
-			this.handle.removeAttr( "title" );
-		}
-
-		newValue = this._value();
-		if ( newValue === this._currentValue ) {
-			return;
-		}
-		this._currentValue = newValue;
-
-		if ( o.popupEnabled && this._popup ) {
-			this._positionPopup();
-			this._popup.html( newValue );
-		}
-
-		if ( o.showValue && !this.options.mini ) {
-			this.handle.html( newValue );
-		}
-	},
-
-	_showPopup: function() {
-		if ( this.options.popupEnabled && !this._popupVisible ) {
-			this.handle.html( "" );
-			this._popup.show();
-			this._positionPopup();
-			this._popupVisible = true;
-		}
-	},
-
-	_hidePopup: function() {
-		var o = this.options;
-
-		if ( o.popupEnabled && this._popupVisible ) {
-			if ( o.showValue && !o.mini ) {
-				this.handle.html( this._value() );
-			}
-			this._popup.hide();
-			this._popupVisible = false;
-		}
-	}
-});
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-$.widget( "mobile.flipswitch", $.extend({
-
-	options: {
-		onText: "On",
-		offText: "Off",
-		theme: null,
-		enhanced: false,
-		wrapperClass: null,
-		corners: true,
-		mini: false
-	},
-
-	_create: function() {
-			if ( !this.options.enhanced ) {
-				this._enhance();
-			} else {
-				$.extend( this, {
-					flipswitch: this.element.parent(),
-					on: this.element.find( ".ui-flipswitch-on" ).eq( 0 ),
-					off: this.element.find( ".ui-flipswitch-off" ).eq(0),
-					type: this.element.get( 0 ).tagName
-				});
-			}
-
-			this._handleFormReset();
-
-			// Transfer tabindex to "on" element and make input unfocusable
-			this._originalTabIndex = this.element.attr( "tabindex" );
-			if ( this._originalTabIndex != null ) {
-				this.on.attr( "tabindex", this._originalTabIndex );
-			}
-			this.element.attr( "tabindex", "-1" );
-			this._on({
-				"focus" : "_handleInputFocus"
-			});
-
-			if ( this.element.is( ":disabled" ) ) {
-				this._setOptions({
-					"disabled": true
-				});
-			}
-
-			this._on( this.flipswitch, {
-				"click": "_toggle",
-				"swipeleft": "_left",
-				"swiperight": "_right"
-			});
-
-			this._on( this.on, {
-				"keydown": "_keydown"
-			});
-
-			this._on( {
-				"change": "refresh"
-			});
-	},
-
-	_handleInputFocus: function() {
-		this.on.focus();
-	},
-
-	widget: function() {
-		return this.flipswitch;
-	},
-
-	_left: function() {
-		this.flipswitch.removeClass( "ui-flipswitch-active" );
-		if ( this.type === "SELECT" ) {
-			this.element.get( 0 ).selectedIndex = 0;
-		} else {
-			this.element.prop( "checked", false );
-		}
-		this.element.trigger( "change" );
-	},
-
-	_right: function() {
-		this.flipswitch.addClass( "ui-flipswitch-active" );
-		if ( this.type === "SELECT" ) {
-			this.element.get( 0 ).selectedIndex = 1;
-		} else {
-			this.element.prop( "checked", true );
-		}
-		this.element.trigger( "change" );
-	},
-
-	_enhance: function() {
-		var flipswitch = $( "<div>" ),
-			options = this.options,
-			element = this.element,
-			theme = options.theme ? options.theme : "inherit",
-
-			// The "on" button is an anchor so it's focusable
-			on = $( "<a></a>", {
-				"href": "#"
-			}),
-			off = $( "<span></span>" ),
-			type = element.get( 0 ).tagName,
-			onText = ( type === "INPUT" ) ?
-				options.onText : element.find( "option" ).eq( 1 ).text(),
-			offText = ( type === "INPUT" ) ?
-				options.offText : element.find( "option" ).eq( 0 ).text();
-
-			on
-				.addClass( "ui-flipswitch-on ui-btn ui-shadow ui-btn-inherit" )
-				.text( onText );
-			off
-				.addClass( "ui-flipswitch-off" )
-				.text( offText );
-
-			flipswitch
-				.addClass( "ui-flipswitch ui-shadow-inset " +
-					"ui-bar-" + theme + " " +
-					( options.wrapperClass ? options.wrapperClass : "" ) + " " +
-					( ( element.is( ":checked" ) ||
-						element
-							.find( "option" )
-							.eq( 1 )
-							.is( ":selected" ) ) ? "ui-flipswitch-active" : "" ) +
-					( element.is(":disabled") ? " ui-state-disabled": "") +
-					( options.corners ? " ui-corner-all": "" ) +
-					( options.mini ? " ui-mini": "" ) )
-				.append( on, off );
-
-			element
-				.addClass( "ui-flipswitch-input" )
-				.after( flipswitch )
-				.appendTo( flipswitch );
-
-		$.extend( this, {
-			flipswitch: flipswitch,
-			on: on,
-			off: off,
-			type: type
-		});
-	},
-
-	_reset: function() {
-		this.refresh();
-	},
-
-	refresh: function() {
-		var direction,
-			existingDirection = this.flipswitch.hasClass( "ui-flipswitch-active" ) ? "_right" : "_left";
-
-		if ( this.type === "SELECT" ) {
-			direction = ( this.element.get( 0 ).selectedIndex > 0 ) ? "_right": "_left";
-		} else {
-			direction = this.element.prop( "checked" ) ? "_right": "_left";
-		}
-
-		if ( direction !== existingDirection ) {
-			this[ direction ]();
-		}
-	},
-
-	_toggle: function() {
-		var direction = this.flipswitch.hasClass( "ui-flipswitch-active" ) ? "_left" : "_right";
-
-		this[ direction ]();
-	},
-
-	_keydown: function( e ) {
-		if ( e.which === $.mobile.keyCode.LEFT ) {
-			this._left();
-		} else if ( e.which === $.mobile.keyCode.RIGHT ) {
-			this._right();
-		} else if ( e.which === $.mobile.keyCode.SPACE ) {
-			this._toggle();
-			e.preventDefault();
-		}
-	},
-
-	_setOptions: function( options ) {
-		if ( options.theme !== undefined ) {
-			var currentTheme = options.theme ? options.theme : "inherit",
-				newTheme = options.theme ? options.theme : "inherit";
-
-			this.widget()
-				.removeClass( "ui-bar-" + currentTheme )
-				.addClass( "ui-bar-" + newTheme );
-		}
-		if ( options.onText !== undefined ) {
-			this.on.text( options.onText );
-		}
-		if ( options.offText !== undefined ) {
-			this.off.text( options.offText );
-		}
-		if ( options.disabled !== undefined ) {
-			this.widget().toggleClass( "ui-state-disabled", options.disabled );
-		}
-		if ( options.mini !== undefined ) {
-			this.widget().toggleClass( "ui-mini", options.mini );
-		}
-		if ( options.corners !== undefined ) {
-			this.widget().toggleClass( "ui-corner-all", options.corners );
-		}
-
-		this._super( options );
-	},
-
-	_destroy: function() {
-		if ( this.options.enhanced ) {
-			return;
-		}
-		if ( this._originalTabIndex != null ) {
-			this.element.attr( "tabindex", this._originalTabIndex );
-		} else {
-			this.element.removeAttr( "tabindex" );
-		}
-		this.on.remove();
-		this.off.remove();
-		this.element.unwrap();
-		this.flipswitch.remove();
-		this.removeClass( "ui-flipswitch-input" );
-	}
-
-}, $.mobile.behaviors.formReset ) );
-
-})( jQuery );
-
-(function( $, undefined ) {
-	$.widget( "mobile.rangeslider", $.extend( {
-
-		options: {
-			theme: null,
-			trackTheme: null,
-			corners: true,
-			mini: false,
-			highlight: true
-		},
-
-		_create: function() {
-			var $el = this.element,
-			elClass = this.options.mini ? "ui-rangeslider ui-mini" : "ui-rangeslider",
-			_inputFirst = $el.find( "input" ).first(),
-			_inputLast = $el.find( "input" ).last(),
-			_label = $el.find( "label" ).first(),
-			_sliderWidgetFirst = $.data( _inputFirst.get( 0 ), "mobile-slider" ) ||
-				$.data( _inputFirst.slider().get( 0 ), "mobile-slider" ),
-			_sliderWidgetLast = $.data( _inputLast.get(0), "mobile-slider" ) ||
-				$.data( _inputLast.slider().get( 0 ), "mobile-slider" ),
-			_sliderFirst = _sliderWidgetFirst.slider,
-			_sliderLast = _sliderWidgetLast.slider,
-			firstHandle = _sliderWidgetFirst.handle,
-			_sliders = $( "<div class='ui-rangeslider-sliders' />" ).appendTo( $el );
-
-			_inputFirst.addClass( "ui-rangeslider-first" );
-			_inputLast.addClass( "ui-rangeslider-last" );
-			$el.addClass( elClass );
-
-			_sliderFirst.appendTo( _sliders );
-			_sliderLast.appendTo( _sliders );
-			_label.insertBefore( $el );
-			firstHandle.prependTo( _sliderLast );
-
-			$.extend( this, {
-				_inputFirst: _inputFirst,
-				_inputLast: _inputLast,
-				_sliderFirst: _sliderFirst,
-				_sliderLast: _sliderLast,
-				_label: _label,
-				_targetVal: null,
-				_sliderTarget: false,
-				_sliders: _sliders,
-				_proxy: false
-			});
-
-			this.refresh();
-			this._on( this.element.find( "input.ui-slider-input" ), {
-				"slidebeforestart": "_slidebeforestart",
-				"slidestop": "_slidestop",
-				"slidedrag": "_slidedrag",
-				"slidebeforechange": "_change",
-				"blur": "_change",
-				"keyup": "_change"
-			});
-			this._on({
-				"mousedown":"_change"
-			});
-			this._on( this.element.closest( "form" ), {
-				"reset":"_handleReset"
-			});
-			this._on( firstHandle, {
-				"vmousedown": "_dragFirstHandle"
-			});
-		},
-		_handleReset: function() {
-			var self = this;
-			//we must wait for the stack to unwind before updateing other wise sliders will not have updated yet
-			setTimeout( function() {
-				self._updateHighlight();
-			},0);
-		},
-
-		_dragFirstHandle: function( event ) {
-			//if the first handle is dragged send the event to the first slider
-			$.data( this._inputFirst.get(0), "mobile-slider" ).dragging = true;
-			$.data( this._inputFirst.get(0), "mobile-slider" ).refresh( event );
-			$.data( this._inputFirst.get(0), "mobile-slider" )._trigger( "start" );
-			return false;
-		},
-
-		_slidedrag: function( event ) {
-			var first = $( event.target ).is( this._inputFirst ),
-				otherSlider = ( first ) ? this._inputLast : this._inputFirst;
-
-			this._sliderTarget = false;
-			//if the drag was initiated on an extreme and the other handle is focused send the events to
-			//the closest handle
-			if ( ( this._proxy === "first" && first ) || ( this._proxy === "last" && !first ) ) {
-				$.data( otherSlider.get(0), "mobile-slider" ).dragging = true;
-				$.data( otherSlider.get(0), "mobile-slider" ).refresh( event );
-				return false;
-			}
-		},
-
-		_slidestop: function( event ) {
-			var first = $( event.target ).is( this._inputFirst );
-
-			this._proxy = false;
-			//this stops dragging of the handle and brings the active track to the front
-			//this makes clicks on the track go the the last handle used
-			this.element.find( "input" ).trigger( "vmouseup" );
-			this._sliderFirst.css( "z-index", first ? 1 : "" );
-		},
-
-		_slidebeforestart: function( event ) {
-			this._sliderTarget = false;
-			//if the track is the target remember this and the original value
-			if ( $( event.originalEvent.target ).hasClass( "ui-slider-track" ) ) {
-				this._sliderTarget = true;
-				this._targetVal = $( event.target ).val();
-			}
-		},
-
-		_setOptions: function( options ) {
-			if ( options.theme !== undefined ) {
-				this._setTheme( options.theme );
-			}
-
-			if ( options.trackTheme !== undefined ) {
-				this._setTrackTheme( options.trackTheme );
-			}
-
-			if ( options.mini !== undefined ) {
-				this._setMini( options.mini );
-			}
-
-			if ( options.highlight !== undefined ) {
-				this._setHighlight( options.highlight );
-			}
-
-			if ( options.disabled !== undefined ) {
-				this._setDisabled( options.disabled );
-			}
-
-			this._super( options );
-			this.refresh();
-		},
-
-		refresh: function() {
-			var $el = this.element,
-				o = this.options;
-
-			if ( this._inputFirst.is( ":disabled" ) || this._inputLast.is( ":disabled" ) ) {
-				this.options.disabled = true;
-			}
-
-			$el.find( "input" ).slider({
-				theme: o.theme,
-				trackTheme: o.trackTheme,
-				disabled: o.disabled,
-				corners: o.corners,
-				mini: o.mini,
-				highlight: o.highlight
-			}).slider( "refresh" );
-			this._updateHighlight();
-		},
-
-		_change: function( event ) {
-			if ( event.type === "keyup" ) {
-				this._updateHighlight();
-				return false;
-			}
-
-			var self = this,
-				min = parseFloat( this._inputFirst.val(), 10 ),
-				max = parseFloat( this._inputLast.val(), 10 ),
-				first = $( event.target ).hasClass( "ui-rangeslider-first" ),
-				thisSlider = first ? this._inputFirst : this._inputLast,
-				otherSlider = first ? this._inputLast : this._inputFirst;
-
-			if ( ( this._inputFirst.val() > this._inputLast.val() && event.type === "mousedown" && !$(event.target).hasClass("ui-slider-handle")) ) {
-				thisSlider.blur();
-			} else if ( event.type === "mousedown" ) {
-				return;
-			}
-			if ( min > max && !this._sliderTarget ) {
-				//this prevents min from being greater then max
-				thisSlider.val( first ? max: min ).slider( "refresh" );
-				this._trigger( "normalize" );
-			} else if ( min > max ) {
-				//this makes it so clicks on the target on either extreme go to the closest handle
-				thisSlider.val( this._targetVal ).slider( "refresh" );
-
-				//You must wait for the stack to unwind so first slider is updated before updating second
-				setTimeout( function() {
-					otherSlider.val( first ? min: max ).slider( "refresh" );
-					$.data( otherSlider.get(0), "mobile-slider" ).handle.focus();
-					self._sliderFirst.css( "z-index", first ? "" : 1 );
-					self._trigger( "normalize" );
-				}, 0 );
-				this._proxy = ( first ) ? "first" : "last";
-			}
-			//fixes issue where when both _sliders are at min they cannot be adjusted
-			if ( min === max ) {
-				$.data( thisSlider.get(0), "mobile-slider" ).handle.css( "z-index", 1 );
-				$.data( otherSlider.get(0), "mobile-slider" ).handle.css( "z-index", 0 );
-			} else {
-				$.data( otherSlider.get(0), "mobile-slider" ).handle.css( "z-index", "" );
-				$.data( thisSlider.get(0), "mobile-slider" ).handle.css( "z-index", "" );
-			}
-
-			this._updateHighlight();
-
-			if ( min >= max ) {
-				return false;
-			}
-		},
-
-		_updateHighlight: function() {
-			var min = parseInt( $.data( this._inputFirst.get(0), "mobile-slider" ).handle.get(0).style.left, 10 ),
-				max = parseInt( $.data( this._inputLast.get(0), "mobile-slider" ).handle.get(0).style.left, 10 ),
-				width = (max - min);
-
-			this.element.find( ".ui-slider-bg" ).css({
-				"margin-left": min + "%",
-				"width": width + "%"
-			});
-		},
-
-		_setTheme: function( value ) {
-			this._inputFirst.slider( "option", "theme", value );
-			this._inputLast.slider( "option", "theme", value );
-		},
-
-		_setTrackTheme: function( value ) {
-			this._inputFirst.slider( "option", "trackTheme", value );
-			this._inputLast.slider( "option", "trackTheme", value );
-		},
-
-		_setMini: function( value ) {
-			this._inputFirst.slider( "option", "mini", value );
-			this._inputLast.slider( "option", "mini", value );
-			this.element.toggleClass( "ui-mini", !!value );
-		},
-
-		_setHighlight: function( value ) {
-			this._inputFirst.slider( "option", "highlight", value );
-			this._inputLast.slider( "option", "highlight", value );
-		},
-
-		_setDisabled: function( value ) {
-			this._inputFirst.prop( "disabled", value );
-			this._inputLast.prop( "disabled", value );
-		},
-
-		_destroy: function() {
-			this._label.prependTo( this.element );
-			this.element.removeClass( "ui-rangeslider ui-mini" );
-			this._inputFirst.after( this._sliderFirst );
-			this._inputLast.after( this._sliderLast );
-			this._sliders.remove();
-			this.element.find( "input" ).removeClass( "ui-rangeslider-first ui-rangeslider-last" ).slider( "destroy" );
-		}
-
-	}, $.mobile.behaviors.formReset ) );
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-	$.widget( "mobile.textinput", $.mobile.textinput, {
-		options: {
-			clearBtn: false,
-			clearBtnText: "Clear text"
-		},
-
-		_create: function() {
-			this._super();
-
-			if ( this.isSearch ) {
-				this.options.clearBtn = true;
-			}
-
-			if ( !!this.options.clearBtn && this.inputNeedsWrap ) {
-				this._addClearBtn();
-			}
-		},
-
-		clearButton: function() {
-			return $( "<a href='#' " +
-				"class='ui-input-clear ui-btn ui-icon-delete ui-btn-icon-notext ui-corner-all'>" +
-				"</a>" )
-					.attr( "title", this.options.clearBtnText )
-					.text( this.options.clearBtnText );
-		},
-
-		_clearBtnClick: function( event ) {
-			this.element.val( "" )
-					.focus()
-					.trigger( "change" );
-
-			this._clearBtn.addClass( "ui-input-clear-hidden" );
-			event.preventDefault();
-		},
-
-		_addClearBtn: function() {
-
-			if ( !this.options.enhanced ) {
-				this._enhanceClear();
-			}
-
-			$.extend( this, {
-				_clearBtn: this.widget().find("a.ui-input-clear")
-			});
-
-			this._bindClearEvents();
-
-			this._toggleClear();
-
-		},
-
-		_enhanceClear: function() {
-
-			this.clearButton().appendTo( this.widget() );
-			this.widget().addClass( "ui-input-has-clear" );
-
-		},
-
-		_bindClearEvents: function() {
-
-			this._on( this._clearBtn, {
-				"click": "_clearBtnClick"
-			});
-
-			this._on({
-				"keyup": "_toggleClear",
-				"change": "_toggleClear",
-				"input": "_toggleClear",
-				"focus": "_toggleClear",
-				"blur": "_toggleClear",
-				"cut": "_toggleClear",
-				"paste": "_toggleClear"
-
-			});
-
-		},
-
-		_unbindClear: function() {
-			this._off( this._clearBtn, "click");
-			this._off( this.element, "keyup change input focus blur cut paste" );
-		},
-
-		_setOptions: function( options ) {
-			this._super( options );
-
-			if ( options.clearBtn !== undefined &&
-				!this.element.is( "textarea, :jqmData(type='range')" ) ) {
-				if ( options.clearBtn ) {
-					this._addClearBtn();
-				} else {
-					this._destroyClear();
-				}
-			}
-
-			if ( options.clearBtnText !== undefined && this._clearBtn !== undefined ) {
-				this._clearBtn.text( options.clearBtnText )
-					.attr("title", options.clearBtnText);
-			}
-		},
-
-		_toggleClear: function() {
-			this._delay( "_toggleClearClass", 0 );
-		},
-
-		_toggleClearClass: function() {
-			this._clearBtn.toggleClass( "ui-input-clear-hidden", !this.element.val() );
-		},
-
-		_destroyClear: function() {
-			this.widget().removeClass( "ui-input-has-clear" );
-			this._unbindClear();
-			this._clearBtn.remove();
-		},
-
-		_destroy: function() {
-			this._super();
-			this._destroyClear();
-		}
-
-	});
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-	$.widget( "mobile.textinput", $.mobile.textinput, {
-		options: {
-			autogrow:true,
-			keyupTimeoutBuffer: 100
-		},
-
-		_create: function() {
-			this._super();
-
-			if ( this.options.autogrow && this.isTextarea ) {
-				this._autogrow();
-			}
-		},
-
-		_autogrow: function() {
-			this.element.addClass( "ui-textinput-autogrow" );
-
-			this._on({
-				"keyup": "_timeout",
-				"change": "_timeout",
-				"input": "_timeout",
-				"paste": "_timeout"
-			});
-
-			// Attach to the various you-have-become-visible notifications that the
-			// various framework elements emit.
-			// TODO: Remove all but the updatelayout handler once #6426 is fixed.
-			this._on( true, this.document, {
-
-				// TODO: Move to non-deprecated event
-				"pageshow": "_handleShow",
-				"popupbeforeposition": "_handleShow",
-				"updatelayout": "_handleShow",
-				"panelopen": "_handleShow"
-			});
-		},
-
-		// Synchronously fix the widget height if this widget's parents are such
-		// that they show/hide content at runtime. We still need to check whether
-		// the widget is actually visible in case it is contained inside multiple
-		// such containers. For example: panel contains collapsible contains
-		// autogrow textinput. The panel may emit "panelopen" indicating that its
-		// content has become visible, but the collapsible is still collapsed, so
-		// the autogrow textarea is still not visible.
-		_handleShow: function( event ) {
-			if ( $.contains( event.target, this.element[ 0 ] ) &&
-				this.element.is( ":visible" ) ) {
-
-				if ( event.type !== "popupbeforeposition" ) {
-					this.element
-						.addClass( "ui-textinput-autogrow-resize" )
-						.animationComplete(
-							$.proxy( function() {
-								this.element.removeClass( "ui-textinput-autogrow-resize" );
-							}, this ),
-						"transition" );
-				}
-				this._prepareHeightUpdate();
-			}
-		},
-
-		_unbindAutogrow: function() {
-			this.element.removeClass( "ui-textinput-autogrow" );
-			this._off( this.element, "keyup change input paste" );
-			this._off( this.document,
-				"pageshow popupbeforeposition updatelayout panelopen" );
-		},
-
-		keyupTimeout: null,
-
-		_prepareHeightUpdate: function( delay ) {
-			if ( this.keyupTimeout ) {
-				clearTimeout( this.keyupTimeout );
-			}
-			if ( delay === undefined ) {
-				this._updateHeight();
-			} else {
-				this.keyupTimeout = this._delay( "_updateHeight", delay );
-			}
-		},
-
-		_timeout: function() {
-			this._prepareHeightUpdate( this.options.keyupTimeoutBuffer );
-		},
-
-		_updateHeight: function() {
-			var paddingTop, paddingBottom, paddingHeight, scrollHeight, clientHeight,
-				borderTop, borderBottom, borderHeight, height,
-				scrollTop = this.window.scrollTop();
-			this.keyupTimeout = 0;
-
-			// IE8 textareas have the onpage property - others do not
-			if ( !( "onpage" in this.element[ 0 ] ) ) {
-				this.element.css({
-					"height": 0,
-					"min-height": 0,
-					"max-height": 0
-				});
-			}
-
-			scrollHeight = this.element[ 0 ].scrollHeight;
-			clientHeight = this.element[ 0 ].clientHeight;
-			borderTop = parseFloat( this.element.css( "border-top-width" ) );
-			borderBottom = parseFloat( this.element.css( "border-bottom-width" ) );
-			borderHeight = borderTop + borderBottom;
-			height = scrollHeight + borderHeight + 15;
-
-			// Issue 6179: Padding is not included in scrollHeight and
-			// clientHeight by Firefox if no scrollbar is visible. Because
-			// textareas use the border-box box-sizing model, padding should be
-			// included in the new (assigned) height. Because the height is set
-			// to 0, clientHeight == 0 in Firefox. Therefore, we can use this to
-			// check if padding must be added.
-			if ( clientHeight === 0 ) {
-				paddingTop = parseFloat( this.element.css( "padding-top" ) );
-				paddingBottom = parseFloat( this.element.css( "padding-bottom" ) );
-				paddingHeight = paddingTop + paddingBottom;
-
-				height += paddingHeight;
-			}
-
-			this.element.css({
-				"height": height,
-				"min-height": "",
-				"max-height": ""
-			});
-
-			this.window.scrollTop( scrollTop );
-		},
-
-		refresh: function() {
-			if ( this.options.autogrow && this.isTextarea ) {
-				this._updateHeight();
-			}
-		},
-
-		_setOptions: function( options ) {
-
-			this._super( options );
-
-			if ( options.autogrow !== undefined && this.isTextarea ) {
-				if ( options.autogrow ) {
-					this._autogrow();
-				} else {
-					this._unbindAutogrow();
-				}
-			}
-		}
-
-	});
-})( jQuery );
-
-(function( $, undefined ) {
-
-$.widget( "mobile.selectmenu", $.extend( {
-	initSelector: "select:not( :jqmData(role='slider')):not( :jqmData(role='flipswitch') )",
-
-	options: {
-		theme: null,
-		icon: "carat-d",
-		iconpos: "right",
-		inline: false,
-		corners: true,
-		shadow: true,
-		iconshadow: false, /* TODO: Deprecated in 1.4, remove in 1.5. */
-		overlayTheme: null,
-		dividerTheme: null,
-		hidePlaceholderMenuItems: true,
-		closeText: "Close",
-		nativeMenu: true,
-		// XXX Sven added wrapper class
-		wrapperClass: null,
-		// This option defaults to true on iOS devices.
-		preventFocusZoom: /iPhone|iPad|iPod/.test( navigator.platform ) && navigator.userAgent.indexOf( "AppleWebKit" ) > -1,
-		mini: false
-	},
-
-	_button: function() {
-		return $( "<div/>" );
-	},
-
-	_setDisabled: function( value ) {
-		this.element.attr( "disabled", value );
-		this.button.attr( "aria-disabled", value );
-		return this._setOption( "disabled", value );
-	},
-
-	_focusButton : function() {
-		var self = this;
-
-		setTimeout( function() {
-			self.button.focus();
-		}, 40);
-	},
-
-	_selectOptions: function() {
-		return this.select.find( "option" );
-	},
-
-	// setup items that are generally necessary for select menu extension
-	_preExtension: function() {
-		var inline = this.options.inline || this.element.jqmData( "inline" ),
-			mini = this.options.mini || this.element.jqmData( "mini" ),
-			classes = "";
-		// TODO: Post 1.1--once we have time to test thoroughly--any classes manually applied to the original element should be carried over to the enhanced element, with an `-enhanced` suffix. See https://github.com/jquery/jquery-mobile/issues/3577
-		/* if ( $el[0].className.length ) {
-			classes = $el[0].className;
-		} */
-		if ( !!~this.element[0].className.indexOf( "ui-btn-left" ) ) {
-			classes = " ui-btn-left";
-		}
-
-		if (  !!~this.element[0].className.indexOf( "ui-btn-right" ) ) {
-			classes = " ui-btn-right";
-		}
-
-		if ( inline ) {
-			classes += " ui-btn-inline";
-		}
-		if ( mini ) {
-			classes += " ui-mini";
-		}
-
-		this.select = this.element.removeClass( "ui-btn-left ui-btn-right" ).wrap( "<div class='ui-select" + classes + "'>" );
-		this.selectId  = this.select.attr( "id" ) || ( "select-" + this.uuid );
-		this.buttonId = this.selectId + "-button";
-		this.label = $( "label[for='"+ this.selectId +"']" );
-		this.isMultiple = this.select[ 0 ].multiple;
-	},
-
-	_destroy: function() {
-		var wrapper = this.element.parents( ".ui-select" );
-		if ( wrapper.length > 0 ) {
-			if ( wrapper.is( ".ui-btn-left, .ui-btn-right" ) ) {
-				this.element.addClass( wrapper.hasClass( "ui-btn-left" ) ? "ui-btn-left" : "ui-btn-right" );
-			}
-			this.element.insertAfter( wrapper );
-			wrapper.remove();
-		}
-	},
-
-	_create: function() {
-		this._preExtension();
-
-		this.button = this._button();
-
-		var self = this,
-
-			options = this.options,
-
-			iconpos = options.icon ? ( options.iconpos || this.select.jqmData( "iconpos" ) ) : false,
-
-			button = this.button
-				.insertBefore( this.select )
-				.attr( "id", this.buttonId )
-				.addClass( "ui-btn" +
-					( options.icon ? ( " ui-icon-" + options.icon + " ui-btn-icon-" + iconpos +
-					( options.iconshadow ? " ui-shadow-icon" : "" ) ) :	"" ) + /* TODO: Remove in 1.5. */
-					( options.theme ? " ui-btn-" + options.theme : "" ) +
-					( options.corners ? " ui-corner-all" : "" ) +
-					// XXX Sven wrapper class
-					( options.shadow ? " ui-shadow " : "" ) +
-					( options.wrapperClass || "" ) );
-
-		this.setButtonText();
-
-		// Opera does not properly support opacity on select elements
-		// In Mini, it hides the element, but not its text
-		// On the desktop,it seems to do the opposite
-		// for these reasons, using the nativeMenu option results in a full native select in Opera
-		if ( options.nativeMenu && window.opera && window.opera.version ) {
-			button.addClass( "ui-select-nativeonly" );
-		}
-
-		// Add counter for multi selects
-		if ( this.isMultiple ) {
-			this.buttonCount = $( "<span>" )
-				.addClass( "ui-li-count ui-body-inherit" )
-				.hide()
-				.appendTo( button.addClass( "ui-li-has-count" ) );
-		}
-
-		// Disable if specified
-		if ( options.disabled || this.element.attr( "disabled" )) {
-			this.disable();
-		}
-
-		// Events on native select
-		this.select.change(function() {
-			self.refresh();
-
-			if ( !!options.nativeMenu ) {
-				this.blur();
-			}
-		});
-
-		this._handleFormReset();
-
-		this._on( this.button, {
-			keydown: "_handleKeydown"
-		});
-
-		this.build();
-	},
-
-	build: function() {
-		var self = this;
-
-		this.select
-			.appendTo( self.button )
-			.bind( "vmousedown", function() {
-				// Add active class to button
-				self.button.addClass( $.mobile.activeBtnClass );
-			})
-			.bind( "focus", function() {
-				self.button.addClass( $.mobile.focusClass );
-			})
-			.bind( "blur", function() {
-				self.button.removeClass( $.mobile.focusClass );
-			})
-			.bind( "focus vmouseover", function() {
-				self.button.trigger( "vmouseover" );
-			})
-			.bind( "vmousemove", function() {
-				// Remove active class on scroll/touchmove
-				self.button.removeClass( $.mobile.activeBtnClass );
-			})
-			.bind( "change blur vmouseout", function() {
-				self.button.trigger( "vmouseout" )
-					.removeClass( $.mobile.activeBtnClass );
-			});
-
-		// In many situations, iOS will zoom into the select upon tap, this prevents that from happening
-		self.button.bind( "vmousedown", function() {
-			if ( self.options.preventFocusZoom ) {
-					$.mobile.zoom.disable( true );
-			}
-		});
-		self.label.bind( "click focus", function() {
-			if ( self.options.preventFocusZoom ) {
-					$.mobile.zoom.disable( true );
-			}
-		});
-		self.select.bind( "focus", function() {
-			if ( self.options.preventFocusZoom ) {
-					$.mobile.zoom.disable( true );
-			}
-		});
-		self.button.bind( "mouseup", function() {
-			if ( self.options.preventFocusZoom ) {
-				setTimeout(function() {
-					$.mobile.zoom.enable( true );
-				}, 0 );
-			}
-		});
-		self.select.bind( "blur", function() {
-			if ( self.options.preventFocusZoom ) {
-				$.mobile.zoom.enable( true );
-			}
-		});
-
-	},
-
-	selected: function() {
-		return this._selectOptions().filter( ":selected" );
-	},
-
-	selectedIndices: function() {
-		var self = this;
-
-		return this.selected().map(function() {
-			return self._selectOptions().index( this );
-		}).get();
-	},
-
-	setButtonText: function() {
-		var self = this,
-			selected = this.selected(),
-			text = this.placeholder,
-			span = $( document.createElement( "span" ) );
-
-		this.button.children( "span" ).not( ".ui-li-count" ).remove().end().end().prepend( (function() {
-			if ( selected.length ) {
-				text = selected.map(function() {
-					return $( this ).text();
-				}).get().join( ", " );
-			} else {
-				text = self.placeholder;
-			}
-
-			if ( text ) {
-				span.text( text );
-			} else {
-
-				// Set the contents to &nbsp; which we write as &#160; to be XHTML compliant - see gh-6699
-				span.html( "&#160;" );
-			}
-
-			// TODO possibly aggregate multiple select option classes
-			return span
-				.addClass( self.select.attr( "class" ) )
-				.addClass( selected.attr( "class" ) )
-				.removeClass( "ui-screen-hidden" );
-		})());
-	},
-
-	setButtonCount: function() {
-		var selected = this.selected();
-
-		// multiple count inside button
-		if ( this.isMultiple ) {
-			this.buttonCount[ selected.length > 1 ? "show" : "hide" ]().text( selected.length );
-		}
-	},
-
-	_handleKeydown: function( /* event */ ) {
-		this._delay( "_refreshButton" );
-	},
-
-	_reset: function() {
-		this.refresh();
-	},
-
-	_refreshButton: function() {
-		this.setButtonText();
-		this.setButtonCount();
-	},
-
-	refresh: function() {
-		this._refreshButton();
-	},
-
-	// open and close preserved in native selects
-	// to simplify users code when looping over selects
-	open: $.noop,
-	close: $.noop,
-
-	disable: function() {
-		this._setDisabled( true );
-		this.button.addClass( "ui-state-disabled" );
-	},
-
-	enable: function() {
-		this._setDisabled( false );
-		this.button.removeClass( "ui-state-disabled" );
-	}
-}, $.mobile.behaviors.formReset ) );
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-$.mobile.links = function( target ) {
-
-	//links within content areas, tests included with page
-	$( target )
-		.find( "a" )
-		.jqmEnhanceable()
-		.filter( ":jqmData(rel='popup')[href][href!='']" )
-		.each( function() {
-			// Accessibility info for popups
-			var element = this,
-				idref = element.getAttribute( "href" ).substring( 1 );
-
-			if ( idref ) {
-				element.setAttribute( "aria-haspopup", true );
-				element.setAttribute( "aria-owns", idref );
-				element.setAttribute( "aria-expanded", false );
-			}
-		})
-		.end()
-		.not( ".ui-btn, :jqmData(role='none'), :jqmData(role='nojs')" )
-		.addClass( "ui-link" );
-
-};
-
-})( jQuery );
-
-
-(function( $, undefined ) {
-
-function fitSegmentInsideSegment( windowSize, segmentSize, offset, desired ) {
-	var returnValue = desired;
-
-	if ( windowSize < segmentSize ) {
-		// Center segment if it's bigger than the window
-		returnValue = offset + ( windowSize - segmentSize ) / 2;
-	} else {
-		// Otherwise center it at the desired coordinate while keeping it completely inside the window
-		returnValue = Math.min( Math.max( offset, desired - segmentSize / 2 ), offset + windowSize - segmentSize );
-	}
-
-	return returnValue;
-}
-
-function getWindowCoordinates( theWindow ) {
-	return {
-		x: theWindow.scrollLeft(),
-		y: theWindow.scrollTop(),
-		cx: ( theWindow[ 0 ].innerWidth || theWindow.width() ),
-		cy: ( theWindow[ 0 ].innerHeight || theWindow.height() )
-	};
-}
-
-$.widget( "mobile.popup", {
-	options: {
-		wrapperClass: null,
-		theme: null,
-		overlayTheme: null,
-		shadow: true,
-		corners: true,
-		transition: "none",
-		positionTo: "origin",
-		tolerance: null,
-		closeLinkSelector: "a:jqmData(rel='back')",
-		closeLinkEvents: "click.popup",
-		navigateEvents: "navigate.popup",
-		closeEvents: "navigate.popup pagebeforechange.popup",
-		dismissible: true,
-		enhanced: false,
-
-		// NOTE Windows Phone 7 has a scroll position caching issue that
-		//      requires us to disable popup history management by default
-		//      https://github.com/jquery/jquery-mobile/issues/4784
-		//
-		// NOTE this option is modified in _create!
-		history: !$.mobile.browser.oldIE
-	},
-
-	// When the user depresses the mouse/finger on an element inside the popup while the popup is
-	// open, we ignore resize events for a short while. This prevents #6961.
-	_handleDocumentVmousedown: function( theEvent ) {
-		if ( this._isOpen && $.contains( this._ui.container[ 0 ], theEvent.target ) ) {
-			this._ignoreResizeEvents();
-		}
-	},
-
-	_create: function() {
-		var theElement = this.element,
-			myId = theElement.attr( "id" ),
-			currentOptions = this.options;
-
-		// We need to adjust the history option to be false if there's no AJAX nav.
-		// We can't do it in the option declarations because those are run before
-		// it is determined whether there shall be AJAX nav.
-		currentOptions.history = currentOptions.history && $.mobile.ajaxEnabled && $.mobile.hashListeningEnabled;
-
-		this._on( this.document, {
-			"vmousedown": "_handleDocumentVmousedown"
-		});
-
-		// Define instance variables
-		$.extend( this, {
-			_scrollTop: 0,
-			_page: theElement.closest( ".ui-page" ),
-			_ui: null,
-			_fallbackTransition: "",
-			_currentTransition: false,
-			_prerequisites: null,
-			_isOpen: false,
-			_tolerance: null,
-			_resizeData: null,
-			_ignoreResizeTo: 0,
-			_orientationchangeInProgress: false
-		});
-
-		if ( this._page.length === 0 ) {
-			this._page = $( "body" );
-		}
-
-		if ( currentOptions.enhanced ) {
-			this._ui = {
-				container: theElement.parent(),
-				screen: theElement.parent().prev(),
-				placeholder: $( this.document[ 0 ].getElementById( myId + "-placeholder" ) )
-			};
-		} else {
-			this._ui = this._enhance( theElement, myId );
-			this._applyTransition( currentOptions.transition );
-		}
-		this
-			._setTolerance( currentOptions.tolerance )
-			._ui.focusElement = this._ui.container;
-
-		// Event handlers
-		this._on( this._ui.screen, { "vclick": "_eatEventAndClose" } );
-		this._on( this.window, {
-			orientationchange: $.proxy( this, "_handleWindowOrientationchange" ),
-			resize: $.proxy( this, "_handleWindowResize" ),
-			keyup: $.proxy( this, "_handleWindowKeyUp" )
-		});
-		this._on( this.document, { "focusin": "_handleDocumentFocusIn" } );
-	},
-
-	_enhance: function( theElement, myId ) {
-		var currentOptions = this.options,
-			wrapperClass = currentOptions.wrapperClass,
-			ui = {
-				screen: $( "<div class='ui-screen-hidden ui-popup-screen " +
-				this._themeClassFromOption( "ui-overlay-", currentOptions.overlayTheme ) + "'></div>" ),
-				placeholder: $( "<div style='display: none;'><!-- placeholder --></div>" ),
-				container: $( "<div class='ui-popup-container ui-popup-hidden ui-popup-truncate" +
-					( wrapperClass ? ( " " + wrapperClass ) : "" ) + "'></div>" )
-			},
-			fragment = this.document[ 0 ].createDocumentFragment();
-
-		fragment.appendChild( ui.screen[ 0 ] );
-		fragment.appendChild( ui.container[ 0 ] );
-
-		if ( myId ) {
-			ui.screen.attr( "id", myId + "-screen" );
-			ui.container.attr( "id", myId + "-popup" );
-			ui.placeholder
-				.attr( "id", myId + "-placeholder" )
-				.html( "<!-- placeholder for " + myId + " -->" );
-		}
-
-		// Apply the proto
-		this._page[ 0 ].appendChild( fragment );
-		// Leave a placeholder where the element used to be
-		ui.placeholder.insertAfter( theElement );
-		theElement
-			.detach()
-			.addClass( "ui-popup " +
-				this._themeClassFromOption( "ui-body-", currentOptions.theme ) + " " +
-				( currentOptions.shadow ? "ui-overlay-shadow " : "" ) +
-				( currentOptions.corners ? "ui-corner-all " : "" ) )
-			.appendTo( ui.container );
-
-		return ui;
-	},
-
-	_eatEventAndClose: function( theEvent ) {
-		theEvent.preventDefault();
-		theEvent.stopImmediatePropagation();
-		if ( this.options.dismissible ) {
-			this.close();
-		}
-		return false;
-	},
-
-	// Make sure the screen covers the entire document - CSS is sometimes not
-	// enough to accomplish this.
-	_resizeScreen: function() {
-		var screen = this._ui.screen,
-			popupHeight = this._ui.container.outerHeight( true ),
-			screenHeight = screen.removeAttr( "style" ).height(),
-
-			// Subtracting 1 here is necessary for an obscure Andrdoid 4.0 bug where
-			// the browser hangs if the screen covers the entire document :/
-			documentHeight = this.document.height() - 1;
-
-		if ( screenHeight < documentHeight ) {
-			screen.height( documentHeight );
-		} else if ( popupHeight > screenHeight ) {
-			screen.height( popupHeight );
-		}
-	},
-
-	_handleWindowKeyUp: function( theEvent ) {
-		if ( this._isOpen && theEvent.keyCode === $.mobile.keyCode.ESCAPE ) {
-			return this._eatEventAndClose( theEvent );
-		}
-	},
-
-	_expectResizeEvent: function() {
-		var windowCoordinates = getWindowCoordinates( this.window );
-
-		if ( this._resizeData ) {
-			if ( windowCoordinates.x === this._resizeData.windowCoordinates.x &&
-				windowCoordinates.y === this._resizeData.windowCoordinates.y &&
-				windowCoordinates.cx === this._resizeData.windowCoordinates.cx &&
-				windowCoordinates.cy === this._resizeData.windowCoordinates.cy ) {
-				// timeout not refreshed
-				return false;
-			} else {
-				// clear existing timeout - it will be refreshed below
-				clearTimeout( this._resizeData.timeoutId );
-			}
-		}
-
-		this._resizeData = {
-			timeoutId: this._delay( "_resizeTimeout", 200 ),
-			windowCoordinates: windowCoordinates
-		};
-
-		return true;
-	},
-
-	_resizeTimeout: function() {
-		if ( this._isOpen ) {
-			if ( !this._expectResizeEvent() ) {
-				if ( this._ui.container.hasClass( "ui-popup-hidden" ) ) {
-					// effectively rapid-open the popup while leaving the screen intact
-					this._ui.container.removeClass( "ui-popup-hidden ui-popup-truncate" );
-					this.reposition( { positionTo: "window" } );
-					this._ignoreResizeEvents();
-				}
-
-				this._resizeScreen();
-				this._resizeData = null;
-				this._orientationchangeInProgress = false;
-			}
-		} else {
-			this._resizeData = null;
-			this._orientationchangeInProgress = false;
-		}
-	},
-
-	_stopIgnoringResizeEvents: function() {
-		this._ignoreResizeTo = 0;
-	},
-
-	_ignoreResizeEvents: function() {
-		if ( this._ignoreResizeTo ) {
-			clearTimeout( this._ignoreResizeTo );
-		}
-		this._ignoreResizeTo = this._delay( "_stopIgnoringResizeEvents", 1000 );
-	},
-
-	_handleWindowResize: function(/* theEvent */) {
-		if ( this._isOpen && this._ignoreResizeTo === 0 ) {
-			if ( ( this._expectResizeEvent() || this._orientationchangeInProgress ) &&
-				!this._ui.container.hasClass( "ui-popup-hidden" ) ) {
-				// effectively rapid-close the popup while leaving the screen intact
-				this._ui.container
-					.addClass( "ui-popup-hidden ui-popup-truncate" )
-					.removeAttr( "style" );
-			}
-		}
-	},
-
-	_handleWindowOrientationchange: function(/* theEvent */) {
-		if ( !this._orientationchangeInProgress && this._isOpen && this._ignoreResizeTo === 0 ) {
-			this._expectResizeEvent();
-			this._orientationchangeInProgress = true;
-		}
-	},
-
-	// When the popup is open, attempting to focus on an element that is not a
-	// child of the popup will redirect focus to the popup
-	_handleDocumentFocusIn: function( theEvent ) {
-		var target,
-			targetElement = theEvent.target,
-			ui = this._ui;
-
-		if ( !this._isOpen ) {
-			return;
-		}
-
-		if ( targetElement !== ui.container[ 0 ] ) {
-			target = $( targetElement );
-			if ( 0 === target.parents().filter( ui.container[ 0 ] ).length ) {
-				$( this.document[ 0 ].activeElement ).one( "focus", function(/* theEvent */) {
-					if ( targetElement.nodeName.toLowerCase() !== "body" ) {
-				            target.blur();
-				        }
-				});
-				ui.focusElement.focus();
-				theEvent.preventDefault();
-				theEvent.stopImmediatePropagation();
-				return false;
-			} else if ( ui.focusElement[ 0 ] === ui.container[ 0 ] ) {
-				ui.focusElement = target;
-			}
-		}
-
-		this._ignoreResizeEvents();
-	},
-
-	_themeClassFromOption: function( prefix, value ) {
-		return ( value ? ( value === "none" ? "" : ( prefix + value ) ) : ( prefix + "inherit" ) );
-	},
-
-	_applyTransition: function( value ) {
-		if ( value ) {
-			this._ui.container.removeClass( this._fallbackTransition );
-			if ( value !== "none" ) {
-				this._fallbackTransition = $.mobile._maybeDegradeTransition( value );
-				if ( this._fallbackTransition === "none" ) {
-					this._fallbackTransition = "";
-				}
-				this._ui.container.addClass( this._fallbackTransition );
-			}
-		}
-
-		return this;
-	},
-
-	_setOptions: function( newOptions ) {
-		var currentOptions = this.options,
-			theElement = this.element,
-			screen = this._ui.screen;
-
-		if ( newOptions.wrapperClass !== undefined ) {
-			this._ui.container
-				.removeClass( currentOptions.wrapperClass )
-				.addClass( newOptions.wrapperClass );
-		}
-
-		if ( newOptions.theme !== undefined ) {
-			theElement
-				.removeClass( this._themeClassFromOption( "ui-body-", currentOptions.theme ) )
-				.addClass( this._themeClassFromOption( "ui-body-", newOptions.theme ) );
-		}
-
-		if ( newOptions.overlayTheme !== undefined ) {
-			screen
-				.removeClass( this._themeClassFromOption( "ui-overlay-", currentOptions.overlayTheme ) )
-				.addClass( this._themeClassFromOption( "ui-overlay-", newOptions.overlayTheme ) );
-
-			if ( this._isOpen ) {
-				screen.addClass( "in" );
-			}
-		}
-
-		if ( newOptions.shadow !== undefined ) {
-			theElement.toggleClass( "ui-overlay-shadow", newOptions.shadow );
-		}
-
-		if ( newOptions.corners !== undefined ) {
-			theElement.toggleClass( "ui-corner-all", newOptions.corners );
-		}
-
-		if ( newOptions.transition !== undefined ) {
-			if ( !this._currentTransition ) {
-				this._applyTransition( newOptions.transition );
-			}
-		}
-
-		if ( newOptions.tolerance !== undefined ) {
-			this._setTolerance( newOptions.tolerance );
-		}
-
-		if ( newOptions.disabled !== undefined ) {
-			if ( newOptions.disabled ) {
-				this.close();
-			}
-		}
-
-		return this._super( newOptions );
-	},
-
-	_setTolerance: function( value ) {
-		var tol = { t: 30, r: 15, b: 30, l: 15 },
-			ar;
-
-		if ( value !== undefined ) {
-			ar = String( value ).split( "," );
-
-			$.each( ar, function( idx, val ) { ar[ idx ] = parseInt( val, 10 ); } );
-
-			switch( ar.length ) {
-				// All values are to be the same
-				case 1:
-					if ( !isNaN( ar[ 0 ] ) ) {
-						tol.t = tol.r = tol.b = tol.l = ar[ 0 ];
-					}
-					break;
-
-				// The first value denotes top/bottom tolerance, and the second value denotes left/right tolerance
-				case 2:
-					if ( !isNaN( ar[ 0 ] ) ) {
-						tol.t = tol.b = ar[ 0 ];
-					}
-					if ( !isNaN( ar[ 1 ] ) ) {
-						tol.l = tol.r = ar[ 1 ];
-					}
-					break;
-
-				// The array contains values in the order top, right, bottom, left
-				case 4:
-					if ( !isNaN( ar[ 0 ] ) ) {
-						tol.t = ar[ 0 ];
-					}
-					if ( !isNaN( ar[ 1 ] ) ) {
-						tol.r = ar[ 1 ];
-					}
-					if ( !isNaN( ar[ 2 ] ) ) {
-						tol.b = ar[ 2 ];
-					}
-					if ( !isNaN( ar[ 3 ] ) ) {
-						tol.l = ar[ 3 ];
-					}
-					break;
-
-				default:
-					break;
-			}
-		}
-
-		this._tolerance = tol;
-		return this;
-	},
-
-	_clampPopupWidth: function( infoOnly ) {
-		var menuSize,
-			windowCoordinates = getWindowCoordinates( this.window ),
-			// rectangle within which the popup must fit
-			rectangle = {
-				x: this._tolerance.l,
-				y: windowCoordinates.y + this._tolerance.t,
-				cx: windowCoordinates.cx - this._tolerance.l - this._tolerance.r,
-				cy: windowCoordinates.cy - this._tolerance.t - this._tolerance.b
-			};
-
-		if ( !infoOnly ) {
-			// Clamp the width of the menu before grabbing its size
-			this._ui.container.css( "max-width", rectangle.cx );
-		}
-
-		menuSize = {
-			cx: this._ui.container.outerWidth( true ),
-			cy: this._ui.container.outerHeight( true )
-		};
-
-		return { rc: rectangle, menuSize: menuSize };
-	},
-
-	_calculateFinalLocation: function( desired, clampInfo ) {
-		var returnValue,
-			rectangle = clampInfo.rc,
-			menuSize = clampInfo.menuSize;
-
-		// Center the menu over the desired coordinates, while not going outside
-		// the window tolerances. This will center wrt. the window if the popup is
-		// too large.
-		returnValue = {
-			left: fitSegmentInsideSegment( rectangle.cx, menuSize.cx, rectangle.x, desired.x ),
-			top: fitSegmentInsideSegment( rectangle.cy, menuSize.cy, rectangle.y, desired.y )
-		};
-
-		// Make sure the top of the menu is visible
-		returnValue.top = Math.max( 0, returnValue.top );
-
-		// If the height of the menu is smaller than the height of the document
-		// align the bottom with the bottom of the document
-
-		returnValue.top -= Math.min( returnValue.top,
-			Math.max( 0, returnValue.top + menuSize.cy - this.document.height() ) );
-
-		return returnValue;
-	},
-
-	// Try and center the overlay over the given coordinates
-	_placementCoords: function( desired ) {
-		return this._calculateFinalLocation( desired, this._clampPopupWidth() );
-	},
-
-	_createPrerequisites: function( screenPrerequisite, containerPrerequisite, whenDone ) {
-		var prerequisites,
-			self = this;
-
-		// It is important to maintain both the local variable prerequisites and
-		// self._prerequisites. The local variable remains in the closure of the
-		// functions which call the callbacks passed in. The comparison between the
-		// local variable and self._prerequisites is necessary, because once a
-		// function has been passed to .animationComplete() it will be called next
-		// time an animation completes, even if that's not the animation whose end
-		// the function was supposed to catch (for example, if an abort happens
-		// during the opening animation, the .animationComplete handler is not
-		// called for that animation anymore, but the handler remains attached, so
-		// it is called the next time the popup is opened - making it stale.
-		// Comparing the local variable prerequisites to the widget-level variable
-		// self._prerequisites ensures that callbacks triggered by a stale
-		// .animationComplete will be ignored.
-
-		prerequisites = {
-			screen: $.Deferred(),
-			container: $.Deferred()
-		};
-
-		prerequisites.screen.then( function() {
-			if ( prerequisites === self._prerequisites ) {
-				screenPrerequisite();
-			}
-		});
-
-		prerequisites.container.then( function() {
-			if ( prerequisites === self._prerequisites ) {
-				containerPrerequisite();
-			}
-		});
-
-		$.when( prerequisites.screen, prerequisites.container ).done( function() {
-			if ( prerequisites === self._prerequisites ) {
-				self._prerequisites = null;
-				whenDone();
-			}
-		});
-
-		self._prerequisites = prerequisites;
-	},
-
-	_animate: function( args ) {
-		// NOTE before removing the default animation of the screen
-		//      this had an animate callback that would resolve the deferred
-		//      now the deferred is resolved immediately
-		// TODO remove the dependency on the screen deferred
-		this._ui.screen
-			.removeClass( args.classToRemove )
-			.addClass( args.screenClassToAdd );
-
-		args.prerequisites.screen.resolve();
-
-		if ( args.transition && args.transition !== "none" ) {
-			if ( args.applyTransition ) {
-				this._applyTransition( args.transition );
-			}
-			if ( this._fallbackTransition ) {
-				this._ui.container
-					.addClass( args.containerClassToAdd )
-					.removeClass( args.classToRemove )
-					.animationComplete( $.proxy( args.prerequisites.container, "resolve" ) );
-				return;
-			}
-		}
-		this._ui.container.removeClass( args.classToRemove );
-		args.prerequisites.container.resolve();
-	},
-
-	// The desired coordinates passed in will be returned untouched if no reference element can be identified via
-	// desiredPosition.positionTo. Nevertheless, this function ensures that its return value always contains valid
-	// x and y coordinates by specifying the center middle of the window if the coordinates are absent.
-	// options: { x: coordinate, y: coordinate, positionTo: string: "origin", "window", or jQuery selector
-	_desiredCoords: function( openOptions ) {
-		var offset,
-			dst = null,
-			windowCoordinates = getWindowCoordinates( this.window ),
-			x = openOptions.x,
-			y = openOptions.y,
-			pTo = openOptions.positionTo;
-
-		// Establish which element will serve as the reference
-		if ( pTo && pTo !== "origin" ) {
-			if ( pTo === "window" ) {
-				x = windowCoordinates.cx / 2 + windowCoordinates.x;
-				y = windowCoordinates.cy / 2 + windowCoordinates.y;
-			} else {
-				try {
-					dst = $( pTo );
-				} catch( err ) {
-					dst = null;
-				}
-				if ( dst ) {
-					dst.filter( ":visible" );
-					if ( dst.length === 0 ) {
-						dst = null;
-					}
-				}
-			}
-		}
-
-		// If an element was found, center over it
-		if ( dst ) {
-			offset = dst.offset();
-			x = offset.left + dst.outerWidth() / 2;
-			y = offset.top + dst.outerHeight() / 2;
-		}
-
-		// Make sure x and y are valid numbers - center over the window
-		if ( $.type( x ) !== "number" || isNaN( x ) ) {
-			x = windowCoordinates.cx / 2 + windowCoordinates.x;
-		}
-		if ( $.type( y ) !== "number" || isNaN( y ) ) {
-			y = windowCoordinates.cy / 2 + windowCoordinates.y;
-		}
-
-		return { x: x, y: y };
-	},
-
-	_reposition: function( openOptions ) {
-		// We only care about position-related parameters for repositioning
-		openOptions = {
-			x: openOptions.x,
-			y: openOptions.y,
-			positionTo: openOptions.positionTo
-		};
-		this._trigger( "beforeposition", undefined, openOptions );
-		this._ui.container.offset( this._placementCoords( this._desiredCoords( openOptions ) ) );
-	},
-
-	reposition: function( openOptions ) {
-		if ( this._isOpen ) {
-			this._reposition( openOptions );
-		}
-	},
-
-	_openPrerequisitesComplete: function() {
-		var id = this.element.attr( "id" );
-
-		this._ui.container.addClass( "ui-popup-active" );
-		this._isOpen = true;
-		this._resizeScreen();
-		this._ui.container.attr( "tabindex", "0" ).focus();
-		this._ignoreResizeEvents();
-		if ( id ) {
-			this.document.find( "[aria-haspopup='true'][aria-owns='" +  id + "']" ).attr( "aria-expanded", true );
-		}
-		this._trigger( "afteropen" );
-	},
-
-	_open: function( options ) {
-		var openOptions = $.extend( {}, this.options, options ),
-			// TODO move blacklist to private method
-			androidBlacklist = ( function() {
-				var ua = navigator.userAgent,
-					// Rendering engine is Webkit, and capture major version
-					wkmatch = ua.match( /AppleWebKit\/([0-9\.]+)/ ),
-					wkversion = !!wkmatch && wkmatch[ 1 ],
-					androidmatch = ua.match( /Android (\d+(?:\.\d+))/ ),
-					andversion = !!androidmatch && androidmatch[ 1 ],
-					chromematch = ua.indexOf( "Chrome" ) > -1;
-
-				// Platform is Android, WebKit version is greater than 534.13 ( Android 3.2.1 ) and not Chrome.
-				if ( androidmatch !== null && andversion === "4.0" && wkversion && wkversion > 534.13 && !chromematch ) {
-					return true;
-				}
-				return false;
-			}());
-
-		// Count down to triggering "popupafteropen" - we have two prerequisites:
-		// 1. The popup window animation completes (container())
-		// 2. The screen opacity animation completes (screen())
-		this._createPrerequisites(
-			$.noop,
-			$.noop,
-			$.proxy( this, "_openPrerequisitesComplete" ) );
-
-		this._currentTransition = openOptions.transition;
-		this._applyTransition( openOptions.transition );
-
-		this._ui.screen.removeClass( "ui-screen-hidden" );
-		this._ui.container.removeClass( "ui-popup-truncate" );
-
-		// Give applications a chance to modify the contents of the container before it appears
-		this._reposition( openOptions );
-
-		this._ui.container.removeClass( "ui-popup-hidden" );
-
-		if ( this.options.overlayTheme && androidBlacklist ) {
-			/* TODO: The native browser on Android 4.0.X ("Ice Cream Sandwich") suffers from an issue where the popup overlay appears to be z-indexed above the popup itself when certain other styles exist on the same page -- namely, any element set to `position: fixed` and certain types of input. These issues are reminiscent of previously uncovered bugs in older versions of Android's native browser: https://github.com/scottjehl/Device-Bugs/issues/3
-			This fix closes the following bugs ( I use "closes" with reluctance, and stress that this issue should be revisited as soon as possible ):
-			https://github.com/jquery/jquery-mobile/issues/4816
-			https://github.com/jquery/jquery-mobile/issues/4844
-			https://github.com/jquery/jquery-mobile/issues/4874
-			*/
-
-			// TODO sort out why this._page isn't working
-			this.element.closest( ".ui-page" ).addClass( "ui-popup-open" );
-		}
-		this._animate({
-			additionalCondition: true,
-			transition: openOptions.transition,
-			classToRemove: "",
-			screenClassToAdd: "in",
-			containerClassToAdd: "in",
-			applyTransition: false,
-			prerequisites: this._prerequisites
-		});
-	},
-
-	_closePrerequisiteScreen: function() {
-		this._ui.screen
-			.removeClass( "out" )
-			.addClass( "ui-screen-hidden" );
-	},
-
-	_closePrerequisiteContainer: function() {
-		this._ui.container
-			.removeClass( "reverse out" )
-			.addClass( "ui-popup-hidden ui-popup-truncate" )
-			.removeAttr( "style" );
-	},
-
-	_closePrerequisitesDone: function() {
-		var container = this._ui.container,
-			id = this.element.attr( "id" );
-
-		container.removeAttr( "tabindex" );
-
-		// remove the global mutex for popups
-		$.mobile.popup.active = undefined;
-
-		// Blur elements inside the container, including the container
-		$( ":focus", container[ 0 ] ).add( container[ 0 ] ).blur();
-
-		if ( id ) {
-			this.document.find( "[aria-haspopup='true'][aria-owns='" +  id + "']" ).attr( "aria-expanded", false );
-		}
-
-		// alert users that the popup is closed
-		this._trigger( "afterclose" );
-	},
-
-	_close: function( immediate ) {
-		this._ui.container.removeClass( "ui-popup-active" );
-		this._page.removeClass( "ui-popup-open" );
-
-		this._isOpen = false;
-
-		// Count down to triggering "popupafterclose" - we have two prerequisites:
-		// 1. The popup window reverse animation completes (container())
-		// 2. The screen opacity animation completes (screen())
-		this._createPrerequisites(
-			$.proxy( this, "_closePrerequisiteScreen" ),
-			$.proxy( this, "_closePrerequisiteContainer" ),
-			$.proxy( this, "_closePrerequisitesDone" ) );
-
-		this._animate( {
-			additionalCondition: this._ui.screen.hasClass( "in" ),
-			transition: ( immediate ? "none" : ( this._currentTransition ) ),
-			classToRemove: "in",
-			screenClassToAdd: "out",
-			containerClassToAdd: "reverse out",
-			applyTransition: true,
-			prerequisites: this._prerequisites
-		});
-	},
-
-	_unenhance: function() {
-		if ( this.options.enhanced ) {
-			return;
-		}
-
-		// Put the element back to where the placeholder was and remove the "ui-popup" class
-		this._setOptions( { theme: $.mobile.popup.prototype.options.theme } );
-		this.element
-			// Cannot directly insertAfter() - we need to detach() first, because
-			// insertAfter() will do nothing if the payload div was not attached
-			// to the DOM at the time the widget was created, and so the payload
-			// will remain inside the container even after we call insertAfter().
-			// If that happens and we remove the container a few lines below, we
-			// will cause an infinite recursion - #5244
-			.detach()
-			.insertAfter( this._ui.placeholder )
-			.removeClass( "ui-popup ui-overlay-shadow ui-corner-all ui-body-inherit" );
-		this._ui.screen.remove();
-		this._ui.container.remove();
-		this._ui.placeholder.remove();
-	},
-
-	_destroy: function() {
-		if ( $.mobile.popup.active === this ) {
-			this.element.one( "popupafterclose", $.proxy( this, "_unenhance" ) );
-			this.close();
-		} else {
-			this._unenhance();
-		}
-
-		return this;
-	},
-
-	_closePopup: function( theEvent, data ) {
-		var parsedDst, toUrl,
-			currentOptions = this.options,
-			immediate = false;
-
-		if ( ( theEvent && theEvent.isDefaultPrevented() ) || $.mobile.popup.active !== this ) {
-			return;
-		}
-
-		// restore location on screen
-		window.scrollTo( 0, this._scrollTop );
-
-		if ( theEvent && theEvent.type === "pagebeforechange" && data ) {
-			// Determine whether we need to rapid-close the popup, or whether we can
-			// take the time to run the closing transition
-			if ( typeof data.toPage === "string" ) {
-				parsedDst = data.toPage;
-			} else {
-				parsedDst = data.toPage.jqmData( "url" );
-			}
-			parsedDst = $.mobile.path.parseUrl( parsedDst );
-			toUrl = parsedDst.pathname + parsedDst.search + parsedDst.hash;
-
-			if ( this._myUrl !== $.mobile.path.makeUrlAbsolute( toUrl ) ) {
-				// Going to a different page - close immediately
-				immediate = true;
-			} else {
-				theEvent.preventDefault();
-			}
-		}
-
-		// remove nav bindings
-		this.window.off( currentOptions.closeEvents );
-		// unbind click handlers added when history is disabled
-		this.element.undelegate( currentOptions.closeLinkSelector, currentOptions.closeLinkEvents );
-
-		this._close( immediate );
-	},
-
-	// any navigation event after a popup is opened should close the popup
-	// NOTE the pagebeforechange is bound to catch navigation events that don't
-	//      alter the url (eg, dialogs from popups)
-	_bindContainerClose: function() {
-		this.window
-			.on( this.options.closeEvents, $.proxy( this, "_closePopup" ) );
-	},
-
-	widget: function() {
-		return this._ui.container;
-	},
-
-	// TODO no clear deliniation of what should be here and
-	// what should be in _open. Seems to be "visual" vs "history" for now
-	open: function( options ) {
-		var url, hashkey, activePage, currentIsDialog, hasHash, urlHistory,
-			self = this,
-			currentOptions = this.options;
-
-		// make sure open is idempotent
-		if ( $.mobile.popup.active || currentOptions.disabled ) {
-			return this;
-		}
-
-		// set the global popup mutex
-		$.mobile.popup.active = this;
-		this._scrollTop = this.window.scrollTop();
-
-		// if history alteration is disabled close on navigate events
-		// and leave the url as is
-		if ( !( currentOptions.history ) ) {
-			self._open( options );
-			self._bindContainerClose();
-
-			// When histoy is disabled we have to grab the data-rel
-			// back link clicks so we can close the popup instead of
-			// relying on history to do it for us
-			self.element
-				.delegate( currentOptions.closeLinkSelector, currentOptions.closeLinkEvents, function( theEvent ) {
-					self.close();
-					theEvent.preventDefault();
-				});
-
-			return this;
-		}
-
-		// cache some values for min/readability
-		urlHistory = $.mobile.navigate.history;
-		hashkey = $.mobile.dialogHashKey;
-		activePage = $.mobile.activePage;
-		currentIsDialog = ( activePage ? activePage.hasClass( "ui-dialog" ) : false );
-		this._myUrl = url = urlHistory.getActive().url;
-		hasHash = ( url.indexOf( hashkey ) > -1 ) && !currentIsDialog && ( urlHistory.activeIndex > 0 );
-
-		if ( hasHash ) {
-			self._open( options );
-			self._bindContainerClose();
-			return this;
-		}
-
-		// if the current url has no dialog hash key proceed as normal
-		// otherwise, if the page is a dialog simply tack on the hash key
-		if ( url.indexOf( hashkey ) === -1 && !currentIsDialog ) {
-			url = url + (url.indexOf( "#" ) > -1 ? hashkey : "#" + hashkey);
-		} else {
-			url = $.mobile.path.parseLocation().hash + hashkey;
-		}
-
-		// swallow the the initial navigation event, and bind for the next
-		this.window.one( "beforenavigate", function( theEvent ) {
-			theEvent.preventDefault();
-			self._open( options );
-			self._bindContainerClose();
-		});
-
-		this.urlAltered = true;
-		$.mobile.navigate( url, { role: "dialog" } );
-
-		return this;
-	},
-
-	close: function() {
-		// make sure close is idempotent
-		if ( $.mobile.popup.active !== this ) {
-			return this;
-		}
-
-		this._scrollTop = this.window.scrollTop();
-
-		if ( this.options.history && this.urlAltered ) {
-			$.mobile.back();
-			this.urlAltered = false;
-		} else {
-			// simulate the nav bindings having fired
-			this._closePopup();
-		}
-
-		return this;
-	}
-});
-
-// TODO this can be moved inside the widget
-$.mobile.popup.handleLink = function( $link ) {
-	var offset,
-		path = $.mobile.path,
-
-		// NOTE make sure to get only the hash from the href because ie7 (wp7)
-		//      returns the absolute href in this case ruining the element selection
-		popup = $( path.hashToSelector( path.parseUrl( $link.attr( "href" ) ).hash ) ).first();
-
-	if ( popup.length > 0 && popup.data( "mobile-popup" ) ) {
-		offset = $link.offset();
-		popup.popup( "open", {
-			x: offset.left + $link.outerWidth() / 2,
-			y: offset.top + $link.outerHeight() / 2,
-			transition: $link.jqmData( "transition" ),
-			positionTo: $link.jqmData( "position-to" )
-		});
-	}
-
-	//remove after delay
-	setTimeout( function() {
-		$link.removeClass( $.mobile.activeBtnClass );
-	}, 300 );
-};
-
-// TODO move inside _create
-$.mobile.document.on( "pagebeforechange", function( theEvent, data ) {
-	if ( data.options.role === "popup" ) {
-		$.mobile.popup.handleLink( data.options.link );
-		theEvent.preventDefault();
-	}
-});
-
-})( jQuery );
-
-/*
-* custom "selectmenu" plugin
-*/
-
-(function( $, undefined ) {
-
-var unfocusableItemSelector = ".ui-disabled,.ui-state-disabled,.ui-li-divider,.ui-screen-hidden,:jqmData(role='placeholder')",
-	goToAdjacentItem = function( item, target, direction ) {
-		var adjacent = item[ direction + "All" ]()
-			.not( unfocusableItemSelector )
-			.first();
-
-		// if there's a previous option, focus it
-		if ( adjacent.length ) {
-			target
-				.blur()
-				.attr( "tabindex", "-1" );
-
-			adjacent.find( "a" ).first().focus();
-		}
-	};
-
-$.widget( "mobile.selectmenu", $.mobile.selectmenu, {
-	_create: function() {
-		var o = this.options;
-
-		// Custom selects cannot exist inside popups, so revert the "nativeMenu"
-		// option to true if a parent is a popup
-		o.nativeMenu = o.nativeMenu || ( this.element.parents( ":jqmData(role='popup'),:mobile-popup" ).length > 0 );
-
-		return this._super();
-	},
-
-	_handleSelectFocus: function() {
-		this.element.blur();
-		this.button.focus();
-	},
-
-	_handleKeydown: function( event ) {
-		this._super( event );
-		this._handleButtonVclickKeydown( event );
-	},
-
-	_handleButtonVclickKeydown: function( event ) {
-		if ( this.options.disabled || this.isOpen || this.options.nativeMenu ) {
-			return;
-		}
-
-		if (event.type === "vclick" ||
-				event.keyCode && (event.keyCode === $.mobile.keyCode.ENTER || event.keyCode === $.mobile.keyCode.SPACE)) {
-
-			this._decideFormat();
-			if ( this.menuType === "overlay" ) {
-				this.button.attr( "href", "#" + this.popupId ).attr( "data-" + ( $.mobile.ns || "" ) + "rel", "popup" );
-			} else {
-				this.button.attr( "href", "#" + this.dialogId ).attr( "data-" + ( $.mobile.ns || "" ) + "rel", "dialog" );
-			}
-			this.isOpen = true;
-			// Do not prevent default, so the navigation may have a chance to actually open the chosen format
-		}
-	},
-
-	_handleListFocus: function( e ) {
-		var params = ( e.type === "focusin" ) ?
-			{ tabindex: "0", event: "vmouseover" }:
-			{ tabindex: "-1", event: "vmouseout" };
-
-		$( e.target )
-			.attr( "tabindex", params.tabindex )
-			.trigger( params.event );
-	},
-
-	_handleListKeydown: function( event ) {
-		var target = $( event.target ),
-			li = target.closest( "li" );
-
-		// switch logic based on which key was pressed
-		switch ( event.keyCode ) {
-			// up or left arrow keys
-		case 38:
-			goToAdjacentItem( li, target, "prev" );
-			return false;
-			// down or right arrow keys
-		case 40:
-			goToAdjacentItem( li, target, "next" );
-			return false;
-			// If enter or space is pressed, trigger click
-		case 13:
-		case 32:
-			target.trigger( "click" );
-			return false;
-		}
-	},
-
-	_handleMenuPageHide: function() {
-
-		// After the dialog's done, we may want to trigger change if the value has actually changed
-		this._delayedTrigger();
-
-		// TODO centralize page removal binding / handling in the page plugin.
-		// Suggestion from @jblas to do refcounting
-		//
-		// TODO extremely confusing dependency on the open method where the pagehide.remove
-		// bindings are stripped to prevent the parent page from disappearing. The way
-		// we're keeping pages in the DOM right now sucks
-		//
-		// rebind the page remove that was unbound in the open function
-		// to allow for the parent page removal from actions other than the use
-		// of a dialog sized custom select
-		//
-		// doing this here provides for the back button on the custom select dialog
-		this.thisPage.page( "bindRemove" );
-	},
-
-	_handleHeaderCloseClick: function() {
-		if ( this.menuType === "overlay" ) {
-			this.close();
-			return false;
-		}
-	},
-
-	_handleListItemClick: function( event ) {
-		var listItem = $( event.target ).closest( "li" ),
-
-			// Index of option tag to be selected
-			oldIndex = this.select[ 0 ].selectedIndex,
-			newIndex = $.mobile.getAttribute( listItem, "option-index" ),
-			option = this._selectOptions().eq( newIndex )[ 0 ];
-
-		// Toggle selected status on the tag for multi selects
-		option.selected = this.isMultiple ? !option.selected : true;
-
-		// Toggle checkbox class for multiple selects
-		if ( this.isMultiple ) {
-			listItem.find( "a" )
-				.toggleClass( "ui-checkbox-on", option.selected )
-				.toggleClass( "ui-checkbox-off", !option.selected );
-		}
-
-		// If it's not a multiple select, trigger change after it has finished closing
-		if ( !this.isMultiple && oldIndex !== newIndex ) {
-			this._triggerChange = true;
-		}
-
-		// Trigger change if it's a multiple select
-		// Hide custom select for single selects only - otherwise focus clicked item
-		// We need to grab the clicked item the hard way, because the list may have been rebuilt
-		if ( this.isMultiple ) {
-			this.select.trigger( "change" );
-			this.list.find( "li:not(.ui-li-divider)" ).eq( newIndex )
-				.find( "a" ).first().focus();
-		}
-		else {
-			this.close();
-		}
-
-		event.preventDefault();
-	},
-
-	build: function() {
-		var selectId, popupId, dialogId, label, thisPage, isMultiple, menuId,
-			themeAttr, overlayTheme, overlayThemeAttr, dividerThemeAttr,
-			menuPage, listbox, list, header, headerTitle, menuPageContent,
-			menuPageClose, headerClose,
-			o = this.options;
-
-		if ( o.nativeMenu ) {
-			return this._super();
-		}
-
-		selectId = this.selectId;
-		popupId = selectId + "-listbox";
-		dialogId = selectId + "-dialog";
-		label = this.label;
-		thisPage = this.element.closest( ".ui-page" );
-		isMultiple = this.element[ 0 ].multiple;
-		menuId = selectId + "-menu";
-		themeAttr = o.theme ? ( " data-" + $.mobile.ns + "theme='" + o.theme + "'" ) : "";
-		overlayTheme = o.overlayTheme || o.theme || null;
-		overlayThemeAttr = overlayTheme ? ( " data-" + $.mobile.ns +
-			"overlay-theme='" + overlayTheme + "'" ) : "";
-		dividerThemeAttr = ( o.dividerTheme && isMultiple ) ? ( " data-" + $.mobile.ns + "divider-theme='" + o.dividerTheme + "'" ) : "";
-		menuPage = $( "<div data-" + $.mobile.ns + "role='dialog' class='ui-selectmenu' id='" + dialogId + "'" + themeAttr + overlayThemeAttr + ">" +
-			"<div data-" + $.mobile.ns + "role='header'>" +
-			"<div class='ui-title'></div>"+
-			"</div>"+
-			"<div data-" + $.mobile.ns + "role='content'></div>"+
-			"</div>" );
-		listbox = $( "<div" + themeAttr + overlayThemeAttr + " id='" + popupId +
-				"' class='ui-selectmenu'></div>" )
-			.insertAfter( this.select )
-			.popup();
-		list = $( "<ul class='ui-selectmenu-list' id='" + menuId + "' role='listbox' aria-labelledby='" + this.buttonId + "'" + themeAttr + dividerThemeAttr + "></ul>" ).appendTo( listbox );
-		header = $( "<div class='ui-header ui-bar-" + ( o.theme ? o.theme : "inherit" ) + "'></div>" ).prependTo( listbox );
-		headerTitle = $( "<h1 class='ui-title'></h1>" ).appendTo( header );
-
-		if ( this.isMultiple ) {
-			headerClose = $( "<a>", {
-				"role": "button",
-				"text": o.closeText,
-				"href": "#",
-				"class": "ui-btn ui-corner-all ui-btn-left ui-btn-icon-notext ui-icon-delete"
-			}).appendTo( header );
-		}
-
-		$.extend( this, {
-			selectId: selectId,
-			menuId: menuId,
-			popupId: popupId,
-			dialogId: dialogId,
-			thisPage: thisPage,
-			menuPage: menuPage,
-			label: label,
-			isMultiple: isMultiple,
-			theme: o.theme,
-			listbox: listbox,
-			list: list,
-			header: header,
-			headerTitle: headerTitle,
-			headerClose: headerClose,
-			menuPageContent: menuPageContent,
-			menuPageClose: menuPageClose,
-			placeholder: ""
-		});
-
-		// Create list from select, update state
-		this.refresh();
-
-		if ( this._origTabIndex === undefined ) {
-			// Map undefined to false, because this._origTabIndex === undefined
-			// indicates that we have not yet checked whether the select has
-			// originally had a tabindex attribute, whereas false indicates that
-			// we have checked the select for such an attribute, and have found
-			// none present.
-			this._origTabIndex = ( this.select[ 0 ].getAttribute( "tabindex" ) === null ) ? false : this.select.attr( "tabindex" );
-		}
-		this.select.attr( "tabindex", "-1" );
-		this._on( this.select, { focus : "_handleSelectFocus" } );
-
-		// Button events
-		this._on( this.button, {
-			vclick: "_handleButtonVclickKeydown"
-		});
-
-		// Events for list items
-		this.list.attr( "role", "listbox" );
-		this._on( this.list, {
-			"focusin": "_handleListFocus",
-			"focusout": "_handleListFocus",
-			"keydown": "_handleListKeydown",
-			"click li:not(.ui-disabled,.ui-state-disabled,.ui-li-divider)": "_handleListItemClick"
-		});
-
-		// button refocus ensures proper height calculation
-		// by removing the inline style and ensuring page inclusion
-		this._on( this.menuPage, { pagehide: "_handleMenuPageHide" } );
-
-		// Events on the popup
-		this._on( this.listbox, { popupafterclose: "_popupClosed" } );
-
-		// Close button on small overlays
-		if ( this.isMultiple ) {
-			this._on( this.headerClose, { click: "_handleHeaderCloseClick" } );
-		}
-
-		return this;
-	},
-
-	_popupClosed: function() {
-		this.close();
-		this._delayedTrigger();
-	},
-
-	_delayedTrigger: function() {
-		if ( this._triggerChange ) {
-			this.element.trigger( "change" );
-		}
-		this._triggerChange = false;
-	},
-
-	_isRebuildRequired: function() {
-		var list = this.list.find( "li" ),
-			options = this._selectOptions().not( ".ui-screen-hidden" );
-
-		// TODO exceedingly naive method to determine difference
-		// ignores value changes etc in favor of a forcedRebuild
-		// from the user in the refresh method
-		return options.text() !== list.text();
-	},
-
-	selected: function() {
-		return this._selectOptions().filter( ":selected:not( :jqmData(placeholder='true') )" );
-	},
-
-	refresh: function( force ) {
-		var self, indices;
-
-		if ( this.options.nativeMenu ) {
-			return this._super( force );
-		}
-
-		self = this;
-		if ( force || this._isRebuildRequired() ) {
-			self._buildList();
-		}
-
-		indices = this.selectedIndices();
-
-		self.setButtonText();
-		self.setButtonCount();
-
-		self.list.find( "li:not(.ui-li-divider)" )
-			.find( "a" ).removeClass( $.mobile.activeBtnClass ).end()
-			.attr( "aria-selected", false )
-			.each(function( i ) {
-
-				if ( $.inArray( i, indices ) > -1 ) {
-					var item = $( this );
-
-					// Aria selected attr
-					item.attr( "aria-selected", true );
-
-					// Multiple selects: add the "on" checkbox state to the icon
-					if ( self.isMultiple ) {
-						item.find( "a" ).removeClass( "ui-checkbox-off" ).addClass( "ui-checkbox-on" );
-					} else {
-						if ( item.hasClass( "ui-screen-hidden" ) ) {
-							item.next().find( "a" ).addClass( $.mobile.activeBtnClass );
-						} else {
-							item.find( "a" ).addClass( $.mobile.activeBtnClass );
-						}
-					}
-				}
-			});
-	},
-
-	close: function() {
-		if ( this.options.disabled || !this.isOpen ) {
-			return;
-		}
-
-		var self = this;
-
-		if ( self.menuType === "page" ) {
-			self.menuPage.dialog( "close" );
-			self.list.appendTo( self.listbox );
-		} else {
-			self.listbox.popup( "close" );
-		}
-
-		self._focusButton();
-		// allow the dialog to be closed again
-		self.isOpen = false;
-	},
-
-	open: function() {
-		this.button.click();
-	},
-
-	_focusMenuItem: function() {
-		var selector = this.list.find( "a." + $.mobile.activeBtnClass );
-		if ( selector.length === 0 ) {
-			selector = this.list.find( "li:not(" + unfocusableItemSelector + ") a.ui-btn" );
-		}
-		selector.first().focus();
-	},
-
-	_decideFormat: function() {
-		var self = this,
-			$window = this.window,
-			selfListParent = self.list.parent(),
-			menuHeight = selfListParent.outerHeight(),
-			scrollTop = $window.scrollTop(),
-			btnOffset = self.button.offset().top,
-			screenHeight = $window.height();
-
-		if ( menuHeight > screenHeight - 80 || !$.support.scrollTop ) {
-
-			self.menuPage.appendTo( $.mobile.pageContainer ).page();
-			self.menuPageContent = self.menuPage.find( ".ui-content" );
-			self.menuPageClose = self.menuPage.find( ".ui-header a" );
-
-			// prevent the parent page from being removed from the DOM,
-			// otherwise the results of selecting a list item in the dialog
-			// fall into a black hole
-			self.thisPage.unbind( "pagehide.remove" );
-
-			//for WebOS/Opera Mini (set lastscroll using button offset)
-			if ( scrollTop === 0 && btnOffset > screenHeight ) {
-				self.thisPage.one( "pagehide", function() {
-					$( this ).jqmData( "lastScroll", btnOffset );
-				});
-			}
-
-			self.menuPage.one( {
-				pageshow: $.proxy( this, "_focusMenuItem" ),
-				pagehide: $.proxy( this, "close" )
-			});
-
-			self.menuType = "page";
-			self.menuPageContent.append( self.list );
-			self.menuPage
-				.find( "div .ui-title" )
-					.text( self.label.getEncodedText() || self.placeholder );
-		} else {
-			self.menuType = "overlay";
-
-			self.listbox.one( { popupafteropen: $.proxy( this, "_focusMenuItem" ) } );
-		}
-	},
-
-	_buildList: function() {
-		var self = this,
-			o = this.options,
-			placeholder = this.placeholder,
-			needPlaceholder = true,
-			dataIcon = "false",
-			$options, numOptions, select,
-			dataPrefix = "data-" + $.mobile.ns,
-			dataIndexAttr = dataPrefix + "option-index",
-			dataIconAttr = dataPrefix + "icon",
-			dataRoleAttr = dataPrefix + "role",
-			dataPlaceholderAttr = dataPrefix + "placeholder",
-			fragment = document.createDocumentFragment(),
-			isPlaceholderItem = false,
-			optGroup,
-			i,
-			option, $option, parent, text, anchor, classes,
-			optLabel, divider, item;
-
-		self.list.empty().filter( ".ui-listview" ).listview( "destroy" );
-		$options = this._selectOptions();
-		numOptions = $options.length;
-		select = this.select[ 0 ];
-
-		for ( i = 0; i < numOptions;i++, isPlaceholderItem = false) {
-			option = $options[i];
-			$option = $( option );
-
-			// Do not create options based on ui-screen-hidden select options
-			if ( $option.hasClass( "ui-screen-hidden" ) ) {
-				continue;
-			}
-
-			parent = option.parentNode;
-			classes = [];
-
-			// Although using .text() here raises the risk that, when we later paste this into the
-			// list item we end up pasting possibly malicious things like <script> tags, that risk
-			// only arises if we do something like $( "<li><a href='#'>" + text + "</a></li>" ). We
-			// don't do that. We do document.createTextNode( text ) instead, which guarantees that
-			// whatever we paste in will end up as text, with characters like <, > and & escaped.
-			text = $option.text();
-			anchor = document.createElement( "a" );
-			anchor.setAttribute( "href", "#" );
-			anchor.appendChild( document.createTextNode( text ) );
-
-			// Are we inside an optgroup?
-			if ( parent !== select && parent.nodeName.toLowerCase() === "optgroup" ) {
-				optLabel = parent.getAttribute( "label" );
-				if ( optLabel !== optGroup ) {
-					divider = document.createElement( "li" );
-					divider.setAttribute( dataRoleAttr, "list-divider" );
-					divider.setAttribute( "role", "option" );
-					divider.setAttribute( "tabindex", "-1" );
-					divider.appendChild( document.createTextNode( optLabel ) );
-					fragment.appendChild( divider );
-					optGroup = optLabel;
-				}
-			}
-
-			if ( needPlaceholder && ( !option.getAttribute( "value" ) || text.length === 0 || $option.jqmData( "placeholder" ) ) ) {
-				needPlaceholder = false;
-				isPlaceholderItem = true;
-
-				// If we have identified a placeholder, record the fact that it was
-				// us who have added the placeholder to the option and mark it
-				// retroactively in the select as well
-				if ( null === option.getAttribute( dataPlaceholderAttr ) ) {
-					this._removePlaceholderAttr = true;
-				}
-				option.setAttribute( dataPlaceholderAttr, true );
-				if ( o.hidePlaceholderMenuItems ) {
-					classes.push( "ui-screen-hidden" );
-				}
-				if ( placeholder !== text ) {
-					placeholder = self.placeholder = text;
-				}
-			}
-
-			item = document.createElement( "li" );
-			if ( option.disabled ) {
-				classes.push( "ui-state-disabled" );
-				item.setAttribute( "aria-disabled", true );
-			}
-			item.setAttribute( dataIndexAttr, i );
-			item.setAttribute( dataIconAttr, dataIcon );
-			if ( isPlaceholderItem ) {
-				item.setAttribute( dataPlaceholderAttr, true );
-			}
-			item.className = classes.join( " " );
-			item.setAttribute( "role", "option" );
-			anchor.setAttribute( "tabindex", "-1" );
-			if ( this.isMultiple ) {
-				$( anchor ).addClass( "ui-btn ui-checkbox-off ui-btn-icon-right" );
-			}
-
-			item.appendChild( anchor );
-			fragment.appendChild( item );
-		}
-
-		self.list[0].appendChild( fragment );
-
-		// Hide header if it's not a multiselect and there's no placeholder
-		if ( !this.isMultiple && !placeholder.length ) {
-			this.header.addClass( "ui-screen-hidden" );
-		} else {
-			this.headerTitle.text( this.placeholder );
-		}
-
-		// Now populated, create listview
-		self.list.listview();
-	},
-
-	_button: function() {
-		return this.options.nativeMenu ?
-			this._super() :
-			$( "<a>", {
-				"href": "#",
-				"role": "button",
-				// TODO value is undefined at creation
-				"id": this.buttonId,
-				"aria-haspopup": "true",
-
-				// TODO value is undefined at creation
-				"aria-owns": this.menuId
-			});
-	},
-
-	_destroy: function() {
-
-		if ( !this.options.nativeMenu ) {
-			this.close();
-
-			// Restore the tabindex attribute to its original value
-			if ( this._origTabIndex !== undefined ) {
-				if ( this._origTabIndex !== false ) {
-					this.select.attr( "tabindex", this._origTabIndex );
-				} else {
-					this.select.removeAttr( "tabindex" );
-				}
-			}
-
-			// Remove the placeholder attribute if we were the ones to add it
-			if ( this._removePlaceholderAttr ) {
-				this._selectOptions().removeAttr( "data-" + $.mobile.ns + "placeholder" );
-			}
-
-			// Remove the popup
-			this.listbox.remove();
-
-			// Remove the dialog
-			this.menuPage.remove();
-		}
-
-		// Chain up
-		this._super();
-	}
-});
-
-})( jQuery );
-
-
-// buttonMarkup is deprecated as of 1.4.0 and will be removed in 1.5.0.
-
-(function( $, undefined ) {
-
-// General policy: Do not access data-* attributes except during enhancement.
-// In all other cases we determine the state of the button exclusively from its
-// className. That's why optionsToClasses expects a full complement of options,
-// and the jQuery plugin completes the set of options from the default values.
-
-// Map classes to buttonMarkup boolean options - used in classNameToOptions()
-var reverseBoolOptionMap = {
-		"ui-shadow" : "shadow",
-		"ui-corner-all" : "corners",
-		"ui-btn-inline" : "inline",
-		"ui-shadow-icon" : "iconshadow", /* TODO: Remove in 1.5 */
-		"ui-mini" : "mini"
-	},
-	getAttrFixed = function() {
-		var ret = $.mobile.getAttribute.apply( this, arguments );
-
-		return ( ret == null ? undefined : ret );
-	},
-	capitalLettersRE = /[A-Z]/g;
-
-// optionsToClasses:
-// @options: A complete set of options to convert to class names.
-// @existingClasses: extra classes to add to the result
-//
-// Converts @options to buttonMarkup classes and returns the result as an array
-// that can be converted to an element's className with .join( " " ). All
-// possible options must be set inside @options. Use $.fn.buttonMarkup.defaults
-// to get a complete set and use $.extend to override your choice of options
-// from that set.
-function optionsToClasses( options, existingClasses ) {
-	var classes = existingClasses ? existingClasses : [];
-
-	// Add classes to the array - first ui-btn
-	classes.push( "ui-btn" );
-
-	// If there is a theme
-	if ( options.theme ) {
-		classes.push( "ui-btn-" + options.theme );
-	}
-
-	// If there's an icon, add the icon-related classes
-	if ( options.icon ) {
-		classes = classes.concat([
-			"ui-icon-" + options.icon,
-			"ui-btn-icon-" + options.iconpos
-		]);
-		if ( options.iconshadow ) {
-			classes.push( "ui-shadow-icon" ); /* TODO: Remove in 1.5 */
-		}
-	}
-
-	// Add the appropriate class for each boolean option
-	if ( options.inline ) {
-		classes.push( "ui-btn-inline" );
-	}
-	if ( options.shadow ) {
-		classes.push( "ui-shadow" );
-	}
-	if ( options.corners ) {
-		classes.push( "ui-corner-all" );
-	}
-	if ( options.mini ) {
-		classes.push( "ui-mini" );
-	}
-
-	// Create a string from the array and return it
-	return classes;
-}
-
-// classNameToOptions:
-// @classes: A string containing a .className-style space-separated class list
-//
-// Loops over @classes and calculates an options object based on the
-// buttonMarkup-related classes it finds. It records unrecognized classes in an
-// array.
-//
-// Returns: An object containing the following items:
-//
-// "options": buttonMarkup options found to be present because of the
-// presence/absence of corresponding classes
-//
-// "unknownClasses": a string containing all the non-buttonMarkup-related
-// classes found in @classes
-//
-// "alreadyEnhanced": A boolean indicating whether the ui-btn class was among
-// those found to be present
-function classNameToOptions( classes ) {
-	var idx, map, unknownClass,
-		alreadyEnhanced = false,
-		noIcon = true,
-		o = {
-			icon: "",
-			inline: false,
-			shadow: false,
-			corners: false,
-			iconshadow: false,
-			mini: false
-		},
-		unknownClasses = [];
-
-	classes = classes.split( " " );
-
-	// Loop over the classes
-	for ( idx = 0 ; idx < classes.length ; idx++ ) {
-
-		// Assume it's an unrecognized class
-		unknownClass = true;
-
-		// Recognize boolean options from the presence of classes
-		map = reverseBoolOptionMap[ classes[ idx ] ];
-		if ( map !== undefined ) {
-			unknownClass = false;
-			o[ map ] = true;
-
-		// Recognize the presence of an icon and establish the icon position
-		} else if ( classes[ idx ].indexOf( "ui-btn-icon-" ) === 0 ) {
-			unknownClass = false;
-			noIcon = false;
-			o.iconpos = classes[ idx ].substring( 12 );
-
-		// Establish which icon is present
-		} else if ( classes[ idx ].indexOf( "ui-icon-" ) === 0 ) {
-			unknownClass = false;
-			o.icon = classes[ idx ].substring( 8 );
-
-		// Establish the theme - this recognizes one-letter theme swatch names
-		} else if ( classes[ idx ].indexOf( "ui-btn-" ) === 0 && classes[ idx ].length === 8 ) {
-			unknownClass = false;
-			o.theme = classes[ idx ].substring( 7 );
-
-		// Recognize that this element has already been buttonMarkup-enhanced
-		} else if ( classes[ idx ] === "ui-btn" ) {
-			unknownClass = false;
-			alreadyEnhanced = true;
-		}
-
-		// If this class has not been recognized, add it to the list
-		if ( unknownClass ) {
-			unknownClasses.push( classes[ idx ] );
-		}
-	}
-
-	// If a "ui-btn-icon-*" icon position class is absent there cannot be an icon
-	if ( noIcon ) {
-		o.icon = "";
-	}
-
-	return {
-		options: o,
-		unknownClasses: unknownClasses,
-		alreadyEnhanced: alreadyEnhanced
-	};
-}
-
-function camelCase2Hyphenated( c ) {
-	return "-" + c.toLowerCase();
-}
-
-// $.fn.buttonMarkup:
-// DOM: gets/sets .className
-//
-// @options: options to apply to the elements in the jQuery object
-// @overwriteClasses: boolean indicating whether to honour existing classes
-//
-// Calculates the classes to apply to the elements in the jQuery object based on
-// the options passed in. If @overwriteClasses is true, it sets the className
-// property of each element in the jQuery object to the buttonMarkup classes
-// it calculates based on the options passed in.
-//
-// If you wish to preserve any classes that are already present on the elements
-// inside the jQuery object, including buttonMarkup-related classes that were
-// added by a previous call to $.fn.buttonMarkup() or during page enhancement
-// then you should omit @overwriteClasses or set it to false.
-$.fn.buttonMarkup = function( options, overwriteClasses ) {
-	var idx, data, el, retrievedOptions, optionKey,
-		defaults = $.fn.buttonMarkup.defaults;
-
-	for ( idx = 0 ; idx < this.length ; idx++ ) {
-		el = this[ idx ];
-		data = overwriteClasses ?
-
-			// Assume this element is not enhanced and ignore its classes
-			{ alreadyEnhanced: false, unknownClasses: [] } :
-
-			// Otherwise analyze existing classes to establish existing options and
-			// classes
-			classNameToOptions( el.className );
-
-		retrievedOptions = $.extend( {},
-
-			// If the element already has the class ui-btn, then we assume that
-			// it has passed through buttonMarkup before - otherwise, the options
-			// returned by classNameToOptions do not correctly reflect the state of
-			// the element
-			( data.alreadyEnhanced ? data.options : {} ),
-
-			// Finally, apply the options passed in
-			options );
-
-		// If this is the first call on this element, retrieve remaining options
-		// from the data-attributes
-		if ( !data.alreadyEnhanced ) {
-			for ( optionKey in defaults ) {
-				if ( retrievedOptions[ optionKey ] === undefined ) {
-					retrievedOptions[ optionKey ] = getAttrFixed( el,
-						optionKey.replace( capitalLettersRE, camelCase2Hyphenated )
-					);
-				}
-			}
-		}
-
-		el.className = optionsToClasses(
-
-			// Merge all the options and apply them as classes
-			$.extend( {},
-
-				// The defaults form the basis
-				defaults,
-
-				// Add the computed options
-				retrievedOptions
-			),
-
-			// ... and re-apply any unrecognized classes that were found
-			data.unknownClasses ).join( " " );
-		if ( el.tagName.toLowerCase() !== "button" ) {
-			el.setAttribute( "role", "button" );
-		}
-	}
-
-	return this;
-};
-
-// buttonMarkup defaults. This must be a complete set, i.e., a value must be
-// given here for all recognized options
-$.fn.buttonMarkup.defaults = {
-	icon: "",
-	iconpos: "left",
-	theme: null,
-	inline: false,
-	shadow: true,
-	corners: true,
-	iconshadow: false, /* TODO: Remove in 1.5. Option deprecated in 1.4. */
-	mini: false
-};
-
-$.extend( $.fn.buttonMarkup, {
-	initSelector: "a:jqmData(role='button'), .ui-bar > a, .ui-bar > :jqmData(role='controlgroup') > a, button:not(:jqmData(role='navbar') button)"
-});
-
-})( jQuery );
-
-
-(function( $, undefined ) {
-
-$.widget( "mobile.controlgroup", $.extend( {
-	options: {
-		enhanced: false,
-		theme: null,
-		shadow: false,
-		corners: true,
-		excludeInvisible: true,
-		type: "vertical",
-		mini: false
-	},
-
-	_create: function() {
-		var elem = this.element,
-			opts = this.options;
-
-		// Run buttonmarkup
-		if ( $.fn.buttonMarkup ) {
-			this.element.find( $.fn.buttonMarkup.initSelector ).buttonMarkup();
-		}
-		// Enhance child widgets
-		$.each( this._childWidgets, $.proxy( function( number, widgetName ) {
-			if ( $.mobile[ widgetName ] ) {
-				this.element.find( $.mobile[ widgetName ].initSelector ).not( $.mobile.page.prototype.keepNativeSelector() )[ widgetName ]();
-			}
-		}, this ));
-
-		$.extend( this, {
-			_ui: null,
-			_initialRefresh: true
-		});
-
-		if ( opts.enhanced ) {
-			this._ui = {
-				groupLegend: elem.children( ".ui-controlgroup-label" ).children(),
-				childWrapper: elem.children( ".ui-controlgroup-controls" )
-			};
-		} else {
-			this._ui = this._enhance();
-		}
-
-	},
-
-	_childWidgets: [ "checkboxradio", "selectmenu", "button" ],
-
-	_themeClassFromOption: function( value ) {
-		return ( value ? ( value === "none" ? "" : "ui-group-theme-" + value ) : "" );
-	},
-
-	_enhance: function() {
-		var elem = this.element,
-			opts = this.options,
-			ui = {
-				groupLegend: elem.children( "legend" ),
-				childWrapper: elem
-					.addClass( "ui-controlgroup " +
-						"ui-controlgroup-" +
-							( opts.type === "horizontal" ? "horizontal" : "vertical" ) + " " +
-						this._themeClassFromOption( opts.theme ) + " " +
-						( opts.corners ? "ui-corner-all " : "" ) +
-						( opts.mini ? "ui-mini " : "" ) )
-					.wrapInner( "<div " +
-						"class='ui-controlgroup-controls " +
-							( opts.shadow === true ? "ui-shadow" : "" ) + "'></div>" )
-					.children()
-			};
-
-		if ( ui.groupLegend.length > 0 ) {
-			$( "<div role='heading' class='ui-controlgroup-label'></div>" )
-				.append( ui.groupLegend )
-				.prependTo( elem );
-		}
-
-		return ui;
-	},
-
-	_init: function() {
-		this.refresh();
-	},
-
-	_setOptions: function( options ) {
-		var callRefresh, returnValue,
-			elem = this.element;
-
-		// Must have one of horizontal or vertical
-		if ( options.type !== undefined ) {
-			elem
-				.removeClass( "ui-controlgroup-horizontal ui-controlgroup-vertical" )
-				.addClass( "ui-controlgroup-" + ( options.type === "horizontal" ? "horizontal" : "vertical" ) );
-			callRefresh = true;
-		}
-
-		if ( options.theme !== undefined ) {
-			elem
-				.removeClass( this._themeClassFromOption( this.options.theme ) )
-				.addClass( this._themeClassFromOption( options.theme ) );
-		}
-
-		if ( options.corners !== undefined ) {
-			elem.toggleClass( "ui-corner-all", options.corners );
-		}
-
-		if ( options.mini !== undefined ) {
-			elem.toggleClass( "ui-mini", options.mini );
-		}
-
-		if ( options.shadow !== undefined ) {
-			this._ui.childWrapper.toggleClass( "ui-shadow", options.shadow );
-		}
-
-		if ( options.excludeInvisible !== undefined ) {
-			this.options.excludeInvisible = options.excludeInvisible;
-			callRefresh = true;
-		}
-
-		returnValue = this._super( options );
-
-		if ( callRefresh ) {
-			this.refresh();
-		}
-
-		return returnValue;
-	},
-
-	container: function() {
-		return this._ui.childWrapper;
-	},
-
-	refresh: function() {
-		var $el = this.container(),
-			els = $el.find( ".ui-btn" ).not( ".ui-slider-handle" ),
-			create = this._initialRefresh;
-		if ( $.mobile.checkboxradio ) {
-			$el.find( ":mobile-checkboxradio" ).checkboxradio( "refresh" );
-		}
-		this._addFirstLastClasses( els,
-			this.options.excludeInvisible ? this._getVisibles( els, create ) : els,
-			create );
-		this._initialRefresh = false;
-	},
-
-	// Caveat: If the legend is not the first child of the controlgroup at enhance
-	// time, it will be after _destroy().
-	_destroy: function() {
-		var ui, buttons,
-			opts = this.options;
-
-		if ( opts.enhanced ) {
-			return this;
-		}
-
-		ui = this._ui;
-		buttons = this.element
-			.removeClass( "ui-controlgroup " +
-				"ui-controlgroup-horizontal ui-controlgroup-vertical ui-corner-all ui-mini " +
-				this._themeClassFromOption( opts.theme ) )
-			.find( ".ui-btn" )
-			.not( ".ui-slider-handle" );
-
-		this._removeFirstLastClasses( buttons );
-
-		ui.groupLegend.unwrap();
-		ui.childWrapper.children().unwrap();
-	}
-}, $.mobile.behaviors.addFirstLastClasses ) );
-
-})(jQuery);
-
-(function( $, undefined ) {
-
-	$.widget( "mobile.toolbar", {
-		initSelector: ":jqmData(role='footer'), :jqmData(role='header')",
-
-		options: {
-			theme: null,
-			addBackBtn: false,
-			backBtnTheme: null,
-			backBtnText: "Back"
-		},
-
-		_create: function() {
-			var leftbtn, rightbtn,
-				role =  this.element.is( ":jqmData(role='header')" ) ? "header" : "footer",
-				page = this.element.closest( ".ui-page" );
-			if ( page.length === 0 ) {
-				page = false;
-				this._on( this.document, {
-					"pageshow": "refresh"
-				});
-			}
-			$.extend( this, {
-				role: role,
-				page: page,
-				leftbtn: leftbtn,
-				rightbtn: rightbtn
-			});
-			this.element.attr( "role", role === "header" ? "banner" : "contentinfo" ).addClass( "ui-" + role );
-			this.refresh();
-			this._setOptions( this.options );
-		},
-		_setOptions: function( o ) {
-			if ( o.addBackBtn !== undefined ) {
-				this._updateBackButton();
-			}
-			if ( o.backBtnTheme != null ) {
-				this.element
-					.find( ".ui-toolbar-back-btn" )
-					.addClass( "ui-btn ui-btn-" + o.backBtnTheme );
-			}
-			if ( o.backBtnText !== undefined ) {
-				this.element.find( ".ui-toolbar-back-btn .ui-btn-text" ).text( o.backBtnText );
-			}
-			if ( o.theme !== undefined ) {
-				var currentTheme = this.options.theme ? this.options.theme : "inherit",
-					newTheme = o.theme ? o.theme : "inherit";
-
-				this.element.removeClass( "ui-bar-" + currentTheme ).addClass( "ui-bar-" + newTheme );
-			}
-
-			this._super( o );
-		},
-		refresh: function() {
-			if ( this.role === "header" ) {
-				this._addHeaderButtonClasses();
-			}
-			if ( !this.page ) {
-				this._setRelative();
-				if ( this.role === "footer" ) {
-					this.element.appendTo( "body" );
-				} else if ( this.role === "header" ) {
-					this._updateBackButton();
-				}
-			}
-			this._addHeadingClasses();
-			this._btnMarkup();
-		},
-
-		//we only want this to run on non fixed toolbars so make it easy to override
-		_setRelative: function() {
-			$( "[data-"+ $.mobile.ns + "role='page']" ).css({ "position": "relative" });
-		},
-
-		// Deprecated in 1.4. As from 1.5 button classes have to be present in the markup.
-		_btnMarkup: function() {
-			this.element
-				.children( "a" )
-				.filter( ":not([data-" + $.mobile.ns + "role='none'])" )
-				.attr( "data-" + $.mobile.ns + "role", "button" );
-			this.element.trigger( "create" );
-		},
-		// Deprecated in 1.4. As from 1.5 ui-btn-left/right classes have to be present in the markup.
-		_addHeaderButtonClasses: function() {
-			var headerAnchors = this.element.children( "a, button" );
-
-			// Do not mistake a back button for a left toolbar button
-			this.leftbtn = headerAnchors.hasClass( "ui-btn-left" ) &&
-				!headerAnchors.hasClass( "ui-toolbar-back-btn" );
-
-			this.rightbtn = headerAnchors.hasClass( "ui-btn-right" );
-
-			// Filter out right buttons and back buttons
-			this.leftbtn = this.leftbtn ||
-				headerAnchors.eq( 0 )
-					.not( ".ui-btn-right,.ui-toolbar-back-btn" )
-					.addClass( "ui-btn-left" )
-					.length;
-
-			this.rightbtn = this.rightbtn || headerAnchors.eq( 1 ).addClass( "ui-btn-right" ).length;
-		},
-		_updateBackButton: function() {
-			var backButton,
-				options = this.options,
-				theme = options.backBtnTheme || options.theme;
-
-			// Retrieve the back button or create a new, empty one
-			backButton = this._backButton = ( this._backButton || {} );
-
-			// We add a back button only if the option to do so is on
-			if ( this.options.addBackBtn &&
-
-					// This must also be a header toolbar
-					this.role === "header" &&
-
-					// There must be multiple pages in the DOM
-					$( ".ui-page" ).length > 1 &&
-					( this.page ?
-
-						// If the toolbar is internal the page's URL must differ from the hash
-						( this.page[ 0 ].getAttribute( "data-" + $.mobile.ns + "url" ) !==
-							$.mobile.path.stripHash( location.hash ) ) :
-
-						// Otherwise, if the toolbar is external there must be at least one
-						// history item to which one can go back
-						( $.mobile.navigate && $.mobile.navigate.history &&
-							$.mobile.navigate.history.activeIndex > 0 ) ) &&
-
-					// The toolbar does not have a left button
-					!this.leftbtn ) {
-
-				// Skip back button creation if one is already present
-				if ( !backButton.attached ) {
-					backButton.element = ( backButton.element ||
-						$( "<a role='button' href='javascript:void(0);' " +
-							"class='ui-btn ui-corner-all ui-shadow ui-btn-left " +
-								( theme ? "ui-btn-" + theme + " " : "" ) +
-								"ui-toolbar-back-btn ui-icon-carat-l ui-btn-icon-left' " +
-							"data-" + $.mobile.ns + "rel='back'>" + options.backBtnText +
-							"</a>" ) )
-							.prependTo( this.element );
-					backButton.attached = true;
-				}
-
-			// If we are not adding a back button, then remove the one present, if any
-			} else if ( backButton.element ) {
-				backButton.element.detach();
-				backButton.attached = false;
-			}
-		},
-		_addHeadingClasses: function() {
-			this.element.children( "h1, h2, h3, h4, h5, h6" )
-				.addClass( "ui-title" )
-				// Regardless of h element number in src, it becomes h1 for the enhanced page
-				.attr({
-					"role": "heading",
-					"aria-level": "1"
-				});
-		}
-	});
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-	$.widget( "mobile.toolbar", $.mobile.toolbar, {
-		options: {
-			position:null,
-			visibleOnPageShow: true,
-			disablePageZoom: true,
-			transition: "slide", //can be none, fade, slide (slide maps to slideup or slidedown)
-			fullscreen: false,
-			tapToggle: true,
-			tapToggleBlacklist: "a, button, input, select, textarea, .ui-header-fixed, .ui-footer-fixed, .ui-flipswitch, .ui-popup, .ui-panel, .ui-panel-dismiss-open",
-			hideDuringFocus: "input, textarea, select",
-			updatePagePadding: true,
-			trackPersistentToolbars: true,
-
-			// Browser detection! Weeee, here we go...
-			// Unfortunately, position:fixed is costly, not to mention probably impossible, to feature-detect accurately.
-			// Some tests exist, but they currently return false results in critical devices and browsers, which could lead to a broken experience.
-			// Testing fixed positioning is also pretty obtrusive to page load, requiring injected elements and scrolling the window
-			// The following function serves to rule out some popular browsers with known fixed-positioning issues
-			// This is a plugin option like any other, so feel free to improve or overwrite it
-			supportBlacklist: function() {
-				return !$.support.fixedPosition;
-			}
-		},
-
-		_create: function() {
-			this._super();
-			if ( this.options.position === "fixed" && !this.options.supportBlacklist() ) {
-				this._makeFixed();
-			}
-		},
-
-		_makeFixed: function() {
-			this.element.addClass( "ui-"+ this.role +"-fixed" );
-			this.updatePagePadding();
-			this._addTransitionClass();
-			this._bindPageEvents();
-			this._bindToggleHandlers();
-		},
-
-		_setOptions: function( o ) {
-			if ( o.position === "fixed" && this.options.position !== "fixed" ) {
-				this._makeFixed();
-			}
-			if ( this.options.position === "fixed" && !this.options.supportBlacklist() ) {
-				var $page = ( !!this.page )? this.page: ( $(".ui-page-active").length > 0 )? $(".ui-page-active"): $(".ui-page").eq(0);
-
-				if ( o.fullscreen !== undefined) {
-					if ( o.fullscreen ) {
-						this.element.addClass( "ui-"+ this.role +"-fullscreen" );
-						$page.addClass( "ui-page-" + this.role + "-fullscreen" );
-					}
-					// If not fullscreen, add class to page to set top or bottom padding
-					else {
-						this.element.removeClass( "ui-"+ this.role +"-fullscreen" );
-						$page.removeClass( "ui-page-" + this.role + "-fullscreen" ).addClass( "ui-page-" + this.role+ "-fixed" );
-					}
-				}
-			}
-			this._super(o);
-		},
-
-		_addTransitionClass: function() {
-			var tclass = this.options.transition;
-
-			if ( tclass && tclass !== "none" ) {
-				// use appropriate slide for header or footer
-				if ( tclass === "slide" ) {
-					tclass = this.element.hasClass( "ui-header" ) ? "slidedown" : "slideup";
-				}
-
-				this.element.addClass( tclass );
-			}
-		},
-
-		_bindPageEvents: function() {
-			var page = ( !!this.page )? this.element.closest( ".ui-page" ): this.document;
-			//page event bindings
-			// Fixed toolbars require page zoom to be disabled, otherwise usability issues crop up
-			// This method is meant to disable zoom while a fixed-positioned toolbar page is visible
-			this._on( page , {
-				"pagebeforeshow": "_handlePageBeforeShow",
-				"webkitAnimationStart":"_handleAnimationStart",
-				"animationstart":"_handleAnimationStart",
-				"updatelayout": "_handleAnimationStart",
-				"pageshow": "_handlePageShow",
-				"pagebeforehide": "_handlePageBeforeHide"
-			});
-		},
-
-		_handlePageBeforeShow: function( ) {
-			var o = this.options;
-			if ( o.disablePageZoom ) {
-				$.mobile.zoom.disable( true );
-			}
-			if ( !o.visibleOnPageShow ) {
-				this.hide( true );
-			}
-		},
-
-		_handleAnimationStart: function() {
-			if ( this.options.updatePagePadding ) {
-				this.updatePagePadding( ( !!this.page )? this.page: ".ui-page-active" );
-			}
-		},
-
-		_handlePageShow: function() {
-			this.updatePagePadding( ( !!this.page )? this.page: ".ui-page-active" );
-			if ( this.options.updatePagePadding ) {
-				this._on( this.window, { "throttledresize": "updatePagePadding" } );
-			}
-		},
-
-		_handlePageBeforeHide: function( e, ui ) {
-			var o = this.options,
-				thisFooter, thisHeader, nextFooter, nextHeader;
-
-			if ( o.disablePageZoom ) {
-				$.mobile.zoom.enable( true );
-			}
-			if ( o.updatePagePadding ) {
-				this._off( this.window, "throttledresize" );
-			}
-
-			if ( o.trackPersistentToolbars ) {
-				thisFooter = $( ".ui-footer-fixed:jqmData(id)", this.page );
-				thisHeader = $( ".ui-header-fixed:jqmData(id)", this.page );
-				nextFooter = thisFooter.length && ui.nextPage && $( ".ui-footer-fixed:jqmData(id='" + thisFooter.jqmData( "id" ) + "')", ui.nextPage ) || $();
-				nextHeader = thisHeader.length && ui.nextPage && $( ".ui-header-fixed:jqmData(id='" + thisHeader.jqmData( "id" ) + "')", ui.nextPage ) || $();
-
-				if ( nextFooter.length || nextHeader.length ) {
-
-					nextFooter.add( nextHeader ).appendTo( $.mobile.pageContainer );
-
-					ui.nextPage.one( "pageshow", function() {
-						nextHeader.prependTo( this );
-						nextFooter.appendTo( this );
-					});
-				}
-			}
-		},
-
-		_visible: true,
-
-		// This will set the content element's top or bottom padding equal to the toolbar's height
-		updatePagePadding: function( tbPage ) {
-			var $el = this.element,
-				header = ( this.role ==="header" ),
-				pos = parseFloat( $el.css( header ? "top" : "bottom" ) );
-
-			// This behavior only applies to "fixed", not "fullscreen"
-			if ( this.options.fullscreen ) { return; }
-			// tbPage argument can be a Page object or an event, if coming from throttled resize.
-			tbPage = ( tbPage && tbPage.type === undefined && tbPage ) || this.page || $el.closest( ".ui-page" );
-			tbPage = ( !!this.page )? this.page: ".ui-page-active";
-			$( tbPage ).css( "padding-" + ( header ? "top" : "bottom" ), $el.outerHeight() + pos );
-		},
-
-		_useTransition: function( notransition ) {
-			var $win = this.window,
-				$el = this.element,
-				scroll = $win.scrollTop(),
-				elHeight = $el.height(),
-				pHeight = ( !!this.page )? $el.closest( ".ui-page" ).height():$(".ui-page-active").height(),
-				viewportHeight = $.mobile.getScreenHeight();
-
-			return !notransition &&
-				( this.options.transition && this.options.transition !== "none" &&
-				(
-					( this.role === "header" && !this.options.fullscreen && scroll > elHeight ) ||
-					( this.role === "footer" && !this.options.fullscreen && scroll + viewportHeight < pHeight - elHeight )
-				) || this.options.fullscreen
-				);
-		},
-
-		show: function( notransition ) {
-			var hideClass = "ui-fixed-hidden",
-				$el = this.element;
-
-			if ( this._useTransition( notransition ) ) {
-				$el
-					.removeClass( "out " + hideClass )
-					.addClass( "in" )
-					.animationComplete(function () {
-						$el.removeClass( "in" );
-					});
-			}
-			else {
-				$el.removeClass( hideClass );
-			}
-			this._visible = true;
-		},
-
-		hide: function( notransition ) {
-			var hideClass = "ui-fixed-hidden",
-				$el = this.element,
-				// if it's a slide transition, our new transitions need the reverse class as well to slide outward
-				outclass = "out" + ( this.options.transition === "slide" ? " reverse" : "" );
-
-			if ( this._useTransition( notransition ) ) {
-				$el
-					.addClass( outclass )
-					.removeClass( "in" )
-					.animationComplete(function() {
-						$el.addClass( hideClass ).removeClass( outclass );
-					});
-			}
-			else {
-				$el.addClass( hideClass ).removeClass( outclass );
-			}
-			this._visible = false;
-		},
-
-		toggle: function() {
-			this[ this._visible ? "hide" : "show" ]();
-		},
-
-		_bindToggleHandlers: function() {
-			var self = this,
-				o = self.options,
-				delayShow, delayHide,
-				isVisible = true,
-				page = ( !!this.page )? this.page: $(".ui-page");
-
-			// tap toggle
-			page
-				.bind( "vclick", function( e ) {
-					if ( o.tapToggle && !$( e.target ).closest( o.tapToggleBlacklist ).length ) {
-						self.toggle();
-					}
-				})
-				.bind( "focusin focusout", function( e ) {
-					//this hides the toolbars on a keyboard pop to give more screen room and prevent ios bug which
-					//positions fixed toolbars in the middle of the screen on pop if the input is near the top or
-					//bottom of the screen addresses issues #4410 Footer navbar moves up when clicking on a textbox in an Android environment
-					//and issue #4113 Header and footer change their position after keyboard popup - iOS
-					//and issue #4410 Footer navbar moves up when clicking on a textbox in an Android environment
-					if ( screen.width < 1025 && $( e.target ).is( o.hideDuringFocus ) && !$( e.target ).closest( ".ui-header-fixed, .ui-footer-fixed" ).length ) {
-						//Fix for issue #4724 Moving through form in Mobile Safari with "Next" and "Previous" system
-						//controls causes fixed position, tap-toggle false Header to reveal itself
-						// isVisible instead of self._visible because the focusin and focusout events fire twice at the same time
-						// Also use a delay for hiding the toolbars because on Android native browser focusin is direclty followed
-						// by a focusout when a native selects opens and the other way around when it closes.
-						if ( e.type === "focusout" && !isVisible ) {
-							isVisible = true;
-							//wait for the stack to unwind and see if we have jumped to another input
-							clearTimeout( delayHide );
-							delayShow = setTimeout( function() {
-								self.show();
-							}, 0 );
-						} else if ( e.type === "focusin" && !!isVisible ) {
-							//if we have jumped to another input clear the time out to cancel the show.
-							clearTimeout( delayShow );
-							isVisible = false;
-							delayHide = setTimeout( function() {
-								self.hide();
-							}, 0 );
-						}
-					}
-				});
-		},
-
-		_setRelative: function() {
-			if( this.options.position !== "fixed" ){
-				$( "[data-"+ $.mobile.ns + "role='page']" ).css({ "position": "relative" });
-			}
-		},
-
-		_destroy: function() {
-			var $el = this.element,
-				header = $el.hasClass( "ui-header" );
-
-			$el.closest( ".ui-page" ).css( "padding-" + ( header ? "top" : "bottom" ), "" );
-			$el.removeClass( "ui-header-fixed ui-footer-fixed ui-header-fullscreen ui-footer-fullscreen in out fade slidedown slideup ui-fixed-hidden" );
-			$el.closest( ".ui-page" ).removeClass( "ui-page-header-fixed ui-page-footer-fixed ui-page-header-fullscreen ui-page-footer-fullscreen" );
-		}
-
-	});
-})( jQuery );
-
-(function( $, undefined ) {
-	$.widget( "mobile.toolbar", $.mobile.toolbar, {
-
-		_makeFixed: function() {
-			this._super();
-			this._workarounds();
-		},
-
-		//check the browser and version and run needed workarounds
-		_workarounds: function() {
-			var ua = navigator.userAgent,
-			platform = navigator.platform,
-			// Rendering engine is Webkit, and capture major version
-			wkmatch = ua.match( /AppleWebKit\/([0-9]+)/ ),
-			wkversion = !!wkmatch && wkmatch[ 1 ],
-			os = null,
-			self = this;
-			//set the os we are working in if it dosent match one with workarounds return
-			if ( platform.indexOf( "iPhone" ) > -1 || platform.indexOf( "iPad" ) > -1  || platform.indexOf( "iPod" ) > -1 ) {
-				os = "ios";
-			} else if ( ua.indexOf( "Android" ) > -1 ) {
-				os = "android";
-			} else {
-				return;
-			}
-			//check os version if it dosent match one with workarounds return
-			if ( os === "ios" ) {
-				//iOS  workarounds
-				self._bindScrollWorkaround();
-			} else if ( os === "android" && wkversion && wkversion < 534 ) {
-				//Android 2.3 run all Android 2.3 workaround
-				self._bindScrollWorkaround();
-				self._bindListThumbWorkaround();
-			} else {
-				return;
-			}
-		},
-
-		//Utility class for checking header and footer positions relative to viewport
-		_viewportOffset: function() {
-			var $el = this.element,
-				header = $el.hasClass( "ui-header" ),
-				offset = Math.abs( $el.offset().top - this.window.scrollTop() );
-			if ( !header ) {
-				offset = Math.round( offset - this.window.height() + $el.outerHeight() ) - 60;
-			}
-			return offset;
-		},
-
-		//bind events for _triggerRedraw() function
-		_bindScrollWorkaround: function() {
-			var self = this;
-			//bind to scrollstop and check if the toolbars are correctly positioned
-			this._on( this.window, { scrollstop: function() {
-				var viewportOffset = self._viewportOffset();
-				//check if the header is visible and if its in the right place
-				if ( viewportOffset > 2 && self._visible ) {
-					self._triggerRedraw();
-				}
-			}});
-		},
-
-		//this addresses issue #4250 Persistent footer instability in v1.1 with long select lists in Android 2.3.3
-		//and issue #3748 Android 2.x: Page transitions broken when fixed toolbars used
-		//the absolutely positioned thumbnail in a list view causes problems with fixed position buttons above in a nav bar
-		//setting the li's to -webkit-transform:translate3d(0,0,0); solves this problem to avoide potential issues in other
-		//platforms we scope this with the class ui-android-2x-fix
-		_bindListThumbWorkaround: function() {
-			this.element.closest( ".ui-page" ).addClass( "ui-android-2x-fixed" );
-		},
-		//this addresses issues #4337 Fixed header problem after scrolling content on iOS and Android
-		//and device bugs project issue #1 Form elements can lose click hit area in position: fixed containers.
-		//this also addresses not on fixed toolbars page in docs
-		//adding 1px of padding to the bottom then removing it causes a "redraw"
-		//which positions the toolbars correctly (they will always be visually correct)
-		_triggerRedraw: function() {
-			var paddingBottom = parseFloat( $( ".ui-page-active" ).css( "padding-bottom" ) );
-			//trigger page redraw to fix incorrectly positioned fixed elements
-			$( ".ui-page-active" ).css( "padding-bottom", ( paddingBottom + 1 ) + "px" );
-			//if the padding is reset with out a timeout the reposition will not occure.
-			//this is independant of JQM the browser seems to need the time to react.
-			setTimeout( function() {
-				$( ".ui-page-active" ).css( "padding-bottom", paddingBottom + "px" );
-			}, 0 );
-		},
-
-		destroy: function() {
-			this._super();
-			//Remove the class we added to the page previously in android 2.x
-			this.element.closest( ".ui-page-active" ).removeClass( "ui-android-2x-fix" );
-		}
-	});
-
-})( jQuery );
-
-
-( function( $, undefined ) {
-
-var ieHack = ( $.mobile.browser.oldIE && $.mobile.browser.oldIE <= 8 ),
-	uiTemplate = $(
-		"<div class='ui-popup-arrow-guide'></div>" +
-		"<div class='ui-popup-arrow-container" + ( ieHack ? " ie" : "" ) + "'>" +
-			"<div class='ui-popup-arrow'></div>" +
-		"</div>"
-	);
-
-function getArrow() {
-	var clone = uiTemplate.clone(),
-		gd = clone.eq( 0 ),
-		ct = clone.eq( 1 ),
-		ar = ct.children();
-
-	return { arEls: ct.add( gd ), gd: gd, ct: ct, ar: ar };
-}
-
-$.widget( "mobile.popup", $.mobile.popup, {
-	options: {
-
-		arrow: ""
-	},
-
-	_create: function() {
-		var ar,
-			ret = this._super();
-
-		if ( this.options.arrow ) {
-			this._ui.arrow = ar = this._addArrow();
-		}
-
-		return ret;
-	},
-
-	_addArrow: function() {
-		var theme,
-			opts = this.options,
-			ar = getArrow();
-
-		theme = this._themeClassFromOption( "ui-body-", opts.theme );
-		ar.ar.addClass( theme + ( opts.shadow ? " ui-overlay-shadow" : "" ) );
-		ar.arEls.hide().appendTo( this.element );
-
-		return ar;
-	},
-
-	_unenhance: function() {
-		var ar = this._ui.arrow;
-
-		if ( ar ) {
-			ar.arEls.remove();
-		}
-
-		return this._super();
-	},
-
-	// Pretend to show an arrow described by @p and @dir and calculate the
-	// distance from the desired point. If a best-distance is passed in, return
-	// the minimum of the one passed in and the one calculated.
-	_tryAnArrow: function( p, dir, desired, s, best ) {
-		var result, r, diff, desiredForArrow = {}, tip = {};
-
-		// If the arrow has no wiggle room along the edge of the popup, it cannot
-		// be displayed along the requested edge without it sticking out.
-		if ( s.arFull[ p.dimKey ] > s.guideDims[ p.dimKey ] ) {
-			return best;
-		}
-
-		desiredForArrow[ p.fst ] = desired[ p.fst ] +
-			( s.arHalf[ p.oDimKey ] + s.menuHalf[ p.oDimKey ] ) * p.offsetFactor -
-			s.contentBox[ p.fst ] + ( s.clampInfo.menuSize[ p.oDimKey ] - s.contentBox[ p.oDimKey ] ) * p.arrowOffsetFactor;
-		desiredForArrow[ p.snd ] = desired[ p.snd ];
-
-		result = s.result || this._calculateFinalLocation( desiredForArrow, s.clampInfo );
-		r = { x: result.left, y: result.top };
-
-		tip[ p.fst ] = r[ p.fst ] + s.contentBox[ p.fst ] + p.tipOffset;
-		tip[ p.snd ] = Math.max( result[ p.prop ] + s.guideOffset[ p.prop ] + s.arHalf[ p.dimKey ],
-			Math.min( result[ p.prop ] + s.guideOffset[ p.prop ] + s.guideDims[ p.dimKey ] - s.arHalf[ p.dimKey ],
-				desired[ p.snd ] ) );
-
-		diff = Math.abs( desired.x - tip.x ) + Math.abs( desired.y - tip.y );
-		if ( !best || diff < best.diff ) {
-			// Convert tip offset to coordinates inside the popup
-			tip[ p.snd ] -= s.arHalf[ p.dimKey ] + result[ p.prop ] + s.contentBox[ p.snd ];
-			best = { dir: dir, diff: diff, result: result, posProp: p.prop, posVal: tip[ p.snd ] };
-		}
-
-		return best;
-	},
-
-	_getPlacementState: function( clamp ) {
-		var offset, gdOffset,
-			ar = this._ui.arrow,
-			state = {
-				clampInfo: this._clampPopupWidth( !clamp ),
-				arFull: { cx: ar.ct.width(), cy: ar.ct.height() },
-				guideDims: { cx: ar.gd.width(), cy: ar.gd.height() },
-				guideOffset: ar.gd.offset()
-			};
-
-		offset = this.element.offset();
-
-		ar.gd.css( { left: 0, top: 0, right: 0, bottom: 0 } );
-		gdOffset = ar.gd.offset();
-		state.contentBox = {
-			x: gdOffset.left - offset.left,
-			y: gdOffset.top - offset.top,
-			cx: ar.gd.width(),
-			cy: ar.gd.height()
-		};
-		ar.gd.removeAttr( "style" );
-
-		// The arrow box moves between guideOffset and guideOffset + guideDims - arFull
-		state.guideOffset = { left: state.guideOffset.left - offset.left, top: state.guideOffset.top - offset.top };
-		state.arHalf = { cx: state.arFull.cx / 2, cy: state.arFull.cy / 2 };
-		state.menuHalf = { cx: state.clampInfo.menuSize.cx / 2, cy: state.clampInfo.menuSize.cy / 2 };
-
-		return state;
-	},
-
-	_placementCoords: function( desired ) {
-		var state, best, params, elOffset, bgRef,
-			optionValue = this.options.arrow,
-			ar = this._ui.arrow;
-
-		if ( !ar ) {
-			return this._super( desired );
-		}
-
-		ar.arEls.show();
-
-		bgRef = {};
-		state = this._getPlacementState( true );
-		params = {
-			"l": { fst: "x", snd: "y", prop: "top", dimKey: "cy", oDimKey: "cx", offsetFactor: 1, tipOffset:  -state.arHalf.cx, arrowOffsetFactor: 0 },
-			"r": { fst: "x", snd: "y", prop: "top", dimKey: "cy", oDimKey: "cx", offsetFactor: -1, tipOffset: state.arHalf.cx + state.contentBox.cx, arrowOffsetFactor: 1 },
-			"b": { fst: "y", snd: "x", prop: "left", dimKey: "cx", oDimKey: "cy", offsetFactor: -1, tipOffset: state.arHalf.cy + state.contentBox.cy, arrowOffsetFactor: 1 },
-			"t": { fst: "y", snd: "x", prop: "left", dimKey: "cx", oDimKey: "cy", offsetFactor: 1, tipOffset: -state.arHalf.cy, arrowOffsetFactor: 0 }
-		};
-
-		// Try each side specified in the options to see on which one the arrow
-		// should be placed such that the distance between the tip of the arrow and
-		// the desired coordinates is the shortest.
-		$.each( ( optionValue === true ? "l,t,r,b" : optionValue ).split( "," ),
-			$.proxy( function( key, value ) {
-				best = this._tryAnArrow( params[ value ], value, desired, state, best );
-			}, this ) );
-
-		// Could not place the arrow along any of the edges - behave as if showing
-		// the arrow was turned off.
-		if ( !best ) {
-			ar.arEls.hide();
-			return this._super( desired );
-		}
-
-		// Move the arrow into place
-		ar.ct
-			.removeClass( "ui-popup-arrow-l ui-popup-arrow-t ui-popup-arrow-r ui-popup-arrow-b" )
-			.addClass( "ui-popup-arrow-" + best.dir )
-			.removeAttr( "style" ).css( best.posProp, best.posVal )
-			.show();
-
-		// Do not move/size the background div on IE, because we use the arrow div for background as well.
-		if ( !ieHack ) {
-			elOffset = this.element.offset();
-			bgRef[ params[ best.dir ].fst ] = ar.ct.offset();
-			bgRef[ params[ best.dir ].snd ] = {
-				left: elOffset.left + state.contentBox.x,
-				top: elOffset.top + state.contentBox.y
-			};
-		}
-
-		return best.result;
-	},
-
-	_setOptions: function( opts ) {
-		var newTheme,
-			oldTheme = this.options.theme,
-			ar = this._ui.arrow,
-			ret = this._super( opts );
-
-		if ( opts.arrow !== undefined ) {
-			if ( !ar && opts.arrow ) {
-				this._ui.arrow = this._addArrow();
-
-				// Important to return here so we don't set the same options all over
-				// again below.
-				return;
-			} else if ( ar && !opts.arrow ) {
-				ar.arEls.remove();
-				this._ui.arrow = null;
-			}
-		}
-
-		// Reassign with potentially new arrow
-		ar = this._ui.arrow;
-
-		if ( ar ) {
-			if ( opts.theme !== undefined ) {
-				oldTheme = this._themeClassFromOption( "ui-body-", oldTheme );
-				newTheme = this._themeClassFromOption( "ui-body-", opts.theme );
-				ar.ar.removeClass( oldTheme ).addClass( newTheme );
-			}
-
-			if ( opts.shadow !== undefined ) {
-				ar.ar.toggleClass( "ui-overlay-shadow", opts.shadow );
-			}
-		}
-
-		return ret;
-	},
-
-	_destroy: function() {
-		var ar = this._ui.arrow;
-
-		if ( ar ) {
-			ar.arEls.remove();
-		}
-
-		return this._super();
-	}
-});
-
-})( jQuery );
-
-
-(function( $, undefined ) {
-
-$.widget( "mobile.panel", {
-	options: {
-		classes: {
-			panel: "ui-panel",
-			panelOpen: "ui-panel-open",
-			panelClosed: "ui-panel-closed",
-			panelFixed: "ui-panel-fixed",
-			panelInner: "ui-panel-inner",
-			modal: "ui-panel-dismiss",
-			modalOpen: "ui-panel-dismiss-open",
-			pageContainer: "ui-panel-page-container",
-			pageWrapper: "ui-panel-wrapper",
-			pageFixedToolbar: "ui-panel-fixed-toolbar",
-			pageContentPrefix: "ui-panel-page-content", /* Used for wrapper and fixed toolbars position, display and open classes. */
-			animate: "ui-panel-animate"
-		},
-		animate: true,
-		theme: null,
-		position: "left",
-		dismissible: true,
-		display: "reveal", //accepts reveal, push, overlay
-		swipeClose: true,
-		positionFixed: false
-	},
-
-	_closeLink: null,
-	_parentPage: null,
-	_page: null,
-	_modal: null,
-	_panelInner: null,
-	_wrapper: null,
-	_fixedToolbars: null,
-
-	_create: function() {
-		var el = this.element,
-			parentPage = el.closest( ".ui-page, :jqmData(role='page')" );
-
-		// expose some private props to other methods
-		$.extend( this, {
-			_closeLink: el.find( ":jqmData(rel='close')" ),
-			_parentPage: ( parentPage.length > 0 ) ? parentPage : false,
-			_openedPage: null,
-			_page: this._getPage,
-			_panelInner: this._getPanelInner(),
-			_fixedToolbars: this._getFixedToolbars
-		});
-		if ( this.options.display !== "overlay" ){
-			this._getWrapper();
-		}
-		this._addPanelClasses();
-
-		// if animating, add the class to do so
-		if ( $.support.cssTransform3d && !!this.options.animate ) {
-			this.element.addClass( this.options.classes.animate );
-		}
-
-		this._bindUpdateLayout();
-		this._bindCloseEvents();
-		this._bindLinkListeners();
-		this._bindPageEvents();
-
-		if ( !!this.options.dismissible ) {
-			this._createModal();
-		}
-
-		this._bindSwipeEvents();
-	},
-
-	_getPanelInner: function() {
-		var panelInner = this.element.find( "." + this.options.classes.panelInner );
-
-		if ( panelInner.length === 0 ) {
-			panelInner = this.element.children().wrapAll( "<div class='" + this.options.classes.panelInner + "' />" ).parent();
-		}
-
-		return panelInner;
-	},
-
-	_createModal: function() {
-		var self = this,
-			target = self._parentPage ? self._parentPage.parent() : self.element.parent();
-
-		self._modal = $( "<div class='" + self.options.classes.modal + "'></div>" )
-			.on( "mousedown", function() {
-				self.close();
-			})
-			.appendTo( target );
-	},
-
-	_getPage: function() {
-		var page = this._openedPage || this._parentPage || $( "." + $.mobile.activePageClass );
-
-		return page;
-	},
-
-	_getWrapper: function() {
-		var wrapper = this._page().find( "." + this.options.classes.pageWrapper );
-		if ( wrapper.length === 0 ) {
-			wrapper = this._page().children( ".ui-header:not(.ui-header-fixed), .ui-content:not(.ui-popup), .ui-footer:not(.ui-footer-fixed)" )
-				.wrapAll( "<div class='" + this.options.classes.pageWrapper + "'></div>" )
-				.parent();
-		}
-
-		this._wrapper = wrapper;
-	},
-
-	_getFixedToolbars: function() {
-		var extFixedToolbars = $( "body" ).children( ".ui-header-fixed, .ui-footer-fixed" ),
-			intFixedToolbars = this._page().find( ".ui-header-fixed, .ui-footer-fixed" ),
-			fixedToolbars = extFixedToolbars.add( intFixedToolbars ).addClass( this.options.classes.pageFixedToolbar );
-
-		return fixedToolbars;
-	},
-
-	_getPosDisplayClasses: function( prefix ) {
-		return prefix + "-position-" + this.options.position + " " + prefix + "-display-" + this.options.display;
-	},
-
-	_getPanelClasses: function() {
-		var panelClasses = this.options.classes.panel +
-			" " + this._getPosDisplayClasses( this.options.classes.panel ) +
-			" " + this.options.classes.panelClosed +
-			" " + "ui-body-" + ( this.options.theme ? this.options.theme : "inherit" );
-
-		if ( !!this.options.positionFixed ) {
-			panelClasses += " " + this.options.classes.panelFixed;
-		}
-
-		return panelClasses;
-	},
-
-	_addPanelClasses: function() {
-		this.element.addClass( this._getPanelClasses() );
-	},
-
-	_handleCloseClick: function( event ) {
-		if ( !event.isDefaultPrevented() ) {
-			this.close();
-		}
-	},
-
-	_bindCloseEvents: function() {
-		this._on( this._closeLink, {
-			"click": "_handleCloseClick"
-		});
-
-		this._on({
-			"click a:jqmData(ajax='false')": "_handleCloseClick"
-		});
-	},
-
-	_positionPanel: function( scrollToTop ) {
-		var self = this,
-			panelInnerHeight = self._panelInner.outerHeight(),
-			expand = panelInnerHeight > $.mobile.getScreenHeight();
-
-		if ( expand || !self.options.positionFixed ) {
-			if ( expand ) {
-				self._unfixPanel();
-				$.mobile.resetActivePageHeight( panelInnerHeight );
-			}
-			if ( scrollToTop ) {
-				this.window[ 0 ].scrollTo( 0, $.mobile.defaultHomeScroll );
-			}
-		} else {
-			self._fixPanel();
-		}
-	},
-
-	_bindFixListener: function() {
-		this._on( $( window ), { "throttledresize": "_positionPanel" });
-	},
-
-	_unbindFixListener: function() {
-		this._off( $( window ), "throttledresize" );
-	},
-
-	_unfixPanel: function() {
-		if ( !!this.options.positionFixed && $.support.fixedPosition ) {
-			this.element.removeClass( this.options.classes.panelFixed );
-		}
-	},
-
-	_fixPanel: function() {
-		if ( !!this.options.positionFixed && $.support.fixedPosition ) {
-			this.element.addClass( this.options.classes.panelFixed );
-		}
-	},
-
-	_bindUpdateLayout: function() {
-		var self = this;
-
-		self.element.on( "updatelayout", function(/* e */) {
-			if ( self._open ) {
-				self._positionPanel();
-			}
-		});
-	},
-
-	_bindLinkListeners: function() {
-		this._on( "body", {
-			"click a": "_handleClick"
-		});
-
-	},
-
-	_handleClick: function( e ) {
-		var link,
-			panelId = this.element.attr( "id" );
-
-		if ( e.currentTarget.href.split( "#" )[ 1 ] === panelId && panelId !== undefined ) {
-
-			e.preventDefault();
-			link = $( e.target );
-			if ( link.hasClass( "ui-btn" ) ) {
-				link.addClass( $.mobile.activeBtnClass );
-				this.element.one( "panelopen panelclose", function() {
-					link.removeClass( $.mobile.activeBtnClass );
-				});
-			}
-			this.toggle();
-		}
-	},
-
-	_bindSwipeEvents: function() {
-		var self = this,
-			area = self._modal ? self.element.add( self._modal ) : self.element;
-
-		// on swipe, close the panel
-		if ( !!self.options.swipeClose ) {
-			if ( self.options.position === "left" ) {
-				area.on( "swipeleft.panel", function(/* e */) {
-					self.close();
-				});
-			} else {
-				area.on( "swiperight.panel", function(/* e */) {
-					self.close();
-				});
-			}
-		}
-	},
-
-	_bindPageEvents: function() {
-		var self = this;
-
-		this.document
-			// Close the panel if another panel on the page opens
-			.on( "panelbeforeopen", function( e ) {
-				if ( self._open && e.target !== self.element[ 0 ] ) {
-					self.close();
-				}
-			})
-			// On escape, close? might need to have a target check too...
-			.on( "keyup.panel", function( e ) {
-				if ( e.keyCode === 27 && self._open ) {
-					self.close();
-				}
-			});
-		if ( !this._parentPage && this.options.display !== "overlay" ) {
-			this._on( this.document, {
-				"pageshow": "_getWrapper"
-			});
-		}
-		// Clean up open panels after page hide
-		if ( self._parentPage ) {
-			this.document.on( "pagehide", ":jqmData(role='page')", function() {
-				if ( self._open ) {
-					self.close( true );
-				}
-			});
-		} else {
-			this.document.on( "pagebeforehide", function() {
-				if ( self._open ) {
-					self.close( true );
-				}
-			});
-		}
-	},
-
-	// state storage of open or closed
-	_open: false,
-	_pageContentOpenClasses: null,
-	_modalOpenClasses: null,
-
-	open: function( immediate ) {
-		if ( !this._open ) {
-			var self = this,
-				o = self.options,
-
-				_openPanel = function() {
-					self._off( self.document , "panelclose" );
-					self._page().jqmData( "panel", "open" );
-
-					if ( $.support.cssTransform3d && !!o.animate && o.display !== "overlay" ) {
-						self._wrapper.addClass( o.classes.animate );
-						self._fixedToolbars().addClass( o.classes.animate );
-					}
-
-					if ( !immediate && $.support.cssTransform3d && !!o.animate ) {
-						( self._wrapper || self.element )
-							.animationComplete( complete, "transition" );
-					} else {
-						setTimeout( complete, 0 );
-					}
-
-					if ( o.theme && o.display !== "overlay" ) {
-						self._page().parent()
-							.addClass( o.classes.pageContainer + "-themed " + o.classes.pageContainer + "-" + o.theme );
-					}
-
-					self.element
-						.removeClass( o.classes.panelClosed )
-						.addClass( o.classes.panelOpen );
-
-					self._positionPanel( true );
-
-					self._pageContentOpenClasses = self._getPosDisplayClasses( o.classes.pageContentPrefix );
-
-					if ( o.display !== "overlay" ) {
-						self._page().parent().addClass( o.classes.pageContainer );
-						self._wrapper.addClass( self._pageContentOpenClasses );
-						self._fixedToolbars().addClass( self._pageContentOpenClasses );
-					}
-
-					self._modalOpenClasses = self._getPosDisplayClasses( o.classes.modal ) + " " + o.classes.modalOpen;
-					if ( self._modal ) {
-						self._modal
-							.addClass( self._modalOpenClasses )
-							.height( Math.max( self._modal.height(), self.document.height() ) );
-					}
-				},
-				complete = function() {
-
-					// Bail if the panel was closed before the opening animation has completed
-					if ( !self._open ) {
-						return;
-					}
-
-					if ( o.display !== "overlay" ) {
-						self._wrapper.addClass( o.classes.pageContentPrefix + "-open" );
-						self._fixedToolbars().addClass( o.classes.pageContentPrefix + "-open" );
-					}
-
-					self._bindFixListener();
-
-					self._trigger( "open" );
-
-					self._openedPage = self._page();
-				};
-
-			self._trigger( "beforeopen" );
-
-			if ( self._page().jqmData( "panel" ) === "open" ) {
-				self._on( self.document, {
-					"panelclose": _openPanel
-				});
-			} else {
-				_openPanel();
-			}
-
-			self._open = true;
-		}
-	},
-
-	close: function( immediate ) {
-		if ( this._open ) {
-			var self = this,
-				o = this.options,
-
-				_closePanel = function() {
-
-					self.element.removeClass( o.classes.panelOpen );
-
-					if ( o.display !== "overlay" ) {
-						self._wrapper.removeClass( self._pageContentOpenClasses );
-						self._fixedToolbars().removeClass( self._pageContentOpenClasses );
-					}
-
-					if ( !immediate && $.support.cssTransform3d && !!o.animate ) {
-						( self._wrapper || self.element )
-							.animationComplete( complete, "transition" );
-					} else {
-						setTimeout( complete, 0 );
-					}
-
-					if ( self._modal ) {
-						self._modal
-							.removeClass( self._modalOpenClasses )
-							.height( "" );
-					}
-				},
-				complete = function() {
-					if ( o.theme && o.display !== "overlay" ) {
-						self._page().parent().removeClass( o.classes.pageContainer + "-themed " + o.classes.pageContainer + "-" + o.theme );
-					}
-
-					self.element.addClass( o.classes.panelClosed );
-
-					if ( o.display !== "overlay" ) {
-						self._page().parent().removeClass( o.classes.pageContainer );
-						self._wrapper.removeClass( o.classes.pageContentPrefix + "-open" );
-						self._fixedToolbars().removeClass( o.classes.pageContentPrefix + "-open" );
-					}
-
-					if ( $.support.cssTransform3d && !!o.animate && o.display !== "overlay" ) {
-						self._wrapper.removeClass( o.classes.animate );
-						self._fixedToolbars().removeClass( o.classes.animate );
-					}
-
-					self._fixPanel();
-					self._unbindFixListener();
-					$.mobile.resetActivePageHeight();
-
-					self._page().jqmRemoveData( "panel" );
-
-					self._trigger( "close" );
-
-					self._openedPage = null;
-				};
-
-			self._trigger( "beforeclose" );
-
-			_closePanel();
-
-			self._open = false;
-		}
-	},
-
-	toggle: function() {
-		this[ this._open ? "close" : "open" ]();
-	},
-
-	_destroy: function() {
-		var otherPanels,
-		o = this.options,
-		multiplePanels = ( $( "body > :mobile-panel" ).length + $.mobile.activePage.find( ":mobile-panel" ).length ) > 1;
-
-		if ( o.display !== "overlay" ) {
-
-			//  remove the wrapper if not in use by another panel
-			otherPanels = $( "body > :mobile-panel" ).add( $.mobile.activePage.find( ":mobile-panel" ) );
-			if ( otherPanels.not( ".ui-panel-display-overlay" ).not( this.element ).length === 0 ) {
-				this._wrapper.children().unwrap();
-			}
-
-			if ( this._open ) {
-
-				this._fixedToolbars().removeClass( o.classes.pageContentPrefix + "-open" );
-
-				if ( $.support.cssTransform3d && !!o.animate ) {
-					this._fixedToolbars().removeClass( o.classes.animate );
-				}
-
-				this._page().parent().removeClass( o.classes.pageContainer );
-
-				if ( o.theme ) {
-					this._page().parent().removeClass( o.classes.pageContainer + "-themed " + o.classes.pageContainer + "-" + o.theme );
-				}
-			}
-		}
-
-		if ( !multiplePanels ) {
-
-			this.document.off( "panelopen panelclose" );
-
-		}
-
-		if ( this._open ) {
-			this._page().jqmRemoveData( "panel" );
-		}
-
-		this._panelInner.children().unwrap();
-
-		this.element
-			.removeClass( [ this._getPanelClasses(), o.classes.panelOpen, o.classes.animate ].join( " " ) )
-			.off( "swipeleft.panel swiperight.panel" )
-			.off( "panelbeforeopen" )
-			.off( "panelhide" )
-			.off( "keyup.panel" )
-			.off( "updatelayout" );
-
-		if ( this._modal ) {
-			this._modal.remove();
-		}
-	}
-});
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-$.widget( "mobile.table", {
-	options: {
-		classes: {
-			table: "ui-table"
-		},
-		enhanced: false
-	},
-
-	_create: function() {
-		if ( !this.options.enhanced ) {
-			this.element.addClass( this.options.classes.table );
-		}
-
-		// extend here, assign on refresh > _setHeaders
-		$.extend( this, {
-
-			// Expose headers and allHeaders properties on the widget
-			// headers references the THs within the first TR in the table
-			headers: undefined,
-
-			// allHeaders references headers, plus all THs in the thead, which may
-			// include several rows, or not
-			allHeaders: undefined
-		});
-
-		this._refresh( true );
-	},
-
-	_setHeaders: function() {
-		var trs = this.element.find( "thead tr" );
-
-		this.headers = this.element.find( "tr:eq(0)" ).children();
-		this.allHeaders = this.headers.add( trs.children() );
-	},
-
-	refresh: function() {
-		this._refresh();
-	},
-
-	rebuild: $.noop,
-
-	_refresh: function( /* create */ ) {
-		var table = this.element,
-			trs = table.find( "thead tr" );
-
-		// updating headers on refresh (fixes #5880)
-		this._setHeaders();
-
-		// Iterate over the trs
-		trs.each( function() {
-			var columnCount = 0;
-
-			// Iterate over the children of the tr
-			$( this ).children().each( function() {
-				var span = parseInt( this.getAttribute( "colspan" ), 10 ),
-					selector = ":nth-child(" + ( columnCount + 1 ) + ")",
-					j;
-
-				this.setAttribute( "data-" + $.mobile.ns + "colstart", columnCount + 1 );
-
-				if ( span ) {
-					for( j = 0; j < span - 1; j++ ) {
-						columnCount++;
-						selector += ", :nth-child(" + ( columnCount + 1 ) + ")";
-					}
-				}
-
-				// Store "cells" data on header as a reference to all cells in the
-				// same column as this TH
-				$( this ).jqmData( "cells", table.find( "tr" ).not( trs.eq( 0 ) ).not( this ).children( selector ) );
-
-				columnCount++;
-			});
-		});
-	}
-});
-
-})( jQuery );
-
-
-(function( $, undefined ) {
-
-$.widget( "mobile.table", $.mobile.table, {
-	options: {
-		mode: "columntoggle",
-		columnBtnTheme: null,
-		columnPopupTheme: null,
-		columnBtnText: "Columns...",
-		classes: $.extend( $.mobile.table.prototype.options.classes, {
-			popup: "ui-table-columntoggle-popup",
-			columnBtn: "ui-table-columntoggle-btn",
-			priorityPrefix: "ui-table-priority-",
-			columnToggleTable: "ui-table-columntoggle"
-		})
-	},
-
-	_create: function() {
-		this._super();
-
-		if ( this.options.mode !== "columntoggle" ) {
-			return;
-		}
-
-		$.extend( this, {
-			_menu: null
-		});
-
-		if ( this.options.enhanced ) {
-			this._menu = $( this.document[ 0 ].getElementById( this._id() + "-popup" ) ).children().first();
-			this._addToggles( this._menu, true );
-		} else {
-			this._menu = this._enhanceColToggle();
-			this.element.addClass( this.options.classes.columnToggleTable );
-		}
-
-		this._setupEvents();
-
-		this._setToggleState();
-	},
-
-	_id: function() {
-		return ( this.element.attr( "id" ) || ( this.widgetName + this.uuid ) );
-	},
-
-	_setupEvents: function() {
-		//NOTE: inputs are bound in bindToggles,
-		// so it can be called on refresh, too
-
-		// update column toggles on resize
-		this._on( this.window, {
-			throttledresize: "_setToggleState"
-		});
-		this._on( this._menu, {
-			"change input": "_menuInputChange"
-		});
-	},
-
-	_addToggles: function( menu, keep ) {
-		var inputs,
-			checkboxIndex = 0,
-			opts = this.options,
-			container = menu.controlgroup( "container" );
-
-		// allow update of menu on refresh (fixes #5880)
-		if ( keep ) {
-			inputs = menu.find( "input" );
-		} else {
-			container.empty();
-		}
-
-		// create the hide/show toggles
-		this.headers.not( "td" ).each( function() {
-			var input, cells,
-				header = $( this ),
-				priority = $.mobile.getAttribute( this, "priority" );
-
-			if ( priority ) {
-				cells = header.add( header.jqmData( "cells" ) );
-				cells.addClass( opts.classes.priorityPrefix + priority );
-
-				// Make sure the (new?) checkbox is associated with its header via .jqmData() and
-				// that, vice versa, the header is also associated with the checkbox
-				input = ( keep ? inputs.eq( checkboxIndex++ ) :
-					$("<label><input type='checkbox' checked />" +
-						( header.children( "abbr" ).first().attr( "title" ) ||
-							header.text() ) +
-						"</label>" )
-						.appendTo( container )
-						.children( 0 )
-						.checkboxradio( {
-							theme: opts.columnPopupTheme
-						}) )
-
-						// Associate the header with the checkbox
-						.jqmData( "header", header )
-						.jqmData( "cells", cells );
-
-				// Associate the checkbox with the header
-				header.jqmData( "input", input );
-			}
-		});
-
-		// set bindings here
-		if ( !keep ) {
-			menu.controlgroup( "refresh" );
-		}
-	},
-
-	_menuInputChange: function( evt ) {
-		var input = $( evt.target ),
-			checked = input[ 0 ].checked;
-
-		input.jqmData( "cells" )
-			.toggleClass( "ui-table-cell-hidden", !checked )
-			.toggleClass( "ui-table-cell-visible", checked );
-	},
-
-	_unlockCells: function( cells ) {
-		// allow hide/show via CSS only = remove all toggle-locks
-		cells.removeClass( "ui-table-cell-hidden ui-table-cell-visible");
-	},
-
-	_enhanceColToggle: function() {
-		var id , menuButton, popup, menu,
-			table = this.element,
-			opts = this.options,
-			ns = $.mobile.ns,
-			fragment = this.document[ 0 ].createDocumentFragment();
-
-		id = this._id() + "-popup";
-		menuButton = $( "<a href='#" + id + "' " +
-			"class='" + opts.classes.columnBtn + " ui-btn " +
-			"ui-btn-" + ( opts.columnBtnTheme || "a" ) +
-			" ui-corner-all ui-shadow ui-mini' " +
-			"data-" + ns + "rel='popup'>" + opts.columnBtnText + "</a>" );
-		popup = $( "<div class='" + opts.classes.popup + "' id='" + id + "'></div>" );
-		menu = $( "<fieldset></fieldset>" ).controlgroup();
-
-		// set extension here, send "false" to trigger build/rebuild
-		this._addToggles( menu, false );
-
-		menu.appendTo( popup );
-
-		fragment.appendChild( popup[ 0 ] );
-		fragment.appendChild( menuButton[ 0 ] );
-		table.before( fragment );
-
-		popup.popup();
-
-		return menu;
-	},
-
-	rebuild: function() {
-		this._super();
-
-		if ( this.options.mode === "columntoggle" ) {
-			// NOTE: rebuild passes "false", while refresh passes "undefined"
-			// both refresh the table, but inside addToggles, !false will be true,
-			// so a rebuild call can be indentified
-			this._refresh( false );
-		}
-	},
-
-	_refresh: function( create ) {
-		var headers, hiddenColumns, index;
-
-		// Calling _super() here updates this.headers
-		this._super( create );
-
-		if ( !create && this.options.mode === "columntoggle" ) {
-			headers = this.headers;
-			hiddenColumns = [];
-
-			// Find the index of the column header associated with each old checkbox among the
-			// post-refresh headers and, if the header is still there, make sure the corresponding
-			// column will be hidden if the pre-refresh checkbox indicates that the column is
-			// hidden by recording its index in the array of hidden columns.
-			this._menu.find( "input" ).each( function() {
-				var input = $( this ),
-					header = input.jqmData( "header" ),
-					index = headers.index( header[ 0 ] );
-
-				if ( index > -1 && !input.prop( "checked" ) ) {
-
-					// The column header associated with /this/ checkbox is still present in the
-					// post-refresh table and the checkbox is not checked, so the column associated
-					// with this column header is currently hidden. Let's record that.
-					hiddenColumns.push( index );
-				}
-			});
-
-			// columns not being replaced must be cleared from input toggle-locks
-			this._unlockCells( this.element.find( ".ui-table-cell-hidden, " +
-				".ui-table-cell-visible" ) );
-
-			// update columntoggles and cells
-			this._addToggles( this._menu, create );
-
-			// At this point all columns are visible, so uncheck the checkboxes that correspond to
-			// those columns we've found to be hidden
-			for ( index = hiddenColumns.length - 1 ; index > -1 ; index-- ) {
-				headers.eq( hiddenColumns[ index ] ).jqmData( "input" )
-					.prop( "checked", false )
-					.checkboxradio( "refresh" )
-					.trigger( "change" );
-			}
-		}
-	},
-
-	_setToggleState: function() {
-		this._menu.find( "input" ).each( function() {
-			var checkbox = $( this );
-
-			this.checked = checkbox.jqmData( "cells" ).eq( 0 ).css( "display" ) === "table-cell";
-			checkbox.checkboxradio( "refresh" );
-		});
-	},
-
-	_destroy: function() {
-		this._super();
-	}
-});
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-$.widget( "mobile.table", $.mobile.table, {
-	options: {
-		mode: "reflow",
-		classes: $.extend( $.mobile.table.prototype.options.classes, {
-			reflowTable: "ui-table-reflow",
-			cellLabels: "ui-table-cell-label"
-		})
-	},
-
-	_create: function() {
-		this._super();
-
-		// If it's not reflow mode, return here.
-		if ( this.options.mode !== "reflow" ) {
-			return;
-		}
-
-		if ( !this.options.enhanced ) {
-			this.element.addClass( this.options.classes.reflowTable );
-
-			this._updateReflow();
-		}
-	},
-
-	rebuild: function() {
-		this._super();
-
-		if ( this.options.mode === "reflow" ) {
-			this._refresh( false );
-		}
-	},
-
-	_refresh: function( create ) {
-		this._super( create );
-		if ( !create && this.options.mode === "reflow" ) {
-			this._updateReflow( );
-		}
-	},
-
-	_updateReflow: function() {
-		var table = this,
-			opts = this.options;
-
-		// get headers in reverse order so that top-level headers are appended last
-		$( table.allHeaders.get().reverse() ).each( function() {
-			var cells = $( this ).jqmData( "cells" ),
-				colstart = $.mobile.getAttribute( this, "colstart" ),
-				hierarchyClass = cells.not( this ).filter( "thead th" ).length && " ui-table-cell-label-top",
-				contents = $( this ).clone().contents(),
-				iteration, filter;
-
-				if ( contents.length > 0  ) {
-
-					if ( hierarchyClass ) {
-						iteration = parseInt( this.getAttribute( "colspan" ), 10 );
-						filter = "";
-
-						if ( iteration ) {
-							filter = "td:nth-child("+ iteration +"n + " + ( colstart ) +")";
-						}
-
-						table._addLabels( cells.filter( filter ),
-							opts.classes.cellLabels + hierarchyClass, contents );
-					} else {
-						table._addLabels( cells, opts.classes.cellLabels, contents );
-					}
-
-				}
-		});
-	},
-
-	_addLabels: function( cells, label, contents ) {
-		if ( contents.length === 1 && contents[ 0 ].nodeName.toLowerCase() === "abbr" ) {
-			contents = contents.eq( 0 ).attr( "title" );
-		}
-		// .not fixes #6006
-		cells
-			.not( ":has(b." + label + ")" )
-				.prepend( $( "<b class='" + label + "'></b>" ).append( contents ) );
-	}
-});
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-// TODO rename filterCallback/deprecate and default to the item itself as the first argument
-var defaultFilterCallback = function( index, searchValue ) {
-	return ( ( "" + ( $.mobile.getAttribute( this, "filtertext" ) || $( this ).text() ) )
-		.toLowerCase().indexOf( searchValue ) === -1 );
-};
-
-$.widget( "mobile.filterable", {
-
-	initSelector: ":jqmData(filter='true')",
-
-	options: {
-		filterReveal: false,
-		filterCallback: defaultFilterCallback,
-		enhanced: false,
-		input: null,
-		children: "> li, > option, > optgroup option, > tbody tr, > .ui-controlgroup-controls > .ui-btn, > .ui-controlgroup-controls > .ui-checkbox, > .ui-controlgroup-controls > .ui-radio"
-	},
-
-	_create: function() {
-		var opts = this.options;
-
-		$.extend( this, {
-			_search: null,
-			_timer: 0
-		});
-
-		this._setInput( opts.input );
-		if ( !opts.enhanced ) {
-			this._filterItems( ( ( this._search && this._search.val() ) || "" ).toLowerCase() );
-		}
-	},
-
-	_onKeyUp: function() {
-		var val, lastval,
-			search = this._search;
-
-		if ( search ) {
-			val = search.val().toLowerCase(),
-			lastval = $.mobile.getAttribute( search[ 0 ], "lastval" ) + "";
-
-			if ( lastval && lastval === val ) {
-				// Execute the handler only once per value change
-				return;
-			}
-
-			if ( this._timer ) {
-				window.clearTimeout( this._timer );
-				this._timer = 0;
-			}
-
-			this._timer = this._delay( function() {
-				if ( this._trigger( "beforefilter", null, { input: search } ) === false ) {
-					return false;
-				}
-
-				// Change val as lastval for next execution
-				search[ 0 ].setAttribute( "data-" + $.mobile.ns + "lastval", val );
-
-				this._filterItems( val );
-				this._timer = 0;
-			}, 250 );
-		}
-	},
-
-	_getFilterableItems: function() {
-		var elem = this.element,
-			children = this.options.children,
-			items = !children ? { length: 0 }:
-				$.isFunction( children ) ? children():
-				children.nodeName ? $( children ):
-				children.jquery ? children:
-				this.element.find( children );
-
-		if ( items.length === 0 ) {
-			items = elem.children();
-		}
-
-		return items;
-	},
-
-	_filterItems: function( val ) {
-		var idx, callback, length, dst,
-			show = [],
-			hide = [],
-			opts = this.options,
-			filterItems = this._getFilterableItems();
-
-		if ( val != null ) {
-			callback = opts.filterCallback || defaultFilterCallback;
-			length = filterItems.length;
-
-			// Partition the items into those to be hidden and those to be shown
-			for ( idx = 0 ; idx < length ; idx++ ) {
-				dst = ( callback.call( filterItems[ idx ], idx, val ) ) ? hide : show;
-				dst.push( filterItems[ idx ] );
-			}
-		}
-
-		// If nothing is hidden, then the decision whether to hide or show the items
-		// is based on the "filterReveal" option.
-		if ( hide.length === 0 ) {
-			filterItems[ ( opts.filterReveal && val.length === 0 ) ?
-				"addClass" : "removeClass" ]( "ui-screen-hidden" );
-		} else {
-			$( hide ).addClass( "ui-screen-hidden" );
-			$( show ).removeClass( "ui-screen-hidden" );
-		}
-
-		this._refreshChildWidget();
-
-		this._trigger( "filter", null, {
-			items: filterItems
-		});
-	},
-
-	// The Default implementation of _refreshChildWidget attempts to call
-	// refresh on collapsibleset, controlgroup, selectmenu, or listview
-	_refreshChildWidget: function() {
-		var widget, idx,
-			recognizedWidgets = [ "collapsibleset", "selectmenu", "controlgroup", "listview" ];
-
-		for ( idx = recognizedWidgets.length - 1 ; idx > -1 ; idx-- ) {
-			widget = recognizedWidgets[ idx ];
-			if ( $.mobile[ widget ] ) {
-				widget = this.element.data( "mobile-" + widget );
-				if ( widget && $.isFunction( widget.refresh ) ) {
-					widget.refresh();
-				}
-			}
-		}
-	},
-
-	// TODO: When the input is not internal, do not even store it in this._search
-	_setInput: function ( selector ) {
-		var search = this._search;
-
-		// Stop a pending filter operation
-		if ( this._timer ) {
-			window.clearTimeout( this._timer );
-			this._timer = 0;
-		}
-
-		if ( search ) {
-			this._off( search, "keyup change input" );
-			search = null;
-		}
-
-		if ( selector ) {
-			search = selector.jquery ? selector:
-				selector.nodeName ? $( selector ):
-				this.document.find( selector );
-
-			this._on( search, {
-				keydown: "_onKeyDown",
-				keypress: "_onKeyPress",
-				keyup: "_onKeyUp",
-				change: "_onKeyUp",
-				input: "_onKeyUp"
-			});
-		}
-
-		this._search = search;
-	},
-
-	// Prevent form submission
-	_onKeyDown: function( event ) {
-		if ( event.keyCode === $.ui.keyCode.ENTER ) {
-			event.preventDefault();
-			this._preventKeyPress = true;
-		}
-	},
-
-	_onKeyPress: function( event ) {
-		if ( this._preventKeyPress ) {
-			event.preventDefault();
-			this._preventKeyPress = false;
-		}
-	},
-
-	_setOptions: function( options ) {
-		var refilter = !( ( options.filterReveal === undefined ) &&
-				( options.filterCallback === undefined ) &&
-				( options.children === undefined ) );
-
-		this._super( options );
-
-		if ( options.input !== undefined ) {
-			this._setInput( options.input );
-			refilter = true;
-		}
-
-		if ( refilter ) {
-			this.refresh();
-		}
-	},
-
-	_destroy: function() {
-		var opts = this.options,
-			items = this._getFilterableItems();
-
-		if ( opts.enhanced ) {
-			items.toggleClass( "ui-screen-hidden", opts.filterReveal );
-		} else {
-			items.removeClass( "ui-screen-hidden" );
-		}
-	},
-
-	refresh: function() {
-		if ( this._timer ) {
-			window.clearTimeout( this._timer );
-			this._timer = 0;
-		}
-		this._filterItems( ( ( this._search && this._search.val() ) || "" ).toLowerCase() );
-	}
-});
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-// Create a function that will replace the _setOptions function of a widget,
-// and will pass the options on to the input of the filterable.
-var replaceSetOptions = function( self, orig ) {
-		return function( options ) {
-			orig.call( this, options );
-			self._syncTextInputOptions( options );
-		};
-	},
-	rDividerListItem = /(^|\s)ui-li-divider(\s|$)/,
-	origDefaultFilterCallback = $.mobile.filterable.prototype.options.filterCallback;
-
-// Override the default filter callback with one that does not hide list dividers
-$.mobile.filterable.prototype.options.filterCallback = function( index, searchValue ) {
-	return !this.className.match( rDividerListItem ) &&
-		origDefaultFilterCallback.call( this, index, searchValue );
-};
-
-$.widget( "mobile.filterable", $.mobile.filterable, {
-	options: {
-		filterPlaceholder: "Filter items...",
-		filterTheme: null
-	},
-
-	_create: function() {
-		var idx, widgetName,
-			elem = this.element,
-			recognizedWidgets = [ "collapsibleset", "selectmenu", "controlgroup", "listview" ],
-			createHandlers = {};
-
-		this._super();
-
-		$.extend( this, {
-			_widget: null
-		});
-
-		for ( idx = recognizedWidgets.length - 1 ; idx > -1 ; idx-- ) {
-			widgetName = recognizedWidgets[ idx ];
-			if ( $.mobile[ widgetName ] ) {
-				if ( this._setWidget( elem.data( "mobile-" + widgetName ) ) ) {
-					break;
-				} else {
-					createHandlers[ widgetName + "create" ] = "_handleCreate";
-				}
-			}
-		}
-
-		if ( !this._widget ) {
-			this._on( elem, createHandlers );
-		}
-	},
-
-	_handleCreate: function( evt ) {
-		this._setWidget( this.element.data( "mobile-" + evt.type.substring( 0, evt.type.length - 6 ) ) );
-	},
-
-	_trigger: function( type, event, data ) {
-		if ( this._widget && this._widget.widgetFullName === "mobile-listview" &&
-			type === "beforefilter" ) {
-
-			// Also trigger listviewbeforefilter if this widget is also a listview
-			this._widget._trigger( "beforefilter", event, data );
-		}
-
-		// Passing back the response enables calling preventDefault()
-		return this._super( type, event, data );
-	},
-
-	_setWidget: function( widget ) {
-		if ( !this._widget && widget ) {
-			this._widget = widget;
-			this._widget._setOptions = replaceSetOptions( this, this._widget._setOptions );
-		}
-
-		if ( !!this._widget ) {
-			this._syncTextInputOptions( this._widget.options );
-			if ( this._widget.widgetName === "listview" ) {
-				this._widget.options.hideDividers = true;
-				this._widget.element.listview( "refresh" );
-			}
-		}
-
-		return !!this._widget;
-	},
-
-	_isSearchInternal: function() {
-		return ( this._search && this._search.jqmData( "ui-filterable-" + this.uuid + "-internal" ) );
-	},
-
-	_setInput: function( selector ) {
-		var opts = this.options,
-			updatePlaceholder = true,
-			textinputOpts = {};
-
-		if ( !selector ) {
-			if ( this._isSearchInternal() ) {
-
-				// Ignore the call to set a new input if the selector goes to falsy and
-				// the current textinput is already of the internally generated variety.
-				return;
-			} else {
-
-				// Generating a new textinput widget. No need to set the placeholder
-				// further down the function.
-				updatePlaceholder = false;
-				selector = $( "<input " +
-					"data-" + $.mobile.ns + "type='search' " +
-					"placeholder='" + opts.filterPlaceholder + "'></input>" )
-					.jqmData( "ui-filterable-" + this.uuid + "-internal", true );
-				$( "<form class='ui-filterable'></form>" )
-					.append( selector )
-					.submit( function( evt ) {
-						evt.preventDefault();
-						selector.blur();
-					})
-					.insertBefore( this.element );
-				if ( $.mobile.textinput ) {
-					if ( this.options.filterTheme != null ) {
-						textinputOpts[ "theme" ] = opts.filterTheme;
-					}
-
-					selector.textinput( textinputOpts );
-				}
-			}
-		}
-
-		this._super( selector );
-
-		if ( this._isSearchInternal() && updatePlaceholder ) {
-			this._search.attr( "placeholder", this.options.filterPlaceholder );
-		}
-	},
-
-	_setOptions: function( options ) {
-		var ret = this._super( options );
-
-		// Need to set the filterPlaceholder after having established the search input
-		if ( options.filterPlaceholder !== undefined ) {
-			if ( this._isSearchInternal() ) {
-				this._search.attr( "placeholder", options.filterPlaceholder );
-			}
-		}
-
-		if ( options.filterTheme !== undefined && this._search && $.mobile.textinput ) {
-			this._search.textinput( "option", "theme", options.filterTheme );
-		}
-
-		return ret;
-	},
-
-	_destroy: function() {
-		if ( this._isSearchInternal() ) {
-			this._search.remove();
-		}
-		this._super();
-	},
-
-	_syncTextInputOptions: function( options ) {
-		var idx,
-			textinputOptions = {};
-
-		// We only sync options if the filterable's textinput is of the internally
-		// generated variety, rather than one specified by the user.
-		if ( this._isSearchInternal() && $.mobile.textinput ) {
-
-			// Apply only the options understood by textinput
-			for ( idx in $.mobile.textinput.prototype.options ) {
-				if ( options[ idx ] !== undefined ) {
-					if ( idx === "theme" && this.options.filterTheme != null ) {
-						textinputOptions[ idx ] = this.options.filterTheme;
-					} else {
-						textinputOptions[ idx ] = options[ idx ];
-					}
-				}
-			}
-			this._search.textinput( "option", textinputOptions );
-		}
-	}
-});
-
-// Instantiate a filterable on a listview that has the data-filter="true" attribute
-// This is not necessary for static content, because the auto-enhance takes care of instantiating
-// the filterable upon encountering data-filter="true". However, because of 1.3.x it is expected
-// that a listview with data-filter="true" will be filterable even if you just instantiate a
-// listview on it. The extension below ensures that this continues to happen in 1.4.x.
-$.widget( "mobile.listview", $.mobile.listview, {
-	options: {
-		filter: false
-	},
-	_create: function() {
-		if ( this.options.filter === true &&
-				!this.element.data( "mobile-filterable" ) ) {
-			this.element.filterable();
-		}
-		return this._super();
-	}
-});
-
-})( jQuery );
-
-/*!
- * jQuery UI Tabs c0ab71056b936627e8a7821f03c044aec6280a40
- * http://jqueryui.com
- *
- * Copyright 2013 jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/tabs/
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-var tabId = 0,
-	rhash = /#.*$/;
-
-function getNextTabId() {
-	return ++tabId;
-}
-
-function isLocal( anchor ) {
-	// support: IE7
-	// IE7 doesn't normalize the href property when set via script (#9317)
-	anchor = anchor.cloneNode( false );
-
-	return anchor.hash.length > 1 &&
-		decodeURIComponent( anchor.href.replace( rhash, "" ) ) ===
-			decodeURIComponent( location.href.replace( rhash, "" ) );
-}
-
-$.widget( "ui.tabs", {
-	version: "c0ab71056b936627e8a7821f03c044aec6280a40",
-	delay: 300,
-	options: {
-		active: null,
-		collapsible: false,
-		event: "click",
-		heightStyle: "content",
-		hide: null,
-		show: null,
-
-		// callbacks
-		activate: null,
-		beforeActivate: null,
-		beforeLoad: null,
-		load: null
-	},
-
-	_create: function() {
-		var that = this,
-			options = this.options;
-
-		this.running = false;
-
-		this.element
-			.addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" )
-			.toggleClass( "ui-tabs-collapsible", options.collapsible )
-			// Prevent users from focusing disabled tabs via click
-			.delegate( ".ui-tabs-nav > li", "mousedown" + this.eventNamespace, function( event ) {
-				if ( $( this ).is( ".ui-state-disabled" ) ) {
-					event.preventDefault();
-				}
-			})
-			// support: IE <9
-			// Preventing the default action in mousedown doesn't prevent IE
-			// from focusing the element, so if the anchor gets focused, blur.
-			// We don't have to worry about focusing the previously focused
-			// element since clicking on a non-focusable element should focus
-			// the body anyway.
-			.delegate( ".ui-tabs-anchor", "focus" + this.eventNamespace, function() {
-				if ( $( this ).closest( "li" ).is( ".ui-state-disabled" ) ) {
-					this.blur();
-				}
-			});
-
-		this._processTabs();
-		options.active = this._initialActive();
-
-		// Take disabling tabs via class attribute from HTML
-		// into account and update option properly.
-		if ( $.isArray( options.disabled ) ) {
-			options.disabled = $.unique( options.disabled.concat(
-				$.map( this.tabs.filter( ".ui-state-disabled" ), function( li ) {
-					return that.tabs.index( li );
-				})
-			) ).sort();
-		}
-
-		// check for length avoids error when initializing empty list
-		if ( this.options.active !== false && this.anchors.length ) {
-			this.active = this._findActive( options.active );
-		} else {
-			this.active = $();
-		}
-
-		this._refresh();
-
-		if ( this.active.length ) {
-			this.load( options.active );
-		}
-	},
-
-	_initialActive: function() {
-		var active = this.options.active,
-			collapsible = this.options.collapsible,
-			locationHash = location.hash.substring( 1 );
-
-		if ( active === null ) {
-			// check the fragment identifier in the URL
-			if ( locationHash ) {
-				this.tabs.each(function( i, tab ) {
-					if ( $( tab ).attr( "aria-controls" ) === locationHash ) {
-						active = i;
-						return false;
-					}
-				});
-			}
-
-			// check for a tab marked active via a class
-			if ( active === null ) {
-				active = this.tabs.index( this.tabs.filter( ".ui-tabs-active" ) );
-			}
-
-			// no active tab, set to false
-			if ( active === null || active === -1 ) {
-				active = this.tabs.length ? 0 : false;
-			}
-		}
-
-		// handle numbers: negative, out of range
-		if ( active !== false ) {
-			active = this.tabs.index( this.tabs.eq( active ) );
-			if ( active === -1 ) {
-				active = collapsible ? false : 0;
-			}
-		}
-
-		// don't allow collapsible: false and active: false
-		if ( !collapsible && active === false && this.anchors.length ) {
-			active = 0;
-		}
-
-		return active;
-	},
-
-	_getCreateEventData: function() {
-		return {
-			tab: this.active,
-			panel: !this.active.length ? $() : this._getPanelForTab( this.active )
-		};
-	},
-
-	_tabKeydown: function( event ) {
-		var focusedTab = $( this.document[0].activeElement ).closest( "li" ),
-			selectedIndex = this.tabs.index( focusedTab ),
-			goingForward = true;
-
-		if ( this._handlePageNav( event ) ) {
-			return;
-		}
-
-		switch ( event.keyCode ) {
-			case $.ui.keyCode.RIGHT:
-			case $.ui.keyCode.DOWN:
-				selectedIndex++;
-				break;
-			case $.ui.keyCode.UP:
-			case $.ui.keyCode.LEFT:
-				goingForward = false;
-				selectedIndex--;
-				break;
-			case $.ui.keyCode.END:
-				selectedIndex = this.anchors.length - 1;
-				break;
-			case $.ui.keyCode.HOME:
-				selectedIndex = 0;
-				break;
-			case $.ui.keyCode.SPACE:
-				// Activate only, no collapsing
-				event.preventDefault();
-				clearTimeout( this.activating );
-				this._activate( selectedIndex );
-				return;
-			case $.ui.keyCode.ENTER:
-				// Toggle (cancel delayed activation, allow collapsing)
-				event.preventDefault();
-				clearTimeout( this.activating );
-				// Determine if we should collapse or activate
-				this._activate( selectedIndex === this.options.active ? false : selectedIndex );
-				return;
-			default:
-				return;
-		}
-
-		// Focus the appropriate tab, based on which key was pressed
-		event.preventDefault();
-		clearTimeout( this.activating );
-		selectedIndex = this._focusNextTab( selectedIndex, goingForward );
-
-		// Navigating with control key will prevent automatic activation
-		if ( !event.ctrlKey ) {
-			// Update aria-selected immediately so that AT think the tab is already selected.
-			// Otherwise AT may confuse the user by stating that they need to activate the tab,
-			// but the tab will already be activated by the time the announcement finishes.
-			focusedTab.attr( "aria-selected", "false" );
-			this.tabs.eq( selectedIndex ).attr( "aria-selected", "true" );
-
-			this.activating = this._delay(function() {
-				this.option( "active", selectedIndex );
-			}, this.delay );
-		}
-	},
-
-	_panelKeydown: function( event ) {
-		if ( this._handlePageNav( event ) ) {
-			return;
-		}
-
-		// Ctrl+up moves focus to the current tab
-		if ( event.ctrlKey && event.keyCode === $.ui.keyCode.UP ) {
-			event.preventDefault();
-			this.active.focus();
-		}
-	},
-
-	// Alt+page up/down moves focus to the previous/next tab (and activates)
-	_handlePageNav: function( event ) {
-		if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP ) {
-			this._activate( this._focusNextTab( this.options.active - 1, false ) );
-			return true;
-		}
-		if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_DOWN ) {
-			this._activate( this._focusNextTab( this.options.active + 1, true ) );
-			return true;
-		}
-	},
-
-	_findNextTab: function( index, goingForward ) {
-		var lastTabIndex = this.tabs.length - 1;
-
-		function constrain() {
-			if ( index > lastTabIndex ) {
-				index = 0;
-			}
-			if ( index < 0 ) {
-				index = lastTabIndex;
-			}
-			return index;
-		}
-
-		while ( $.inArray( constrain(), this.options.disabled ) !== -1 ) {
-			index = goingForward ? index + 1 : index - 1;
-		}
-
-		return index;
-	},
-
-	_focusNextTab: function( index, goingForward ) {
-		index = this._findNextTab( index, goingForward );
-		this.tabs.eq( index ).focus();
-		return index;
-	},
-
-	_setOption: function( key, value ) {
-		if ( key === "active" ) {
-			// _activate() will handle invalid values and update this.options
-			this._activate( value );
-			return;
-		}
-
-		if ( key === "disabled" ) {
-			// don't use the widget factory's disabled handling
-			this._setupDisabled( value );
-			return;
-		}
-
-		this._super( key, value);
-
-		if ( key === "collapsible" ) {
-			this.element.toggleClass( "ui-tabs-collapsible", value );
-			// Setting collapsible: false while collapsed; open first panel
-			if ( !value && this.options.active === false ) {
-				this._activate( 0 );
-			}
-		}
-
-		if ( key === "event" ) {
-			this._setupEvents( value );
-		}
-
-		if ( key === "heightStyle" ) {
-			this._setupHeightStyle( value );
-		}
-	},
-
-	_tabId: function( tab ) {
-		return tab.attr( "aria-controls" ) || "ui-tabs-" + getNextTabId();
-	},
-
-	_sanitizeSelector: function( hash ) {
-		return hash ? hash.replace( /[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&" ) : "";
-	},
-
-	refresh: function() {
-		var options = this.options,
-			lis = this.tablist.children( ":has(a[href])" );
-
-		// get disabled tabs from class attribute from HTML
-		// this will get converted to a boolean if needed in _refresh()
-		options.disabled = $.map( lis.filter( ".ui-state-disabled" ), function( tab ) {
-			return lis.index( tab );
-		});
-
-		this._processTabs();
-
-		// was collapsed or no tabs
-		if ( options.active === false || !this.anchors.length ) {
-			options.active = false;
-			this.active = $();
-		// was active, but active tab is gone
-		} else if ( this.active.length && !$.contains( this.tablist[ 0 ], this.active[ 0 ] ) ) {
-			// all remaining tabs are disabled
-			if ( this.tabs.length === options.disabled.length ) {
-				options.active = false;
-				this.active = $();
-			// activate previous tab
-			} else {
-				this._activate( this._findNextTab( Math.max( 0, options.active - 1 ), false ) );
-			}
-		// was active, active tab still exists
-		} else {
-			// make sure active index is correct
-			options.active = this.tabs.index( this.active );
-		}
-
-		this._refresh();
-	},
-
-	_refresh: function() {
-		this._setupDisabled( this.options.disabled );
-		this._setupEvents( this.options.event );
-		this._setupHeightStyle( this.options.heightStyle );
-
-		this.tabs.not( this.active ).attr({
-			"aria-selected": "false",
-			tabIndex: -1
-		});
-		this.panels.not( this._getPanelForTab( this.active ) )
-			.hide()
-			.attr({
-				"aria-expanded": "false",
-				"aria-hidden": "true"
-			});
-
-		// Make sure one tab is in the tab order
-		if ( !this.active.length ) {
-			this.tabs.eq( 0 ).attr( "tabIndex", 0 );
-		} else {
-			this.active
-				.addClass( "ui-tabs-active ui-state-active" )
-				.attr({
-					"aria-selected": "true",
-					tabIndex: 0
-				});
-			this._getPanelForTab( this.active )
-				.show()
-				.attr({
-					"aria-expanded": "true",
-					"aria-hidden": "false"
-				});
-		}
-	},
-
-	_processTabs: function() {
-		var that = this;
-
-		this.tablist = this._getList()
-			.addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" )
-			.attr( "role", "tablist" );
-
-		this.tabs = this.tablist.find( "> li:has(a[href])" )
-			.addClass( "ui-state-default ui-corner-top" )
-			.attr({
-				role: "tab",
-				tabIndex: -1
-			});
-
-		this.anchors = this.tabs.map(function() {
-				return $( "a", this )[ 0 ];
-			})
-			.addClass( "ui-tabs-anchor" )
-			.attr({
-				role: "presentation",
-				tabIndex: -1
-			});
-
-		this.panels = $();
-
-		this.anchors.each(function( i, anchor ) {
-			var selector, panel, panelId,
-				anchorId = $( anchor ).uniqueId().attr( "id" ),
-				tab = $( anchor ).closest( "li" ),
-				originalAriaControls = tab.attr( "aria-controls" );
-
-			// inline tab
-			if ( isLocal( anchor ) ) {
-				selector = anchor.hash;
-				panel = that.element.find( that._sanitizeSelector( selector ) );
-			// remote tab
-			} else {
-				panelId = that._tabId( tab );
-				selector = "#" + panelId;
-				panel = that.element.find( selector );
-				if ( !panel.length ) {
-					panel = that._createPanel( panelId );
-					panel.insertAfter( that.panels[ i - 1 ] || that.tablist );
-				}
-				panel.attr( "aria-live", "polite" );
-			}
-
-			if ( panel.length) {
-				that.panels = that.panels.add( panel );
-			}
-			if ( originalAriaControls ) {
-				tab.data( "ui-tabs-aria-controls", originalAriaControls );
-			}
-			tab.attr({
-				"aria-controls": selector.substring( 1 ),
-				"aria-labelledby": anchorId
-			});
-			panel.attr( "aria-labelledby", anchorId );
-		});
-
-		this.panels
-			.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" )
-			.attr( "role", "tabpanel" );
-	},
-
-	// allow overriding how to find the list for rare usage scenarios (#7715)
-	_getList: function() {
-		return this.element.find( "ol,ul" ).eq( 0 );
-	},
-
-	_createPanel: function( id ) {
-		return $( "<div>" )
-			.attr( "id", id )
-			.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" )
-			.data( "ui-tabs-destroy", true );
-	},
-
-	_setupDisabled: function( disabled ) {
-		if ( $.isArray( disabled ) ) {
-			if ( !disabled.length ) {
-				disabled = false;
-			} else if ( disabled.length === this.anchors.length ) {
-				disabled = true;
-			}
-		}
-
-		// disable tabs
-		for ( var i = 0, li; ( li = this.tabs[ i ] ); i++ ) {
-			if ( disabled === true || $.inArray( i, disabled ) !== -1 ) {
-				$( li )
-					.addClass( "ui-state-disabled" )
-					.attr( "aria-disabled", "true" );
-			} else {
-				$( li )
-					.removeClass( "ui-state-disabled" )
-					.removeAttr( "aria-disabled" );
-			}
-		}
-
-		this.options.disabled = disabled;
-	},
-
-	_setupEvents: function( event ) {
-		var events = {};
-		if ( event ) {
-			$.each( event.split(" "), function( index, eventName ) {
-				events[ eventName ] = "_eventHandler";
-			});
-		}
-
-		this._off( this.anchors.add( this.tabs ).add( this.panels ) );
-		// Always prevent the default action, even when disabled
-		this._on( true, this.anchors, {
-			click: function( event ) {
-				event.preventDefault();
-			}
-		});
-		this._on( this.anchors, events );
-		this._on( this.tabs, { keydown: "_tabKeydown" } );
-		this._on( this.panels, { keydown: "_panelKeydown" } );
-
-		this._focusable( this.tabs );
-		this._hoverable( this.tabs );
-	},
-
-	_setupHeightStyle: function( heightStyle ) {
-		var maxHeight,
-			parent = this.element.parent();
-
-		if ( heightStyle === "fill" ) {
-			maxHeight = parent.height();
-			maxHeight -= this.element.outerHeight() - this.element.height();
-
-			this.element.siblings( ":visible" ).each(function() {
-				var elem = $( this ),
-					position = elem.css( "position" );
-
-				if ( position === "absolute" || position === "fixed" ) {
-					return;
-				}
-				maxHeight -= elem.outerHeight( true );
-			});
-
-			this.element.children().not( this.panels ).each(function() {
-				maxHeight -= $( this ).outerHeight( true );
-			});
-
-			this.panels.each(function() {
-				$( this ).height( Math.max( 0, maxHeight -
-					$( this ).innerHeight() + $( this ).height() ) );
-			})
-			.css( "overflow", "auto" );
-		} else if ( heightStyle === "auto" ) {
-			maxHeight = 0;
-			this.panels.each(function() {
-				maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() );
-			}).height( maxHeight );
-		}
-	},
-
-	_eventHandler: function( event ) {
-		var options = this.options,
-			active = this.active,
-			anchor = $( event.currentTarget ),
-			tab = anchor.closest( "li" ),
-			clickedIsActive = tab[ 0 ] === active[ 0 ],
-			collapsing = clickedIsActive && options.collapsible,
-			toShow = collapsing ? $() : this._getPanelForTab( tab ),
-			toHide = !active.length ? $() : this._getPanelForTab( active ),
-			eventData = {
-				oldTab: active,
-				oldPanel: toHide,
-				newTab: collapsing ? $() : tab,
-				newPanel: toShow
-			};
-
-		event.preventDefault();
-
-		if ( tab.hasClass( "ui-state-disabled" ) ||
-				// tab is already loading
-				tab.hasClass( "ui-tabs-loading" ) ||
-				// can't switch durning an animation
-				this.running ||
-				// click on active header, but not collapsible
-				( clickedIsActive && !options.collapsible ) ||
-				// allow canceling activation
-				( this._trigger( "beforeActivate", event, eventData ) === false ) ) {
-			return;
-		}
-
-		options.active = collapsing ? false : this.tabs.index( tab );
-
-		this.active = clickedIsActive ? $() : tab;
-		if ( this.xhr ) {
-			this.xhr.abort();
-		}
-
-		if ( !toHide.length && !toShow.length ) {
-			$.error( "jQuery UI Tabs: Mismatching fragment identifier." );
-		}
-
-		if ( toShow.length ) {
-			this.load( this.tabs.index( tab ), event );
-		}
-		this._toggle( event, eventData );
-	},
-
-	// handles show/hide for selecting tabs
-	_toggle: function( event, eventData ) {
-		var that = this,
-			toShow = eventData.newPanel,
-			toHide = eventData.oldPanel;
-
-		this.running = true;
-
-		function complete() {
-			that.running = false;
-			that._trigger( "activate", event, eventData );
-		}
-
-		function show() {
-			eventData.newTab.closest( "li" ).addClass( "ui-tabs-active ui-state-active" );
-
-			if ( toShow.length && that.options.show ) {
-				that._show( toShow, that.options.show, complete );
-			} else {
-				toShow.show();
-				complete();
-			}
-		}
-
-		// start out by hiding, then showing, then completing
-		if ( toHide.length && this.options.hide ) {
-			this._hide( toHide, this.options.hide, function() {
-				eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" );
-				show();
-			});
-		} else {
-			eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" );
-			toHide.hide();
-			show();
-		}
-
-		toHide.attr({
-			"aria-expanded": "false",
-			"aria-hidden": "true"
-		});
-		eventData.oldTab.attr( "aria-selected", "false" );
-		// If we're switching tabs, remove the old tab from the tab order.
-		// If we're opening from collapsed state, remove the previous tab from the tab order.
-		// If we're collapsing, then keep the collapsing tab in the tab order.
-		if ( toShow.length && toHide.length ) {
-			eventData.oldTab.attr( "tabIndex", -1 );
-		} else if ( toShow.length ) {
-			this.tabs.filter(function() {
-				return $( this ).attr( "tabIndex" ) === 0;
-			})
-			.attr( "tabIndex", -1 );
-		}
-
-		toShow.attr({
-			"aria-expanded": "true",
-			"aria-hidden": "false"
-		});
-		eventData.newTab.attr({
-			"aria-selected": "true",
-			tabIndex: 0
-		});
-	},
-
-	_activate: function( index ) {
-		var anchor,
-			active = this._findActive( index );
-
-		// trying to activate the already active panel
-		if ( active[ 0 ] === this.active[ 0 ] ) {
-			return;
-		}
-
-		// trying to collapse, simulate a click on the current active header
-		if ( !active.length ) {
-			active = this.active;
-		}
-
-		anchor = active.find( ".ui-tabs-anchor" )[ 0 ];
-		this._eventHandler({
-			target: anchor,
-			currentTarget: anchor,
-			preventDefault: $.noop
-		});
-	},
-
-	_findActive: function( index ) {
-		return index === false ? $() : this.tabs.eq( index );
-	},
-
-	_getIndex: function( index ) {
-		// meta-function to give users option to provide a href string instead of a numerical index.
-		if ( typeof index === "string" ) {
-			index = this.anchors.index( this.anchors.filter( "[href$='" + index + "']" ) );
-		}
-
-		return index;
-	},
-
-	_destroy: function() {
-		if ( this.xhr ) {
-			this.xhr.abort();
-		}
-
-		this.element.removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" );
-
-		this.tablist
-			.removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" )
-			.removeAttr( "role" );
-
-		this.anchors
-			.removeClass( "ui-tabs-anchor" )
-			.removeAttr( "role" )
-			.removeAttr( "tabIndex" )
-			.removeUniqueId();
-
-		this.tabs.add( this.panels ).each(function() {
-			if ( $.data( this, "ui-tabs-destroy" ) ) {
-				$( this ).remove();
-			} else {
-				$( this )
-					.removeClass( "ui-state-default ui-state-active ui-state-disabled " +
-						"ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel" )
-					.removeAttr( "tabIndex" )
-					.removeAttr( "aria-live" )
-					.removeAttr( "aria-busy" )
-					.removeAttr( "aria-selected" )
-					.removeAttr( "aria-labelledby" )
-					.removeAttr( "aria-hidden" )
-					.removeAttr( "aria-expanded" )
-					.removeAttr( "role" );
-			}
-		});
-
-		this.tabs.each(function() {
-			var li = $( this ),
-				prev = li.data( "ui-tabs-aria-controls" );
-			if ( prev ) {
-				li
-					.attr( "aria-controls", prev )
-					.removeData( "ui-tabs-aria-controls" );
-			} else {
-				li.removeAttr( "aria-controls" );
-			}
-		});
-
-		this.panels.show();
-
-		if ( this.options.heightStyle !== "content" ) {
-			this.panels.css( "height", "" );
-		}
-	},
-
-	enable: function( index ) {
-		var disabled = this.options.disabled;
-		if ( disabled === false ) {
-			return;
-		}
-
-		if ( index === undefined ) {
-			disabled = false;
-		} else {
-			index = this._getIndex( index );
-			if ( $.isArray( disabled ) ) {
-				disabled = $.map( disabled, function( num ) {
-					return num !== index ? num : null;
-				});
-			} else {
-				disabled = $.map( this.tabs, function( li, num ) {
-					return num !== index ? num : null;
-				});
-			}
-		}
-		this._setupDisabled( disabled );
-	},
-
-	disable: function( index ) {
-		var disabled = this.options.disabled;
-		if ( disabled === true ) {
-			return;
-		}
-
-		if ( index === undefined ) {
-			disabled = true;
-		} else {
-			index = this._getIndex( index );
-			if ( $.inArray( index, disabled ) !== -1 ) {
-				return;
-			}
-			if ( $.isArray( disabled ) ) {
-				disabled = $.merge( [ index ], disabled ).sort();
-			} else {
-				disabled = [ index ];
-			}
-		}
-		this._setupDisabled( disabled );
-	},
-
-	load: function( index, event ) {
-		index = this._getIndex( index );
-		var that = this,
-			tab = this.tabs.eq( index ),
-			anchor = tab.find( ".ui-tabs-anchor" ),
-			panel = this._getPanelForTab( tab ),
-			eventData = {
-				tab: tab,
-				panel: panel
-			};
-
-		// not remote
-		if ( isLocal( anchor[ 0 ] ) ) {
-			return;
-		}
-
-		this.xhr = $.ajax( this._ajaxSettings( anchor, event, eventData ) );
-
-		// support: jQuery <1.8
-		// jQuery <1.8 returns false if the request is canceled in beforeSend,
-		// but as of 1.8, $.ajax() always returns a jqXHR object.
-		if ( this.xhr && this.xhr.statusText !== "canceled" ) {
-			tab.addClass( "ui-tabs-loading" );
-			panel.attr( "aria-busy", "true" );
-
-			this.xhr
-				.success(function( response ) {
-					// support: jQuery <1.8
-					// http://bugs.jquery.com/ticket/11778
-					setTimeout(function() {
-						panel.html( response );
-						that._trigger( "load", event, eventData );
-					}, 1 );
-				})
-				.complete(function( jqXHR, status ) {
-					// support: jQuery <1.8
-					// http://bugs.jquery.com/ticket/11778
-					setTimeout(function() {
-						if ( status === "abort" ) {
-							that.panels.stop( false, true );
-						}
-
-						tab.removeClass( "ui-tabs-loading" );
-						panel.removeAttr( "aria-busy" );
-
-						if ( jqXHR === that.xhr ) {
-							delete that.xhr;
-						}
-					}, 1 );
-				});
-		}
-	},
-
-	_ajaxSettings: function( anchor, event, eventData ) {
-		var that = this;
-		return {
-			url: anchor.attr( "href" ),
-			beforeSend: function( jqXHR, settings ) {
-				return that._trigger( "beforeLoad", event,
-					$.extend( { jqXHR : jqXHR, ajaxSettings: settings }, eventData ) );
-			}
-		};
-	},
-
-	_getPanelForTab: function( tab ) {
-		var id = $( tab ).attr( "aria-controls" );
-		return this.element.find( this._sanitizeSelector( "#" + id ) );
-	}
-});
-
-})( jQuery );
-
-(function( $, undefined ) {
-
-})( jQuery );
-
-(function( $, window ) {
-
-	$.mobile.iosorientationfixEnabled = true;
-
-	// This fix addresses an iOS bug, so return early if the UA claims it's something else.
-	var ua = navigator.userAgent,
-		zoom,
-		evt, x, y, z, aig;
-	if ( !( /iPhone|iPad|iPod/.test( navigator.platform ) && /OS [1-5]_[0-9_]* like Mac OS X/i.test( ua ) && ua.indexOf( "AppleWebKit" ) > -1 ) ) {
-		$.mobile.iosorientationfixEnabled = false;
-		return;
-	}
-
-	zoom = $.mobile.zoom;
-
-	function checkTilt( e ) {
-		evt = e.originalEvent;
-		aig = evt.accelerationIncludingGravity;
-
-		x = Math.abs( aig.x );
-		y = Math.abs( aig.y );
-		z = Math.abs( aig.z );
-
-		// If portrait orientation and in one of the danger zones
-		if ( !window.orientation && ( x > 7 || ( ( z > 6 && y < 8 || z < 8 && y > 6 ) && x > 5 ) ) ) {
-				if ( zoom.enabled ) {
-					zoom.disable();
-				}
-		}	else if ( !zoom.enabled ) {
-				zoom.enable();
-		}
-	}
-
-	$.mobile.document.on( "mobileinit", function() {
-		if ( $.mobile.iosorientationfixEnabled ) {
-			$.mobile.window
-				.bind( "orientationchange.iosorientationfix", zoom.enable )
-				.bind( "devicemotion.iosorientationfix", checkTilt );
-		}
-	});
-
-}( jQuery, this ));
-
-(function( $, window, undefined ) {
-	var	$html = $( "html" ),
-		$window = $.mobile.window;
-
-	//remove initial build class (only present on first pageshow)
-	function hideRenderingClass() {
-		$html.removeClass( "ui-mobile-rendering" );
-	}
-
-	// trigger mobileinit event - useful hook for configuring $.mobile settings before they're used
-	$( window.document ).trigger( "mobileinit" );
-
-	// support conditions
-	// if device support condition(s) aren't met, leave things as they are -> a basic, usable experience,
-	// otherwise, proceed with the enhancements
-	if ( !$.mobile.gradeA() ) {
-		return;
-	}
-
-	// override ajaxEnabled on platforms that have known conflicts with hash history updates
-	// or generally work better browsing in regular http for full page refreshes (BB5, Opera Mini)
-	if ( $.mobile.ajaxBlacklist ) {
-		$.mobile.ajaxEnabled = false;
-	}
-
-	// Add mobile, initial load "rendering" classes to docEl
-	$html.addClass( "ui-mobile ui-mobile-rendering" );
-
-	// This is a fallback. If anything goes wrong (JS errors, etc), or events don't fire,
-	// this ensures the rendering class is removed after 5 seconds, so content is visible and accessible
-	setTimeout( hideRenderingClass, 5000 );
-
-	$.extend( $.mobile, {
-		// find and enhance the pages in the dom and transition to the first page.
-		initializePage: function() {
-			// find present pages
-			var path = $.mobile.path,
-				$pages = $( ":jqmData(role='page'), :jqmData(role='dialog')" ),
-				hash = path.stripHash( path.stripQueryParams(path.parseLocation().hash) ),
-				theLocation = $.mobile.path.parseLocation(),
-				hashPage = hash ? document.getElementById( hash ) : undefined;
-
-			// if no pages are found, create one with body's inner html
-			if ( !$pages.length ) {
-				$pages = $( "body" ).wrapInner( "<div data-" + $.mobile.ns + "role='page'></div>" ).children( 0 );
-			}
-
-			// add dialogs, set data-url attrs
-			$pages.each(function() {
-				var $this = $( this );
-
-				// unless the data url is already set set it to the pathname
-				if ( !$this[ 0 ].getAttribute( "data-" + $.mobile.ns + "url" ) ) {
-					$this.attr( "data-" + $.mobile.ns + "url", $this.attr( "id" ) ||
-						theLocation.pathname + theLocation.search );
-				}
-			});
-
-			// define first page in dom case one backs out to the directory root (not always the first page visited, but defined as fallback)
-			$.mobile.firstPage = $pages.first();
-
-			// define page container
-			$.mobile.pageContainer = $.mobile.firstPage
-				.parent()
-				.addClass( "ui-mobile-viewport" )
-				.pagecontainer();
-
-			// initialize navigation events now, after mobileinit has occurred and the page container
-			// has been created but before the rest of the library is alerted to that fact
-			$.mobile.navreadyDeferred.resolve();
-
-			// alert listeners that the pagecontainer has been determined for binding
-			// to events triggered on it
-			$window.trigger( "pagecontainercreate" );
-
-			// cue page loading message
-			$.mobile.loading( "show" );
-
-			//remove initial build class (only present on first pageshow)
-			hideRenderingClass();
-
-			// if hashchange listening is disabled, there's no hash deeplink,
-			// the hash is not valid (contains more than one # or does not start with #)
-			// or there is no page with that hash, change to the first page in the DOM
-			// Remember, however, that the hash can also be a path!
-			if ( ! ( $.mobile.hashListeningEnabled &&
-				$.mobile.path.isHashValid( location.hash ) &&
-				( $( hashPage ).is( ":jqmData(role='page')" ) ||
-					$.mobile.path.isPath( hash ) ||
-					hash === $.mobile.dialogHashKey ) ) ) {
-
-				// make sure to set initial popstate state if it exists
-				// so that navigation back to the initial page works properly
-				if ( $.event.special.navigate.isPushStateEnabled() ) {
-					$.mobile.navigate.navigator.squash( path.parseLocation().href );
-				}
-
-				$.mobile.changePage( $.mobile.firstPage, {
-					transition: "none",
-					reverse: true,
-					changeHash: false,
-					fromHashChange: true
-				});
-			} else {
-				// trigger hashchange or navigate to squash and record the correct
-				// history entry for an initial hash path
-				if ( !$.event.special.navigate.isPushStateEnabled() ) {
-					$window.trigger( "hashchange", [true] );
-				} else {
-					// TODO figure out how to simplify this interaction with the initial history entry
-					// at the bottom js/navigate/navigate.js
-					$.mobile.navigate.history.stack = [];
-					$.mobile.navigate( $.mobile.path.isPath( location.hash ) ? location.hash : location.href );
-				}
-			}
-		}
-	});
-
-	$(function() {
-		//Run inlineSVG support test
-		$.support.inlineSVG();
-
-		// check which scrollTop value should be used by scrolling to 1 immediately at domready
-		// then check what the scroll top is. Android will report 0... others 1
-		// note that this initial scroll won't hide the address bar. It's just for the check.
-
-		// hide iOS browser chrome on load if hideUrlBar is true this is to try and do it as soon as possible
-		if ( $.mobile.hideUrlBar ) {
-			window.scrollTo( 0, 1 );
-		}
-
-		// if defaultHomeScroll hasn't been set yet, see if scrollTop is 1
-		// it should be 1 in most browsers, but android treats 1 as 0 (for hiding addr bar)
-		// so if it's 1, use 0 from now on
-		$.mobile.defaultHomeScroll = ( !$.support.scrollTop || $.mobile.window.scrollTop() === 1 ) ? 0 : 1;
-
-		//dom-ready inits
-		if ( $.mobile.autoInitializePage ) {
-			$.mobile.initializePage();
-		}
-
-		// window load event
-		// hide iOS browser chrome on load if hideUrlBar is true this is as fall back incase we were too early before
-		if ( $.mobile.hideUrlBar ) {
-			$window.load( $.mobile.silentScroll );
-		}
-
-		if ( !$.support.cssPointerEvents ) {
-			// IE and Opera don't support CSS pointer-events: none that we use to disable link-based buttons
-			// by adding the 'ui-disabled' class to them. Using a JavaScript workaround for those browser.
-			// https://github.com/jquery/jquery-mobile/issues/3558
-
-			// DEPRECATED as of 1.4.0 - remove ui-disabled after 1.4.0 release
-			// only ui-state-disabled should be present thereafter
-			$.mobile.document.delegate( ".ui-state-disabled,.ui-disabled", "vclick",
-				function( e ) {
-					e.preventDefault();
-					e.stopImmediatePropagation();
-				}
-			);
-		}
-	});
-}( jQuery, this ));
-
-
-}));
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_jquerymobile_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_jquerymobile_js.xml
deleted file mode 100644
index 0b627ba1e4198efcd7f2065bd63a83d1bbb10e9e..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_jquerymobile_js.xml
+++ /dev/null
@@ -1,320 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Web Script" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Access_contents_information_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Add_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Change_local_roles_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_Modify_portal_content_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>_View_Permission</string> </key>
-            <value>
-              <tuple>
-                <string>Anonymous</string>
-                <string>Assignee</string>
-                <string>Assignor</string>
-                <string>Associate</string>
-                <string>Auditor</string>
-                <string>Manager</string>
-                <string>Owner</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_md5</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>jquerymobile.js</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>rjs_jquerymobile_js</string> </value>
-        </item>
-        <item>
-            <key> <string>language</string> </key>
-            <value> <string>en</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Web Script</string> </value>
-        </item>
-        <item>
-            <key> <string>short_title</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>jQuery Mobile JS</string> </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>1.4.0-alpha.2</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>document_publication_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>edit_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>processing_status_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>publish_alive</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>romain</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1406898405.74</float>
-                        <string>GMT</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>published_alive</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>edit</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>sven</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value>
-                  <none/>
-                </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>938.18960.34745.36676</string> </value>
-            </item>
-            <item>
-                <key> <string>state</string> </key>
-                <value> <string>current</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1413468526.28</float>
-                        <string>GMT</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-  <record id="5" aka="AAAAAAAAAAU=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>detect_converted_file</string> </value>
-            </item>
-            <item>
-                <key> <string>actor</string> </key>
-                <value> <string>romain</string> </value>
-            </item>
-            <item>
-                <key> <string>comment</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>error_message</string> </key>
-                <value> <string></string> </value>
-            </item>
-            <item>
-                <key> <string>external_processing_state</string> </key>
-                <value> <string>converted</string> </value>
-            </item>
-            <item>
-                <key> <string>serial</string> </key>
-                <value> <string>0.0.0.0</string> </value>
-            </item>
-            <item>
-                <key> <string>time</string> </key>
-                <value>
-                  <object>
-                    <klass>
-                      <global name="DateTime" module="DateTime.DateTime"/>
-                    </klass>
-                    <tuple>
-                      <none/>
-                    </tuple>
-                    <state>
-                      <tuple>
-                        <float>1404998932.44</float>
-                        <string>GMT</string>
-                      </tuple>
-                    </state>
-                  </object>
-                </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_site_module/monitoring_render_js.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_site_module/officejs_monitoring.xml
similarity index 95%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_site_module/monitoring_render_js.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_site_module/officejs_monitoring.xml
index 3e3efae3c11d4f451f36792e5f9c1bec57d2d156..bed894f230f8365f45a80e85e516817fd268bdf2 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_site_module/monitoring_render_js.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_site_module/officejs_monitoring.xml
@@ -133,7 +133,7 @@
                     <key>
                       <tuple>
                         <int>99</int>
-                        <string>ERP5 Web Site/monitoring_render_js</string>
+                        <string>ERP5 Web Site/officejs_monitoring</string>
                       </tuple>
                     </key>
                     <value>
@@ -253,17 +253,17 @@
             <value>
               <tuple>
                 <string>aggregate/web_page_module/gadget_officejs_bootloader.html</string>
-                <string>caching_policy/no-cache</string>
+                <string>caching_policy/must-revalidate</string>
               </tuple>
             </value>
         </item>
         <item>
             <key> <string>configuration_cache_file</string> </key>
-            <value> <string>gadget_monitoring.appcache</string> </value>
+            <value> <string>gadget_officejs_monitoring.appcache</string> </value>
         </item>
         <item>
             <key> <string>configuration_content_security_policy</string> </key>
-            <value> <string>default-src \'self\'; img-src \'self\' data:; media-src \'self\' blob:; connect-src \'self\' https://content.dropboxapi.com https://api.dropboxapi.com mail.tiolive.com data: localhost:5378 *.host.vifib.net *.node.vifib.com *.erp5.net https://netdna.bootstrapcdn.com; script-src \'self\' \'unsafe-eval\' \'unsafe-inline\'; font-src \'self\' netdna.bootstrapcdn.com; style-src \'self\' netdna.bootstrapcdn.com \'unsafe-inline\' data:; frame-src \'self\' data:</string> </value>
+            <value> <string>default-src \'self\'; img-src \'self\' data:; media-src \'self\' blob:; connect-src \'self\' https://content.dropboxapi.com https://api.dropboxapi.com mail.tiolive.com data: * localhost:5378 *.vifib.erp5.net *.host.vifib.net *.node.vifib.com *.erp5.net https://netdna.bootstrapcdn.com; script-src \'self\' \'unsafe-eval\' \'unsafe-inline\'; font-src \'self\' netdna.bootstrapcdn.com; style-src \'self\' netdna.bootstrapcdn.com \'unsafe-inline\' data:; frame-src \'self\' data:</string> </value>
         </item>
         <item>
             <key> <string>configuration_latest_document_version</string> </key>
@@ -301,7 +301,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>monitoring_render_js</string> </value>
+            <value> <string>officejs_monitoring</string> </value>
         </item>
         <item>
             <key> <string>layout_configuration_form_id</string> </key>
@@ -467,7 +467,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1503922757.92</float>
+                        <float>1507825401.94</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -512,7 +512,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.48211.31484.14250</string> </value>
+                <value> <string>963.16563.15280.46899</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -530,7 +530,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1504021651.02</float>
+                        <float>1510153533.44</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/PathTemplateItem/web_site_module/monitoring_render_js/app.xml b/bt5/erp5_web_monitoring/PathTemplateItem/web_site_module/officejs_monitoring/app.xml
similarity index 86%
rename from bt5/erp5_web_monitoring/PathTemplateItem/web_site_module/monitoring_render_js/app.xml
rename to bt5/erp5_web_monitoring/PathTemplateItem/web_site_module/officejs_monitoring/app.xml
index 4fc25f3e32484157cecaf769e794658b122f6a00..b19e2f8fb2725b3c1bdab56999da518704b0a451 100644
--- a/bt5/erp5_web_monitoring/PathTemplateItem/web_site_module/monitoring_render_js/app.xml
+++ b/bt5/erp5_web_monitoring/PathTemplateItem/web_site_module/officejs_monitoring/app.xml
@@ -253,6 +253,36 @@
                       <value> <string>string</string> </value>
                   </item>
                 </dictionary>
+                <dictionary>
+                  <item>
+                      <key> <string>id</string> </key>
+                      <value> <string>configuration_default_jio_document_page_gadget_url</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>type</string> </key>
+                      <value> <string>string</string> </value>
+                  </item>
+                </dictionary>
+                <dictionary>
+                  <item>
+                      <key> <string>id</string> </key>
+                      <value> <string>configuration_frontpage_gadget_url</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>type</string> </key>
+                      <value> <string>string</string> </value>
+                  </item>
+                </dictionary>
+                <dictionary>
+                  <item>
+                      <key> <string>id</string> </key>
+                      <value> <string>configuration_default_view_action_reference</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>type</string> </key>
+                      <value> <string>string</string> </value>
+                  </item>
+                </dictionary>
               </tuple>
             </value>
         </item>
@@ -267,7 +297,7 @@
             <value>
               <tuple>
                 <string>caching_policy/must-revalidate</string>
-                <string>aggregate/web_page_module/rjs_gadget_monitoring_html</string>
+                <string>aggregate/web_page_module/rjs_gadget_erp5_launcher_html</string>
               </tuple>
             </value>
         </item>
@@ -277,7 +307,19 @@
         </item>
         <item>
             <key> <string>configuration_content_security_policy</string> </key>
-            <value> <string>default-src \'self\'; img-src \'self\' data:; media-src \'self\' blob:; connect-src \'self\' https://content.dropboxapi.com https://api.dropboxapi.com mail.tiolive.com data: localhost:5378 *.host.vifib.net *.node.vifib.com *.erp5.net https://netdna.bootstrapcdn.com; script-src \'self\' \'unsafe-eval\' \'unsafe-inline\'; font-src \'self\' netdna.bootstrapcdn.com; style-src \'self\' netdna.bootstrapcdn.com \'unsafe-inline\' data:; frame-src \'self\' data:</string> </value>
+            <value> <string>default-src \'self\'; img-src \'self\' data:; media-src \'self\' blob:; connect-src \'self\' https://content.dropboxapi.com https://api.dropboxapi.com mail.tiolive.com data: * localhost:5378 *.vifib.erp5.net *.host.vifib.net *.node.vifib.com *.erp5.net https://netdna.bootstrapcdn.com; script-src \'self\' \'unsafe-eval\' \'unsafe-inline\'; font-src \'self\' netdna.bootstrapcdn.com; style-src \'self\' netdna.bootstrapcdn.com \'unsafe-inline\' data:; frame-src \'self\' data:</string> </value>
+        </item>
+        <item>
+            <key> <string>configuration_default_jio_document_page_gadget_url</string> </key>
+            <value> <string>ojs_controller</string> </value>
+        </item>
+        <item>
+            <key> <string>configuration_default_view_action_reference</string> </key>
+            <value> <string>jio_view</string> </value>
+        </item>
+        <item>
+            <key> <string>configuration_frontpage_gadget_url</string> </key>
+            <value> <string>ojsm_status_list</string> </value>
         </item>
         <item>
             <key> <string>configuration_hateoas_url</string> </key>
@@ -285,23 +327,23 @@
         </item>
         <item>
             <key> <string>configuration_header_gadget_url</string> </key>
-            <value> <string>gadget_monitoring_header.html</string> </value>
+            <value> <string>gadget_officejs_monitoring_header.html</string> </value>
         </item>
         <item>
             <key> <string>configuration_jio_gadget_url</string> </key>
-            <value> <string>gadget_monitoring_jio.html</string> </value>
+            <value> <string>gadget_officejs_monitoring_jio.html</string> </value>
         </item>
         <item>
             <key> <string>configuration_manifest_url</string> </key>
-            <value> <string>gadget_monitoring.appcache</string> </value>
+            <value> <string>gadget_officejs_monitoring.appcache</string> </value>
         </item>
         <item>
             <key> <string>configuration_panel_gadget_url</string> </key>
-            <value> <string>gadget_monitoring_application_panel.html</string> </value>
+            <value> <string>gadget_officejs_monitoring_panel.html</string> </value>
         </item>
         <item>
             <key> <string>configuration_router_gadget_url</string> </key>
-            <value> <string>gadget_monitoring_router.html</string> </value>
+            <value> <string>gadget_officejs_monitoring_router.html</string> </value>
         </item>
         <item>
             <key> <string>configuration_translation_gadget_url</string> </key>
@@ -475,7 +517,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1503929920.58</float>
+                        <float>1507825544.87</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
@@ -520,7 +562,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>961.48181.3137.59750</string> </value>
+                <value> <string>963.16563.15280.46899</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -538,7 +580,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1504021642.59</float>
+                        <float>1510153673.61</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_monitoring/RegisteredSkinSelectionTemplateItem/registered_skin_selection.xml b/bt5/erp5_web_monitoring/RegisteredSkinSelectionTemplateItem/registered_skin_selection.xml
deleted file mode 100644
index d6f6a428c1e40dfa4596465e6d46a03cca954328..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/RegisteredSkinSelectionTemplateItem/registered_skin_selection.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<registered_skin_selection>
- <skin_folder_selection>
-  <skin_folder>erp5_web_renderjs_ui</skin_folder>
-  <skin_selection>RJS</skin_selection>
- </skin_folder_selection>
-</registered_skin_selection>
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/bt/dependency_list b/bt5/erp5_web_monitoring/bt/dependency_list
index 102f336e450cb70e91e7c8080e46c1efb998e633..0a285366fafc2e9dfe21ff87188130a9a35aef41 100644
--- a/bt5/erp5_web_monitoring/bt/dependency_list
+++ b/bt5/erp5_web_monitoring/bt/dependency_list
@@ -1,3 +1,2 @@
-erp5_web
 erp5_web_renderjs_ui
 erp5_officejs
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/bt/template_keep_last_workflow_history_only_path_list b/bt5/erp5_web_monitoring/bt/template_keep_last_workflow_history_only_path_list
index e31da8463cf6b177f05eca50d735635d1ba3f06a..51aefd45d1ebf66372368796abcd5ffd482e98c7 100644
--- a/bt5/erp5_web_monitoring/bt/template_keep_last_workflow_history_only_path_list
+++ b/bt5/erp5_web_monitoring/bt/template_keep_last_workflow_history_only_path_list
@@ -1,15 +1,20 @@
+web_page_module/gadget_erp5_page_settings_configurator_*
+web_page_module/ojsm_gadget_erp5_statusfield_*
 web_page_module/Notify_min_js
-web_page_module/gadget_monitoring_*
-web_page_module/jquery.magnific-popup.min.js
+web_page_module/gadget_erp5_field_status_*
+web_page_module/gadget_erp5_page_ojsm_*
+web_page_module/gadget_officejs_jio_global_view_html
+web_page_module/gadget_officejs_jio_global_view_js
+web_page_module/gadget_officejs_jio_opml_view_html
+web_page_module/gadget_officejs_jio_opml_view_js
+web_page_module/gadget_officejs_jio_promise_view_html
+web_page_module/gadget_officejs_jio_promise_view_js
+web_page_module/gadget_officejs_monitoring_*
 web_page_module/jsen_json_validator_js
-web_page_module/magnific-popup.css
-web_page_module/monitoring_jio_*
-web_page_module/rjs_gadget_erp5_css
-web_page_module/rjs_gadget_erp5_js
-web_page_module/rjs_gadget_global_js
-web_page_module/rjs_gadget_monitoring_html
+web_page_module/monitoring_jio_http_storage_js
+web_page_module/monitoring_jio_parser_storage_js
+web_page_module/monitoring_jio_storage_js
+web_page_module/monitoring_jio_web_storage_js
 web_page_module/rjs_jquery_js
-web_page_module/rjs_jquerymobile_css
-web_page_module/rjs_jquerymobile_js
-web_site_module/monitoring_render_js
-web_site_module/monitoring_render_js/**
\ No newline at end of file
+web_site_module/officejs_monitoring
+web_site_module/officejs_monitoring/**
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/bt/template_keep_workflow_path_list b/bt5/erp5_web_monitoring/bt/template_keep_workflow_path_list
index e31da8463cf6b177f05eca50d735635d1ba3f06a..51aefd45d1ebf66372368796abcd5ffd482e98c7 100644
--- a/bt5/erp5_web_monitoring/bt/template_keep_workflow_path_list
+++ b/bt5/erp5_web_monitoring/bt/template_keep_workflow_path_list
@@ -1,15 +1,20 @@
+web_page_module/gadget_erp5_page_settings_configurator_*
+web_page_module/ojsm_gadget_erp5_statusfield_*
 web_page_module/Notify_min_js
-web_page_module/gadget_monitoring_*
-web_page_module/jquery.magnific-popup.min.js
+web_page_module/gadget_erp5_field_status_*
+web_page_module/gadget_erp5_page_ojsm_*
+web_page_module/gadget_officejs_jio_global_view_html
+web_page_module/gadget_officejs_jio_global_view_js
+web_page_module/gadget_officejs_jio_opml_view_html
+web_page_module/gadget_officejs_jio_opml_view_js
+web_page_module/gadget_officejs_jio_promise_view_html
+web_page_module/gadget_officejs_jio_promise_view_js
+web_page_module/gadget_officejs_monitoring_*
 web_page_module/jsen_json_validator_js
-web_page_module/magnific-popup.css
-web_page_module/monitoring_jio_*
-web_page_module/rjs_gadget_erp5_css
-web_page_module/rjs_gadget_erp5_js
-web_page_module/rjs_gadget_global_js
-web_page_module/rjs_gadget_monitoring_html
+web_page_module/monitoring_jio_http_storage_js
+web_page_module/monitoring_jio_parser_storage_js
+web_page_module/monitoring_jio_storage_js
+web_page_module/monitoring_jio_web_storage_js
 web_page_module/rjs_jquery_js
-web_page_module/rjs_jquerymobile_css
-web_page_module/rjs_jquerymobile_js
-web_site_module/monitoring_render_js
-web_site_module/monitoring_render_js/**
\ No newline at end of file
+web_site_module/officejs_monitoring
+web_site_module/officejs_monitoring/**
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/bt/template_path_list b/bt5/erp5_web_monitoring/bt/template_path_list
index e31da8463cf6b177f05eca50d735635d1ba3f06a..c0910b1dd042451cc2ec582269c462ad8680a9c2 100644
--- a/bt5/erp5_web_monitoring/bt/template_path_list
+++ b/bt5/erp5_web_monitoring/bt/template_path_list
@@ -1,15 +1,20 @@
 web_page_module/Notify_min_js
-web_page_module/gadget_monitoring_*
-web_page_module/jquery.magnific-popup.min.js
+web_page_module/gadget_erp5_field_status_*
+web_page_module/gadget_erp5_page_ojsm_*
+web_page_module/gadget_erp5_page_settings_configurator_*
+web_page_module/gadget_officejs_jio_global_view_html
+web_page_module/gadget_officejs_jio_global_view_js
+web_page_module/gadget_officejs_jio_opml_view_html
+web_page_module/gadget_officejs_jio_opml_view_js
+web_page_module/gadget_officejs_jio_promise_view_html
+web_page_module/gadget_officejs_jio_promise_view_js
+web_page_module/gadget_officejs_monitoring_*
 web_page_module/jsen_json_validator_js
-web_page_module/magnific-popup.css
-web_page_module/monitoring_jio_*
-web_page_module/rjs_gadget_erp5_css
-web_page_module/rjs_gadget_erp5_js
-web_page_module/rjs_gadget_global_js
-web_page_module/rjs_gadget_monitoring_html
+web_page_module/monitoring_jio_http_storage_js
+web_page_module/monitoring_jio_parser_storage_js
+web_page_module/monitoring_jio_storage_js
+web_page_module/monitoring_jio_web_storage_js
+web_page_module/ojsm_gadget_erp5_statusfield_*
 web_page_module/rjs_jquery_js
-web_page_module/rjs_jquerymobile_css
-web_page_module/rjs_jquerymobile_js
-web_site_module/monitoring_render_js
-web_site_module/monitoring_render_js/**
\ No newline at end of file
+web_site_module/officejs_monitoring
+web_site_module/officejs_monitoring/**
\ No newline at end of file
diff --git a/bt5/erp5_web_monitoring/bt/template_registered_skin_selection_list b/bt5/erp5_web_monitoring/bt/template_registered_skin_selection_list
deleted file mode 100644
index 6d44cbb909588f66956d4d5f646785b8a38fa5ce..0000000000000000000000000000000000000000
--- a/bt5/erp5_web_monitoring/bt/template_registered_skin_selection_list
+++ /dev/null
@@ -1 +0,0 @@
-erp5_web_renderjs_ui | RJS
\ No newline at end of file