=== modified file 'CMakeLists.txt'
--- CMakeLists.txt	2015-10-22 06:23:52 +0000
+++ CMakeLists.txt	2015-10-23 18:57:47 +0000
@@ -60,6 +60,7 @@
 endif()
 
 add_subdirectory(src)
+add_subdirectory(doc)
 
 install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/examples
         DESTINATION ${CMAKE_INSTALL_DATADIR}/unity-js-scopes)

=== modified file 'debian/control'
--- debian/control	2015-10-22 05:41:05 +0000
+++ debian/control	2015-10-23 18:57:47 +0000
@@ -6,6 +6,7 @@
                cmake (>= 2.8.9),
                debhelper (>= 9),
                pkg-config,
+               python3,
                g++,
                libboost-filesystem-dev,
                libunity-scopes-dev,
@@ -56,3 +57,12 @@
 Description: Development files for Unity JavaScript Scopes
  Provides a set of Qt Creator templates and examples for Ubuntu Scopes
  written in JavaScript.
+
+Package: unity-js-scopes-doc
+Architecture: any
+Multi-Arch: foreign
+Depends: ${misc:Depends},
+         ${shlibs:Depends},
+         unity-js-scopes-bindings (= ${binary:Version}),
+Description: Documentation for javascript unity scopes
+ Provides the documenttaion for unity scopes javascript API.

=== modified file 'debian/copyright'
--- debian/copyright	2015-07-09 01:02:19 +0000
+++ debian/copyright	2015-10-23 18:57:47 +0000
@@ -18,3 +18,38 @@
  On Debian systems, the full text of the GNU General Public License
  version 3 can be found in the file /usr/share/common-licenses/GPL-3.
 
+Files: doc/docbuild/assets/js/yui-prettify.js
+       doc/docbuild/assets/js/api-list.js
+       doc/docbuild/assets/js/apidocs.js
+       doc/docbuild/assets/js/api-search.js
+       doc/docbuild/assets/js/api-filter.js
+       doc/docbuild/assets/vendor/prettify/prettify-min.js
+       doc/docbuild/api.js
+Copyright: 2011 Yahoo! Inc.
+License: BSD-3-Clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ .
+ * Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+ .
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ .
+ * The names of Kitware, Inc., the Insight Consortium, or the names of
+   any consortium members, or of any contributors, may not be used to
+   endorse or promote products derived from this software without
+   specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS ``AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

=== added file 'debian/unity-js-scopes-doc.install'
--- debian/unity-js-scopes-doc.install	1970-01-01 00:00:00 +0000
+++ debian/unity-js-scopes-doc.install	2015-10-23 18:57:47 +0000
@@ -0,0 +1,1 @@
+usr/share/unity-js-scopes/doc
\ No newline at end of file

=== added file 'doc/CMakeLists.txt'
--- doc/CMakeLists.txt	1970-01-01 00:00:00 +0000
+++ doc/CMakeLists.txt	2015-10-23 18:57:47 +0000
@@ -0,0 +1,25 @@
+# vim:expandtab:shiftwidth=2:tabstop=2:
+
+# Copyright (C) 2015 Canonical Ltd.
+
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+add_custom_target(
+  doc
+  ./generate-doc.py ${CMAKE_CURRENT_SOURCE_DIR}/../src/bindings/src ${CMAKE_BINARY_DIR}/doc/docbuild
+  )
+
+install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/docbuild
+        DESTINATION ${CMAKE_INSTALL_DATADIR}/unity-js-scopes/doc)

=== added directory 'doc/docbuild'
=== added file 'doc/docbuild/api.js'
--- doc/docbuild/api.js	1970-01-01 00:00:00 +0000
+++ doc/docbuild/api.js	2015-10-23 18:57:47 +0000
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2011 Yahoo! Inc.
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of the Yahoo! Inc. nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+YUI.add("yuidoc-meta", function(Y) {
+   Y.YUIDoc = { meta: {
+    "classes": [
+        "ActionMetadata",
+        "ActivationQuery",
+        "CategorisedResult",
+        "Category",
+        "CategoryRenderer",
+        "ColumnLayout",
+        "PreviewQuery",
+        "PreviewReply",
+        "PreviewWidget",
+        "Result",
+        "Scope",
+        "SearchMetaData",
+        "SearchQuery",
+        "SearchReply"
+    ],
+    "modules": [
+        "ScopeJS"
+    ],
+    "allModules": [
+        {
+            "displayName": "ScopeJS",
+            "name": "ScopeJS",
+            "description": "Metadata passed to scopes for preview and activation"
+        }
+    ]
+} };
+});

=== added directory 'doc/docbuild/assets'
=== added directory 'doc/docbuild/assets/css'
=== added file 'doc/docbuild/assets/css/external-small.png'
Binary files doc/docbuild/assets/css/external-small.png	1970-01-01 00:00:00 +0000 and doc/docbuild/assets/css/external-small.png	2015-10-23 18:57:47 +0000 differ
=== added file 'doc/docbuild/assets/css/logo.png'
Binary files doc/docbuild/assets/css/logo.png	1970-01-01 00:00:00 +0000 and doc/docbuild/assets/css/logo.png	2015-10-23 18:57:47 +0000 differ
=== added file 'doc/docbuild/assets/css/main.css'
--- doc/docbuild/assets/css/main.css	1970-01-01 00:00:00 +0000
+++ doc/docbuild/assets/css/main.css	2015-10-23 18:57:47 +0000
@@ -0,0 +1,783 @@
+/*
+Font sizes for all selectors other than the body are given in percentages,
+with 100% equal to 13px. To calculate a font size percentage, multiply the
+desired size in pixels by 7.6923076923.
+
+Here's a quick lookup table:
+
+10px - 76.923%
+11px - 84.615%
+12px - 92.308%
+13px - 100%
+14px - 107.692%
+15px - 115.385%
+16px - 123.077%
+17px - 130.769%
+18px - 138.462%
+19px - 146.154%
+20px - 153.846%
+*/
+
+html {
+    background: #fff;
+    color: #333;
+    overflow-y: scroll;
+}
+
+body {
+    /*font: 13px/1.4 'Lucida Grande', 'Lucida Sans Unicode', 'DejaVu Sans', 'Bitstream Vera Sans', 'Helvetica', 'Arial', sans-serif;*/
+    font: 13px/1.4 'Helvetica', 'Arial', sans-serif;
+    margin: 0;
+    padding: 0;
+}
+
+/* -- Links ----------------------------------------------------------------- */
+a {
+    color: #356de4;
+    text-decoration: none;
+}
+
+.hidden {
+    display: none;
+}
+
+a:hover { text-decoration: underline; }
+
+/* "Jump to Table of Contents" link is shown to assistive tools, but hidden from
+   sight until it's focused. */
+.jump {
+    position: absolute;
+    padding: 3px 6px;
+    left: -99999px;
+    top: 0;
+}
+
+.jump:focus { left: 40%; }
+
+/* -- Paragraphs ------------------------------------------------------------ */
+p { margin: 1.3em 0; }
+dd p, td p { margin-bottom: 0; }
+dd p:first-child, td p:first-child { margin-top: 0; }
+
+/* -- Headings -------------------------------------------------------------- */
+h1, h2, h3, h4, h5, h6 {
+    color: #D98527;/*was #f80*/
+    font-family: 'Trebuchet MS', sans-serif;
+    font-weight: bold;
+    line-height: 1.1;
+    margin: 1.1em 0 0.5em;
+}
+
+h1 {
+    font-size: 184.6%;
+    color: #30418C;
+    margin: 0.75em 0 0.5em;
+}
+
+h2 {
+    font-size: 153.846%;
+    color: #E48A2B;
+}
+
+h3 { font-size: 138.462%; }
+
+h4 {
+    border-bottom: 1px solid #DBDFEA;
+    color: #E48A2B;
+    font-size: 115.385%;
+    font-weight: normal;
+    padding-bottom: 2px;
+}
+
+h5, h6 { font-size: 107.692%; }
+
+/* -- Code and examples ----------------------------------------------------- */
+code, kbd, pre, samp {
+    font-family: Menlo, Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;
+    font-size: 92.308%;
+    line-height: 1.35;
+}
+
+p code, p kbd, p samp, li code {
+    background: #FCFBFA;
+    border: 1px solid #EFEEED;
+    padding: 0 3px;
+}
+
+a code, a kbd, a samp,
+pre code, pre kbd, pre samp,
+table code, table kbd, table samp,
+.intro code, .intro kbd, .intro samp,
+.toc code, .toc kbd, .toc samp {
+    background: none;
+    border: none;
+    padding: 0;
+}
+
+pre.code, pre.terminal, pre.cmd {
+    overflow-x: auto;
+    *overflow-x: scroll;
+    padding: 0.3em 0.6em;
+}
+
+pre.code {
+    background: #FCFBFA;
+    border: 1px solid #EFEEED;
+    border-left-width: 5px;
+}
+
+pre.terminal, pre.cmd {
+    background: #F0EFFC;
+    border: 1px solid #D0CBFB;
+    border-left: 5px solid #D0CBFB;
+}
+
+/* Don't reduce the font size of <code>/<kbd>/<samp> elements inside <pre>
+   blocks. */
+pre code, pre kbd, pre samp { font-size: 100%; }
+
+/* Used to denote text that shouldn't be selectable, such as line numbers or
+   shell prompts. Guess which browser this doesn't work in. */
+.noselect {
+    -moz-user-select: -moz-none;
+    -khtml-user-select: none;
+    -webkit-user-select: none;
+    -o-user-select: none;
+    user-select: none;
+}
+
+/* -- Lists ----------------------------------------------------------------- */
+dd { margin: 0.2em 0 0.7em 1em; }
+dl { margin: 1em 0; }
+dt { font-weight: bold; }
+
+/* -- Tables ---------------------------------------------------------------- */
+caption, th { text-align: left; }
+
+table {
+    border-collapse: collapse;
+    width: 100%;
+}
+
+td, th {
+    border: 1px solid #fff;
+    padding: 5px 12px;
+    vertical-align: top;
+}
+
+td { background: #E6E9F5; }
+td dl { margin: 0; }
+td dl dl { margin: 1em 0; }
+td pre:first-child { margin-top: 0; }
+
+th {
+    background: #D2D7E6;/*#97A0BF*/
+    border-bottom: none;
+    border-top: none;
+    color: #000;/*#FFF1D5*/
+    font-family: 'Trebuchet MS', sans-serif;
+    font-weight: bold;
+    line-height: 1.3;
+    white-space: nowrap;
+}
+
+
+/* -- Layout and Content ---------------------------------------------------- */
+#doc {
+    margin: auto;
+    min-width: 1024px;
+}
+
+.content { padding: 0 20px 0 25px; }
+
+.sidebar {
+    padding: 0 15px 0 10px;
+}
+#bd {
+    padding: 7px 0 130px;
+    position: relative;
+    width: 99%;
+}
+
+/* -- Table of Contents ----------------------------------------------------- */
+
+/* The #toc id refers to the single global table of contents, while the .toc
+   class refers to generic TOC lists that could be used throughout the page. */
+
+.toc code, .toc kbd, .toc samp { font-size: 100%; }
+.toc li { font-weight: bold; }
+.toc li li { font-weight: normal; }
+
+/* -- Intro and Example Boxes ----------------------------------------------- */
+/*
+.intro, .example { margin-bottom: 2em; }
+.example {
+    -moz-border-radius: 4px;
+    -webkit-border-radius: 4px;
+    border-radius: 4px;
+    -moz-box-shadow: 0 0 5px #bfbfbf;
+    -webkit-box-shadow: 0 0 5px #bfbfbf;
+    box-shadow: 0 0 5px #bfbfbf;
+    padding: 1em;
+}
+.intro {
+    background: none repeat scroll 0 0 #F0F1F8; border: 1px solid #D4D8EB; padding: 0 1em;
+}
+*/
+
+/* -- Other Styles ---------------------------------------------------------- */
+
+/* These are probably YUI-specific, and should be moved out of Selleck's default
+   theme. */
+
+.button {
+    border: 1px solid #dadada;
+    -moz-border-radius: 3px;
+    -webkit-border-radius: 3px;
+    border-radius: 3px;
+    color: #444;
+    display: inline-block;
+    font-family: Helvetica, Arial, sans-serif;
+    font-size: 92.308%;
+    font-weight: bold;
+    padding: 4px 13px 3px;
+    -moz-text-shadow: 1px 1px 0 #fff;
+    -webkit-text-shadow: 1px 1px 0 #fff;
+    text-shadow: 1px 1px 0 #fff;
+    white-space: nowrap;
+
+    background: #EFEFEF; /* old browsers */
+    background: -moz-linear-gradient(top, #f5f5f5 0%, #efefef 50%, #e5e5e5 51%, #dfdfdf 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f5f5f5), color-stop(50%,#efefef), color-stop(51%,#e5e5e5), color-stop(100%,#dfdfdf)); /* webkit */
+    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#dfdfdf',GradientType=0 ); /* ie */
+}
+
+.button:hover {
+    border-color: #466899;
+    color: #fff;
+    text-decoration: none;
+    -moz-text-shadow: 1px 1px 0 #222;
+    -webkit-text-shadow: 1px 1px 0 #222;
+    text-shadow: 1px 1px 0 #222;
+
+    background: #6396D8; /* old browsers */
+    background: -moz-linear-gradient(top, #6396D8 0%, #5A83BC 50%, #547AB7 51%, #466899 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#6396D8), color-stop(50%,#5A83BC), color-stop(51%,#547AB7), color-stop(100%,#466899)); /* webkit */
+    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#6396D8', endColorstr='#466899',GradientType=0 ); /* ie */
+}
+
+.newwindow { text-align: center; }
+
+.header .version em {
+    display: block;
+    text-align: right;
+}
+
+
+#classdocs .item {
+    border-bottom: 1px solid #466899;
+    margin: 1em 0;
+    padding: 1.5em;
+}
+
+#classdocs .item .params p,
+    #classdocs .item .returns p,{
+    display: inline;
+}
+
+#classdocs .item em code, #classdocs .item em.comment {
+    color: green;
+}
+
+#classdocs .item em.comment a {
+    color: green;
+    text-decoration: underline;
+}
+
+#classdocs .foundat {
+    font-size: 11px;
+    font-style: normal;
+}
+
+.attrs .emits {
+    margin-left: 2em;
+    padding: .5em;
+    border-left: 1px dashed #ccc;
+}
+
+abbr {
+    border-bottom: 1px dashed #ccc;
+    font-size: 80%;
+    cursor: help;
+}
+
+.prettyprint li.L0, 
+.prettyprint li.L1, 
+.prettyprint li.L2, 
+.prettyprint li.L3, 
+.prettyprint li.L5, 
+.prettyprint li.L6, 
+.prettyprint li.L7, 
+.prettyprint li.L8 {
+    list-style: decimal;
+}
+
+ul li p {
+    margin-top: 0;
+}
+
+.method .name {
+    font-size: 110%;
+}
+
+.apidocs .methods .extends .method,
+.apidocs .properties .extends .property,
+.apidocs .attrs .extends .attr,
+.apidocs .events .extends .event {
+    font-weight: bold;
+}
+
+.apidocs .methods .extends .inherited,
+.apidocs .properties .extends .inherited,
+.apidocs .attrs .extends .inherited,
+.apidocs .events .extends .inherited {
+    font-weight: normal;
+}
+
+#hd {
+    background: whiteSmoke;
+    background: -moz-linear-gradient(top,#DCDBD9 0,#F6F5F3 100%);
+    background: -webkit-gradient(linear,left top,left bottom,color-stop(0%,#DCDBD9),color-stop(100%,#F6F5F3));
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dcdbd9',endColorstr='#F6F5F3',GradientType=0);
+    border-bottom: 1px solid #DFDFDF;
+    padding: 0 15px 1px 20px;
+    margin-bottom: 15px;
+}
+
+#hd img {
+    margin-right: 10px;
+    vertical-align: middle;
+}
+
+
+/* -- API Docs CSS ---------------------------------------------------------- */
+
+/*
+This file is organized so that more generic styles are nearer the top, and more
+specific styles are nearer the bottom of the file. This allows us to take full
+advantage of the cascade to avoid redundant style rules. Please respect this
+convention when making changes.
+*/
+
+/* -- Generic TabView styles ------------------------------------------------ */
+
+/*
+These styles apply to all API doc tabviews. To change styles only for a
+specific tabview, see the other sections below.
+*/
+
+.yui3-js-enabled .apidocs .tabview {
+    visibility: hidden; /* Hide until the TabView finishes rendering. */
+    _visibility: visible;
+}
+
+.apidocs .tabview.yui3-tabview-content { visibility: visible; }
+.apidocs .tabview .yui3-tabview-panel { background: #fff; }
+
+/* -- Generic Content Styles ------------------------------------------------ */
+
+/* Headings */
+h2, h3, h4, h5, h6 {
+    border: none;
+    color: #30418C;
+    font-weight: bold;
+    text-decoration: none;
+}
+
+.link-docs {
+    float: right;
+    font-size: 15px;
+    margin: 4px 4px 6px;
+    padding: 6px 30px 5px;
+}
+
+.apidocs { zoom: 1; }
+
+/* Generic box styles. */
+.apidocs .box {
+    border: 1px solid;
+    border-radius: 3px;
+    margin: 1em 0;
+    padding: 0 1em;
+}
+
+/* A flag is a compact, capsule-like indicator of some kind. It's used to
+   indicate private and protected items, item return types, etc. in an
+   attractive and unobtrusive way. */
+.apidocs .flag {
+    background: #bababa;
+    border-radius: 3px;
+    color: #fff;
+    font-size: 11px;
+    margin: 0 0.5em;
+    padding: 2px 4px 1px;
+}
+
+/* Class/module metadata such as "Uses", "Extends", "Defined in", etc. */
+.apidocs .meta {
+    background: #f9f9f9;
+    border-color: #efefef;
+    color: #555;
+    font-size: 11px;
+    padding: 3px 6px;
+}
+
+.apidocs .meta p { margin: 0; }
+
+/* Deprecation warning. */
+.apidocs .box.deprecated,
+.apidocs .flag.deprecated {
+    background: #fdac9f;
+    border: 1px solid #fd7775;
+}
+
+.apidocs .box.deprecated p { margin: 0.5em 0; }
+.apidocs .flag.deprecated { color: #333; }
+
+/* Module/Class intro description. */
+.apidocs .intro {
+    background: #f0f1f8;
+    border-color: #d4d8eb;
+}
+
+/* Loading spinners. */
+#bd.loading .apidocs,
+#api-list.loading .yui3-tabview-panel {
+    background: #fff url(../img/spinner.gif) no-repeat center 70px;
+    min-height: 150px;
+}
+
+#bd.loading .apidocs .content,
+#api-list.loading .yui3-tabview-panel .apis {
+    display: none;
+}
+
+.apidocs .no-visible-items { color: #666; }
+
+/* Generic inline list. */
+.apidocs ul.inline {
+    display: inline;
+    list-style: none;
+    margin: 0;
+    padding: 0;
+}
+
+.apidocs ul.inline li { display: inline; }
+
+/* Comma-separated list. */
+.apidocs ul.commas li:after { content: ','; }
+.apidocs ul.commas li:last-child:after { content: ''; }
+
+/* Keyboard shortcuts. */
+kbd .cmd { font-family: Monaco, Helvetica; }
+
+/* -- Generic Access Level styles ------------------------------------------- */
+.apidocs .item.protected,
+.apidocs .item.private,
+.apidocs .index-item.protected,
+.apidocs .index-item.deprecated,
+.apidocs .index-item.private {
+    display: none;
+}
+
+.show-deprecated .item.deprecated,
+.show-deprecated .index-item.deprecated,
+.show-protected .item.protected,
+.show-protected .index-item.protected,
+.show-private .item.private,
+.show-private .index-item.private {
+    display: block;
+}
+
+.hide-inherited .item.inherited,
+.hide-inherited .index-item.inherited {
+    display: none;
+}
+
+/* -- Generic Item Index styles --------------------------------------------- */
+.apidocs .index { margin: 1.5em 0 3em; }
+
+.apidocs .index h3 {
+    border-bottom: 1px solid #efefef;
+    color: #333;
+    font-size: 13px;
+    margin: 2em 0 0.6em;
+    padding-bottom: 2px;
+}
+
+.apidocs .index .no-visible-items { margin-top: 2em; }
+
+.apidocs .index-list {
+    border-color: #efefef;
+    font-size: 12px;
+    list-style: none;
+    margin: 0;
+    padding: 0;
+    -moz-column-count: 4;
+    -moz-column-gap: 10px;
+    -moz-column-width: 170px;
+    -ms-column-count: 4;
+    -ms-column-gap: 10px;
+    -ms-column-width: 170px;
+    -o-column-count: 4;
+    -o-column-gap: 10px;
+    -o-column-width: 170px;
+    -webkit-column-count: 4;
+    -webkit-column-gap: 10px;
+    -webkit-column-width: 170px;
+    column-count: 4;
+    column-gap: 10px;
+    column-width: 170px;
+}
+
+.apidocs .no-columns .index-list {
+    -moz-column-count: 1;
+    -ms-column-count: 1;
+    -o-column-count: 1;
+    -webkit-column-count: 1;
+    column-count: 1;
+}
+
+.apidocs .index-item { white-space: nowrap; }
+
+.apidocs .index-item .flag {
+    background: none;
+    border: none;
+    color: #afafaf;
+    display: inline;
+    margin: 0 0 0 0.2em;
+    padding: 0;
+}
+
+/* -- Generic API item styles ----------------------------------------------- */
+.apidocs .args {
+    display: inline;
+    margin: 0 0.5em;
+}
+
+.apidocs .flag.chainable { background: #46ca3b; }
+.apidocs .flag.protected { background: #9b86fc; }
+.apidocs .flag.private { background: #fd6b1b; }
+.apidocs .flag.async { background: #356de4; }
+.apidocs .flag.required { background: #e60923; }
+
+.apidocs .item {
+    border-bottom: 1px solid #efefef;
+    margin: 1.5em 0 2em;
+    padding-bottom: 2em;
+}
+
+.apidocs .item h4,
+.apidocs .item h5,
+.apidocs .item h6 {
+    color: #333;
+    font-family: inherit;
+    font-size: 100%;
+}
+
+.apidocs .item .description p,
+.apidocs .item pre.code {
+    margin: 1em 0 0;
+}
+
+.apidocs .item .meta {
+    background: none;
+    border: none;
+    padding: 0;
+}
+
+.apidocs .item .name {
+    display: inline;
+    font-size: 14px;
+}
+
+.apidocs .item .type,
+.apidocs .item .type a,
+.apidocs .returns-inline {
+    color: #555;
+}
+
+.apidocs .item .type,
+.apidocs .returns-inline {
+    font-size: 11px;
+    margin: 0 0 0 0;
+}
+
+.apidocs .item .type a { border-bottom: 1px dotted #afafaf; }
+.apidocs .item .type a:hover { border: none; }
+
+/* -- Item Parameter List --------------------------------------------------- */
+.apidocs .params-list {
+    list-style: square;
+    margin: 1em 0 0 2em;
+    padding: 0;
+}
+
+.apidocs .param { margin-bottom: 1em; }
+
+.apidocs .param .type,
+.apidocs .param .type a {
+    color: #666;
+}
+
+.apidocs .param .type {
+    margin: 0 0 0 0.5em;
+    *margin-left: 0.5em;
+}
+
+.apidocs .param-name { font-weight: bold; }
+
+/* -- Item "Emits" block ---------------------------------------------------- */
+.apidocs .item .emits {
+    background: #f9f9f9;
+    border-color: #eaeaea;
+}
+
+/* -- Item "Returns" block -------------------------------------------------- */
+.apidocs .item .returns .type,
+.apidocs .item .returns .type a {
+    font-size: 100%;
+    margin: 0;
+}
+
+/* -- Class Constructor block ----------------------------------------------- */
+.apidocs .constructor .item {
+    border: none;
+    padding-bottom: 0;
+}
+
+/* -- File Source View ------------------------------------------------------ */
+.apidocs .file pre.code,
+#doc .apidocs .file pre.prettyprint {
+    background: inherit;
+    border: none;
+    overflow: visible;
+    padding: 0;
+}
+
+.apidocs .L0,
+.apidocs .L1,
+.apidocs .L2,
+.apidocs .L3,
+.apidocs .L4,
+.apidocs .L5,
+.apidocs .L6,
+.apidocs .L7,
+.apidocs .L8,
+.apidocs .L9 {
+    background: inherit;
+}
+
+/* -- Submodule List -------------------------------------------------------- */
+.apidocs .module-submodule-description {
+    font-size: 12px;
+    margin: 0.3em 0 1em;
+}
+
+.apidocs .module-submodule-description p:first-child { margin-top: 0; }
+
+/* -- Sidebar TabView ------------------------------------------------------- */
+#api-tabview { margin-top: 0.6em; }
+
+#api-tabview-filter,
+#api-tabview-panel {
+    border: 1px solid #dfdfdf;
+}
+
+#api-tabview-filter {
+    border-bottom: none;
+    border-top: none;
+    padding: 0.6em 10px 0 10px;
+}
+
+#api-tabview-panel { border-top: none; }
+#api-filter { width: 97%; }
+
+/* -- Content TabView ------------------------------------------------------- */
+#classdocs .yui3-tabview-panel { border: none; }
+
+/* -- Source File Contents -------------------------------------------------- */
+.prettyprint li.L0,
+.prettyprint li.L1,
+.prettyprint li.L2,
+.prettyprint li.L3,
+.prettyprint li.L5,
+.prettyprint li.L6,
+.prettyprint li.L7,
+.prettyprint li.L8 {
+    list-style: decimal;
+}
+
+/* -- API options ----------------------------------------------------------- */
+#api-options {
+    font-size: 11px;
+    margin-top: 2.2em;
+    position: absolute;
+    right: 1.5em;
+}
+
+/*#api-options label { margin-right: 0.6em; }*/
+
+/* -- API list -------------------------------------------------------------- */
+#api-list {
+    margin-top: 1.5em;
+    *zoom: 1;
+}
+
+.apis {
+    font-size: 12px;
+    line-height: 1.4;
+    list-style: none;
+    margin: 0;
+    padding: 0.5em 0 0.5em 0.4em;
+}
+
+.apis a {
+    border: 1px solid transparent;
+    display: block;
+    margin: 0 0 0 -4px;
+    padding: 1px 4px 0;
+    text-decoration: none;
+    _border: none;
+    _display: inline;
+}
+
+.apis a:hover,
+.apis a:focus {
+    background: #E8EDFC;
+    background: -moz-linear-gradient(top, #e8edfc 0%, #becef7 100%);
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#E8EDFC), color-stop(100%,#BECEF7));
+    border-color: #AAC0FA;
+    border-radius: 3px;
+    color: #333;
+    outline: none;
+}
+
+.api-list-item a:hover,
+.api-list-item a:focus {
+    font-weight: bold;
+    text-shadow: 1px 1px 1px #fff;
+}
+
+.apis .message { color: #888; }
+.apis .result a { padding: 3px 5px 2px; }
+
+.apis .result .type {
+    right: 4px;
+    top: 7px;
+}
+
+.api-list-item .yui3-highlight {
+    font-weight: bold;
+}
+

=== added file 'doc/docbuild/assets/favicon.ico'
Binary files doc/docbuild/assets/favicon.ico	1970-01-01 00:00:00 +0000 and doc/docbuild/assets/favicon.ico	2015-10-23 18:57:47 +0000 differ
=== added directory 'doc/docbuild/assets/img'
=== added file 'doc/docbuild/assets/img/spinner.gif'
Binary files doc/docbuild/assets/img/spinner.gif	1970-01-01 00:00:00 +0000 and doc/docbuild/assets/img/spinner.gif	2015-10-23 18:57:47 +0000 differ
=== added file 'doc/docbuild/assets/index.html'
--- doc/docbuild/assets/index.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/assets/index.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,10 @@
+<!doctype html>
+<html>
+    <head>
+        <title>Redirector</title>
+        <meta http-equiv="refresh" content="0;url=../">
+    </head>
+    <body>
+        <a href="../">Click here to redirect</a>
+    </body>
+</html>

=== added directory 'doc/docbuild/assets/js'
=== added file 'doc/docbuild/assets/js/api-filter.js'
--- doc/docbuild/assets/js/api-filter.js	1970-01-01 00:00:00 +0000
+++ doc/docbuild/assets/js/api-filter.js	2015-10-23 18:57:47 +0000
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2011 Yahoo! Inc.
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of the Yahoo! Inc. nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+YUI.add('api-filter', function (Y) {
+
+Y.APIFilter = Y.Base.create('apiFilter', Y.Base, [Y.AutoCompleteBase], {
+    // -- Initializer ----------------------------------------------------------
+    initializer: function () {
+        this._bindUIACBase();
+        this._syncUIACBase();
+    },
+    getDisplayName: function(name) {
+
+        Y.each(Y.YUIDoc.meta.allModules, function(i) {
+            if (i.name === name && i.displayName) {
+                name = i.displayName;
+            }
+        });
+
+        return name;
+    }
+
+}, {
+    // -- Attributes -----------------------------------------------------------
+    ATTRS: {
+        resultHighlighter: {
+            value: 'phraseMatch'
+        },
+
+        // May be set to "classes" or "modules".
+        queryType: {
+            value: 'classes'
+        },
+
+        source: {
+            valueFn: function() {
+                var self = this;
+                return function(q) {
+                    var data = Y.YUIDoc.meta[self.get('queryType')],
+                        out = [];
+                    Y.each(data, function(v) {
+                        if (v.toLowerCase().indexOf(q.toLowerCase()) > -1) {
+                            out.push(v);
+                        }
+                    });
+                    return out;
+                };
+            }
+        }
+    }
+});
+
+}, '3.4.0', {requires: [
+    'autocomplete-base', 'autocomplete-highlighters', 'autocomplete-sources'
+]});

=== added file 'doc/docbuild/assets/js/api-list.js'
--- doc/docbuild/assets/js/api-list.js	1970-01-01 00:00:00 +0000
+++ doc/docbuild/assets/js/api-list.js	2015-10-23 18:57:47 +0000
@@ -0,0 +1,278 @@
+/*
+ * Copyright 2011 Yahoo! Inc.
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of the Yahoo! Inc. nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+YUI.add('api-list', function (Y) {
+
+var Lang   = Y.Lang,
+    YArray = Y.Array,
+
+    APIList = Y.namespace('APIList'),
+
+    classesNode    = Y.one('#api-classes'),
+    inputNode      = Y.one('#api-filter'),
+    modulesNode    = Y.one('#api-modules'),
+    tabviewNode    = Y.one('#api-tabview'),
+
+    tabs = APIList.tabs = {},
+
+    filter = APIList.filter = new Y.APIFilter({
+        inputNode : inputNode,
+        maxResults: 1000,
+
+        on: {
+            results: onFilterResults
+        }
+    }),
+
+    search = APIList.search = new Y.APISearch({
+        inputNode : inputNode,
+        maxResults: 100,
+
+        on: {
+            clear  : onSearchClear,
+            results: onSearchResults
+        }
+    }),
+
+    tabview = APIList.tabview = new Y.TabView({
+        srcNode  : tabviewNode,
+        panelNode: '#api-tabview-panel',
+        render   : true,
+
+        on: {
+            selectionChange: onTabSelectionChange
+        }
+    }),
+
+    focusManager = APIList.focusManager = tabviewNode.plug(Y.Plugin.NodeFocusManager, {
+        circular   : true,
+        descendants: '#api-filter, .yui3-tab-panel-selected .api-list-item a, .yui3-tab-panel-selected .result a',
+        keys       : {next: 'down:40', previous: 'down:38'}
+    }).focusManager,
+
+    LIST_ITEM_TEMPLATE =
+        '<li class="api-list-item {typeSingular}">' +
+            '<a href="{rootPath}{typePlural}/{name}.html">{displayName}</a>' +
+        '</li>';
+
+// -- Init ---------------------------------------------------------------------
+
+// Duckpunch FocusManager's key event handling to prevent it from handling key
+// events when a modifier is pressed.
+Y.before(function (e, activeDescendant) {
+    if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) {
+        return new Y.Do.Prevent();
+    }
+}, focusManager, '_focusPrevious', focusManager);
+
+Y.before(function (e, activeDescendant) {
+    if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) {
+        return new Y.Do.Prevent();
+    }
+}, focusManager, '_focusNext', focusManager);
+
+// Create a mapping of tabs in the tabview so we can refer to them easily later.
+tabview.each(function (tab, index) {
+    var name = tab.get('label').toLowerCase();
+
+    tabs[name] = {
+        index: index,
+        name : name,
+        tab  : tab
+    };
+});
+
+// Switch tabs on Ctrl/Cmd-Left/Right arrows.
+tabviewNode.on('key', onTabSwitchKey, 'down:37,39');
+
+// Focus the filter input when the `/` key is pressed.
+Y.one(Y.config.doc).on('key', onSearchKey, 'down:83');
+
+// Keep the Focus Manager up to date.
+inputNode.on('focus', function () {
+    focusManager.set('activeDescendant', inputNode);
+});
+
+// Update all tabview links to resolved URLs.
+tabview.get('panelNode').all('a').each(function (link) {
+    link.setAttribute('href', link.get('href'));
+});
+
+// -- Private Functions --------------------------------------------------------
+function getFilterResultNode() {
+    return filter.get('queryType') === 'classes' ? classesNode : modulesNode;
+}
+
+// -- Event Handlers -----------------------------------------------------------
+function onFilterResults(e) {
+    var frag         = Y.one(Y.config.doc.createDocumentFragment()),
+        resultNode   = getFilterResultNode(),
+        typePlural   = filter.get('queryType'),
+        typeSingular = typePlural === 'classes' ? 'class' : 'module';
+
+    if (e.results.length) {
+        YArray.each(e.results, function (result) {
+            frag.append(Lang.sub(LIST_ITEM_TEMPLATE, {
+                rootPath    : APIList.rootPath,
+                displayName : filter.getDisplayName(result.highlighted),
+                name        : result.text,
+                typePlural  : typePlural,
+                typeSingular: typeSingular
+            }));
+        });
+    } else {
+        frag.append(
+            '<li class="message">' +
+                'No ' + typePlural + ' found.' +
+            '</li>'
+        );
+    }
+
+    resultNode.empty(true);
+    resultNode.append(frag);
+
+    focusManager.refresh();
+}
+
+function onSearchClear(e) {
+
+    focusManager.refresh();
+}
+
+function onSearchKey(e) {
+    var target = e.target;
+
+    if (target.test('input,select,textarea')
+            || target.get('isContentEditable')) {
+        return;
+    }
+
+    e.preventDefault();
+
+    inputNode.focus();
+    focusManager.refresh();
+}
+
+function onSearchResults(e) {
+    var frag = Y.one(Y.config.doc.createDocumentFragment());
+
+    if (e.results.length) {
+        YArray.each(e.results, function (result) {
+            frag.append(result.display);
+        });
+    } else {
+        frag.append(
+            '<li class="message">' +
+                'No results found. Maybe you\'ll have better luck with a ' +
+                'different query?' +
+            '</li>'
+        );
+    }
+
+
+    focusManager.refresh();
+}
+
+function onTabSelectionChange(e) {
+    var tab  = e.newVal,
+        name = tab.get('label').toLowerCase();
+
+    tabs.selected = {
+        index: tab.get('index'),
+        name : name,
+        tab  : tab
+    };
+
+    switch (name) {
+    case 'classes': // fallthru
+    case 'modules':
+        filter.setAttrs({
+            minQueryLength: 0,
+            queryType     : name
+        });
+
+        search.set('minQueryLength', -1);
+
+        // Only send a request if this isn't the initially-selected tab.
+        if (e.prevVal) {
+            filter.sendRequest(filter.get('value'));
+        }
+        break;
+
+    case 'everything':
+        filter.set('minQueryLength', -1);
+        search.set('minQueryLength', 1);
+
+        if (search.get('value')) {
+            search.sendRequest(search.get('value'));
+        } else {
+            inputNode.focus();
+        }
+        break;
+
+    default:
+        // WTF? We shouldn't be here!
+        filter.set('minQueryLength', -1);
+        search.set('minQueryLength', -1);
+    }
+
+    if (focusManager) {
+        setTimeout(function () {
+            focusManager.refresh();
+        }, 1);
+    }
+}
+
+function onTabSwitchKey(e) {
+    var currentTabIndex = tabs.selected.index;
+
+    if (!(e.ctrlKey || e.metaKey)) {
+        return;
+    }
+
+    e.preventDefault();
+
+    switch (e.keyCode) {
+    case 37: // left arrow
+        if (currentTabIndex > 0) {
+            tabview.selectChild(currentTabIndex - 1);
+            inputNode.focus();
+        }
+        break;
+
+    case 39: // right arrow
+        if (currentTabIndex < (Y.Object.size(tabs) - 2)) {
+            tabview.selectChild(currentTabIndex + 1);
+            inputNode.focus();
+        }
+        break;
+    }
+}
+
+}, '3.4.0', {requires: [
+    'api-filter', 'api-search', 'event-key', 'node-focusmanager', 'tabview'
+]});

=== added file 'doc/docbuild/assets/js/api-search.js'
--- doc/docbuild/assets/js/api-search.js	1970-01-01 00:00:00 +0000
+++ doc/docbuild/assets/js/api-search.js	2015-10-23 18:57:47 +0000
@@ -0,0 +1,125 @@
+/*
+ * Copyright 2011 Yahoo! Inc.
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of the Yahoo! Inc. nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+YUI.add('api-search', function (Y) {
+
+var Lang   = Y.Lang,
+    Node   = Y.Node,
+    YArray = Y.Array;
+
+Y.APISearch = Y.Base.create('apiSearch', Y.Base, [Y.AutoCompleteBase], {
+    // -- Public Properties ----------------------------------------------------
+    RESULT_TEMPLATE:
+        '<li class="result {resultType}">' +
+            '<a href="{url}">' +
+                '<h3 class="title">{name}</h3>' +
+                '<span class="type">{resultType}</span>' +
+                '<div class="description">{description}</div>' +
+                '<span class="className">{class}</span>' +
+            '</a>' +
+        '</li>',
+
+    // -- Initializer ----------------------------------------------------------
+    initializer: function () {
+        this._bindUIACBase();
+        this._syncUIACBase();
+    },
+
+    // -- Protected Methods ----------------------------------------------------
+    _apiResultFilter: function (query, results) {
+        // Filter components out of the results.
+        return YArray.filter(results, function (result) {
+            return result.raw.resultType === 'component' ? false : result;
+        });
+    },
+
+    _apiResultFormatter: function (query, results) {
+        return YArray.map(results, function (result) {
+            var raw  = Y.merge(result.raw), // create a copy
+                desc = raw.description || '';
+
+            // Convert description to text and truncate it if necessary.
+            desc = Node.create('<div>' + desc + '</div>').get('text');
+
+            if (desc.length > 65) {
+                desc = Y.Escape.html(desc.substr(0, 65)) + ' &hellip;';
+            } else {
+                desc = Y.Escape.html(desc);
+            }
+
+            raw['class'] || (raw['class'] = '');
+            raw.description = desc;
+
+            // Use the highlighted result name.
+            raw.name = result.highlighted;
+
+            return Lang.sub(this.RESULT_TEMPLATE, raw);
+        }, this);
+    },
+
+    _apiTextLocator: function (result) {
+        return result.displayName || result.name;
+    }
+}, {
+    // -- Attributes -----------------------------------------------------------
+    ATTRS: {
+        resultFormatter: {
+            valueFn: function () {
+                return this._apiResultFormatter;
+            }
+        },
+
+        resultFilters: {
+            valueFn: function () {
+                return this._apiResultFilter;
+            }
+        },
+
+        resultHighlighter: {
+            value: 'phraseMatch'
+        },
+
+        resultListLocator: {
+            value: 'data.results'
+        },
+
+        resultTextLocator: {
+            valueFn: function () {
+                return this._apiTextLocator;
+            }
+        },
+
+        source: {
+            value: '/api/v1/search?q={query}&count={maxResults}'
+        }
+    }
+});
+
+}, '3.4.0', {requires: [
+    'autocomplete-base', 'autocomplete-highlighters', 'autocomplete-sources',
+    'escape'
+]});

=== added file 'doc/docbuild/assets/js/apidocs.js'
--- doc/docbuild/assets/js/apidocs.js	1970-01-01 00:00:00 +0000
+++ doc/docbuild/assets/js/apidocs.js	2015-10-23 18:57:47 +0000
@@ -0,0 +1,397 @@
+/*
+ * Copyright 2011 Yahoo! Inc.
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of the Yahoo! Inc. nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+YUI().use(
+    'yuidoc-meta',
+    'api-list', 'history-hash', 'node-screen', 'node-style', 'pjax',
+function (Y) {
+
+var win          = Y.config.win,
+    localStorage = win.localStorage,
+
+    bdNode = Y.one('#bd'),
+
+    pjax,
+    defaultRoute,
+
+    classTabView,
+    selectedTab;
+
+// Kill pjax functionality unless serving over HTTP.
+if (!Y.getLocation().protocol.match(/^https?\:/)) {
+    Y.Router.html5 = false;
+}
+
+// Create the default route with middleware which enables syntax highlighting
+// on the loaded content.
+defaultRoute = Y.Pjax.defaultRoute.concat(function (req, res, next) {
+    prettyPrint();
+    bdNode.removeClass('loading');
+
+    next();
+});
+
+pjax = new Y.Pjax({
+    container      : '#docs-main',
+    contentSelector: '#docs-main > .content',
+    linkSelector   : '#bd a',
+    titleSelector  : '#xhr-title',
+
+    navigateOnHash: true,
+    root          : '/',
+    routes        : [
+        // -- / ----------------------------------------------------------------
+        {
+            path     : '/(index.html)?',
+            callbacks: defaultRoute
+        },
+
+        // -- /classes/* -------------------------------------------------------
+        {
+            path     : '/classes/:class.html*',
+            callbacks: [defaultRoute, 'handleClasses']
+        },
+
+        // -- /files/* ---------------------------------------------------------
+        {
+            path     : '/files/*file',
+            callbacks: [defaultRoute, 'handleFiles']
+        },
+
+        // -- /modules/* -------------------------------------------------------
+        {
+            path     : '/modules/:module.html*',
+            callbacks: defaultRoute
+        }
+    ]
+});
+
+// -- Utility Functions --------------------------------------------------------
+
+pjax.checkVisibility = function (tab) {
+    tab || (tab = selectedTab);
+
+    if (!tab) { return; }
+
+    var panelNode = tab.get('panelNode'),
+        visibleItems;
+
+    // If no items are visible in the tab panel due to the current visibility
+    // settings, display a message to that effect.
+    visibleItems = panelNode.all('.item,.index-item').some(function (itemNode) {
+        if (itemNode.getComputedStyle('display') !== 'none') {
+            return true;
+        }
+    });
+
+    panelNode.all('.no-visible-items').remove();
+
+    if (!visibleItems) {
+        if (Y.one('#index .index-item')) {
+            panelNode.append(
+                '<div class="no-visible-items">' +
+                    '<p>' +
+                    'Some items are not shown due to the current visibility ' +
+                    'settings. Use the checkboxes at the upper right of this ' +
+                    'page to change the visibility settings.' +
+                    '</p>' +
+                '</div>'
+            );
+        } else {
+            panelNode.append(
+                '<div class="no-visible-items">' +
+                    '<p>' +
+                    'This class doesn\'t provide any methods, properties, ' +
+                    'attributes, or events.' +
+                    '</p>' +
+                '</div>'
+            );
+        }
+    }
+
+    // Hide index sections without any visible items.
+    Y.all('.index-section').each(function (section) {
+        var items        = 0,
+            visibleItems = 0;
+
+        section.all('.index-item').each(function (itemNode) {
+            items += 1;
+
+            if (itemNode.getComputedStyle('display') !== 'none') {
+                visibleItems += 1;
+            }
+        });
+
+        section.toggleClass('hidden', !visibleItems);
+        section.toggleClass('no-columns', visibleItems < 4);
+    });
+};
+
+pjax.initClassTabView = function () {
+    if (!Y.all('#classdocs .api-class-tab').size()) {
+        return;
+    }
+
+    if (classTabView) {
+        classTabView.destroy();
+        selectedTab = null;
+    }
+
+    classTabView = new Y.TabView({
+        srcNode: '#classdocs',
+
+        on: {
+            selectionChange: pjax.onTabSelectionChange
+        }
+    });
+
+    pjax.updateTabState();
+    classTabView.render();
+};
+
+pjax.initLineNumbers = function () {
+    var hash      = win.location.hash.substring(1),
+        container = pjax.get('container'),
+        hasLines, node;
+
+    // Add ids for each line number in the file source view.
+    container.all('.linenums>li').each(function (lineNode, index) {
+        lineNode.set('id', 'l' + (index + 1));
+        lineNode.addClass('file-line');
+        hasLines = true;
+    });
+
+    // Scroll to the desired line.
+    if (hasLines && /^l\d+$/.test(hash)) {
+        if ((node = container.getById(hash))) {
+            win.scroll(0, node.getY());
+        }
+    }
+};
+
+pjax.initRoot = function () {
+    var terminators = /^(?:classes|files|modules)$/,
+        parts       = pjax._getPathRoot().split('/'),
+        root        = [],
+        i, len, part;
+
+    for (i = 0, len = parts.length; i < len; i += 1) {
+        part = parts[i];
+
+        if (part.match(terminators)) {
+            // Makes sure the path will end with a "/".
+            root.push('');
+            break;
+        }
+
+        root.push(part);
+    }
+
+    pjax.set('root', root.join('/'));
+};
+
+pjax.updateTabState = function (src) {
+    var hash = win.location.hash.substring(1),
+        defaultTab, node, tab, tabPanel;
+
+    function scrollToNode() {
+        if (node.hasClass('protected')) {
+            Y.one('#api-show-protected').set('checked', true);
+            pjax.updateVisibility();
+        }
+
+        if (node.hasClass('private')) {
+            Y.one('#api-show-private').set('checked', true);
+            pjax.updateVisibility();
+        }
+
+        setTimeout(function () {
+            // For some reason, unless we re-get the node instance here,
+            // getY() always returns 0.
+            var node = Y.one('#classdocs').getById(hash);
+            win.scrollTo(0, node.getY() - 70);
+        }, 1);
+    }
+
+    if (!classTabView) {
+        return;
+    }
+
+    if (src === 'hashchange' && !hash) {
+        defaultTab = 'index';
+    } else {
+        if (localStorage) {
+            defaultTab = localStorage.getItem('tab_' + pjax.getPath()) ||
+                'index';
+        } else {
+            defaultTab = 'index';
+        }
+    }
+
+    if (hash && (node = Y.one('#classdocs').getById(hash))) {
+        if ((tabPanel = node.ancestor('.api-class-tabpanel', true))) {
+            if ((tab = Y.one('#classdocs .api-class-tab.' + tabPanel.get('id')))) {
+                if (classTabView.get('rendered')) {
+                    Y.Widget.getByNode(tab).set('selected', 1);
+                } else {
+                    tab.addClass('yui3-tab-selected');
+                }
+            }
+        }
+
+        // Scroll to the desired element if this is a hash URL.
+        if (node) {
+            if (classTabView.get('rendered')) {
+                scrollToNode();
+            } else {
+                classTabView.once('renderedChange', scrollToNode);
+            }
+        }
+    } else {
+        tab = Y.one('#classdocs .api-class-tab.' + defaultTab);
+
+        // When the `defaultTab` node isn't found, `localStorage` is stale.
+        if (!tab && defaultTab !== 'index') {
+            tab = Y.one('#classdocs .api-class-tab.index');
+        }
+
+        if (classTabView.get('rendered')) {
+            Y.Widget.getByNode(tab).set('selected', 1);
+        } else {
+            tab.addClass('yui3-tab-selected');
+        }
+    }
+};
+
+pjax.updateVisibility = function () {
+    var container = pjax.get('container');
+
+    container.toggleClass('hide-inherited',
+            !Y.one('#api-show-inherited').get('checked'));
+
+    container.toggleClass('show-deprecated',
+            Y.one('#api-show-deprecated').get('checked'));
+
+    container.toggleClass('show-protected',
+            Y.one('#api-show-protected').get('checked'));
+
+    container.toggleClass('show-private',
+            Y.one('#api-show-private').get('checked'));
+
+    pjax.checkVisibility();
+};
+
+// -- Route Handlers -----------------------------------------------------------
+
+pjax.handleClasses = function (req, res, next) {
+    var status = res.ioResponse.status;
+
+    // Handles success and local filesystem XHRs.
+    if (res.ioResponse.readyState === 4 && (!status || (status >= 200 && status < 300))) {
+        pjax.initClassTabView();
+    }
+
+    next();
+};
+
+pjax.handleFiles = function (req, res, next) {
+    var status = res.ioResponse.status;
+
+    // Handles success and local filesystem XHRs.
+    if (res.ioResponse.readyState === 4 && (!status || (status >= 200 && status < 300))) {
+        pjax.initLineNumbers();
+    }
+
+    next();
+};
+
+// -- Event Handlers -----------------------------------------------------------
+
+pjax.onNavigate = function (e) {
+    var hash         = e.hash,
+        originTarget = e.originEvent && e.originEvent.target,
+        tab;
+
+    if (hash) {
+        tab = originTarget && originTarget.ancestor('.yui3-tab', true);
+
+        if (hash === win.location.hash) {
+            pjax.updateTabState('hashchange');
+        } else if (!tab) {
+            win.location.hash = hash;
+        }
+
+        e.preventDefault();
+        return;
+    }
+
+    // Only scroll to the top of the page when the URL doesn't have a hash.
+    this.set('scrollToTop', !e.url.match(/#.+$/));
+
+    bdNode.addClass('loading');
+};
+
+pjax.onOptionClick = function (e) {
+    pjax.updateVisibility();
+};
+
+pjax.onTabSelectionChange = function (e) {
+    var tab   = e.newVal,
+        tabId = tab.get('contentBox').getAttribute('href').substring(1);
+
+    selectedTab = tab;
+
+    // If switching from a previous tab (i.e., this is not the default tab),
+    // replace the history entry with a hash URL that will cause this tab to
+    // be selected if the user navigates away and then returns using the back
+    // or forward buttons.
+    if (e.prevVal && localStorage) {
+        localStorage.setItem('tab_' + pjax.getPath(), tabId);
+    }
+
+    pjax.checkVisibility(tab);
+};
+
+// -- Init ---------------------------------------------------------------------
+
+pjax.on('navigate', pjax.onNavigate);
+
+pjax.initRoot();
+pjax.upgrade();
+pjax.initClassTabView();
+pjax.initLineNumbers();
+pjax.updateVisibility();
+
+Y.APIList.rootPath = pjax.get('root');
+
+Y.one('#api-options').delegate('click', pjax.onOptionClick, 'input');
+
+Y.on('hashchange', function (e) {
+    pjax.updateTabState('hashchange');
+}, win);
+
+});

=== added file 'doc/docbuild/assets/js/yui-prettify.js'
--- doc/docbuild/assets/js/yui-prettify.js	1970-01-01 00:00:00 +0000
+++ doc/docbuild/assets/js/yui-prettify.js	2015-10-23 18:57:47 +0000
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2011 Yahoo! Inc.
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of the Yahoo! Inc. nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+YUI().use('node', function(Y) {
+    var code = Y.all('.prettyprint.linenums');
+    if (code.size()) {
+        code.each(function(c) {
+            var lis = c.all('ol li'),
+                l = 1;
+            lis.each(function(n) {
+                n.prepend('<a name="LINENUM_' + l + '"></a>');
+                l++;
+            });
+        });
+        var h = location.hash;
+        location.hash = '';
+        h = h.replace('LINE_', 'LINENUM_');
+        location.hash = h;
+    }
+});

=== added directory 'doc/docbuild/assets/vendor'
=== added directory 'doc/docbuild/assets/vendor/prettify'
=== added file 'doc/docbuild/assets/vendor/prettify/CHANGES.html'
--- doc/docbuild/assets/vendor/prettify/CHANGES.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/assets/vendor/prettify/CHANGES.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,130 @@
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    <title>Change Log</title>
+  </head>
+  <body bgcolor="white">
+    <a style="float:right" href="README.html">README</a>
+
+    <h1>Known Issues</h1>
+    <ul>
+      <li>Perl formatting is really crappy.  Partly because the author is lazy and
+      partly because Perl is
+      <a href="http://www.perlmonks.org/?node_id=663393">hard</a> to parse.
+      <li>On some browsers, <code>&lt;code&gt;</code> elements with newlines in the text
+      which use CSS to specify <code>white-space:pre</code> will have the newlines
+      improperly stripped if the element is not attached to the document at the time
+      the stripping is done.  Also, on IE 6, all newlines will be stripped from
+      <code>&lt;code&gt;</code> elements because of the way IE6 produces
+      <code>innerHTML</code>.  Workaround: use <code>&lt;pre&gt;</code> for code with
+      newlines.
+    </ul>
+
+    <h1>Change Log</h1>
+    <h2>29 March 2007</h2>
+    <ul>
+      <li>Added <a href="tests/prettify_test.html#PHP">tests</a> for PHP support
+        to address 
+      <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=3"
+       >issue 3</a>.
+      <li>Fixed
+      <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=6"
+       >bug</a>: <code>prettyPrintOne</code> was not halting.  This was not
+        reachable through the normal entry point.
+      <li>Fixed
+      <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=4"
+       >bug</a>: recursing into a script block or PHP tag that was not properly
+        closed would not silently drop the content.
+        (<a href="tests/prettify_test.html#issue4">test</a>)
+      <li>Fixed
+      <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=8"
+       >bug</a>: was eating tabs
+        (<a href="tests/prettify_test.html#issue8">test</a>)
+      <li>Fixed entity handling so that the caveat
+        <blockquote>
+          <p>Caveats: please properly escape less-thans.  <tt>x&amp;lt;y</tt>
+          instead of <tt>x&lt;y</tt>, and use <tt>&quot;</tt> instead of 
+          <tt>&amp;quot;</tt> for string delimiters.</p>
+        </blockquote>
+        is no longer applicable.
+      <li>Added noisefree's C#
+      <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=4"
+       >patch</a>
+      <li>Added a <a href="http://google-code-prettify.googlecode.com/files/prettify-small.zip">distribution</a> that has comments and
+        whitespace removed to reduce download size from 45.5kB to 12.8kB.
+    </ul>
+    <h2>4 Jul 2008</h2>
+    <ul>
+      <li>Added <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=17">language specific formatters</a> that are triggered by the presence
+      of a <code>lang-&lt;language-file-extension&gt;</code></li>
+      <li>Fixed <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=29">bug</a>: python handling of <code>'''string'''</code>
+      <li>Fixed bug: <code>/</code> in regex <code>[charsets] should not end regex</code>
+    </ul>
+    <h2>5 Jul 2008</h2>
+    <ul>
+      <li>Defined language extensions for Lisp and Lua</code>
+    </ul>
+    <h2>14 Jul 2008</h2>
+    <ul>
+      <li>Language handlers for F#, OCAML, SQL</code>
+      <li>Support for <code>nocode</code> spans to allow embedding of line
+      numbers and code annotations which should not be styled or otherwise
+      affect the tokenization of prettified code.
+      See the issue 22
+      <a href="tests/prettify_test.html#issue22">testcase</a>.</code>
+    </ul>
+    <h2>6 Jan 2009</h2>
+    <ul>
+      <li>Language handlers for Visual Basic, Haskell, CSS, and WikiText</li>
+      <li>Added <tt>.mxml</tt> extension to the markup style handler for
+        Flex <a href="http://en.wikipedia.org/wiki/MXML">MXML files</a>.  See
+        <a
+        href="http://code.google.com/p/google-code-prettify/issues/detail?id=37"
+        >issue 37</a>.
+      <li>Added <tt>.m</tt> extension to the C style handler so that Objective
+        C source files properly highlight.  See
+        <a
+        href="http://code.google.com/p/google-code-prettify/issues/detail?id=58"
+       >issue 58</a>.
+      <li>Changed HTML lexer to use the same embedded source mechanism as the
+        wiki language handler, and changed to use the registered
+        CSS handler for STYLE element content.
+    </ul>
+    <h2>21 May 2009</h2>
+    <ul>
+      <li>Rewrote to improve performance on large files.
+        See <a href="http://mikesamuel.blogspot.com/2009/05/efficient-parsing-in-javascript.html">benchmarks</a>.</li>
+      <li>Fixed bugs with highlighting of Haskell line comments, Lisp
+        number literals, Lua strings, C preprocessor directives,
+        newlines in Wiki code on Windows, and newlines in IE6.</li>
+    </ul>
+    <h2>14 August 2009</h2>
+    <ul>
+      <li>Fixed prettifying of <code>&lt;code&gt;</code> blocks with embedded newlines.
+    </ul>
+    <h2>3 October 2009</h2>
+    <ul>
+      <li>Fixed prettifying of XML/HTML tags that contain uppercase letters.
+    </ul>
+    <h2>19 July 2010</h2>
+    <ul>
+      <li>Added support for line numbers.  Bug
+        <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=22"
+         >22</a></li>
+      <li>Added YAML support.  Bug
+        <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=123"
+         >123</a></li>
+      <li>Added VHDL support courtesy Le Poussin.</li>
+      <li>IE performance improvements.  Bug
+        <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=102"
+         >102</a> courtesy jacobly.</li>
+      <li>A variety of markup formatting fixes courtesy smain and thezbyg.</li>
+      <li>Fixed copy and paste in IE[678].
+      <li>Changed output to use <code>&amp;#160;</code> instead of
+        <code>&amp;nbsp;</code> so that the output works when embedded in XML.
+        Bug
+        <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=108"
+         >108</a>.</li>
+    </ul>
+  </body>
+</html>

=== added file 'doc/docbuild/assets/vendor/prettify/COPYING'
--- doc/docbuild/assets/vendor/prettify/COPYING	1970-01-01 00:00:00 +0000
+++ doc/docbuild/assets/vendor/prettify/COPYING	2015-10-23 18:57:47 +0000
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.

=== added file 'doc/docbuild/assets/vendor/prettify/README.html'
--- doc/docbuild/assets/vendor/prettify/README.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/assets/vendor/prettify/README.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html>
+  <head>
+    <title>Javascript code prettifier</title>
+
+    <link href="src/prettify.css" type="text/css" rel="stylesheet" />
+
+    <script src="src/prettify.js" type="text/javascript"></script>
+
+    <style type="text/css">
+      body { margin-left: .5in }
+      h1, h2, h3, h4, .footer { margin-left: -.4in; }
+    </style>
+  </head>
+
+  <body onload="prettyPrint()" bgcolor="white">
+    <small style="float: right">Languages : <a href="README-zh-Hans.html">CH</a></small>
+    <h1>Javascript code prettifier</h1>
+
+    <h2>Setup</h2>
+    <ol>
+      <li><a href="http://code.google.com/p/google-code-prettify/downloads/list">Download</a> a distribution
+      <li>Include the script and stylesheets in your document
+        (you will need to make sure the css and js file are on your server, and
+         adjust the paths in the <tt>script</tt> and <tt>link</tt> tag)
+        <pre class="prettyprint">
+&lt;link href="prettify.css" type="text/css" rel="stylesheet" />
+&lt;script type="text/javascript" src="prettify.js">&lt;/script></pre>
+      <li>Add <code class="prettyprint lang-html">onload="prettyPrint()"</code> to your
+      document's body tag.
+      <li>Modify the stylesheet to get the coloring you prefer</li>
+    </ol>
+
+    <h2>Usage</h2>
+    <p>Put code snippets in
+    <tt>&lt;pre class="prettyprint"&gt;...&lt;/pre&gt;</tt>
+    or <tt>&lt;code class="prettyprint"&gt;...&lt;/code&gt;</tt>
+    and it will automatically be pretty printed.
+
+    <table summary="code examples">
+      <tr>
+        <th>The original
+        <th>Prettier
+      <tr>
+        <td><pre style="border: 1px solid #888;padding: 2px"
+             ><a name="voila1"></a>class Voila {
+public:
+  // Voila
+  static const string VOILA = "Voila";
+
+  // will not interfere with embedded <a href="#voila1">tags</a>.
+}</pre>
+
+        <td><pre class="prettyprint"><a name="voila2"></a>class Voila {
+public:
+  // Voila
+  static const string VOILA = "Voila";
+
+  // will not interfere with embedded <a href="#voila2">tags</a>.
+}</pre>
+    </table>
+
+    <h2>FAQ</h2>
+    <h3 id="langs">Which languages does it work for?</h3>
+    <p>The comments in <tt>prettify.js</tt> are authoritative but the lexer
+    should work on a number of languages including C and friends,
+    Java, Python, Bash, SQL, HTML, XML, CSS, Javascript, and Makefiles.
+    It works passably on Ruby, PHP, VB, and Awk and a decent subset of Perl
+    and Ruby, but, because of commenting conventions, doesn't work on
+    Smalltalk, or CAML-like languages.</p>
+
+    <p>LISPy languages are supported via an extension:
+    <a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-lisp.js"
+     ><code>lang-lisp.js</code></a>.</p>
+    <p>And similarly for
+    <a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-css.js"
+     ><code>CSS</code></a>,
+    <a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-hs.js"
+     ><code>Haskell</code></a>,
+    <a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-lua.js"
+     ><code>Lua</code></a>,
+    <a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-ml.js"
+     ><code>OCAML, SML, F#</code></a>,
+    <a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-vb.js"
+     ><code>Visual Basic</code></a>,
+    <a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-sql.js"
+     ><code>SQL</code></a>,
+    <a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-proto.js"
+     ><code>Protocol Buffers</code></a>, and
+    <a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-wiki.js"
+     ><code>WikiText</code></a>..
+
+    <p>If you'd like to add an extension for your favorite language, please
+    look at <tt>src/lang-lisp.js</tt> and file an
+    <a href="http://code.google.com/p/google-code-prettify/issues/list"
+     >issue</a> including your language extension, and a testcase.</p>
+
+    <h3>How do I specify which language my code is in?</h3>
+    <p>You don't need to specify the language since <code>prettyprint()</code>
+    will guess.  You can specify a language by specifying the language extension
+    along with the <code>prettyprint</code> class like so:</p>
+    <pre class="prettyprint lang-html"
+>&lt;pre class=&quot;prettyprint <b>lang-html</b>&quot;&gt;
+  The lang-* class specifies the language file extensions.
+  File extensions supported by default include
+    "bsh", "c", "cc", "cpp", "cs", "csh", "cyc", "cv", "htm", "html",
+    "java", "js", "m", "mxml", "perl", "pl", "pm", "py", "rb", "sh",
+    "xhtml", "xml", "xsl".
+&lt;/pre&gt;</pre>
+
+    <h3>It doesn't work on <tt>&lt;obfuscated code sample&gt;</tt>?</h3>
+    <p>Yes.  Prettifying obfuscated code is like putting lipstick on a pig
+    &mdash; i.e. outside the scope of this tool.</p>
+
+    <h3>Which browsers does it work with?</h3>
+    <p>It's been tested with IE 6, Firefox 1.5 &amp; 2, and Safari 2.0.4.
+    Look at <a href="tests/prettify_test.html">the test page</a> to see if it
+    works in your browser.</p>
+
+    <h3>What's changed?</h3>
+    <p>See the <a href="CHANGES.html">change log</a></p>
+
+    <h3>Why doesn't Prettyprinting of strings work on WordPress?</h3>
+    <p>Apparently wordpress does "smart quoting" which changes close quotes.
+    This causes end quotes to not match up with open quotes.
+    <p>This breaks prettifying as well as copying and pasting of code samples.
+    See
+    <a href="http://wordpress.org/support/topic/125038"
+    >WordPress's help center</a> for info on how to stop smart quoting of code
+    snippets.</p>
+
+    <h3 id="linenums">How do I put line numbers in my code?</h3>
+    <p>You can use the <code>linenums</code> class to turn on line
+    numbering.  If your code doesn't start at line number 1, you can
+    add a colon and a line number to the end of that class as in
+    <code>linenums:52</code>.
+
+    <p>For example
+<pre class="prettyprint">&lt;pre class="prettyprint linenums:<b>4</b>"
+&gt;// This is line 4.
+foo();
+bar();
+baz();
+boo();
+far();
+faz();
+&lt;pre&gt;</pre>
+    produces
+<pre class="prettyprint linenums:4"
+>// This is line 4.
+foo();
+bar();
+baz();
+boo();
+far();
+faz();
+</pre>
+
+    <h3>How do I prevent a portion of markup from being marked as code?</h3>
+    <p>You can use the <code>nocode</code> class to identify a span of markup
+    that is not code.
+<pre class="prettyprint">&lt;pre class=prettyprint&gt;
+int x = foo();  /* This is a comment  &lt;span class="nocode"&gt;This is not code&lt;/span&gt;
+  Continuation of comment */
+int y = bar();
+&lt;/pre&gt;</pre>
+produces
+<pre class="prettyprint">
+int x = foo();  /* This is a comment  <span class="nocode">This is not code</span>
+  Continuation of comment */
+int y = bar();
+</pre>
+
+    <p>For a more complete example see the issue22
+    <a href="tests/prettify_test.html#issue22">testcase</a>.</p>
+
+    <h3>I get an error message "a is not a function" or "opt_whenDone is not a function"</h3>
+    <p>If you are calling <code>prettyPrint</code> via an event handler, wrap it in a function.
+    Instead of doing
+    <blockquote>
+      <code class="prettyprint lang-js"
+       >addEventListener('load', prettyPrint, false);</code>
+    </blockquote>
+    wrap it in a closure like
+    <blockquote>
+      <code class="prettyprint lang-js"
+       >addEventListener('load', function (event) { prettyPrint() }, false);</code>
+    </blockquote>
+    so that the browser does not pass an event object to <code>prettyPrint</code> which
+    will confuse it.
+
+    <br><br><br>
+
+    <div class="footer">
+<!-- Created: Tue Oct  3 17:51:56 PDT 2006 -->
+<!-- hhmts start -->
+Last modified: Wed Jul 19 13:56:00 PST 2010
+<!-- hhmts end -->
+    </div>
+  </body>
+</html>

=== added file 'doc/docbuild/assets/vendor/prettify/prettify-min.css'
--- doc/docbuild/assets/vendor/prettify/prettify-min.css	1970-01-01 00:00:00 +0000
+++ doc/docbuild/assets/vendor/prettify/prettify-min.css	2015-10-23 18:57:47 +0000
@@ -0,0 +1,1 @@
+.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
\ No newline at end of file

=== added file 'doc/docbuild/assets/vendor/prettify/prettify-min.js'
--- doc/docbuild/assets/vendor/prettify/prettify-min.js	1970-01-01 00:00:00 +0000
+++ doc/docbuild/assets/vendor/prettify/prettify-min.js	2015-10-23 18:57:47 +0000
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2011 Yahoo! Inc.
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of the Yahoo! Inc. nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+window.PR_SHOULD_USE_CONTINUATION=true;var prettyPrintOne;var prettyPrint;(function(){var O=window;var j=["break,continue,do,else,for,if,return,while"];var v=[j,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var q=[v,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var m=[q,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var y=[q,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var T=[y,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"];var s="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes";var x=[q,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var t="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var J=[j,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var g=[j,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var I=[j,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var B=[m,T,x,t+J,g,I];var f=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/;var D="str";var A="kwd";var k="com";var Q="typ";var H="lit";var M="pun";var G="pln";var n="tag";var F="dec";var K="src";var R="atn";var o="atv";var P="nocode";var N="(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function l(ab){var af=0;var U=false;var ae=false;for(var X=0,W=ab.length;X<W;++X){var ag=ab[X];if(ag.ignoreCase){ae=true}else{if(/[a-z]/i.test(ag.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){U=true;ae=false;break}}}var aa={b:8,t:9,n:10,v:11,f:12,r:13};function ad(aj){var ai=aj.charCodeAt(0);if(ai!==92){return ai}var ah=aj.charAt(1);ai=aa[ah];if(ai){return ai}else{if("0"<=ah&&ah<="7"){return parseInt(aj.substring(1),8)}else{if(ah==="u"||ah==="x"){return parseInt(aj.substring(2),16)}else{return aj.charCodeAt(1)}}}}function V(ah){if(ah<32){return(ah<16?"\\x0":"\\x")+ah.toString(16)}var ai=String.fromCharCode(ah);return(ai==="\\"||ai==="-"||ai==="]"||ai==="^")?"\\"+ai:ai}function Z(an){var ar=an.substring(1,an.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ah=[];var ap=ar[0]==="^";var ao=["["];if(ap){ao.push("^")}for(var at=ap?1:0,al=ar.length;at<al;++at){var aj=ar[at];if(/\\[bdsw]/i.test(aj)){ao.push(aj)}else{var ai=ad(aj);var am;if(at+2<al&&"-"===ar[at+1]){am=ad(ar[at+2]);at+=2}else{am=ai}ah.push([ai,am]);if(!(am<65||ai>122)){if(!(am<65||ai>90)){ah.push([Math.max(65,ai)|32,Math.min(am,90)|32])}if(!(am<97||ai>122)){ah.push([Math.max(97,ai)&~32,Math.min(am,122)&~32])}}}}ah.sort(function(aw,av){return(aw[0]-av[0])||(av[1]-aw[1])});var ak=[];var aq=[];for(var at=0;at<ah.length;++at){var au=ah[at];if(au[0]<=aq[1]+1){aq[1]=Math.max(aq[1],au[1])}else{ak.push(aq=au)}}for(var at=0;at<ak.length;++at){var au=ak[at];ao.push(V(au[0]));if(au[1]>au[0]){if(au[1]+1>au[0]){ao.push("-")}ao.push(V(au[1]))}}ao.push("]");return ao.join("")}function Y(an){var al=an.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var aj=al.length;var ap=[];for(var am=0,ao=0;am<aj;++am){var ai=al[am];if(ai==="("){++ao}else{if("\\"===ai.charAt(0)){var ah=+ai.substring(1);if(ah){if(ah<=ao){ap[ah]=-1}else{al[am]=V(ah)}}}}}for(var am=1;am<ap.length;++am){if(-1===ap[am]){ap[am]=++af}}for(var am=0,ao=0;am<aj;++am){var ai=al[am];if(ai==="("){++ao;if(!ap[ao]){al[am]="(?:"}}else{if("\\"===ai.charAt(0)){var ah=+ai.substring(1);if(ah&&ah<=ao){al[am]="\\"+ap[ah]}}}}for(var am=0;am<aj;++am){if("^"===al[am]&&"^"!==al[am+1]){al[am]=""}}if(an.ignoreCase&&U){for(var am=0;am<aj;++am){var ai=al[am];var ak=ai.charAt(0);if(ai.length>=2&&ak==="["){al[am]=Z(ai)}else{if(ak!=="\\"){al[am]=ai.replace(/[a-zA-Z]/g,function(aq){var ar=aq.charCodeAt(0);return"["+String.fromCharCode(ar&~32,ar|32)+"]"})}}}}return al.join("")}var ac=[];for(var X=0,W=ab.length;X<W;++X){var ag=ab[X];if(ag.global||ag.multiline){throw new Error(""+ag)}ac.push("(?:"+Y(ag)+")")}return new RegExp(ac.join("|"),ae?"gi":"g")}function b(aa,Y){var W=/(?:^|\s)nocode(?:\s|$)/;var ab=[];var Z=0;var X=[];var V=0;function U(ac){switch(ac.nodeType){case 1:if(W.test(ac.className)){return}for(var af=ac.firstChild;af;af=af.nextSibling){U(af)}var ae=ac.nodeName.toLowerCase();if("br"===ae||"li"===ae){ab[V]="\n";X[V<<1]=Z++;X[(V++<<1)|1]=ac}break;case 3:case 4:var ad=ac.nodeValue;if(ad.length){if(!Y){ad=ad.replace(/[ \t\r\n]+/g," ")}else{ad=ad.replace(/\r\n?/g,"\n")}ab[V]=ad;X[V<<1]=Z;Z+=ad.length;X[(V++<<1)|1]=ac}break}}U(aa);return{sourceCode:ab.join("").replace(/\n$/,""),spans:X}}function C(U,W,Y,V){if(!W){return}var X={sourceCode:W,basePos:U};Y(X);V.push.apply(V,X.decorations)}var w=/\S/;function p(U){var X=undefined;for(var W=U.firstChild;W;W=W.nextSibling){var V=W.nodeType;X=(V===1)?(X?U:W):(V===3)?(w.test(W.nodeValue)?U:X):X}return X===U?undefined:X}function h(W,V){var U={};var X;(function(){var af=W.concat(V);var aj=[];var ai={};for(var ad=0,ab=af.length;ad<ab;++ad){var aa=af[ad];var ae=aa[3];if(ae){for(var ag=ae.length;--ag>=0;){U[ae.charAt(ag)]=aa}}var ah=aa[1];var ac=""+ah;if(!ai.hasOwnProperty(ac)){aj.push(ah);ai[ac]=null}}aj.push(/[\0-\uffff]/);X=l(aj)})();var Z=V.length;var Y=function(aj){var ab=aj.sourceCode,aa=aj.basePos;var af=[aa,G];var ah=0;var ap=ab.match(X)||[];var al={};for(var ag=0,at=ap.length;ag<at;++ag){var ai=ap[ag];var ar=al[ai];var ak=void 0;var ao;if(typeof ar==="string"){ao=false}else{var ac=U[ai.charAt(0)];if(ac){ak=ai.match(ac[1]);ar=ac[0]}else{for(var aq=0;aq<Z;++aq){ac=V[aq];ak=ai.match(ac[1]);if(ak){ar=ac[0];break}}if(!ak){ar=G}}ao=ar.length>=5&&"lang-"===ar.substring(0,5);if(ao&&!(ak&&typeof ak[1]==="string")){ao=false;ar=K}if(!ao){al[ai]=ar}}var ad=ah;ah+=ai.length;if(!ao){af.push(aa+ad,ar)}else{var an=ak[1];var am=ai.indexOf(an);var ae=am+an.length;if(ak[2]){ae=ai.length-ak[2].length;am=ae-an.length}var au=ar.substring(5);C(aa+ad,ai.substring(0,am),Y,af);C(aa+ad+am,an,r(au,an),af);C(aa+ad+ae,ai.substring(ae),Y,af)}}aj.decorations=af};return Y}function i(V){var Y=[],U=[];if(V.tripleQuotedStrings){Y.push([D,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(V.multiLineStrings){Y.push([D,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{Y.push([D,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(V.verbatimStrings){U.push([D,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var ab=V.hashComments;if(ab){if(V.cStyleComments){if(ab>1){Y.push([k,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{Y.push([k,/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}U.push([D,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,null])}else{Y.push([k,/^#[^\r\n]*/,null,"#"])}}if(V.cStyleComments){U.push([k,/^\/\/[^\r\n]*/,null]);U.push([k,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(V.regexLiterals){var aa=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");U.push(["lang-regex",new RegExp("^"+N+"("+aa+")")])}var X=V.types;if(X){U.push([Q,X])}var W=(""+V.keywords).replace(/^ | $/g,"");if(W.length){U.push([A,new RegExp("^(?:"+W.replace(/[\s,]+/g,"|")+")\\b"),null])}Y.push([G,/^\s+/,null," \r\n\t\xA0"]);var Z=/^.[^\s\w\.$@\'\"\`\/\\]*/;U.push([H,/^@[a-z_$][a-z_$@0-9]*/i,null],[Q,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[G,/^[a-z_$][a-z_$@0-9]*/i,null],[H,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[G,/^\\[\s\S]?/,null],[M,Z,null]);return h(Y,U)}var L=i({keywords:B,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function S(W,ah,aa){var V=/(?:^|\s)nocode(?:\s|$)/;var ac=/\r\n?|\n/;var ad=W.ownerDocument;var ag=ad.createElement("li");while(W.firstChild){ag.appendChild(W.firstChild)}var X=[ag];function af(am){switch(am.nodeType){case 1:if(V.test(am.className)){break}if("br"===am.nodeName){ae(am);if(am.parentNode){am.parentNode.removeChild(am)}}else{for(var ao=am.firstChild;ao;ao=ao.nextSibling){af(ao)}}break;case 3:case 4:if(aa){var an=am.nodeValue;var ak=an.match(ac);if(ak){var aj=an.substring(0,ak.index);am.nodeValue=aj;var ai=an.substring(ak.index+ak[0].length);if(ai){var al=am.parentNode;al.insertBefore(ad.createTextNode(ai),am.nextSibling)}ae(am);if(!aj){am.parentNode.removeChild(am)}}}break}}function ae(al){while(!al.nextSibling){al=al.parentNode;if(!al){return}}function aj(am,at){var ar=at?am.cloneNode(false):am;var ap=am.parentNode;if(ap){var aq=aj(ap,1);var ao=am.nextSibling;aq.appendChild(ar);for(var an=ao;an;an=ao){ao=an.nextSibling;aq.appendChild(an)}}return ar}var ai=aj(al.nextSibling,0);for(var ak;(ak=ai.parentNode)&&ak.nodeType===1;){ai=ak}X.push(ai)}for(var Z=0;Z<X.length;++Z){af(X[Z])}if(ah===(ah|0)){X[0].setAttribute("value",ah)}var ab=ad.createElement("ol");ab.className="linenums";var Y=Math.max(0,((ah-1))|0)||0;for(var Z=0,U=X.length;Z<U;++Z){ag=X[Z];ag.className="L"+((Z+Y)%10);if(!ag.firstChild){ag.appendChild(ad.createTextNode("\xA0"))}ab.appendChild(ag)}W.appendChild(ab)}function E(af){var X=/\bMSIE\s(\d+)/.exec(navigator.userAgent);X=X&&+X[1]<=8;var ao=/\n/g;var an=af.sourceCode;var ap=an.length;var Y=0;var ad=af.spans;var V=ad.length;var aj=0;var aa=af.decorations;var ab=aa.length;var ac=0;aa[ab]=ap;var av,at;for(at=av=0;at<ab;){if(aa[at]!==aa[at+2]){aa[av++]=aa[at++];aa[av++]=aa[at++]}else{at+=2}}ab=av;for(at=av=0;at<ab;){var aw=aa[at];var ae=aa[at+1];var Z=at+2;while(Z+2<=ab&&aa[Z+1]===ae){Z+=2}aa[av++]=aw;aa[av++]=ae;at=Z}ab=aa.length=av;var au=af.sourceNode;var ak;if(au){ak=au.style.display;au.style.display="none"}try{var ah=null;while(aj<V){var ai=ad[aj];var U=ad[aj+2]||ap;var ar=aa[ac+2]||ap;var Z=Math.min(U,ar);var am=ad[aj+1];var W;if(am.nodeType!==1&&(W=an.substring(Y,Z))){if(X){W=W.replace(ao,"\r")}am.nodeValue=W;var al=am.ownerDocument;var aq=al.createElement("span");aq.className=aa[ac+1];var ag=am.parentNode;ag.replaceChild(aq,am);aq.appendChild(am);if(Y<U){ad[aj+1]=am=al.createTextNode(an.substring(Z,U));ag.insertBefore(am,aq.nextSibling)}}Y=Z;if(Y>=U){aj+=2}if(Y>=ar){ac+=2}}}finally{if(au){au.style.display=ak}}}var u={};function d(W,X){for(var U=X.length;--U>=0;){var V=X[U];if(!u.hasOwnProperty(V)){u[V]=W}else{if(O.console){console.warn("cannot override language handler %s",V)}}}}function r(V,U){if(!(V&&u.hasOwnProperty(V))){V=/^\s*</.test(U)?"default-markup":"default-code"}return u[V]}d(L,["default-code"]);d(h([],[[G,/^[^<?]+/],[F,/^<!\w[^>]*(?:>|$)/],[k,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[M,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);d(h([[G,/^[\s]+/,null," \t\r\n"],[o,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[n,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[R,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[M,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);d(h([],[[o,/^[\s\S]+/]]),["uq.val"]);d(i({keywords:m,hashComments:true,cStyleComments:true,types:f}),["c","cc","cpp","cxx","cyc","m"]);d(i({keywords:"null,true,false"}),["json"]);d(i({keywords:T,hashComments:true,cStyleComments:true,verbatimStrings:true,types:f}),["cs"]);d(i({keywords:y,cStyleComments:true}),["java"]);d(i({keywords:I,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);d(i({keywords:J,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);d(i({keywords:t,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);d(i({keywords:g,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);d(i({keywords:x,cStyleComments:true,regexLiterals:true}),["js"]);d(i({keywords:s,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);d(h([],[[D,/^[\s\S]+/]]),["regex"]);function e(X){var W=X.langExtension;try{var U=b(X.sourceNode,X.pre);var V=U.sourceCode;X.sourceCode=V;X.spans=U.spans;X.basePos=0;r(W,V)(X);E(X)}catch(Y){if(O.console){console.log(Y&&Y.stack?Y.stack:Y)}}}function z(Y,X,W){var U=document.createElement("pre");U.innerHTML=Y;if(W){S(U,W,true)}var V={langExtension:X,numberLines:W,sourceNode:U,pre:1};e(V);return U.innerHTML}function c(aj){function ab(al){return document.getElementsByTagName(al)}var ah=[ab("pre"),ab("code"),ab("xmp")];var V=[];for(var ae=0;ae<ah.length;++ae){for(var ac=0,Y=ah[ae].length;ac<Y;++ac){V.push(ah[ae][ac])}}ah=null;var Z=Date;if(!Z.now){Z={now:function(){return +(new Date)}}}var aa=0;var U;var af=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ak=/\bprettyprint\b/;var W=/\bprettyprinted\b/;var ag=/pre|xmp/i;var ai=/^code$/i;var ad=/^(?:pre|code|xmp)$/i;function X(){var ar=(O.PR_SHOULD_USE_CONTINUATION?Z.now()+250:Infinity);for(;aa<V.length&&Z.now()<ar;aa++){var at=V[aa];var au=at.className;if(ak.test(au)&&!W.test(au)){var aw=false;for(var ao=at.parentNode;ao;ao=ao.parentNode){var ax=ao.tagName;if(ad.test(ax)&&ao.className&&ak.test(ao.className)){aw=true;break}}if(!aw){at.className+=" prettyprinted";var aq=au.match(af);var am;if(!aq&&(am=p(at))&&ai.test(am.tagName)){aq=am.className.match(af)}if(aq){aq=aq[1]}var ap;if(ag.test(at.tagName)){ap=1}else{var an=at.currentStyle;var al=(an?an.whiteSpace:(document.defaultView&&document.defaultView.getComputedStyle)?document.defaultView.getComputedStyle(at,null).getPropertyValue("white-space"):0);ap=al&&"pre"===al.substring(0,3)}var av=at.className.match(/\blinenums\b(?::(\d+))?/);av=av?av[1]&&av[1].length?+av[1]:true:false;if(av){S(at,av,ap)}U={langExtension:aq,sourceNode:at,numberLines:av,pre:ap};e(U)}}}if(aa<V.length){setTimeout(X,250)}else{if(aj){aj()}}}X()}var a=O.PR={createSimpleLexer:h,registerLangHandler:d,sourceDecorator:i,PR_ATTRIB_NAME:R,PR_ATTRIB_VALUE:o,PR_COMMENT:k,PR_DECLARATION:F,PR_KEYWORD:A,PR_LITERAL:H,PR_NOCODE:P,PR_PLAIN:G,PR_PUNCTUATION:M,PR_SOURCE:K,PR_STRING:D,PR_TAG:n,PR_TYPE:Q,prettyPrintOne:O.prettyPrintOne=z,prettyPrint:O.prettyPrint=c};if(typeof define==="function"&&define.amd){define("google-code-prettify",[],function(){return a})}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]);

=== added directory 'doc/docbuild/classes'
=== added file 'doc/docbuild/classes/ActionMetadata.html'
--- doc/docbuild/classes/ActionMetadata.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/classes/ActionMetadata.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,365 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>ActionMetadata - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1>ActionMetadata Class</h1>
+<div class="box meta">
+
+
+        <div class="foundat">
+            Defined in: <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_action-metadata.js.html#l1"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;action-metadata.js:1</code></a>
+        </div>
+
+            Module: <a href="../modules/ScopeJS.html">ScopeJS</a>
+
+</div>
+
+
+<div class="box intro">
+    <p>Metadata passed to scopes for preview and activation</p>
+
+</div>
+
+
+<div id="classdocs" class="tabview">
+    <ul class="api-class-tabs">
+        <li class="api-class-tab index"><a href="#index">Index</a></li>
+
+            <li class="api-class-tab methods"><a href="#methods">Methods</a></li>
+    </ul>
+
+    <div>
+        <div id="index" class="api-class-tabpanel index">
+            <h2 class="off-left">Item Index</h2>
+
+                <div class="index-section methods">
+                    <h3>Methods</h3>
+
+                    <ul class="index-list methods">
+                            <li class="index-item method">
+                                <a href="#method_contains_hint">contains_hint</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_get">get</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set">set</a>
+
+                            </li>
+                    </ul>
+                </div>
+
+
+
+        </div>
+
+            <div id="methods" class="api-class-tabpanel">
+                <h2 class="off-left">Methods</h2>
+
+<div id="method_contains_hint" class="method item">
+    <h3 class="name"><code>contains_hint</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>hint</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_action-metadata.js.html#l12"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;action-metadata.js:12</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Check if this ActionMetadata has a hint</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">hint</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>Boolean</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_get" class="method item">
+    <h3 class="name"><code>get</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>key</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+        <span class="returns-inline">
+            <span class="type">String</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_action-metadata.js.html#l28"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;action-metadata.js:28</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the value of an attribute</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">key</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">String</span>:
+                    <p>, {Number} or {Object}</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_set" class="method item">
+    <h3 class="name"><code>set</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>key</code>
+                </li>
+                <li class="arg">
+                        <code>value</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_action-metadata.js.html#l20"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;action-metadata.js:20</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Set the value of an attribute</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">key</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+                <li class="param">
+                        <code class="param-name">value</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                        <p>, {Number} or {Object}</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+            </div>
+
+
+
+    </div>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/classes/ActivationQuery.html'
--- doc/docbuild/classes/ActivationQuery.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/classes/ActivationQuery.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,479 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>ActivationQuery - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1>ActivationQuery Class</h1>
+<div class="box meta">
+
+
+        <div class="foundat">
+            Defined in: <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_activation-query.js.html#l1"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;activation-query.js:1</code></a>
+        </div>
+
+            Module: <a href="../modules/ScopeJS.html">ScopeJS</a>
+
+</div>
+
+
+<div class="box intro">
+    <p>Represents an activation request that is executed inside a scope</p>
+
+</div>
+
+
+<div id="classdocs" class="tabview">
+    <ul class="api-class-tabs">
+        <li class="api-class-tab index"><a href="#index">Index</a></li>
+
+            <li class="api-class-tab methods"><a href="#methods">Methods</a></li>
+    </ul>
+
+    <div>
+        <div id="index" class="api-class-tabpanel index">
+            <h2 class="off-left">Item Index</h2>
+
+                <div class="index-section methods">
+                    <h3>Methods</h3>
+
+                    <ul class="index-list methods">
+                            <li class="index-item method">
+                                <a href="#method_action_id">action_id</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_action_metadata">action_metadata</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_activate">activate</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_result">result</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_settings">settings</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_valid">valid</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_widget_id">widget_id</a>
+
+                            </li>
+                    </ul>
+                </div>
+
+
+
+        </div>
+
+            <div id="methods" class="api-class-tabpanel">
+                <h2 class="off-left">Methods</h2>
+
+<div id="method_action_id" class="method item">
+    <h3 class="name"><code>action_id</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_activation-query.js.html#l39"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;activation-query.js:39</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the action identifier for this activation request handler</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>String</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_action_metadata" class="method item">
+    <h3 class="name"><code>action_metadata</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_activation-query.js.html#l25"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;activation-query.js:25</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the metadata for this activation request handler</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>ActionMetadata</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_activate" class="method item">
+    <h3 class="name"><code>activate</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_activation-query.js.html#l11"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;activation-query.js:11</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Return response to the activation request</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>ActivationResponse</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_result" class="method item">
+    <h3 class="name"><code>result</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_activation-query.js.html#l18"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;activation-query.js:18</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the result for this activation request handler</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>Result</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_settings" class="method item">
+    <h3 class="name"><code>settings</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_activation-query.js.html#l53"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;activation-query.js:53</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Returns a dictionary with the scope's current settings</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>Dictionary</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_valid" class="method item">
+    <h3 class="name"><code>valid</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_activation-query.js.html#l46"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;activation-query.js:46</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Check whether this query is still valid</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>Boolean</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_widget_id" class="method item">
+    <h3 class="name"><code>widget_id</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_activation-query.js.html#l32"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;activation-query.js:32</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the widget identifier for this activation request handler</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>String</p>
+
+            </div>
+        </div>
+
+
+</div>
+            </div>
+
+
+
+    </div>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/classes/CategorisedResult.html'
--- doc/docbuild/classes/CategorisedResult.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/classes/CategorisedResult.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,1205 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>CategorisedResult - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1>CategorisedResult Class</h1>
+<div class="box meta">
+
+
+        <div class="foundat">
+            Defined in: <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l1"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:1</code></a>
+        </div>
+
+            Module: <a href="../modules/ScopeJS.html">ScopeJS</a>
+
+</div>
+
+
+<div class="box intro">
+    <p>A result, including the category it belongs to.</p>
+
+</div>
+
+
+<div id="classdocs" class="tabview">
+    <ul class="api-class-tabs">
+        <li class="api-class-tab index"><a href="#index">Index</a></li>
+
+            <li class="api-class-tab methods"><a href="#methods">Methods</a></li>
+    </ul>
+
+    <div>
+        <div id="index" class="api-class-tabpanel index">
+            <h2 class="off-left">Item Index</h2>
+
+                <div class="index-section methods">
+                    <h3>Methods</h3>
+
+                    <ul class="index-list methods">
+                            <li class="index-item method">
+                                <a href="#method_art">art</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_category">category</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_contains">contains</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_direct_activation">direct_activation</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_dnd_uri">dnd_uri</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_get">get</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_has_stored_result">has_stored_result</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_is_account_login_result">is_account_login_result</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_retrieve">retrieve</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set">set</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set_art">set_art</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set_category">set_category</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set_dnd_uri">set_dnd_uri</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set_intercept_activation">set_intercept_activation</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set_title">set_title</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set_uri">set_uri</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_store">store</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_title">title</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_uri">uri</a>
+
+                            </li>
+                    </ul>
+                </div>
+
+
+
+        </div>
+
+            <div id="methods" class="api-class-tabpanel">
+                <h2 class="off-left">Methods</h2>
+
+<div id="method_art" class="method item">
+    <h3 class="name"><code>art</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">String</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l125"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:125</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the &quot;art&quot; property of this Result.
+This method returns an empty string if this attribute is not of type String.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">String</span>:
+                    <p>The value of &quot;art&quot; or the empty string.</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_category" class="method item">
+    <h3 class="name"><code>category</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"><a href="../classes/Category.html" class="crosslink">Category</a></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l20"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:20</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the category instance this result belongs to.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type"><a href="../classes/Category.html" class="crosslink">Category</a></span>:
+                    <p>The category instance.</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_contains" class="method item">
+    <h3 class="name"><code>contains</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>key</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+        <span class="returns-inline">
+            <span class="type">Boolean</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l141"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:141</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Check if this Result has an attribute.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">key</code>
+                        <span class="type">Object</span>
+
+
+                    <div class="param-description">
+                        <p>The attribute name.</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">Boolean</span>:
+                    <p>True if the attribute is set.</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_direct_activation" class="method item">
+    <h3 class="name"><code>direct_activation</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">Boolean</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l101"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:101</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Check if this result should be activated directly by the shell
+because the scope doesn't handle activation of this result.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">Boolean</span>:
+                    <p>True if this result needs to be activated directly.</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_dnd_uri" class="method item">
+    <h3 class="name"><code>dnd_uri</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">String</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l133"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:133</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the &quot;dnd_uri&quot; property of this Result.
+This method returns an empty string if this attribute is not of type String.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">String</span>:
+                    <p>The value of &quot;dnd_uri&quot; or the empty string.</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_get" class="method item">
+    <h3 class="name"><code>get</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>key</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l156"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:156</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Gets the value of a custom metadata attribute.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">key</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                        <p>The name of the attribute.</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>Attribute value or null</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_has_stored_result" class="method item">
+    <h3 class="name"><code>has_stored_result</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">Boolean</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l41"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:41</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Check if this Result instance has a stored result.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">Boolean</span>:
+                    <p>True if there is a stored result</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_is_account_login_result" class="method item">
+    <h3 class="name"><code>is_account_login_result</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">Boolean</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l149"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:149</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Check if this result is an online account login result.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">Boolean</span>:
+                    <p>True if this result is an online account login result.</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_retrieve" class="method item">
+    <h3 class="name"><code>retrieve</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"><a href="../classes/Result.html" class="crosslink">Result</a></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l48"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:48</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get a stored result.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type"><a href="../classes/Result.html" class="crosslink">Result</a></span>:
+                    <p>stored result</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_set" class="method item">
+    <h3 class="name"><code>set</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>key</code>
+                </li>
+                <li class="arg">
+                        <code>value</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l164"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:164</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Sets the value of a custom metadata attribute.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">key</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                        <p>The name of the attribute.</p>
+
+                    </div>
+
+                </li>
+                <li class="param">
+                        <code class="param-name">value</code>
+                        <span class="type">Object</span>
+
+
+                    <div class="param-description">
+                        <p>The value of the attribute.</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_set_art" class="method item">
+    <h3 class="name"><code>set_art</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>art</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l69"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:69</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Set the &quot;art&quot; attribute of this result.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">art</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_set_category" class="method item">
+    <h3 class="name"><code>set_category</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>category</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l13"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:13</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Updates the category of this result.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">category</code>
+                        <span class="type">Object</span>
+
+
+                    <div class="param-description">
+                        <p>The category for the result.</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_set_dnd_uri" class="method item">
+    <h3 class="name"><code>set_dnd_uri</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>dnd_uri</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l76"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:76</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Set the &quot;dnd_uri&quot; attribute of this result.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">dnd_uri</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_set_intercept_activation" class="method item">
+    <h3 class="name"><code>set_intercept_activation</code></h3>
+
+        <span class="paren">()</span>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l83"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:83</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Indicates to the receiver that this scope should intercept
+activation requests for this result.
+By default, a scope receives preview requests for the results it
+creates, but does not receive activation requests (they are handled
+directly by the shell). Intercepting activation implies intercepting
+preview requests as well; this is important for scopes that forward
+results from other scopes and call set_intercept_activation() on these scopes.
+A scope that sets intercept activation flag for a result should re-implement
+Scope.activate() and provide an implementation of ActivationQuery that
+handles the actual activation. If not called, the result will be activated
+directly by the Unity shell whithout involving the scope, assuming an appropriate
+URI schema handler is present on the system.</p>
+
+    </div>
+
+
+
+
+</div>
+<div id="method_set_title" class="method item">
+    <h3 class="name"><code>set_title</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>title</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l62"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:62</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Set the &quot;title&quot; attribute of this result.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">title</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_set_uri" class="method item">
+    <h3 class="name"><code>set_uri</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>uri</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l55"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:55</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Set the &quot;uri&quot; attribute of this result.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">uri</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_store" class="method item">
+    <h3 class="name"><code>store</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>The</code>
+                </li>
+                <li class="arg">
+                        <code>intercept_activation</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l27"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:27</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>This method is meant to be used by aggregator scopes which want to modify
+results they receive, but want to keep a copy of the original result so
+that they can be correctly handled by the original scopes
+who created them when it comes to activation or previews.
+Scopes middleware will automatically pass the correct inner stored result
+to the activation or preview request handler</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">The</code>
+                        <span class="type"><a href="../classes/Result.html" class="crosslink">Result</a></span>
+
+
+                    <div class="param-description">
+                        <p>original result to store within this result.</p>
+
+                    </div>
+
+                </li>
+                <li class="param">
+                        <code class="param-name">intercept_activation</code>
+                        <span class="type">Boolean</span>
+
+
+                    <div class="param-description">
+                        <p>True if this scope should receive activation and preview requests.</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_title" class="method item">
+    <h3 class="name"><code>title</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">String</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l117"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:117</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the &quot;title&quot; property of this Result.
+This method returns an empty string if this attribute is not of type String.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">String</span>:
+                    <p>The value of &quot;title&quot; or the empty string.</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_uri" class="method item">
+    <h3 class="name"><code>uri</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">String</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html#l109"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;categorised-result.js:109</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the &quot;uri&quot; property of this Result.
+This method returns an empty string if this attribute is not of type String.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">String</span>:
+                    <p>The value of &quot;uri&quot; or the empty string.</p>
+
+            </div>
+        </div>
+
+
+</div>
+            </div>
+
+
+
+    </div>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/classes/Category.html'
--- doc/docbuild/classes/Category.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/classes/Category.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,343 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>Category - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1>Category Class</h1>
+<div class="box meta">
+
+
+        <div class="foundat">
+            Defined in: <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_category.js.html#l1"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;category.js:1</code></a>
+        </div>
+
+            Module: <a href="../modules/ScopeJS.html">ScopeJS</a>
+
+</div>
+
+
+<div class="box intro">
+    <p>A set of related results returned by a scope
+and displayed within a single pane in the Unity dash.
+To create a Category, use SearchReply.register_category.</p>
+
+</div>
+
+
+<div id="classdocs" class="tabview">
+    <ul class="api-class-tabs">
+        <li class="api-class-tab index"><a href="#index">Index</a></li>
+
+            <li class="api-class-tab methods"><a href="#methods">Methods</a></li>
+    </ul>
+
+    <div>
+        <div id="index" class="api-class-tabpanel index">
+            <h2 class="off-left">Item Index</h2>
+
+                <div class="index-section methods">
+                    <h3>Methods</h3>
+
+                    <ul class="index-list methods">
+                            <li class="index-item method">
+                                <a href="#method_icon">icon</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_id">id</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_query">query</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_title">title</a>
+
+                            </li>
+                    </ul>
+                </div>
+
+
+
+        </div>
+
+            <div id="methods" class="api-class-tabpanel">
+                <h2 class="off-left">Methods</h2>
+
+<div id="method_icon" class="method item">
+    <h3 class="name"><code>icon</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_category.js.html#l28"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;category.js:28</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get icon of this Category</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>String The category icon.</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_id" class="method item">
+    <h3 class="name"><code>id</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_category.js.html#l14"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;category.js:14</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get identifier of this Category</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>String The category identifier.</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_query" class="method item">
+    <h3 class="name"><code>query</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_category.js.html#l35"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;category.js:35</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Query to perform when this category is expanded</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>CannedQuery The expansion query or null.</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_title" class="method item">
+    <h3 class="name"><code>title</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_category.js.html#l21"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;category.js:21</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get title of this Category</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>String The category title.</p>
+
+            </div>
+        </div>
+
+
+</div>
+            </div>
+
+
+
+    </div>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/classes/CategoryRenderer.html'
--- doc/docbuild/classes/CategoryRenderer.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/classes/CategoryRenderer.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,203 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>CategoryRenderer - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1>CategoryRenderer Class</h1>
+<div class="box meta">
+
+
+        <div class="foundat">
+            Defined in: <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_category-renderer.js.html#l1"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;category-renderer.js:1</code></a>
+        </div>
+
+            Module: <a href="../modules/ScopeJS.html">ScopeJS</a>
+
+</div>
+
+
+<div class="box intro">
+    <p>A category renderer template in JSON format.</p>
+
+</div>
+
+
+<div id="classdocs" class="tabview">
+    <ul class="api-class-tabs">
+        <li class="api-class-tab index"><a href="#index">Index</a></li>
+
+            <li class="api-class-tab methods"><a href="#methods">Methods</a></li>
+    </ul>
+
+    <div>
+        <div id="index" class="api-class-tabpanel index">
+            <h2 class="off-left">Item Index</h2>
+
+                <div class="index-section methods">
+                    <h3>Methods</h3>
+
+                    <ul class="index-list methods">
+                            <li class="index-item method">
+                                <a href="#method_data">data</a>
+
+                            </li>
+                    </ul>
+                </div>
+
+
+
+        </div>
+
+            <div id="methods" class="api-class-tabpanel">
+                <h2 class="off-left">Methods</h2>
+
+<div id="method_data" class="method item">
+    <h3 class="name"><code>data</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_category-renderer.js.html#l13"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;category-renderer.js:13</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Returns complete renderer template definition in JSON format.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>String The renderer template (JSON)</p>
+
+            </div>
+        </div>
+
+
+</div>
+            </div>
+
+
+
+    </div>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/classes/ColumnLayout.html'
--- doc/docbuild/classes/ColumnLayout.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/classes/ColumnLayout.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,376 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>ColumnLayout - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1>ColumnLayout Class</h1>
+<div class="box meta">
+
+
+        <div class="foundat">
+            Defined in: <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_column-layout.js.html#l1"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;column-layout.js:1</code></a>
+        </div>
+
+            Module: <a href="../modules/ScopeJS.html">ScopeJS</a>
+
+</div>
+
+
+<div class="box intro">
+    <p>Describes a column layout for preview widgets.</p>
+
+</div>
+
+
+<div id="classdocs" class="tabview">
+    <ul class="api-class-tabs">
+        <li class="api-class-tab index"><a href="#index">Index</a></li>
+
+            <li class="api-class-tab methods"><a href="#methods">Methods</a></li>
+    </ul>
+
+    <div>
+        <div id="index" class="api-class-tabpanel index">
+            <h2 class="off-left">Item Index</h2>
+
+                <div class="index-section methods">
+                    <h3>Methods</h3>
+
+                    <ul class="index-list methods">
+                            <li class="index-item method">
+                                <a href="#method_add_column">add_column</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_column">column</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_number_of_columns">number_of_columns</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_size">size</a>
+
+                            </li>
+                    </ul>
+                </div>
+
+
+
+        </div>
+
+            <div id="methods" class="api-class-tabpanel">
+                <h2 class="off-left">Methods</h2>
+
+<div id="method_add_column" class="method item">
+    <h3 class="name"><code>add_column</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>widget_ids</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_column-layout.js.html#l13"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;column-layout.js:13</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Adds a new column and assigns widgets to it.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">widget_ids</code>
+                        <span class="type">Object</span>
+
+
+                    <div class="param-description">
+                        <p>ColumnLayout expects exactly the number of columns passed to the constructor to be created with the add_column method.</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_column" class="method item">
+    <h3 class="name"><code>column</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>index</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_column-layout.js.html#l34"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;column-layout.js:34</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Retrieve the list of widgets for given column.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">index</code>
+                        <span class="type">Object</span>
+
+
+                    <div class="param-description">
+                        <p>The index of a column.</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>The widget identifiers for the given column index.</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_number_of_columns" class="method item">
+    <h3 class="name"><code>number_of_columns</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_column-layout.js.html#l27"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;column-layout.js:27</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the number of columns expected by this layout as specified in the constructor.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>The number of columns expected by this layout.</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_size" class="method item">
+    <h3 class="name"><code>size</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_column-layout.js.html#l20"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;column-layout.js:20</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the current number of columns in this layout.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>The number of columns added with add_column()</p>
+
+            </div>
+        </div>
+
+
+</div>
+            </div>
+
+
+
+    </div>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/classes/PreviewQuery.html'
--- doc/docbuild/classes/PreviewQuery.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/classes/PreviewQuery.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,341 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>PreviewQuery - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1>PreviewQuery Class</h1>
+<div class="box meta">
+
+
+        <div class="foundat">
+            Defined in: <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-query.js.html#l1"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-query.js:1</code></a>
+        </div>
+
+            Module: <a href="../modules/ScopeJS.html">ScopeJS</a>
+
+</div>
+
+
+<div class="box intro">
+    <p>Represents a particular preview</p>
+
+</div>
+
+
+<div id="classdocs" class="tabview">
+    <ul class="api-class-tabs">
+        <li class="api-class-tab index"><a href="#index">Index</a></li>
+
+            <li class="api-class-tab methods"><a href="#methods">Methods</a></li>
+    </ul>
+
+    <div>
+        <div id="index" class="api-class-tabpanel index">
+            <h2 class="off-left">Item Index</h2>
+
+                <div class="index-section methods">
+                    <h3>Methods</h3>
+
+                    <ul class="index-list methods">
+                            <li class="index-item method">
+                                <a href="#method_action_metadata">action_metadata</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_result">result</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_settings">settings</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_valid">valid</a>
+
+                            </li>
+                    </ul>
+                </div>
+
+
+
+        </div>
+
+            <div id="methods" class="api-class-tabpanel">
+                <h2 class="off-left">Methods</h2>
+
+<div id="method_action_metadata" class="method item">
+    <h3 class="name"><code>action_metadata</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-query.js.html#l54"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-query.js:54</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get metadata for this preview request</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>ActionMetadata</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_result" class="method item">
+    <h3 class="name"><code>result</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-query.js.html#l47"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-query.js:47</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get result for this preview request</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>Result</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_settings" class="method item">
+    <h3 class="name"><code>settings</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-query.js.html#l68"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-query.js:68</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Returns a dictionary with the scope's current settings</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>Dictionary</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_valid" class="method item">
+    <h3 class="name"><code>valid</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-query.js.html#l61"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-query.js:61</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Check whether this query is still valid</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>Boolean</p>
+
+            </div>
+        </div>
+
+
+</div>
+            </div>
+
+
+
+    </div>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/classes/PreviewReply.html'
--- doc/docbuild/classes/PreviewReply.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/classes/PreviewReply.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,363 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>PreviewReply - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1>PreviewReply Class</h1>
+<div class="box meta">
+
+
+        <div class="foundat">
+            Defined in: <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-reply.js.html#l1"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-reply.js:1</code></a>
+        </div>
+
+            Module: <a href="../modules/ScopeJS.html">ScopeJS</a>
+
+</div>
+
+
+<div class="box intro">
+    <p>Allows the results of a preview to be sent to the preview requester.</p>
+
+</div>
+
+
+<div id="classdocs" class="tabview">
+    <ul class="api-class-tabs">
+        <li class="api-class-tab index"><a href="#index">Index</a></li>
+
+            <li class="api-class-tab methods"><a href="#methods">Methods</a></li>
+    </ul>
+
+    <div>
+        <div id="index" class="api-class-tabpanel index">
+            <h2 class="off-left">Item Index</h2>
+
+                <div class="index-section methods">
+                    <h3>Methods</h3>
+
+                    <ul class="index-list methods">
+                            <li class="index-item method">
+                                <a href="#method_error">error</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_finished">finished</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_push">push</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_register_layout">register_layout</a>
+
+                            </li>
+                    </ul>
+                </div>
+
+
+
+        </div>
+
+            <div id="methods" class="api-class-tabpanel">
+                <h2 class="off-left">Methods</h2>
+
+<div id="method_error" class="method item">
+    <h3 class="name"><code>error</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-reply.js.html#l33"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-reply.js:33</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Informs the source of a query that the query was terminated due to an error</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>error String error</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_finished" class="method item">
+    <h3 class="name"><code>finished</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-reply.js.html#l26"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-reply.js:26</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Informs the source of a query that the query results are complete</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>Boolean</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_push" class="method item">
+    <h3 class="name"><code>push</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>widget_list</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-reply.js.html#l19"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-reply.js:19</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Sends widget definitions to the sender of the preview query</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">widget_list</code>
+                        <span class="type">Array of PreviewWidget</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_register_layout" class="method item">
+    <h3 class="name"><code>register_layout</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>layout</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-reply.js.html#l12"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-reply.js:12</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Registers a list of column layouts for the current preview</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">layout</code>
+                        <span class="type">Array of Column layout</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+            </div>
+
+
+
+    </div>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/classes/PreviewWidget.html'
--- doc/docbuild/classes/PreviewWidget.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/classes/PreviewWidget.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,637 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>PreviewWidget - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1>PreviewWidget Class</h1>
+<div class="box meta">
+
+
+        <div class="foundat">
+            Defined in: <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-widget.js.html#l1"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-widget.js:1</code></a>
+        </div>
+
+            Module: <a href="../modules/ScopeJS.html">ScopeJS</a>
+
+</div>
+
+
+<div class="box intro">
+    <p>A widget for a preview.</p>
+
+</div>
+
+
+<div id="classdocs" class="tabview">
+    <ul class="api-class-tabs">
+        <li class="api-class-tab index"><a href="#index">Index</a></li>
+
+            <li class="api-class-tab methods"><a href="#methods">Methods</a></li>
+    </ul>
+
+    <div>
+        <div id="index" class="api-class-tabpanel index">
+            <h2 class="off-left">Item Index</h2>
+
+                <div class="index-section methods">
+                    <h3>Methods</h3>
+
+                    <ul class="index-list methods">
+                            <li class="index-item method">
+                                <a href="#method_add_attribute_mapping">add_attribute_mapping</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_add_attribute_value">add_attribute_value</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_add_widget">add_widget</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_attribute_mappings">attribute_mappings</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_attribute_values">attribute_values</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_data">data</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_id">id</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_widget_type">widget_type</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_widgets">widgets</a>
+
+                            </li>
+                    </ul>
+                </div>
+
+
+
+        </div>
+
+            <div id="methods" class="api-class-tabpanel">
+                <h2 class="off-left">Methods</h2>
+
+<div id="method_add_attribute_mapping" class="method item">
+    <h3 class="name"><code>add_attribute_mapping</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>key</code>
+                </li>
+                <li class="arg">
+                        <code>value</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-widget.js.html#l20"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-widget.js:20</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Adds an attribute definition using a component mapping</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">key</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                        <p>Attribute definition</p>
+
+                    </div>
+
+                </li>
+                <li class="param">
+                        <code class="param-name">value</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                        <p>Value</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_add_attribute_value" class="method item">
+    <h3 class="name"><code>add_attribute_value</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>key</code>
+                </li>
+                <li class="arg">
+                        <code>value</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-widget.js.html#l12"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-widget.js:12</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Adds an attribute definition and its value</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">key</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                        <p>Attribute definition</p>
+
+                    </div>
+
+                </li>
+                <li class="param">
+                        <code class="param-name">value</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                        <p>, {Number}, {Object}. The value can be a string, number, object</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_add_widget" class="method item">
+    <h3 class="name"><code>add_widget</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>widget</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-widget.js.html#l28"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-widget.js:28</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Adds a widget into expandable widget</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">widget</code>
+                        <span class="type"><a href="../classes/PreviewWidget.html" class="crosslink">PreviewWidget</a></span>
+
+
+                    <div class="param-description">
+                        <p>The widget that needs to be added</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_attribute_mappings" class="method item">
+    <h3 class="name"><code>attribute_mappings</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-widget.js.html#l49"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-widget.js:49</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the components of this widget</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>Dictionary of widget components</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_attribute_values" class="method item">
+    <h3 class="name"><code>attribute_values</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-widget.js.html#l56"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-widget.js:56</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the attributes of this widget</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>Object corresponding to attributes of this widget</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_data" class="method item">
+    <h3 class="name"><code>data</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-widget.js.html#l70"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-widget.js:70</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get a JSON representation of this widget</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>String representation of widget</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_id" class="method item">
+    <h3 class="name"><code>id</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">String</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-widget.js.html#l35"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-widget.js:35</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the identifier of this widget</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">String</span>:
+                    <p>Id</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_widget_type" class="method item">
+    <h3 class="name"><code>widget_type</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">String</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-widget.js.html#l42"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-widget.js:42</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get type name of this widget</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">String</span>:
+                    <p>Widget type</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_widgets" class="method item">
+    <h3 class="name"><code>widgets</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-widget.js.html#l63"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;preview-widget.js:63</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get widgets of 'expandable' widget</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>List of PreviewWidget</p>
+
+            </div>
+        </div>
+
+
+</div>
+            </div>
+
+
+
+    </div>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/classes/Result.html'
--- doc/docbuild/classes/Result.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/classes/Result.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,987 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>Result - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1>Result Class</h1>
+<div class="box meta">
+
+
+        <div class="foundat">
+            Defined in: <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html#l1"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;result.js:1</code></a>
+        </div>
+
+            Module: <a href="../modules/ScopeJS.html">ScopeJS</a>
+
+</div>
+
+
+<div class="box intro">
+    <p>The attributes of a result returned by a Scope
+The Result API provides convenience methods for some typical attributes (title, art), but scopes are free to add and use any custom attributes with set/get methods. The only required attribute is 'uri' and it must not be empty before calling Reply.push().</p>
+
+</div>
+
+
+<div id="classdocs" class="tabview">
+    <ul class="api-class-tabs">
+        <li class="api-class-tab index"><a href="#index">Index</a></li>
+
+            <li class="api-class-tab methods"><a href="#methods">Methods</a></li>
+    </ul>
+
+    <div>
+        <div id="index" class="api-class-tabpanel index">
+            <h2 class="off-left">Item Index</h2>
+
+                <div class="index-section methods">
+                    <h3>Methods</h3>
+
+                    <ul class="index-list methods">
+                            <li class="index-item method">
+                                <a href="#method_art">art</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_contains">contains</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_direct_activation">direct_activation</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_dnd_uri">dnd_uri</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_get">get</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_has_stored_result">has_stored_result</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_retrieve">retrieve</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set">set</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set_art">set_art</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set_dnd_uri">set_dnd_uri</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set_intercept_activation">set_intercept_activation</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set_title">set_title</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set_uri">set_uri</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_title">title</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_uri">uri</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_value">value</a>
+
+                            </li>
+                    </ul>
+                </div>
+
+
+
+        </div>
+
+            <div id="methods" class="api-class-tabpanel">
+                <h2 class="off-left">Methods</h2>
+
+<div id="method_art" class="method item">
+    <h3 class="name"><code>art</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">String</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html#l82"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;result.js:82</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the &quot;art&quot; property of this Result</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">String</span>:
+            </div>
+        </div>
+
+
+</div>
+<div id="method_contains" class="method item">
+    <h3 class="name"><code>contains</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">Boolean</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html#l96"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;result.js:96</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Check if this Result has an attribute</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">Boolean</span>:
+            </div>
+        </div>
+
+
+</div>
+<div id="method_direct_activation" class="method item">
+    <h3 class="name"><code>direct_activation</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">Boolean</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html#l61"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;result.js:61</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Check if this result should be activated directly by the shell because the scope doesn't handle activation of this result</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">Boolean</span>:
+            </div>
+        </div>
+
+
+</div>
+<div id="method_dnd_uri" class="method item">
+    <h3 class="name"><code>dnd_uri</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">String</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html#l89"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;result.js:89</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the &quot;dnd_uri&quot; property of this Result</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">String</span>:
+            </div>
+        </div>
+
+
+</div>
+<div id="method_get" class="method item">
+    <h3 class="name"><code>get</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>key</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+        <span class="returns-inline">
+            <span class="type">String</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html#l119"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;result.js:119</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the value of an attribute</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">key</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">String</span>:
+                    <p>, {Number} or {Object}</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_has_stored_result" class="method item">
+    <h3 class="name"><code>has_stored_result</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">Boolean</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html#l13"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;result.js:13</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Check if this Result instance has a stored result</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">Boolean</span>:
+            </div>
+        </div>
+
+
+</div>
+<div id="method_retrieve" class="method item">
+    <h3 class="name"><code>retrieve</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"><a href="../classes/Result.html" class="crosslink">Result</a></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html#l20"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;result.js:20</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get a stored result</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type"><a href="../classes/Result.html" class="crosslink">Result</a></span>:
+            </div>
+        </div>
+
+
+</div>
+<div id="method_set" class="method item">
+    <h3 class="name"><code>set</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>key</code>
+                </li>
+                <li class="arg">
+                        <code>value</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html#l111"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;result.js:111</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Set the value of an attribute</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">key</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+                <li class="param">
+                        <code class="param-name">value</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_set_art" class="method item">
+    <h3 class="name"><code>set_art</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>art</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html#l41"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;result.js:41</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Set the &quot;art&quot; attribute of this result.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">art</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_set_dnd_uri" class="method item">
+    <h3 class="name"><code>set_dnd_uri</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>dnd_uri</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html#l48"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;result.js:48</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Set the &quot;dnd_uri&quot; attribute of this result.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">dnd_uri</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_set_intercept_activation" class="method item">
+    <h3 class="name"><code>set_intercept_activation</code></h3>
+
+        <span class="paren">()</span>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html#l55"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;result.js:55</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Indicates to the receiver that this scope should intercept activation requests for this result</p>
+
+    </div>
+
+
+
+
+</div>
+<div id="method_set_title" class="method item">
+    <h3 class="name"><code>set_title</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>title</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html#l34"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;result.js:34</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Set the &quot;title&quot; attribute of this result.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">title</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_set_uri" class="method item">
+    <h3 class="name"><code>set_uri</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>uri</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html#l27"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;result.js:27</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Set the &quot;uri&quot; attribute of this result.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">uri</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_title" class="method item">
+    <h3 class="name"><code>title</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">String</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html#l75"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;result.js:75</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the &quot;title&quot; property of this Result</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">String</span>:
+            </div>
+        </div>
+
+
+</div>
+<div id="method_uri" class="method item">
+    <h3 class="name"><code>uri</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">String</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html#l68"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;result.js:68</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the &quot;uri&quot; property of this Result</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">String</span>:
+            </div>
+        </div>
+
+
+</div>
+<div id="method_value" class="method item">
+    <h3 class="name"><code>value</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>value</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+        <span class="returns-inline">
+            <span class="type">Dictonary</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html#l103"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;result.js:103</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the value of an attribute</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">value</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">Dictonary</span>:
+            </div>
+        </div>
+
+
+</div>
+            </div>
+
+
+
+    </div>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/classes/Scope.html'
--- doc/docbuild/classes/Scope.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/classes/Scope.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,423 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>Scope - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1>Scope Class</h1>
+<div class="box meta">
+
+
+        <div class="foundat">
+            Defined in: <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_index.js.html#l25"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;index.js:25</code></a>
+        </div>
+
+            Module: <a href="../modules/ScopeJS.html">ScopeJS</a>
+
+</div>
+
+
+<div class="box intro">
+    <p>Scope corresponds to the bridge between the ubuntu scope runtime
+and the actual scope.</p>
+<p>A Scope object is not directly constructible but it is automatically created
+when the scope module is imported and is accessible through the 'self' exported
+member.</p>
+<p>After the scopes runtime has obtained initialization runtime configurations from
+the scope, it calls start(), which allows the scope to intialize itself. This is
+followed by a call to run().</p>
+<p>When the scope should complete its activities, the runtime calls stop().</p>
+
+</div>
+
+
+<div id="classdocs" class="tabview">
+    <ul class="api-class-tabs">
+        <li class="api-class-tab index"><a href="#index">Index</a></li>
+
+            <li class="api-class-tab methods"><a href="#methods">Methods</a></li>
+            <li class="api-class-tab properties"><a href="#properties">Properties</a></li>
+    </ul>
+
+    <div>
+        <div id="index" class="api-class-tabpanel index">
+            <h2 class="off-left">Item Index</h2>
+
+                <div class="index-section methods">
+                    <h3>Methods</h3>
+
+                    <ul class="index-list methods">
+                            <li class="index-item method">
+                                <a href="#method_initialize">initialize</a>
+
+                            </li>
+                    </ul>
+                </div>
+
+                <div class="index-section properties">
+                    <h3>Properties</h3>
+
+                    <ul class="index-list properties">
+                            <li class="index-item property">
+                                <a href="#property_cache_directory">cache_directory</a>
+
+                            </li>
+                            <li class="index-item property">
+                                <a href="#property_registry">registry</a>
+
+                            </li>
+                            <li class="index-item property">
+                                <a href="#property_scope_directory">scope_directory</a>
+
+                            </li>
+                            <li class="index-item property">
+                                <a href="#property_settings">settings</a>
+
+                            </li>
+                            <li class="index-item property">
+                                <a href="#property_tmp_directory">tmp_directory</a>
+
+                            </li>
+                    </ul>
+                </div>
+
+
+        </div>
+
+            <div id="methods" class="api-class-tabpanel">
+                <h2 class="off-left">Methods</h2>
+
+<div id="method_initialize" class="method item">
+    <h3 class="name"><code>initialize</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>options</code>
+                </li>
+                <li class="arg">
+                        <code>runtime_config</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_index.js.html#l51"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;index.js:51</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>This member function is the entry point to setting up a scope's behavior
+and configuring it to the runtime scope.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">options</code>
+                        <span class="type">Object</span>
+
+
+                    <div class="param-description">
+                        <p>A dictionary of options for the scope runtime.
+The option keys are:
+- scope_id: the scope id</p>
+
+                    </div>
+
+                </li>
+                <li class="param">
+                        <code class="param-name">runtime_config</code>
+                        <span class="type">Object</span>
+
+
+                    <div class="param-description">
+                        <p>A dictionary of runtime configuration settings for the scope runtime.
+The configuration keys are:
+- run {Function()}: Callback called by the scopes run time after it has called start() to hand a thread of control to the scope
+- starting {Function(String: scope_id)}: Callback called by the scopes run time after the create function completes
+- stop {Function()}: Callback called by the scopes run time when the scope should shut down
+- search {Function(CannedQuery: canned_query, SearchMetaData: metadata)}: Callback called by the scopes run time when a scope needs to instantiate a query
+- perform_action {Function(Result: result, ActionMetaData: metadata, String: widget_id, String: ation_id)}: Callback invoked when a scope is requested to handle a preview action
+- preview {Function(Result: result, ActionMetaData: metadata)}: Callback invoked when a scope is requested to create a preview for a particular result</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+        <div class="example">
+            <h4>Example:</h4>
+
+            <div class="example-content">
+                <pre class="code prettyprint"><code>         var scopes = require('unity-js-scopes')
+         scopes.self.initialize(
+           {}, {
+             run: function() {}
+             start: function(scope_id) {
+               console.log('Starting scope id: '
+                 + scope_id
+                 + ', '
+                 + scopes.self.scope_config)
+             },
+             search: function(canned_query, metadata) {}
+           }
+         );</code></pre>
+
+            </div>
+        </div>
+</div>
+            </div>
+
+            <div id="properties" class="api-class-tabpanel">
+                <h2 class="off-left">Properties</h2>
+
+                    <div id="property_cache_directory" class="property item">
+                        <h3 class="name"><code>cache_directory</code></h3>
+                        <span class="type">Unknown</span>
+                    
+                    
+                    
+                    
+                    
+                        <div class="meta">
+                                    <p>
+                                    Defined in
+                            <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_index.js.html#l135"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;index.js:135</code></a>
+                            </p>
+                    
+                    
+                        </div>
+                    
+                        <div class="description">
+                            <p>Returns a directory that is (exclusively) writable for the scope</p>
+                    
+                        </div>
+                    
+                    
+                    
+                    </div>
+                    <div id="property_registry" class="property item">
+                        <h3 class="name"><code>registry</code></h3>
+                        <span class="type">Unknown</span>
+                    
+                    
+                    
+                    
+                    
+                        <div class="meta">
+                                    <p>
+                                    Defined in
+                            <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_index.js.html#l151"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;index.js:151</code></a>
+                            </p>
+                    
+                    
+                        </div>
+                    
+                        <div class="description">
+                            <p>Returns the scope registry</p>
+                    
+                        </div>
+                    
+                    
+                    
+                    </div>
+                    <div id="property_scope_directory" class="property item">
+                        <h3 class="name"><code>scope_directory</code></h3>
+                        <span class="type">Unknown</span>
+                    
+                    
+                    
+                    
+                    
+                        <div class="meta">
+                                    <p>
+                                    Defined in
+                            <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_index.js.html#l127"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;index.js:127</code></a>
+                            </p>
+                    
+                    
+                        </div>
+                    
+                        <div class="description">
+                            <p>Returns the directory that stores the scope's configuration files and shared library</p>
+                    
+                        </div>
+                    
+                    
+                    
+                    </div>
+                    <div id="property_settings" class="property item">
+                        <h3 class="name"><code>settings</code></h3>
+                        <span class="type">Unknown</span>
+                    
+                    
+                    
+                    
+                    
+                        <div class="meta">
+                                    <p>
+                                    Defined in
+                            <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_index.js.html#l159"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;index.js:159</code></a>
+                            </p>
+                    
+                    
+                        </div>
+                    
+                        <div class="description">
+                            <p>Returns a dictionary with the scope's current settings</p>
+                    
+                        </div>
+                    
+                    
+                    
+                    </div>
+                    <div id="property_tmp_directory" class="property item">
+                        <h3 class="name"><code>tmp_directory</code></h3>
+                        <span class="type">Unknown</span>
+                    
+                    
+                    
+                    
+                    
+                        <div class="meta">
+                                    <p>
+                                    Defined in
+                            <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_index.js.html#l143"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;index.js:143</code></a>
+                            </p>
+                    
+                    
+                        </div>
+                    
+                        <div class="description">
+                            <p>Returns a tmp directory that is (exclusively) writable for the scope</p>
+                    
+                        </div>
+                    
+                    
+                    
+                    </div>
+            </div>
+
+
+    </div>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/classes/SearchMetaData.html'
--- doc/docbuild/classes/SearchMetaData.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/classes/SearchMetaData.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,1130 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>SearchMetaData - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1>SearchMetaData Class</h1>
+<div class="box meta">
+
+
+        <div class="foundat">
+            Defined in: <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l1"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:1</code></a>
+        </div>
+
+            Module: <a href="../modules/ScopeJS.html">ScopeJS</a>
+
+</div>
+
+
+<div class="box intro">
+    <p>Metadata passed with search requests.
+Two forms of construction are allowed depending on the number
+and types of the parameters:</p>
+<ul>
+<li>with locale and form factor
+or</li>
+<li>with cardinality, locale, and form factor.</li>
+</ul>
+
+</div>
+
+
+<div id="classdocs" class="tabview">
+    <ul class="api-class-tabs">
+        <li class="api-class-tab index"><a href="#index">Index</a></li>
+
+            <li class="api-class-tab methods"><a href="#methods">Methods</a></li>
+    </ul>
+
+    <div>
+        <div id="index" class="api-class-tabpanel index">
+            <h2 class="off-left">Item Index</h2>
+
+                <div class="index-section methods">
+                    <h3>Methods</h3>
+
+                    <ul class="index-list methods">
+                            <li class="index-item method">
+                                <a href="#method_aggregated_keywords">aggregated_keywords</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_cardinality">cardinality</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_contains_hint">contains_hint</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_form_factor">form_factor</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_get">get</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_has_location">has_location</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_hints">hints</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_internet_connectivity">internet_connectivity</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_is_aggregated">is_aggregated</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_locale">locale</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_location">location</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_remove_location">remove_location</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set">set</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set_aggregated_keywords">set_aggregated_keywords</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set_cardinality">set_cardinality</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set_hint">set_hint</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set_internet_connectivity">set_internet_connectivity</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_set_location">set_location</a>
+
+                            </li>
+                    </ul>
+                </div>
+
+
+
+        </div>
+
+            <div id="methods" class="api-class-tabpanel">
+                <h2 class="off-left">Methods</h2>
+
+<div id="method_aggregated_keywords" class="method item">
+    <h3 class="name"><code>aggregated_keywords</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">Array of String</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l71"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:71</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the list of scope keywords used to initiate this search request.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">Array of String</span>:
+                    <p>The list of scope keywords used to initiate this search request.</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_cardinality" class="method item">
+    <h3 class="name"><code>cardinality</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">Int</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l29"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:29</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get cardinality.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">Int</span>:
+            </div>
+        </div>
+
+
+</div>
+<div id="method_contains_hint" class="method item">
+    <h3 class="name"><code>contains_hint</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>key</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+        <span class="returns-inline">
+            <span class="type">Boolean</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l100"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:100</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Check if this SearchMetadata has a hint.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">key</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                        <p>The hint name.</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">Boolean</span>:
+                    <p>True if the hint is set.</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_form_factor" class="method item">
+    <h3 class="name"><code>form_factor</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l124"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:124</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the form factor string.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>The form factor string</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_get" class="method item">
+    <h3 class="name"><code>get</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>key</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+        <span class="returns-inline">
+            <span class="type">String</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l116"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:116</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the value of an attribute</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">key</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">String</span>:
+                    <p>, {Number} or {Object}</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_has_location" class="method item">
+    <h3 class="name"><code>has_location</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">Boolean</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l50"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:50</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Does the SearchMetadata have a location.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">Boolean</span>:
+                    <p>True if there is a location property.</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_hints" class="method item">
+    <h3 class="name"><code>hints</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">Dictionary</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l93"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:93</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get all hints.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">Dictionary</span>:
+            </div>
+        </div>
+
+
+</div>
+<div id="method_internet_connectivity" class="method item">
+    <h3 class="name"><code>internet_connectivity</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">ConnectivityStatus</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l138"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:138</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get internet connectivity status.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">ConnectivityStatus</span>:
+                    <p>The internet connectivity status.</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_is_aggregated" class="method item">
+    <h3 class="name"><code>is_aggregated</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">Boolean</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l78"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:78</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Check if this search request originated from an aggregator scope.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">Boolean</span>:
+                    <p>True if this search request originated from an aggregator scope.</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_locale" class="method item">
+    <h3 class="name"><code>locale</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l131"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:131</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get the locale string.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>The locale string</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_location" class="method item">
+    <h3 class="name"><code>location</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type">Location</span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l43"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:43</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get location.</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                        <span class="type">Location</span>:
+                    <p>data representing the current location, including attributes such as city and country.</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_remove_location" class="method item">
+    <h3 class="name"><code>remove_location</code></h3>
+
+        <span class="paren">()</span>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l57"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:57</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Remove location data entirely.
+This method does nothing if no location data is present.</p>
+
+    </div>
+
+
+
+
+</div>
+<div id="method_set" class="method item">
+    <h3 class="name"><code>set</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>key</code>
+                </li>
+                <li class="arg">
+                        <code>value</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l108"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:108</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Set the value of an attribute</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">key</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+                <li class="param">
+                        <code class="param-name">value</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                        <p>, {Number} or {Object}</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_set_aggregated_keywords" class="method item">
+    <h3 class="name"><code>set_aggregated_keywords</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>aggregated_keywords</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l64"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:64</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Set the list of scope keywords used to initiate this search request.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">aggregated_keywords</code>
+                        <span class="type">Array of String</span>
+
+
+                    <div class="param-description">
+                        <p>The list of scope keywords used to initiate this search request.</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_set_cardinality" class="method item">
+    <h3 class="name"><code>set_cardinality</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>cardinality</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l22"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:22</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Set cardinality.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">cardinality</code>
+                        <span class="type">Int</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_set_hint" class="method item">
+    <h3 class="name"><code>set_hint</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>key</code>
+                </li>
+                <li class="arg">
+                        <code>value</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l85"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:85</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Sets a hint.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">key</code>
+                        <span class="type">String</span>
+
+
+                    <div class="param-description">
+                        <p>The name of the hint.</p>
+
+                    </div>
+
+                </li>
+                <li class="param">
+                        <code class="param-name">value</code>
+                        <span class="type">Object</span>
+
+
+                    <div class="param-description">
+                        <p>Hint value</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_set_internet_connectivity" class="method item">
+    <h3 class="name"><code>set_internet_connectivity</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>The</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l145"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:145</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Set internet connectivity status.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">The</code>
+                        <span class="type">ConnectivityStatus</span>
+
+
+                    <div class="param-description">
+                        <p>internet connectivity status.</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_set_location" class="method item">
+    <h3 class="name"><code>set_location</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>location</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html#l36"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-metadata.js:36</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Set location.</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">location</code>
+                        <span class="type">Location</span>
+
+
+                    <div class="param-description">
+                        <p>data</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+            </div>
+
+
+
+    </div>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/classes/SearchQuery.html'
--- doc/docbuild/classes/SearchQuery.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/classes/SearchQuery.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,342 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>SearchQuery - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1>SearchQuery Class</h1>
+<div class="box meta">
+
+
+        <div class="foundat">
+            Defined in: <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-query.js.html#l1"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-query.js:1</code></a>
+        </div>
+
+            Module: <a href="../modules/ScopeJS.html">ScopeJS</a>
+
+</div>
+
+
+<div class="box intro">
+    <p>Represents a particular query</p>
+<p>A scope must return an instance of this class from its implementation of Scope.search().</p>
+
+</div>
+
+
+<div id="classdocs" class="tabview">
+    <ul class="api-class-tabs">
+        <li class="api-class-tab index"><a href="#index">Index</a></li>
+
+            <li class="api-class-tab methods"><a href="#methods">Methods</a></li>
+    </ul>
+
+    <div>
+        <div id="index" class="api-class-tabpanel index">
+            <h2 class="off-left">Item Index</h2>
+
+                <div class="index-section methods">
+                    <h3>Methods</h3>
+
+                    <ul class="index-list methods">
+                            <li class="index-item method">
+                                <a href="#method_query">query</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_search_metadata">search_metadata</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_settings">settings</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_valid">valid</a>
+
+                            </li>
+                    </ul>
+                </div>
+
+
+
+        </div>
+
+            <div id="methods" class="api-class-tabpanel">
+                <h2 class="off-left">Methods</h2>
+
+<div id="method_query" class="method item">
+    <h3 class="name"><code>query</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-query.js.html#l50"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-query.js:50</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get a canned query for this search request</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>CannedQuery</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_search_metadata" class="method item">
+    <h3 class="name"><code>search_metadata</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-query.js.html#l57"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-query.js:57</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Get metadata for this search request</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>SearchMetadata</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_settings" class="method item">
+    <h3 class="name"><code>settings</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-query.js.html#l71"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-query.js:71</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Returns a dictionary with the scope's current settings</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>Dictionary</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_valid" class="method item">
+    <h3 class="name"><code>valid</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-query.js.html#l64"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-query.js:64</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Check whether this query is still valid</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>Boolean False if the query is finished or was cancelled ealier.</p>
+
+            </div>
+        </div>
+
+
+</div>
+            </div>
+
+
+
+    </div>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/classes/SearchReply.html'
--- doc/docbuild/classes/SearchReply.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/classes/SearchReply.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,453 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>SearchReply - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1>SearchReply Class</h1>
+<div class="box meta">
+
+
+        <div class="foundat">
+            Defined in: <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-reply.js.html#l1"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-reply.js:1</code></a>
+        </div>
+
+            Module: <a href="../modules/ScopeJS.html">ScopeJS</a>
+
+</div>
+
+
+<div class="box intro">
+    <p>Allows the results of a preview to be sent to the preview requester.</p>
+
+</div>
+
+
+<div id="classdocs" class="tabview">
+    <ul class="api-class-tabs">
+        <li class="api-class-tab index"><a href="#index">Index</a></li>
+
+            <li class="api-class-tab methods"><a href="#methods">Methods</a></li>
+    </ul>
+
+    <div>
+        <div id="index" class="api-class-tabpanel index">
+            <h2 class="off-left">Item Index</h2>
+
+                <div class="index-section methods">
+                    <h3>Methods</h3>
+
+                    <ul class="index-list methods">
+                            <li class="index-item method">
+                                <a href="#method_error">error</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_finished">finished</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_id">id</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_push">push</a>
+
+                            </li>
+                            <li class="index-item method">
+                                <a href="#method_register_category">register_category</a>
+
+                            </li>
+                    </ul>
+                </div>
+
+
+
+        </div>
+
+            <div id="methods" class="api-class-tabpanel">
+                <h2 class="off-left">Methods</h2>
+
+<div id="method_error" class="method item">
+    <h3 class="name"><code>error</code></h3>
+
+        <span class="paren">()</span>
+
+        <span class="returns-inline">
+            <span class="type"></span>
+        </span>
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-reply.js.html#l35"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-reply.js:35</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Informs the source of a query that the query was terminated due to an error</p>
+
+    </div>
+
+
+        <div class="returns">
+            <h4>Returns:</h4>
+
+            <div class="returns-description">
+                    <p>error String error</p>
+
+            </div>
+        </div>
+
+
+</div>
+<div id="method_finished" class="method item">
+    <h3 class="name"><code>finished</code></h3>
+
+        <span class="paren">()</span>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-reply.js.html#l42"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-reply.js:42</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Informs the source of a query that the query results are complete</p>
+
+    </div>
+
+
+
+
+</div>
+<div id="method_id" class="method item">
+    <h3 class="name"><code>id</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>id</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-reply.js.html#l21"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-reply.js:21</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Returns a previously registered category</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">id</code>
+                        <span class="type">Object</span>
+
+
+                    <div class="param-description">
+                         
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_push" class="method item">
+    <h3 class="name"><code>push</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>result</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-reply.js.html#l28"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-reply.js:28</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Sends a single result to the source of a query</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">result</code>
+                        <span class="type">Object</span>
+
+
+                    <div class="param-description">
+                        <p>CategorisedResult</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+<div id="method_register_category" class="method item">
+    <h3 class="name"><code>register_category</code></h3>
+
+        <div class="args">
+            <span class="paren">(</span><ul class="args-list inline commas">
+                <li class="arg">
+                        <code>id</code>
+                </li>
+                <li class="arg">
+                        <code>title</code>
+                </li>
+                <li class="arg">
+                        <code>icon</code>
+                </li>
+                <li class="arg">
+                        <code>category_renderer</code>
+                </li>
+            </ul><span class="paren">)</span>
+        </div>
+
+
+
+
+
+
+
+
+    <div class="meta">
+                <p>
+                Defined in
+        <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-reply.js.html#l11"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;src&#x2F;search-reply.js:11</code></a>
+        </p>
+
+
+
+    </div>
+
+    <div class="description">
+        <p>Register new category and send it to the source of the query</p>
+
+    </div>
+
+        <div class="params">
+            <h4>Parameters:</h4>
+
+            <ul class="params-list">
+                <li class="param">
+                        <code class="param-name">id</code>
+                        <span class="type">Object</span>
+
+
+                    <div class="param-description">
+                        <p>String id</p>
+
+                    </div>
+
+                </li>
+                <li class="param">
+                        <code class="param-name">title</code>
+                        <span class="type">Object</span>
+
+
+                    <div class="param-description">
+                        <p>String title</p>
+
+                    </div>
+
+                </li>
+                <li class="param">
+                        <code class="param-name">icon</code>
+                        <span class="type">Object</span>
+
+
+                    <div class="param-description">
+                        <p>String icon</p>
+
+                    </div>
+
+                </li>
+                <li class="param">
+                        <code class="param-name">category_renderer</code>
+                        <span class="type">Object</span>
+
+
+                    <div class="param-description">
+                        <p>CategoryRenderer</p>
+
+                    </div>
+
+                </li>
+            </ul>
+        </div>
+
+
+
+</div>
+            </div>
+
+
+
+    </div>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/classes/index.html'
--- doc/docbuild/classes/index.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/classes/index.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,10 @@
+<!doctype html>
+<html>
+    <head>
+        <title>Redirector</title>
+        <meta http-equiv="refresh" content="0;url=../">
+    </head>
+    <body>
+        <a href="../">Click here to redirect</a>
+    </body>
+</html>

=== added file 'doc/docbuild/data.json'
--- doc/docbuild/data.json	1970-01-01 00:00:00 +0000
+++ doc/docbuild/data.json	2015-10-23 18:57:47 +0000
@@ -0,0 +1,1875 @@
+{
+    "project": {
+        "name": "Javascript Scopes API",
+        "description": "Javascript API for Ubuntu Scopes development",
+        "version": "0.1"
+    },
+    "files": {
+        "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/action-metadata.js": {
+            "name": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/action-metadata.js",
+            "modules": {
+                "ScopeJS": 1
+            },
+            "classes": {
+                "ActionMetadata": 1
+            },
+            "fors": {},
+            "namespaces": {}
+        },
+        "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/activation-query.js": {
+            "name": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/activation-query.js",
+            "modules": {},
+            "classes": {
+                "ActivationQuery": 1
+            },
+            "fors": {},
+            "namespaces": {}
+        },
+        "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js": {
+            "name": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "modules": {},
+            "classes": {
+                "CategorisedResult": 1
+            },
+            "fors": {},
+            "namespaces": {}
+        },
+        "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/category-renderer.js": {
+            "name": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/category-renderer.js",
+            "modules": {},
+            "classes": {
+                "CategoryRenderer": 1
+            },
+            "fors": {},
+            "namespaces": {}
+        },
+        "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/category.js": {
+            "name": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/category.js",
+            "modules": {},
+            "classes": {
+                "Category": 1
+            },
+            "fors": {},
+            "namespaces": {}
+        },
+        "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/column-layout.js": {
+            "name": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/column-layout.js",
+            "modules": {},
+            "classes": {
+                "ColumnLayout": 1
+            },
+            "fors": {},
+            "namespaces": {}
+        },
+        "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-query.js": {
+            "name": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-query.js",
+            "modules": {},
+            "classes": {
+                "PreviewQuery": 1
+            },
+            "fors": {},
+            "namespaces": {}
+        },
+        "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-reply.js": {
+            "name": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-reply.js",
+            "modules": {},
+            "classes": {
+                "PreviewReply": 1
+            },
+            "fors": {},
+            "namespaces": {}
+        },
+        "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-widget.js": {
+            "name": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-widget.js",
+            "modules": {},
+            "classes": {
+                "PreviewWidget": 1
+            },
+            "fors": {},
+            "namespaces": {}
+        },
+        "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js": {
+            "name": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js",
+            "modules": {},
+            "classes": {
+                "Result": 1
+            },
+            "fors": {},
+            "namespaces": {}
+        },
+        "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js": {
+            "name": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "modules": {},
+            "classes": {
+                "SearchMetaData": 1
+            },
+            "fors": {},
+            "namespaces": {}
+        },
+        "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-query.js": {
+            "name": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-query.js",
+            "modules": {},
+            "classes": {
+                "SearchQuery": 1
+            },
+            "fors": {},
+            "namespaces": {}
+        },
+        "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-reply.js": {
+            "name": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-reply.js",
+            "modules": {},
+            "classes": {
+                "SearchReply": 1
+            },
+            "fors": {},
+            "namespaces": {}
+        },
+        "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/index.js": {
+            "name": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/index.js",
+            "modules": {},
+            "classes": {
+                "Scope": 1
+            },
+            "fors": {},
+            "namespaces": {}
+        }
+    },
+    "modules": {
+        "ScopeJS": {
+            "name": "ScopeJS",
+            "submodules": {},
+            "classes": {
+                "ActionMetadata": 1,
+                "ActivationQuery": 1,
+                "CategorisedResult": 1,
+                "CategoryRenderer": 1,
+                "Category": 1,
+                "ColumnLayout": 1,
+                "PreviewQuery": 1,
+                "PreviewReply": 1,
+                "PreviewWidget": 1,
+                "Result": 1,
+                "SearchMetaData": 1,
+                "SearchQuery": 1,
+                "SearchReply": 1,
+                "Scope": 1
+            },
+            "fors": {},
+            "namespaces": {},
+            "tag": "module",
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/index.js",
+            "line": 25,
+            "description": "Metadata passed to scopes for preview and activation",
+            "is_constructor": 1,
+            "example": [
+                "\n\n     var scopes = require('unity-js-scopes')\n     function on_preview(result, action_metadata) {\n       return new scopes.lib.preview_query(\n         result,\n         action_metadata,\n         // run\n         function(preview_reply) {},\n         // cancelled\n         function() {});\n     }\n     scopes.self.initialize(\n      {}\n      ,\n      {\n        run: function() { },\n        start: function(scope_id) { },\n        preview: on_preview,\n      }\n    );"
+            ],
+            "params": [
+                {
+                    "name": "canned_query",
+                    "description": "CannedQuery"
+                },
+                {
+                    "name": "action_metadata",
+                    "description": "ActionMetadata"
+                },
+                {
+                    "name": "run",
+                    "description": "Function() Function callback that is to be called by the scope runtime to start the preview.\n              Your implementation of run() can use the provided PreviewReply object to\n              push results for the preview and call finished() on the reply object when\n              you are done with pushing results. You can push results from within run(),\n              in which case the preview implicitly completes when run() returns.\n              Alternatively, run() can store the reply object and return immediately.",
+                    "type": "PreviewReply"
+                },
+                {
+                    "name": "cancelled",
+                    "description": "Function() Called by the scopes runtime when the query originator cancels a query.\n              Your implementation of this method should ensure that the scope stops\n              processing the current query as soon as possible. Any calls to a `push()` method\n              once a query is cancelled are ignored, so continuing to push after cancellation"
+                }
+            ]
+        }
+    },
+    "classes": {
+        "ActionMetadata": {
+            "name": "ActionMetadata",
+            "shortname": "ActionMetadata",
+            "classitems": [],
+            "plugins": [],
+            "extensions": [],
+            "plugin_for": [],
+            "extension_for": [],
+            "module": "ScopeJS",
+            "namespace": "",
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/action-metadata.js",
+            "line": 1,
+            "description": "Metadata passed to scopes for preview and activation"
+        },
+        "ActivationQuery": {
+            "name": "ActivationQuery",
+            "shortname": "ActivationQuery",
+            "classitems": [],
+            "plugins": [],
+            "extensions": [],
+            "plugin_for": [],
+            "extension_for": [],
+            "module": "ScopeJS",
+            "namespace": "",
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/activation-query.js",
+            "line": 1,
+            "description": "Represents an activation request that is executed inside a scope"
+        },
+        "CategorisedResult": {
+            "name": "CategorisedResult",
+            "shortname": "CategorisedResult",
+            "classitems": [],
+            "plugins": [],
+            "extensions": [],
+            "plugin_for": [],
+            "extension_for": [],
+            "module": "ScopeJS",
+            "namespace": "",
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 1,
+            "description": "A result, including the category it belongs to."
+        },
+        "CategoryRenderer": {
+            "name": "CategoryRenderer",
+            "shortname": "CategoryRenderer",
+            "classitems": [],
+            "plugins": [],
+            "extensions": [],
+            "plugin_for": [],
+            "extension_for": [],
+            "module": "ScopeJS",
+            "namespace": "",
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/category-renderer.js",
+            "line": 1,
+            "description": "A category renderer template in JSON format."
+        },
+        "Category": {
+            "name": "Category",
+            "shortname": "Category",
+            "classitems": [],
+            "plugins": [],
+            "extensions": [],
+            "plugin_for": [],
+            "extension_for": [],
+            "module": "ScopeJS",
+            "namespace": "",
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/category.js",
+            "line": 1,
+            "description": "A set of related results returned by a scope\n  and displayed within a single pane in the Unity dash.\nTo create a Category, use SearchReply.register_category."
+        },
+        "ColumnLayout": {
+            "name": "ColumnLayout",
+            "shortname": "ColumnLayout",
+            "classitems": [],
+            "plugins": [],
+            "extensions": [],
+            "plugin_for": [],
+            "extension_for": [],
+            "module": "ScopeJS",
+            "namespace": "",
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/column-layout.js",
+            "line": 1,
+            "description": "Describes a column layout for preview widgets."
+        },
+        "PreviewQuery": {
+            "name": "PreviewQuery",
+            "shortname": "PreviewQuery",
+            "classitems": [],
+            "plugins": [],
+            "extensions": [],
+            "plugin_for": [],
+            "extension_for": [],
+            "module": "ScopeJS",
+            "namespace": "",
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-query.js",
+            "line": 1,
+            "description": "Represents a particular preview"
+        },
+        "PreviewReply": {
+            "name": "PreviewReply",
+            "shortname": "PreviewReply",
+            "classitems": [],
+            "plugins": [],
+            "extensions": [],
+            "plugin_for": [],
+            "extension_for": [],
+            "module": "ScopeJS",
+            "namespace": "",
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-reply.js",
+            "line": 1,
+            "description": "Allows the results of a preview to be sent to the preview requester."
+        },
+        "PreviewWidget": {
+            "name": "PreviewWidget",
+            "shortname": "PreviewWidget",
+            "classitems": [],
+            "plugins": [],
+            "extensions": [],
+            "plugin_for": [],
+            "extension_for": [],
+            "module": "ScopeJS",
+            "namespace": "",
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-widget.js",
+            "line": 1,
+            "description": "A widget for a preview."
+        },
+        "Result": {
+            "name": "Result",
+            "shortname": "Result",
+            "classitems": [],
+            "plugins": [],
+            "extensions": [],
+            "plugin_for": [],
+            "extension_for": [],
+            "module": "ScopeJS",
+            "namespace": "",
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js",
+            "line": 1,
+            "description": "The attributes of a result returned by a Scope\nThe Result API provides convenience methods for some typical attributes (title, art), but scopes are free to add and use any custom attributes with set/get methods. The only required attribute is 'uri' and it must not be empty before calling Reply.push()."
+        },
+        "SearchMetaData": {
+            "name": "SearchMetaData",
+            "shortname": "SearchMetaData",
+            "classitems": [],
+            "plugins": [],
+            "extensions": [],
+            "plugin_for": [],
+            "extension_for": [],
+            "module": "ScopeJS",
+            "namespace": "",
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 1,
+            "description": "Metadata passed with search requests.\nTwo forms of construction are allowed depending on the number\n and types of the parameters:\n  - with locale and form factor\n  or\n  - with cardinality, locale, and form factor."
+        },
+        "SearchQuery": {
+            "name": "SearchQuery",
+            "shortname": "SearchQuery",
+            "classitems": [],
+            "plugins": [],
+            "extensions": [],
+            "plugin_for": [],
+            "extension_for": [],
+            "module": "ScopeJS",
+            "namespace": "",
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-query.js",
+            "line": 1,
+            "description": "Represents a particular query\n\n A scope must return an instance of this class from its implementation of Scope.search()."
+        },
+        "SearchReply": {
+            "name": "SearchReply",
+            "shortname": "SearchReply",
+            "classitems": [],
+            "plugins": [],
+            "extensions": [],
+            "plugin_for": [],
+            "extension_for": [],
+            "module": "ScopeJS",
+            "namespace": "",
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-reply.js",
+            "line": 1,
+            "description": "Allows the results of a preview to be sent to the preview requester."
+        },
+        "Scope": {
+            "name": "Scope",
+            "shortname": "Scope",
+            "classitems": [],
+            "plugins": [],
+            "extensions": [],
+            "plugin_for": [],
+            "extension_for": [],
+            "module": "ScopeJS",
+            "namespace": "",
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/index.js",
+            "line": 25,
+            "description": "Scope corresponds to the bridge between the ubuntu scope runtime\nand the actual scope.\n\nA Scope object is not directly constructible but it is automatically created\nwhen the scope module is imported and is accessible through the 'self' exported\nmember.\n\nAfter the scopes runtime has obtained initialization runtime configurations from\nthe scope, it calls start(), which allows the scope to intialize itself. This is\nfollowed by a call to run().\n\nWhen the scope should complete its activities, the runtime calls stop().",
+            "example": [
+                "\n     var scopes = require('unity-js-scopes')\n     scopes.self"
+            ]
+        }
+    },
+    "classitems": [
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/action-metadata.js",
+            "line": 12,
+            "description": "Check if this ActionMetadata has a hint",
+            "itemtype": "method",
+            "name": "contains_hint",
+            "params": [
+                {
+                    "name": "hint",
+                    "description": "",
+                    "type": "String"
+                }
+            ],
+            "return": {
+                "description": "Boolean"
+            },
+            "class": "ActionMetadata",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/action-metadata.js",
+            "line": 20,
+            "description": "Set the value of an attribute",
+            "itemtype": "method",
+            "name": "set",
+            "params": [
+                {
+                    "name": "key",
+                    "description": "",
+                    "type": "String"
+                },
+                {
+                    "name": "value",
+                    "description": ", {Number} or {Object}",
+                    "type": "String"
+                }
+            ],
+            "class": "ActionMetadata",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/action-metadata.js",
+            "line": 28,
+            "description": "Get the value of an attribute",
+            "itemtype": "method",
+            "name": "get",
+            "params": [
+                {
+                    "name": "key",
+                    "description": "",
+                    "type": "String"
+                }
+            ],
+            "return": {
+                "description": ", {Number} or {Object}",
+                "type": "String"
+            },
+            "class": "ActionMetadata",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/activation-query.js",
+            "line": 11,
+            "description": "Return response to the activation request",
+            "itemtype": "method",
+            "name": "activate",
+            "return": {
+                "description": "ActivationResponse"
+            },
+            "class": "ActivationQuery",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/activation-query.js",
+            "line": 18,
+            "description": "Get the result for this activation request handler",
+            "itemtype": "method",
+            "name": "result",
+            "return": {
+                "description": "Result"
+            },
+            "class": "ActivationQuery",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/activation-query.js",
+            "line": 25,
+            "description": "Get the metadata for this activation request handler",
+            "itemtype": "method",
+            "name": "action_metadata",
+            "return": {
+                "description": "ActionMetadata"
+            },
+            "class": "ActivationQuery",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/activation-query.js",
+            "line": 32,
+            "description": "Get the widget identifier for this activation request handler",
+            "itemtype": "method",
+            "name": "widget_id",
+            "return": {
+                "description": "String"
+            },
+            "class": "ActivationQuery",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/activation-query.js",
+            "line": 39,
+            "description": "Get the action identifier for this activation request handler",
+            "itemtype": "method",
+            "name": "action_id",
+            "return": {
+                "description": "String"
+            },
+            "class": "ActivationQuery",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/activation-query.js",
+            "line": 46,
+            "description": "Check whether this query is still valid",
+            "itemtype": "method",
+            "name": "valid",
+            "return": {
+                "description": "Boolean"
+            },
+            "class": "ActivationQuery",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/activation-query.js",
+            "line": 53,
+            "description": "Returns a dictionary with the scope's current settings",
+            "itemtype": "method",
+            "name": "settings",
+            "return": {
+                "description": "Dictionary"
+            },
+            "class": "ActivationQuery",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 13,
+            "description": "Updates the category of this result.",
+            "itemtype": "method",
+            "name": "set_category",
+            "params": [
+                {
+                    "name": "category",
+                    "description": "The category for the result."
+                }
+            ],
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 20,
+            "description": "Get the category instance this result belongs to.",
+            "itemtype": "method",
+            "name": "category",
+            "return": {
+                "description": "The category instance.",
+                "type": "Category"
+            },
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 27,
+            "description": "This method is meant to be used by aggregator scopes which want to modify\nresults they receive, but want to keep a copy of the original result so\nthat they can be correctly handled by the original scopes\nwho created them when it comes to activation or previews.\nScopes middleware will automatically pass the correct inner stored result\nto the activation or preview request handler",
+            "itemtype": "method",
+            "name": "store",
+            "params": [
+                {
+                    "name": "The",
+                    "description": "original result to store within this result.",
+                    "type": "Result"
+                },
+                {
+                    "name": "intercept_activation",
+                    "description": "True if this scope should receive activation and preview requests.",
+                    "type": "Boolean"
+                }
+            ],
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 41,
+            "description": "Check if this Result instance has a stored result.",
+            "itemtype": "method",
+            "name": "has_stored_result",
+            "return": {
+                "description": "True if there is a stored result",
+                "type": "Boolean"
+            },
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 48,
+            "description": "Get a stored result.",
+            "itemtype": "method",
+            "name": "retrieve",
+            "return": {
+                "description": "stored result",
+                "type": "Result"
+            },
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 55,
+            "description": "Set the \"uri\" attribute of this result.",
+            "itemtype": "method",
+            "name": "set_uri",
+            "params": [
+                {
+                    "name": "uri",
+                    "description": "",
+                    "type": "String"
+                }
+            ],
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 62,
+            "description": "Set the \"title\" attribute of this result.",
+            "itemtype": "method",
+            "name": "set_title",
+            "params": [
+                {
+                    "name": "title",
+                    "description": "",
+                    "type": "String"
+                }
+            ],
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 69,
+            "description": "Set the \"art\" attribute of this result.",
+            "itemtype": "method",
+            "name": "set_art",
+            "params": [
+                {
+                    "name": "art",
+                    "description": "",
+                    "type": "String"
+                }
+            ],
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 76,
+            "description": "Set the \"dnd_uri\" attribute of this result.",
+            "itemtype": "method",
+            "name": "set_dnd_uri",
+            "params": [
+                {
+                    "name": "dnd_uri",
+                    "description": "",
+                    "type": "String"
+                }
+            ],
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 83,
+            "description": "Indicates to the receiver that this scope should intercept\nactivation requests for this result.\nBy default, a scope receives preview requests for the results it\ncreates, but does not receive activation requests (they are handled\ndirectly by the shell). Intercepting activation implies intercepting\npreview requests as well; this is important for scopes that forward\nresults from other scopes and call set_intercept_activation() on these scopes.\nA scope that sets intercept activation flag for a result should re-implement\nScope.activate() and provide an implementation of ActivationQuery that\nhandles the actual activation. If not called, the result will be activated\ndirectly by the Unity shell whithout involving the scope, assuming an appropriate\nURI schema handler is present on the system.",
+            "itemtype": "method",
+            "name": "set_intercept_activation",
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 101,
+            "description": "Check if this result should be activated directly by the shell\nbecause the scope doesn't handle activation of this result.",
+            "itemtype": "method",
+            "name": "direct_activation",
+            "return": {
+                "description": "True if this result needs to be activated directly.",
+                "type": "Boolean"
+            },
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 109,
+            "description": "Get the \"uri\" property of this Result.\nThis method returns an empty string if this attribute is not of type String.",
+            "itemtype": "method",
+            "name": "uri",
+            "return": {
+                "description": "The value of \"uri\" or the empty string.",
+                "type": "String"
+            },
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 117,
+            "description": "Get the \"title\" property of this Result.\nThis method returns an empty string if this attribute is not of type String.",
+            "itemtype": "method",
+            "name": "title",
+            "return": {
+                "description": "The value of \"title\" or the empty string.",
+                "type": "String"
+            },
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 125,
+            "description": "Get the \"art\" property of this Result.\nThis method returns an empty string if this attribute is not of type String.",
+            "itemtype": "method",
+            "name": "art",
+            "return": {
+                "description": "The value of \"art\" or the empty string.",
+                "type": "String"
+            },
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 133,
+            "description": "Get the \"dnd_uri\" property of this Result.\nThis method returns an empty string if this attribute is not of type String.",
+            "itemtype": "method",
+            "name": "dnd_uri",
+            "return": {
+                "description": "The value of \"dnd_uri\" or the empty string.",
+                "type": "String"
+            },
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 141,
+            "description": "Check if this Result has an attribute.",
+            "itemtype": "method",
+            "name": "contains",
+            "params": [
+                {
+                    "name": "key",
+                    "description": "The attribute name."
+                }
+            ],
+            "return": {
+                "description": "True if the attribute is set.",
+                "type": "Boolean"
+            },
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 149,
+            "description": "Check if this result is an online account login result.",
+            "itemtype": "method",
+            "name": "is_account_login_result",
+            "return": {
+                "description": "True if this result is an online account login result.",
+                "type": "Boolean"
+            },
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 156,
+            "description": "Gets the value of a custom metadata attribute.",
+            "itemtype": "method",
+            "name": "get",
+            "params": [
+                {
+                    "name": "key",
+                    "description": "The name of the attribute.",
+                    "type": "String"
+                }
+            ],
+            "return": {
+                "description": "Attribute value or null"
+            },
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js",
+            "line": 164,
+            "description": "Sets the value of a custom metadata attribute.",
+            "itemtype": "method",
+            "name": "set",
+            "params": [
+                {
+                    "name": "key",
+                    "description": "The name of the attribute.",
+                    "type": "String"
+                },
+                {
+                    "name": "value",
+                    "description": "The value of the attribute."
+                }
+            ],
+            "class": "CategorisedResult",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/category-renderer.js",
+            "line": 13,
+            "description": "Returns complete renderer template definition in JSON format.",
+            "itemtype": "method",
+            "name": "data",
+            "return": {
+                "description": "String The renderer template (JSON)"
+            },
+            "class": "CategoryRenderer",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/category.js",
+            "line": 14,
+            "description": "Get identifier of this Category",
+            "itemtype": "method",
+            "name": "id",
+            "return": {
+                "description": "String The category identifier."
+            },
+            "class": "Category",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/category.js",
+            "line": 21,
+            "description": "Get title of this Category",
+            "itemtype": "method",
+            "name": "title",
+            "return": {
+                "description": "String The category title."
+            },
+            "class": "Category",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/category.js",
+            "line": 28,
+            "description": "Get icon of this Category",
+            "itemtype": "method",
+            "name": "icon",
+            "return": {
+                "description": "String The category icon."
+            },
+            "class": "Category",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/category.js",
+            "line": 35,
+            "description": "Query to perform when this category is expanded",
+            "itemtype": "method",
+            "name": "query",
+            "return": {
+                "description": "CannedQuery The expansion query or null."
+            },
+            "class": "Category",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/column-layout.js",
+            "line": 13,
+            "description": "Adds a new column and assigns widgets to it.",
+            "itemtype": "method",
+            "name": "add_column",
+            "params": [
+                {
+                    "name": "widget_ids",
+                    "description": "ColumnLayout expects exactly the number of columns passed to the constructor to be created with the add_column method."
+                }
+            ],
+            "class": "ColumnLayout",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/column-layout.js",
+            "line": 20,
+            "description": "Get the current number of columns in this layout.",
+            "itemtype": "method",
+            "name": "size",
+            "return": {
+                "description": "The number of columns added with add_column()"
+            },
+            "class": "ColumnLayout",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/column-layout.js",
+            "line": 27,
+            "description": "Get the number of columns expected by this layout as specified in the constructor.",
+            "itemtype": "method",
+            "name": "number_of_columns",
+            "return": {
+                "description": "The number of columns expected by this layout."
+            },
+            "class": "ColumnLayout",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/column-layout.js",
+            "line": 34,
+            "description": "Retrieve the list of widgets for given column.",
+            "itemtype": "method",
+            "name": "column",
+            "params": [
+                {
+                    "name": "index",
+                    "description": "The index of a column."
+                }
+            ],
+            "return": {
+                "description": "The widget identifiers for the given column index."
+            },
+            "class": "ColumnLayout",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-query.js",
+            "line": 47,
+            "description": "Get result for this preview request",
+            "itemtype": "method",
+            "name": "result",
+            "return": {
+                "description": "Result"
+            },
+            "class": "PreviewQuery",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-query.js",
+            "line": 54,
+            "description": "Get metadata for this preview request",
+            "itemtype": "method",
+            "name": "action_metadata",
+            "return": {
+                "description": "ActionMetadata"
+            },
+            "class": "PreviewQuery",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-query.js",
+            "line": 61,
+            "description": "Check whether this query is still valid",
+            "itemtype": "method",
+            "name": "valid",
+            "return": {
+                "description": "Boolean"
+            },
+            "class": "PreviewQuery",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-query.js",
+            "line": 68,
+            "description": "Returns a dictionary with the scope's current settings",
+            "itemtype": "method",
+            "name": "settings",
+            "return": {
+                "description": "Dictionary"
+            },
+            "class": "PreviewQuery",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-reply.js",
+            "line": 12,
+            "description": "Registers a list of column layouts for the current preview",
+            "itemtype": "method",
+            "name": "register_layout",
+            "params": [
+                {
+                    "name": "layout",
+                    "description": "",
+                    "type": "Array of Column layout"
+                }
+            ],
+            "class": "PreviewReply",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-reply.js",
+            "line": 19,
+            "description": "Sends widget definitions to the sender of the preview query",
+            "itemtype": "method",
+            "name": "push",
+            "params": [
+                {
+                    "name": "widget_list",
+                    "description": "",
+                    "type": "Array of PreviewWidget"
+                }
+            ],
+            "class": "PreviewReply",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-reply.js",
+            "line": 26,
+            "description": "Informs the source of a query that the query results are complete",
+            "itemtype": "method",
+            "name": "finished",
+            "return": {
+                "description": "Boolean"
+            },
+            "class": "PreviewReply",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-reply.js",
+            "line": 33,
+            "description": "Informs the source of a query that the query was terminated due to an error",
+            "itemtype": "method",
+            "name": "error",
+            "return": {
+                "description": "error String error"
+            },
+            "class": "PreviewReply",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-widget.js",
+            "line": 12,
+            "description": "Adds an attribute definition and its value",
+            "itemtype": "method",
+            "name": "add_attribute_value",
+            "params": [
+                {
+                    "name": "key",
+                    "description": "Attribute definition",
+                    "type": "String"
+                },
+                {
+                    "name": "value",
+                    "description": ", {Number}, {Object}. The value can be a string, number, object",
+                    "type": "String"
+                }
+            ],
+            "class": "PreviewWidget",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-widget.js",
+            "line": 20,
+            "description": "Adds an attribute definition using a component mapping",
+            "itemtype": "method",
+            "name": "add_attribute_mapping",
+            "params": [
+                {
+                    "name": "key",
+                    "description": "Attribute definition",
+                    "type": "String"
+                },
+                {
+                    "name": "value",
+                    "description": "Value",
+                    "type": "String"
+                }
+            ],
+            "class": "PreviewWidget",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-widget.js",
+            "line": 28,
+            "description": "Adds a widget into expandable widget",
+            "itemtype": "method",
+            "name": "add_widget",
+            "params": [
+                {
+                    "name": "widget",
+                    "description": "The widget that needs to be added",
+                    "type": "PreviewWidget"
+                }
+            ],
+            "class": "PreviewWidget",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-widget.js",
+            "line": 35,
+            "description": "Get the identifier of this widget",
+            "itemtype": "method",
+            "name": "id",
+            "return": {
+                "description": "Id",
+                "type": "String"
+            },
+            "class": "PreviewWidget",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-widget.js",
+            "line": 42,
+            "description": "Get type name of this widget",
+            "itemtype": "method",
+            "name": "widget_type",
+            "return": {
+                "description": "Widget type",
+                "type": "String"
+            },
+            "class": "PreviewWidget",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-widget.js",
+            "line": 49,
+            "description": "Get the components of this widget",
+            "itemtype": "method",
+            "name": "attribute_mappings",
+            "return": {
+                "description": "Dictionary of widget components"
+            },
+            "class": "PreviewWidget",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-widget.js",
+            "line": 56,
+            "description": "Get the attributes of this widget",
+            "itemtype": "method",
+            "name": "attribute_values",
+            "return": {
+                "description": "Object corresponding to attributes of this widget"
+            },
+            "class": "PreviewWidget",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-widget.js",
+            "line": 63,
+            "description": "Get widgets of 'expandable' widget",
+            "itemtype": "method",
+            "name": "widgets",
+            "return": {
+                "description": "List of PreviewWidget"
+            },
+            "class": "PreviewWidget",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-widget.js",
+            "line": 70,
+            "description": "Get a JSON representation of this widget",
+            "itemtype": "method",
+            "name": "data",
+            "return": {
+                "description": "String representation of widget"
+            },
+            "class": "PreviewWidget",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js",
+            "line": 13,
+            "description": "Check if this Result instance has a stored result",
+            "itemtype": "method",
+            "name": "has_stored_result",
+            "return": {
+                "description": "",
+                "type": "Boolean"
+            },
+            "class": "Result",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js",
+            "line": 20,
+            "description": "Get a stored result",
+            "itemtype": "method",
+            "name": "retrieve",
+            "return": {
+                "description": "",
+                "type": "Result"
+            },
+            "class": "Result",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js",
+            "line": 27,
+            "description": "Set the \"uri\" attribute of this result.",
+            "itemtype": "method",
+            "name": "set_uri",
+            "params": [
+                {
+                    "name": "uri",
+                    "description": "",
+                    "type": "String"
+                }
+            ],
+            "class": "Result",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js",
+            "line": 34,
+            "description": "Set the \"title\" attribute of this result.",
+            "itemtype": "method",
+            "name": "set_title",
+            "params": [
+                {
+                    "name": "title",
+                    "description": "",
+                    "type": "String"
+                }
+            ],
+            "class": "Result",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js",
+            "line": 41,
+            "description": "Set the \"art\" attribute of this result.",
+            "itemtype": "method",
+            "name": "set_art",
+            "params": [
+                {
+                    "name": "art",
+                    "description": "",
+                    "type": "String"
+                }
+            ],
+            "class": "Result",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js",
+            "line": 48,
+            "description": "Set the \"dnd_uri\" attribute of this result.",
+            "itemtype": "method",
+            "name": "set_dnd_uri",
+            "params": [
+                {
+                    "name": "dnd_uri",
+                    "description": "",
+                    "type": "String"
+                }
+            ],
+            "class": "Result",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js",
+            "line": 55,
+            "description": "Indicates to the receiver that this scope should intercept activation requests for this result",
+            "itemtype": "method",
+            "name": "set_intercept_activation",
+            "class": "Result",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js",
+            "line": 61,
+            "description": "Check if this result should be activated directly by the shell because the scope doesn't handle activation of this result",
+            "itemtype": "method",
+            "name": "direct_activation",
+            "return": {
+                "description": "",
+                "type": "Boolean"
+            },
+            "class": "Result",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js",
+            "line": 68,
+            "description": "Get the \"uri\" property of this Result",
+            "itemtype": "method",
+            "name": "uri",
+            "return": {
+                "description": "",
+                "type": "String"
+            },
+            "class": "Result",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js",
+            "line": 75,
+            "description": "Get the \"title\" property of this Result",
+            "itemtype": "method",
+            "name": "title",
+            "return": {
+                "description": "",
+                "type": "String"
+            },
+            "class": "Result",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js",
+            "line": 82,
+            "description": "Get the \"art\" property of this Result",
+            "itemtype": "method",
+            "name": "art",
+            "return": {
+                "description": "",
+                "type": "String"
+            },
+            "class": "Result",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js",
+            "line": 89,
+            "description": "Get the \"dnd_uri\" property of this Result",
+            "itemtype": "method",
+            "name": "dnd_uri",
+            "return": {
+                "description": "",
+                "type": "String"
+            },
+            "class": "Result",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js",
+            "line": 96,
+            "description": "Check if this Result has an attribute",
+            "itemtype": "method",
+            "name": "contains",
+            "return": {
+                "description": "",
+                "type": "Boolean"
+            },
+            "class": "Result",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js",
+            "line": 103,
+            "description": "Get the value of an attribute",
+            "itemtype": "method",
+            "name": "value",
+            "params": [
+                {
+                    "name": "value",
+                    "description": "",
+                    "type": "String"
+                }
+            ],
+            "return": {
+                "description": "",
+                "type": "Dictonary"
+            },
+            "class": "Result",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js",
+            "line": 111,
+            "description": "Set the value of an attribute",
+            "itemtype": "method",
+            "name": "set",
+            "params": [
+                {
+                    "name": "key",
+                    "description": "",
+                    "type": "String"
+                },
+                {
+                    "name": "value",
+                    "description": "",
+                    "type": "String"
+                }
+            ],
+            "class": "Result",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js",
+            "line": 119,
+            "description": "Get the value of an attribute",
+            "itemtype": "method",
+            "name": "get",
+            "params": [
+                {
+                    "name": "key",
+                    "description": "",
+                    "type": "String"
+                }
+            ],
+            "return": {
+                "description": ", {Number} or {Object}",
+                "type": "String"
+            },
+            "class": "Result",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 22,
+            "description": "Set cardinality.",
+            "itemtype": "method",
+            "name": "set_cardinality",
+            "params": [
+                {
+                    "name": "cardinality",
+                    "description": "",
+                    "type": "Int"
+                }
+            ],
+            "class": "SearchMetaData",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 29,
+            "description": "Get cardinality.",
+            "itemtype": "method",
+            "name": "cardinality",
+            "return": {
+                "description": "",
+                "type": "Int"
+            },
+            "class": "SearchMetaData",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 36,
+            "description": "Set location.",
+            "itemtype": "method",
+            "name": "set_location",
+            "params": [
+                {
+                    "name": "location",
+                    "description": "data",
+                    "type": "Location"
+                }
+            ],
+            "class": "SearchMetaData",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 43,
+            "description": "Get location.",
+            "itemtype": "method",
+            "name": "location",
+            "return": {
+                "description": "data representing the current location, including attributes such as city and country.",
+                "type": "Location"
+            },
+            "class": "SearchMetaData",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 50,
+            "description": "Does the SearchMetadata have a location.",
+            "itemtype": "method",
+            "name": "has_location",
+            "return": {
+                "description": "True if there is a location property.",
+                "type": "Boolean"
+            },
+            "class": "SearchMetaData",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 57,
+            "description": "Remove location data entirely.\nThis method does nothing if no location data is present.",
+            "itemtype": "method",
+            "name": "remove_location",
+            "class": "SearchMetaData",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 64,
+            "description": "Set the list of scope keywords used to initiate this search request.",
+            "itemtype": "method",
+            "name": "set_aggregated_keywords",
+            "params": [
+                {
+                    "name": "aggregated_keywords",
+                    "description": "The list of scope keywords used to initiate this search request.",
+                    "type": "Array of String"
+                }
+            ],
+            "class": "SearchMetaData",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 71,
+            "description": "Get the list of scope keywords used to initiate this search request.",
+            "itemtype": "method",
+            "name": "aggregated_keywords",
+            "return": {
+                "description": "The list of scope keywords used to initiate this search request.",
+                "type": "Array of String"
+            },
+            "class": "SearchMetaData",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 78,
+            "description": "Check if this search request originated from an aggregator scope.",
+            "itemtype": "method",
+            "name": "is_aggregated",
+            "return": {
+                "description": "True if this search request originated from an aggregator scope.",
+                "type": "Boolean"
+            },
+            "class": "SearchMetaData",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 85,
+            "description": "Sets a hint.",
+            "itemtype": "method",
+            "name": "set_hint",
+            "params": [
+                {
+                    "name": "key",
+                    "description": "The name of the hint.",
+                    "type": "String"
+                },
+                {
+                    "name": "value",
+                    "description": "Hint value"
+                }
+            ],
+            "class": "SearchMetaData",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 93,
+            "description": "Get all hints.",
+            "itemtype": "method",
+            "name": "hints",
+            "return": {
+                "description": "",
+                "type": "Dictionary"
+            },
+            "class": "SearchMetaData",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 100,
+            "description": "Check if this SearchMetadata has a hint.",
+            "itemtype": "method",
+            "name": "contains_hint",
+            "params": [
+                {
+                    "name": "key",
+                    "description": "The hint name.",
+                    "type": "String"
+                }
+            ],
+            "return": {
+                "description": "True if the hint is set.",
+                "type": "Boolean"
+            },
+            "class": "SearchMetaData",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 108,
+            "description": "Set the value of an attribute",
+            "itemtype": "method",
+            "name": "set",
+            "params": [
+                {
+                    "name": "key",
+                    "description": "",
+                    "type": "String"
+                },
+                {
+                    "name": "value",
+                    "description": ", {Number} or {Object}",
+                    "type": "String"
+                }
+            ],
+            "class": "SearchMetaData",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 116,
+            "description": "Get the value of an attribute",
+            "itemtype": "method",
+            "name": "get",
+            "params": [
+                {
+                    "name": "key",
+                    "description": "",
+                    "type": "String"
+                }
+            ],
+            "return": {
+                "description": ", {Number} or {Object}",
+                "type": "String"
+            },
+            "class": "SearchMetaData",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 124,
+            "description": "Get the form factor string.",
+            "itemtype": "method",
+            "name": "form_factor",
+            "return": {
+                "description": "The form factor string"
+            },
+            "class": "SearchMetaData",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 131,
+            "description": "Get the locale string.",
+            "itemtype": "method",
+            "name": "locale",
+            "return": {
+                "description": "The locale string"
+            },
+            "class": "SearchMetaData",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 138,
+            "description": "Get internet connectivity status.",
+            "itemtype": "method",
+            "name": "internet_connectivity",
+            "return": {
+                "description": "The internet connectivity status.",
+                "type": "ConnectivityStatus"
+            },
+            "class": "SearchMetaData",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js",
+            "line": 145,
+            "description": "Set internet connectivity status.",
+            "itemtype": "method",
+            "name": "set_internet_connectivity",
+            "params": [
+                {
+                    "name": "The",
+                    "description": "internet connectivity status.",
+                    "type": "ConnectivityStatus"
+                }
+            ],
+            "class": "SearchMetaData",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-query.js",
+            "line": 50,
+            "description": "Get a canned query for this search request",
+            "itemtype": "method",
+            "name": "query",
+            "return": {
+                "description": "CannedQuery"
+            },
+            "class": "SearchQuery",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-query.js",
+            "line": 57,
+            "description": "Get metadata for this search request",
+            "itemtype": "method",
+            "name": "search_metadata",
+            "return": {
+                "description": "SearchMetadata"
+            },
+            "class": "SearchQuery",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-query.js",
+            "line": 64,
+            "description": "Check whether this query is still valid",
+            "itemtype": "method",
+            "name": "valid",
+            "return": {
+                "description": "Boolean False if the query is finished or was cancelled ealier."
+            },
+            "class": "SearchQuery",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-query.js",
+            "line": 71,
+            "description": "Returns a dictionary with the scope's current settings",
+            "itemtype": "method",
+            "name": "settings",
+            "return": {
+                "description": "Dictionary"
+            },
+            "class": "SearchQuery",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-reply.js",
+            "line": 11,
+            "description": "Register new category and send it to the source of the query",
+            "itemtype": "method",
+            "name": "register_category",
+            "params": [
+                {
+                    "name": "id",
+                    "description": "String id"
+                },
+                {
+                    "name": "title",
+                    "description": "String title"
+                },
+                {
+                    "name": "icon",
+                    "description": "String icon"
+                },
+                {
+                    "name": "category_renderer",
+                    "description": "CategoryRenderer"
+                }
+            ],
+            "class": "SearchReply",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-reply.js",
+            "line": 21,
+            "description": "Returns a previously registered category",
+            "itemtype": "method",
+            "name": "id",
+            "params": [
+                {
+                    "name": "id",
+                    "description": ""
+                }
+            ],
+            "class": "SearchReply",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-reply.js",
+            "line": 28,
+            "description": "Sends a single result to the source of a query",
+            "itemtype": "method",
+            "name": "push",
+            "params": [
+                {
+                    "name": "result",
+                    "description": "CategorisedResult"
+                }
+            ],
+            "class": "SearchReply",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-reply.js",
+            "line": 35,
+            "description": "Informs the source of a query that the query was terminated due to an error",
+            "itemtype": "method",
+            "name": "error",
+            "return": {
+                "description": "error String error"
+            },
+            "class": "SearchReply",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-reply.js",
+            "line": 42,
+            "description": "Informs the source of a query that the query results are complete",
+            "itemtype": "method",
+            "name": "finished",
+            "class": "SearchReply",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/index.js",
+            "line": 51,
+            "description": "This member function is the entry point to setting up a scope's behavior\nand configuring it to the runtime scope.",
+            "itemtype": "method",
+            "name": "initialize",
+            "params": [
+                {
+                    "name": "options",
+                    "description": "A dictionary of options for the scope runtime.\n     The option keys are:\n        - scope_id: the scope id",
+                    "type": "Object"
+                },
+                {
+                    "name": "runtime_config",
+                    "description": "A dictionary of runtime configuration settings for the scope runtime.\n     The configuration keys are:\n        - run {Function()}: Callback called by the scopes run time after it has called start() to hand a thread of control to the scope\n        - starting {Function(String: scope_id)}: Callback called by the scopes run time after the create function completes\n        - stop {Function()}: Callback called by the scopes run time when the scope should shut down\n        - search {Function(CannedQuery: canned_query, SearchMetaData: metadata)}: Callback called by the scopes run time when a scope needs to instantiate a query\n        - perform_action {Function(Result: result, ActionMetaData: metadata, String: widget_id, String: ation_id)}: Callback invoked when a scope is requested to handle a preview action\n        - preview {Function(Result: result, ActionMetaData: metadata)}: Callback invoked when a scope is requested to create a preview for a particular result",
+                    "type": "Object"
+                }
+            ],
+            "example": [
+                "\n             var scopes = require('unity-js-scopes')\n             scopes.self.initialize(\n               {}, {\n                 run: function() {}\n                 start: function(scope_id) {\n                   console.log('Starting scope id: '\n                     + scope_id\n                     + ', '\n                     + scopes.self.scope_config)\n                 },\n                 search: function(canned_query, metadata) {}\n               }\n             );"
+            ],
+            "class": "Scope",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/index.js",
+            "line": 127,
+            "description": "Returns the directory that stores the scope's configuration files and shared library",
+            "itemtype": "property",
+            "name": "scope_directory",
+            "class": "Scope",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/index.js",
+            "line": 135,
+            "description": "Returns a directory that is (exclusively) writable for the scope",
+            "itemtype": "property",
+            "name": "cache_directory",
+            "class": "Scope",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/index.js",
+            "line": 143,
+            "description": "Returns a tmp directory that is (exclusively) writable for the scope",
+            "itemtype": "property",
+            "name": "tmp_directory",
+            "class": "Scope",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/index.js",
+            "line": 151,
+            "description": "Returns the scope registry",
+            "itemtype": "property",
+            "name": "registry",
+            "class": "Scope",
+            "module": "ScopeJS"
+        },
+        {
+            "file": "/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/index.js",
+            "line": 159,
+            "description": "Returns a dictionary with the scope's current settings",
+            "itemtype": "property",
+            "name": "settings",
+            "class": "Scope",
+            "module": "ScopeJS"
+        }
+    ],
+    "warnings": []
+}
\ No newline at end of file

=== added directory 'doc/docbuild/files'
=== added file 'doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_index.js.html'
--- doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_index.js.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_index.js.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,314 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/index.js - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1 class="file-heading">File: /home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/index.js</h1>
+
+<div class="file">
+    <pre class="code prettyprint linenums">
+/*
+ * Copyright 2015 Canonical Ltd.
+ *
+ * This file is part of unity-js-scopes.
+ *
+ * unity-js-scopes is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3.
+ *
+ * unity-js-scopes is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see &lt;http://www.gnu.org/licenses/&gt;.
+ */
+
+var lib = require(&#x27;./unity_js_scopes_bindings&#x27;);
+var core = require(&#x27;./lib/scope-core.js&#x27;);
+
+// Init the first time it is accessed
+var self;
+
+/**
+ * Scope corresponds to the bridge between the ubuntu scope runtime
+ * and the actual scope.
+ * 
+ * A Scope object is not directly constructible but it is automatically created
+ * when the scope module is imported and is accessible through the &#x27;self&#x27; exported
+ * member.
+ * 
+ * After the scopes runtime has obtained initialization runtime configurations from
+ * the scope, it calls start(), which allows the scope to intialize itself. This is
+ * followed by a call to run().
+ * 
+ * When the scope should complete its activities, the runtime calls stop().
+ * 
+ * @example
+      var scopes = require(&#x27;unity-js-scopes&#x27;)
+      scopes.self
+  
+ * @module ScopeJS
+ * 
+ * 
+ * @class Scope
+ */
+function Scope() {}
+
+Scope.prototype = {
+    /**
+     * This member function is the entry point to setting up a scope&#x27;s behavior
+     * and configuring it to the runtime scope.
+     *
+     * @method initialize
+     * @param options {Object} A dictionary of options for the scope runtime.
+     *      The option keys are:
+     *         - scope_id: the scope id
+     * @param runtime_config {Object} A dictionary of runtime configuration settings for the scope runtime.
+     *      The configuration keys are:
+     *         - run {Function()}: Callback called by the scopes run time after it has called start() to hand a thread of control to the scope
+     *         - starting {Function(String: scope_id)}: Callback called by the scopes run time after the create function completes
+     *         - stop {Function()}: Callback called by the scopes run time when the scope should shut down
+     *         - search {Function(CannedQuery: canned_query, SearchMetaData: metadata)}: Callback called by the scopes run time when a scope needs to instantiate a query
+     *         - perform_action {Function(Result: result, ActionMetaData: metadata, String: widget_id, String: ation_id)}: Callback invoked when a scope is requested to handle a preview action
+     *         - preview {Function(Result: result, ActionMetaData: metadata)}: Callback invoked when a scope is requested to create a preview for a particular result
+     *
+     * @example
+              var scopes = require(&#x27;unity-js-scopes&#x27;)
+              scopes.self.initialize(
+                {}, {
+                  run: function() {}
+                  start: function(scope_id) {
+                    console.log(&#x27;Starting scope id: &#x27;
+                      + scope_id
+                      + &#x27;, &#x27;
+                      + scopes.self.scope_config)
+                  },
+                  search: function(canned_query, metadata) {}
+                }
+              );
+    */
+    initialize: function(options, runtime_config) {
+        this._setup_backend();
+
+        if (! options || typeof(options) !== &#x27;object&#x27;) {
+            throw &quot;No or invalid options specified&quot;;
+        }
+        
+        if (! runtime_config || typeof(runtime_config) !== &#x27;object&#x27;) {
+            throw &quot;No or invalid runtime configuration specified&quot;;
+        }
+
+        if (runtime_config.run &amp;&amp; typeof(runtime_config.run) === &#x27;function&#x27;) {
+            this._base.onrun(runtime_config.run);
+        }
+
+        if (runtime_config.start &amp;&amp; typeof(runtime_config.start) === &#x27;function&#x27;) {
+            this._base.onstart(runtime_config.start);
+        }
+
+        if (runtime_config.stop &amp;&amp; typeof(runtime_config.stop) === &#x27;function&#x27;) {
+            this._base.onstop(runtime_config.stop);
+        }
+
+        if (runtime_config.search &amp;&amp; typeof(runtime_config.search) === &#x27;function&#x27;) {
+            this._base.onsearch(runtime_config.search);
+        }
+
+        if (runtime_config.preview &amp;&amp; typeof(runtime_config.preview) === &#x27;function&#x27;) {
+            this._base.onpreview(runtime_config.preview);
+        }
+
+        if (runtime_config.activate &amp;&amp; typeof(runtime_config.activate) === &#x27;function&#x27;) {
+            // this._base.onactivate(runtime_config.activate);
+        }
+
+        return this._scope_binding.run(
+            options &amp;&amp; options.scope_id ? options.scope_id : &quot;&quot;);
+    },
+    _setup_backend: function(options) {
+        if (! this._scope_binding) {
+            this._scope_binding = core.new_scope(options ? options.runtime_config : &quot;&quot;);
+            this._base = this._scope_binding.scope_base();
+        }
+    },
+    /**
+     * Returns the directory that stores the scope&#x27;s configuration files and shared library    
+     *
+     * @property scope_directory
+     */
+    get scope_directory() {
+        return this._base.scope_directory();
+    },
+    /**
+     * Returns a directory that is (exclusively) writable for the scope
+     *
+     * @property cache_directory
+     */
+    get cache_directory() {
+        return this._base.cache_directory();
+    },
+    /**
+     * Returns a tmp directory that is (exclusively) writable for the scope
+     * 
+     * @property tmp_directory
+     */
+    get tmp_directory() {
+        return this._base.tmp_directory();
+    },
+    /**
+     * Returns the scope registry
+     * 
+     * @property registry
+     */
+    get registry() {
+        return null
+    },
+    /**
+     * Returns a dictionary with the scope&#x27;s current settings
+     * 
+     * @property settings
+     */
+    get settings() {
+        return this._base.settings();
+    },
+};
+
+ConnectivityStatus = {
+    Unknown: &quot;Unknown&quot;,
+    Connected: &quot;Connected&quot;,
+    Disconnected: &quot;Disconnected&quot;
+};
+
+var PostLoginAction = {
+    Unknown: &quot;Unknown&quot;,
+    DoNothing: &quot;DoNothing&quot;,
+    InvalidateResults: &quot;InvalidateResults&quot;,
+    ContinueActivation: &quot;ContinueActivation&quot;
+};
+
+module.exports = {
+    lib: lib,
+    defs: {
+        PostLoginAction: PostLoginAction,
+        ConnectivityStatus: ConnectivityStatus
+    }
+}
+
+Object.defineProperty(
+    module.exports,
+    &quot;self&quot;,
+    {
+        get: function() {
+            if (! self) {
+                self = new Scope();
+            }
+            return self;
+        },
+    });
+
+    </pre>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_action-metadata.js.html'
--- doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_action-metadata.js.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_action-metadata.js.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,150 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/action-metadata.js - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1 class="file-heading">File: /home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/action-metadata.js</h1>
+
+<div class="file">
+    <pre class="code prettyprint linenums">
+/**
+ * 
+ * Metadata passed to scopes for preview and activation
+ * 
+ * @module ScopeJS
+ * 
+ * @class ActionMetadata
+ */
+function ActionMetadata(){}
+
+ActionMetadata.prototype = {
+/**
+* Check if this ActionMetadata has a hint
+ * @method contains_hint
+ * @param hint {String}
+ * @return Boolean
+*/
+contains_hint: function(hint) {
+},
+/**
+* Set the value of an attribute
+ * @method set
+ * @param key {String}
+ * @param value {String}, {Number} or {Object}
+*/
+set: function(key, value) {
+},
+/**
+* Get the value of an attribute
+ * @method get
+ * @param key {String}
+ * @return {String}, {Number} or {Object}
+*/
+get: function(key) {
+}
+};
+
+    </pre>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_activation-query.js.html'
--- doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_activation-query.js.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_activation-query.js.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,174 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/activation-query.js - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1 class="file-heading">File: /home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/activation-query.js</h1>
+
+<div class="file">
+    <pre class="code prettyprint linenums">
+/**
+ * 
+ * Represents an activation request that is executed inside a scope
+ * 
+ * @module ScopeJS
+ * @class ActivationQuery
+ */
+function ActivationQuery(){}
+
+ActivationQuery.prototype = {
+/**
+* Return response to the activation request
+ * @method activate
+ * @return ActivationResponse
+*/
+activate: function() {
+},
+/**
+* Get the result for this activation request handler
+ * @method result
+ * @return Result
+*/
+result: function() {
+},
+/**
+* Get the metadata for this activation request handler
+ * @method action_metadata
+ * @return ActionMetadata
+*/
+action_metadata: function() {
+},
+/**
+* Get the widget identifier for this activation request handler
+ * @method widget_id
+ * @return String
+*/
+widget_id: function() {
+},
+/**
+* Get the action identifier for this activation request handler
+ * @method action_id
+ * @return String
+*/
+action_id: function() {
+},
+/**
+* Check whether this query is still valid
+ * @method valid
+ * @return Boolean
+*/
+valid: function() {
+},
+/**
+* Returns a dictionary with the scope&#x27;s current settings
+ * @method settings
+ * @return Dictionary
+*/
+settings: function() {
+}
+};
+
+    </pre>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html'
--- doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_categorised-result.js.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,286 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1 class="file-heading">File: /home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/categorised-result.js</h1>
+
+<div class="file">
+    <pre class="code prettyprint linenums">
+/**
+ * 
+ * A result, including the category it belongs to.
+ * 
+ * @module ScopeJS
+ * @class CategorisedResult
+ *
+ * @constructor
+ * @param category The category for the result.*/
+function CategorisedResult(){}
+
+CategorisedResult.prototype = {
+/**
+* Updates the category of this result.
+ * @method set_category
+ * @param category The category for the result.
+*/
+set_category: function(Category: category) {
+},
+/**
+* Get the category instance this result belongs to.
+ * @method category
+ * @return {Category} The category instance.
+*/
+category: function() {
+},
+/**
+* This method is meant to be used by aggregator scopes which want to modify
+ * results they receive, but want to keep a copy of the original result so
+ * that they can be correctly handled by the original scopes
+ * who created them when it comes to activation or previews.
+ * Scopes middleware will automatically pass the correct inner stored result
+ * to the activation or preview request handler
+ * 
+ * @method store
+ * @param {Result} The original result to store within this result.
+ * @param {Boolean} intercept_activation True if this scope should receive activation and preview requests.
+*/
+store: function({Result}: result, {Boolean}: intercept_activation) {
+},
+/**
+* Check if this Result instance has a stored result.
+ * @method has_stored_result
+ * @return {Boolean} True if there is a stored result
+*/
+has_stored_result: function() {
+},
+/**
+* Get a stored result.
+ * @method retrieve
+ * @return {Result} stored result
+*/
+retrieve: function() {
+},
+/**
+* Set the &quot;uri&quot; attribute of this result.
+ * @method set_uri
+ * @param uri {String}
+*/
+set_uri: function(uri) {
+},
+/**
+* Set the &quot;title&quot; attribute of this result.
+ * @method set_title
+ * @param title {String}
+*/
+set_title: function(title) {
+},
+/**
+* Set the &quot;art&quot; attribute of this result.
+ * @method set_art
+ * @param art {String}
+*/
+set_art: function(art) {
+},
+/**
+* Set the &quot;dnd_uri&quot; attribute of this result.
+ * @method set_dnd_uri
+ * @param dnd_uri {String}
+*/
+set_dnd_uri: function(dnd_uri) {
+},
+/**
+* Indicates to the receiver that this scope should intercept
+ * activation requests for this result.
+ * By default, a scope receives preview requests for the results it
+ * creates, but does not receive activation requests (they are handled
+ * directly by the shell). Intercepting activation implies intercepting
+ * preview requests as well; this is important for scopes that forward
+ * results from other scopes and call set_intercept_activation() on these scopes.
+ * A scope that sets intercept activation flag for a result should re-implement
+ * Scope.activate() and provide an implementation of ActivationQuery that
+ * handles the actual activation. If not called, the result will be activated
+ * directly by the Unity shell whithout involving the scope, assuming an appropriate
+ * URI schema handler is present on the system.
+ * 
+ * @method set_intercept_activation
+*/
+set_intercept_activation: function() {
+},
+/**
+* Check if this result should be activated directly by the shell
+ * because the scope doesn&#x27;t handle activation of this result.
+ * @method direct_activation
+ * @return {Boolean} True if this result needs to be activated directly.
+*/
+direct_activation: function() {
+},
+/**
+* Get the &quot;uri&quot; property of this Result.
+ * This method returns an empty string if this attribute is not of type String.
+ * @method uri
+ * @return {String} The value of &quot;uri&quot; or the empty string.
+*/
+uri: function() {
+},
+/**
+* Get the &quot;title&quot; property of this Result.
+ * This method returns an empty string if this attribute is not of type String.
+ * @method title
+ * @return {String} The value of &quot;title&quot; or the empty string.
+*/
+title: function() {
+},
+/**
+* Get the &quot;art&quot; property of this Result.
+ * This method returns an empty string if this attribute is not of type String.
+ * @method art
+ * @return {String} The value of &quot;art&quot; or the empty string.
+*/
+art: function() {
+},
+/**
+* Get the &quot;dnd_uri&quot; property of this Result.
+ * This method returns an empty string if this attribute is not of type String.
+ * @method dnd_uri
+ * @return {String} The value of &quot;dnd_uri&quot; or the empty string.
+*/
+dnd_uri: function() {
+},
+/**
+* Check if this Result has an attribute.
+ * @method contains
+ * @param key The attribute name.
+ * @return {Boolean} True if the attribute is set.
+*/
+contains: function(key) {
+},
+/**
+* Check if this result is an online account login result.
+ * @method is_account_login_result
+ * @return {Boolean} True if this result is an online account login result.
+*/
+is_account_login_result: function() {
+},
+/**
+* Gets the value of a custom metadata attribute.
+ * @method get
+ * @param key {String} The name of the attribute.
+ * @return Attribute value or null
+*/
+get: function(key) {
+},
+/**
+* Sets the value of a custom metadata attribute.
+ * @method set
+ * @param key {String} The name of the attribute.
+ * @param value The value of the attribute.
+*/
+set: function(key, value) {
+}
+};
+
+    </pre>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_category-renderer.js.html'
--- doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_category-renderer.js.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_category-renderer.js.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/category-renderer.js - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1 class="file-heading">File: /home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/category-renderer.js</h1>
+
+<div class="file">
+    <pre class="code prettyprint linenums">
+/**
+ * 
+ * A category renderer template in JSON format.
+ * 
+ * @module ScopeJS
+ * @class CategoryRenderer
+ * 
+ * @constructor
+ * @param json_text Renderer template in JSON format*/
+function CategoryRenderer(){}
+
+CategoryRenderer.prototype = {
+/**
+* Returns complete renderer template definition in JSON format.
+ * @method data
+ * @return String The renderer template (JSON)
+*/
+data: function() {
+}
+};
+
+    </pre>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_category.js.html'
--- doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_category.js.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_category.js.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,156 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/category.js - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1 class="file-heading">File: /home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/category.js</h1>
+
+<div class="file">
+    <pre class="code prettyprint linenums">
+/**
+ * 
+ * A set of related results returned by a scope
+ *  and displayed within a single pane in the Unity dash.
+ * 
+ * To create a Category, use SearchReply.register_category.
+ * 
+ * @module ScopeJS
+ * @class Category
+ */
+function Category(){}
+
+Category.prototype = {
+/**
+* Get identifier of this Category
+ * @method id
+ * @return String The category identifier.
+*/
+id: function() {
+},
+/**
+* Get title of this Category
+ * @method title
+ * @return String The category title.
+*/
+title: function() {
+},
+/**
+* Get icon of this Category
+ * @method icon
+ * @return String The category icon.
+*/
+icon: function() {
+},
+/**
+* Query to perform when this category is expanded
+ * @method query
+ * @return CannedQuery The expansion query or null.
+*/
+query: function() {
+}
+};
+
+    </pre>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_column-layout.js.html'
--- doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_column-layout.js.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_column-layout.js.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,156 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/column-layout.js - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1 class="file-heading">File: /home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/column-layout.js</h1>
+
+<div class="file">
+    <pre class="code prettyprint linenums">
+/**
+ * 
+ * Describes a column layout for preview widgets.
+ * 
+ * @module ScopeJS
+ * @class ColumnLayout
+ * 
+ * @constructor
+ * @param num_of_columns The number of columns for the layout.*/
+function ColumnLayout(){}
+
+ColumnLayout.prototype = {
+/**
+* Adds a new column and assigns widgets to it.
+ * @method add_column
+ * @param widget_ids ColumnLayout expects exactly the number of columns passed to the constructor to be created with the add_column method.
+*/
+add_column: function(Array of Strings: widget_ids) {
+},
+/**
+* Get the current number of columns in this layout.
+ * @method size
+ * @return The number of columns added with add_column()
+*/
+size: function() {
+},
+/**
+* Get the number of columns expected by this layout as specified in the constructor.
+ * @method number_of_columns
+ * @return The number of columns expected by this layout.
+*/
+number_of_columns: function() {
+},
+/**
+* Retrieve the list of widgets for given column.
+ * @method column
+ * @param index The index of a column.
+ * @return The widget identifiers for the given column index.
+*/
+column: function(index) {
+}
+};
+
+    </pre>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-query.js.html'
--- doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-query.js.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-query.js.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,189 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-query.js - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1 class="file-heading">File: /home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-query.js</h1>
+
+<div class="file">
+    <pre class="code prettyprint linenums">
+/**
+ * 
+ * Represents a particular preview
+ * 
+ * @module ScopeJS
+ * @class PreviewQuery
+ * 
+ * @example
+
+     var scopes = require(&#x27;unity-js-scopes&#x27;)
+     function on_preview(result, action_metadata) {
+       return new scopes.lib.preview_query(
+         result,
+         action_metadata,
+         // run
+         function(preview_reply) {},
+         // cancelled
+         function() {});
+     }
+     scopes.self.initialize(
+      {}
+      ,
+      {
+        run: function() { },
+        start: function(scope_id) { },
+        preview: on_preview,
+      }
+    );
+ *  
+ * @constructor
+ * @param canned_query CannedQuery
+ * @param action_metadata ActionMetadata
+ * @param run Function({PreviewReply}) Function callback that is to be called by the scope runtime to start the preview.
+              Your implementation of run() can use the provided PreviewReply object to
+              push results for the preview and call finished() on the reply object when
+              you are done with pushing results. You can push results from within run(),
+              in which case the preview implicitly completes when run() returns.
+              Alternatively, run() can store the reply object and return immediately.
+ * @param cancelled Function() Called by the scopes runtime when the query originator cancels a query.
+              Your implementation of this method should ensure that the scope stops
+              processing the current query as soon as possible. Any calls to a &#x60;push()&#x60; method
+              once a query is cancelled are ignored, so continuing to push after cancellation
+              only wastes CPU cycles.*/
+function PreviewQuery(){}
+
+PreviewQuery.prototype = {
+/**
+* Get result for this preview request
+ * @method result
+ * @return Result
+*/
+result: function() {
+},
+/**
+* Get metadata for this preview request
+ * @method action_metadata
+ * @return ActionMetadata
+*/
+action_metadata: function() {
+},
+/**
+* Check whether this query is still valid
+ * @method valid
+ * @return Boolean
+*/
+valid: function() {
+},
+/**
+* Returns a dictionary with the scope&#x27;s current settings
+ * @method settings
+ * @return Dictionary
+*/
+settings: function() {
+}
+};
+
+    </pre>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-reply.js.html'
--- doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-reply.js.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-reply.js.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,154 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-reply.js - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1 class="file-heading">File: /home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-reply.js</h1>
+
+<div class="file">
+    <pre class="code prettyprint linenums">
+/**
+ * 
+ * Allows the results of a preview to be sent to the preview requester.
+ * 
+ * @module ScopeJS
+ * 
+ * @class PreviewReply
+ */
+function PreviewReply(){}
+
+PreviewReply.prototype = {
+/**
+* Registers a list of column layouts for the current preview
+ * @method register_layout
+ * @param layout {Array of Column layout}
+*/
+register_layout: function(layout) {
+},
+/**
+* Sends widget definitions to the sender of the preview query
+ * @method push
+ * @param widget_list {Array of PreviewWidget}
+*/
+push: function(widget_list) {
+},
+/**
+* Informs the source of a query that the query results are complete
+ * @method finished
+ * @return Boolean
+*/
+finished: function() {
+},
+/**
+* Informs the source of a query that the query was terminated due to an error
+ * @method error
+ * @return error String error
+*/
+error: function(error) {
+}
+};
+
+    </pre>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-widget.js.html'
--- doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-widget.js.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_preview-widget.js.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,191 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-widget.js - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1 class="file-heading">File: /home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/preview-widget.js</h1>
+
+<div class="file">
+    <pre class="code prettyprint linenums">
+/**
+ * 
+ * A widget for a preview.
+ * 
+ * @module ScopeJS
+ * 
+ * @class PreviewWidget
+ */
+function PreviewWidget(){}
+
+PreviewWidget.prototype = {
+/**
+* Adds an attribute definition and its value
+ * @method add_attribute_value
+ * @param key {String} Attribute definition
+ * @param value {String}, {Number}, {Object}. The value can be a string, number, object
+*/
+add_attribute_value: function(key, value) {
+},
+/**
+* Adds an attribute definition using a component mapping
+ * @method add_attribute_mapping
+ * @param key {String} Attribute definition
+ * @param value {String} Value
+*/
+add_attribute_mapping: function(key, value) {
+},
+/**
+* Adds a widget into expandable widget
+ * @method add_widget
+ * @param widget {PreviewWidget} The widget that needs to be added
+*/
+add_widget: function(widget) {
+},
+/**
+* Get the identifier of this widget
+ * @method id
+ * @return Id {String}
+*/
+id: function() {
+},
+/**
+* Get type name of this widget
+ * @method widget_type
+ * @return {String} Widget type
+*/
+widget_type: function() {
+},
+/**
+* Get the components of this widget
+ * @method attribute_mappings
+ * @return Dictionary of widget components
+*/
+attribute_mappings: function() {
+},
+/**
+* Get the attributes of this widget
+ * @method attribute_values
+ * @return Object corresponding to attributes of this widget
+*/
+attribute_values: function() {
+},
+/**
+* Get widgets of &#x27;expandable&#x27; widget
+ * @method widgets
+ * @return List of PreviewWidget
+*/
+widgets: function() {
+},
+/**
+* Get a JSON representation of this widget
+ * @method data
+ * @return String representation of widget
+*/
+data: function() {
+}
+};
+
+    </pre>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html'
--- doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_result.js.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,241 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1 class="file-heading">File: /home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/result.js</h1>
+
+<div class="file">
+    <pre class="code prettyprint linenums">
+/**
+ * 
+ * The attributes of a result returned by a Scope
+ * 
+ * The Result API provides convenience methods for some typical attributes (title, art), but scopes are free to add and use any custom attributes with set/get methods. The only required attribute is &#x27;uri&#x27; and it must not be empty before calling Reply.push().
+ *
+ * @module ScopeJS
+ * @class Result
+ */
+function Result(){}
+
+Result.prototype = {
+/**
+* Check if this Result instance has a stored result
+ * @method has_stored_result
+ * @return {Boolean}
+*/
+has_stored_result: function() {
+},
+/**
+* Get a stored result
+ * @method retrieve
+ * @return {Result}
+*/
+retrieve: function() {
+},
+/**
+* Set the &quot;uri&quot; attribute of this result.
+ * @method set_uri
+ * @param uri {String}
+*/
+set_uri: function(uri) {
+},
+/**
+* Set the &quot;title&quot; attribute of this result.
+ * @method set_title
+ * @param title {String}
+*/
+set_title: function(title) {
+},
+/**
+* Set the &quot;art&quot; attribute of this result.
+ * @method set_art
+ * @param art {String}
+*/
+set_art: function(art) {
+},
+/**
+* Set the &quot;dnd_uri&quot; attribute of this result.
+ * @method set_dnd_uri
+ * @param dnd_uri {String}
+*/
+set_dnd_uri: function(dnd_uri) {
+},
+/**
+* Indicates to the receiver that this scope should intercept activation requests for this result
+ * @method set_intercept_activation
+*/
+set_intercept_activation: function() {
+},
+/**
+* Check if this result should be activated directly by the shell because the scope doesn&#x27;t handle activation of this result
+ * @method direct_activation
+ * @return {Boolean}
+*/
+direct_activation: function() {
+},
+/**
+* Get the &quot;uri&quot; property of this Result
+ * @method uri
+ * @return {String}
+*/
+uri: function() {
+},
+/**
+* Get the &quot;title&quot; property of this Result
+ * @method title
+ * @return {String}
+*/
+title: function() {
+},
+/**
+* Get the &quot;art&quot; property of this Result
+ * @method art
+ * @return {String}
+*/
+art: function() {
+},
+/**
+* Get the &quot;dnd_uri&quot; property of this Result
+ * @method dnd_uri
+ * @return {String}
+*/
+dnd_uri: function() {
+},
+/**
+* Check if this Result has an attribute
+ * @method contains
+ * @return {Boolean}
+*/
+contains: function() {
+},
+/**
+* Get the value of an attribute
+ * @method value
+ * @param value {String}
+ * @return {Dictonary}
+*/
+value: function(value) {
+},
+/**
+* Set the value of an attribute
+ * @method set
+ * @param key {String}
+ * @param value {String}
+*/
+set: function(key, value) {
+},
+/**
+* Get the value of an attribute
+ * @method get
+ * @param key {String}
+ * @return {String}, {Number} or {Object}
+*/
+get: function(key) {
+}
+};
+
+    </pre>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html'
--- doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-metadata.js.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,266 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1 class="file-heading">File: /home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-metadata.js</h1>
+
+<div class="file">
+    <pre class="code prettyprint linenums">
+/**
+ * 
+ * Metadata passed with search requests.
+ * 
+ * Two forms of construction are allowed depending on the number
+ * and types of the parameters:
+ *  - with locale and form factor
+ *  or
+ *  - with cardinality, locale, and form factor.
+ *
+ * @module ScopeJS
+ * @class SearchMetaData
+ * 
+ * @constructor
+ * @param cardinality maximum number of search results
+ * @param locale locale string, eg. en_EN
+ * @param form_factor form factor name, e.g. phone, desktop, phone-version etc.
+ * @param category The category for the result.*/
+function SearchMetaData(){}
+
+SearchMetaData.prototype = {
+/**
+* Set cardinality.
+ * @method set_cardinality
+ * @param cardinality {Int}
+*/
+set_cardinality: function(cardinality) {
+},
+/**
+* Get cardinality.
+ * @method cardinality
+ * @return {Int}
+*/
+cardinality: function() {
+},
+/**
+* Set location.
+ * @method set_location
+ * @param location {Location} data
+*/
+set_location: function(location) {
+},
+/**
+* Get location.
+ * @method location
+ * @return {Location} data representing the current location, including attributes such as city and country.
+*/
+location: function() {
+},
+/**
+* Does the SearchMetadata have a location.
+ * @method has_location
+ * @return {Boolean} True if there is a location property.
+*/
+has_location: function() {
+},
+/**
+* Remove location data entirely.
+ * This method does nothing if no location data is present.
+ * @method remove_location
+*/
+remove_location: function() {
+},
+/**
+* Set the list of scope keywords used to initiate this search request.
+ * @method set_aggregated_keywords
+ * @param aggregated_keywords {Array of String} The list of scope keywords used to initiate this search request.
+*/
+set_aggregated_keywords: function() {
+},
+/**
+* Get the list of scope keywords used to initiate this search request.
+ * @method aggregated_keywords
+ * @return {Array of String} The list of scope keywords used to initiate this search request.
+*/
+aggregated_keywords: function() {
+},
+/**
+* Check if this search request originated from an aggregator scope.
+ * @method is_aggregated
+ * @return {Boolean} True if this search request originated from an aggregator scope.
+*/
+is_aggregated: function() {
+},
+/**
+* Sets a hint.
+ * @method set_hint
+ * @param key {String} The name of the hint.
+ * @param value Hint value
+*/
+set_hint: function(key, value) {
+},
+/**
+* Get all hints.
+ * @method hints
+ * @return {Dictionary}
+*/
+hints: function() {
+},
+/**
+* Check if this SearchMetadata has a hint.
+ * @method contains_hint
+ * @param key {String} The hint name.
+ * @return {Boolean} True if the hint is set.
+*/
+contains_hint: function(key) {
+},
+/**
+* Set the value of an attribute
+ * @method set
+ * @param key {String}
+ * @param value {String}, {Number} or {Object}
+*/
+set: function(key, value) {
+},
+/**
+* Get the value of an attribute
+ * @method get
+ * @param key {String}
+ * @return {String}, {Number} or {Object}
+*/
+get: function(key) {
+},
+/**
+* Get the form factor string.
+ * @method form_factor
+ * @return The form factor string
+*/
+form_factor: function() {
+},
+/**
+* Get the locale string.
+ * @method locale
+ * @return The locale string
+*/
+locale: function() {
+},
+/**
+* Get internet connectivity status.
+ * @method internet_connectivity
+ * @return {ConnectivityStatus} The internet connectivity status.
+*/
+internet_connectivity: function() {
+},
+/**
+* Set internet connectivity status.
+ * @method set_internet_connectivity
+ * @param {ConnectivityStatus} The internet connectivity status.
+*/
+set_internet_connectivity: function(connectivity_status) {
+}
+};
+
+    </pre>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-query.js.html'
--- doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-query.js.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-query.js.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,192 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-query.js - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1 class="file-heading">File: /home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-query.js</h1>
+
+<div class="file">
+    <pre class="code prettyprint linenums">
+/**
+ * 
+ * Represents a particular query
+ *
+ * A scope must return an instance of this class from its implementation of Scope.search().
+ *
+ * @module ScopeJS
+ * 
+ * @class SearchQuery
+ * 
+ * @example
+
+     var scopes = require(&#x27;unity-js-scopes&#x27;)
+     function on_search(canned_query, metadata) {
+       return new scopes.lib.search_query(
+         canned_query,
+         metadata,
+         // run
+         function(search_reply) {}
+         // cancelled
+         function() {});
+     }
+     scopes.self.initialize(
+      {}
+      ,
+      {
+        run: function() { },
+        start: function(scope_id) { },
+        search: on_search,
+      }
+    );
+ * 
+ * @constructor
+ * @param canned_query
+ * @param metadata
+ * @param run Function({SearchReply}) Function callback that is to be called by the scope runtime to start the query.
+              Your implementation of run() can use the provided SearchReply object to
+              push results for the query and call finished() on the reply object when
+              you are done with pushing results. You can push results from within run(),
+              in which case the query implicitly completes when run() returns.
+              Alternatively, run() can store the reply object and return immediately.
+ * @param cancelled Function() Called by the scopes runtime when the query originator cancels a query.
+              Your implementation of this method should ensure that the scope stops
+              processing the current query as soon as possible. Any calls to a &#x60;push()&#x60; method
+              once a query is cancelled are ignored, so continuing to push after cancellation
+              only wastes CPU cycles.*/
+function SearchQuery(){}
+
+SearchQuery.prototype = {
+/**
+* Get a canned query for this search request
+ * @method query
+ * @return CannedQuery
+*/
+query: function() {
+},
+/**
+* Get metadata for this search request
+ * @method search_metadata
+ * @return SearchMetadata
+*/
+search_metadata: function() {
+},
+/**
+* Check whether this query is still valid
+ * @method valid
+ * @return Boolean False if the query is finished or was cancelled ealier.
+*/
+valid: function() {
+},
+/**
+* Returns a dictionary with the scope&#x27;s current settings
+ * @method settings
+ * @return Dictionary
+*/
+settings: function() {
+}
+};
+
+    </pre>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-reply.js.html'
--- doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-reply.js.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_src_search-reply.js.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,162 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>/home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-reply.js - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1 class="file-heading">File: /home/alex/dev/work/webapps/branches/scopes/doc/src/bindings/src/search-reply.js</h1>
+
+<div class="file">
+    <pre class="code prettyprint linenums">
+/**
+ * 
+ * Allows the results of a preview to be sent to the preview requester.
+ * 
+ * @module ScopeJS
+ * @class SearchReply
+ */
+function SearchReply(){}
+
+SearchReply.prototype = {
+/**
+* Register new category and send it to the source of the query
+ * @method register_category
+ * @param id String id
+ * @param title String title
+ * @param icon String icon
+ * @param category_renderer CategoryRenderer
+*/
+register_category: function(String: id, String: title, String: icon, [optional] CategoryRenderer: category_renderer) {
+},
+/**
+* Returns a previously registered category
+ * @method id
+ * @param id
+*/
+lookup_category: function(String: id) {
+},
+/**
+* Sends a single result to the source of a query
+ * @method push
+ * @param result CategorisedResult
+*/
+push: function(CategorisedResult: result) {
+},
+/**
+* Informs the source of a query that the query was terminated due to an error
+ * @method error
+ * @return error String error
+*/
+error: function(String: error) {
+},
+/**
+* Informs the source of a query that the query results are complete
+ * @method finished
+*/
+finished: function() {
+}
+};
+
+    </pre>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/files/index.html'
--- doc/docbuild/files/index.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/files/index.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,10 @@
+<!doctype html>
+<html>
+    <head>
+        <title>Redirector</title>
+        <meta http-equiv="refresh" content="0;url=../">
+    </head>
+    <body>
+        <a href="../">Click here to redirect</a>
+    </body>
+</html>

=== added file 'doc/docbuild/index.html'
--- doc/docbuild/index.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/index.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,128 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="./assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="./assets/css/main.css" id="site_styles">
+    <link rel="icon" href="./assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="./assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="./classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="./classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="./classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="./classes/Category.html">Category</a></li>
+                                <li><a href="./classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="./classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="./classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="./classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="./classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="./classes/Result.html">Result</a></li>
+                                <li><a href="./classes/Scope.html">Scope</a></li>
+                                <li><a href="./classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="./classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="./classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="./modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+    <div class="apidocs">
+        <div id="docs-main" class="content">
+            <p>
+            Browse to a module or class using the sidebar to view its API documentation.
+            </p>
+
+            <h2>Keyboard Shortcuts</h2>
+
+            <ul>
+                <li><p>Press <kbd>s</kbd> to focus the API search box.</p></li>
+
+                <li><p>Use <kbd>Up</kbd> and <kbd>Down</kbd> to select classes, modules, and search results.</p></li>
+
+                <li class="mac-only"><p>With the API search box or sidebar focused, use <kbd><span class="cmd">&#x2318;</span>-Left</kbd> or <kbd><span class="cmd">&#x2318;</span>-Right</kbd> to switch sidebar tabs.</p></li>
+
+                <li class="pc-only"><p>With the API search box or sidebar focused, use <kbd>Ctrl+Left</kbd> and <kbd>Ctrl+Right</kbd> to switch sidebar tabs.</p></li>
+            </ul>
+        </div>
+    </div>
+
+
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="./assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="./assets/js/yui-prettify.js"></script>
+<script src="./assets/../api.js"></script>
+<script src="./assets/js/api-filter.js"></script>
+<script src="./assets/js/api-list.js"></script>
+<script src="./assets/js/api-search.js"></script>
+<script src="./assets/js/apidocs.js"></script>
+</body>
+</html>

=== added directory 'doc/docbuild/modules'
=== added file 'doc/docbuild/modules/ScopeJS.html'
--- doc/docbuild/modules/ScopeJS.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/modules/ScopeJS.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,230 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>ScopeJS - Javascript Scopes API</title>
+    <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
+    <link rel="icon" href="../assets/favicon.ico">
+    <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
+</head>
+<body class="yui3-skin-sam">
+
+<div id="doc">
+    <div id="hd" class="yui3-g header">
+        <div class="yui3-u-3-4">
+                <h1><img src="../assets/css/logo.png" title="Javascript Scopes API" width="117" height="52"></h1>
+        </div>
+        <div class="yui3-u-1-4 version">
+            <em>API Docs for: 0.1</em>
+        </div>
+    </div>
+    <div id="bd" class="yui3-g">
+
+        <div class="yui3-u-1-4">
+            <div id="docs-sidebar" class="sidebar apidocs">
+                <div id="api-list">
+                    <h2 class="off-left">APIs</h2>
+                    <div id="api-tabview" class="tabview">
+                        <ul class="tabs">
+                            <li><a href="#api-classes">Classes</a></li>
+                            <li><a href="#api-modules">Modules</a></li>
+                        </ul>
+                
+                        <div id="api-tabview-filter">
+                            <input type="search" id="api-filter" placeholder="Type to filter APIs">
+                        </div>
+                
+                        <div id="api-tabview-panel">
+                            <ul id="api-classes" class="apis classes">
+                                <li><a href="../classes/ActionMetadata.html">ActionMetadata</a></li>
+                                <li><a href="../classes/ActivationQuery.html">ActivationQuery</a></li>
+                                <li><a href="../classes/CategorisedResult.html">CategorisedResult</a></li>
+                                <li><a href="../classes/Category.html">Category</a></li>
+                                <li><a href="../classes/CategoryRenderer.html">CategoryRenderer</a></li>
+                                <li><a href="../classes/ColumnLayout.html">ColumnLayout</a></li>
+                                <li><a href="../classes/PreviewQuery.html">PreviewQuery</a></li>
+                                <li><a href="../classes/PreviewReply.html">PreviewReply</a></li>
+                                <li><a href="../classes/PreviewWidget.html">PreviewWidget</a></li>
+                                <li><a href="../classes/Result.html">Result</a></li>
+                                <li><a href="../classes/Scope.html">Scope</a></li>
+                                <li><a href="../classes/SearchMetaData.html">SearchMetaData</a></li>
+                                <li><a href="../classes/SearchQuery.html">SearchQuery</a></li>
+                                <li><a href="../classes/SearchReply.html">SearchReply</a></li>
+                            </ul>
+                
+                            <ul id="api-modules" class="apis modules">
+                                <li><a href="../modules/ScopeJS.html">ScopeJS</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="yui3-u-3-4">
+                <div id="api-options">
+                    Show:
+                    <label for="api-show-inherited">
+                        <input type="checkbox" id="api-show-inherited" checked>
+                        Inherited
+                    </label>
+            
+                    <label for="api-show-protected">
+                        <input type="checkbox" id="api-show-protected">
+                        Protected
+                    </label>
+            
+                    <label for="api-show-private">
+                        <input type="checkbox" id="api-show-private">
+                        Private
+                    </label>
+                    <label for="api-show-deprecated">
+                        <input type="checkbox" id="api-show-deprecated">
+                        Deprecated
+                    </label>
+            
+                </div>
+            
+            <div class="apidocs">
+                <div id="docs-main">
+                    <div class="content">
+<h1>ScopeJS Module</h1>
+<div class="box clearfix meta">
+
+
+        <div class="foundat">
+            Defined in: <a href="../files/_home_alex_dev_work_webapps_branches_scopes_doc_src_bindings_index.js.html#l25"><code>&#x2F;home&#x2F;alex&#x2F;dev&#x2F;work&#x2F;webapps&#x2F;branches&#x2F;scopes&#x2F;doc&#x2F;src&#x2F;bindings&#x2F;index.js:25</code></a>
+        </div>
+
+</div>
+
+
+<div class="box intro">
+    <p>Metadata passed to scopes for preview and activation</p>
+
+</div>
+
+    <div class="example">
+        <h4>Example:</h4>
+        <div class="example-content">
+            <pre class="code prettyprint"><code> var scopes = require('unity-js-scopes')
+ function on_preview(result, action_metadata) {
+   return new scopes.lib.preview_query(
+     result,
+     action_metadata,
+     // run
+     function(preview_reply) {},
+     // cancelled
+     function() {});
+ }
+ scopes.self.initialize(
+  {}
+  ,
+  {
+    run: function() { },
+    start: function(scope_id) { },
+    preview: on_preview,
+  }
+);</code></pre>
+
+        </div>
+    </div>
+
+<div class="yui3-g">
+    <div class="yui3-u-1-2">
+            <p>This module provides the following classes:</p>
+
+            <ul class="module-classes">
+                <li class="module-class">
+                    <a href="../classes/ActionMetadata.html">
+                        ActionMetadata
+                    </a>
+                </li>
+                <li class="module-class">
+                    <a href="../classes/ActivationQuery.html">
+                        ActivationQuery
+                    </a>
+                </li>
+                <li class="module-class">
+                    <a href="../classes/CategorisedResult.html">
+                        CategorisedResult
+                    </a>
+                </li>
+                <li class="module-class">
+                    <a href="../classes/Category.html">
+                        Category
+                    </a>
+                </li>
+                <li class="module-class">
+                    <a href="../classes/CategoryRenderer.html">
+                        CategoryRenderer
+                    </a>
+                </li>
+                <li class="module-class">
+                    <a href="../classes/ColumnLayout.html">
+                        ColumnLayout
+                    </a>
+                </li>
+                <li class="module-class">
+                    <a href="../classes/PreviewQuery.html">
+                        PreviewQuery
+                    </a>
+                </li>
+                <li class="module-class">
+                    <a href="../classes/PreviewReply.html">
+                        PreviewReply
+                    </a>
+                </li>
+                <li class="module-class">
+                    <a href="../classes/PreviewWidget.html">
+                        PreviewWidget
+                    </a>
+                </li>
+                <li class="module-class">
+                    <a href="../classes/Result.html">
+                        Result
+                    </a>
+                </li>
+                <li class="module-class">
+                    <a href="../classes/Scope.html">
+                        Scope
+                    </a>
+                </li>
+                <li class="module-class">
+                    <a href="../classes/SearchMetaData.html">
+                        SearchMetaData
+                    </a>
+                </li>
+                <li class="module-class">
+                    <a href="../classes/SearchQuery.html">
+                        SearchQuery
+                    </a>
+                </li>
+                <li class="module-class">
+                    <a href="../classes/SearchReply.html">
+                        SearchReply
+                    </a>
+                </li>
+            </ul>
+    </div>
+
+    <div class="yui3-u-1-2">
+    </div>
+</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+<script src="../assets/js/yui-prettify.js"></script>
+<script src="../assets/../api.js"></script>
+<script src="../assets/js/api-filter.js"></script>
+<script src="../assets/js/api-list.js"></script>
+<script src="../assets/js/api-search.js"></script>
+<script src="../assets/js/apidocs.js"></script>
+</body>
+</html>

=== added file 'doc/docbuild/modules/index.html'
--- doc/docbuild/modules/index.html	1970-01-01 00:00:00 +0000
+++ doc/docbuild/modules/index.html	2015-10-23 18:57:47 +0000
@@ -0,0 +1,10 @@
+<!doctype html>
+<html>
+    <head>
+        <title>Redirector</title>
+        <meta http-equiv="refresh" content="0;url=../">
+    </head>
+    <body>
+        <a href="../">Click here to redirect</a>
+    </body>
+</html>

=== added file 'doc/generate-doc.py'
--- doc/generate-doc.py	1970-01-01 00:00:00 +0000
+++ doc/generate-doc.py	2015-10-23 18:57:47 +0000
@@ -0,0 +1,164 @@
+#!/usr/bin/python3
+
+# Copyright (C) 2015 Canonical Ltd.
+
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA  02110-1301  USA
+
+import os
+import subprocess
+import sys
+import shutil
+
+def usage():
+    print("generate-doc.py SOURCE_DIRECTORY TARGET_DOC_DIRECTORY")
+
+if len(sys.argv) != 3:
+    usage()
+    sys.exit(1)
+
+source_directory = sys.argv[1]
+target_doc_directory = sys.argv[2]
+
+current_folder = os.path.dirname(os.path.realpath(__file__))
+if len(target_doc_directory) == 0:
+    target_doc_directory = current_folder
+
+yui_install = subprocess.check_output(['which', 'yuidoc'])
+
+if len(yui_install) == 0:
+    print("Please install yuidocjs: sudo apt-get \
+    install npm nodejs-legacy && sudo npm -g install yuidocjs")
+    sys.exit(1)
+
+yuidoc_config = os.path.join(current_folder, 'yuidoc.json')
+
+if not os.path.exists(yuidoc_config):
+    print("Could not find the yui configuration file path")
+    sys.exit(1)
+
+def generate_js_file(filename):
+    content = open(filename).read()
+    if not str.find(content, '--doc:class'):
+        return
+
+    import re
+
+    class_re = "doc:class\s([a-zA-Z]+)(.*)--/doc:class"
+    r = re.search(class_re, content, re.MULTILINE|re.DOTALL)
+
+    if not r:
+        print("Skipping " + filename)
+        return
+
+    class_name = r.group(1).strip()
+    class_doc = r.group(2).strip()
+
+    js_file_content_template = """/**
+ {}
+ {}*/
+function {}(){{}}
+
+{}.prototype = {{
+{}
+}};
+"""
+    member_re = r"^--doc:member(.*?)--/doc:member"
+    members = re.findall(member_re, content, re.MULTILINE|re.DOTALL)
+
+    constructor_re = "doc:constructor(.*)--/doc:constructor"
+    r = re.search(constructor_re, content, re.MULTILINE|re.DOTALL)
+    constructor_doc = ''
+    if r:
+        constructor_doc = r.group(1).strip()
+
+    js_file_content = js_file_content_template.format(
+        class_doc,
+        constructor_doc,
+        class_name,
+        class_name,
+        ",\n".join(["/**\n" + member[:member.find('--doc:/member')].strip() + "\n*/\n" + member[member.find('--doc:/member')+len('--doc:/member'):].strip() for member in members])
+        )
+
+    path, name = os.path.split(filename)
+    basename, ext = os.path.splitext(name)
+
+    open(os.path.join(path, basename) + '.js', "w+").write(js_file_content)
+
+def generate_js_files(source_folder):
+    import glob
+    header_file_pattern = os.path.join(source_folder, '*.h')
+    header_files = glob.glob(header_file_pattern)
+    for header_file in header_files:
+        print('processing ' + header_file)
+        f = os.path.join(source_folder, header_file)
+        generate_js_file(f)
+
+generate_js_files(source_directory)
+
+yuidoc_command_line = 'yuidoc -o {} -c {} {}'.format(target_doc_directory, yuidoc_config, os.path.join(source_directory, ".."))
+print(yuidoc_command_line)
+result = subprocess.check_call(yuidoc_command_line.split(' '))
+
+if result > 0:
+    sys.exit(1)
+
+def patch_yui_files_docs(doc_root_folder):
+    header = """/*
+ * Copyright 2011 Yahoo! Inc.
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of the Yahoo! Inc. nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+"""
+
+    yui_files = """
+assets/js/yui-prettify.js
+assets/js/api-list.js
+assets/js/apidocs.js
+assets/js/api-search.js
+assets/js/api-filter.js
+assets/vendor/prettify/prettify-min.js
+api.js
+"""
+    for f in yui_files.split():
+        fp = os.path.join(doc_root_folder, f)
+        content = ''
+        with open(fp) as o:
+            content = o.read()
+        with open(fp, "w+") as o:
+            o.write(header + content)
+
+patch_yui_files_docs(target_doc_directory)

=== added file 'doc/index.handlebars'
--- doc/index.handlebars	1970-01-01 00:00:00 +0000
+++ doc/index.handlebars	2015-10-23 18:57:47 +0000
@@ -0,0 +1,1 @@
+<h4>Welcome to Ubuntu Javascript Scopes API Docs</h4>

=== added file 'doc/yuidoc.json'
--- doc/yuidoc.json	1970-01-01 00:00:00 +0000
+++ doc/yuidoc.json	2015-10-23 18:57:47 +0000
@@ -0,0 +1,8 @@
+{
+    "name": "Javascript Scopes API",
+    "description": "Javascript API for Ubuntu Scopes development",
+    "version": "0.1",
+    "options": {
+        "outdir": "./docsbuild"
+    }
+}

=== modified file 'src/bindings/index.js'
--- src/bindings/index.js	2015-10-14 14:45:12 +0000
+++ src/bindings/index.js	2015-10-23 18:57:47 +0000
@@ -22,9 +22,64 @@
 // Init the first time it is accessed
 var self;
 
+/**
+ * Scope corresponds to the bridge between the ubuntu scope runtime
+ * and the actual scope.
+ * 
+ * A Scope object is not directly constructible but it is automatically created
+ * when the scope module is imported and is accessible through the 'self' exported
+ * member.
+ * 
+ * After the scopes runtime has obtained initialization runtime configurations from
+ * the scope, it calls start(), which allows the scope to intialize itself. This is
+ * followed by a call to run().
+ * 
+ * When the scope should complete its activities, the runtime calls stop().
+ * 
+ * @example
+      var scopes = require('unity-js-scopes')
+      scopes.self
+  
+ * @module ScopeJS
+ * 
+ * 
+ * @class Scope
+ */
 function Scope() {}
 
 Scope.prototype = {
+    /**
+     * This member function is the entry point to setting up a scope's behavior
+     * and configuring it to the runtime scope.
+     *
+     * @method initialize
+     * @param options {Object} A dictionary of options for the scope runtime.
+     *      The option keys are:
+     *         - scope_id: the scope id
+     * @param runtime_config {Object} A dictionary of runtime configuration settings for the scope runtime.
+     *      The configuration keys are:
+     *         - run {Function()}: Callback called by the scopes run time after it has called start() to hand a thread of control to the scope
+     *         - starting {Function(String: scope_id)}: Callback called by the scopes run time after the create function completes
+     *         - stop {Function()}: Callback called by the scopes run time when the scope should shut down
+     *         - search {Function(CannedQuery: canned_query, SearchMetaData: metadata)}: Callback called by the scopes run time when a scope needs to instantiate a query
+     *         - perform_action {Function(Result: result, ActionMetaData: metadata, String: widget_id, String: ation_id)}: Callback invoked when a scope is requested to handle a preview action
+     *         - preview {Function(Result: result, ActionMetaData: metadata)}: Callback invoked when a scope is requested to create a preview for a particular result
+     *
+     * @example
+              var scopes = require('unity-js-scopes')
+              scopes.self.initialize(
+                {}, {
+                  run: function() {}
+                  start: function(scope_id) {
+                    console.log('Starting scope id: '
+                      + scope_id
+                      + ', '
+                      + scopes.self.scope_config)
+                  },
+                  search: function(canned_query, metadata) {}
+                }
+              );
+    */
     initialize: function(options, runtime_config) {
         this._setup_backend();
 
@@ -69,24 +124,52 @@
             this._base = this._scope_binding.scope_base();
         }
     },
+    /**
+     * Returns the directory that stores the scope's configuration files and shared library    
+     *
+     * @property scope_directory
+     */
     get scope_directory() {
         return this._base.scope_directory();
     },
+    /**
+     * Returns a directory that is (exclusively) writable for the scope
+     *
+     * @property cache_directory
+     */
     get cache_directory() {
         return this._base.cache_directory();
     },
+    /**
+     * Returns a tmp directory that is (exclusively) writable for the scope
+     * 
+     * @property tmp_directory
+     */
     get tmp_directory() {
         return this._base.tmp_directory();
     },
+    /**
+     * Returns the scope registry
+     * 
+     * @property registry
+     */
     get registry() {
         return null
     },
+    /**
+     * Returns a dictionary with the scope's current settings
+     * 
+     * @property settings
+     */
     get settings() {
         return this._base.settings();
     },
-    get scope_config() {
-        return this._scope_binding.scope_config();
-    },
+};
+
+ConnectivityStatus = {
+    Unknown: "Unknown",
+    Connected: "Connected",
+    Disconnected: "Disconnected"
 };
 
 var PostLoginAction = {
@@ -99,7 +182,8 @@
 module.exports = {
     lib: lib,
     defs: {
-        PostLoginAction: PostLoginAction
+        PostLoginAction: PostLoginAction,
+        ConnectivityStatus: ConnectivityStatus
     }
 }
 

=== modified file 'src/bindings/src/action-metadata.cc'
--- src/bindings/src/action-metadata.cc	2015-10-08 14:02:02 +0000
+++ src/bindings/src/action-metadata.cc	2015-10-23 18:57:47 +0000
@@ -36,5 +36,5 @@
 
 void ActionMetaData::set(const std::string& key,
                          const unity::scopes::Variant& val) {
-  (*this)[key] = val;;
+  (*this)[key] = val;
 }

=== modified file 'src/bindings/src/action-metadata.h'
--- src/bindings/src/action-metadata.h	2015-10-08 14:02:02 +0000
+++ src/bindings/src/action-metadata.h	2015-10-23 18:57:47 +0000
@@ -23,6 +23,52 @@
 
 #include <v8-cpp.h>
 
+/**
+
+--doc:class ActionMetadata
+ * 
+ * Metadata passed to scopes for preview and activation
+ * 
+ * @module ScopeJS
+ * 
+ * @class ActionMetadata
+--/doc:class
+
+--doc:prototype ActionMetadata
+--doc:member
+ * Check if this ActionMetadata has a hint
+ * @method contains_hint
+ * @param hint {String}
+ * @return Boolean
+--doc:/member
+contains_hint: function(hint) {
+}
+--/doc:member
+
+--doc:member
+ * Set the value of an attribute
+ * @method set
+ * @param key {String}
+ * @param value {String}, {Number} or {Object}
+--doc:/member
+set: function(key, value) {
+}
+--/doc:member
+
+--doc:member
+ * Get the value of an attribute
+ * @method get
+ * @param key {String}
+ * @return {String}, {Number} or {Object}
+--doc:/member
+get: function(key) {
+}
+--/doc:member
+
+--/doc:prototype
+
+ */
+
 class ActionMetaData : public unity::scopes::ActionMetadata
 {
  public:

=== modified file 'src/bindings/src/activation-query.h'
--- src/bindings/src/activation-query.h	2015-10-09 17:00:22 +0000
+++ src/bindings/src/activation-query.h	2015-10-23 18:57:47 +0000
@@ -26,6 +26,84 @@
 
 #include <v8-cpp.h>
 
+/**
+
+--doc:class ActivationQuery
+ * 
+ * Represents an activation request that is executed inside a scope
+ * 
+ * @module ScopeJS
+ * @class ActivationQuery
+--/doc:class
+
+--doc:prototype ActivationQuery
+
+--doc:member
+ * Return response to the activation request
+ * @method activate
+ * @return ActivationResponse
+--doc:/member
+activate: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get the result for this activation request handler
+ * @method result
+ * @return Result
+--doc:/member
+result: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get the metadata for this activation request handler
+ * @method action_metadata
+ * @return ActionMetadata
+--doc:/member
+action_metadata: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get the widget identifier for this activation request handler
+ * @method widget_id
+ * @return String
+--doc:/member
+widget_id: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get the action identifier for this activation request handler
+ * @method action_id
+ * @return String
+--doc:/member
+action_id: function() {
+}
+--/doc:member
+
+--doc:member
+ * Check whether this query is still valid
+ * @method valid
+ * @return Boolean
+--doc:/member
+valid: function() {
+}
+--/doc:member
+
+--doc:member
+ * Returns a dictionary with the scope's current settings
+ * @method settings
+ * @return Dictionary
+--doc:/member
+settings: function() {
+}
+--/doc:member
+
+--/doc:prototype
+ */
+
 class ActivationQuery : public unity::scopes::ActivationQueryBase,
   public std::enable_shared_from_this<ActivationQuery>
 {

=== modified file 'src/bindings/src/addon.cc'
--- src/bindings/src/addon.cc	2015-10-22 13:54:05 +0000
+++ src/bindings/src/addon.cc	2015-10-23 18:57:47 +0000
@@ -340,27 +340,31 @@
 
     v8cpp::Class<SearchQuery> search_query(isolate);
     search_query
-      .set_constructor<std::shared_ptr<CannedQuery>, std::shared_ptr<unity::scopes::SearchMetadata>, v8::Local<v8::Function>, v8::Local<v8::Function>>()
+      .set_constructor<std::shared_ptr<CannedQuery>, std::shared_ptr<SearchMetadata>, v8::Local<v8::Function>, v8::Local<v8::Function>>()
       .add_method("onrun", &SearchQuery::onrun)
       .add_method("oncancelled", &SearchQuery::oncancelled);
 
-    v8cpp::Class<SearchMetaData> search_metadata(isolate);
+    v8cpp::Class<SearchMetadata> search_metadata(isolate);
     search_metadata
-      .add_inheritance<unity::scopes::SearchMetadata>()
-      // unity::scopes::SearchMetadata
-      .add_method("set_cardinality", &unity::scopes::SearchMetadata::set_cardinality)
-      .add_method("cardinality", &unity::scopes::SearchMetadata::cardinality)
-      .add_method("has_location", &unity::scopes::SearchMetadata::has_location)
-      .add_method("set_hint", &unity::scopes::SearchMetadata::set_hint)
-      .add_method("hints", &unity::scopes::SearchMetadata::hints)
-      // QueryMetadata
-      .add_method("locale", &unity::scopes::QueryMetadata::locale)
-      .add_method("form_factor", &unity::scopes::QueryMetadata::form_factor)
-      .add_method("set_internet_connectivity", &unity::scopes::QueryMetadata::set_internet_connectivity)
-      .add_method("internet_connectivity", &unity::scopes::QueryMetadata::internet_connectivity)
-      // SearchMetaData
-      .add_method("set_location", &SearchMetaData::set_location)
-      .add_method("location", &SearchMetaData::location);
+      .set_constructor<v8::FunctionCallbackInfo<v8::Value>>()
+      // SearchMetadata
+      .add_method("set_cardinality", &SearchMetadata::set_cardinality)
+      .add_method("cardinality", &SearchMetadata::cardinality)
+      .add_method("has_location", &SearchMetadata::has_location)
+      .add_method("remove_location", &SearchMetadata::remove_location)
+      .add_method("set_aggregated_keywords", &SearchMetadata::set_aggregated_keywords)
+      .add_method("aggregated_keywords", &SearchMetadata::aggregated_keywords)
+      .add_method("is_aggregated", &SearchMetadata::is_aggregated)
+      .add_method("set_hint", &SearchMetadata::set_hint)
+      .add_method("hints", &SearchMetadata::hints)
+      .add_method("set", &SearchMetadata::set)
+      .add_method("get", &SearchMetadata::get)
+      .add_method("set_location", &SearchMetadata::set_location)
+      .add_method("location", &SearchMetadata::location)
+      .add_method("locale", &SearchMetadata::locale)
+      .add_method("form_factor", &SearchMetadata::form_factor)
+      .add_method("set_internet_connectivity", &SearchMetadata::set_internet_connectivity)
+      .add_method("internet_connectivity", &SearchMetadata::internet_connectivity);
 
     v8cpp::Class<OnlineAccountClient> online_account_client(isolate);
     online_account_client

=== modified file 'src/bindings/src/categorised-result.h'
--- src/bindings/src/categorised-result.h	2015-10-13 05:41:53 +0000
+++ src/bindings/src/categorised-result.h	2015-10-23 18:57:47 +0000
@@ -23,6 +23,225 @@
 
 #include <v8-cpp.h>
 
+/**
+
+--doc:class CategorisedResult
+ * 
+ * A result, including the category it belongs to.
+ * 
+ * @module ScopeJS
+ * @class CategorisedResult
+--/doc:class
+
+--doc:constructor
+ *
+ * @constructor
+ * @param category The category for the result.
+--/doc:constructor
+
+--doc:prototype CategorisedResult
+
+--doc:member
+ * Updates the category of this result.
+ * @method set_category
+ * @param category The category for the result.
+--doc:/member
+set_category: function(Category: category) {
+}
+--/doc:member
+
+--doc:member
+ * Get the category instance this result belongs to.
+ * @method category
+ * @return {Category} The category instance.
+--doc:/member
+category: function() {
+}
+--/doc:member
+
+--doc:member
+ * This method is meant to be used by aggregator scopes which want to modify
+ * results they receive, but want to keep a copy of the original result so
+ * that they can be correctly handled by the original scopes
+ * who created them when it comes to activation or previews.
+ * Scopes middleware will automatically pass the correct inner stored result
+ * to the activation or preview request handler
+ * 
+ * @method store
+ * @param {Result} The original result to store within this result.
+ * @param {Boolean} intercept_activation True if this scope should receive activation and preview requests.
+--doc:/member
+store: function({Result}: result, {Boolean}: intercept_activation) {
+}
+--/doc:member
+
+--doc:member
+ * Check if this Result instance has a stored result.
+ * @method has_stored_result
+ * @return {Boolean} True if there is a stored result
+--doc:/member
+has_stored_result: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get a stored result.
+ * @method retrieve
+ * @return {Result} stored result
+--doc:/member
+retrieve: function() {
+}
+--/doc:member
+
+--doc:member
+ * Set the "uri" attribute of this result.
+ * @method set_uri
+ * @param uri {String}
+--doc:/member
+set_uri: function(uri) {
+}
+--/doc:member
+
+--doc:member
+ * Set the "title" attribute of this result.
+ * @method set_title
+ * @param title {String}
+--doc:/member
+set_title: function(title) {
+}
+--/doc:member
+
+--doc:member
+ * Set the "art" attribute of this result.
+ * @method set_art
+ * @param art {String}
+--doc:/member
+set_art: function(art) {
+}
+--/doc:member
+
+--doc:member
+ * Set the "dnd_uri" attribute of this result.
+ * @method set_dnd_uri
+ * @param dnd_uri {String}
+--doc:/member
+set_dnd_uri: function(dnd_uri) {
+}
+--/doc:member
+
+--doc:member
+ * Indicates to the receiver that this scope should intercept
+ * activation requests for this result.
+ * By default, a scope receives preview requests for the results it
+ * creates, but does not receive activation requests (they are handled
+ * directly by the shell). Intercepting activation implies intercepting
+ * preview requests as well; this is important for scopes that forward
+ * results from other scopes and call set_intercept_activation() on these scopes.
+ * A scope that sets intercept activation flag for a result should re-implement
+ * Scope.activate() and provide an implementation of ActivationQuery that
+ * handles the actual activation. If not called, the result will be activated
+ * directly by the Unity shell whithout involving the scope, assuming an appropriate
+ * URI schema handler is present on the system.
+ * 
+ * @method set_intercept_activation
+--doc:/member
+set_intercept_activation: function() {
+}
+--/doc:member
+
+--doc:member
+ * Check if this result should be activated directly by the shell
+ * because the scope doesn't handle activation of this result.
+ * @method direct_activation
+ * @return {Boolean} True if this result needs to be activated directly.
+--doc:/member
+direct_activation: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get the "uri" property of this Result.
+ * This method returns an empty string if this attribute is not of type String.
+ * @method uri
+ * @return {String} The value of "uri" or the empty string.
+--doc:/member
+uri: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get the "title" property of this Result.
+ * This method returns an empty string if this attribute is not of type String.
+ * @method title
+ * @return {String} The value of "title" or the empty string.
+--doc:/member
+title: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get the "art" property of this Result.
+ * This method returns an empty string if this attribute is not of type String.
+ * @method art
+ * @return {String} The value of "art" or the empty string.
+--doc:/member
+art: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get the "dnd_uri" property of this Result.
+ * This method returns an empty string if this attribute is not of type String.
+ * @method dnd_uri
+ * @return {String} The value of "dnd_uri" or the empty string.
+--doc:/member
+dnd_uri: function() {
+}
+--/doc:member
+
+--doc:member
+ * Check if this Result has an attribute.
+ * @method contains
+ * @param key The attribute name.
+ * @return {Boolean} True if the attribute is set.
+--doc:/member
+contains: function(key) {
+}
+--/doc:member
+
+--doc:member
+ * Check if this result is an online account login result.
+ * @method is_account_login_result
+ * @return {Boolean} True if this result is an online account login result.
+--doc:/member
+is_account_login_result: function() {
+}
+--/doc:member
+
+--doc:member
+ * Gets the value of a custom metadata attribute.
+ * @method get
+ * @param key {String} The name of the attribute.
+ * @return Attribute value or null
+--doc:/member
+get: function(key) {
+}
+--/doc:member
+
+--doc:member
+ * Sets the value of a custom metadata attribute.
+ * @method set
+ * @param key {String} The name of the attribute.
+ * @param value The value of the attribute.
+--doc:/member
+set: function(key, value) {
+}
+--/doc:member
+
+--/doc:prototype
+
+ */
+
 class CategorisedResult : public unity::scopes::CategorisedResult
 {
  public:

=== added file 'src/bindings/src/category-renderer.h'
--- src/bindings/src/category-renderer.h	1970-01-01 00:00:00 +0000
+++ src/bindings/src/category-renderer.h	2015-10-23 18:57:47 +0000
@@ -0,0 +1,48 @@
+de/*
+ * Copyright 2015 Canonical Ltd.
+ *
+ * This file is part of unity-js-scopes.
+ *
+ * unity-js-scopes is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3.
+ *
+ * unity-js-scopes is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+
+--doc:class CategoryRenderer
+ * 
+ * A category renderer template in JSON format.
+ * 
+ * @module ScopeJS
+ * @class CategoryRenderer
+--/doc:class
+
+--doc:constructor
+ * 
+ * @constructor
+ * @param json_text Renderer template in JSON format
+--/doc:constructor
+
+--doc:prototype CategoryRenderer
+--doc:member
+ * Returns complete renderer template definition in JSON format.
+ * @method data
+ * @return String The renderer template (JSON)
+--doc:/member
+data: function() {
+}
+--/doc:member
+
+--/doc:prototype
+
+ */
+

=== added file 'src/bindings/src/category.h'
--- src/bindings/src/category.h	1970-01-01 00:00:00 +0000
+++ src/bindings/src/category.h	2015-10-23 18:57:47 +0000
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2015 Canonical Ltd.
+ *
+ * This file is part of unity-js-scopes.
+ *
+ * unity-js-scopes is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3.
+ *
+ * unity-js-scopes is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+
+--doc:class Category
+ * 
+ * A set of related results returned by a scope
+ *  and displayed within a single pane in the Unity dash.
+ * 
+ * To create a Category, use SearchReply.register_category.
+ * 
+ * @module ScopeJS
+ * @class Category
+--/doc:class
+
+--doc:prototype Category
+
+--doc:member
+ * Get identifier of this Category
+ * @method id
+ * @return String The category identifier.
+--doc:/member
+id: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get title of this Category
+ * @method title
+ * @return String The category title.
+--doc:/member
+title: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get icon of this Category
+ * @method icon
+ * @return String The category icon.
+--doc:/member
+icon: function() {
+}
+--/doc:member
+
+--doc:member
+ * Query to perform when this category is expanded
+ * @method query
+ * @return CannedQuery The expansion query or null.
+--doc:/member
+query: function() {
+}
+--/doc:member
+
+--/doc:prototype
+
+ */
+

=== added file 'src/bindings/src/column-layout.h'
--- src/bindings/src/column-layout.h	1970-01-01 00:00:00 +0000
+++ src/bindings/src/column-layout.h	2015-10-23 18:57:47 +0000
@@ -0,0 +1,77 @@
+de/*
+ * Copyright 2015 Canonical Ltd.
+ *
+ * This file is part of unity-js-scopes.
+ *
+ * unity-js-scopes is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3.
+ *
+ * unity-js-scopes is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+
+--doc:class ColumnLayout
+ * 
+ * Describes a column layout for preview widgets.
+ * 
+ * @module ScopeJS
+ * @class ColumnLayout
+--/doc:class
+
+--doc:constructor
+ * 
+ * @constructor
+ * @param num_of_columns The number of columns for the layout.
+--/doc:constructor
+
+--doc:prototype ColumnLayout
+
+--doc:member
+ * Adds a new column and assigns widgets to it.
+ * @method add_column
+ * @param widget_ids ColumnLayout expects exactly the number of columns passed to the constructor to be created with the add_column method.
+--doc:/member
+add_column: function(Array of Strings: widget_ids) {
+}
+--/doc:member
+
+--doc:member
+ * Get the current number of columns in this layout.
+ * @method size
+ * @return The number of columns added with add_column()
+--doc:/member
+size: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get the number of columns expected by this layout as specified in the constructor.
+ * @method number_of_columns
+ * @return The number of columns expected by this layout.
+--doc:/member
+number_of_columns: function() {
+}
+--/doc:member
+
+--doc:member
+ * Retrieve the list of widgets for given column.
+ * @method column
+ * @param index The index of a column.
+ * @return The widget identifiers for the given column index.
+--doc:/member
+column: function(index) {
+}
+--/doc:member
+
+--/doc:prototype
+
+ */
+

=== modified file 'src/bindings/src/preview-query.h'
--- src/bindings/src/preview-query.h	2015-10-13 17:53:25 +0000
+++ src/bindings/src/preview-query.h	2015-10-23 18:57:47 +0000
@@ -27,6 +27,99 @@
 
 #include <v8-cpp.h>
 
+/**
+
+--doc:class PreviewQuery
+ * 
+ * Represents a particular preview
+ * 
+ * @module ScopeJS
+ * @class PreviewQuery
+ * 
+ * @example
+
+     var scopes = require('unity-js-scopes')
+     function on_preview(result, action_metadata) {
+       return new scopes.lib.preview_query(
+         result,
+         action_metadata,
+         // run
+         function(preview_reply) {},
+         // cancelled
+         function() {});
+     }
+     scopes.self.initialize(
+      {}
+      ,
+      {
+        run: function() { },
+        start: function(scope_id) { },
+        preview: on_preview,
+      }
+    );
+
+--/doc:class
+
+
+--doc:constructor
+ *  
+ * @constructor
+ * @param canned_query CannedQuery
+ * @param action_metadata ActionMetadata
+ * @param run Function({PreviewReply}) Function callback that is to be called by the scope runtime to start the preview.
+              Your implementation of run() can use the provided PreviewReply object to
+              push results for the preview and call finished() on the reply object when
+              you are done with pushing results. You can push results from within run(),
+              in which case the preview implicitly completes when run() returns.
+              Alternatively, run() can store the reply object and return immediately.
+ * @param cancelled Function() Called by the scopes runtime when the query originator cancels a query.
+              Your implementation of this method should ensure that the scope stops
+              processing the current query as soon as possible. Any calls to a `push()` method
+              once a query is cancelled are ignored, so continuing to push after cancellation
+              only wastes CPU cycles.
+--/doc:constructor
+
+--doc:prototype PreviewQuery
+--doc:member
+ * Get result for this preview request
+ * @method result
+ * @return Result
+--doc:/member
+result: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get metadata for this preview request
+ * @method action_metadata
+ * @return ActionMetadata
+--doc:/member
+action_metadata: function() {
+}
+--/doc:member
+
+--doc:member
+ * Check whether this query is still valid
+ * @method valid
+ * @return Boolean
+--doc:/member
+valid: function() {
+}
+--/doc:member
+
+--doc:member
+ * Returns a dictionary with the scope's current settings
+ * @method settings
+ * @return Dictionary
+--doc:/member
+settings: function() {
+}
+--/doc:member
+
+--/doc:prototype
+
+ */
+
 class PreviewQuery : public unity::scopes::PreviewQueryBase,
     public std::enable_shared_from_this<PreviewQuery>
 {

=== modified file 'src/bindings/src/preview-reply.h'
--- src/bindings/src/preview-reply.h	2015-10-13 17:53:25 +0000
+++ src/bindings/src/preview-reply.h	2015-10-23 18:57:47 +0000
@@ -25,6 +25,59 @@
 
 #include <v8-cpp.h>
 
+/**
+
+--doc:class PreviewReply
+ * 
+ * Allows the results of a preview to be sent to the preview requester.
+ * 
+ * @module ScopeJS
+ * 
+ * @class PreviewReply
+--/doc:class
+
+--doc:prototype PreviewReply
+
+--doc:member
+ * Registers a list of column layouts for the current preview
+ * @method register_layout
+ * @param layout {Array of Column layout}
+--doc:/member
+register_layout: function(layout) {
+}
+--/doc:member
+
+--doc:member
+ * Sends widget definitions to the sender of the preview query
+ * @method push
+ * @param widget_list {Array of PreviewWidget}
+--doc:/member
+push: function(widget_list) {
+}
+--/doc:member
+
+--doc:member
+ * Informs the source of a query that the query results are complete
+ * @method finished
+ * @return Boolean
+--doc:/member
+finished: function() {
+}
+--/doc:member
+
+--doc:member
+ * Informs the source of a query that the query was terminated due to an error
+ * @method error
+ * @return error String error
+--doc:/member
+error: function(error) {
+}
+--/doc:member
+
+--/doc:prototype
+
+ */
+
 class PreviewReply
 {
  public:

=== modified file 'src/bindings/src/preview-widget.h'
--- src/bindings/src/preview-widget.h	2015-10-14 16:08:57 +0000
+++ src/bindings/src/preview-widget.h	2015-10-23 18:57:47 +0000
@@ -23,6 +23,105 @@
 
 #include <v8-cpp.h>
 
+/**
+
+--doc:class PreviewWidget
+ * 
+ * A widget for a preview.
+ * 
+ * @module ScopeJS
+ * 
+ * @class PreviewWidget
+--/doc:class
+
+--doc:prototype PreviewWidget
+
+--doc:member
+ * Adds an attribute definition and its value
+ * @method add_attribute_value
+ * @param key {String} Attribute definition
+ * @param value {String}, {Number}, {Object}. The value can be a string, number, object
+--doc:/member
+add_attribute_value: function(key, value) {
+}
+--/doc:member
+
+--doc:member
+ * Adds an attribute definition using a component mapping
+ * @method add_attribute_mapping
+ * @param key {String} Attribute definition
+ * @param value {String} Value
+--doc:/member
+add_attribute_mapping: function(key, value) {
+}
+--/doc:member
+
+--doc:member
+ * Adds a widget into expandable widget
+ * @method add_widget
+ * @param widget {PreviewWidget} The widget that needs to be added
+--doc:/member
+add_widget: function(widget) {
+}
+--/doc:member
+
+--doc:member
+ * Get the identifier of this widget
+ * @method id
+ * @return Id {String}
+--doc:/member
+id: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get type name of this widget
+ * @method widget_type
+ * @return {String} Widget type
+--doc:/member
+widget_type: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get the components of this widget
+ * @method attribute_mappings
+ * @return Dictionary of widget components
+--doc:/member
+attribute_mappings: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get the attributes of this widget
+ * @method attribute_values
+ * @return Object corresponding to attributes of this widget
+--doc:/member
+attribute_values: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get widgets of 'expandable' widget
+ * @method widgets
+ * @return List of PreviewWidget
+--doc:/member
+widgets: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get a JSON representation of this widget
+ * @method data
+ * @return String representation of widget
+--doc:/member
+data: function() {
+}
+--/doc:member
+
+--/doc:prototype
+ */
+
 class PreviewWidget
 {
  public:

=== modified file 'src/bindings/src/result.h'
--- src/bindings/src/result.h	2015-10-09 17:00:22 +0000
+++ src/bindings/src/result.h	2015-10-23 18:57:47 +0000
@@ -25,6 +25,170 @@
 
 #include "common.h"
 
+/**
+
+--doc:class Result
+ * 
+ * The attributes of a result returned by a Scope
+ * 
+ * The Result API provides convenience methods for some typical attributes (title, art), but scopes are free to add and use any custom attributes with set/get methods. The only required attribute is 'uri' and it must not be empty before calling Reply.push().
+ *
+ * @module ScopeJS
+ * @class Result
+--/doc:class
+
+--doc:prototype Result
+
+--doc:member
+ * Check if this Result instance has a stored result
+ * @method has_stored_result
+ * @return {Boolean}
+--doc:/member
+has_stored_result: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get a stored result
+ * @method retrieve
+ * @return {Result}
+--doc:/member
+retrieve: function() {
+}
+--/doc:member
+
+--doc:member
+ * Set the "uri" attribute of this result.
+ * @method set_uri
+ * @param uri {String}
+--doc:/member
+set_uri: function(uri) {
+}
+--/doc:member
+
+--doc:member
+ * Set the "title" attribute of this result.
+ * @method set_title
+ * @param title {String}
+--doc:/member
+set_title: function(title) {
+}
+--/doc:member
+
+--doc:member
+ * Set the "art" attribute of this result.
+ * @method set_art
+ * @param art {String}
+--doc:/member
+set_art: function(art) {
+}
+--/doc:member
+
+--doc:member
+ * Set the "dnd_uri" attribute of this result.
+ * @method set_dnd_uri
+ * @param dnd_uri {String}
+--doc:/member
+set_dnd_uri: function(dnd_uri) {
+}
+--/doc:member
+
+--doc:member
+ * Indicates to the receiver that this scope should intercept activation requests for this result
+ * @method set_intercept_activation
+--doc:/member
+set_intercept_activation: function() {
+}
+--/doc:member
+
+--doc:member
+ * Check if this result should be activated directly by the shell because the scope doesn't handle activation of this result
+ * @method direct_activation
+ * @return {Boolean}
+--doc:/member
+direct_activation: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get the "uri" property of this Result
+ * @method uri
+ * @return {String}
+--doc:/member
+uri: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get the "title" property of this Result
+ * @method title
+ * @return {String}
+--doc:/member
+title: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get the "art" property of this Result
+ * @method art
+ * @return {String}
+--doc:/member
+art: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get the "dnd_uri" property of this Result
+ * @method dnd_uri
+ * @return {String}
+--doc:/member
+dnd_uri: function() {
+}
+--/doc:member
+
+--doc:member
+ * Check if this Result has an attribute
+ * @method contains
+ * @return {Boolean}
+--doc:/member
+contains: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get the value of an attribute
+ * @method value
+ * @param value {String}
+ * @return {Dictonary}
+--doc:/member
+value: function(value) {
+}
+--/doc:member
+
+--doc:member
+ * Set the value of an attribute
+ * @method set
+ * @param key {String}
+ * @param value {String}
+--doc:/member
+set: function(key, value) {
+}
+--/doc:member
+
+--doc:member
+ * Get the value of an attribute
+ * @method get
+ * @param key {String}
+ * @return {String}, {Number} or {Object}
+--doc:/member
+get: function(key) {
+}
+--/doc:member
+
+--/doc:prototype
+
+ */
+
 class Result : public unity::scopes::Result
 {
  public:

=== modified file 'src/bindings/src/scope-base.cc'
--- src/bindings/src/scope-base.cc	2015-10-15 17:28:56 +0000
+++ src/bindings/src/scope-base.cc	2015-10-23 18:57:47 +0000
@@ -113,8 +113,8 @@
     std::shared_ptr<CannedQuery> q(
         new CannedQuery(query));
 
-    std::shared_ptr<SearchMetaData> m(
-      new SearchMetaData(metadata));
+    std::shared_ptr<SearchMetadata> m(
+      new SearchMetadata(metadata));
 
     v8::Local<v8::Function> search_callback =
         v8cpp::to_local<v8::Function>(isolate_, search_callback_);

=== modified file 'src/bindings/src/search-metadata.cc'
--- src/bindings/src/search-metadata.cc	2015-10-09 17:00:22 +0000
+++ src/bindings/src/search-metadata.cc	2015-10-23 18:57:47 +0000
@@ -18,18 +18,137 @@
 
 #include "search-metadata.h"
 
-SearchMetaData::SearchMetaData(const unity::scopes::SearchMetadata& meta_data)
-  : unity::scopes::SearchMetadata(meta_data) {
-}
-
-void SearchMetaData::set_location(
-      std::shared_ptr<unity::scopes::Location> location) {
-  if (location) {
-    unity::scopes::SearchMetadata::set_location(*location);
-  }
-}
-
-std::shared_ptr<unity::scopes::Location> SearchMetaData::location() const {
-  return std::shared_ptr<unity::scopes::Location>(
-      new unity::scopes::Location(unity::scopes::SearchMetadata::location()));
+#include "common.h"
+
+namespace {
+
+unity::scopes::QueryMetadata::ConnectivityStatus
+connectivity_status_from_string(const std::string& connectivity_status) {
+  if (connectivity_status == "Unknown") {
+    return unity::scopes::QueryMetadata::Unknown;
+  }
+  if (connectivity_status == "Connected") {
+    return unity::scopes::QueryMetadata::Connected;
+  }
+  if (connectivity_status == "Disconnected") {
+    return unity::scopes::QueryMetadata::Disconnected;
+  }
+  throw std::runtime_error("Invalid connectivity status string");
+}
+
+std::string
+string_from_connectivity_status(unity::scopes::QueryMetadata::ConnectivityStatus connectivity_status) {
+  switch (connectivity_status) {
+  case unity::scopes::QueryMetadata::Unknown:
+    return "Unknown";
+  case unity::scopes::QueryMetadata::Connected:
+    return "Connected";
+  case unity::scopes::QueryMetadata::Disconnected:
+    return "Disconnected";
+  }
+  throw std::runtime_error("Invalid connectivity status string");
+}
+
+}
+
+
+SearchMetadata::SearchMetadata(v8::FunctionCallbackInfo<v8::Value> const& args) {
+  if (args.Length() != 2 || args.Length() != 3) {
+    throw std::runtime_error("Invalid number of arguments");
+  }
+
+  if (args[0]->IsString()) {
+    auto locale =
+      v8cpp::from_v8<std::string>(v8::Isolate::GetCurrent(), args[0]);
+    auto form_factor =
+      v8cpp::from_v8<std::string>(v8::Isolate::GetCurrent(), args[1]);
+
+    metadata_.reset(new unity::scopes::SearchMetadata(locale, form_factor));
+  } else {
+    auto cardinality =
+      v8cpp::from_v8<int>(v8::Isolate::GetCurrent(), args[0]);
+    auto locale =
+      v8cpp::from_v8<std::string>(v8::Isolate::GetCurrent(), args[1]);
+    auto form_factor =
+      v8cpp::from_v8<std::string>(v8::Isolate::GetCurrent(), args[2]);
+
+    metadata_.reset(new unity::scopes::SearchMetadata(cardinality, locale, form_factor));
+  }
+}
+
+SearchMetadata::SearchMetadata(const unity::scopes::SearchMetadata& meta_data)
+  : metadata_(new unity::scopes::SearchMetadata(meta_data)) {
+}
+
+void SearchMetadata::set_location(
+      const unity::scopes::Location& location) {
+  metadata_->set_location(location);
+}
+
+unity::scopes::Location SearchMetadata::location() const {
+  return metadata_->location();
+}
+
+void SearchMetadata::set_cardinality(int cardinality) {
+  metadata_->set_cardinality(cardinality);
+}
+ 
+int SearchMetadata::cardinality() const {
+  return metadata_->cardinality();
+}
+
+bool SearchMetadata::has_location() const {
+  return metadata_->has_location();
+}
+
+void SearchMetadata::remove_location() {
+  metadata_->remove_location();
+}
+
+void SearchMetadata::set_aggregated_keywords(std::set<std::string> const& aggregated_keywords) {
+  metadata_->set_aggregated_keywords(aggregated_keywords);
+}
+
+std::set<std::string> SearchMetadata::aggregated_keywords() const {
+  return metadata_->aggregated_keywords();
+}
+
+bool SearchMetadata::is_aggregated() const {
+  return metadata_->is_aggregated();
+}
+
+void SearchMetadata::set_hint(std::string const& key, v8::Local<v8::Value> value) {
+  metadata_->set_hint(key, unity::scopesjs::to_variant(value));
+}
+
+v8::Local<v8::Value> SearchMetadata::hints() const {
+  return unity::scopesjs::from_variant(unity::scopes::Variant(metadata_->hints()));
+}
+
+void SearchMetadata::set(const std::string& k, v8::Local<v8::Value> value) {
+  (*metadata_)[k] = unity::scopesjs::to_variant(value);
+}
+
+v8::Local<v8::Value> SearchMetadata::get(const std::string& k) {
+  return unity::scopesjs::from_variant((*metadata_)[k]);
+}
+
+std::shared_ptr<unity::scopes::SearchMetadata> SearchMetadata::metadata() {
+  return metadata_;
+}
+
+std::string SearchMetadata::locale() const {
+  return metadata_->locale();
+}
+
+std::string SearchMetadata::form_factor() const {
+  return metadata_->form_factor();
+}
+
+void SearchMetadata::set_internet_connectivity(const std::string& internet_connectivity) {
+  metadata_->set_internet_connectivity(connectivity_status_from_string(internet_connectivity));
+}
+
+std::string SearchMetadata::internet_connectivity() const {
+  return string_from_connectivity_status(metadata_->internet_connectivity());
 }

=== modified file 'src/bindings/src/search-metadata.h'
--- src/bindings/src/search-metadata.h	2015-10-09 17:00:22 +0000
+++ src/bindings/src/search-metadata.h	2015-10-23 18:57:47 +0000
@@ -23,13 +23,232 @@
 
 #include <v8-cpp.h>
 
-class SearchMetaData : public unity::scopes::SearchMetadata
+/**
+
+--doc:class SearchMetadata
+ * 
+ * Metadata passed with search requests.
+ * 
+ * Two forms of construction are allowed depending on the number
+ * and types of the parameters:
+ *  - with locale and form factor
+ *  or
+ *  - with cardinality, locale, and form factor.
+ *
+ * @module ScopeJS
+ * @class SearchMetadata
+--/doc:class
+
+--doc:constructor
+ * 
+ * @constructor
+ * @param cardinality maximum number of search results
+ * @param locale locale string, eg. en_EN
+ * @param form_factor form factor name, e.g. phone, desktop, phone-version etc.
+ * @param category The category for the result.
+--/doc:constructor
+
+--doc:prototype SearchMetadata
+
+--doc:member
+ * Set cardinality.
+ * @method set_cardinality
+ * @param cardinality {Int}
+--doc:/member
+set_cardinality: function(cardinality) {
+}
+--/doc:member
+
+--doc:member
+ * Get cardinality.
+ * @method cardinality
+ * @return {Int}
+--doc:/member
+cardinality: function() {
+}
+--/doc:member
+
+--doc:member
+ * Set location.
+ * @method set_location
+ * @param location {Location} data
+--doc:/member
+set_location: function(location) {
+}
+--/doc:member
+
+--doc:member
+ * Get location.
+ * @method location
+ * @return {Location} data representing the current location, including attributes such as city and country.
+--doc:/member
+location: function() {
+}
+--/doc:member
+
+--doc:member
+ * Does the SearchMetadata have a location.
+ * @method has_location
+ * @return {Boolean} True if there is a location property.
+--doc:/member
+has_location: function() {
+}
+--/doc:member
+
+--doc:member
+ * Remove location data entirely.
+ * This method does nothing if no location data is present.
+ * @method remove_location
+--doc:/member
+remove_location: function() {
+}
+--/doc:member
+
+--doc:member
+ * Set the list of scope keywords used to initiate this search request.
+ * @method set_aggregated_keywords
+ * @param aggregated_keywords {Array of String} The list of scope keywords used to initiate this search request.
+--doc:/member
+set_aggregated_keywords: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get the list of scope keywords used to initiate this search request.
+ * @method aggregated_keywords
+ * @return {Array of String} The list of scope keywords used to initiate this search request.
+--doc:/member
+aggregated_keywords: function() {
+}
+--/doc:member
+
+--doc:member
+ * Check if this search request originated from an aggregator scope.
+ * @method is_aggregated
+ * @return {Boolean} True if this search request originated from an aggregator scope.
+--doc:/member
+is_aggregated: function() {
+}
+--/doc:member
+
+--doc:member
+ * Sets a hint.
+ * @method set_hint
+ * @param key {String} The name of the hint.
+ * @param value Hint value
+--doc:/member
+set_hint: function(key, value) {
+}
+--/doc:member
+
+--doc:member
+ * Get all hints.
+ * @method hints
+ * @return {Dictionary}
+--doc:/member
+hints: function() {
+}
+--/doc:member
+
+--doc:member
+ * Check if this SearchMetadata has a hint.
+ * @method contains_hint
+ * @param key {String} The hint name.
+ * @return {Boolean} True if the hint is set.
+--doc:/member
+contains_hint: function(key) {
+}
+--/doc:member
+
+--doc:member
+ * Set the value of an attribute
+ * @method set
+ * @param key {String}
+ * @param value {String}, {Number} or {Object}
+--doc:/member
+set: function(key, value) {
+}
+--/doc:member
+
+--doc:member
+ * Get the value of an attribute
+ * @method get
+ * @param key {String}
+ * @return {String}, {Number} or {Object}
+--doc:/member
+get: function(key) {
+}
+--/doc:member
+
+--doc:member
+ * Get the form factor string.
+ * @method form_factor
+ * @return The form factor string
+--doc:/member
+form_factor: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get the locale string.
+ * @method locale
+ * @return The locale string
+--doc:/member
+locale: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get internet connectivity status.
+ * @method internet_connectivity
+ * @return {ConnectivityStatus} The internet connectivity status.
+--doc:/member
+internet_connectivity: function() {
+}
+--/doc:member
+
+--doc:member
+ * Set internet connectivity status.
+ * @method set_internet_connectivity
+ * @param {ConnectivityStatus} The internet connectivity status.
+--doc:/member
+set_internet_connectivity: function(connectivity_status) {
+}
+--/doc:member
+
+--/doc:prototype
+
+ */
+
+class SearchMetadata
 {
  public:
-  SearchMetaData(const unity::scopes::SearchMetadata&);
-
-  void set_location(std::shared_ptr<unity::scopes::Location> location);
-  std::shared_ptr<unity::scopes::Location> location() const;
+  SearchMetadata(v8::FunctionCallbackInfo<v8::Value> const& args);
+  SearchMetadata(const unity::scopes::SearchMetadata&);
+
+  void set_cardinality(int cardinality);
+  int cardinality() const;
+  bool has_location() const;
+  void remove_location();
+  void set_aggregated_keywords(std::set<std::string> const& aggregated_keywords);
+  std::set<std::string> aggregated_keywords() const;
+  bool is_aggregated() const;
+  void set_hint(std::string const& key, v8::Local<v8::Value> value);
+  v8::Local<v8::Value> hints() const;
+  void set(const std::string& k, v8::Local<v8::Value> value);
+  v8::Local<v8::Value> get(const std::string& k);
+  void set_location(const unity::scopes::Location& location);
+  unity::scopes::Location location() const;
+
+  std::string locale() const;
+  std::string form_factor() const;
+  void set_internet_connectivity(const std::string& internet_connectivity);
+  std::string internet_connectivity() const;
+
+  std::shared_ptr<unity::scopes::SearchMetadata> metadata();
+
+ private:
+  std::shared_ptr<unity::scopes::SearchMetadata> metadata_;
 };
 
 #endif // _UNITY_JS_SEARCH_METADATA_H_

=== modified file 'src/bindings/src/search-query.cc'
--- src/bindings/src/search-query.cc	2015-10-15 17:28:56 +0000
+++ src/bindings/src/search-query.cc	2015-10-23 18:57:47 +0000
@@ -24,10 +24,10 @@
 
 SearchQuery::SearchQuery(
       std::shared_ptr<CannedQuery> query,
-      std::shared_ptr<unity::scopes::SearchMetadata> metadata,
+      std::shared_ptr<SearchMetadata> metadata,
       const v8::Local<v8::Function> &run_callback,
       const v8::Local<v8::Function> &cancelled_callback)
-  : unity::scopes::SearchQueryBase(query->canned_query(), *metadata),
+  : unity::scopes::SearchQueryBase(query->canned_query(), *metadata->metadata()),
     isolate_(v8::Isolate::GetCurrent()),
     run_callback_(v8::Isolate::GetCurrent(), run_callback),
     cancelled_callback_(v8::Isolate::GetCurrent(), cancelled_callback) {

=== modified file 'src/bindings/src/search-query.h'
--- src/bindings/src/search-query.h	2015-10-15 17:28:56 +0000
+++ src/bindings/src/search-query.h	2015-10-23 18:57:47 +0000
@@ -22,15 +22,113 @@
 #include <unity/scopes/SearchQueryBase.h>
 
 #include "canned-query.h"
+#include "search-metadata.h"
 
 #include <v8-cpp.h>
 
+
+/**
+
+--doc:class SearchQuery
+ * 
+ * Represents a particular query
+ *
+ * A scope must return an instance of this class from its implementation of Scope.search().
+ *
+ * @module ScopeJS
+ * 
+ * @class SearchQuery
+ * 
+ * @example
+
+     var scopes = require('unity-js-scopes')
+     function on_search(canned_query, metadata) {
+       return new scopes.lib.search_query(
+         canned_query,
+         metadata,
+         // run
+         function(search_reply) {}
+         // cancelled
+         function() {});
+     }
+     scopes.self.initialize(
+      {}
+      ,
+      {
+        run: function() { },
+        start: function(scope_id) { },
+        search: on_search,
+      }
+    );
+
+--/doc:class
+
+--doc:constructor
+ * 
+ * @constructor
+ * @param canned_query
+ * @param metadata
+ * @param run Function({SearchReply}) Function callback that is to be called by the scope runtime to start the query.
+              Your implementation of run() can use the provided SearchReply object to
+              push results for the query and call finished() on the reply object when
+              you are done with pushing results. You can push results from within run(),
+              in which case the query implicitly completes when run() returns.
+              Alternatively, run() can store the reply object and return immediately.
+ * @param cancelled Function() Called by the scopes runtime when the query originator cancels a query.
+              Your implementation of this method should ensure that the scope stops
+              processing the current query as soon as possible. Any calls to a `push()` method
+              once a query is cancelled are ignored, so continuing to push after cancellation
+              only wastes CPU cycles.
+--/doc:constructor
+
+--doc:prototype SearchQuery
+
+--doc:member
+ * Get a canned query for this search request
+ * @method query
+ * @return CannedQuery
+--doc:/member
+query: function() {
+}
+--/doc:member
+
+--doc:member
+ * Get metadata for this search request
+ * @method search_metadata
+ * @return SearchMetadata
+--doc:/member
+search_metadata: function() {
+}
+--/doc:member
+
+--doc:member
+ * Check whether this query is still valid
+ * @method valid
+ * @return Boolean False if the query is finished or was cancelled ealier.
+--doc:/member
+valid: function() {
+}
+--/doc:member
+
+--doc:member
+ * Returns a dictionary with the scope's current settings
+ * @method settings
+ * @return Dictionary
+--doc:/member
+settings: function() {
+}
+--/doc:member
+
+--/doc:prototype
+
+ */
+
 class SearchQuery : public unity::scopes::SearchQueryBase,
     public std::enable_shared_from_this<SearchQuery>
 {
  public:
   SearchQuery(std::shared_ptr<CannedQuery> query,
-              std::shared_ptr<unity::scopes::SearchMetadata> metadata,
+              std::shared_ptr<SearchMetadata> metadata,
               const v8::Local<v8::Function> &run_callback,
               const v8::Local<v8::Function> &cancelled_callback);
   ~SearchQuery() override;

=== modified file 'src/bindings/src/search-reply.h'
--- src/bindings/src/search-reply.h	2015-10-21 19:53:14 +0000
+++ src/bindings/src/search-reply.h	2015-10-23 18:57:47 +0000
@@ -28,6 +28,69 @@
 #include <v8-cpp.h>
 
 
+/**
+
+--doc:class SearchReply
+ * 
+ * Allows the results of a preview to be sent to the preview requester.
+ * 
+ * @module ScopeJS
+ * @class SearchReply
+--/doc:class
+
+--doc:prototype SearchReply
+
+--doc:member
+ * Register new category and send it to the source of the query
+ * @method register_category
+ * @param id String id
+ * @param title String title
+ * @param icon String icon
+ * @param category_renderer CategoryRenderer
+--doc:/member
+register_category: function(String: id, String: title, String: icon, [optional] CategoryRenderer: category_renderer) {
+}
+--/doc:member
+
+--doc:member
+ * Returns a previously registered category
+ * @method id
+ * @param id
+--doc:/member
+lookup_category: function(String: id) {
+}
+--/doc:member
+
+--doc:member
+ * Sends a single result to the source of a query
+ * @method push
+ * @param result CategorisedResult
+--doc:/member
+push: function(CategorisedResult: result) {
+}
+--/doc:member
+
+--doc:member
+ * Informs the source of a query that the query was terminated due to an error
+ * @method error
+ * @return error String error
+--doc:/member
+error: function(String: error) {
+}
+--/doc:member
+
+--doc:member
+ * Informs the source of a query that the query results are complete
+ * @method finished
+--doc:/member
+finished: function() {
+}
+--/doc:member
+
+--/doc:prototype
+
+ */
+
 class SearchReply
 {
  public:

