fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [12162] update dataTbles from upstream


From: Sigurd Nes
Subject: [Fmsystem-commits] [12162] update dataTbles from upstream
Date: Mon, 13 Oct 2014 07:42:56 +0000

Revision: 12162
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=12162
Author:   sigurdne
Date:     2014-10-13 07:42:53 +0000 (Mon, 13 Oct 2014)
Log Message:
-----------
update dataTbles from upstream

Modified Paths:
--------------
    branches/dev-syncromind/phpgwapi/js/DataTables/bower.json
    branches/dev-syncromind/phpgwapi/js/DataTables/composer.json
    branches/dev-syncromind/phpgwapi/js/DataTables/dataTables.jquery.json
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/css/dataTables.responsive.css
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/css/dataTables.responsive.scss
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/column-control.html
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/custom-renderer.html
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/disable-child-rows.html
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/right-column.html
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/whole-row-control.html
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/display-control/auto.html
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/display-control/classes.html
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/display-control/init-classes.html
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/index.html
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/ajax.html
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/className.html
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/index.html
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/new.html
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/option.html
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/styling/bootstrap.html
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/styling/foundation.html
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/js/dataTables.responsive.min.js
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/Readme.txt
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/css/dataTables.tableTools.css
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/css/dataTables.tableTools.min.css
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/examples/bootstrap.html
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/js/dataTables.tableTools.js
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/js/dataTables.tableTools.min.js
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/swf/copy_csv_xls.swf
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/swf/copy_csv_xls_pdf.swf
    branches/dev-syncromind/phpgwapi/js/DataTables/media/js/jquery.dataTables.js
    
branches/dev-syncromind/phpgwapi/js/DataTables/media/js/jquery.dataTables.min.js
    branches/dev-syncromind/phpgwapi/js/DataTables/package.json

Added Paths:
-----------
    
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/default.html

Modified: branches/dev-syncromind/phpgwapi/js/DataTables/bower.json
===================================================================
--- branches/dev-syncromind/phpgwapi/js/DataTables/bower.json   2014-10-13 
07:35:38 UTC (rev 12161)
+++ branches/dev-syncromind/phpgwapi/js/DataTables/bower.json   2014-10-13 
07:42:53 UTC (rev 12162)
@@ -1,11 +1,27 @@
 {
        "name": "datatables",
-       "version": "1.10.2",
+       "version": "1.10.3",
        "main": [
                "media/js/jquery.dataTables.js",
                "media/css/jquery.dataTables.css"
        ],
        "dependencies": {
                "jquery": ">=1.7.0"
-       }
+       },
+       "license": "MIT",
+       "keywords": [
+               "jquery",
+               "datatables",
+               "table",
+               "javascript",
+               "library"
+       ],
+       "ignore": [
+               "/.*",
+               "examples",
+               "media/unit_testing",
+               "composer.json",
+               "dataTables.jquery.json",
+               "package.json"
+       ]
 }

Modified: branches/dev-syncromind/phpgwapi/js/DataTables/composer.json
===================================================================
--- branches/dev-syncromind/phpgwapi/js/DataTables/composer.json        
2014-10-13 07:35:38 UTC (rev 12161)
+++ branches/dev-syncromind/phpgwapi/js/DataTables/composer.json        
2014-10-13 07:42:53 UTC (rev 12162)
@@ -1,6 +1,6 @@
 {
        "name": "datatables/datatables",
-       "version": "1.10.2",
+       "version": "1.10.3",
        "description": "DataTables is a plug-in for the jQuery Javascript 
library. It is a highly flexible tool, based upon the foundations of 
progressive enhancement, which will add advanced interaction controls to any 
HTML table.", 
        "homepage": "http://www.datatables.net/";,
        "author": "SpryMedia", 

Modified: branches/dev-syncromind/phpgwapi/js/DataTables/dataTables.jquery.json
===================================================================
--- branches/dev-syncromind/phpgwapi/js/DataTables/dataTables.jquery.json       
2014-10-13 07:35:38 UTC (rev 12161)
+++ branches/dev-syncromind/phpgwapi/js/DataTables/dataTables.jquery.json       
2014-10-13 07:42:53 UTC (rev 12162)
@@ -1,6 +1,6 @@
 {
        "name": "DataTables",
-       "version": "1.10.2",
+       "version": "1.10.3",
        "description": "DataTables enhances HTML tables with the ability to 
sort, filter and page the data in the table very easily. It provides a 
comprehensive API and set of configuration options, allowing you to consume 
data from virtually any data source.",
        "homepage": "http://datatables.net/";,
        "docs": "http://datatables.net/";,

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/css/dataTables.responsive.css
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/css/dataTables.responsive.css
  2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/css/dataTables.responsive.css
  2014-10-13 07:42:53 UTC (rev 12162)
@@ -22,6 +22,10 @@
   content: '+';
   background-color: #31b131;
 }
+table.dataTable.dtr-inline.collapsed tbody 
td:first-child.dataTables_empty:before,
+table.dataTable.dtr-inline.collapsed tbody 
th:first-child.dataTables_empty:before {
+  display: none;
+}
 table.dataTable.dtr-inline.collapsed tbody tr.parent td:first-child:before,
 table.dataTable.dtr-inline.collapsed tbody tr.parent th:first-child:before {
   content: '-';

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/css/dataTables.responsive.scss
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/css/dataTables.responsive.scss
 2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/css/dataTables.responsive.scss
 2014-10-13 07:42:53 UTC (rev 12162)
@@ -45,6 +45,10 @@
                                @include control;
                                @include control-open;
                        }
+
+                       &.dataTables_empty:before {
+                               display: none;
+                       }
                }
 
                tr.parent {

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/column-control.html
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/column-control.html
        2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/column-control.html
        2014-10-13 07:42:53 UTC (rev 12162)
@@ -817,6 +817,7 @@
                                                        <li><a 
href="../initialisation/option.html">Configuration option</a></li>
                                                        <li><a 
href="../initialisation/new.html">`new` constructor</a></li>
                                                        <li><a 
href="../initialisation/ajax.html">Ajax data</a></li>
+                                                       <li><a 
href="../initialisation/default.html">Default initialisation</a></li>
                                                </ul>
                                        </div>
 

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/custom-renderer.html
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/custom-renderer.html
       2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/custom-renderer.html
       2014-10-13 07:42:53 UTC (rev 12162)
@@ -822,6 +822,7 @@
                                                        <li><a 
href="../initialisation/option.html">Configuration option</a></li>
                                                        <li><a 
href="../initialisation/new.html">`new` constructor</a></li>
                                                        <li><a 
href="../initialisation/ajax.html">Ajax data</a></li>
+                                                       <li><a 
href="../initialisation/default.html">Default initialisation</a></li>
                                                </ul>
                                        </div>
 

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/disable-child-rows.html
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/disable-child-rows.html
    2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/disable-child-rows.html
    2014-10-13 07:42:53 UTC (rev 12162)
@@ -777,6 +777,7 @@
                                                        <li><a 
href="../initialisation/option.html">Configuration option</a></li>
                                                        <li><a 
href="../initialisation/new.html">`new` constructor</a></li>
                                                        <li><a 
href="../initialisation/ajax.html">Ajax data</a></li>
+                                                       <li><a 
href="../initialisation/default.html">Default initialisation</a></li>
                                                </ul>
                                        </div>
 

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/right-column.html
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/right-column.html
  2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/right-column.html
  2014-10-13 07:42:53 UTC (rev 12162)
@@ -808,6 +808,7 @@
                                                        <li><a 
href="../initialisation/option.html">Configuration option</a></li>
                                                        <li><a 
href="../initialisation/new.html">`new` constructor</a></li>
                                                        <li><a 
href="../initialisation/ajax.html">Ajax data</a></li>
+                                                       <li><a 
href="../initialisation/default.html">Default initialisation</a></li>
                                                </ul>
                                        </div>
 

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/whole-row-control.html
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/whole-row-control.html
     2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/whole-row-control.html
     2014-10-13 07:42:53 UTC (rev 12162)
@@ -810,6 +810,7 @@
                                                        <li><a 
href="../initialisation/option.html">Configuration option</a></li>
                                                        <li><a 
href="../initialisation/new.html">`new` constructor</a></li>
                                                        <li><a 
href="../initialisation/ajax.html">Ajax data</a></li>
+                                                       <li><a 
href="../initialisation/default.html">Default initialisation</a></li>
                                                </ul>
                                        </div>
 

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/display-control/auto.html
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/display-control/auto.html
     2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/display-control/auto.html
     2014-10-13 07:42:53 UTC (rev 12162)
@@ -772,6 +772,7 @@
                                                        <li><a 
href="../initialisation/option.html">Configuration option</a></li>
                                                        <li><a 
href="../initialisation/new.html">`new` constructor</a></li>
                                                        <li><a 
href="../initialisation/ajax.html">Ajax data</a></li>
+                                                       <li><a 
href="../initialisation/default.html">Default initialisation</a></li>
                                                </ul>
                                        </div>
 

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/display-control/classes.html
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/display-control/classes.html
  2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/display-control/classes.html
  2014-10-13 07:42:53 UTC (rev 12162)
@@ -72,7 +72,8 @@
 
                                <ul class="markdown">
                                        <li><code>all</code> - Always 
display</li>
-                                       <li><code>none</code> - Never 
display</li>
+                                       <li><code>none</code> - Don't display 
as a column, but show in the child row</li>
+                                       <li><code>never</code> - Never 
display</li>
                                        <li><code>control</code> - Used for the 
<code>column</code> <a href=
                                        
"//datatables.net/extensions/responsive/reference/option/responsive.details.type"><code
 class=
                                        "option" title="Responsive 
initialisation option">responsive.details.type<span>R</span></code></a>
@@ -82,9 +83,10 @@
                                <p>Please <a 
href="//datatables.net/extensions/responsive/">refer to the Responsive 
manual</a> for
                                further details of these options.</p>
 
-                               <p>This example shows the <code>start 
date</code> and <code>salary</code> columns visible on a desktop
-                               only - <code>office</code> and <code>age</code> 
require a tablet, while the <code>position</code>
-                               column requires a phone in landscape or larger. 
The <code>name</code> column is always visible.</p>
+                               <p>This example shows the <code>salary</code> 
column visible on a desktop only - <code>office</code>
+                               and <code>age</code> require a tablet, while 
the <code>position</code> column requires a phone in
+                               landscape or larger. The <code>name</code> 
column is always visible and the <code>start date</code> is
+                               never visible.</p>
 
                                <p>This can be useful if you wish to change the 
format of the data shown on different devices, for
                                example using a combination of 
<code>mobile</code> and <code>not-mobile</code> on two different columns
@@ -100,7 +102,7 @@
                                                <th 
class="min-phone-l">Position</th>
                                                <th 
class="min-tablet">Office</th>
                                                <th class="min-tablet">Age</th>
-                                               <th class="desktop">Start 
date</th>
+                                               <th class="never">Start 
date</th>
                                                <th class="desktop">Salary</th>
                                                <th class="none">Extn.</th>
                                        </tr>
@@ -208,6 +210,7 @@
                                                        <li><a 
href="../initialisation/option.html">Configuration option</a></li>
                                                        <li><a 
href="../initialisation/new.html">`new` constructor</a></li>
                                                        <li><a 
href="../initialisation/ajax.html">Ajax data</a></li>
+                                                       <li><a 
href="../initialisation/default.html">Default initialisation</a></li>
                                                </ul>
                                        </div>
 

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/display-control/init-classes.html
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/display-control/init-classes.html
     2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/display-control/init-classes.html
     2014-10-13 07:42:53 UTC (rev 12162)
@@ -27,13 +27,13 @@
        $('#example').DataTable( {
                "ajax": "../../../../examples/ajax/data/objects.txt",
                "columns": [
-                       { "data": "name",       className="all" },
-                       { "data": "position",   className="min-phone-l" },
-                       { "data": "office",     className="min-tablet" },
-                       { "data": "extn",       className="min-tablet" },
-                       { "data": "start_date", className="desktop" },
-                       { "data": "salary",     className="desktop" },
-                       { "data": "extn",       className="none" }
+                       { "data": "name",       className: "all" },
+                       { "data": "position",   className: "min-phone-l" },
+                       { "data": "office",     className: "min-tablet" },
+                       { "data": "extn",       className: "min-tablet" },
+                       { "data": "start_date", className: "never" },
+                       { "data": "salary",     className: "desktop" },
+                       { "data": "extn",       className: "none" }
                ]
        } );
 } );
@@ -98,13 +98,13 @@
        $('#example').DataTable( {
                &quot;ajax&quot;: 
&quot;../../../../examples/ajax/data/objects.txt&quot;,
                &quot;columns&quot;: [
-                       { &quot;data&quot;: &quot;name&quot;,       
className=&quot;all&quot; },
-                       { &quot;data&quot;: &quot;position&quot;,   
className=&quot;min-phone-l&quot; },
-                       { &quot;data&quot;: &quot;office&quot;,     
className=&quot;min-tablet&quot; },
-                       { &quot;data&quot;: &quot;extn&quot;,       
className=&quot;min-tablet&quot; },
-                       { &quot;data&quot;: &quot;start_date&quot;, 
className=&quot;desktop&quot; },
-                       { &quot;data&quot;: &quot;salary&quot;,     
className=&quot;desktop&quot; },
-                       { &quot;data&quot;: &quot;extn&quot;,       
className=&quot;none&quot; }
+                       { &quot;data&quot;: &quot;name&quot;,       className: 
&quot;all&quot; },
+                       { &quot;data&quot;: &quot;position&quot;,   className: 
&quot;min-phone-l&quot; },
+                       { &quot;data&quot;: &quot;office&quot;,     className: 
&quot;min-tablet&quot; },
+                       { &quot;data&quot;: &quot;extn&quot;,       className: 
&quot;min-tablet&quot; },
+                       { &quot;data&quot;: &quot;start_date&quot;, className: 
&quot;never&quot; },
+                       { &quot;data&quot;: &quot;salary&quot;,     className: 
&quot;desktop&quot; },
+                       { &quot;data&quot;: &quot;extn&quot;,       className: 
&quot;none&quot; }
                ]
        } );
 } );</code>
@@ -172,6 +172,7 @@
                                                        <li><a 
href="../initialisation/option.html">Configuration option</a></li>
                                                        <li><a 
href="../initialisation/new.html">`new` constructor</a></li>
                                                        <li><a 
href="../initialisation/ajax.html">Ajax data</a></li>
+                                                       <li><a 
href="../initialisation/default.html">Default initialisation</a></li>
                                                </ul>
                                        </div>
 

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/index.html
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/index.html
    2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/index.html
    2014-10-13 07:42:53 UTC (rev 12162)
@@ -34,6 +34,7 @@
                                                        <li><a 
href="./initialisation/option.html">Configuration option</a></li>
                                                        <li><a 
href="./initialisation/new.html">`new` constructor</a></li>
                                                        <li><a 
href="./initialisation/ajax.html">Ajax data</a></li>
+                                                       <li><a 
href="./initialisation/default.html">Default initialisation</a></li>
                                                </ul>
                                        </div>
 

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/ajax.html
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/ajax.html
      2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/ajax.html
      2014-10-13 07:42:53 UTC (rev 12162)
@@ -167,6 +167,7 @@
                                                        <li><a 
href="./option.html">Configuration option</a></li>
                                                        <li><a 
href="./new.html">`new` constructor</a></li>
                                                        <li class="active"><a 
href="./ajax.html">Ajax data</a></li>
+                                                       <li><a 
href="./default.html">Default initialisation</a></li>
                                                </ul>
                                        </div>
 

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/className.html
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/className.html
 2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/className.html
 2014-10-13 07:42:53 UTC (rev 12162)
@@ -770,6 +770,7 @@
                                                        <li><a 
href="./option.html">Configuration option</a></li>
                                                        <li><a 
href="./new.html">`new` constructor</a></li>
                                                        <li><a 
href="./ajax.html">Ajax data</a></li>
+                                                       <li><a 
href="./default.html">Default initialisation</a></li>
                                                </ul>
                                        </div>
 

Added: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/default.html
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/default.html
                           (rev 0)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/default.html
   2014-10-13 07:42:53 UTC (rev 12162)
@@ -0,0 +1,832 @@
+<!DOCTYPE html>
+<html>
+<head>
+       <meta charset="utf-8">
+       <link rel="shortcut icon" type="image/ico" 
href="http://www.datatables.net/favicon.ico";>
+       <meta name="viewport" content="initial-scale=1.0, maximum-scale=2.0">
+
+       <title>Responsive example - Default initialisation</title>
+       <link rel="stylesheet" type="text/css" 
href="../../../../media/css/jquery.dataTables.css">
+       <link rel="stylesheet" type="text/css" 
href="../../css/dataTables.responsive.css">
+       <link rel="stylesheet" type="text/css" 
href="../../../../examples/resources/syntax/shCore.css">
+       <link rel="stylesheet" type="text/css" 
href="../../../../examples/resources/demo.css">
+       <style type="text/css" class="init">
+
+       </style>
+       <script type="text/javascript" language="javascript" 
src="../../../../media/js/jquery.js"></script>
+       <script type="text/javascript" language="javascript" 
src="../../../../media/js/jquery.dataTables.js"></script>
+       <script type="text/javascript" language="javascript" 
src="../../js/dataTables.responsive.js"></script>
+       <script type="text/javascript" language="javascript" 
src="../../../../examples/resources/syntax/shCore.js"></script>
+       <script type="text/javascript" language="javascript" 
src="../../../../examples/resources/demo.js"></script>
+       <script type="text/javascript" language="javascript" class="init">
+
+
+
+$.extend( $.fn.dataTable.defaults, {
+    responsive: true
+} );
+
+$(document).ready(function() {
+       $('#example').DataTable();
+} );
+
+
+
+       </script>
+</head>
+
+<body class="dt-example">
+       <div class="container">
+               <section>
+                       <h1>Responsive example <span>Default 
initialisation</span></h1>
+
+                       <div class="info">
+                               <p>It can often be useful to be able to set a 
default value for DataTables' initialisation options,
+                               providing a common starting point for 
initialisation when working with multiple tables over many pages
+                               or even just on a single page. DataTables 
provides that ability through the
+                               <code>$.fn.dataTable.defaults</code> object 
which can have any of the <a href=
+                               
"//datatables.net/reference/option">initialisation options</a> set.</p>
+
+                               <p>Extending that ability, Responsive can also 
be set to initialise by default, as shown in this
+                               example thorugh the 
<code>$.fn.dataTable.defaults.responsive</code> property. Extending that, <a 
href=
+                               
"//datatables.net/extensions/responsive/reference/option/">all of the 
Responsive options</a> can also
+                               be set using this configuration option (i.e. 
use <code>responsive</code> as an object).</p>
+                       </div>
+
+                       <table id="example" class="display nowrap" 
cellspacing="0" width="100%">
+                               <thead>
+                                       <tr>
+                                               <th>First name</th>
+                                               <th>Last name</th>
+                                               <th>Position</th>
+                                               <th>Office</th>
+                                               <th>Age</th>
+                                               <th>Start date</th>
+                                               <th>Salary</th>
+                                               <th>Extn.</th>
+                                               <th>E-mail</th>
+                                       </tr>
+                               </thead>
+
+                               <tbody>
+                                       <tr>
+                                               <td>Tiger</td>
+                                               <td>Nixon</td>
+                                               <td>System Architect</td>
+                                               <td>Edinburgh</td>
+                                               <td>61</td>
+                                               <td>2011/04/25</td>
+                                               <td>$320,800</td>
+                                               <td>5421</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Garrett</td>
+                                               <td>Winters</td>
+                                               <td>Accountant</td>
+                                               <td>Tokyo</td>
+                                               <td>63</td>
+                                               <td>2011/07/25</td>
+                                               <td>$170,750</td>
+                                               <td>8422</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Ashton</td>
+                                               <td>Cox</td>
+                                               <td>Junior Technical Author</td>
+                                               <td>San Francisco</td>
+                                               <td>66</td>
+                                               <td>2009/01/12</td>
+                                               <td>$86,000</td>
+                                               <td>1562</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Cedric</td>
+                                               <td>Kelly</td>
+                                               <td>Senior Javascript 
Developer</td>
+                                               <td>Edinburgh</td>
+                                               <td>22</td>
+                                               <td>2012/03/29</td>
+                                               <td>$433,060</td>
+                                               <td>6224</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Airi</td>
+                                               <td>Satou</td>
+                                               <td>Accountant</td>
+                                               <td>Tokyo</td>
+                                               <td>33</td>
+                                               <td>2008/11/28</td>
+                                               <td>$162,700</td>
+                                               <td>5407</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Brielle</td>
+                                               <td>Williamson</td>
+                                               <td>Integration Specialist</td>
+                                               <td>New York</td>
+                                               <td>61</td>
+                                               <td>2012/12/02</td>
+                                               <td>$372,000</td>
+                                               <td>4804</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Herrod</td>
+                                               <td>Chandler</td>
+                                               <td>Sales Assistant</td>
+                                               <td>San Francisco</td>
+                                               <td>59</td>
+                                               <td>2012/08/06</td>
+                                               <td>$137,500</td>
+                                               <td>9608</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Rhona</td>
+                                               <td>Davidson</td>
+                                               <td>Integration Specialist</td>
+                                               <td>Tokyo</td>
+                                               <td>55</td>
+                                               <td>2010/10/14</td>
+                                               <td>$327,900</td>
+                                               <td>6200</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Colleen</td>
+                                               <td>Hurst</td>
+                                               <td>Javascript Developer</td>
+                                               <td>San Francisco</td>
+                                               <td>39</td>
+                                               <td>2009/09/15</td>
+                                               <td>$205,500</td>
+                                               <td>2360</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Sonya</td>
+                                               <td>Frost</td>
+                                               <td>Software Engineer</td>
+                                               <td>Edinburgh</td>
+                                               <td>23</td>
+                                               <td>2008/12/13</td>
+                                               <td>$103,600</td>
+                                               <td>1667</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Jena</td>
+                                               <td>Gaines</td>
+                                               <td>Office Manager</td>
+                                               <td>London</td>
+                                               <td>30</td>
+                                               <td>2008/12/19</td>
+                                               <td>$90,560</td>
+                                               <td>3814</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Quinn</td>
+                                               <td>Flynn</td>
+                                               <td>Support Lead</td>
+                                               <td>Edinburgh</td>
+                                               <td>22</td>
+                                               <td>2013/03/03</td>
+                                               <td>$342,000</td>
+                                               <td>9497</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Charde</td>
+                                               <td>Marshall</td>
+                                               <td>Regional Director</td>
+                                               <td>San Francisco</td>
+                                               <td>36</td>
+                                               <td>2008/10/16</td>
+                                               <td>$470,600</td>
+                                               <td>6741</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Haley</td>
+                                               <td>Kennedy</td>
+                                               <td>Senior Marketing 
Designer</td>
+                                               <td>London</td>
+                                               <td>43</td>
+                                               <td>2012/12/18</td>
+                                               <td>$313,500</td>
+                                               <td>3597</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Tatyana</td>
+                                               <td>Fitzpatrick</td>
+                                               <td>Regional Director</td>
+                                               <td>London</td>
+                                               <td>19</td>
+                                               <td>2010/03/17</td>
+                                               <td>$385,750</td>
+                                               <td>1965</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Michael</td>
+                                               <td>Silva</td>
+                                               <td>Marketing Designer</td>
+                                               <td>London</td>
+                                               <td>66</td>
+                                               <td>2012/11/27</td>
+                                               <td>$198,500</td>
+                                               <td>1581</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Paul</td>
+                                               <td>Byrd</td>
+                                               <td>Chief Financial Officer 
(CFO)</td>
+                                               <td>New York</td>
+                                               <td>64</td>
+                                               <td>2010/06/09</td>
+                                               <td>$725,000</td>
+                                               <td>3059</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Gloria</td>
+                                               <td>Little</td>
+                                               <td>Systems Administrator</td>
+                                               <td>New York</td>
+                                               <td>59</td>
+                                               <td>2009/04/10</td>
+                                               <td>$237,500</td>
+                                               <td>1721</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Bradley</td>
+                                               <td>Greer</td>
+                                               <td>Software Engineer</td>
+                                               <td>London</td>
+                                               <td>41</td>
+                                               <td>2012/10/13</td>
+                                               <td>$132,000</td>
+                                               <td>2558</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Dai</td>
+                                               <td>Rios</td>
+                                               <td>Personnel Lead</td>
+                                               <td>Edinburgh</td>
+                                               <td>35</td>
+                                               <td>2012/09/26</td>
+                                               <td>$217,500</td>
+                                               <td>2290</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Jenette</td>
+                                               <td>Caldwell</td>
+                                               <td>Development Lead</td>
+                                               <td>New York</td>
+                                               <td>30</td>
+                                               <td>2011/09/03</td>
+                                               <td>$345,000</td>
+                                               <td>1937</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Yuri</td>
+                                               <td>Berry</td>
+                                               <td>Chief Marketing Officer 
(CMO)</td>
+                                               <td>New York</td>
+                                               <td>40</td>
+                                               <td>2009/06/25</td>
+                                               <td>$675,000</td>
+                                               <td>6154</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Caesar</td>
+                                               <td>Vance</td>
+                                               <td>Pre-Sales Support</td>
+                                               <td>New York</td>
+                                               <td>21</td>
+                                               <td>2011/12/12</td>
+                                               <td>$106,450</td>
+                                               <td>8330</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Doris</td>
+                                               <td>Wilder</td>
+                                               <td>Sales Assistant</td>
+                                               <td>Sidney</td>
+                                               <td>23</td>
+                                               <td>2010/09/20</td>
+                                               <td>$85,600</td>
+                                               <td>3023</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Angelica</td>
+                                               <td>Ramos</td>
+                                               <td>Chief Executive Officer 
(CEO)</td>
+                                               <td>London</td>
+                                               <td>47</td>
+                                               <td>2009/10/09</td>
+                                               <td>$1,200,000</td>
+                                               <td>5797</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Gavin</td>
+                                               <td>Joyce</td>
+                                               <td>Developer</td>
+                                               <td>Edinburgh</td>
+                                               <td>42</td>
+                                               <td>2010/12/22</td>
+                                               <td>$92,575</td>
+                                               <td>8822</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Jennifer</td>
+                                               <td>Chang</td>
+                                               <td>Regional Director</td>
+                                               <td>Singapore</td>
+                                               <td>28</td>
+                                               <td>2010/11/14</td>
+                                               <td>$357,650</td>
+                                               <td>9239</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Brenden</td>
+                                               <td>Wagner</td>
+                                               <td>Software Engineer</td>
+                                               <td>San Francisco</td>
+                                               <td>28</td>
+                                               <td>2011/06/07</td>
+                                               <td>$206,850</td>
+                                               <td>1314</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Fiona</td>
+                                               <td>Green</td>
+                                               <td>Chief Operating Officer 
(COO)</td>
+                                               <td>San Francisco</td>
+                                               <td>48</td>
+                                               <td>2010/03/11</td>
+                                               <td>$850,000</td>
+                                               <td>2947</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Shou</td>
+                                               <td>Itou</td>
+                                               <td>Regional Marketing</td>
+                                               <td>Tokyo</td>
+                                               <td>20</td>
+                                               <td>2011/08/14</td>
+                                               <td>$163,000</td>
+                                               <td>8899</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Michelle</td>
+                                               <td>House</td>
+                                               <td>Integration Specialist</td>
+                                               <td>Sidney</td>
+                                               <td>37</td>
+                                               <td>2011/06/02</td>
+                                               <td>$95,400</td>
+                                               <td>2769</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Suki</td>
+                                               <td>Burks</td>
+                                               <td>Developer</td>
+                                               <td>London</td>
+                                               <td>53</td>
+                                               <td>2009/10/22</td>
+                                               <td>$114,500</td>
+                                               <td>6832</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Prescott</td>
+                                               <td>Bartlett</td>
+                                               <td>Technical Author</td>
+                                               <td>London</td>
+                                               <td>27</td>
+                                               <td>2011/05/07</td>
+                                               <td>$145,000</td>
+                                               <td>3606</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Gavin</td>
+                                               <td>Cortez</td>
+                                               <td>Team Leader</td>
+                                               <td>San Francisco</td>
+                                               <td>22</td>
+                                               <td>2008/10/26</td>
+                                               <td>$235,500</td>
+                                               <td>2860</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Martena</td>
+                                               <td>Mccray</td>
+                                               <td>Post-Sales support</td>
+                                               <td>Edinburgh</td>
+                                               <td>46</td>
+                                               <td>2011/03/09</td>
+                                               <td>$324,050</td>
+                                               <td>8240</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Unity</td>
+                                               <td>Butler</td>
+                                               <td>Marketing Designer</td>
+                                               <td>San Francisco</td>
+                                               <td>47</td>
+                                               <td>2009/12/09</td>
+                                               <td>$85,675</td>
+                                               <td>5384</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Howard</td>
+                                               <td>Hatfield</td>
+                                               <td>Office Manager</td>
+                                               <td>San Francisco</td>
+                                               <td>51</td>
+                                               <td>2008/12/16</td>
+                                               <td>$164,500</td>
+                                               <td>7031</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Hope</td>
+                                               <td>Fuentes</td>
+                                               <td>Secretary</td>
+                                               <td>San Francisco</td>
+                                               <td>41</td>
+                                               <td>2010/02/12</td>
+                                               <td>$109,850</td>
+                                               <td>6318</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Vivian</td>
+                                               <td>Harrell</td>
+                                               <td>Financial Controller</td>
+                                               <td>San Francisco</td>
+                                               <td>62</td>
+                                               <td>2009/02/14</td>
+                                               <td>$452,500</td>
+                                               <td>9422</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Timothy</td>
+                                               <td>Mooney</td>
+                                               <td>Office Manager</td>
+                                               <td>London</td>
+                                               <td>37</td>
+                                               <td>2008/12/11</td>
+                                               <td>$136,200</td>
+                                               <td>7580</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Jackson</td>
+                                               <td>Bradshaw</td>
+                                               <td>Director</td>
+                                               <td>New York</td>
+                                               <td>65</td>
+                                               <td>2008/09/26</td>
+                                               <td>$645,750</td>
+                                               <td>1042</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Olivia</td>
+                                               <td>Liang</td>
+                                               <td>Support Engineer</td>
+                                               <td>Singapore</td>
+                                               <td>64</td>
+                                               <td>2011/02/03</td>
+                                               <td>$234,500</td>
+                                               <td>2120</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Bruno</td>
+                                               <td>Nash</td>
+                                               <td>Software Engineer</td>
+                                               <td>London</td>
+                                               <td>38</td>
+                                               <td>2011/05/03</td>
+                                               <td>$163,500</td>
+                                               <td>6222</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Sakura</td>
+                                               <td>Yamamoto</td>
+                                               <td>Support Engineer</td>
+                                               <td>Tokyo</td>
+                                               <td>37</td>
+                                               <td>2009/08/19</td>
+                                               <td>$139,575</td>
+                                               <td>9383</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Thor</td>
+                                               <td>Walton</td>
+                                               <td>Developer</td>
+                                               <td>New York</td>
+                                               <td>61</td>
+                                               <td>2013/08/11</td>
+                                               <td>$98,540</td>
+                                               <td>8327</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Finn</td>
+                                               <td>Camacho</td>
+                                               <td>Support Engineer</td>
+                                               <td>San Francisco</td>
+                                               <td>47</td>
+                                               <td>2009/07/07</td>
+                                               <td>$87,500</td>
+                                               <td>2927</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Serge</td>
+                                               <td>Baldwin</td>
+                                               <td>Data Coordinator</td>
+                                               <td>Singapore</td>
+                                               <td>64</td>
+                                               <td>2012/04/09</td>
+                                               <td>$138,575</td>
+                                               <td>8352</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Zenaida</td>
+                                               <td>Frank</td>
+                                               <td>Software Engineer</td>
+                                               <td>New York</td>
+                                               <td>63</td>
+                                               <td>2010/01/04</td>
+                                               <td>$125,250</td>
+                                               <td>7439</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Zorita</td>
+                                               <td>Serrano</td>
+                                               <td>Software Engineer</td>
+                                               <td>San Francisco</td>
+                                               <td>56</td>
+                                               <td>2012/06/01</td>
+                                               <td>$115,000</td>
+                                               <td>4389</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Jennifer</td>
+                                               <td>Acosta</td>
+                                               <td>Junior Javascript 
Developer</td>
+                                               <td>Edinburgh</td>
+                                               <td>43</td>
+                                               <td>2013/02/01</td>
+                                               <td>$75,650</td>
+                                               <td>3431</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Cara</td>
+                                               <td>Stevens</td>
+                                               <td>Sales Assistant</td>
+                                               <td>New York</td>
+                                               <td>46</td>
+                                               <td>2011/12/06</td>
+                                               <td>$145,600</td>
+                                               <td>3990</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Hermione</td>
+                                               <td>Butler</td>
+                                               <td>Regional Director</td>
+                                               <td>London</td>
+                                               <td>47</td>
+                                               <td>2011/03/21</td>
+                                               <td>$356,250</td>
+                                               <td>1016</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Lael</td>
+                                               <td>Greer</td>
+                                               <td>Systems Administrator</td>
+                                               <td>London</td>
+                                               <td>21</td>
+                                               <td>2009/02/27</td>
+                                               <td>$103,500</td>
+                                               <td>6733</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Jonas</td>
+                                               <td>Alexander</td>
+                                               <td>Developer</td>
+                                               <td>San Francisco</td>
+                                               <td>30</td>
+                                               <td>2010/07/14</td>
+                                               <td>$86,500</td>
+                                               <td>8196</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Shad</td>
+                                               <td>Decker</td>
+                                               <td>Regional Director</td>
+                                               <td>Edinburgh</td>
+                                               <td>51</td>
+                                               <td>2008/11/13</td>
+                                               <td>$183,000</td>
+                                               <td>6373</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Michael</td>
+                                               <td>Bruce</td>
+                                               <td>Javascript Developer</td>
+                                               <td>Singapore</td>
+                                               <td>29</td>
+                                               <td>2011/06/27</td>
+                                               <td>$183,000</td>
+                                               <td>5384</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                                       <tr>
+                                               <td>Donna</td>
+                                               <td>Snider</td>
+                                               <td>Customer Support</td>
+                                               <td>New York</td>
+                                               <td>27</td>
+                                               <td>2011/01/25</td>
+                                               <td>$112,000</td>
+                                               <td>4226</td>
+                                               <td>address@hidden</td>
+                                       </tr>
+                               </tbody>
+                       </table>
+
+                       <ul class="tabs">
+                               <li class="active">Javascript</li>
+                               <li>HTML</li>
+                               <li>CSS</li>
+                               <li>Ajax</li>
+                               <li>Server-side script</li>
+                       </ul>
+
+                       <div class="tabs">
+                               <div class="js">
+                                       <p>The Javascript shown below is used 
to initialise the table shown in this
+                                       example:</p><code class="multiline 
brush: js;">$.extend( $.fn.dataTable.defaults, {
+    responsive: true
+} );
+
+$(document).ready(function() {
+       $('#example').DataTable();
+} );</code>
+
+                                       <p>In addition to the above code, the 
following Javascript library files are loaded for use in this
+                                       example:</p>
+
+                                       <ul>
+                                               <li><a 
href="../../../../media/js/jquery.js">../../../../media/js/jquery.js</a></li>
+                                               <li><a href=
+                                               
"../../../../media/js/jquery.dataTables.js">../../../../media/js/jquery.dataTables.js</a></li>
+                                               <li><a 
href="../../js/dataTables.responsive.js">../../js/dataTables.responsive.js</a></li>
+                                       </ul>
+                               </div>
+
+                               <div class="table">
+                                       <p>The HTML shown below is the raw HTML 
table element, before it has been enhanced by
+                                       DataTables:</p>
+                               </div>
+
+                               <div class="css">
+                                       <div>
+                                               <p>This example uses a little 
bit of additional CSS beyond what is loaded from the library
+                                               files (below), in order to 
correctly display the table. The additional CSS used is shown
+                                               below:</p><code 
class="multiline brush: js;"></code>
+                                       </div>
+
+                                       <p>The following CSS library files are 
loaded for use in this example to provide the styling of the
+                                       table:</p>
+
+                                       <ul>
+                                               <li><a href=
+                                               
"../../../../media/css/jquery.dataTables.css">../../../../media/css/jquery.dataTables.css</a></li>
+                                               <li><a 
href="../../css/dataTables.responsive.css">../../css/dataTables.responsive.css</a></li>
+                                       </ul>
+                               </div>
+
+                               <div class="ajax">
+                                       <p>This table loads data by Ajax. The 
latest data that has been loaded is shown below. This data
+                                       will update automatically as any 
additional data is loaded.</p>
+                               </div>
+
+                               <div class="php">
+                                       <p>The script used to perform the 
server-side processing for this table is shown below. Please note
+                                       that this is just an example script 
using PHP. Server-side processing scripts can be written in any
+                                       language, using <a 
href="//datatables.net/manual/server-side">the protocol described in the
+                                       DataTables documentation</a>.</p>
+                               </div>
+                       </div>
+               </section>
+       </div>
+
+       <section>
+               <div class="footer">
+                       <div class="gradient"></div>
+
+                       <div class="liner">
+                               <h2>Other examples</h2>
+
+                               <div class="toc">
+                                       <div class="toc-group">
+                                               <h3><a 
href="./index.html">Basic initialisation</a></h3>
+                                               <ul class="toc active">
+                                                       <li><a 
href="./className.html">Class name</a></li>
+                                                       <li><a 
href="./option.html">Configuration option</a></li>
+                                                       <li><a 
href="./new.html">`new` constructor</a></li>
+                                                       <li><a 
href="./ajax.html">Ajax data</a></li>
+                                                       <li class="active"><a 
href="./default.html">Default initialisation</a></li>
+                                               </ul>
+                                       </div>
+
+                                       <div class="toc-group">
+                                               <h3><a 
href="../styling/index.html">Styling</a></h3>
+                                               <ul class="toc">
+                                                       <li><a 
href="../styling/bootstrap.html">Bootstrap styling</a></li>
+                                                       <li><a 
href="../styling/foundation.html">Foundation styling</a></li>
+                                               </ul>
+                                       </div>
+
+                                       <div class="toc-group">
+                                               <h3><a 
href="../display-control/index.html">Display control</a></h3>
+                                               <ul class="toc">
+                                                       <li><a 
href="../display-control/auto.html">Automatic column hiding</a></li>
+                                                       <li><a 
href="../display-control/classes.html">Class control</a></li>
+                                                       <li><a 
href="../display-control/init-classes.html">Assigned class control</a></li>
+                                               </ul>
+                                       </div>
+
+                                       <div class="toc-group">
+                                               <h3><a 
href="../child-rows/index.html">Child rows</a></h3>
+                                               <ul class="toc">
+                                                       <li><a 
href="../child-rows/disable-child-rows.html">Disable child rows</a></li>
+                                                       <li><a 
href="../child-rows/column-control.html">Column controlled child rows</a></li>
+                                                       <li><a 
href="../child-rows/right-column.html">Column control - right</a></li>
+                                                       <li><a 
href="../child-rows/whole-row-control.html">Whole row child row control</a></li>
+                                                       <li><a 
href="../child-rows/custom-renderer.html">Custom child row renderer</a></li>
+                                               </ul>
+                                       </div>
+                               </div>
+
+                               <div class="epilogue">
+                                       <p>Please refer to the <a 
href="http://www.datatables.net";>DataTables documentation</a> for full
+                                       information about its API properties 
and methods.<br>
+                                       Additionally, there are a wide range of 
<a href="http://www.datatables.net/extras";>extras</a> and
+                                       <a 
href="http://www.datatables.net/plug-ins";>plug-ins</a> which extend the 
capabilities of
+                                       DataTables.</p>
+
+                                       <p class="copyright">DataTables 
designed and created by <a href=
+                                       "http://www.sprymedia.co.uk";>SpryMedia 
Ltd</a> &#169; 2007-2014<br>
+                                       DataTables is licensed under the <a 
href="http://www.datatables.net/mit";>MIT license</a>.</p>
+                               </div>
+                       </div>
+               </div>
+       </section>
+</body>
+</html>
\ No newline at end of file

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/index.html
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/index.html
     2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/index.html
     2014-10-13 07:42:53 UTC (rev 12162)
@@ -48,6 +48,7 @@
                                                        <li><a 
href="./option.html">Configuration option</a></li>
                                                        <li><a 
href="./new.html">`new` constructor</a></li>
                                                        <li><a 
href="./ajax.html">Ajax data</a></li>
+                                                       <li><a 
href="./default.html">Default initialisation</a></li>
                                                </ul>
                                        </div>
                                </div>

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/new.html
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/new.html
       2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/new.html
       2014-10-13 07:42:53 UTC (rev 12162)
@@ -779,6 +779,7 @@
                                                        <li><a 
href="./option.html">Configuration option</a></li>
                                                        <li class="active"><a 
href="./new.html">`new` constructor</a></li>
                                                        <li><a 
href="./ajax.html">Ajax data</a></li>
+                                                       <li><a 
href="./default.html">Default initialisation</a></li>
                                                </ul>
                                        </div>
 

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/option.html
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/option.html
    2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/option.html
    2014-10-13 07:42:53 UTC (rev 12162)
@@ -780,6 +780,7 @@
                                                        <li class="active"><a 
href="./option.html">Configuration option</a></li>
                                                        <li><a 
href="./new.html">`new` constructor</a></li>
                                                        <li><a 
href="./ajax.html">Ajax data</a></li>
+                                                       <li><a 
href="./default.html">Default initialisation</a></li>
                                                </ul>
                                        </div>
 

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/styling/bootstrap.html
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/styling/bootstrap.html
        2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/styling/bootstrap.html
        2014-10-13 07:42:53 UTC (rev 12162)
@@ -6,7 +6,7 @@
        <meta name="viewport" content="initial-scale=1.0, maximum-scale=2.0">
 
        <title>Responsive example - Bootstrap styling</title>
-       <link rel="stylesheet" type="text/css" 
href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
+       <link rel="stylesheet" type="text/css" 
href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
        <link rel="stylesheet" type="text/css" 
href="../../../Plugins/integration/bootstrap/3/dataTables.bootstrap.css">
        <link rel="stylesheet" type="text/css" 
href="../../css/dataTables.responsive.css">
        <link rel="stylesheet" type="text/css" 
href="../../../../examples/resources/syntax/shCore.css">
@@ -756,7 +756,7 @@
 
                                        <ul>
                                                <li><a href=
-                                               
"//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css</a></li>
+                                               
"//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css</a></li>
                                                <li><a href=
                                                
"../../../Plugins/integration/bootstrap/3/dataTables.bootstrap.css">../../../Plugins/integration/bootstrap/3/dataTables.bootstrap.css</a></li>
                                                <li><a 
href="../../css/dataTables.responsive.css">../../css/dataTables.responsive.css</a></li>
@@ -793,6 +793,7 @@
                                                        <li><a 
href="../initialisation/option.html">Configuration option</a></li>
                                                        <li><a 
href="../initialisation/new.html">`new` constructor</a></li>
                                                        <li><a 
href="../initialisation/ajax.html">Ajax data</a></li>
+                                                       <li><a 
href="../initialisation/default.html">Default initialisation</a></li>
                                                </ul>
                                        </div>
 

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/styling/foundation.html
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/styling/foundation.html
       2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/examples/styling/foundation.html
       2014-10-13 07:42:53 UTC (rev 12162)
@@ -783,6 +783,7 @@
                                                        <li><a 
href="../initialisation/option.html">Configuration option</a></li>
                                                        <li><a 
href="../initialisation/new.html">`new` constructor</a></li>
                                                        <li><a 
href="../initialisation/ajax.html">Ajax data</a></li>
+                                                       <li><a 
href="../initialisation/default.html">Default initialisation</a></li>
                                                </ul>
                                        </div>
 

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/js/dataTables.responsive.min.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/js/dataTables.responsive.min.js
        2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/Responsive/js/dataTables.responsive.min.js
        2014-10-13 07:42:53 UTC (rev 12162)
@@ -1 +1,17 @@
-(function(e,t,n){var r=function(n,r){"use strict";var 
i=function(e,t){if(!r.versionCheck||!r.versionCheck("1.10.1")){throw"DataTables 
Responsive requires DataTables 1.10.1 or newer"}this.s={dt:new 
r.Api(e),columns:[]};if(this.s.dt.settings()[0].responsive){return}if(t&&typeof 
t.details==="string"){t.details={type:t.details}}this.c=n.extend(true,{},i.defaults,r.defaults.responsive,t);e.responsive=this;this._constructor()};i.prototype={_constructor:function(){var
 t=this;var r=this.s.dt;r.settings()[0]._responsive=this;n(e).on("resize.dtr 
orientationchange.dtr",r.settings()[0].oApi._fnThrottle(function(){t._resize()}));r.on("destroy.dtr",function(){n(e).off("resize.dtr
 orientationchange.dtr")});this.c.breakpoints.sort(function(e,t){return 
e.width<t.width?1:e.width>t.width?-1:0});this._classLogic();this._resizeAuto();this._resize();var
 
i=this.c.details;if(i.type){t._detailsInit();this._detailsVis();r.on("column-visibility.dtr",function(){t._detailsVis()});n(r.table().node()).addClass("dtr-"+i.type)}},_columnsVisiblity:function(e){var
 t=this.s.dt;var r=this.s.columns;var i,s;var o=n.map(r,function(t){return 
t.auto&&t.minWidth===null?false:t.auto===true?"-":n.inArray(e,t.includeIn)!==-1});var
 u=0;for(i=0,s=o.length;i<s;i++){if(o[i]===true){u+=r[i].minWidth}}var 
a=t.table().container().offsetWidth;var 
f=a-u;for(i=0,s=o.length;i<s;i++){if(r[i].control){f-=r[i].minWidth}else 
if(o[i]==="-"){o[i]=f-r[i].minWidth<0?false:true;f-=r[i].minWidth}}var 
l=false;for(i=0,s=r.length;i<s;i++){if(!r[i].control&&!r[i].never&&!o[i]){l=true;break}}for(i=0,s=r.length;i<s;i++){if(r[i].control){o[i]=l}}if(n.inArray(true,o)===-1){o[0]=true}return
 o},_classLogic:function(){var e=this;var t={};var r=this.c.breakpoints;var 
i=this.s.dt.columns().eq(0).map(function(e){var 
t=this.column(e).header().className;return{className:t,includeIn:[],auto:false,control:false,never:t.match(/\bnever\b/)?true:false}});var
 s=function(e,t){var r=i[e].includeIn;if(n.inArray(t,r)===-1){r.push(t)}};var 
o=function(t,n,o,u){var a,f,l;if(!o){i[t].includeIn.push(n)}else 
if(o==="max-"){a=e._find(n).width;for(f=0,l=r.length;f<l;f++){if(r[f].width<=a){s(t,r[f].name)}}}else
 
if(o==="min-"){a=e._find(n).width;for(f=0,l=r.length;f<l;f++){if(r[f].width>=a){s(t,r[f].name)}}}else
 
if(o==="not-"){for(f=0,l=r.length;f<l;f++){if(r[f].name.indexOf(u)===-1){s(t,r[f].name)}}}};i.each(function(e,t){var
 i=e.className.split(" ");var s=false;for(var u=0,a=i.length;u<a;u++){var 
f=n.trim(i[u]);if(f==="all"){s=true;e.includeIn=n.map(r,function(e){return 
e.name});return}else if(f==="none"||f==="never"){s=true;return}else 
if(f==="control"){s=true;e.control=true;return}n.each(r,function(e,n){var 
r=n.name.split("-");var i=new 
RegExp("(min\\-|max\\-|not\\-)?("+r[0]+")(\\-[_a-zA-Z0-9])?");var 
u=f.match(i);if(u){s=true;if(u[2]===r[0]&&u[3]==="-"+r[1]){o(t,n.name,u[1],u[2]+u[3])}else
 
if(u[2]===r[0]&&!u[3]){o(t,n.name,u[1],u[2])}}})}if(!s){e.auto=true}});this.s.columns=i},_detailsInit:function(){var
 e=this;var t=this.s.dt;var 
r=this.c.details;if(r.type==="inline"){r.target="td:first-child"}var 
i=r.target;var s=typeof 
i==="string"?i:"td";n(t.table().body()).on("click",s,function(r){if(!n(t.table().node()).hasClass("collapsed")){return}if(!t.row(n(this).closest("tr")).length){return}if(typeof
 i==="number"){var 
s=i<0?t.columns().eq(0).length+i:i;if(t.cell(this).index().column!==s){return}}var
 
o=t.row(n(this).closest("tr"));if(o.child.isShown()){o.child(false);n(o.node()).removeClass("parent")}else{var
 
u=e.c.details.renderer(t,o[0]);o.child(u,"child").show();n(o.node()).addClass("parent")}})},_detailsVis:function(){var
 e=this;var t=this.s.dt;var r=t.columns().indexes().filter(function(e){var 
r=t.column(e);if(r.visible()){return null}return 
n(r.header()).hasClass("never")?null:e});var 
i=true;if(r.length===0||r.length===1&&this.s.columns[r[0]].control){i=false}if(i){n(t.table().node()).addClass("collapsed");t.rows().eq(0).each(function(n){var
 r=t.row(n);if(r.child()){var 
i=e.c.details.renderer(t,r[0]);if(i===false){r.child.hide()}else{r.child(i,"child").show()}}})}else{n(t.table().node()).removeClass("collapsed");t.rows().eq(0).each(function(e){t.row(e).child.hide()})}},_find:function(e){var
 t=this.c.breakpoints;for(var n=0,r=t.length;n<r;n++){if(t[n].name===e){return 
t[n]}}},_resize:function(){var t=this.s.dt;var r=n(e).width();var 
i=this.c.breakpoints;var s=i[0].name;for(var 
o=i.length-1;o>=0;o--){if(r<=i[o].width){s=i[o].name;break}}var 
u=this._columnsVisiblity(s);t.columns().eq(0).each(function(e,n){t.column(e).visible(u[n])})},_resizeAuto:function(){var
 e=this.s.dt;var 
t=this.s.columns;if(!this.c.auto){return}if(n.inArray(true,n.map(t,function(e){return
 e.auto}))===-1){return}var r=e.table().node().offsetWidth;var i=e.columns;var 
s=e.table().node().cloneNode(false);var 
o=n(e.table().header().cloneNode(false)).appendTo(s);var 
u=n(e.table().body().cloneNode(false)).appendTo(s);e.rows({page:"current"}).indexes().flatten().each(function(t){var
 
r=e.row(t).node().cloneNode(true);if(e.columns(":hidden").flatten().length){n(r).append(e.cells(t,":hidden").nodes().to$().clone())}n(r).appendTo(u)});var
 a=e.columns().header().to$().clone(false).wrapAll("tr").appendTo(o);var 
f=n("<div/>").css({width:1,height:1,overflow:"hidden"}).append(s).insertBefore(e.table().node());e.columns().eq(0).each(function(e){t[e].minWidth=a[e].offsetWidth||0});f.remove()}};i.breakpoints=[{name:"desktop",width:Infinity},{name:"tablet-l",width:1024},{name:"tablet-p",width:768},{name:"mobile-l",width:480},{name:"mobile-p",width:320}];i.defaults={breakpoints:i.breakpoints,auto:true,details:{renderer:function(e,t){var
 r=e.cells(t,":hidden").eq(0).map(function(t){var 
r=n(e.column(t.column).header());var 
i=e.cell(t).index();if(r.hasClass("control")||r.hasClass("never")){return""}var 
s=e.settings()[0];var 
o=s.oApi._fnGetCellData(s,i.row,i.column,"display");return'<li 
data-dtr-index="'+i.column+'">'+'<span 
class="dtr-title">'+r.text()+":"+"</span> "+'<span 
class="dtr-data">'+o+"</span>"+"</li>"}).toArray().join("");return r?n('<ul 
data-dtr-index="'+t+'"/>').append(r):false},target:0,type:"inline"}};var 
s=n.fn.dataTable.Api;s.register("responsive()",function(){return 
this});s.register("responsive.recalc()",function(){this.iterator("table",function(e){if(e._responsive){e._responsive._resizeAuto();e._responsive._resize()}})});s.register("responsive.index()",function(e){e=n(e);return{column:e.data("dtr-index"),row:e.parent().data("dtr-index")}});i.version="1.0.2";n.fn.dataTable.Responsive=i;n.fn.DataTable.Responsive=i;n(t).on("init.dt.dtr",function(e,t,s){if(n(t.nTable).hasClass("responsive")||n(t.nTable).hasClass("dt-responsive")||t.oInit.responsive||r.defaults.responsive){var
 o=t.oInit.responsive;if(o!==false){new i(t,n.isPlainObject(o)?o:{})}}});return 
i};if(typeof 
define==="function"&&define.amd){define(["jquery","datatables"],r)}else 
if(typeof exports==="object"){r(require("jquery"),require("datatables"))}else 
if(jQuery&&!jQuery.fn.dataTable.Responsive){r(jQuery,jQuery.fn.dataTable)}})(window,document)
+/*!
+ Responsive 1.0.2
+ 2014 SpryMedia Ltd - datatables.net/license
+*/
+(function(m,o){var l=function(e,i){var 
h=function(d,a){if(!i.versionCheck||!i.versionCheck("1.10.1"))throw"DataTables 
Responsive requires DataTables 1.10.1 or newer";this.s={dt:new 
i.Api(d),columns:[]};this.s.dt.settings()[0].responsive||(a&&"string"===typeof 
a.details&&(a.details={type:a.details}),this.c=e.extend(!0,{},h.defaults,i.defaults.responsive,a),d.responsive=this,this._constructor())};h.prototype={_constructor:function(){var
 d=this,a=this.s.dt;a.settings()[0]._responsive=this;e(m).on("resize.dtr 
orientationchange.dtr",
+a.settings()[0].oApi._fnThrottle(function(){d._resize()}));a.on("destroy.dtr",function(){e(m).off("resize.dtr
 orientationchange.dtr")});this.c.breakpoints.sort(function(a,c){return 
a.width<c.width?1:a.width>c.width?-1:0});this._classLogic();this._resizeAuto();this._resize();var
 
c=this.c.details;c.type&&(d._detailsInit(),this._detailsVis(),a.on("column-visibility.dtr",function(){d._detailsVis()}),e(a.table().node()).addClass("dtr-"+c.type))},_columnsVisiblity:function(d){var
 a=this.s.dt,c=this.s.columns,
+b,f,g=e.map(c,function(a){return 
a.auto&&null===a.minWidth?!1:!0===a.auto?"-":-1!==e.inArray(d,a.includeIn)}),n=0;b=0;for(f=g.length;b<f;b++)!0===g[b]&&(n+=c[b].minWidth);a=a.table().container().offsetWidth-n;b=0;for(f=g.length;b<f;b++)c[b].control?a-=c[b].minWidth:"-"===g[b]&&(g[b]=0>a-c[b].minWidth?!1:!0,a-=c[b].minWidth);a=!1;b=0;for(f=c.length;b<f;b++)if(!c[b].control&&!c[b].never&&!g[b]){a=!0;break}b=0;for(f=c.length;b<f;b++)c[b].control&&(g[b]=a);-1===e.inArray(!0,g)&&(g[0]=!0);return
 g},_classLogic:function(){var d=
+this,a=this.c.breakpoints,c=this.s.dt.columns().eq(0).map(function(a){a=this.column(a).header().className;return{className:a,includeIn:[],auto:!1,control:!1,never:a.match(/\bnever\b/)?!0:!1}}),b=function(a,b){var
 
d=c[a].includeIn;-1===e.inArray(b,d)&&d.push(b)},f=function(f,e,k,j){if(k)if("max-"===k){j=d._find(e).width;e=0;for(k=a.length;e<k;e++)a[e].width<=j&&b(f,a[e].name)}else
 
if("min-"===k){j=d._find(e).width;e=0;for(k=a.length;e<k;e++)a[e].width>=j&&b(f,a[e].name)}else{if("not-"===k){e=0;for(k=
+a.length;e<k;e++)-1===a[e].name.indexOf(j)&&b(f,a[e].name)}}else 
c[f].includeIn.push(e)};c.each(function(b,c){for(var d=b.className.split(" 
"),j=!1,h=0,l=d.length;h<l;h++){var 
i=e.trim(d[h]);if("all"===i){j=!0;b.includeIn=e.map(a,function(a){return 
a.name});return}if("none"===i||"never"===i){j=!0;return}if("control"===i){j=!0;b.control=!0;return}e.each(a,function(a,b){var
 
e=b.name.split("-"),d=i.match(RegExp("(min\\-|max\\-|not\\-)?("+e[0]+")(\\-[_a-zA-Z0-9])?"));d&&(j=!0,d[2]===e[0]&&d[3]==="-"+
+e[1]?f(c,b.name,d[1],d[2]+d[3]):d[2]===e[0]&&!d[3]&&f(c,b.name,d[1],d[2]))})}j||(b.auto=!0)});this.s.columns=c},_detailsInit:function(){var
 
d=this,a=this.s.dt,c=this.c.details;"inline"===c.type&&(c.target="td:first-child");var
 b=c.target;e(a.table().body()).on("click","string"===typeof 
b?b:"td",function(){if(e(a.table().node()).hasClass("collapsed")&&a.row(e(this).closest("tr")).length){if(typeof
 b==="number"){var 
c=b<0?a.columns().eq(0).length+b:b;if(a.cell(this).index().column!==c)return}c=a.row(e(this).closest("tr"));
+if(c.child.isShown()){c.child(false);e(c.node()).removeClass("parent")}else{var
 
g=d.c.details.renderer(a,c[0]);c.child(g,"child").show();e(c.node()).addClass("parent")}}})},_detailsVis:function(){var
 d=this,a=this.s.dt,c=a.columns().indexes().filter(function(b){var 
c=a.column(b);return 
c.visible()?null:e(c.header()).hasClass("never")?null:b}),b=!0;if(0===c.length||1===c.length&&this.s.columns[c[0]].control)b=!1;b?(e(a.table().node()).addClass("collapsed"),a.rows().eq(0).each(function(b){b=a.row(b);
+if(b.child()){var 
c=d.c.details.renderer(a,b[0]);!1===c?b.child.hide():b.child(c,"child").show()}})):(e(a.table().node()).removeClass("collapsed"),a.rows().eq(0).each(function(b){a.row(b).child.hide()}))},_find:function(d){for(var
 a=this.c.breakpoints,c=0,b=a.length;c<b;c++)if(a[c].name===d)return 
a[c]},_resize:function(){for(var 
d=this.s.dt,a=e(m).width(),c=this.c.breakpoints,b=c[0].name,f=c.length-1;0<=f;f--)if(a<=c[f].width){b=c[f].name;break}var
 g=this._columnsVisiblity(b);d.columns().eq(0).each(function(a,
+b){d.column(a).visible(g[b])})},_resizeAuto:function(){var 
d=this.s.dt,a=this.s.columns;if(this.c.auto&&-1!==e.inArray(!0,e.map(a,function(a){return
 a.auto}))){d.table().node();var 
c=d.table().node().cloneNode(!1),b=e(d.table().header().cloneNode(!1)).appendTo(c),f=e(d.table().body().cloneNode(!1)).appendTo(c);d.rows({page:"current"}).indexes().flatten().each(function(a){var
 
b=d.row(a).node().cloneNode(!0);d.columns(":hidden").flatten().length&&e(b).append(d.cells(a,":hidden").nodes().to$().clone());
+e(b).appendTo(f)});var 
g=d.columns().header().to$().clone(!1).wrapAll("tr").appendTo(b),c=e("<div/>").css({width:1,height:1,overflow:"hidden"}).append(c).insertBefore(d.table().node());d.columns().eq(0).each(function(b){a[b].minWidth=g[b].offsetWidth||0});c.remove()}}};h.breakpoints=[{name:"desktop",width:Infinity},{name:"tablet-l",width:1024},{name:"tablet-p",width:768},{name:"mobile-l",width:480},{name:"mobile-p",width:320}];h.defaults={breakpoints:h.breakpoints,auto:!0,details:{renderer:function(d,
+a){var c=d.cells(a,":hidden").eq(0).map(function(a){var 
c=e(d.column(a.column).header()),a=d.cell(a).index();if(c.hasClass("control")||c.hasClass("never"))return"";var
 
g=d.settings()[0],g=g.oApi._fnGetCellData(g,a.row,a.column,"display");return'<li
 data-dtr-index="'+a.column+'"><span class="dtr-title">'+c.text()+':</span> 
<span class="dtr-data">'+g+"</span></li>"}).toArray().join("");return c?e('<ul 
data-dtr-index="'+a+'"/>').append(c):!1},target:0,type:"inline"}};var 
l=e.fn.dataTable.Api;l.register("responsive()",
+function(){return 
this});l.register("responsive.recalc()",function(){this.iterator("table",function(d){d._responsive&&(d._responsive._resizeAuto(),d._responsive._resize())})});l.register("responsive.index()",function(d){d=e(d);return{column:d.data("dtr-index"),row:d.parent().data("dtr-index")}});h.version="1.0.2";e.fn.dataTable.Responsive=h;e.fn.DataTable.Responsive=h;e(o).on("init.dt.dtr",function(d,a){if(e(a.nTable).hasClass("responsive")||e(a.nTable).hasClass("dt-responsive")||a.oInit.responsive||
+i.defaults.responsive){var c=a.oInit.responsive;!1!==c&&new 
h(a,e.isPlainObject(c)?c:{})}});return h};"function"===typeof 
define&&define.amd?define(["jquery","datatables"],l):"object"===typeof 
exports?l(require("jquery"),require("datatables")):jQuery&&!jQuery.fn.dataTable.Responsive&&l(jQuery,jQuery.fn.dataTable)})(window,document);

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/Readme.txt
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/Readme.txt 
    2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/Readme.txt 
    2014-10-13 07:42:53 UTC (rev 12162)
@@ -31,7 +31,7 @@
 
 # Documentation / support
 
-* Documentation: http://datatables.net/extensions/TableTools/
+* Documentation: http://datatables.net/extensions/tabletools/
 * DataTables support forums: http://datatables.net/forums
 
 

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/css/dataTables.tableTools.css
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/css/dataTables.tableTools.css
  2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/css/dataTables.tableTools.css
  2014-10-13 07:42:53 UTC (rev 12162)
@@ -115,6 +115,30 @@
        filter: progid:DXImageTransform.Microsoft.gradient( 
startColorstr='#f3f3f3', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */
 }
 
+button.DTTT_button:focus,
+div.DTTT_button:focus,
+a.DTTT_button:focus {
+       border: 1px solid #426c9e;
+       text-shadow: 0 1px 0 #c4def1;
+       outline: none;
+
+       background-color: #a3d0ef 100%;
+       background-image: -webkit-linear-gradient(top, #a3d0ef 0%, #79ace9 65%, 
#a3d0ef 100%);
+       background-image:    -moz-linear-gradient(top, #a3d0ef 0%, #79ace9 65%, 
#a3d0ef 100%);
+       background-image:     -ms-linear-gradient(top, #a3d0ef 0%, #79ace9 65%, 
#a3d0ef 100%);
+       background-image:      -o-linear-gradient(top, #a3d0ef 0%, #79ace9 65%, 
#a3d0ef 100%);
+       background-image:         linear-gradient(top, #a3d0ef 0%, #79ace9 65%, 
#a3d0ef 100%);
+       filter: 
progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#a3d0ef',
 EndColorStr='#a3d0ef');
+}
+
+button.DTTT_button:active,
+div.DTTT_button:active,
+a.DTTT_button:active {
+       -webkit-box-shadow: inset 1px 1px 3px #999999;
+       -moz-box-shadow: inset 1px 1px 3px #999999;
+       box-shadow: inset 1px 1px 3px #999999;
+}
+
 button.DTTT_disabled,
 div.DTTT_disabled,
 a.DTTT_disabled {

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/css/dataTables.tableTools.min.css
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/css/dataTables.tableTools.min.css
      2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/css/dataTables.tableTools.min.css
      2014-10-13 07:42:53 UTC (rev 12162)
@@ -1 +1 @@
-div.DTTT_container{position:relative;float:right;margin-bottom:address@hidden 
screen and (max-width: 640px){div.DTTT_container{float:none 
!important;text-align:center}div.DTTT_container:after{visibility:hidden;display:block;content:"";clear:both;height:0}}button.DTTT_button,div.DTTT_button,a.DTTT_button{position:relative;display:inline-block;margin-right:3px;padding:5px
 8px;border:1px solid 
#999;cursor:pointer;*cursor:hand;font-size:0.88em;color:black 
!important;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;-webkit-box-shadow:1px
 1px 3px #ccc;-moz-box-shadow:1px 1px 3px #ccc;-ms-box-shadow:1px 1px 3px 
#ccc;-o-box-shadow:1px 1px 3px #ccc;box-shadow:1px 1px 3px 
#ccc;background:#ffffff;background:-webkit-linear-gradient(top, #fff 0%, 
#f3f3f3 89%, #f9f9f9 100%);background:-moz-linear-gradient(top, #fff 0%, 
#f3f3f3 89%, #f9f9f9 100%);background:-ms-linear-gradient(top, #fff 0%, #f3f3f3 
89%, #f9f9f9 100%);background:-o-linear-gradient(top, #fff 0%, #f3f3f3 89%, 
#f9f9f9 100%);background:linear-gradient(top, #fff 0%, #f3f3f3 89%, #f9f9f9 
100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',
 endColorstr='#f9f9f9',GradientType=0 
)}button.DTTT_button{height:30px;padding:3px 8px}.DTTT_button 
embed{outline:none}button.DTTT_button:hover,div.DTTT_button:hover,a.DTTT_button:hover{border:1px
 solid #666;text-decoration:none !important;-webkit-box-shadow:1px 1px 3px 
#999;-moz-box-shadow:1px 1px 3px #999;-ms-box-shadow:1px 1px 3px 
#999;-o-box-shadow:1px 1px 3px #999;box-shadow:1px 1px 3px 
#999;background:#f3f3f3;background:-webkit-linear-gradient(top, #f3f3f3 0%, 
#e2e2e2 89%, #f4f4f4 100%);background:-moz-linear-gradient(top, #f3f3f3 0%, 
#e2e2e2 89%, #f4f4f4 100%);background:-ms-linear-gradient(top, #f3f3f3 0%, 
#e2e2e2 89%, #f4f4f4 100%);background:-o-linear-gradient(top, #f3f3f3 0%, 
#e2e2e2 89%, #f4f4f4 100%);background:linear-gradient(top, #f3f3f3 0%, #e2e2e2 
89%, #f4f4f4 
100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3f3f3',
 endColorstr='#f4f4f4',GradientType=0 
)}button.DTTT_disabled,div.DTTT_disabled,a.DTTT_disabled{color:#999;border:1px 
solid #d0d0d0;background:#ffffff;background:-webkit-linear-gradient(top, #fff 
0%, #f9f9f9 89%, #fafafa 100%);background:-moz-linear-gradient(top, #fff 0%, 
#f9f9f9 89%, #fafafa 100%);background:-ms-linear-gradient(top, #fff 0%, #f9f9f9 
89%, #fafafa 100%);background:-o-linear-gradient(top, #fff 0%, #f9f9f9 89%, 
#fafafa 100%);background:linear-gradient(top, #fff 0%, #f9f9f9 89%, #fafafa 
100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',
 endColorstr='#fafafa',GradientType=0 )}button.DTTT_button_collection 
span{padding-right:17px;background:url(../images/collection.png) no-repeat 
center right}button.DTTT_button_collection:hover 
span{padding-right:17px;background:#f0f0f0 url(../images/collection_hover.png) 
no-repeat center right}table.DTTT_selectable tbody 
tr{cursor:pointer;*cursor:hand}table.dataTable 
tr.DTTT_selected.odd{background-color:#9FAFD1}table.dataTable 
tr.DTTT_selected.odd td.sorting_1{background-color:#9FAFD1}table.dataTable 
tr.DTTT_selected.odd td.sorting_2{background-color:#9FAFD1}table.dataTable 
tr.DTTT_selected.odd td.sorting_3{background-color:#9FAFD1}table.dataTable 
tr.DTTT_selected.even{background-color:#B0BED9}table.dataTable 
tr.DTTT_selected.even td.sorting_1{background-color:#B0BED9}table.dataTable 
tr.DTTT_selected.even td.sorting_2{background-color:#B0BED9}table.dataTable 
tr.DTTT_selected.even 
td.sorting_3{background-color:#B0BED9}div.DTTT_collection{width:150px;padding:8px
 8px 4px 8px;border:1px solid #ccc;border:1px solid 
rgba(0,0,0,0.4);background-color:#f3f3f3;background-color:rgba(255,255,255,0.3);overflow:hidden;z-index:2002;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;-webkit-box-shadow:3px
 3px 5px rgba(0,0,0,0.3);-moz-box-shadow:3px 3px 5px 
rgba(0,0,0,0.3);-ms-box-shadow:3px 3px 5px rgba(0,0,0,0.3);-o-box-shadow:3px 
3px 5px rgba(0,0,0,0.3);box-shadow:3px 3px 5px 
rgba(0,0,0,0.3)}div.DTTT_collection_background{background:transparent 
url(../images/background.png) repeat top left;z-index:2001}div.DTTT_collection 
button.DTTT_button,div.DTTT_collection div.DTTT_button,div.DTTT_collection 
a.DTTT_button{position:relative;left:0;right:0;display:block;float:none;margin-bottom:4px;-webkit-box-shadow:1px
 1px 3px #999;-moz-box-shadow:1px 1px 3px #999;-ms-box-shadow:1px 1px 3px 
#999;-o-box-shadow:1px 1px 3px #999;box-shadow:1px 1px 3px 
#999}.DTTT_print_info{position:fixed;top:50%;left:50%;width:400px;height:150px;margin-left:-200px;margin-top:-75px;text-align:center;color:#333;padding:10px
 30px;background:#ffffff;background:-webkit-linear-gradient(top, #fff 0%, 
#f3f3f3 89%, #f9f9f9 100%);background:-moz-linear-gradient(top, #fff 0%, 
#f3f3f3 89%, #f9f9f9 100%);background:-ms-linear-gradient(top, #fff 0%, #f3f3f3 
89%, #f9f9f9 100%);background:-o-linear-gradient(top, #fff 0%, #f3f3f3 89%, 
#f9f9f9 100%);background:linear-gradient(top, #fff 0%, #f3f3f3 89%, #f9f9f9 
100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',
 endColorstr='#f9f9f9',GradientType=0 );opacity:0.95;border:1px solid 
black;border:1px solid 
rgba(0,0,0,0.5);-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px;-webkit-box-shadow:0
 3px 7px rgba(0,0,0,0.5);-moz-box-shadow:0 3px 7px 
rgba(0,0,0,0.5);-ms-box-shadow:0 3px 7px rgba(0,0,0,0.5);-o-box-shadow:0 3px 
7px rgba(0,0,0,0.5);box-shadow:0 3px 7px rgba(0,0,0,0.5)}.DTTT_print_info 
h6{font-weight:normal;font-size:28px;line-height:28px;margin:1em}.DTTT_print_info
 p{font-size:14px;line-height:20px}
+div.DTTT_container{position:relative;float:right;margin-bottom:address@hidden 
screen and (max-width: 640px){div.DTTT_container{float:none 
!important;text-align:center}div.DTTT_container:after{visibility:hidden;display:block;content:"";clear:both;height:0}}button.DTTT_button,div.DTTT_button,a.DTTT_button{position:relative;display:inline-block;margin-right:3px;padding:5px
 8px;border:1px solid 
#999;cursor:pointer;*cursor:hand;font-size:0.88em;color:black 
!important;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;-webkit-box-shadow:1px
 1px 3px #ccc;-moz-box-shadow:1px 1px 3px #ccc;-ms-box-shadow:1px 1px 3px 
#ccc;-o-box-shadow:1px 1px 3px #ccc;box-shadow:1px 1px 3px 
#ccc;background:#ffffff;background:-webkit-linear-gradient(top, #fff 0%, 
#f3f3f3 89%, #f9f9f9 100%);background:-moz-linear-gradient(top, #fff 0%, 
#f3f3f3 89%, #f9f9f9 100%);background:-ms-linear-gradient(top, #fff 0%, #f3f3f3 
89%, #f9f9f9 100%);background:-o-linear-gradient(top, #fff 0%, #f3f3f3 89%, 
#f9f9f9 100%);background:linear-gradient(top, #fff 0%, #f3f3f3 89%, #f9f9f9 
100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',
 endColorstr='#f9f9f9',GradientType=0 
)}button.DTTT_button{height:30px;padding:3px 8px}.DTTT_button 
embed{outline:none}button.DTTT_button:hover,div.DTTT_button:hover,a.DTTT_button:hover{border:1px
 solid #666;text-decoration:none !important;-webkit-box-shadow:1px 1px 3px 
#999;-moz-box-shadow:1px 1px 3px #999;-ms-box-shadow:1px 1px 3px 
#999;-o-box-shadow:1px 1px 3px #999;box-shadow:1px 1px 3px 
#999;background:#f3f3f3;background:-webkit-linear-gradient(top, #f3f3f3 0%, 
#e2e2e2 89%, #f4f4f4 100%);background:-moz-linear-gradient(top, #f3f3f3 0%, 
#e2e2e2 89%, #f4f4f4 100%);background:-ms-linear-gradient(top, #f3f3f3 0%, 
#e2e2e2 89%, #f4f4f4 100%);background:-o-linear-gradient(top, #f3f3f3 0%, 
#e2e2e2 89%, #f4f4f4 100%);background:linear-gradient(top, #f3f3f3 0%, #e2e2e2 
89%, #f4f4f4 
100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3f3f3',
 endColorstr='#f4f4f4',GradientType=0 
)}button.DTTT_button:focus,div.DTTT_button:focus,a.DTTT_button:focus{border:1px 
solid #426c9e;text-shadow:0 1px 0 #c4def1;outline:none;background-color:#a3d0ef 
100%;background-image:-webkit-linear-gradient(top, #a3d0ef 0%, #79ace9 65%, 
#a3d0ef 100%);background-image:-moz-linear-gradient(top, #a3d0ef 0%, #79ace9 
65%, #a3d0ef 100%);background-image:-ms-linear-gradient(top, #a3d0ef 0%, 
#79ace9 65%, #a3d0ef 100%);background-image:-o-linear-gradient(top, #a3d0ef 0%, 
#79ace9 65%, #a3d0ef 100%);background-image:linear-gradient(top, #a3d0ef 0%, 
#79ace9 65%, #a3d0ef 
100%);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#a3d0ef',
 
EndColorStr='#a3d0ef')}button.DTTT_button:active,div.DTTT_button:active,a.DTTT_button:active{-webkit-box-shadow:inset
 1px 1px 3px #999999;-moz-box-shadow:inset 1px 1px 3px #999999;box-shadow:inset 
1px 1px 3px 
#999999}button.DTTT_disabled,div.DTTT_disabled,a.DTTT_disabled{color:#999;border:1px
 solid #d0d0d0;background:#ffffff;background:-webkit-linear-gradient(top, #fff 
0%, #f9f9f9 89%, #fafafa 100%);background:-moz-linear-gradient(top, #fff 0%, 
#f9f9f9 89%, #fafafa 100%);background:-ms-linear-gradient(top, #fff 0%, #f9f9f9 
89%, #fafafa 100%);background:-o-linear-gradient(top, #fff 0%, #f9f9f9 89%, 
#fafafa 100%);background:linear-gradient(top, #fff 0%, #f9f9f9 89%, #fafafa 
100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',
 endColorstr='#fafafa',GradientType=0 )}button.DTTT_button_collection 
span{padding-right:17px;background:url(../images/collection.png) no-repeat 
center right}button.DTTT_button_collection:hover 
span{padding-right:17px;background:#f0f0f0 url(../images/collection_hover.png) 
no-repeat center right}table.DTTT_selectable tbody 
tr{cursor:pointer;*cursor:hand}table.dataTable 
tr.DTTT_selected.odd{background-color:#9FAFD1}table.dataTable 
tr.DTTT_selected.odd td.sorting_1{background-color:#9FAFD1}table.dataTable 
tr.DTTT_selected.odd td.sorting_2{background-color:#9FAFD1}table.dataTable 
tr.DTTT_selected.odd td.sorting_3{background-color:#9FAFD1}table.dataTable 
tr.DTTT_selected.even{background-color:#B0BED9}table.dataTable 
tr.DTTT_selected.even td.sorting_1{background-color:#B0BED9}table.dataTable 
tr.DTTT_selected.even td.sorting_2{background-color:#B0BED9}table.dataTable 
tr.DTTT_selected.even 
td.sorting_3{background-color:#B0BED9}div.DTTT_collection{width:150px;padding:8px
 8px 4px 8px;border:1px solid #ccc;border:1px solid 
rgba(0,0,0,0.4);background-color:#f3f3f3;background-color:rgba(255,255,255,0.3);overflow:hidden;z-index:2002;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;-webkit-box-shadow:3px
 3px 5px rgba(0,0,0,0.3);-moz-box-shadow:3px 3px 5px 
rgba(0,0,0,0.3);-ms-box-shadow:3px 3px 5px rgba(0,0,0,0.3);-o-box-shadow:3px 
3px 5px rgba(0,0,0,0.3);box-shadow:3px 3px 5px 
rgba(0,0,0,0.3)}div.DTTT_collection_background{background:transparent 
url(../images/background.png) repeat top left;z-index:2001}div.DTTT_collection 
button.DTTT_button,div.DTTT_collection div.DTTT_button,div.DTTT_collection 
a.DTTT_button{position:relative;left:0;right:0;display:block;float:none;margin-bottom:4px;-webkit-box-shadow:1px
 1px 3px #999;-moz-box-shadow:1px 1px 3px #999;-ms-box-shadow:1px 1px 3px 
#999;-o-box-shadow:1px 1px 3px #999;box-shadow:1px 1px 3px 
#999}.DTTT_print_info{position:fixed;top:50%;left:50%;width:400px;height:150px;margin-left:-200px;margin-top:-75px;text-align:center;color:#333;padding:10px
 30px;background:#ffffff;background:-webkit-linear-gradient(top, #fff 0%, 
#f3f3f3 89%, #f9f9f9 100%);background:-moz-linear-gradient(top, #fff 0%, 
#f3f3f3 89%, #f9f9f9 100%);background:-ms-linear-gradient(top, #fff 0%, #f3f3f3 
89%, #f9f9f9 100%);background:-o-linear-gradient(top, #fff 0%, #f3f3f3 89%, 
#f9f9f9 100%);background:linear-gradient(top, #fff 0%, #f3f3f3 89%, #f9f9f9 
100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',
 endColorstr='#f9f9f9',GradientType=0 );opacity:0.95;border:1px solid 
black;border:1px solid 
rgba(0,0,0,0.5);-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px;-webkit-box-shadow:0
 3px 7px rgba(0,0,0,0.5);-moz-box-shadow:0 3px 7px 
rgba(0,0,0,0.5);-ms-box-shadow:0 3px 7px rgba(0,0,0,0.5);-o-box-shadow:0 3px 
7px rgba(0,0,0,0.5);box-shadow:0 3px 7px rgba(0,0,0,0.5)}.DTTT_print_info 
h6{font-weight:normal;font-size:28px;line-height:28px;margin:1em}.DTTT_print_info
 p{font-size:14px;line-height:20px}

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/examples/bootstrap.html
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/examples/bootstrap.html
        2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/examples/bootstrap.html
        2014-10-13 07:42:53 UTC (rev 12162)
@@ -6,7 +6,7 @@
        <meta name="viewport" content="initial-scale=1.0, maximum-scale=2.0">
 
        <title>TableTools example - Bootstrap styling</title>
-       <link rel="stylesheet" type="text/css" 
href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
+       <link rel="stylesheet" type="text/css" 
href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
        <link rel="stylesheet" type="text/css" 
href="../../Plugins/integration/bootstrap/3/dataTables.bootstrap.css">
        <link rel="stylesheet" type="text/css" 
href="../../../examples/resources/syntax/shCore.css">
        <link rel="stylesheet" type="text/css" 
href="../../../examples/resources/demo.css">
@@ -591,7 +591,7 @@
 
                                        <ul>
                                                <li><a href=
-                                               
"//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css</a></li>
+                                               
"//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css</a></li>
                                                <li><a href=
                                                
"../../Plugins/integration/bootstrap/3/dataTables.bootstrap.css">../../Plugins/integration/bootstrap/3/dataTables.bootstrap.css</a></li>
                                        </ul>

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/js/dataTables.tableTools.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/js/dataTables.tableTools.js
    2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/js/dataTables.tableTools.js
    2014-10-13 07:42:53 UTC (rev 12162)
@@ -1,4 +1,4 @@
-/*! TableTools 2.2.2
+/*! TableTools 2.2.3
  * 2009-2014 SpryMedia Ltd - datatables.net/license
  *
  * ZeroClipboard 1.0.4
@@ -8,7 +8,7 @@
 /**
  * @summary     TableTools
  * @description Tools and buttons for DataTables
- * @version     2.2.2
+ * @version     2.2.3
  * @file        dataTables.tableTools.js
  * @author      SpryMedia Ltd (www.sprymedia.co.uk)
  * @contact     www.sprymedia.co.uk/contact
@@ -1298,6 +1298,33 @@
                        this._fnCollectionConfig( nButton, oConfig );
                }
 
+               if ( this.s.dt.iTabIndex !== -1 ) {
+                       $(nButton)
+                               .attr( 'tabindex', this.s.dt.iTabIndex )
+                               .attr( 'aria-controls', this.s.dt.sTableId )
+                               .on( 'keyup.DTTT', function (e) {
+                                       // Trigger the click event on return 
key when focused.
+                                       // Note that for Flash buttons this has 
no effect since we
+                                       // can't programmatically trigger the 
Flash export
+                                       if ( e.keyCode === 13 ) {
+                                               e.stopPropagation();
+
+                                               $(this).trigger( 'click' );
+                                       }
+                               } )
+                               .on( 'mousedown.DTTT', function (e) {
+                                       // On mousedown we want to stop the 
focus occurring on the
+                                       // button, focus is used only for the 
keyboard navigation.
+                                       // But using preventDefault for the 
flash buttons stops the
+                                       // flash action. However, it is not the 
button that gets
+                                       // focused but the flash element for 
flash buttons, so this
+                                       // works
+                                       if ( ! oConfig.sAction.match(/flash/) ) 
{
+                                               e.preventDefault();
+                                       }
+                               } );
+               }
+
                return nButton;
        },
 
@@ -2030,11 +2057,22 @@
                var aColumns = [];
                var dt = this.s.dt;
                var i, iLen;
+               var columns = dt.aoColumns;
+               var columnCount = columns.length;
 
-               if ( typeof mColumns == "object" )
+               if ( typeof mColumns == "function" )
                {
-                       for ( i=0, iLen=dt.aoColumns.length ; i<iLen ; i++ )
+                       var a = mColumns.call( this, dt );
+
+                       for ( i=0, iLen=columnCount ; i<iLen ; i++ )
                        {
+                               aColumns.push( $.inArray( i, a ) !== -1 ? true 
: false );
+                       }
+               }
+               else if ( typeof mColumns == "object" )
+               {
+                       for ( i=0, iLen=columnCount ; i<iLen ; i++ )
+                       {
                                aColumns.push( false );
                        }
 
@@ -2045,28 +2083,28 @@
                }
                else if ( mColumns == "visible" )
                {
-                       for ( i=0, iLen=dt.aoColumns.length ; i<iLen ; i++ )
+                       for ( i=0, iLen=columnCount ; i<iLen ; i++ )
                        {
-                               aColumns.push( dt.aoColumns[i].bVisible ? true 
: false );
+                               aColumns.push( columns[i].bVisible ? true : 
false );
                        }
                }
                else if ( mColumns == "hidden" )
                {
-                       for ( i=0, iLen=dt.aoColumns.length ; i<iLen ; i++ )
+                       for ( i=0, iLen=columnCount ; i<iLen ; i++ )
                        {
-                               aColumns.push( dt.aoColumns[i].bVisible ? false 
: true );
+                               aColumns.push( columns[i].bVisible ? false : 
true );
                        }
                }
                else if ( mColumns == "sortable" )
                {
-                       for ( i=0, iLen=dt.aoColumns.length ; i<iLen ; i++ )
+                       for ( i=0, iLen=columnCount ; i<iLen ; i++ )
                        {
-                               aColumns.push( dt.aoColumns[i].bSortable ? true 
: false );
+                               aColumns.push( columns[i].bSortable ? true : 
false );
                        }
                }
                else /* all */
                {
-                       for ( i=0, iLen=dt.aoColumns.length ; i<iLen ; i++ )
+                       for ( i=0, iLen=columnCount ; i<iLen ; i++ )
                        {
                                aColumns.push( true );
                        }
@@ -2139,24 +2177,36 @@
                        aData.push( aRow.join(oConfig.sFieldSeperator) );
                }
 
+               bSelectedOnly = true;
+
                /*
                 * Body
                 */
-               var aSelected = this.fnGetSelected();
+               var aDataIndex;
+               var aSelected = this.fnGetSelectedIndexes();
                bSelectedOnly = this.s.select.type !== "none" && bSelectedOnly 
&& aSelected.length !== 0;
 
-               var api = $.fn.dataTable.Api;
-               var aDataIndex = api ?
-                       new api( dt ).rows( oConfig.oSelectorOpts 
).indexes().flatten().toArray() :
-                       dt.oInstance
+               if ( bSelectedOnly ) {
+                       // Use the selected indexes
+                       aDataIndex = aSelected;
+               }
+               else if ( DataTable.Api ) {
+                       // 1.10+ style
+                       aDataIndex = new DataTable.Api( dt )
+                               .rows( oConfig.oSelectorOpts )
+                               .indexes()
+                               .flatten()
+                               .toArray();
+               }
+               else {
+                       // 1.9- style
+                       aDataIndex = dt.oInstance
                                .$('tr', oConfig.oSelectorOpts)
                                .map( function (id, row) {
-                                       // If "selected only", then ensure that 
the row is in the selected list
-                                       return bSelectedOnly && $.inArray( row, 
aSelected ) === -1 ?
-                                               null :
-                                               dt.oInstance.fnGetPosition( row 
);
+                                       return dt.oInstance.fnGetPosition( row 
);
                                } )
                                .get();
+               }
 
                for ( j=0, jLen=aDataIndex.length ; j<jLen ; j++ )
                {
@@ -3054,7 +3104,7 @@
  *  @type        String
  *  @default   See code
  */
-TableTools.version = "2.2.2";
+TableTools.version = "2.2.3";
 
 
 

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/js/dataTables.tableTools.min.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/js/dataTables.tableTools.min.js
        2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/js/dataTables.tableTools.min.js
        2014-10-13 07:42:53 UTC (rev 12162)
@@ -1,69 +1,69 @@
 /*!
- TableTools 2.2.2
+ TableTools 2.2.3
  2009-2014 SpryMedia Ltd - datatables.net/license
 
  ZeroClipboard 1.0.4
  Author: Joseph Huckaby - MIT licensed
 */
 var TableTools;
-(function(m,k,p){var r=function(n){var 
g={version:"1.0.4-TableTools2",clients:{},moviePath:"",nextId:1,$:function(a){"string"==typeof
 
a&&(a=k.getElementById(a));a.addClass||(a.hide=function(){this.style.display="none"},a.show=function(){this.style.display=""},a.addClass=function(a){this.removeClass(a);this.className+="
 
"+a},a.removeClass=function(a){this.className=this.className.replace(RegExp("\\s*"+a+"\\s*"),"
 
").replace(/^\s+/,"").replace(/\s+$/,"")},a.hasClass=function(a){return!!this.className.match(RegExp("\\s*"+a+
+(function(n,k,q){var p=function(m,p){var 
g={version:"1.0.4-TableTools2",clients:{},moviePath:"",nextId:1,$:function(a){"string"==typeof
 
a&&(a=k.getElementById(a));a.addClass||(a.hide=function(){this.style.display="none"},a.show=function(){this.style.display=""},a.addClass=function(a){this.removeClass(a);this.className+="
 
"+a},a.removeClass=function(a){this.className=this.className.replace(RegExp("\\s*"+a+"\\s*"),"
 
").replace(/^\s+/,"").replace(/\s+$/,"")},a.hasClass=function(a){return!!this.className.match(RegExp("\\s*"+a+
 "\\s*"))});return 
a},setMoviePath:function(a){this.moviePath=a},dispatch:function(a,b,c){(a=this.clients[a])&&a.receiveEvent(b,c)},register:function(a,b){this.clients[a]=b},getDOMObjectPosition:function(a){var
 
b={left:0,top:0,width:a.width?a.width:a.offsetWidth,height:a.height?a.height:a.offsetHeight};""!==a.style.width&&(b.width=a.style.width.replace("px",""));""!==a.style.height&&(b.height=a.style.height.replace("px",""));for(;a;)b.left+=a.offsetLeft,b.top+=a.offsetTop,a=a.offsetParent;return
 b},
-Client:function(a){this.handlers={};this.id=g.nextId++;this.movieId="ZeroClipboard_TableToolsMovie_"+this.id;g.register(this.id,this);a&&this.glue(a)}};g.Client.prototype={id:0,ready:!1,movie:null,clipText:"",fileName:"",action:"copy",handCursorEnabled:!0,cssEffects:!0,handlers:null,sized:!1,glue:function(a,b){this.domElement=g.$(a);var
 
c=99;this.domElement.style.zIndex&&(c=parseInt(this.domElement.style.zIndex,10)+1);var
 d=g.getDOMObjectPosition(this.domElement);this.div=k.createElement("div");var 
e=
-this.div.style;e.position="absolute";e.left="0px";e.top="0px";e.width=d.width+"px";e.height=d.height+"px";e.zIndex=c;"undefined"!=typeof
 
b&&""!==b&&(this.div.title=b);0!==d.width&&0!==d.height&&(this.sized=!0);this.domElement&&(this.domElement.appendChild(this.div),this.div.innerHTML=this.getHTML(d.width,d.height).replace(/&/g,"&amp;"))},positionElement:function(){var
 
a=g.getDOMObjectPosition(this.domElement),b=this.div.style;b.position="absolute";b.width=a.width+"px";b.height=a.height+"px";0!==a.width&&
-0!==a.height&&(this.sized=!0,b=this.div.childNodes[0],b.width=a.width,b.height=a.height)},getHTML:function(a,b){var
 
c="",d="id="+this.id+"&width="+a+"&height="+b;if(navigator.userAgent.match(/MSIE/))var
 e=location.href.match(/^https/i)?"https://":"http://",c=c+('<object 
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
codebase="'+e+'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0"
 width="'+a+'" height="'+b+'" id="'+this.movieId+'" align="middle"><param 
name="allowScriptAccess" value="always" /><param name="allowFullScreen" 
value="false" /><param name="movie" value="'+
+Client:function(a){this.handlers={};this.id=g.nextId++;this.movieId="ZeroClipboard_TableToolsMovie_"+this.id;g.register(this.id,this);a&&this.glue(a)}};g.Client.prototype={id:0,ready:!1,movie:null,clipText:"",fileName:"",action:"copy",handCursorEnabled:!0,cssEffects:!0,handlers:null,sized:!1,glue:function(a,b){this.domElement=g.$(a);var
 
c=99;this.domElement.style.zIndex&&(c=parseInt(this.domElement.style.zIndex,10)+1);var
 d=g.getDOMObjectPosition(this.domElement);this.div=k.createElement("div");var 
f=
+this.div.style;f.position="absolute";f.left="0px";f.top="0px";f.width=d.width+"px";f.height=d.height+"px";f.zIndex=c;"undefined"!=typeof
 
b&&""!==b&&(this.div.title=b);0!==d.width&&0!==d.height&&(this.sized=!0);this.domElement&&(this.domElement.appendChild(this.div),this.div.innerHTML=this.getHTML(d.width,d.height).replace(/&/g,"&amp;"))},positionElement:function(){var
 
a=g.getDOMObjectPosition(this.domElement),b=this.div.style;b.position="absolute";b.width=a.width+"px";b.height=a.height+"px";0!==a.width&&
+0!==a.height&&(this.sized=!0,b=this.div.childNodes[0],b.width=a.width,b.height=a.height)},getHTML:function(a,b){var
 
c="",d="id="+this.id+"&width="+a+"&height="+b;if(navigator.userAgent.match(/MSIE/))var
 f=location.href.match(/^https/i)?"https://":"http://",c=c+('<object 
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
codebase="'+f+'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0"
 width="'+a+'" height="'+b+'" id="'+this.movieId+'" align="middle"><param 
name="allowScriptAccess" value="always" /><param name="allowFullScreen" 
value="false" /><param name="movie" value="'+
 g.moviePath+'" /><param name="loop" value="false" /><param name="menu" 
value="false" /><param name="quality" value="best" /><param name="bgcolor" 
value="#ffffff" /><param name="flashvars" value="'+d+'"/><param name="wmode" 
value="transparent"/></object>');else c+='<embed id="'+this.movieId+'" 
src="'+g.moviePath+'" loop="false" menu="false" quality="best" 
bgcolor="#ffffff" width="'+a+'" height="'+b+'" name="'+this.movieId+'" 
align="middle" allowScriptAccess="always" allowFullScreen="false" 
type="application/x-shockwave-flash" 
pluginspage="http://www.macromedia.com/go/getflashplayer"; flashvars="'+
 d+'" wmode="transparent" />';return 
c},hide:function(){this.div&&(this.div.style.left="-2000px")},show:function(){this.reposition()},destroy:function(){if(this.domElement&&this.div){this.hide();this.div.innerHTML="";var
 
a=k.getElementsByTagName("body")[0];try{a.removeChild(this.div)}catch(b){}this.div=this.domElement=null}},reposition:function(a){a&&((this.domElement=g.$(a))||this.hide());if(this.domElement&&this.div){var
 a=g.getDOMObjectPosition(this.domElement),b=this.div.style;b.left=""+a.left+
 
"px";b.top=""+a.top+"px"}},clearText:function(){this.clipText="";this.ready&&this.movie.clearText()},appendText:function(a){this.clipText+=a;this.ready&&this.movie.appendText(a)},setText:function(a){this.clipText=a;this.ready&&this.movie.setText(a)},setCharSet:function(a){this.charSet=a;this.ready&&this.movie.setCharSet(a)},setBomInc:function(a){this.incBom=a;this.ready&&this.movie.setBomInc(a)},setFileName:function(a){this.fileName=a;this.ready&&this.movie.setFileName(a)},setAction:function(a){this.action=
 
a;this.ready&&this.movie.setAction(a)},addEventListener:function(a,b){a=a.toString().toLowerCase().replace(/^on/,"");this.handlers[a]||(this.handlers[a]=[]);this.handlers[a].push(b)},setHandCursor:function(a){this.handCursorEnabled=a;this.ready&&this.movie.setHandCursor(a)},setCSSEffects:function(a){this.cssEffects=!!a},receiveEvent:function(a,b){var
 c,a=a.toString().toLowerCase().replace(/^on/,"");switch(a){case 
"load":this.movie=k.getElementById(this.movieId);if(!this.movie){c=this;setTimeout(function(){c.receiveEvent("load",
 
null)},1);return}if(!this.ready&&navigator.userAgent.match(/Firefox/)&&navigator.userAgent.match(/Windows/)){c=this;setTimeout(function(){c.receiveEvent("load",null)},100);this.ready=!0;return}this.ready=!0;this.movie.clearText();this.movie.appendText(this.clipText);this.movie.setFileName(this.fileName);this.movie.setAction(this.action);this.movie.setCharSet(this.charSet);this.movie.setBomInc(this.incBom);this.movie.setHandCursor(this.handCursorEnabled);break;case
 "mouseover":this.domElement&&this.cssEffects&&
-this.recoverActive&&this.domElement.addClass("active");break;case 
"mouseout":this.domElement&&this.cssEffects&&(this.recoverActive=!1,this.domElement.hasClass("active")&&(this.domElement.removeClass("active"),this.recoverActive=!0));break;case
 
"mousedown":this.domElement&&this.cssEffects&&this.domElement.addClass("active");break;case
 
"mouseup":this.domElement&&this.cssEffects&&(this.domElement.removeClass("active"),this.recoverActive=!1)}if(this.handlers[a])for(var
 d=0,e=this.handlers[a].length;d<
-e;d++){var f=this.handlers[a][d];if("function"==typeof f)f(this,b);else 
if("object"==typeof f&&2==f.length)f[0][f[1]](this,b);else if("string"==typeof 
f)m[f](this,b)}}};m.ZeroClipboard_TableTools=g;var 
f=jQuery;TableTools=function(a,b){!this instanceof TableTools&&alert("Warning: 
TableTools must be initialised with the keyword 
'new'");this.s={that:this,dt:f.fn.dataTable.Api?(new 
f.fn.dataTable.Api(a)).settings()[0]:a.fnSettings(),print:{saveStart:-1,saveLength:-1,saveScroll:-1,funcEnd:function(){}},
-buttonCounter:0,select:{type:"",selected:[],preRowSelect:null,postSelected:null,postDeselected:null,all:!1,selectedClass:""},custom:{},swfPath:"",buttonSet:[],master:!1,tags:{}};this.dom={container:null,table:null,print:{hidden:[],message:null},collection:{collection:null,background:null}};this.classes=f.extend(!0,{},TableTools.classes);this.s.dt.bJUI&&f.extend(!0,this.classes,TableTools.classes_themeroller);this.fnSettings=function(){return
 this.s};"undefined"==typeof b&&(b={});TableTools._aInstances.push(this);
-this._fnConstruct(b);return 
this};TableTools.prototype={fnGetSelected:function(a){var 
b=[],c=this.s.dt.aoData,d=this.s.dt.aiDisplay,e;if(a){a=0;for(e=d.length;a<e;a++)c[d[a]]._DTTT_selected&&b.push(c[d[a]].nTr)}else{a=0;for(e=c.length;a<e;a++)c[a]._DTTT_selected&&b.push(c[a].nTr)}return
 b},fnGetSelectedData:function(){var 
a=[],b=this.s.dt.aoData,c,d;c=0;for(d=b.length;c<d;c++)b[c]._DTTT_selected&&a.push(this.s.dt.oInstance.fnGetData(c));return
 a},fnGetSelectedIndexes:function(a){var b=[],c=this.s.dt.aoData,
-d=this.s.dt.aiDisplay,e;if(a){a=0;for(e=d.length;a<e;a++)c[d[a]]._DTTT_selected&&b.push(d[a])}else{a=0;for(e=c.length;a<e;a++)c[a]._DTTT_selected&&b.push(a)}return
 
b},fnIsSelected:function(a){a=this.s.dt.oInstance.fnGetPosition(a);return!0===this.s.dt.aoData[a]._DTTT_selected?!0:!1},fnSelectAll:function(a){this._fnRowSelect(a?this.s.dt.aiDisplay:this.s.dt.aoData)},fnSelectNone:function(a){this._fnRowDeselect(this.fnGetSelectedIndexes(a))},fnSelect:function(a){"single"==this.s.select.type&&this.fnSelectNone();
-this._fnRowSelect(a)},fnDeselect:function(a){this._fnRowDeselect(a)},fnGetTitle:function(a){var
 b="";"undefined"!=typeof 
a.sTitle&&""!==a.sTitle?b=a.sTitle:(a=k.getElementsByTagName("title"),0<a.length&&(b=a[0].innerHTML));return
 4>"¡".toString().length?b.replace(/[^a-zA-Z0-9_\u00A1-\uFFFF\.,\-_ 
!\(\)]/g,""):b.replace(/[^a-zA-Z0-9_\.,\-_ 
!\(\)]/g,"")},fnCalcColRatios:function(a){var 
b=this.s.dt.aoColumns,a=this._fnColumnTargets(a.mColumns),c=[],d=0,e=0,f,i;f=0;for(i=a.length;f<i;f++)a[f]&&(d=b[f].nTh.offsetWidth,
-e+=d,c.push(d));f=0;for(i=c.length;f<i;f++)c[f]/=e;return 
c.join("\t")},fnGetTableData:function(a){if(this.s.dt)return 
this._fnGetDataTablesData(a)},fnSetText:function(a,b){this._fnFlashSetText(a,b)},fnResizeButtons:function(){for(var
 a in g.clients)if(a){var b=g.clients[a];"undefined"!=typeof 
b.domElement&&b.domElement.parentNode&&b.positionElement()}},fnResizeRequired:function(){for(var
 a in g.clients)if(a){var b=g.clients[a];if("undefined"!=typeof 
b.domElement&&b.domElement.parentNode==this.dom.container&&
-!1===b.sized)return!0}return!1},fnPrint:function(a,b){b===p&&(b={});a===p||a?this._fnPrintStart(b):this._fnPrintEnd()},fnInfo:function(a,b){var
 
c=f("<div/>").addClass(this.classes.print.info).html(a).appendTo("body");setTimeout(function(){c.fadeOut("normal",function(){c.remove()})},b)},fnContainer:function(){return
 this.dom.container},_fnConstruct:function(a){var 
b=this;this._fnCustomiseSettings(a);this.dom.container=k.createElement(this.s.tags.container);this.dom.container.className=this.classes.container;
-"none"!=this.s.select.type&&this._fnRowSelectConfig();this._fnButtonDefinations(this.s.buttonSet,this.dom.container);this.s.dt.aoDestroyCallback.push({sName:"TableTools",fn:function(){f(b.s.dt.nTBody).off("click.DTTT_Select","tr");f(b.dom.container).empty();var
 
a=f.inArray(b,TableTools._aInstances);-1!==a&&TableTools._aInstances.splice(a,1)}})},_fnCustomiseSettings:function(a){"undefined"==typeof
 
this.s.dt._TableToolsInit&&(this.s.master=!0,this.s.dt._TableToolsInit=!0);this.dom.table=this.s.dt.nTable;
-this.s.custom=f.extend({},TableTools.DEFAULTS,a);this.s.swfPath=this.s.custom.sSwfPath;"undefined"!=typeof
 
g&&(g.moviePath=this.s.swfPath);this.s.select.type=this.s.custom.sRowSelect;this.s.select.preRowSelect=this.s.custom.fnPreRowSelect;this.s.select.postSelected=this.s.custom.fnRowSelected;this.s.select.postDeselected=this.s.custom.fnRowDeselected;this.s.custom.sSelectedClass&&(this.classes.select.row=this.s.custom.sSelectedClass);this.s.tags=this.s.custom.oTags;this.s.buttonSet=this.s.custom.aButtons},
-_fnButtonDefinations:function(a,b){for(var 
c,d=0,e=a.length;d<e;d++){if("string"==typeof a[d]){if("undefined"==typeof 
TableTools.BUTTONS[a[d]]){alert("TableTools: Warning - unknown button type: 
"+a[d]);continue}c=f.extend({},TableTools.BUTTONS[a[d]],!0)}else{if("undefined"==typeof
 TableTools.BUTTONS[a[d].sExtends]){alert("TableTools: Warning - unknown button 
type: 
"+a[d].sExtends);continue}c=f.extend({},TableTools.BUTTONS[a[d].sExtends],!0);c=f.extend(c,a[d],!0)}(c=this._fnCreateButton(c,f(b).hasClass(this.classes.collection.container)))&&
-b.appendChild(c)}},_fnCreateButton:function(a,b){var 
c=this._fnButtonBase(a,b);if(a.sAction.match(/flash/)){if(!this._fnHasFlash())return!1;this._fnFlashConfig(c,a)}else"text"==a.sAction?this._fnTextConfig(c,a):"div"==a.sAction?this._fnTextConfig(c,a):"collection"==a.sAction&&(this._fnTextConfig(c,a),this._fnCollectionConfig(c,a));return
 c},_fnButtonBase:function(a,b){var 
c,d,e;b?(c=a.sTag&&"default"!==a.sTag?a.sTag:this.s.tags.collection.button,d=a.sLinerTag&&"default"!==a.sLinerTag?a.sLiner:this.s.tags.collection.liner,
-e=this.classes.collection.buttons.normal):(c=a.sTag&&"default"!==a.sTag?a.sTag:this.s.tags.button,d=a.sLinerTag&&"default"!==a.sLinerTag?a.sLiner:this.s.tags.liner,e=this.classes.buttons.normal);c=k.createElement(c);d=k.createElement(d);var
 f=this._fnGetMasterSettings();c.className=e+" 
"+a.sButtonClass;c.setAttribute("id","ToolTables_"+this.s.dt.sInstance+"_"+f.buttonCounter);c.appendChild(d);d.innerHTML=a.sButtonText;f.buttonCounter++;return
 c},_fnGetMasterSettings:function(){if(this.s.master)return this.s;
-for(var 
a=TableTools._aInstances,b=0,c=a.length;b<c;b++)if(this.dom.table==a[b].s.dt.nTable)return
 a[b].s},_fnCollectionConfig:function(a,b){var 
c=k.createElement(this.s.tags.collection.container);c.style.display="none";c.className=this.classes.collection.container;b._collection=c;k.body.appendChild(c);this._fnButtonDefinations(b.aButtons,c)},_fnCollectionShow:function(a,b){var
 
c=this,d=f(a).offset(),e=b._collection,j=d.left,d=d.top+f(a).outerHeight(),i=f(m).height(),h=f(k).height(),o=f(m).width(),
-g=f(k).width();e.style.position="absolute";e.style.left=j+"px";e.style.top=d+"px";e.style.display="block";f(e).css("opacity",0);var
 
l=k.createElement("div");l.style.position="absolute";l.style.left="0px";l.style.top="0px";l.style.height=(i>h?i:h)+"px";l.style.width=(o>g?o:g)+"px";l.className=this.classes.collection.background;f(l).css("opacity",0);k.body.appendChild(l);k.body.appendChild(e);i=f(e).outerWidth();o=f(e).outerHeight();j+i>g&&(e.style.left=g-i+"px");d+o>h&&(e.style.top=d-o-f(a).outerHeight()+
-"px");this.dom.collection.collection=e;this.dom.collection.background=l;setTimeout(function(){f(e).animate({opacity:1},500);f(l).animate({opacity:0.25},500)},10);this.fnResizeButtons();f(l).click(function(){c._fnCollectionHide.call(c,null,null)})},_fnCollectionHide:function(a,b){!(null!==b&&"collection"==b.sExtends)&&null!==this.dom.collection.collection&&(f(this.dom.collection.collection).animate({opacity:0},500,function(){this.style.display="none"}),f(this.dom.collection.background).animate({opacity:0},
-500,function(){this.parentNode.removeChild(this)}),this.dom.collection.collection=null,this.dom.collection.background=null)},_fnRowSelectConfig:function(){if(this.s.master){var
 
a=this,b=this.s.dt;f(b.nTable).addClass(this.classes.select.table);"os"===this.s.select.type&&(f(b.nTBody).on("mousedown.DTTT_Select","tr",function(a){if(a.shiftKey)f(b.nTBody).css("-moz-user-select","none").one("selectstart.DTTT_Select","tr",function(){return!1})}),f(b.nTBody).on("mouseup.DTTT_Select","tr",function(){f(b.nTBody).css("-moz-user-select",
-"")}));f(b.nTBody).on("click.DTTT_Select",this.s.custom.sRowSelector,function(c){var
 
d=this.nodeName.toLowerCase()==="tr"?this:f(this).parents("tr")[0],e=a.s.select,j=a.s.dt.oInstance.fnGetPosition(d);if(d.parentNode==b.nTBody&&b.oInstance.fnGetData(d)!==null){if(e.type=="os")if(c.ctrlKey||c.metaKey)a.fnIsSelected(d)?a._fnRowDeselect(d,c):a._fnRowSelect(d,c);else
 if(c.shiftKey){var 
i=a.s.dt.aiDisplay.slice(),h=f.inArray(e.lastRow,i),o=f.inArray(j,i);if(a.fnGetSelected().length===0||h===-1)i.splice(f.inArray(j,
-i)+1,i.length);else{if(h>o)var 
g=o,o=h,h=g;i.splice(o+1,i.length);i.splice(0,h)}if(a.fnIsSelected(d)){i.splice(f.inArray(j,i),1);a._fnRowDeselect(i,c)}else
 a._fnRowSelect(i,c)}else 
if(a.fnIsSelected(d)&&a.fnGetSelected().length===1)a._fnRowDeselect(d,c);else{a.fnSelectNone();a._fnRowSelect(d,c)}else
 if(a.fnIsSelected(d))a._fnRowDeselect(d,c);else 
if(e.type=="single"){a.fnSelectNone();a._fnRowSelect(d,c)}else 
e.type=="multi"&&a._fnRowSelect(d,c);e.lastRow=j}});b.oApi._fnCallbackReg(b,"aoRowCreatedCallback",
-function(c,d,e){b.aoData[e]._DTTT_selected&&f(c).addClass(a.classes.select.row)},"TableTools-SelectAll")}},_fnRowSelect:function(a,b){var
 
c=this._fnSelectData(a),d=[],e,j;e=0;for(j=c.length;e<j;e++)c[e].nTr&&d.push(c[e].nTr);if(null===this.s.select.preRowSelect||this.s.select.preRowSelect.call(this,b,d,!0)){e=0;for(j=c.length;e<j;e++)c[e]._DTTT_selected=!0,c[e].nTr&&f(c[e].nTr).addClass(this.classes.select.row);null!==this.s.select.postSelected&&this.s.select.postSelected.call(this,d);TableTools._fnEventDispatch(this,
-"select",d,!0)}},_fnRowDeselect:function(a,b){var 
c=this._fnSelectData(a),d=[],e,j;e=0;for(j=c.length;e<j;e++)c[e].nTr&&d.push(c[e].nTr);if(null===this.s.select.preRowSelect||this.s.select.preRowSelect.call(this,b,d,!1)){e=0;for(j=c.length;e<j;e++)c[e]._DTTT_selected=!1,c[e].nTr&&f(c[e].nTr).removeClass(this.classes.select.row);null!==this.s.select.postDeselected&&this.s.select.postDeselected.call(this,d);TableTools._fnEventDispatch(this,"select",d,!1)}},_fnSelectData:function(a){var
 b=[],c,d,e;if(a.nodeName)c=
-this.s.dt.oInstance.fnGetPosition(a),b.push(this.s.dt.aoData[c]);else 
if("undefined"!==typeof 
a.length){d=0;for(e=a.length;d<e;d++)a[d].nodeName?(c=this.s.dt.oInstance.fnGetPosition(a[d]),b.push(this.s.dt.aoData[c])):"number"===typeof
 a[d]?b.push(this.s.dt.aoData[a[d]]):b.push(a[d])}else b.push(a);return 
b},_fnTextConfig:function(a,b){var 
c=this;null!==b.fnInit&&b.fnInit.call(this,a,b);""!==b.sToolTip&&(a.title=b.sToolTip);f(a).hover(function(){b.fnMouseover!==null&&b.fnMouseover.call(this,a,b,null)},
-function(){b.fnMouseout!==null&&b.fnMouseout.call(this,a,b,null)});null!==b.fnSelect&&TableTools._fnEventListen(this,"select",function(d){b.fnSelect.call(c,a,b,d)});f(a).click(function(d){b.fnClick!==null&&b.fnClick.call(c,a,b,null,d);b.fnComplete!==null&&b.fnComplete.call(c,a,b,null,null);c._fnCollectionHide(a,b)})},_fnHasFlash:function(){try{if(new
 
ActiveXObject("ShockwaveFlash.ShockwaveFlash"))return!0}catch(a){if(navigator.mimeTypes&&navigator.mimeTypes["application/x-shockwave-flash"]!==p&&navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin)return!0}return!1},
-_fnFlashConfig:function(a,b){var c=this,d=new 
g.Client;null!==b.fnInit&&b.fnInit.call(this,a,b);d.setHandCursor(!0);"flash_save"==b.sAction?(d.setAction("save"),d.setCharSet("utf16le"==b.sCharSet?"UTF16LE":"UTF8"),d.setBomInc(b.bBomInc),d.setFileName(b.sFileName.replace("*",this.fnGetTitle(b)))):"flash_pdf"==b.sAction?(d.setAction("pdf"),d.setFileName(b.sFileName.replace("*",this.fnGetTitle(b)))):d.setAction("copy");d.addEventListener("mouseOver",function(){b.fnMouseover!==null&&b.fnMouseover.call(c,
-a,b,d)});d.addEventListener("mouseOut",function(){b.fnMouseout!==null&&b.fnMouseout.call(c,a,b,d)});d.addEventListener("mouseDown",function(){b.fnClick!==null&&b.fnClick.call(c,a,b,d)});d.addEventListener("complete",function(e,f){b.fnComplete!==null&&b.fnComplete.call(c,a,b,d,f);c._fnCollectionHide(a,b)});this._fnFlashGlue(d,a,b.sToolTip)},_fnFlashGlue:function(a,b,c){var
 
d=this,e=b.getAttribute("id");k.getElementById(e)?a.glue(b,c):setTimeout(function(){d._fnFlashGlue(a,b,c)},100)},_fnFlashSetText:function(a,
-b){var c=this._fnChunkData(b,8192);a.clearText();for(var 
d=0,e=c.length;d<e;d++)a.appendText(c[d])},_fnColumnTargets:function(a){var 
b=[],c=this.s.dt,d,e;if("object"==typeof 
a){d=0;for(e=c.aoColumns.length;d<e;d++)b.push(!1);d=0;for(e=a.length;d<e;d++)b[a[d]]=!0}else
 
if("visible"==a){d=0;for(e=c.aoColumns.length;d<e;d++)b.push(c.aoColumns[d].bVisible?!0:!1)}else
 
if("hidden"==a){d=0;for(e=c.aoColumns.length;d<e;d++)b.push(c.aoColumns[d].bVisible?!1:!0)}else
 if("sortable"==a){d=0;for(e=c.aoColumns.length;d<
-e;d++)b.push(c.aoColumns[d].bSortable?!0:!1)}else{d=0;for(e=c.aoColumns.length;d<e;d++)b.push(!0)}return
 
b},_fnNewline:function(a){return"auto"==a.sNewLine?navigator.userAgent.match(/Windows/)?"\r\n":"\n":a.sNewLine},_fnGetDataTablesData:function(a){var
 
b,c,d,e,j,i=[],h="",g=this.s.dt,k,l=RegExp(a.sFieldBoundary,"g"),m=this._fnColumnTargets(a.mColumns),n="undefined"!=typeof
 
a.bSelectedOnly?a.bSelectedOnly:!1;if(a.bHeader){j=[];b=0;for(c=g.aoColumns.length;b<c;b++)m[b]&&(h=g.aoColumns[b].sTitle.replace(/\n/g,
-" 
").replace(/<.*?>/g,"").replace(/^\s+|\s+$/g,""),h=this._fnHtmlDecode(h),j.push(this._fnBoundData(h,a.sFieldBoundary,l)));i.push(j.join(a.sFieldSeperator))}var
 
p=this.fnGetSelected(),n="none"!==this.s.select.type&&n&&0!==p.length,q=(d=f.fn.dataTable.Api)?(new
 
d(g)).rows(a.oSelectorOpts).indexes().flatten().toArray():g.oInstance.$("tr",a.oSelectorOpts).map(function(a,b){return
 
n&&-1===f.inArray(b,p)?null:g.oInstance.fnGetPosition(b)}).get();d=0;for(e=q.length;d<e;d++){k=g.aoData[q[d]].nTr;j=[];b=
-0;for(c=g.aoColumns.length;b<c;b++)m[b]&&(h=g.oApi._fnGetCellData(g,q[d],b,"display"),a.fnCellRender?h=a.fnCellRender(h,b,k,q[d])+"":"string"==typeof
 h?(h=h.replace(/\n/g," 
"),h=h.replace(/<img.*?\s+alt\s*=\s*(?:"([^"]+)"|'([^']+)'|([^\s>]+)).*?>/gi,"$1$2$3"),h=h.replace(/<.*?>/g,"")):h+="",h=h.replace(/^\s+/,"").replace(/\s+$/,""),h=this._fnHtmlDecode(h),j.push(this._fnBoundData(h,a.sFieldBoundary,l)));i.push(j.join(a.sFieldSeperator));a.bOpenRows&&(b=f.grep(g.aoOpenRows,function(a){return
 a.nParent===
-k}),1===b.length&&(h=this._fnBoundData(f("td",b[0].nTr).html(),a.sFieldBoundary,l),i.push(h)))}if(a.bFooter&&null!==g.nTFoot){j=[];b=0;for(c=g.aoColumns.length;b<c;b++)m[b]&&null!==g.aoColumns[b].nTf&&(h=g.aoColumns[b].nTf.innerHTML.replace(/\n/g,"
 
").replace(/<.*?>/g,""),h=this._fnHtmlDecode(h),j.push(this._fnBoundData(h,a.sFieldBoundary,l)));i.push(j.join(a.sFieldSeperator))}return
 
i.join(this._fnNewline(a))},_fnBoundData:function(a,b,c){return""===b?a:b+a.replace(c,b+b)+b},_fnChunkData:function(a,
-b){for(var 
c=[],d=a.length,e=0;e<d;e+=b)e+b<d?c.push(a.substring(e,e+b)):c.push(a.substring(e,d));return
 c},_fnHtmlDecode:function(a){if(-1===a.indexOf("&"))return a;var 
b=k.createElement("div");return 
a.replace(/&([^\s]*?);/g,function(a,d){if("#"===a.substr(1,1))return 
String.fromCharCode(Number(d.substr(1)));b.innerHTML=a;return 
b.childNodes[0].nodeValue})},_fnPrintStart:function(a){var 
b=this,c=this.s.dt;this._fnPrintHideNodes(c.nTable);this.s.print.saveStart=c._iDisplayStart;this.s.print.saveLength=
-c._iDisplayLength;a.bShowAll&&(c._iDisplayStart=0,c._iDisplayLength=-1,c.oApi._fnCalculateEnd&&c.oApi._fnCalculateEnd(c),c.oApi._fnDraw(c));if(""!==c.oScroll.sX||""!==c.oScroll.sY)this._fnPrintScrollStart(c),f(this.s.dt.nTable).bind("draw.DTTT_Print",function(){b._fnPrintScrollStart(c)});var
 d=c.aanFeatures,e;for(e in d)if("i"!=e&&"t"!=e&&1==e.length)for(var 
g=0,i=d[e].length;g<i;g++)this.dom.print.hidden.push({node:d[e][g],display:"block"}),d[e][g].style.display="none";f(k.body).addClass(this.classes.print.body);
-""!==a.sInfo&&this.fnInfo(a.sInfo,3E3);a.sMessage&&f("<div/>").addClass(this.classes.print.message).html(a.sMessage).prependTo("body");this.s.print.saveScroll=f(m).scrollTop();m.scrollTo(0,0);f(k).bind("keydown.DTTT",function(a){if(a.keyCode==27){a.preventDefault();b._fnPrintEnd.call(b,a)}})},_fnPrintEnd:function(){var
 
a=this.s.dt,b=this.s.print;this._fnPrintShowNodes();if(""!==a.oScroll.sX||""!==a.oScroll.sY)f(this.s.dt.nTable).unbind("draw.DTTT_Print"),this._fnPrintScrollEnd();m.scrollTo(0,b.saveScroll);
-f("div."+this.classes.print.message).remove();f(k.body).removeClass("DTTT_Print");a._iDisplayStart=b.saveStart;a._iDisplayLength=b.saveLength;a.oApi._fnCalculateEnd&&a.oApi._fnCalculateEnd(a);a.oApi._fnDraw(a);f(k).unbind("keydown.DTTT")},_fnPrintScrollStart:function(){var
 
a=this.s.dt;a.nScrollHead.getElementsByTagName("div")[0].getElementsByTagName("table");var
 
b=a.nTable.parentNode,c;c=a.nTable.getElementsByTagName("thead");0<c.length&&a.nTable.removeChild(c[0]);null!==a.nTFoot&&(c=a.nTable.getElementsByTagName("tfoot"),
-0<c.length&&a.nTable.removeChild(c[0]));c=a.nTHead.cloneNode(!0);a.nTable.insertBefore(c,a.nTable.childNodes[0]);null!==a.nTFoot&&(c=a.nTFoot.cloneNode(!0),a.nTable.insertBefore(c,a.nTable.childNodes[1]));""!==a.oScroll.sX&&(a.nTable.style.width=f(a.nTable).outerWidth()+"px",b.style.width=f(a.nTable).outerWidth()+"px",b.style.overflow="visible");""!==a.oScroll.sY&&(b.style.height=f(a.nTable).outerHeight()+"px",b.style.overflow="visible")},_fnPrintScrollEnd:function(){var
 a=this.s.dt,b=a.nTable.parentNode;
-""!==a.oScroll.sX&&(b.style.width=a.oApi._fnStringToCss(a.oScroll.sX),b.style.overflow="auto");""!==a.oScroll.sY&&(b.style.height=a.oApi._fnStringToCss(a.oScroll.sY),b.style.overflow="auto")},_fnPrintShowNodes:function(){for(var
 
a=this.dom.print.hidden,b=0,c=a.length;b<c;b++)a[b].node.style.display=a[b].display;a.splice(0,a.length)},_fnPrintHideNodes:function(a){for(var
 
b=this.dom.print.hidden,c=a.parentNode,d=c.childNodes,e=0,g=d.length;e<g;e++)if(d[e]!=a&&1==d[e].nodeType){var
 i=f(d[e]).css("display");
-"none"!=i&&(b.push({node:d[e],display:i}),d[e].style.display="none")}"BODY"!=c.nodeName.toUpperCase()&&this._fnPrintHideNodes(c)}};TableTools._aInstances=[];TableTools._aListeners=[];TableTools.fnGetMasters=function(){for(var
 
a=[],b=0,c=TableTools._aInstances.length;b<c;b++)TableTools._aInstances[b].s.master&&a.push(TableTools._aInstances[b]);return
 a};TableTools.fnGetInstance=function(a){"object"!=typeof 
a&&(a=k.getElementById(a));for(var 
b=0,c=TableTools._aInstances.length;b<c;b++)if(TableTools._aInstances[b].s.master&&
-TableTools._aInstances[b].dom.table==a)return TableTools._aInstances[b];return 
null};TableTools._fnEventListen=function(a,b,c){TableTools._aListeners.push({that:a,type:b,fn:c})};TableTools._fnEventDispatch=function(a,b,c,d){for(var
 
e=TableTools._aListeners,f=0,g=e.length;f<g;f++)a.dom.table==e[f].that.dom.table&&e[f].type==b&&e[f].fn(c,d)};TableTools.buttonBase={sAction:"text",sTag:"default",sLinerTag:"default",sButtonClass:"DTTT_button_text",sButtonText:"Button
 text",sTitle:"",sToolTip:"",sCharSet:"utf8",
-bBomInc:!1,sFileName:"*.csv",sFieldBoundary:"",sFieldSeperator:"\t",sNewLine:"auto",mColumns:"all",bHeader:!0,bFooter:!0,bOpenRows:!1,bSelectedOnly:!1,oSelectorOpts:p,fnMouseover:null,fnMouseout:null,fnClick:null,fnSelect:null,fnComplete:null,fnInit:null,fnCellRender:null};TableTools.BUTTONS={csv:f.extend({},TableTools.buttonBase,{sAction:"flash_save",sButtonClass:"DTTT_button_csv",sButtonText:"CSV",sFieldBoundary:'"',sFieldSeperator:",",fnClick:function(a,b,c){this.fnSetText(c,this.fnGetTableData(b))}}),
-xls:f.extend({},TableTools.buttonBase,{sAction:"flash_save",sCharSet:"utf16le",bBomInc:!0,sButtonClass:"DTTT_button_xls",sButtonText:"Excel",fnClick:function(a,b,c){this.fnSetText(c,this.fnGetTableData(b))}}),copy:f.extend({},TableTools.buttonBase,{sAction:"flash_copy",sButtonClass:"DTTT_button_copy",sButtonText:"Copy",fnClick:function(a,b,c){this.fnSetText(c,this.fnGetTableData(b))},fnComplete:function(a,b,c,d){a=d.split("\n").length;b.bHeader&&a--;null!==this.s.dt.nTFoot&&b.bFooter&&a--;this.fnInfo("<h6>Table
 copied</h6><p>Copied "+
-a+" row"+(1==a?"":"s")+" to the 
clipboard.</p>",1500)}}),pdf:f.extend({},TableTools.buttonBase,{sAction:"flash_pdf",sNewLine:"\n",sFileName:"*.pdf",sButtonClass:"DTTT_button_pdf",sButtonText:"PDF",sPdfOrientation:"portrait",sPdfSize:"A4",sPdfMessage:"",fnClick:function(a,b,c){this.fnSetText(c,"title:"+this.fnGetTitle(b)+"\nmessage:"+b.sPdfMessage+"\ncolWidth:"+this.fnCalcColRatios(b)+"\norientation:"+b.sPdfOrientation+"\nsize:"+b.sPdfSize+"\n--/TableToolsOpts--\n"+this.fnGetTableData(b))}}),print:f.extend({},
-TableTools.buttonBase,{sInfo:"<h6>Print view</h6><p>Please use your browser's 
print function to print this table. Press escape when 
finished.</p>",sMessage:null,bShowAll:!0,sToolTip:"View print 
view",sButtonClass:"DTTT_button_print",sButtonText:"Print",fnClick:function(a,b){this.fnPrint(!0,b)}}),text:f.extend({},TableTools.buttonBase),select:f.extend({},TableTools.buttonBase,{sButtonText:"Select
 
button",fnSelect:function(a){0!==this.fnGetSelected().length?f(a).removeClass(this.classes.buttons.disabled):
-f(a).addClass(this.classes.buttons.disabled)},fnInit:function(a){f(a).addClass(this.classes.buttons.disabled)}}),select_single:f.extend({},TableTools.buttonBase,{sButtonText:"Select
 
button",fnSelect:function(a){1==this.fnGetSelected().length?f(a).removeClass(this.classes.buttons.disabled):f(a).addClass(this.classes.buttons.disabled)},fnInit:function(a){f(a).addClass(this.classes.buttons.disabled)}}),select_all:f.extend({},TableTools.buttonBase,{sButtonText:"Select
 all",fnClick:function(){this.fnSelectAll()},
-fnSelect:function(a){this.fnGetSelected().length==this.s.dt.fnRecordsDisplay()?f(a).addClass(this.classes.buttons.disabled):f(a).removeClass(this.classes.buttons.disabled)}}),select_none:f.extend({},TableTools.buttonBase,{sButtonText:"Deselect
 
all",fnClick:function(){this.fnSelectNone()},fnSelect:function(a){0!==this.fnGetSelected().length?f(a).removeClass(this.classes.buttons.disabled):f(a).addClass(this.classes.buttons.disabled)},fnInit:function(a){f(a).addClass(this.classes.buttons.disabled)}}),
-ajax:f.extend({},TableTools.buttonBase,{sAjaxUrl:"/xhr.php",sButtonText:"Ajax 
button",fnClick:function(a,b){var 
c=this.fnGetTableData(b);f.ajax({url:b.sAjaxUrl,data:[{name:"tableData",value:c}],success:b.fnAjaxComplete,dataType:"json",type:"POST",cache:!1,error:function(){alert("Error
 detected when sending table data to 
server")}})},fnAjaxComplete:function(){alert("Ajax 
complete")}}),div:f.extend({},TableTools.buttonBase,{sAction:"div",sTag:"div",sButtonClass:"DTTT_nonbutton",sButtonText:"Text
 button"}),
-collection:f.extend({},TableTools.buttonBase,{sAction:"collection",sButtonClass:"DTTT_button_collection",sButtonText:"Collection",fnClick:function(a,b){this._fnCollectionShow(a,b)}})};TableTools.buttons=TableTools.BUTTONS;TableTools.classes={container:"DTTT_container",buttons:{normal:"DTTT_button",disabled:"DTTT_disabled"},collection:{container:"DTTT_collection",background:"DTTT_collection_background",buttons:{normal:"DTTT_button",disabled:"DTTT_disabled"}},select:{table:"DTTT_selectable",row:"DTTT_selected
 selected"},
-print:{body:"DTTT_Print",info:"DTTT_print_info",message:"DTTT_PrintMessage"}};TableTools.classes_themeroller={container:"DTTT_container
 ui-buttonset ui-buttonset-multi",buttons:{normal:"DTTT_button ui-button 
ui-state-default"},collection:{container:"DTTT_collection ui-buttonset 
ui-buttonset-multi"}};TableTools.DEFAULTS={sSwfPath:"../swf/copy_csv_xls_pdf.swf",sRowSelect:"none",sRowSelector:"tr",sSelectedClass:null,fnPreRowSelect:null,fnRowSelected:null,fnRowDeselected:null,aButtons:["copy","csv","xls",
-"pdf","print"],oTags:{container:"div",button:"a",liner:"span",collection:{container:"div",button:"a",liner:"span"}}};TableTools.defaults=TableTools.DEFAULTS;TableTools.prototype.CLASS="TableTools";TableTools.version="2.2.2";f.fn.dataTable.Api&&f.fn.dataTable.Api.register("tabletools()",function(){var
 
a=null;0<this.context.length&&(a=TableTools.fnGetInstance(this.context[0].nTable));return
 a});"function"==typeof f.fn.dataTable&&"function"==typeof 
f.fn.dataTableExt.fnVersionCheck&&f.fn.dataTableExt.fnVersionCheck("1.9.0")?
-f.fn.dataTableExt.aoFeatures.push({fnInit:function(a){var b=a.oInit;return(new 
TableTools(a.oInstance,b?b.tableTools||b.oTableTools||{}:{})).dom.container},cFeature:"T",sFeature:"TableTools"}):alert("Warning:
 TableTools requires DataTables 1.9.0 or newer - 
www.datatables.net/download");f.fn.DataTable.TableTools=TableTools;"function"==typeof
 n.fn.dataTable&&"function"==typeof 
n.fn.dataTableExt.fnVersionCheck&&n.fn.dataTableExt.fnVersionCheck("1.9.0")?n.fn.dataTableExt.aoFeatures.push({fnInit:function(a){a=
-new TableTools(a.oInstance,"undefined"!=typeof 
a.oInit.oTableTools?a.oInit.oTableTools:{});TableTools._aInstances.push(a);return
 a.dom.container},cFeature:"T",sFeature:"TableTools"}):alert("Warning: 
TableTools 2 requires DataTables 1.9.0 or newer - 
www.datatables.net/download");n.fn.dataTable.TableTools=TableTools;return 
n.fn.DataTable.TableTools=TableTools};"function"===typeof 
define&&define.amd?define(["jquery","datatables"],r):"object"===typeof 
exports?r(require("jquery"),require("datatables")):
-jQuery&&!jQuery.fn.dataTable.TableTools&&r(jQuery,jQuery.fn.dataTable)})(window,document);
+this.recoverActive&&this.domElement.addClass("active");break;case 
"mouseout":this.domElement&&this.cssEffects&&(this.recoverActive=!1,this.domElement.hasClass("active")&&(this.domElement.removeClass("active"),this.recoverActive=!0));break;case
 
"mousedown":this.domElement&&this.cssEffects&&this.domElement.addClass("active");break;case
 
"mouseup":this.domElement&&this.cssEffects&&(this.domElement.removeClass("active"),this.recoverActive=!1)}if(this.handlers[a])for(var
 d=0,f=this.handlers[a].length;d<
+f;d++){var e=this.handlers[a][d];if("function"==typeof e)e(this,b);else 
if("object"==typeof e&&2==e.length)e[0][e[1]](this,b);else if("string"==typeof 
e)n[e](this,b)}}};n.ZeroClipboard_TableTools=g;var 
e=jQuery;TableTools=function(a,b){!this instanceof TableTools&&alert("Warning: 
TableTools must be initialised with the keyword 
'new'");this.s={that:this,dt:e.fn.dataTable.Api?(new 
e.fn.dataTable.Api(a)).settings()[0]:a.fnSettings(),print:{saveStart:-1,saveLength:-1,saveScroll:-1,funcEnd:function(){}},
+buttonCounter:0,select:{type:"",selected:[],preRowSelect:null,postSelected:null,postDeselected:null,all:!1,selectedClass:""},custom:{},swfPath:"",buttonSet:[],master:!1,tags:{}};this.dom={container:null,table:null,print:{hidden:[],message:null},collection:{collection:null,background:null}};this.classes=e.extend(!0,{},TableTools.classes);this.s.dt.bJUI&&e.extend(!0,this.classes,TableTools.classes_themeroller);this.fnSettings=function(){return
 this.s};"undefined"==typeof b&&(b={});TableTools._aInstances.push(this);
+this._fnConstruct(b);return 
this};TableTools.prototype={fnGetSelected:function(a){var 
b=[],c=this.s.dt.aoData,d=this.s.dt.aiDisplay,f;if(a){a=0;for(f=d.length;a<f;a++)c[d[a]]._DTTT_selected&&b.push(c[d[a]].nTr)}else{a=0;for(f=c.length;a<f;a++)c[a]._DTTT_selected&&b.push(c[a].nTr)}return
 b},fnGetSelectedData:function(){var 
a=[],b=this.s.dt.aoData,c,d;c=0;for(d=b.length;c<d;c++)b[c]._DTTT_selected&&a.push(this.s.dt.oInstance.fnGetData(c));return
 a},fnGetSelectedIndexes:function(a){var b=[],c=this.s.dt.aoData,
+d=this.s.dt.aiDisplay,f;if(a){a=0;for(f=d.length;a<f;a++)c[d[a]]._DTTT_selected&&b.push(d[a])}else{a=0;for(f=c.length;a<f;a++)c[a]._DTTT_selected&&b.push(a)}return
 
b},fnIsSelected:function(a){a=this.s.dt.oInstance.fnGetPosition(a);return!0===this.s.dt.aoData[a]._DTTT_selected?!0:!1},fnSelectAll:function(a){this._fnRowSelect(a?this.s.dt.aiDisplay:this.s.dt.aoData)},fnSelectNone:function(a){this._fnRowDeselect(this.fnGetSelectedIndexes(a))},fnSelect:function(a){"single"==this.s.select.type&&this.fnSelectNone();
+this._fnRowSelect(a)},fnDeselect:function(a){this._fnRowDeselect(a)},fnGetTitle:function(a){var
 b="";"undefined"!=typeof 
a.sTitle&&""!==a.sTitle?b=a.sTitle:(a=k.getElementsByTagName("title"),0<a.length&&(b=a[0].innerHTML));return
 4>"¡".toString().length?b.replace(/[^a-zA-Z0-9_\u00A1-\uFFFF\.,\-_ 
!\(\)]/g,""):b.replace(/[^a-zA-Z0-9_\.,\-_ 
!\(\)]/g,"")},fnCalcColRatios:function(a){var 
b=this.s.dt.aoColumns,a=this._fnColumnTargets(a.mColumns),c=[],d=0,f=0,e,i;e=0;for(i=a.length;e<i;e++)a[e]&&(d=b[e].nTh.offsetWidth,
+f+=d,c.push(d));e=0;for(i=c.length;e<i;e++)c[e]/=f;return 
c.join("\t")},fnGetTableData:function(a){if(this.s.dt)return 
this._fnGetDataTablesData(a)},fnSetText:function(a,b){this._fnFlashSetText(a,b)},fnResizeButtons:function(){for(var
 a in g.clients)if(a){var b=g.clients[a];"undefined"!=typeof 
b.domElement&&b.domElement.parentNode&&b.positionElement()}},fnResizeRequired:function(){for(var
 a in g.clients)if(a){var b=g.clients[a];if("undefined"!=typeof 
b.domElement&&b.domElement.parentNode==this.dom.container&&
+!1===b.sized)return!0}return!1},fnPrint:function(a,b){b===q&&(b={});a===q||a?this._fnPrintStart(b):this._fnPrintEnd()},fnInfo:function(a,b){var
 
c=e("<div/>").addClass(this.classes.print.info).html(a).appendTo("body");setTimeout(function(){c.fadeOut("normal",function(){c.remove()})},b)},fnContainer:function(){return
 this.dom.container},_fnConstruct:function(a){var 
b=this;this._fnCustomiseSettings(a);this.dom.container=k.createElement(this.s.tags.container);this.dom.container.className=this.classes.container;
+"none"!=this.s.select.type&&this._fnRowSelectConfig();this._fnButtonDefinations(this.s.buttonSet,this.dom.container);this.s.dt.aoDestroyCallback.push({sName:"TableTools",fn:function(){e(b.s.dt.nTBody).off("click.DTTT_Select","tr");e(b.dom.container).empty();var
 
a=e.inArray(b,TableTools._aInstances);-1!==a&&TableTools._aInstances.splice(a,1)}})},_fnCustomiseSettings:function(a){"undefined"==typeof
 
this.s.dt._TableToolsInit&&(this.s.master=!0,this.s.dt._TableToolsInit=!0);this.dom.table=this.s.dt.nTable;
+this.s.custom=e.extend({},TableTools.DEFAULTS,a);this.s.swfPath=this.s.custom.sSwfPath;"undefined"!=typeof
 
g&&(g.moviePath=this.s.swfPath);this.s.select.type=this.s.custom.sRowSelect;this.s.select.preRowSelect=this.s.custom.fnPreRowSelect;this.s.select.postSelected=this.s.custom.fnRowSelected;this.s.select.postDeselected=this.s.custom.fnRowDeselected;this.s.custom.sSelectedClass&&(this.classes.select.row=this.s.custom.sSelectedClass);this.s.tags=this.s.custom.oTags;this.s.buttonSet=this.s.custom.aButtons},
+_fnButtonDefinations:function(a,b){for(var 
c,d=0,f=a.length;d<f;d++){if("string"==typeof a[d]){if("undefined"==typeof 
TableTools.BUTTONS[a[d]]){alert("TableTools: Warning - unknown button type: 
"+a[d]);continue}c=e.extend({},TableTools.BUTTONS[a[d]],!0)}else{if("undefined"==typeof
 TableTools.BUTTONS[a[d].sExtends]){alert("TableTools: Warning - unknown button 
type: 
"+a[d].sExtends);continue}c=e.extend({},TableTools.BUTTONS[a[d].sExtends],!0);c=e.extend(c,a[d],!0)}(c=this._fnCreateButton(c,e(b).hasClass(this.classes.collection.container)))&&
+b.appendChild(c)}},_fnCreateButton:function(a,b){var 
c=this._fnButtonBase(a,b);if(a.sAction.match(/flash/)){if(!this._fnHasFlash())return!1;this._fnFlashConfig(c,a)}else"text"==a.sAction?this._fnTextConfig(c,a):"div"==a.sAction?this._fnTextConfig(c,a):"collection"==a.sAction&&(this._fnTextConfig(c,a),this._fnCollectionConfig(c,a));if(-1!==this.s.dt.iTabIndex)e(c).attr("tabindex",this.s.dt.iTabIndex).attr("aria-controls",this.s.dt.sTableId).on("keyup.DTTT",function(a){13===a.keyCode&&(a.stopPropagation(),
+e(this).trigger("click"))}).on("mousedown.DTTT",function(b){a.sAction.match(/flash/)||b.preventDefault()});return
 c},_fnButtonBase:function(a,b){var 
c,d,f;b?(c=a.sTag&&"default"!==a.sTag?a.sTag:this.s.tags.collection.button,d=a.sLinerTag&&"default"!==a.sLinerTag?a.sLiner:this.s.tags.collection.liner,f=this.classes.collection.buttons.normal):(c=a.sTag&&"default"!==a.sTag?a.sTag:this.s.tags.button,d=a.sLinerTag&&"default"!==a.sLinerTag?a.sLiner:this.s.tags.liner,f=this.classes.buttons.normal);c=k.createElement(c);
+d=k.createElement(d);var e=this._fnGetMasterSettings();c.className=f+" 
"+a.sButtonClass;c.setAttribute("id","ToolTables_"+this.s.dt.sInstance+"_"+e.buttonCounter);c.appendChild(d);d.innerHTML=a.sButtonText;e.buttonCounter++;return
 c},_fnGetMasterSettings:function(){if(this.s.master)return this.s;for(var 
a=TableTools._aInstances,b=0,c=a.length;b<c;b++)if(this.dom.table==a[b].s.dt.nTable)return
 a[b].s},_fnCollectionConfig:function(a,b){var 
c=k.createElement(this.s.tags.collection.container);c.style.display=
+"none";c.className=this.classes.collection.container;b._collection=c;k.body.appendChild(c);this._fnButtonDefinations(b.aButtons,c)},_fnCollectionShow:function(a,b){var
 
c=this,d=e(a).offset(),f=b._collection,j=d.left,d=d.top+e(a).outerHeight(),i=e(n).height(),h=e(k).height(),o=e(n).width(),g=e(k).width();f.style.position="absolute";f.style.left=j+"px";f.style.top=d+"px";f.style.display="block";e(f).css("opacity",0);var
 
l=k.createElement("div");l.style.position="absolute";l.style.left="0px";l.style.top=
+"0px";l.style.height=(i>h?i:h)+"px";l.style.width=(o>g?o:g)+"px";l.className=this.classes.collection.background;e(l).css("opacity",0);k.body.appendChild(l);k.body.appendChild(f);i=e(f).outerWidth();o=e(f).outerHeight();j+i>g&&(f.style.left=g-i+"px");d+o>h&&(f.style.top=d-o-e(a).outerHeight()+"px");this.dom.collection.collection=f;this.dom.collection.background=l;setTimeout(function(){e(f).animate({opacity:1},500);e(l).animate({opacity:0.25},500)},10);this.fnResizeButtons();e(l).click(function(){c._fnCollectionHide.call(c,
+null,null)})},_fnCollectionHide:function(a,b){!(null!==b&&"collection"==b.sExtends)&&null!==this.dom.collection.collection&&(e(this.dom.collection.collection).animate({opacity:0},500,function(){this.style.display="none"}),e(this.dom.collection.background).animate({opacity:0},500,function(){this.parentNode.removeChild(this)}),this.dom.collection.collection=null,this.dom.collection.background=null)},_fnRowSelectConfig:function(){if(this.s.master){var
 a=this,b=this.s.dt;e(b.nTable).addClass(this.classes.select.table);
+"os"===this.s.select.type&&(e(b.nTBody).on("mousedown.DTTT_Select","tr",function(a){if(a.shiftKey)e(b.nTBody).css("-moz-user-select","none").one("selectstart.DTTT_Select","tr",function(){return!1})}),e(b.nTBody).on("mouseup.DTTT_Select","tr",function(){e(b.nTBody).css("-moz-user-select","")}));e(b.nTBody).on("click.DTTT_Select",this.s.custom.sRowSelector,function(c){var
 
d=this.nodeName.toLowerCase()==="tr"?this:e(this).parents("tr")[0],f=a.s.select,j=a.s.dt.oInstance.fnGetPosition(d);if(d.parentNode==
+b.nTBody&&b.oInstance.fnGetData(d)!==null){if(f.type=="os")if(c.ctrlKey||c.metaKey)a.fnIsSelected(d)?a._fnRowDeselect(d,c):a._fnRowSelect(d,c);else
 if(c.shiftKey){var 
i=a.s.dt.aiDisplay.slice(),h=e.inArray(f.lastRow,i),o=e.inArray(j,i);if(a.fnGetSelected().length===0||h===-1)i.splice(e.inArray(j,i)+1,i.length);else{if(h>o)var
 
g=o,o=h,h=g;i.splice(o+1,i.length);i.splice(0,h)}if(a.fnIsSelected(d)){i.splice(e.inArray(j,i),1);a._fnRowDeselect(i,c)}else
 a._fnRowSelect(i,c)}else if(a.fnIsSelected(d)&&a.fnGetSelected().length===
+1)a._fnRowDeselect(d,c);else{a.fnSelectNone();a._fnRowSelect(d,c)}else 
if(a.fnIsSelected(d))a._fnRowDeselect(d,c);else 
if(f.type=="single"){a.fnSelectNone();a._fnRowSelect(d,c)}else 
f.type=="multi"&&a._fnRowSelect(d,c);f.lastRow=j}});b.oApi._fnCallbackReg(b,"aoRowCreatedCallback",function(c,d,f){b.aoData[f]._DTTT_selected&&e(c).addClass(a.classes.select.row)},"TableTools-SelectAll")}},_fnRowSelect:function(a,b){var
 
c=this._fnSelectData(a),d=[],f,j;f=0;for(j=c.length;f<j;f++)c[f].nTr&&d.push(c[f].nTr);
+if(null===this.s.select.preRowSelect||this.s.select.preRowSelect.call(this,b,d,!0)){f=0;for(j=c.length;f<j;f++)c[f]._DTTT_selected=!0,c[f].nTr&&e(c[f].nTr).addClass(this.classes.select.row);null!==this.s.select.postSelected&&this.s.select.postSelected.call(this,d);TableTools._fnEventDispatch(this,"select",d,!0)}},_fnRowDeselect:function(a,b){var
 
c=this._fnSelectData(a),d=[],f,j;f=0;for(j=c.length;f<j;f++)c[f].nTr&&d.push(c[f].nTr);if(null===this.s.select.preRowSelect||this.s.select.preRowSelect.call(this,
+b,d,!1)){f=0;for(j=c.length;f<j;f++)c[f]._DTTT_selected=!1,c[f].nTr&&e(c[f].nTr).removeClass(this.classes.select.row);null!==this.s.select.postDeselected&&this.s.select.postDeselected.call(this,d);TableTools._fnEventDispatch(this,"select",d,!1)}},_fnSelectData:function(a){var
 
b=[],c,d,f;if(a.nodeName)c=this.s.dt.oInstance.fnGetPosition(a),b.push(this.s.dt.aoData[c]);else
 if("undefined"!==typeof 
a.length){d=0;for(f=a.length;d<f;d++)a[d].nodeName?(c=this.s.dt.oInstance.fnGetPosition(a[d]),b.push(this.s.dt.aoData[c])):
+"number"===typeof a[d]?b.push(this.s.dt.aoData[a[d]]):b.push(a[d])}else 
b.push(a);return b},_fnTextConfig:function(a,b){var 
c=this;null!==b.fnInit&&b.fnInit.call(this,a,b);""!==b.sToolTip&&(a.title=b.sToolTip);e(a).hover(function(){b.fnMouseover!==null&&b.fnMouseover.call(this,a,b,null)},function(){b.fnMouseout!==null&&b.fnMouseout.call(this,a,b,null)});null!==b.fnSelect&&TableTools._fnEventListen(this,"select",function(d){b.fnSelect.call(c,a,b,d)});e(a).click(function(d){b.fnClick!==null&&b.fnClick.call(c,
+a,b,null,d);b.fnComplete!==null&&b.fnComplete.call(c,a,b,null,null);c._fnCollectionHide(a,b)})},_fnHasFlash:function(){try{if(new
 
ActiveXObject("ShockwaveFlash.ShockwaveFlash"))return!0}catch(a){if(navigator.mimeTypes&&navigator.mimeTypes["application/x-shockwave-flash"]!==q&&navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin)return!0}return!1},_fnFlashConfig:function(a,b){var
 c=this,d=new 
g.Client;null!==b.fnInit&&b.fnInit.call(this,a,b);d.setHandCursor(!0);"flash_save"==b.sAction?
+(d.setAction("save"),d.setCharSet("utf16le"==b.sCharSet?"UTF16LE":"UTF8"),d.setBomInc(b.bBomInc),d.setFileName(b.sFileName.replace("*",this.fnGetTitle(b)))):"flash_pdf"==b.sAction?(d.setAction("pdf"),d.setFileName(b.sFileName.replace("*",this.fnGetTitle(b)))):d.setAction("copy");d.addEventListener("mouseOver",function(){b.fnMouseover!==null&&b.fnMouseover.call(c,a,b,d)});d.addEventListener("mouseOut",function(){b.fnMouseout!==null&&b.fnMouseout.call(c,a,b,d)});d.addEventListener("mouseDown",function(){b.fnClick!==
+null&&b.fnClick.call(c,a,b,d)});d.addEventListener("complete",function(f,e){b.fnComplete!==null&&b.fnComplete.call(c,a,b,d,e);c._fnCollectionHide(a,b)});this._fnFlashGlue(d,a,b.sToolTip)},_fnFlashGlue:function(a,b,c){var
 
d=this,f=b.getAttribute("id");k.getElementById(f)?a.glue(b,c):setTimeout(function(){d._fnFlashGlue(a,b,c)},100)},_fnFlashSetText:function(a,b){var
 c=this._fnChunkData(b,8192);a.clearText();for(var 
d=0,f=c.length;d<f;d++)a.appendText(c[d])},_fnColumnTargets:function(a){var 
b=[],c=
+this.s.dt,d,f=c.aoColumns;d=f.length;if("function"==typeof 
a){a=a.call(this,c);for(c=0;c<d;c++)b.push(-1!==e.inArray(c,a)?!0:!1)}else 
if("object"==typeof 
a){for(c=0;c<d;c++)b.push(!1);c=0;for(d=a.length;c<d;c++)b[a[c]]=!0}else 
if("visible"==a)for(c=0;c<d;c++)b.push(f[c].bVisible?!0:!1);else 
if("hidden"==a)for(c=0;c<d;c++)b.push(f[c].bVisible?!1:!0);else 
if("sortable"==a)for(c=0;c<d;c++)b.push(f[c].bSortable?!0:!1);else 
for(c=0;c<d;c++)b.push(!0);return 
b},_fnNewline:function(a){return"auto"==a.sNewLine?
+navigator.userAgent.match(/Windows/)?"\r\n":"\n":a.sNewLine},_fnGetDataTablesData:function(a){var
 
b,c,d,f,j,i=[],h="",g=this.s.dt,k,l=RegExp(a.sFieldBoundary,"g"),n=this._fnColumnTargets(a.mColumns);d="undefined"!=typeof
 
a.bSelectedOnly?a.bSelectedOnly:!1;if(a.bHeader){j=[];b=0;for(c=g.aoColumns.length;b<c;b++)n[b]&&(h=g.aoColumns[b].sTitle.replace(/\n/g,"
 
").replace(/<.*?>/g,"").replace(/^\s+|\s+$/g,""),h=this._fnHtmlDecode(h),j.push(this._fnBoundData(h,a.sFieldBoundary,l)));i.push(j.join(a.sFieldSeperator))}d=
+!0;var 
m;f=this.fnGetSelectedIndexes();m=(d="none"!==this.s.select.type&&d&&0!==f.length)?f:p.Api?(new
 
p.Api(g)).rows(a.oSelectorOpts).indexes().flatten().toArray():g.oInstance.$("tr",a.oSelectorOpts).map(function(a,b){return
 
g.oInstance.fnGetPosition(b)}).get();d=0;for(f=m.length;d<f;d++){k=g.aoData[m[d]].nTr;j=[];b=0;for(c=g.aoColumns.length;b<c;b++)n[b]&&(h=g.oApi._fnGetCellData(g,m[d],b,"display"),a.fnCellRender?h=a.fnCellRender(h,b,k,m[d])+"":"string"==typeof
 h?(h=h.replace(/\n/g," 
"),h=h.replace(/<img.*?\s+alt\s*=\s*(?:"([^"]+)"|'([^']+)'|([^\s>]+)).*?>/gi,
+"$1$2$3"),h=h.replace(/<.*?>/g,"")):h+="",h=h.replace(/^\s+/,"").replace(/\s+$/,""),h=this._fnHtmlDecode(h),j.push(this._fnBoundData(h,a.sFieldBoundary,l)));i.push(j.join(a.sFieldSeperator));a.bOpenRows&&(b=e.grep(g.aoOpenRows,function(a){return
 
a.nParent===k}),1===b.length&&(h=this._fnBoundData(e("td",b[0].nTr).html(),a.sFieldBoundary,l),i.push(h)))}if(a.bFooter&&null!==g.nTFoot){j=[];b=0;for(c=g.aoColumns.length;b<c;b++)n[b]&&null!==g.aoColumns[b].nTf&&(h=g.aoColumns[b].nTf.innerHTML.replace(/\n/g,
+" 
").replace(/<.*?>/g,""),h=this._fnHtmlDecode(h),j.push(this._fnBoundData(h,a.sFieldBoundary,l)));i.push(j.join(a.sFieldSeperator))}return
 
i.join(this._fnNewline(a))},_fnBoundData:function(a,b,c){return""===b?a:b+a.replace(c,b+b)+b},_fnChunkData:function(a,b){for(var
 
c=[],d=a.length,f=0;f<d;f+=b)f+b<d?c.push(a.substring(f,f+b)):c.push(a.substring(f,d));return
 c},_fnHtmlDecode:function(a){if(-1===a.indexOf("&"))return a;var 
b=k.createElement("div");return a.replace(/&([^\s]*?);/g,function(a,d){if("#"===
+a.substr(1,1))return 
String.fromCharCode(Number(d.substr(1)));b.innerHTML=a;return 
b.childNodes[0].nodeValue})},_fnPrintStart:function(a){var 
b=this,c=this.s.dt;this._fnPrintHideNodes(c.nTable);this.s.print.saveStart=c._iDisplayStart;this.s.print.saveLength=c._iDisplayLength;a.bShowAll&&(c._iDisplayStart=0,c._iDisplayLength=-1,c.oApi._fnCalculateEnd&&c.oApi._fnCalculateEnd(c),c.oApi._fnDraw(c));if(""!==c.oScroll.sX||""!==c.oScroll.sY)this._fnPrintScrollStart(c),e(this.s.dt.nTable).bind("draw.DTTT_Print",
+function(){b._fnPrintScrollStart(c)});var d=c.aanFeatures,f;for(f in 
d)if("i"!=f&&"t"!=f&&1==f.length)for(var 
g=0,i=d[f].length;g<i;g++)this.dom.print.hidden.push({node:d[f][g],display:"block"}),d[f][g].style.display="none";e(k.body).addClass(this.classes.print.body);""!==a.sInfo&&this.fnInfo(a.sInfo,3E3);a.sMessage&&e("<div/>").addClass(this.classes.print.message).html(a.sMessage).prependTo("body");this.s.print.saveScroll=e(n).scrollTop();n.scrollTo(0,0);e(k).bind("keydown.DTTT",function(a){if(a.keyCode==
+27){a.preventDefault();b._fnPrintEnd.call(b,a)}})},_fnPrintEnd:function(){var 
a=this.s.dt,b=this.s.print;this._fnPrintShowNodes();if(""!==a.oScroll.sX||""!==a.oScroll.sY)e(this.s.dt.nTable).unbind("draw.DTTT_Print"),this._fnPrintScrollEnd();n.scrollTo(0,b.saveScroll);e("div."+this.classes.print.message).remove();e(k.body).removeClass("DTTT_Print");a._iDisplayStart=b.saveStart;a._iDisplayLength=b.saveLength;a.oApi._fnCalculateEnd&&a.oApi._fnCalculateEnd(a);a.oApi._fnDraw(a);e(k).unbind("keydown.DTTT")},
+_fnPrintScrollStart:function(){var 
a=this.s.dt;a.nScrollHead.getElementsByTagName("div")[0].getElementsByTagName("table");var
 
b=a.nTable.parentNode,c;c=a.nTable.getElementsByTagName("thead");0<c.length&&a.nTable.removeChild(c[0]);null!==a.nTFoot&&(c=a.nTable.getElementsByTagName("tfoot"),0<c.length&&a.nTable.removeChild(c[0]));c=a.nTHead.cloneNode(!0);a.nTable.insertBefore(c,a.nTable.childNodes[0]);null!==a.nTFoot&&(c=a.nTFoot.cloneNode(!0),a.nTable.insertBefore(c,a.nTable.childNodes[1]));""!==a.oScroll.sX&&
+(a.nTable.style.width=e(a.nTable).outerWidth()+"px",b.style.width=e(a.nTable).outerWidth()+"px",b.style.overflow="visible");""!==a.oScroll.sY&&(b.style.height=e(a.nTable).outerHeight()+"px",b.style.overflow="visible")},_fnPrintScrollEnd:function(){var
 
a=this.s.dt,b=a.nTable.parentNode;""!==a.oScroll.sX&&(b.style.width=a.oApi._fnStringToCss(a.oScroll.sX),b.style.overflow="auto");""!==a.oScroll.sY&&(b.style.height=a.oApi._fnStringToCss(a.oScroll.sY),b.style.overflow="auto")},_fnPrintShowNodes:function(){for(var
 a=
+this.dom.print.hidden,b=0,c=a.length;b<c;b++)a[b].node.style.display=a[b].display;a.splice(0,a.length)},_fnPrintHideNodes:function(a){for(var
 
b=this.dom.print.hidden,c=a.parentNode,d=c.childNodes,f=0,g=d.length;f<g;f++)if(d[f]!=a&&1==d[f].nodeType){var
 
i=e(d[f]).css("display");"none"!=i&&(b.push({node:d[f],display:i}),d[f].style.display="none")}"BODY"!=c.nodeName.toUpperCase()&&this._fnPrintHideNodes(c)}};TableTools._aInstances=[];TableTools._aListeners=[];TableTools.fnGetMasters=function(){for(var
 a=
+[],b=0,c=TableTools._aInstances.length;b<c;b++)TableTools._aInstances[b].s.master&&a.push(TableTools._aInstances[b]);return
 a};TableTools.fnGetInstance=function(a){"object"!=typeof 
a&&(a=k.getElementById(a));for(var 
b=0,c=TableTools._aInstances.length;b<c;b++)if(TableTools._aInstances[b].s.master&&TableTools._aInstances[b].dom.table==a)return
 TableTools._aInstances[b];return 
null};TableTools._fnEventListen=function(a,b,c){TableTools._aListeners.push({that:a,type:b,fn:c})};TableTools._fnEventDispatch=
+function(a,b,c,d){for(var 
f=TableTools._aListeners,e=0,g=f.length;e<g;e++)a.dom.table==f[e].that.dom.table&&f[e].type==b&&f[e].fn(c,d)};TableTools.buttonBase={sAction:"text",sTag:"default",sLinerTag:"default",sButtonClass:"DTTT_button_text",sButtonText:"Button
 
text",sTitle:"",sToolTip:"",sCharSet:"utf8",bBomInc:!1,sFileName:"*.csv",sFieldBoundary:"",sFieldSeperator:"\t",sNewLine:"auto",mColumns:"all",bHeader:!0,bFooter:!0,bOpenRows:!1,bSelectedOnly:!1,oSelectorOpts:q,fnMouseover:null,fnMouseout:null,
+fnClick:null,fnSelect:null,fnComplete:null,fnInit:null,fnCellRender:null};TableTools.BUTTONS={csv:e.extend({},TableTools.buttonBase,{sAction:"flash_save",sButtonClass:"DTTT_button_csv",sButtonText:"CSV",sFieldBoundary:'"',sFieldSeperator:",",fnClick:function(a,b,c){this.fnSetText(c,this.fnGetTableData(b))}}),xls:e.extend({},TableTools.buttonBase,{sAction:"flash_save",sCharSet:"utf16le",bBomInc:!0,sButtonClass:"DTTT_button_xls",sButtonText:"Excel",fnClick:function(a,b,c){this.fnSetText(c,this.fnGetTableData(b))}}),
+copy:e.extend({},TableTools.buttonBase,{sAction:"flash_copy",sButtonClass:"DTTT_button_copy",sButtonText:"Copy",fnClick:function(a,b,c){this.fnSetText(c,this.fnGetTableData(b))},fnComplete:function(a,b,c,d){a=d.split("\n").length;b.bHeader&&a--;null!==this.s.dt.nTFoot&&b.bFooter&&a--;this.fnInfo("<h6>Table
 copied</h6><p>Copied "+a+" row"+(1==a?"":"s")+" to the 
clipboard.</p>",1500)}}),pdf:e.extend({},TableTools.buttonBase,{sAction:"flash_pdf",sNewLine:"\n",sFileName:"*.pdf",sButtonClass:"DTTT_button_pdf",
+sButtonText:"PDF",sPdfOrientation:"portrait",sPdfSize:"A4",sPdfMessage:"",fnClick:function(a,b,c){this.fnSetText(c,"title:"+this.fnGetTitle(b)+"\nmessage:"+b.sPdfMessage+"\ncolWidth:"+this.fnCalcColRatios(b)+"\norientation:"+b.sPdfOrientation+"\nsize:"+b.sPdfSize+"\n--/TableToolsOpts--\n"+this.fnGetTableData(b))}}),print:e.extend({},TableTools.buttonBase,{sInfo:"<h6>Print
 view</h6><p>Please use your browser's print function to print this table. 
Press escape when finished.</p>",sMessage:null,bShowAll:!0,
+sToolTip:"View print 
view",sButtonClass:"DTTT_button_print",sButtonText:"Print",fnClick:function(a,b){this.fnPrint(!0,b)}}),text:e.extend({},TableTools.buttonBase),select:e.extend({},TableTools.buttonBase,{sButtonText:"Select
 
button",fnSelect:function(a){0!==this.fnGetSelected().length?e(a).removeClass(this.classes.buttons.disabled):e(a).addClass(this.classes.buttons.disabled)},fnInit:function(a){e(a).addClass(this.classes.buttons.disabled)}}),select_single:e.extend({},TableTools.buttonBase,{sButtonText:"Select
 button",
+fnSelect:function(a){1==this.fnGetSelected().length?e(a).removeClass(this.classes.buttons.disabled):e(a).addClass(this.classes.buttons.disabled)},fnInit:function(a){e(a).addClass(this.classes.buttons.disabled)}}),select_all:e.extend({},TableTools.buttonBase,{sButtonText:"Select
 
all",fnClick:function(){this.fnSelectAll()},fnSelect:function(a){this.fnGetSelected().length==this.s.dt.fnRecordsDisplay()?e(a).addClass(this.classes.buttons.disabled):e(a).removeClass(this.classes.buttons.disabled)}}),select_none:e.extend({},
+TableTools.buttonBase,{sButtonText:"Deselect 
all",fnClick:function(){this.fnSelectNone()},fnSelect:function(a){0!==this.fnGetSelected().length?e(a).removeClass(this.classes.buttons.disabled):e(a).addClass(this.classes.buttons.disabled)},fnInit:function(a){e(a).addClass(this.classes.buttons.disabled)}}),ajax:e.extend({},TableTools.buttonBase,{sAjaxUrl:"/xhr.php",sButtonText:"Ajax
 button",fnClick:function(a,b){var 
c=this.fnGetTableData(b);e.ajax({url:b.sAjaxUrl,data:[{name:"tableData",value:c}],success:b.fnAjaxComplete,
+dataType:"json",type:"POST",cache:!1,error:function(){alert("Error detected 
when sending table data to server")}})},fnAjaxComplete:function(){alert("Ajax 
complete")}}),div:e.extend({},TableTools.buttonBase,{sAction:"div",sTag:"div",sButtonClass:"DTTT_nonbutton",sButtonText:"Text
 
button"}),collection:e.extend({},TableTools.buttonBase,{sAction:"collection",sButtonClass:"DTTT_button_collection",sButtonText:"Collection",fnClick:function(a,b){this._fnCollectionShow(a,b)}})};TableTools.buttons=TableTools.BUTTONS;
+TableTools.classes={container:"DTTT_container",buttons:{normal:"DTTT_button",disabled:"DTTT_disabled"},collection:{container:"DTTT_collection",background:"DTTT_collection_background",buttons:{normal:"DTTT_button",disabled:"DTTT_disabled"}},select:{table:"DTTT_selectable",row:"DTTT_selected
 
selected"},print:{body:"DTTT_Print",info:"DTTT_print_info",message:"DTTT_PrintMessage"}};TableTools.classes_themeroller={container:"DTTT_container
 ui-buttonset ui-buttonset-multi",buttons:{normal:"DTTT_button ui-button 
ui-state-default"},
+collection:{container:"DTTT_collection ui-buttonset 
ui-buttonset-multi"}};TableTools.DEFAULTS={sSwfPath:"../swf/copy_csv_xls_pdf.swf",sRowSelect:"none",sRowSelector:"tr",sSelectedClass:null,fnPreRowSelect:null,fnRowSelected:null,fnRowDeselected:null,aButtons:["copy","csv","xls","pdf","print"],oTags:{container:"div",button:"a",liner:"span",collection:{container:"div",button:"a",liner:"span"}}};TableTools.defaults=TableTools.DEFAULTS;TableTools.prototype.CLASS="TableTools";TableTools.version="2.2.3";
+e.fn.dataTable.Api&&e.fn.dataTable.Api.register("tabletools()",function(){var 
a=null;0<this.context.length&&(a=TableTools.fnGetInstance(this.context[0].nTable));return
 a});"function"==typeof e.fn.dataTable&&"function"==typeof 
e.fn.dataTableExt.fnVersionCheck&&e.fn.dataTableExt.fnVersionCheck("1.9.0")?e.fn.dataTableExt.aoFeatures.push({fnInit:function(a){var
 b=a.oInit;return(new 
TableTools(a.oInstance,b?b.tableTools||b.oTableTools||{}:{})).dom.container},cFeature:"T",sFeature:"TableTools"}):alert("Warning:
 TableTools requires DataTables 1.9.0 or newer - www.datatables.net/download");
+e.fn.DataTable.TableTools=TableTools;"function"==typeof 
m.fn.dataTable&&"function"==typeof 
m.fn.dataTableExt.fnVersionCheck&&m.fn.dataTableExt.fnVersionCheck("1.9.0")?m.fn.dataTableExt.aoFeatures.push({fnInit:function(a){a=new
 TableTools(a.oInstance,"undefined"!=typeof 
a.oInit.oTableTools?a.oInit.oTableTools:{});TableTools._aInstances.push(a);return
 a.dom.container},cFeature:"T",sFeature:"TableTools"}):alert("Warning: 
TableTools 2 requires DataTables 1.9.0 or newer - www.datatables.net/download");
+m.fn.dataTable.TableTools=TableTools;return 
m.fn.DataTable.TableTools=TableTools};"function"===typeof 
define&&define.amd?define(["jquery","datatables"],p):"object"===typeof 
exports?p(require("jquery"),require("datatables")):jQuery&&!jQuery.fn.dataTable.TableTools&&p(jQuery,jQuery.fn.dataTable)})(window,document);

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/swf/copy_csv_xls.swf
===================================================================
(Binary files differ)

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/extensions/TableTools/swf/copy_csv_xls_pdf.swf
===================================================================
(Binary files differ)

Modified: 
branches/dev-syncromind/phpgwapi/js/DataTables/media/js/jquery.dataTables.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/DataTables/media/js/jquery.dataTables.js    
    2014-10-13 07:35:38 UTC (rev 12161)
+++ 
branches/dev-syncromind/phpgwapi/js/DataTables/media/js/jquery.dataTables.js    
    2014-10-13 07:42:53 UTC (rev 12162)
@@ -1,11 +1,11 @@
-/*! DataTables 1.10.2
+/*! DataTables 1.10.3
  * ©2008-2014 SpryMedia Ltd - datatables.net/license
  */
 
 /**
  * @summary     DataTables
  * @description Paginate, search and order HTML tables
- * @version     1.10.2
+ * @version     1.10.3
  * @file        jquery.dataTables.js
  * @author      SpryMedia Ltd (www.sprymedia.co.uk)
  * @contact     www.sprymedia.co.uk/contact
@@ -133,7 +133,7 @@
                if ( ! _re_dic[ decimalPoint ] ) {
                        _re_dic[ decimalPoint ] = new RegExp( _fnEscapeRegex( 
decimalPoint ), 'g' );
                }
-               return typeof num === 'string' ?
+               return typeof num === 'string' && decimalPoint !== '.' ?
                        num.replace( /\./g, '' ).replace( _re_dic[ decimalPoint 
], '.' ) :
                        num;
        };
@@ -310,7 +310,6 @@
                                newKey = key.replace( match[0], 
match[2].toLowerCase() );
                                map[ newKey ] = key;
        
-                               //console.log( key, match );
                                if ( match[1] === 'o' )
                                {
                                        _fnHungarianMap( o[key] );
@@ -673,6 +672,12 @@
                        return _fnSetObjectDataFn( mDataSrc )( rowData, val, 
meta );
                };
        
+               // Indicate if DataTables should read DOM data as an object or 
array
+               // Used in _fnGetRowElements
+               if ( typeof mDataSrc !== 'number' ) {
+                       oSettings._rowReadObject = true;
+               }
+       
                /* Feature sorting overrides column specific when off */
                if ( !oSettings.oFeatures.bSort )
                {
@@ -1498,19 +1503,22 @@
        function _fnGetRowElements( settings, row )
        {
                var
-                       d = [],
                        tds = [],
                        td = row.firstChild,
                        name, col, o, i=0, contents,
-                       columns = settings.aoColumns;
+                       columns = settings.aoColumns,
+                       objectRead = settings._rowReadObject;
        
-               var attr = function ( str, data, td  ) {
+               var d = objectRead ? {} : [];
+       
+               var attr = function ( str, td  ) {
                        if ( typeof str === 'string' ) {
                                var idx = str.indexOf('@');
        
                                if ( idx !== -1 ) {
-                                       var src = str.substring( idx+1 );
-                                       o[ '@'+src ] = td.getAttribute( src );
+                                       var attr = str.substring( idx+1 );
+                                       var setter = _fnSetObjectDataFn( str );
+                                       setter( d, td.getAttribute( attr ) );
                                }
                        }
                };
@@ -1520,18 +1528,26 @@
                        contents = $.trim(cell.innerHTML);
        
                        if ( col && col._bAttrSrc ) {
-                               o = {
-                                       display: contents
-                               };
+                               var setter = _fnSetObjectDataFn( col.mData._ );
+                               setter( d, contents );
        
-                               attr( col.mData.sort, o, cell );
-                               attr( col.mData.type, o, cell );
-                               attr( col.mData.filter, o, cell );
-       
-                               d.push( o );
+                               attr( col.mData.sort, cell );
+                               attr( col.mData.type, cell );
+                               attr( col.mData.filter, cell );
                        }
                        else {
-                               d.push( contents );
+                               // Depending on the `data` option for the 
columns the data can be
+                               // read to either an object or an array.
+                               if ( objectRead ) {
+                                       if ( ! col._setter ) {
+                                               // Cache the setter function
+                                               col._setter = 
_fnSetObjectDataFn( col.mData );
+                                       }
+                                       col._setter( d, contents );
+                               }
+                               else {
+                                       d.push( contents );
+                               }
                        }
        
                        i++;
@@ -1950,7 +1966,9 @@
                                        }
                                }
        
-                               /* Row callback functions - might want to 
manipulate the row */
+                               // Row callback functions - might want to 
manipulate the row
+                               // iRowCount and j are not currently 
documented. Are they at all
+                               // useful?
                                _fnCallbackFire( oSettings, 'aoRowCallback', 
null,
                                        [nRow, aoData._aData, iRowCount, j] );
        
@@ -2695,13 +2713,20 @@
                                _fnDraw( settings );
                        }
                };
+       
+               var searchDelay = settings.searchDelay !== null ?
+                       settings.searchDelay :
+                       _fnDataSource( settings ) === 'ssp' ?
+                               400 :
+                               0;
+       
                var jqFilter = $('input', filter)
                        .val( previousSearch.sSearch )
                        .attr( 'placeholder', language.sSearchPlaceholder )
                        .bind(
                                'keyup.DT search.DT input.DT paste.DT cut.DT',
-                               _fnDataSource( settings ) === 'ssp' ?
-                                       _fnThrottle( searchFn, 400 ):
+                               searchDelay ?
+                                       _fnThrottle( searchFn, searchDelay ) :
                                        searchFn
                        )
                        .bind( 'keypress.DT', function(e) {
@@ -2924,9 +2949,12 @@
                         * ^(?=.*?\bone\b)(?=.*?\btwo three\b)(?=.*?\bfour\b).*$
                         */
                        var a = $.map( search.match( /"[^"]+"|[^ ]+/g ) || '', 
function ( word ) {
-                               return word.charAt(0) === '"' ?
-                                       word.match( /^"(.*)"$/ )[1] :
-                                       word;
+                               if ( word.charAt(0) === '"' ) {
+                                       var m = word.match( /^"(.*)"$/ );
+                                       word = m ? m[1] : word;
+                               }
+       
+                               return word.replace('"', '');
                        } );
        
                        search = '^(?=.*?'+a.join( ')(?=.*?' )+').*$';
@@ -4168,7 +4196,7 @@
         */
        function _fnThrottle( fn, freq ) {
                var
-                       frequency = freq || 200,
+                       frequency = freq !== undefined ? freq : 200,
                        last,
                        timer;
        
@@ -4409,11 +4437,15 @@
                                iCol = aDataSort[k];
                                sType = aoColumns[ iCol ].sType || 'string';
        
+                               if ( nestedSort[i]._idx === undefined ) {
+                                       nestedSort[i]._idx = $.inArray( 
nestedSort[i][1], aoColumns[iCol].asSorting );
+                               }
+       
                                aSort.push( {
                                        src:       srcCol,
                                        col:       iCol,
                                        dir:       nestedSort[i][1],
-                                       index:     nestedSort[i][2],
+                                       index:     nestedSort[i]._idx,
                                        type:      sType,
                                        formatter: DataTable.ext.type.order[ 
sType+"-pre" ]
                                } );
@@ -4616,13 +4648,17 @@
                var sorting = settings.aaSorting;
                var asSorting = col.asSorting;
                var nextSortIdx;
-               var next = function ( a ) {
+               var next = function ( a, overflow ) {
                        var idx = a._idx;
                        if ( idx === undefined ) {
                                idx = $.inArray( a[1], asSorting );
                        }
        
-                       return idx+1 >= asSorting.length ? 0 : idx+1;
+                       return idx+1 < asSorting.length ?
+                               idx+1 :
+                               overflow ?
+                                       null :
+                                       0;
                };
        
                // Convert to 2D array if needed
@@ -4637,10 +4673,15 @@
        
                        if ( sortIdx !== -1 ) {
                                // Yes, modify the sort
-                               nextSortIdx = next( sorting[sortIdx] );
+                               nextSortIdx = next( sorting[sortIdx], true );
        
-                               sorting[sortIdx][1] = asSorting[ nextSortIdx ];
-                               sorting[sortIdx]._idx = nextSortIdx;
+                               if ( nextSortIdx === null ) {
+                                       sorting.splice( sortIdx, 1 );
+                               }
+                               else {
+                                       sorting[sortIdx][1] = asSorting[ 
nextSortIdx ];
+                                       sorting[sortIdx]._idx = nextSortIdx;
+                               }
                        }
                        else {
                                // No sort on this column yet
@@ -5119,7 +5160,7 @@
                        len = settings._iDisplayLength;
        
                /* If we have space to show extra rows (backing up from the end 
point - then do so */
-               if ( end === settings.fnRecordsDisplay() )
+               if (start >= end) 
                {
                        start = end - len;
                }
@@ -6095,6 +6136,7 @@
                                "fnStateLoadCallback",
                                "fnStateSaveCallback",
                                "renderer",
+                               "searchDelay",
                                [ "iCookieDuration", "iStateDuration" ], // 
backwards compat
                                [ "oSearch", "oPreviousSearch" ],
                                [ "aoSearchCols", "aoPreSearchCols" ],
@@ -6725,8 +6767,10 @@
                        }
        
                        for ( i=0, ien=context.length ; i<ien ; i++ ) {
+                               var apiInst = new _Api( context[i] );
+       
                                if ( type === 'table' ) {
-                                       ret = fn( context[i], i );
+                                       ret = fn.call( apiInst, context[i], i );
        
                                        if ( ret !== undefined ) {
                                                a.push( ret );
@@ -6734,7 +6778,7 @@
                                }
                                else if ( type === 'columns' || type === 'rows' 
) {
                                        // this has same length as context - 
one entry for each table
-                                       ret = fn( context[i], this[i], i );
+                                       ret = fn.call( apiInst, context[i], 
this[i], i );
        
                                        if ( ret !== undefined ) {
                                                a.push( ret );
@@ -6753,10 +6797,10 @@
                                                item = items[j];
        
                                                if ( type === 'cell' ) {
-                                                       ret = fn( context[i], 
item.row, item.column, i, j );
+                                                       ret = fn.call( apiInst, 
context[i], item.row, item.column, i, j );
                                                }
                                                else {
-                                                       ret = fn( context[i], 
item, i, j, rows );
+                                                       ret = fn.call( apiInst, 
context[i], item, i, j, rows );
                                                }
        
                                                if ( ret !== undefined ) {
@@ -7393,11 +7437,12 @@
        {
                var
                        out = [], res,
-                       a, i, ien, j, jen;
+                       a, i, ien, j, jen,
+                       selectorType = typeof selector;
        
                // Can't just check for isArray here, as an API or jQuery 
instance might be
                // given with their array like look
-               if ( ! selector || typeof selector === 'string' || 
selector.length === undefined ) {
+               if ( ! selector || selectorType === 'string' || selectorType 
=== 'function' || selector.length === undefined ) {
                        selector = [ selector ];
                }
        
@@ -7535,6 +7580,7 @@
        {
                return _selector_run( selector, function ( sel ) {
                        var selInt = _intVal( sel );
+                       var i, ien;
        
                        // Short cut - selector is a number and no options 
provided (default is
                        // all records, so no need to check if the index is in 
there, since it
@@ -7554,14 +7600,19 @@
                                return rows;
                        }
        
-                       // Get nodes in the order from the `rows` array (can't 
use `pluck`) @todo - use pluck_order
-                       var nodes = [];
-                       for ( var i=0, ien=rows.length ; i<ien ; i++ ) {
-                               nodes.push( settings.aoData[ rows[i] ].nTr );
+                       // Get nodes in the order from the `rows` array
+                       var nodes = _pluck_order( settings.aoData, rows, 'nTr' 
);
+       
+                       // Selector - function
+                       if ( typeof sel === 'function' ) {
+                               return $.map( rows, function (idx) {
+                                       var row = settings.aoData[ idx ];
+                                       return sel( idx, row._aData, row.nTr ) 
? idx : null;
+                               } );
                        }
        
+                       // Selector - node
                        if ( sel.nodeName ) {
-                               // Selector - node
                                if ( $.inArray( sel, nodes ) !== -1 ) {
                                        return [ sel._DT_RowIndex ];// sel is a 
TR node that is in the table
                                                                                
        // and DataTables adds a prop for fast lookup
@@ -7800,12 +7851,12 @@
        };
        
        
-       var __details_remove = function ( api )
+       var __details_remove = function ( api, idx )
        {
                var ctx = api.context;
        
-               if ( ctx.length && api.length ) {
-                       var row = ctx[0].aoData[ api[0] ];
+               if ( ctx.length ) {
+                       var row = ctx[0].aoData[ idx !== undefined ? idx : 
api[0] ];
        
                        if ( row._details ) {
                                row._details.remove();
@@ -7894,7 +7945,7 @@
        
                                for ( var i=0, ien=data.length ; i<ien ; i++ ) {
                                        if ( data[i]._details ) {
-                                               __details_remove( data[i] );
+                                               __details_remove( api, i );
                                        }
                                }
                        } );
@@ -7991,6 +8042,18 @@
        
        var __re_column_selector = /^(.+):(name|visIdx|visible)$/;
        
+       
+       // r1 and r2 are redundant - but it means that the parameters match for 
the
+       // iterator callback in columns().data()
+       var __columnData = function ( settings, column, r1, r2, rows ) {
+               var a = [];
+               for ( var row=0, ien=rows.length ; row<ien ; row++ ) {
+                       a.push( _fnGetCellData( settings, rows[row], column ) );
+               }
+               return a;
+       };
+       
+       
        var __column_selector = function ( settings, selector, opts )
        {
                var
@@ -8001,62 +8064,73 @@
                return _selector_run( selector, function ( s ) {
                        var selInt = _intVal( s );
        
+                       // Selector - all
                        if ( s === '' ) {
-                               // All columns
                                return _range( columns.length );
                        }
-                       else if ( selInt !== null ) {
-                               // Integer selector
+                       
+                       // Selector - index
+                       if ( selInt !== null ) {
                                return [ selInt >= 0 ?
                                        selInt : // Count from left
                                        columns.length + selInt // Count from 
right (+ because its a negative value)
                                ];
                        }
-                       else {
-                               var match = typeof s === 'string' ?
-                                       s.match( __re_column_selector ) :
-                                       '';
+                       
+                       // Selector = function
+                       if ( typeof s === 'function' ) {
+                               var rows = _selector_row_indexes( settings, 
opts );
        
-                               if ( match ) {
-                                       switch( match[2] ) {
-                                               case 'visIdx':
-                                               case 'visible':
-                                                       var idx = parseInt( 
match[1], 10 );
-                                                       // Visible index given, 
convert to column index
-                                                       if ( idx < 0 ) {
-                                                               // Counting 
from the right
-                                                               var visColumns 
= $.map( columns, function (col,i) {
-                                                                       return 
col.bVisible ? i : null;
-                                                               } );
-                                                               return [ 
visColumns[ visColumns.length + idx ] ];
-                                                       }
-                                                       // Counting from the 
left
-                                                       return [ 
_fnVisibleToColumnIndex( settings, idx ) ];
+                               return $.map( columns, function (col, idx) {
+                                       return s(
+                                                       idx,
+                                                       __columnData( settings, 
idx, 0, 0, rows ),
+                                                       nodes[ idx ]
+                                               ) ? idx : null;
+                               } );
+                       }
        
-                                               case 'name':
-                                                       // match by name. 
`names` is column index complete and in order
-                                                       return $.map( names, 
function (name, i) {
-                                                               return name === 
match[1] ? i : null;
+                       // jQuery or string selector
+                       var match = typeof s === 'string' ?
+                               s.match( __re_column_selector ) :
+                               '';
+       
+                       if ( match ) {
+                               switch( match[2] ) {
+                                       case 'visIdx':
+                                       case 'visible':
+                                               var idx = parseInt( match[1], 
10 );
+                                               // Visible index given, convert 
to column index
+                                               if ( idx < 0 ) {
+                                                       // Counting from the 
right
+                                                       var visColumns = $.map( 
columns, function (col,i) {
+                                                               return 
col.bVisible ? i : null;
                                                        } );
-                                       }
+                                                       return [ visColumns[ 
visColumns.length + idx ] ];
+                                               }
+                                               // Counting from the left
+                                               return [ 
_fnVisibleToColumnIndex( settings, idx ) ];
+       
+                                       case 'name':
+                                               // match by name. `names` is 
column index complete and in order
+                                               return $.map( names, function 
(name, i) {
+                                                       return name === 
match[1] ? i : null;
+                                               } );
                                }
-                               else {
-                                       // jQuery selector on the TH elements 
for the columns
-                                       return $( nodes )
-                                               .filter( s )
-                                               .map( function () {
-                                                       return $.inArray( this, 
nodes ); // `nodes` is column index complete and in order
-                                               } )
-                                               .toArray();
-                               }
                        }
+                       else {

@@ Diff output truncated at 153600 characters. @@



reply via email to

[Prev in Thread] Current Thread [Next in Thread]