wip javascript

This commit is contained in:
John Woodlock
2012-07-06 17:39:57 +10:00
parent 136136f6b4
commit 96deb22a31
833 changed files with 74 additions and 63 deletions
@@ -0,0 +1,552 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="shortcut icon" type="image/ico" href="http://www.sprymedia.co.uk/media/images/favicon.ico">
<title>AutoFill example</title>
<style type="text/css" title="currentStyle">
@import "../../media/css/demo_page.css";
@import "../../media/css/demo_table.css";
@import "media/css/AutoFill.css";
</style>
<script type="text/javascript" charset="utf-8" src="../../media/js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../../media/js/jquery.dataTables.js"></script>
<script type="text/javascript" charset="utf-8" src="media/js/AutoFill.js"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready( function () {
var oTable = $('#example').dataTable();
new AutoFill( oTable, {
"aoColumnDefs": [ {
"fnCallback": function ( ao ) {
var n = document.getElementById('output');
for ( var i=0, iLen=ao.length ; i<iLen ; i++ ) {
n.innerHTML += "Update: old value: {"+
ao[i].oldValue+"} - new value: {"+ao[i].newValue+"}<br>";
}
n.scrollTop = n.scrollHeight;
},
"aTargets": [ "_all" ]
} ]
} );
} );
</script>
</head>
<body id="dt_example">
<div id="container">
<div class="full_width big">
AutoFill example
</div>
<h1>Preamble</h1>
<p>
AutoFill provides a number of customisable callback functions so you can tailor it's
actions to exactly what you need. This specific example shows fnCallback, which is fired when the mouse is released. Further documentation is below.
</p>
<ul>
<li>
<b>fnRead</b> - Called when a cell is read for it's value. This allows you to override the default of reading the HTML value (or 'input' elements value if there is one present). For example reading the value from a select list.
<ul>
<li>Parameter 1: Node - TD element to be read from</li>
<li>Returns: String - read value</li>
</ul>
</li>
<li>
<b>fnWrite</b> - Called when a cell is to read to. This allows you to write in a specific format, or perhaps to an element within the cell.
<ul>
<li>Parameter 1: Node - TD element to be written to</li>
<li>Parameter 2: String - Value to write</li>
<li>Parameter 3: Boolean - Last cell to be written (useful for speeding up DataTables' fnUpdate)</li>
<li>Returns: void</li>
</ul>
</li>
<li>
<b>fnStep</b> - Called to calculate the new value to give to a cell
<ul>
<li>Parameter 1: Node - TD element to be written to</li>
<li>Parameter 2: String - Statement with a token to be replace with the calculated value</li>
<li>Parameter 3: Int - Step counter</li>
<li>Parameter 4: Boolean - increment (true), or decrement (false)</li>
<li>Parameter 5: String - Token to replace</li>
<li>Returns: String - string to write into the cell</li>
</ul>
</li>
<li>
<b>fnCallback</b> - Called when the AutoFill is complete, with information about the fill. This can be useful for updating a server database for example.
<ul>
<li>Parameter 1: Array - An array of objects with information about each cell that was written to. Object parameters are: "td", "newValue" and "oldValue".</li>
<li>Returns: void</li>
</ul>
</li>
</ul>
<h1>Live example</h1>
<form>
<div id="output" style="height: 100px; overflow: scroll;">
Information about each update will appear here.<br><br>
</div>
<div id="demo">
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
<thead>
<tr>
<th>Rendering engine</th>
<th>Browser</th>
<th>Platform(s)</th>
<th>Engine version</th>
<th>CSS grade</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Rendering engine</th>
<th>Browser</th>
<th>Platform(s)</th>
<th>Engine version</th>
<th>CSS grade</th>
</tr>
</tfoot>
<tbody>
<tr class="odd_gradeX">
<td>Trident</td>
<td>Internet Explorer 4.0</td>
<td>Win 95+ (Entity: &amp;)</td>
<td class="center">4</td>
<td class="center">X</td>
</tr>
<tr class="even_gradeC">
<td>Trident</td>
<td>Internet Explorer 5.0</td>
<td>Win 95+</td>
<td class="center">5</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeA">
<td>Trident</td>
<td>Internet Explorer 5.5</td>
<td>Win 95+</td>
<td class="center">5.5</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Trident</td>
<td>Internet Explorer 6</td>
<td>Win 98+</td>
<td class="center">6</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Trident</td>
<td>Internet Explorer 7</td>
<td>Win XP SP2+</td>
<td class="center">7</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Trident</td>
<td>AOL browser (AOL desktop)</td>
<td>Win XP</td>
<td class="center">6</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko (UTF-8: $¢€)</td>
<td>Firefox 1.0</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Firefox 1.5</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Firefox 2.0</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Firefox 3.0</td>
<td>Win 2k+ / OSX.3+</td>
<td class="center">1.9</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Camino 1.0</td>
<td>OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Camino 1.5</td>
<td>OSX.3+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Netscape 7.2</td>
<td>Win 95+ / Mac OS 8.6-9.2</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Netscape Browser 8</td>
<td>Win 98SE+</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Netscape Navigator 9</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.0</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Mozilla 1.1</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.1</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.2</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.2</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Mozilla 1.3</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.3</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.4</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.4</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Mozilla 1.5</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.5</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.6</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.6</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Mozilla 1.7</td>
<td>Win 98+ / OSX.1+</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.8</td>
<td>Win 98+ / OSX.1+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Seamonkey 1.1</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Epiphany 2.20</td>
<td>Gnome</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Webkit</td>
<td>Safari 1.2</td>
<td>OSX.3</td>
<td class="center">125.5</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Webkit</td>
<td>Safari 1.3</td>
<td>OSX.3</td>
<td class="center">312.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Webkit</td>
<td>Safari 2.0</td>
<td>OSX.4+</td>
<td class="center">419.3</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Webkit</td>
<td>Safari 3.0</td>
<td>OSX.4+</td>
<td class="center">522.1</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Webkit</td>
<td>OmniWeb 5.5</td>
<td>OSX.4+</td>
<td class="center">420</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Webkit</td>
<td>iPod Touch / iPhone</td>
<td>iPod</td>
<td class="center">420.1</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Webkit</td>
<td>S60</td>
<td>S60</td>
<td class="center">413</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Opera 7.0</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Opera 7.5</td>
<td>Win 95+ / OSX.2+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Opera 8.0</td>
<td>Win 95+ / OSX.2+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Opera 8.5</td>
<td>Win 95+ / OSX.2+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Opera 9.0</td>
<td>Win 95+ / OSX.3+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Opera 9.2</td>
<td>Win 88+ / OSX.3+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Opera 9.5</td>
<td>Win 88+ / OSX.3+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Opera for Wii</td>
<td>Wii</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Nokia N800</td>
<td>N800</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Nintendo DS browser</td>
<td>Nintendo DS</td>
<td class="center">8.5</td>
<td class="center">C/A<sup>1</sup></td>
</tr>
<tr class="even_gradeC">
<td>KHTML</td>
<td>Konqureror 3.1</td>
<td>KDE 3.1</td>
<td class="center">3.1</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeA">
<td>KHTML</td>
<td>Konqureror 3.3</td>
<td>KDE 3.3</td>
<td class="center">3.3</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>KHTML</td>
<td>Konqureror 3.5</td>
<td>KDE 3.5</td>
<td class="center">3.5</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeX">
<td>Tasman</td>
<td>Internet Explorer 4.5</td>
<td>Mac OS 8-9</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="even_gradeC">
<td>Tasman</td>
<td>Internet Explorer 5.1</td>
<td>Mac OS 7.6-9</td>
<td class="center">1</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeC">
<td>Tasman</td>
<td>Internet Explorer 5.2</td>
<td>Mac OS 8-X</td>
<td class="center">1</td>
<td class="center">C</td>
</tr>
<tr class="even_gradeA">
<td>Misc</td>
<td>NetFront 3.1</td>
<td>Embedded devices</td>
<td class="center">-</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeA">
<td>Misc</td>
<td>NetFront 3.4</td>
<td>Embedded devices</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeX">
<td>Misc</td>
<td>Dillo 0.8</td>
<td>Embedded devices</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="odd_gradeX">
<td>Misc</td>
<td>Links</td>
<td>Text only</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="even_gradeX">
<td>Misc</td>
<td>Lynx</td>
<td>Text only</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="odd_gradeC">
<td>Misc</td>
<td>IE Mobile</td>
<td>Windows Mobile 6</td>
<td class="center">-</td>
<td class="center">C</td>
</tr>
<tr class="even_gradeC">
<td>Misc</td>
<td>PSP browser</td>
<td>PSP</td>
<td class="center">-</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeU">
<td>Other browsers</td>
<td>All others</td>
<td>-</td>
<td class="center">-</td>
<td class="center">U</td>
</tr>
</tbody>
</table>
</div>
</form>
<div class="spacer"></div>
<h1>Examples</h1>
<ul>
<li><a href="index.html">Basic initialisation</a></li>
<li><a href="columns.html">Selecting which columns to provide AutoFill on</a></li>
<li><a href="scrolling.html">Scrolling a DataTable using fill</a></li>
<li><a href="inputs.html">Using with input elements</a></li>
<li><a href="callbacks.html">Customisation using callback functions</a></li>
</ul>
<h1>Initialisation code</h1>
<pre>$(document).ready( function () {
var oTable = $('#example').dataTable();
new AutoFill( oTable, {
"aoColumnDefs": [ {
"fnCallback": function ( ao ) {
var n = document.getElementById('output');
for ( var i=0, iLen=ao.length ; i&lt;iLen ; i++ ) {
n.innerHTML += "Update: old value: {"+
ao[i].oldValue+"} - new value: {"+ao[i].newValue+"}&lt;br&gt;";
}
n.scrollTop = n.scrollHeight;
},
"aTargets": [ "_all" ]
} ]
} );
} );</pre>
<div id="footer" style="text-align:center;">
<span style="font-size:10px;">
AutoFill and DataTables &copy; Allan Jardine 2009-2010.<br>
</span>
</div>
</div>
</body>
</html>
@@ -0,0 +1,503 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="shortcut icon" type="image/ico" href="http://www.sprymedia.co.uk/media/images/favicon.ico">
<title>AutoFill example</title>
<style type="text/css" title="currentStyle">
@import "../../media/css/demo_page.css";
@import "../../media/css/demo_table.css";
@import "media/css/AutoFill.css";
</style>
<script type="text/javascript" charset="utf-8" src="../../media/js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../../media/js/jquery.dataTables.js"></script>
<script type="text/javascript" charset="utf-8" src="media/js/AutoFill.js"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready( function () {
var oTable = $('#example').dataTable();
new AutoFill( oTable, {
"aoColumnDefs": [ {
"bEnable": false,
"aTargets": [ -1, -2, -3 ]
} ]
} );
} );
</script>
</head>
<body id="dt_example">
<div id="container">
<div class="full_width big">
AutoFill example with column selection options
</div>
<h1>Preamble</h1>
<p>
Columns can be enabled (default) and disabled from providing the end user the AutoFill option
by using either aoColumns or aoColumnDefs and the bEnable option. These two arrays work in
<a href="http://datatables.net/usage/columns">exactly the same way has for DataTables</a>.
</p>
<p>
This example shows how disabling columns counting from the right hand side of the table
can be achieved. In this case, the last three columns.
</p>
<h1>Live example</h1>
<form>
<div id="demo">
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
<thead>
<tr>
<th>Rendering engine</th>
<th>Browser</th>
<th>Platform(s)</th>
<th>Engine version</th>
<th>CSS grade</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Rendering engine</th>
<th>Browser</th>
<th>Platform(s)</th>
<th>Engine version</th>
<th>CSS grade</th>
</tr>
</tfoot>
<tbody>
<tr class="odd_gradeX">
<td>Trident</td>
<td>Internet Explorer 4.0</td>
<td>Win 95+ (Entity: &amp;)</td>
<td class="center">4</td>
<td class="center">X</td>
</tr>
<tr class="even_gradeC">
<td>Trident</td>
<td>Internet Explorer 5.0</td>
<td>Win 95+</td>
<td class="center">5</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeA">
<td>Trident</td>
<td>Internet Explorer 5.5</td>
<td>Win 95+</td>
<td class="center">5.5</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Trident</td>
<td>Internet Explorer 6</td>
<td>Win 98+</td>
<td class="center">6</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Trident</td>
<td>Internet Explorer 7</td>
<td>Win XP SP2+</td>
<td class="center">7</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Trident</td>
<td>AOL browser (AOL desktop)</td>
<td>Win XP</td>
<td class="center">6</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko (UTF-8: $¢€)</td>
<td>Firefox 1.0</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Firefox 1.5</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Firefox 2.0</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Firefox 3.0</td>
<td>Win 2k+ / OSX.3+</td>
<td class="center">1.9</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Camino 1.0</td>
<td>OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Camino 1.5</td>
<td>OSX.3+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Netscape 7.2</td>
<td>Win 95+ / Mac OS 8.6-9.2</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Netscape Browser 8</td>
<td>Win 98SE+</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Netscape Navigator 9</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.0</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Mozilla 1.1</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.1</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.2</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.2</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Mozilla 1.3</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.3</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.4</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.4</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Mozilla 1.5</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.5</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.6</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.6</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Mozilla 1.7</td>
<td>Win 98+ / OSX.1+</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.8</td>
<td>Win 98+ / OSX.1+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Seamonkey 1.1</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Epiphany 2.20</td>
<td>Gnome</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Webkit</td>
<td>Safari 1.2</td>
<td>OSX.3</td>
<td class="center">125.5</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Webkit</td>
<td>Safari 1.3</td>
<td>OSX.3</td>
<td class="center">312.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Webkit</td>
<td>Safari 2.0</td>
<td>OSX.4+</td>
<td class="center">419.3</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Webkit</td>
<td>Safari 3.0</td>
<td>OSX.4+</td>
<td class="center">522.1</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Webkit</td>
<td>OmniWeb 5.5</td>
<td>OSX.4+</td>
<td class="center">420</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Webkit</td>
<td>iPod Touch / iPhone</td>
<td>iPod</td>
<td class="center">420.1</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Webkit</td>
<td>S60</td>
<td>S60</td>
<td class="center">413</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Opera 7.0</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Opera 7.5</td>
<td>Win 95+ / OSX.2+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Opera 8.0</td>
<td>Win 95+ / OSX.2+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Opera 8.5</td>
<td>Win 95+ / OSX.2+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Opera 9.0</td>
<td>Win 95+ / OSX.3+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Opera 9.2</td>
<td>Win 88+ / OSX.3+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Opera 9.5</td>
<td>Win 88+ / OSX.3+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Opera for Wii</td>
<td>Wii</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Nokia N800</td>
<td>N800</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Nintendo DS browser</td>
<td>Nintendo DS</td>
<td class="center">8.5</td>
<td class="center">C/A<sup>1</sup></td>
</tr>
<tr class="even_gradeC">
<td>KHTML</td>
<td>Konqureror 3.1</td>
<td>KDE 3.1</td>
<td class="center">3.1</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeA">
<td>KHTML</td>
<td>Konqureror 3.3</td>
<td>KDE 3.3</td>
<td class="center">3.3</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>KHTML</td>
<td>Konqureror 3.5</td>
<td>KDE 3.5</td>
<td class="center">3.5</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeX">
<td>Tasman</td>
<td>Internet Explorer 4.5</td>
<td>Mac OS 8-9</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="even_gradeC">
<td>Tasman</td>
<td>Internet Explorer 5.1</td>
<td>Mac OS 7.6-9</td>
<td class="center">1</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeC">
<td>Tasman</td>
<td>Internet Explorer 5.2</td>
<td>Mac OS 8-X</td>
<td class="center">1</td>
<td class="center">C</td>
</tr>
<tr class="even_gradeA">
<td>Misc</td>
<td>NetFront 3.1</td>
<td>Embedded devices</td>
<td class="center">-</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeA">
<td>Misc</td>
<td>NetFront 3.4</td>
<td>Embedded devices</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeX">
<td>Misc</td>
<td>Dillo 0.8</td>
<td>Embedded devices</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="odd_gradeX">
<td>Misc</td>
<td>Links</td>
<td>Text only</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="even_gradeX">
<td>Misc</td>
<td>Lynx</td>
<td>Text only</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="odd_gradeC">
<td>Misc</td>
<td>IE Mobile</td>
<td>Windows Mobile 6</td>
<td class="center">-</td>
<td class="center">C</td>
</tr>
<tr class="even_gradeC">
<td>Misc</td>
<td>PSP browser</td>
<td>PSP</td>
<td class="center">-</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeU">
<td>Other browsers</td>
<td>All others</td>
<td>-</td>
<td class="center">-</td>
<td class="center">U</td>
</tr>
</tbody>
</table>
</div>
</form>
<div class="spacer"></div>
<h1>Examples</h1>
<ul>
<li><a href="index.html">Basic initialisation</a></li>
<li><a href="columns.html">Selecting which columns to provide AutoFill on</a></li>
<li><a href="scrolling.html">Scrolling a DataTable using fill</a></li>
<li><a href="inputs.html">Using with input elements</a></li>
<li><a href="callbacks.html">Customisation using callback functions</a></li>
</ul>
<h1>Initialisation code</h1>
<pre>$(document).ready( function () {
var oTable = $('#example').dataTable();
new AutoFill( oTable, {
"aoColumnDefs": [ {
"bEnable": false,
"aTargets": [ -1, -2, -3 ]
} ]
} );
} );</pre>
<div id="footer" style="text-align:center;">
<span style="font-size:10px;">
AutoFill and DataTables &copy; Allan Jardine 2009-2010.<br>
</span>
</div>
</div>
</body>
</html>
@@ -0,0 +1,489 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="shortcut icon" type="image/ico" href="http://www.sprymedia.co.uk/media/images/favicon.ico">
<title>AutoFill example</title>
<style type="text/css" title="currentStyle">
@import "../../media/css/demo_page.css";
@import "../../media/css/demo_table.css";
@import "media/css/AutoFill.css";
</style>
<script type="text/javascript" charset="utf-8" src="../../media/js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../../media/js/jquery.dataTables.js"></script>
<script type="text/javascript" charset="utf-8" src="media/js/AutoFill.js"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready( function () {
var oTable = $('#example').dataTable();
new AutoFill( oTable );
} );
</script>
</head>
<body id="dt_example">
<div id="container">
<div class="full_width big">
AutoFill example
</div>
<h1>Preamble</h1>
<p>
AutoFill gives an Excel like option to a DataTable to click and drag over multiple
cells, filling in information over the selected cells and incrementing numbers as needed.
</p>
<p>Thanks to <a href="http://www.phoniax.no/">Phoniax AS</a> for their sponsorship of this plug-in for DataTables.</p>
<h1>Live example</h1>
<form>
<div id="demo">
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
<thead>
<tr>
<th>Rendering engine</th>
<th>Browser</th>
<th>Platform(s)</th>
<th>Engine version</th>
<th>CSS grade</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Rendering engine</th>
<th>Browser</th>
<th>Platform(s)</th>
<th>Engine version</th>
<th>CSS grade</th>
</tr>
</tfoot>
<tbody>
<tr class="odd_gradeX">
<td>Trident</td>
<td>Internet Explorer 4.0</td>
<td>Win 95+ (Entity: &amp;)</td>
<td class="center">4</td>
<td class="center">X</td>
</tr>
<tr class="even_gradeC">
<td>Trident</td>
<td>Internet Explorer 5.0</td>
<td>Win 95+</td>
<td class="center">5</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeA">
<td>Trident</td>
<td>Internet Explorer 5.5</td>
<td>Win 95+</td>
<td class="center">5.5</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Trident</td>
<td>Internet Explorer 6</td>
<td>Win 98+</td>
<td class="center">6</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Trident</td>
<td>Internet Explorer 7</td>
<td>Win XP SP2+</td>
<td class="center">7</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Trident</td>
<td>AOL browser (AOL desktop)</td>
<td>Win XP</td>
<td class="center">6</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko (UTF-8: $¢€)</td>
<td>Firefox 1.0</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Firefox 1.5</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Firefox 2.0</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Firefox 3.0</td>
<td>Win 2k+ / OSX.3+</td>
<td class="center">1.9</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Camino 1.0</td>
<td>OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Camino 1.5</td>
<td>OSX.3+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Netscape 7.2</td>
<td>Win 95+ / Mac OS 8.6-9.2</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Netscape Browser 8</td>
<td>Win 98SE+</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Netscape Navigator 9</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.0</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Mozilla 1.1</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.1</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.2</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.2</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Mozilla 1.3</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.3</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.4</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.4</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Mozilla 1.5</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.5</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.6</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.6</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Mozilla 1.7</td>
<td>Win 98+ / OSX.1+</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.8</td>
<td>Win 98+ / OSX.1+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Seamonkey 1.1</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Epiphany 2.20</td>
<td>Gnome</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Webkit</td>
<td>Safari 1.2</td>
<td>OSX.3</td>
<td class="center">125.5</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Webkit</td>
<td>Safari 1.3</td>
<td>OSX.3</td>
<td class="center">312.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Webkit</td>
<td>Safari 2.0</td>
<td>OSX.4+</td>
<td class="center">419.3</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Webkit</td>
<td>Safari 3.0</td>
<td>OSX.4+</td>
<td class="center">522.1</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Webkit</td>
<td>OmniWeb 5.5</td>
<td>OSX.4+</td>
<td class="center">420</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Webkit</td>
<td>iPod Touch / iPhone</td>
<td>iPod</td>
<td class="center">420.1</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Webkit</td>
<td>S60</td>
<td>S60</td>
<td class="center">413</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Opera 7.0</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Opera 7.5</td>
<td>Win 95+ / OSX.2+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Opera 8.0</td>
<td>Win 95+ / OSX.2+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Opera 8.5</td>
<td>Win 95+ / OSX.2+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Opera 9.0</td>
<td>Win 95+ / OSX.3+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Opera 9.2</td>
<td>Win 88+ / OSX.3+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Opera 9.5</td>
<td>Win 88+ / OSX.3+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Opera for Wii</td>
<td>Wii</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Nokia N800</td>
<td>N800</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Nintendo DS browser</td>
<td>Nintendo DS</td>
<td class="center">8.5</td>
<td class="center">C/A<sup>1</sup></td>
</tr>
<tr class="even_gradeC">
<td>KHTML</td>
<td>Konqureror 3.1</td>
<td>KDE 3.1</td>
<td class="center">3.1</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeA">
<td>KHTML</td>
<td>Konqureror 3.3</td>
<td>KDE 3.3</td>
<td class="center">3.3</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>KHTML</td>
<td>Konqureror 3.5</td>
<td>KDE 3.5</td>
<td class="center">3.5</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeX">
<td>Tasman</td>
<td>Internet Explorer 4.5</td>
<td>Mac OS 8-9</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="even_gradeC">
<td>Tasman</td>
<td>Internet Explorer 5.1</td>
<td>Mac OS 7.6-9</td>
<td class="center">1</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeC">
<td>Tasman</td>
<td>Internet Explorer 5.2</td>
<td>Mac OS 8-X</td>
<td class="center">1</td>
<td class="center">C</td>
</tr>
<tr class="even_gradeA">
<td>Misc</td>
<td>NetFront 3.1</td>
<td>Embedded devices</td>
<td class="center">-</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeA">
<td>Misc</td>
<td>NetFront 3.4</td>
<td>Embedded devices</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeX">
<td>Misc</td>
<td>Dillo 0.8</td>
<td>Embedded devices</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="odd_gradeX">
<td>Misc</td>
<td>Links</td>
<td>Text only</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="even_gradeX">
<td>Misc</td>
<td>Lynx</td>
<td>Text only</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="odd_gradeC">
<td>Misc</td>
<td>IE Mobile</td>
<td>Windows Mobile 6</td>
<td class="center">-</td>
<td class="center">C</td>
</tr>
<tr class="even_gradeC">
<td>Misc</td>
<td>PSP browser</td>
<td>PSP</td>
<td class="center">-</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeU">
<td>Other browsers</td>
<td>All others</td>
<td>-</td>
<td class="center">-</td>
<td class="center">U</td>
</tr>
</tbody>
</table>
</div>
</form>
<div class="spacer"></div>
<h1>Examples</h1>
<ul>
<li><a href="index.html">Basic initialisation</a></li>
<li><a href="columns.html">Selecting which columns to provide AutoFill on</a></li>
<li><a href="scrolling.html">Scrolling a DataTable using fill</a></li>
<li><a href="inputs.html">Using with input elements</a></li>
<li><a href="callbacks.html">Customisation using callback functions</a></li>
</ul>
<h1>Initialisation code</h1>
<pre>$(document).ready( function () {
var oTable = $('#example').dataTable();
new AutoFill( oTable );</pre>
<div id="footer" style="text-align:center;">
<span style="font-size:10px;">
AutoFill and DataTables &copy; Allan Jardine 2009-2010.<br>
</span>
</div>
</div>
</body>
</html>
@@ -0,0 +1,519 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="shortcut icon" type="image/ico" href="http://www.sprymedia.co.uk/media/images/favicon.ico">
<title>AutoFill example</title>
<style type="text/css" title="currentStyle">
@import "../../media/css/demo_page.css";
@import "../../media/css/demo_table.css";
@import "media/css/AutoFill.css";
td input { width: 90% }
</style>
<script type="text/javascript" charset="utf-8" src="../../media/js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../../media/js/jquery.dataTables.js"></script>
<script type="text/javascript" charset="utf-8" src="media/js/AutoFill.js"></script>
<script type="text/javascript" charset="utf-8">
$.fn.dataTableExt.afnSortData['dom-text'] = function ( oSettings, iColumn )
{
var aData = [];
$( 'td:eq('+iColumn+') input', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
aData.push( this.value );
} );
return aData;
}
$(document).ready( function () {
var oTable = $('#example').dataTable( {
"aoColumnDefs": [
{ "sSortDataType": "dom-text", "aTargets": [ "_all" ] },
{ "sType": "numeric", "aTargets": [ -2 ] }
]
} );
new AutoFill( oTable );
} );
</script>
</head>
<body id="dt_example">
<div id="container">
<div class="full_width big">
AutoFill example with input elements
</div>
<h1>Preamble</h1>
<p>
AutoFill works with Input elements and Select elements, as well as plain HTML cells. This
example shows all inputs cells, combined with DataTables' DOM sorting plug-in. You can
even combine input and plain HTML cells if you wanted (useful from something like jEditable).
</p>
<h1>Live example</h1>
<form>
<div id="demo">
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
<thead>
<tr>
<th>Rendering engine</th>
<th>Browser</th>
<th>Platform(s)</th>
<th>Engine version</th>
<th>CSS grade</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Rendering engine</th>
<th>Browser</th>
<th>Platform(s)</th>
<th>Engine version</th>
<th>CSS grade</th>
</tr>
</tfoot>
<tbody>
<tr class="odd_gradeX">
<td><input type="text" value="Trident"></td>
<td><input type="text" value="Internet Explorer 4.0"></td>
<td><input type="text" value="Win 95+ (Entity: &amp;)"></td>
<td class="center"><input type="text" value="4"></td>
<td class="center"><input type="text" value="X"></td>
</tr>
<tr class="even_gradeC">
<td><input type="text" value="Trident"></td>
<td><input type="text" value="Internet Explorer 5.0"></td>
<td><input type="text" value="Win 95+"></td>
<td class="center"><input type="text" value="5"></td>
<td class="center"><input type="text" value="C"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Trident"></td>
<td><input type="text" value="Internet Explorer 5.5"></td>
<td><input type="text" value="Win 95+"></td>
<td class="center"><input type="text" value="5.5"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Trident"></td>
<td><input type="text" value="Internet Explorer 6"></td>
<td><input type="text" value="Win 98+"></td>
<td class="center"><input type="text" value="6"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Trident"></td>
<td><input type="text" value="Internet Explorer 7"></td>
<td><input type="text" value="Win XP SP2+"></td>
<td class="center"><input type="text" value="7"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Trident"></td>
<td><input type="text" value="AOL browser (AOL desktop)"></td>
<td><input type="text" value="Win XP"></td>
<td class="center"><input type="text" value="6"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Gecko (UTF-8: $¢€)"></td>
<td><input type="text" value="Firefox 1.0"></td>
<td><input type="text" value="Win 98+ / OSX.2+"></td>
<td class="center"><input type="text" value="1.7"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Firefox 1.5"></td>
<td><input type="text" value="Win 98+ / OSX.2+"></td>
<td class="center"><input type="text" value="1.8"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Firefox 2.0"></td>
<td><input type="text" value="Win 98+ / OSX.2+"></td>
<td class="center"><input type="text" value="1.8"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Firefox 3.0"></td>
<td><input type="text" value="Win 2k+ / OSX.3+"></td>
<td class="center"><input type="text" value="1.9"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Camino 1.0"></td>
<td><input type="text" value="OSX.2+"></td>
<td class="center"><input type="text" value="1.8"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Camino 1.5"></td>
<td><input type="text" value="OSX.3+"></td>
<td class="center"><input type="text" value="1.8"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Netscape 7.2"></td>
<td><input type="text" value="Win 95+ / Mac OS 8.6-9.2"></td>
<td class="center"><input type="text" value="1.7"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Netscape Browser 8"></td>
<td><input type="text" value="Win 98SE+"></td>
<td class="center"><input type="text" value="1.7"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Netscape Navigator 9"></td>
<td><input type="text" value="Win 98+ / OSX.2+"></td>
<td class="center"><input type="text" value="1.8"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Mozilla 1.0"></td>
<td><input type="text" value="Win 95+ / OSX.1+"></td>
<td class="center"><input type="text" value="1"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Mozilla 1.1"></td>
<td><input type="text" value="Win 95+ / OSX.1+"></td>
<td class="center"><input type="text" value="1.1"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Mozilla 1.2"></td>
<td><input type="text" value="Win 95+ / OSX.1+"></td>
<td class="center"><input type="text" value="1.2"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Mozilla 1.3"></td>
<td><input type="text" value="Win 95+ / OSX.1+"></td>
<td class="center"><input type="text" value="1.3"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Mozilla 1.4"></td>
<td><input type="text" value="Win 95+ / OSX.1+"></td>
<td class="center"><input type="text" value="1.4"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Mozilla 1.5"></td>
<td><input type="text" value="Win 95+ / OSX.1+"></td>
<td class="center"><input type="text" value="1.5"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Mozilla 1.6"></td>
<td><input type="text" value="Win 95+ / OSX.1+"></td>
<td class="center"><input type="text" value="1.6"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Mozilla 1.7"></td>
<td><input type="text" value="Win 98+ / OSX.1+"></td>
<td class="center"><input type="text" value="1.7"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Mozilla 1.8"></td>
<td><input type="text" value="Win 98+ / OSX.1+"></td>
<td class="center"><input type="text" value="1.8"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Seamonkey 1.1"></td>
<td><input type="text" value="Win 98+ / OSX.2+"></td>
<td class="center"><input type="text" value="1.8"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Gecko"></td>
<td><input type="text" value="Epiphany 2.20"></td>
<td><input type="text" value="Gnome"></td>
<td class="center"><input type="text" value="1.8"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Webkit"></td>
<td><input type="text" value="Safari 1.2"></td>
<td><input type="text" value="OSX.3"></td>
<td class="center"><input type="text" value="125.5"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Webkit"></td>
<td><input type="text" value="Safari 1.3"></td>
<td><input type="text" value="OSX.3"></td>
<td class="center"><input type="text" value="312.8"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Webkit"></td>
<td><input type="text" value="Safari 2.0"></td>
<td><input type="text" value="OSX.4+"></td>
<td class="center"><input type="text" value="419.3"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Webkit"></td>
<td><input type="text" value="Safari 3.0"></td>
<td><input type="text" value="OSX.4+"></td>
<td class="center"><input type="text" value="522.1"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Webkit"></td>
<td><input type="text" value="OmniWeb 5.5"></td>
<td><input type="text" value="OSX.4+"></td>
<td class="center"><input type="text" value="420"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Webkit"></td>
<td><input type="text" value="iPod Touch / iPhone"></td>
<td><input type="text" value="iPod"></td>
<td class="center"><input type="text" value="420.1"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Webkit"></td>
<td><input type="text" value="S60"></td>
<td><input type="text" value="S60"></td>
<td class="center"><input type="text" value="413"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Presto"></td>
<td><input type="text" value="Opera 7.0"></td>
<td><input type="text" value="Win 95+ / OSX.1+"></td>
<td class="center"><input type="text" value="-"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Presto"></td>
<td><input type="text" value="Opera 7.5"></td>
<td><input type="text" value="Win 95+ / OSX.2+"></td>
<td class="center"><input type="text" value="-"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Presto"></td>
<td><input type="text" value="Opera 8.0"></td>
<td><input type="text" value="Win 95+ / OSX.2+"></td>
<td class="center"><input type="text" value="-"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Presto"></td>
<td><input type="text" value="Opera 8.5"></td>
<td><input type="text" value="Win 95+ / OSX.2+"></td>
<td class="center"><input type="text" value="-"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Presto"></td>
<td><input type="text" value="Opera 9.0"></td>
<td><input type="text" value="Win 95+ / OSX.3+"></td>
<td class="center"><input type="text" value="-"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Presto"></td>
<td><input type="text" value="Opera 9.2"></td>
<td><input type="text" value="Win 88+ / OSX.3+"></td>
<td class="center"><input type="text" value="-"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Presto"></td>
<td><input type="text" value="Opera 9.5"></td>
<td><input type="text" value="Win 88+ / OSX.3+"></td>
<td class="center"><input type="text" value="-"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Presto"></td>
<td><input type="text" value="Opera for Wii"></td>
<td><input type="text" value="Wii"></td>
<td class="center"><input type="text" value="-"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Presto"></td>
<td><input type="text" value="Nokia N800"></td>
<td><input type="text" value="N800"></td>
<td class="center"><input type="text" value="-"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Presto"></td>
<td><input type="text" value="Nintendo DS browser"></td>
<td><input type="text" value="Nintendo DS"></td>
<td class="center"><input type="text" value="8.5"></td>
<td class="center"><input type="text" value="C/A<sup>1</sup>"></td>
</tr>
<tr class="even_gradeC">
<td><input type="text" value="KHTML"></td>
<td><input type="text" value="Konqureror 3.1"></td>
<td><input type="text" value="KDE 3.1"></td>
<td class="center"><input type="text" value="3.1"></td>
<td class="center"><input type="text" value="C"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="KHTML"></td>
<td><input type="text" value="Konqureror 3.3"></td>
<td><input type="text" value="KDE 3.3"></td>
<td class="center"><input type="text" value="3.3"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="KHTML"></td>
<td><input type="text" value="Konqureror 3.5"></td>
<td><input type="text" value="KDE 3.5"></td>
<td class="center"><input type="text" value="3.5"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="odd_gradeX">
<td><input type="text" value="Tasman"></td>
<td><input type="text" value="Internet Explorer 4.5"></td>
<td><input type="text" value="Mac OS 8-9"></td>
<td class="center"><input type="text" value="-"></td>
<td class="center"><input type="text" value="X"></td>
</tr>
<tr class="even_gradeC">
<td><input type="text" value="Tasman"></td>
<td><input type="text" value="Internet Explorer 5.1"></td>
<td><input type="text" value="Mac OS 7.6-9"></td>
<td class="center"><input type="text" value="1"></td>
<td class="center"><input type="text" value="C"></td>
</tr>
<tr class="odd_gradeC">
<td><input type="text" value="Tasman"></td>
<td><input type="text" value="Internet Explorer 5.2"></td>
<td><input type="text" value="Mac OS 8-X"></td>
<td class="center"><input type="text" value="1"></td>
<td class="center"><input type="text" value="C"></td>
</tr>
<tr class="even_gradeA">
<td><input type="text" value="Misc"></td>
<td><input type="text" value="NetFront 3.1"></td>
<td><input type="text" value="Embedded devices"></td>
<td class="center"><input type="text" value="-"></td>
<td class="center"><input type="text" value="C"></td>
</tr>
<tr class="odd_gradeA">
<td><input type="text" value="Misc"></td>
<td><input type="text" value="NetFront 3.4"></td>
<td><input type="text" value="Embedded devices"></td>
<td class="center"><input type="text" value="-"></td>
<td class="center"><input type="text" value="A"></td>
</tr>
<tr class="even_gradeX">
<td><input type="text" value="Misc"></td>
<td><input type="text" value="Dillo 0.8"></td>
<td><input type="text" value="Embedded devices"></td>
<td class="center"><input type="text" value="-"></td>
<td class="center"><input type="text" value="X"></td>
</tr>
<tr class="odd_gradeX">
<td><input type="text" value="Misc"></td>
<td><input type="text" value="Links"></td>
<td><input type="text" value="Text only"></td>
<td class="center"><input type="text" value="-"></td>
<td class="center"><input type="text" value="X"></td>
</tr>
<tr class="even_gradeX">
<td><input type="text" value="Misc"></td>
<td><input type="text" value="Lynx"></td>
<td><input type="text" value="Text only"></td>
<td class="center"><input type="text" value="-"></td>
<td class="center"><input type="text" value="X"></td>
</tr>
<tr class="odd_gradeC">
<td><input type="text" value="Misc"></td>
<td><input type="text" value="IE Mobile"></td>
<td><input type="text" value="Windows Mobile 6"></td>
<td class="center"><input type="text" value="-"></td>
<td class="center"><input type="text" value="C"></td>
</tr>
<tr class="even_gradeC">
<td><input type="text" value="Misc"></td>
<td><input type="text" value="PSP browser"></td>
<td><input type="text" value="PSP"></td>
<td class="center"><input type="text" value="-"></td>
<td class="center"><input type="text" value="C"></td>
</tr>
<tr class="odd_gradeU">
<td><input type="text" value="Other browsers"></td>
<td><input type="text" value="All others"></td>
<td><input type="text" value="-"></td>
<td class="center"><input type="text" value="-"></td>
<td class="center"><input type="text" value="U"></td>
</tr>
</tbody>
</table>
</div>
</form>
<div class="spacer"></div>
<h1>Examples</h1>
<ul>
<li><a href="index.html">Basic initialisation</a></li>
<li><a href="columns.html">Selecting which columns to provide AutoFill on</a></li>
<li><a href="scrolling.html">Scrolling a DataTable using fill</a></li>
<li><a href="inputs.html">Using with input elements</a></li>
<li><a href="callbacks.html">Customisation using callback functions</a></li>
</ul>
<h1>Initialisation code</h1>
<pre>$.fn.dataTableExt.afnSortData['dom-text'] = function ( oSettings, iColumn )
{
var aData = [];
$( 'td:eq('+iColumn+') input', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
aData.push( this.value );
} );
return aData;
}
$(document).ready( function () {
var oTable = $('#example').dataTable( {
"aoColumnDefs": [
{ "sSortDataType": "dom-text", "aTargets": [ "_all" ] },
{ "sType": "numeric", "aTargets": [ -2 ] }
]
} );
new AutoFill( oTable );
} );</pre>
<div id="footer" style="text-align:center;">
<span style="font-size:10px;">
AutoFill and DataTables &copy; Allan Jardine 2009-2010.<br>
</span>
</div>
</div>
</body>
</html>
@@ -0,0 +1,24 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* AutoFill styles
*/
div.AutoFill_filler {
display: none;
position: absolute;
height: 14px;
width: 14px;
background: url(../images/filler.png) no-repeat center center;
z-index: 1002;
}
div.AutoFill_border {
display: none;
position: absolute;
background-color: #0063dc;
z-index: 1001;
box-shadow: 0px 0px 5px #76b4ff;
-moz-box-shadow: 0px 0px 5px #76b4ff;
-webkit-box-shadow: 0px 0px 5px #76b4ff;
}
@@ -0,0 +1,418 @@
/*
* TABLE OF CONTENTS:
* - Browser reset
* - HTML elements
* - JsDoc styling
*/
/*
* BEGIN BROWSER RESET
*/
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,p,pre,form,fieldset,input,textarea,p,blockquote,th,td {
margin:0;
padding:0
}
html {
height:100%;
overflow:-moz-scrollbars-vertical;
overflow-x:auto
}
table {
border:0;
border-collapse:collapse;
border-spacing:0
}
fieldset,img {
border:0
}
address,caption,cite,code,dfn,em,strong,th,var {
font-style:normal;
font-weight:normal
}
em,cite {
font-style:italic
}
strong {
font-weight:bold
}
ol,ul {
list-style:none
}
caption,th {
text-align:left
}
h1,h2,h3,h4,h5,h6 {
font-size:100%;
font-weight:normal;
margin:0;
padding:0
}
q:before,q:after {
content:''
}
abbr,acronym {
border:0
}
/*
* END BROWSER RESET
*/
/*
* HTML ELEMENTS
*/
* {
line-height: 1.4em;
}
html {
font-size: 100%;
}
body {
font-size: 0.75em !important;
padding: 15px 0;
background: #eee;
background-image: -moz-linear-gradient(left, #dddddd, #f9f9f9);
background-image: -webkit-gradient(linear,left bottom,right bottom,color-stop(0, #dddddd),color-stop(1, #f9f9f9));
}
body,
input,
select,
textarea {
color: #000;
font-family: Arial, Geneva, sans-serif;
}
a:link,
a:hover,
a:active,
a:visited {
color: #19199e;
}
a:hover,
a:focus {
color: #00f;
text-decoration: none;
}
p {
margin: 0 0 1.5em 0;
}
/*
* END HTML ELEMENTS
*/
/*
* BEGIN HACK
*/
div.containerMain:after,
div.safeBox:after {
content:"";
display:block;
height:0;
clear:both;
}
/*
* END HACK
*/
/*
* BEGIN JSDOC
*/
div.index *.heading1 {
margin-bottom: 0.5em;
border-bottom: 1px solid #999999;
padding: 0.5em 0 0.1em 0;
font-family: 'Lucida Sans Unicode', 'Lucida Grande', sans-serif;
font-size: 1.3em;
letter-spacing: 1px;
}
div.index {
float: left;
width: 30%;
min-width: 100px;
max-width: 250px;
}
div.index div.menu {
margin: 0 15px 0 -15px;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
border-radius: 15px;
padding: 15px 15px 15px 30px;
background-color: #FFFFFF;
background-color: rgba(255, 255, 255, 0.5);
-moz-box-shadow: 0px 0px 10px #c4c4c4;
-webkit-box-shadow: 0px 0px 10px #c4c4c4;
box-shadow: 0px 0px 10px #c4c4c4;
}
*+html div.index div.menu {
background-color: #FFFFFF;
}
* html div.index div.menu {
background-color: #FFFFFF;
}
div.index div.menu div {
text-align: left;
}
div.index div.menu a {
text-decoration: none;
}
div.index div.menu a:hover {
text-decoration: underline;
}
div.index ul.classList a {
font-family: Consolas, "Courier New", Courier, monospace;
}
div.index div.fineprint {
padding: 15px 30px 15px 15px;
color: #777;
font-size: 0.9em;
}
div.index div.fineprint a {
color: #777;
}
div.content {
float: left;
width: 70%;
min-width: 300px;
max-width: 600px;
}
div.innerContent {
padding: 0 0 0 2.5em;
}
div.content ul,
div.content ol {
margin-bottom: 3em;
}
div.content *.classTitle {
margin-bottom: 0.5em;
font-family: 'Lucida Sans Unicode', 'Lucida Grande', sans-serif;
font-size: 2.5em;
letter-spacing: 2px;
}
div.content *.classTitle span {
font-family: Consolas, "Courier New", Courier, monospace;
}
div.content p.summary {
font-size: 1.2em;
}
div.content ul *.classname a,
div.content ul *.filename a {
font-family: Consolas, "Courier New", Courier, monospace;
text-decoration: none;
font-weight: bold;
}
div.content ul *.classname a:hover,
div.content ul *.filename a:hover {
text-decoration: underline;
}
div.content div.props {
position: relative;
left: -10px;
margin-bottom: 2.5em;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
padding: 10px 15px 15px 15px;
overflow: hidden;
background: #fff;
background: -moz-linear-gradient(top, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.2)); /* FF3.6 */
background: -webkit-gradient(linear,left top,left bottom,color-stop(0, rgba(255, 255, 255, 0.7)),color-stop(1, rgba(255, 255, 255, 0.2)));
-moz-box-shadow: 0px 0px 10px #ccc;
-webkit-box-shadow: 0px 0px 5px #bbb;
box-shadow: 0px 0px 5px #bbb;
}
div.content div.props div.sectionTitle {
padding-bottom: 10px;
font-family: 'Lucida Sans Unicode', 'Lucida Grande', sans-serif;
font-size: 1.4em;
letter-spacing: 1px;
}
div.content div.hr {
margin: 0 10px 0 0;
height: 4em;
}
table.summaryTable {
position: relative;
left: -10px;
width: 100%;
border-collapse: collapse;
box-sizing: content-box;
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
-ms-box-sizing: content-box;
-o-box-sizing: content-box;
-icab-box-sizing: content-box;
-khtml-box-sizing: content-box;
}
table.summaryTable caption {
padding: 0 10px 10px 10px;
font-family: 'Lucida Sans Unicode', 'Lucida Grande', sans-serif;
font-size: 1.4em;
letter-spacing: 1px;
}
table.summaryTable td,
table.summaryTable th {
padding: 0px 10px 10px 10px;
vertical-align: top;
}
table.summaryTable tr:last-child td {
padding-bottom: 0;
}
table.summaryTable th {
font-weight: bold;
}
table.summaryTable td.attributes {
width: 35%;
font-family: Consolas, "Courier New", Courier, monospace;
color: #666;
}
table.summaryTable td.nameDescription {
width: 65%
}
table.summaryTable td.nameDescription div.fixedFont {
font-weight: bold;
}
table.summaryTable div.description {
color: #333;
}
dl.detailList {
margin-top: 0.5em;
}
dl.detailList.nomargin + dl.detailList.nomargin {
margin-top: 0;
}
dl.detailList dt {
display: inline;
margin-right: 5px;
font-weight: bold;
}
dl.detailList dt:before {
display: block;
content: "";
}
dl.detailList dd {
display: inline;
}
dl.detailList.params dt {
display: block;
}
dl.detailList.params dd {
display: block;
padding-left: 2em;
padding-bottom: 0.4em;
}
ul.fileList li {
margin-bottom: 1.5em;
}
.fixedFont {
font-family: Consolas, "Courier New", Courier, monospace;
}
.fixedFont.heading {
margin-bottom: 0.5em;
font-size: 1.25em;
line-height: 1.1em
}
.fixedFont.heading + .description {
font-size: 1.2em;
}
.fixedFont.heading .light,
.fixedFont.heading .lighter {
font-weight: bold;
}
pre.code {
margin: 10px 0 10px 0;
padding: 10px;
border: 1px solid #ccc;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
border-radius: 2px;
overflow: auto;
font-family: Consolas, "Courier New", Courier, monospace;
background: #eee;
}
.light {
color: #666;
}
.lighter {
color: #999;
}
.clear {
clear: both;
width: 100%;
min-height: 0;
}
/*
* END JSDOC
*/
@@ -0,0 +1,79 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>JsDoc Reference - File Index</title>
<meta name="generator" content="JsDoc Toolkit" />
<link href="css/default.css" type="text/css" rel="stylesheet" media="all" />
</head>
<body>
<div id="header">
</div>
<div class="index">
<div class="menu">
<div align="center"><a href="index.html">Class Index</a> | <a href="files.html">File Index</a></div>
<h2 class="heading1">Classes</h2>
<ul class="classList">
<li><a href="symbols/_global_.html">_global_</a></li>
<li><a href="symbols/AutoFill.html">AutoFill</a></li>
<li><a href="symbols/AutoFill%23dom.html">AutoFill#dom</a></li>
<li><a href="symbols/AutoFill%23s.html">AutoFill#s</a></li>
<li><a href="symbols/AutoFill%23s.border.html">AutoFill#s.border</a></li>
<li><a href="symbols/AutoFill%23s.columns.html">AutoFill#s.columns</a></li>
<li><a href="symbols/AutoFill%23s.drag.html">AutoFill#s.drag</a></li>
<li><a href="symbols/AutoFill%23s.filler.html">AutoFill#s.filler</a></li>
<li><a href="symbols/AutoFill%23s.screen.html">AutoFill#s.screen</a></li>
<li><a href="symbols/AutoFill%23s.scroller.html">AutoFill#s.scroller</a></li>
</ul>
</div>
<div class="fineprint" style="clear:both">
Generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sat Sep 10 2011 10:47:26 GMT+0100 (BST)<br />
HTML template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a>
</div>
</div>
<div class="content">
<div class="innerContent">
<h1 class="classTitle">File Index</h1>
<ul class="fileList">
<li>
<h2 class="filename"><a href="symbols/src/js_AutoFill.js.html">js/AutoFill.js</a></h2>
<dl class="detailList">
</dl>
</li>
</ul>
</div>
</div>
</body>
</html>
@@ -0,0 +1,115 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>JsDoc Reference - Index</title>
<meta name="generator" content="JsDoc Toolkit" />
<link href="css/default.css" type="text/css" rel="stylesheet" media="all" />
</head>
<body>
<div id="header">
</div>
<div class="index">
<div class="menu">
<div align="center"><a href="index.html">Class Index</a> | <a href="files.html">File Index</a></div>
<h2 class="heading1">Classes</h2>
<ul class="classList">
<li><a href="symbols/_global_.html">_global_</a></li>
<li><a href="symbols/AutoFill.html">AutoFill</a></li>
<li><a href="symbols/AutoFill%23dom.html">AutoFill#dom</a></li>
<li><a href="symbols/AutoFill%23s.html">AutoFill#s</a></li>
<li><a href="symbols/AutoFill%23s.border.html">AutoFill#s.border</a></li>
<li><a href="symbols/AutoFill%23s.columns.html">AutoFill#s.columns</a></li>
<li><a href="symbols/AutoFill%23s.drag.html">AutoFill#s.drag</a></li>
<li><a href="symbols/AutoFill%23s.filler.html">AutoFill#s.filler</a></li>
<li><a href="symbols/AutoFill%23s.screen.html">AutoFill#s.screen</a></li>
<li><a href="symbols/AutoFill%23s.scroller.html">AutoFill#s.scroller</a></li>
</ul>
</div>
<div class="fineprint" style="clear:both">
Generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sat Sep 10 2011 10:47:26 GMT+0100 (BST)<br />
HTML template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a>
</div>
</div>
<div class="content">
<div class="innerContent">
<h1 class="classTitle">Class Index</h1>
<ul>
<li>
<h2 class="classname"><a href="symbols/_global_.html">_global_</a></h2>
<p></p>
</li>
<li>
<h2 class="classname"><a href="symbols/AutoFill.html">AutoFill</a></h2>
<p>AutoFill</p>
</li>
<li>
<h2 class="classname"><a href="symbols/AutoFill%23dom.html">AutoFill#dom</a></h2>
<p>Common and useful DOM elements for the class instance</p>
</li>
<li>
<h2 class="classname"><a href="symbols/AutoFill%23s.html">AutoFill#s</a></h2>
<p>Settings object which contains customisable information for AutoFill instance</p>
</li>
<li>
<h2 class="classname"><a href="symbols/AutoFill%23s.border.html">AutoFill#s.border</a></h2>
<p>Cached information about the border display</p>
</li>
<li>
<h2 class="classname"><a href="symbols/AutoFill%23s.columns.html">AutoFill#s.columns</a></h2>
<p>Information stored for each column.</p>
</li>
<li>
<h2 class="classname"><a href="symbols/AutoFill%23s.drag.html">AutoFill#s.drag</a></h2>
<p>Store for live information for the current drag</p>
</li>
<li>
<h2 class="classname"><a href="symbols/AutoFill%23s.filler.html">AutoFill#s.filler</a></h2>
<p>Cached information about the little dragging icon (the filler)</p>
</li>
<li>
<h2 class="classname"><a href="symbols/AutoFill%23s.screen.html">AutoFill#s.screen</a></h2>
<p>Data cache for information that we need for scrolling the screen when we near
the edges</p>
</li>
<li>
<h2 class="classname"><a href="symbols/AutoFill%23s.scroller.html">AutoFill#s.scroller</a></h2>
<p>Data cache for the position of the DataTables scrolling element (when scrolling
is enabled)</p>
</li>
</ul>
</div>
</div>
</body>
</html>
@@ -0,0 +1,159 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="JsDoc Toolkit" />
<title>JsDoc Reference - AutoFill#dom</title>
<link href="../css/default.css" type="text/css" rel="stylesheet" media="all" />
</head>
<body>
<div id="header">
</div>
<div class="index">
<div class="menu">
<!-- begin publish.classesIndex -->
<div align="center"><a href="../index.html">Class Index</a> | <a href="../files.html">File Index</a></div>
<h2 class="heading1">Classes</h2>
<ul class="classList">
<li><a href="../symbols/_global_.html">_global_</a></li>
<li><a href="../symbols/AutoFill.html">AutoFill</a></li>
<li><a href="../symbols/AutoFill%23dom.html">AutoFill#dom</a></li>
<li><a href="../symbols/AutoFill%23s.html">AutoFill#s</a></li>
<li><a href="../symbols/AutoFill%23s.border.html">AutoFill#s.border</a></li>
<li><a href="../symbols/AutoFill%23s.columns.html">AutoFill#s.columns</a></li>
<li><a href="../symbols/AutoFill%23s.drag.html">AutoFill#s.drag</a></li>
<li><a href="../symbols/AutoFill%23s.filler.html">AutoFill#s.filler</a></li>
<li><a href="../symbols/AutoFill%23s.screen.html">AutoFill#s.screen</a></li>
<li><a href="../symbols/AutoFill%23s.scroller.html">AutoFill#s.scroller</a></li>
</ul>
<!-- end publish.classesIndex -->
</div>
<div class="fineprint" style="clear:both">
Generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sat Sep 10 2011 10:47:26 GMT+0100 (BST)<br />
HTML template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a>
</div>
</div>
<div class="content">
<div class="innerContent">
<h1 class="classTitle">
Namespace <span>AutoFill#dom</span>
</h1>
<p class="description summary">
Common and useful DOM elements for the class instance
<br /><em>Defined in: </em> <a href="../symbols/src/js_AutoFill.js.html">AutoFill.js</a>.
</p>
<div class="props">
<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class AutoFill#dom.">
<caption>Namespace Summary</caption>
<thead>
<tr>
<th scope="col">Constructor Attributes</th>
<th scope="col">Constructor Name and Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="attributes">&nbsp;</td>
<td class="nameDescription" >
<div class="fixedFont">
<b><a href="../symbols/AutoFill%23dom.html#constructor">AutoFill#dom</a></b>
</div>
<div class="description"></div>
</td>
</tr>
</tbody>
</table>
</div>
<!--
#### METHODS SUMMARY
-->
<!--
#### EVENTS SUMMARY
-->
<!--
#### CONSTRUCTOR DETAILS
-->
<div class="details props">
<div class="innerProps">
<a name="constructor"></a>
<div class="sectionTitle">
Namespace Detail
</div>
<div class="fixedFont">
<b>AutoFill#dom</b>
</div>
<div class="description">
</div>
</div>
</div>
<!--
#### FIELD DETAILS
-->
<!--
#### METHOD DETAILS
-->
<!--
#### EVENT DETAILS
-->
</div>
</div>
</body>
</html>
@@ -0,0 +1,159 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="JsDoc Toolkit" />
<title>JsDoc Reference - AutoFill#s.border</title>
<link href="../css/default.css" type="text/css" rel="stylesheet" media="all" />
</head>
<body>
<div id="header">
</div>
<div class="index">
<div class="menu">
<!-- begin publish.classesIndex -->
<div align="center"><a href="../index.html">Class Index</a> | <a href="../files.html">File Index</a></div>
<h2 class="heading1">Classes</h2>
<ul class="classList">
<li><a href="../symbols/_global_.html">_global_</a></li>
<li><a href="../symbols/AutoFill.html">AutoFill</a></li>
<li><a href="../symbols/AutoFill%23dom.html">AutoFill#dom</a></li>
<li><a href="../symbols/AutoFill%23s.html">AutoFill#s</a></li>
<li><a href="../symbols/AutoFill%23s.border.html">AutoFill#s.border</a></li>
<li><a href="../symbols/AutoFill%23s.columns.html">AutoFill#s.columns</a></li>
<li><a href="../symbols/AutoFill%23s.drag.html">AutoFill#s.drag</a></li>
<li><a href="../symbols/AutoFill%23s.filler.html">AutoFill#s.filler</a></li>
<li><a href="../symbols/AutoFill%23s.screen.html">AutoFill#s.screen</a></li>
<li><a href="../symbols/AutoFill%23s.scroller.html">AutoFill#s.scroller</a></li>
</ul>
<!-- end publish.classesIndex -->
</div>
<div class="fineprint" style="clear:both">
Generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sat Sep 10 2011 10:47:26 GMT+0100 (BST)<br />
HTML template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a>
</div>
</div>
<div class="content">
<div class="innerContent">
<h1 class="classTitle">
Namespace <span>AutoFill#s.border</span>
</h1>
<p class="description summary">
Cached information about the border display
<br /><em>Defined in: </em> <a href="../symbols/src/js_AutoFill.js.html">AutoFill.js</a>.
</p>
<div class="props">
<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class AutoFill#s.border.">
<caption>Namespace Summary</caption>
<thead>
<tr>
<th scope="col">Constructor Attributes</th>
<th scope="col">Constructor Name and Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="attributes">&nbsp;</td>
<td class="nameDescription" >
<div class="fixedFont">
<b><a href="../symbols/AutoFill%23s.border.html#constructor">AutoFill#s.border</a></b>
</div>
<div class="description"></div>
</td>
</tr>
</tbody>
</table>
</div>
<!--
#### METHODS SUMMARY
-->
<!--
#### EVENTS SUMMARY
-->
<!--
#### CONSTRUCTOR DETAILS
-->
<div class="details props">
<div class="innerProps">
<a name="constructor"></a>
<div class="sectionTitle">
Namespace Detail
</div>
<div class="fixedFont">
<b>AutoFill#s.border</b>
</div>
<div class="description">
</div>
</div>
</div>
<!--
#### FIELD DETAILS
-->
<!--
#### METHOD DETAILS
-->
<!--
#### EVENT DETAILS
-->
</div>
</div>
</body>
</html>
@@ -0,0 +1,159 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="JsDoc Toolkit" />
<title>JsDoc Reference - AutoFill#s.columns</title>
<link href="../css/default.css" type="text/css" rel="stylesheet" media="all" />
</head>
<body>
<div id="header">
</div>
<div class="index">
<div class="menu">
<!-- begin publish.classesIndex -->
<div align="center"><a href="../index.html">Class Index</a> | <a href="../files.html">File Index</a></div>
<h2 class="heading1">Classes</h2>
<ul class="classList">
<li><a href="../symbols/_global_.html">_global_</a></li>
<li><a href="../symbols/AutoFill.html">AutoFill</a></li>
<li><a href="../symbols/AutoFill%23dom.html">AutoFill#dom</a></li>
<li><a href="../symbols/AutoFill%23s.html">AutoFill#s</a></li>
<li><a href="../symbols/AutoFill%23s.border.html">AutoFill#s.border</a></li>
<li><a href="../symbols/AutoFill%23s.columns.html">AutoFill#s.columns</a></li>
<li><a href="../symbols/AutoFill%23s.drag.html">AutoFill#s.drag</a></li>
<li><a href="../symbols/AutoFill%23s.filler.html">AutoFill#s.filler</a></li>
<li><a href="../symbols/AutoFill%23s.screen.html">AutoFill#s.screen</a></li>
<li><a href="../symbols/AutoFill%23s.scroller.html">AutoFill#s.scroller</a></li>
</ul>
<!-- end publish.classesIndex -->
</div>
<div class="fineprint" style="clear:both">
Generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sat Sep 10 2011 10:47:26 GMT+0100 (BST)<br />
HTML template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a>
</div>
</div>
<div class="content">
<div class="innerContent">
<h1 class="classTitle">
Namespace <span>AutoFill#s.columns</span>
</h1>
<p class="description summary">
Information stored for each column. An array of objects
<br /><em>Defined in: </em> <a href="../symbols/src/js_AutoFill.js.html">AutoFill.js</a>.
</p>
<div class="props">
<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class AutoFill#s.columns.">
<caption>Namespace Summary</caption>
<thead>
<tr>
<th scope="col">Constructor Attributes</th>
<th scope="col">Constructor Name and Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="attributes">&nbsp;</td>
<td class="nameDescription" >
<div class="fixedFont">
<b><a href="../symbols/AutoFill%23s.columns.html#constructor">AutoFill#s.columns</a></b>
</div>
<div class="description"></div>
</td>
</tr>
</tbody>
</table>
</div>
<!--
#### METHODS SUMMARY
-->
<!--
#### EVENTS SUMMARY
-->
<!--
#### CONSTRUCTOR DETAILS
-->
<div class="details props">
<div class="innerProps">
<a name="constructor"></a>
<div class="sectionTitle">
Namespace Detail
</div>
<div class="fixedFont">
<b>AutoFill#s.columns</b>
</div>
<div class="description">
</div>
</div>
</div>
<!--
#### FIELD DETAILS
-->
<!--
#### METHOD DETAILS
-->
<!--
#### EVENT DETAILS
-->
</div>
</div>
</body>
</html>
@@ -0,0 +1,159 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="JsDoc Toolkit" />
<title>JsDoc Reference - AutoFill#s.drag</title>
<link href="../css/default.css" type="text/css" rel="stylesheet" media="all" />
</head>
<body>
<div id="header">
</div>
<div class="index">
<div class="menu">
<!-- begin publish.classesIndex -->
<div align="center"><a href="../index.html">Class Index</a> | <a href="../files.html">File Index</a></div>
<h2 class="heading1">Classes</h2>
<ul class="classList">
<li><a href="../symbols/_global_.html">_global_</a></li>
<li><a href="../symbols/AutoFill.html">AutoFill</a></li>
<li><a href="../symbols/AutoFill%23dom.html">AutoFill#dom</a></li>
<li><a href="../symbols/AutoFill%23s.html">AutoFill#s</a></li>
<li><a href="../symbols/AutoFill%23s.border.html">AutoFill#s.border</a></li>
<li><a href="../symbols/AutoFill%23s.columns.html">AutoFill#s.columns</a></li>
<li><a href="../symbols/AutoFill%23s.drag.html">AutoFill#s.drag</a></li>
<li><a href="../symbols/AutoFill%23s.filler.html">AutoFill#s.filler</a></li>
<li><a href="../symbols/AutoFill%23s.screen.html">AutoFill#s.screen</a></li>
<li><a href="../symbols/AutoFill%23s.scroller.html">AutoFill#s.scroller</a></li>
</ul>
<!-- end publish.classesIndex -->
</div>
<div class="fineprint" style="clear:both">
Generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sat Sep 10 2011 10:47:26 GMT+0100 (BST)<br />
HTML template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a>
</div>
</div>
<div class="content">
<div class="innerContent">
<h1 class="classTitle">
Namespace <span>AutoFill#s.drag</span>
</h1>
<p class="description summary">
Store for live information for the current drag
<br /><em>Defined in: </em> <a href="../symbols/src/js_AutoFill.js.html">AutoFill.js</a>.
</p>
<div class="props">
<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class AutoFill#s.drag.">
<caption>Namespace Summary</caption>
<thead>
<tr>
<th scope="col">Constructor Attributes</th>
<th scope="col">Constructor Name and Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="attributes">&nbsp;</td>
<td class="nameDescription" >
<div class="fixedFont">
<b><a href="../symbols/AutoFill%23s.drag.html#constructor">AutoFill#s.drag</a></b>
</div>
<div class="description"></div>
</td>
</tr>
</tbody>
</table>
</div>
<!--
#### METHODS SUMMARY
-->
<!--
#### EVENTS SUMMARY
-->
<!--
#### CONSTRUCTOR DETAILS
-->
<div class="details props">
<div class="innerProps">
<a name="constructor"></a>
<div class="sectionTitle">
Namespace Detail
</div>
<div class="fixedFont">
<b>AutoFill#s.drag</b>
</div>
<div class="description">
</div>
</div>
</div>
<!--
#### FIELD DETAILS
-->
<!--
#### METHOD DETAILS
-->
<!--
#### EVENT DETAILS
-->
</div>
</div>
</body>
</html>
@@ -0,0 +1,159 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="JsDoc Toolkit" />
<title>JsDoc Reference - AutoFill#s.filler</title>
<link href="../css/default.css" type="text/css" rel="stylesheet" media="all" />
</head>
<body>
<div id="header">
</div>
<div class="index">
<div class="menu">
<!-- begin publish.classesIndex -->
<div align="center"><a href="../index.html">Class Index</a> | <a href="../files.html">File Index</a></div>
<h2 class="heading1">Classes</h2>
<ul class="classList">
<li><a href="../symbols/_global_.html">_global_</a></li>
<li><a href="../symbols/AutoFill.html">AutoFill</a></li>
<li><a href="../symbols/AutoFill%23dom.html">AutoFill#dom</a></li>
<li><a href="../symbols/AutoFill%23s.html">AutoFill#s</a></li>
<li><a href="../symbols/AutoFill%23s.border.html">AutoFill#s.border</a></li>
<li><a href="../symbols/AutoFill%23s.columns.html">AutoFill#s.columns</a></li>
<li><a href="../symbols/AutoFill%23s.drag.html">AutoFill#s.drag</a></li>
<li><a href="../symbols/AutoFill%23s.filler.html">AutoFill#s.filler</a></li>
<li><a href="../symbols/AutoFill%23s.screen.html">AutoFill#s.screen</a></li>
<li><a href="../symbols/AutoFill%23s.scroller.html">AutoFill#s.scroller</a></li>
</ul>
<!-- end publish.classesIndex -->
</div>
<div class="fineprint" style="clear:both">
Generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sat Sep 10 2011 10:47:26 GMT+0100 (BST)<br />
HTML template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a>
</div>
</div>
<div class="content">
<div class="innerContent">
<h1 class="classTitle">
Namespace <span>AutoFill#s.filler</span>
</h1>
<p class="description summary">
Cached information about the little dragging icon (the filler)
<br /><em>Defined in: </em> <a href="../symbols/src/js_AutoFill.js.html">AutoFill.js</a>.
</p>
<div class="props">
<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class AutoFill#s.filler.">
<caption>Namespace Summary</caption>
<thead>
<tr>
<th scope="col">Constructor Attributes</th>
<th scope="col">Constructor Name and Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="attributes">&nbsp;</td>
<td class="nameDescription" >
<div class="fixedFont">
<b><a href="../symbols/AutoFill%23s.filler.html#constructor">AutoFill#s.filler</a></b>
</div>
<div class="description"></div>
</td>
</tr>
</tbody>
</table>
</div>
<!--
#### METHODS SUMMARY
-->
<!--
#### EVENTS SUMMARY
-->
<!--
#### CONSTRUCTOR DETAILS
-->
<div class="details props">
<div class="innerProps">
<a name="constructor"></a>
<div class="sectionTitle">
Namespace Detail
</div>
<div class="fixedFont">
<b>AutoFill#s.filler</b>
</div>
<div class="description">
</div>
</div>
</div>
<!--
#### FIELD DETAILS
-->
<!--
#### METHOD DETAILS
-->
<!--
#### EVENT DETAILS
-->
</div>
</div>
</body>
</html>
@@ -0,0 +1,164 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="JsDoc Toolkit" />
<title>JsDoc Reference - AutoFill#s</title>
<link href="../css/default.css" type="text/css" rel="stylesheet" media="all" />
</head>
<body>
<div id="header">
</div>
<div class="index">
<div class="menu">
<!-- begin publish.classesIndex -->
<div align="center"><a href="../index.html">Class Index</a> | <a href="../files.html">File Index</a></div>
<h2 class="heading1">Classes</h2>
<ul class="classList">
<li><a href="../symbols/_global_.html">_global_</a></li>
<li><a href="../symbols/AutoFill.html">AutoFill</a></li>
<li><a href="../symbols/AutoFill%23dom.html">AutoFill#dom</a></li>
<li><a href="../symbols/AutoFill%23s.html">AutoFill#s</a></li>
<li><a href="../symbols/AutoFill%23s.border.html">AutoFill#s.border</a></li>
<li><a href="../symbols/AutoFill%23s.columns.html">AutoFill#s.columns</a></li>
<li><a href="../symbols/AutoFill%23s.drag.html">AutoFill#s.drag</a></li>
<li><a href="../symbols/AutoFill%23s.filler.html">AutoFill#s.filler</a></li>
<li><a href="../symbols/AutoFill%23s.screen.html">AutoFill#s.screen</a></li>
<li><a href="../symbols/AutoFill%23s.scroller.html">AutoFill#s.scroller</a></li>
</ul>
<!-- end publish.classesIndex -->
</div>
<div class="fineprint" style="clear:both">
Generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sat Sep 10 2011 10:47:26 GMT+0100 (BST)<br />
HTML template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a>
</div>
</div>
<div class="content">
<div class="innerContent">
<h1 class="classTitle">
Namespace <span>AutoFill#s</span>
</h1>
<p class="description summary">
Settings object which contains customisable information for AutoFill instance
<br /><em>Defined in: </em> <a href="../symbols/src/js_AutoFill.js.html">AutoFill.js</a>.
</p>
<div class="props">
<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class AutoFill#s.">
<caption>Namespace Summary</caption>
<thead>
<tr>
<th scope="col">Constructor Attributes</th>
<th scope="col">Constructor Name and Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="attributes">&nbsp;</td>
<td class="nameDescription" >
<div class="fixedFont">
<b><a href="../symbols/AutoFill%23s.html#constructor">AutoFill#s</a></b>
</div>
<div class="description"></div>
</td>
</tr>
</tbody>
</table>
</div>
<!--
#### METHODS SUMMARY
-->
<!--
#### EVENTS SUMMARY
-->
<!--
#### CONSTRUCTOR DETAILS
-->
<div class="details props">
<div class="innerProps">
<a name="constructor"></a>
<div class="sectionTitle">
Namespace Detail
</div>
<div class="fixedFont">
<b>AutoFill#s</b>
</div>
<div class="description">
</div>
</div>
</div>
<!--
#### FIELD DETAILS
-->
<!--
#### METHOD DETAILS
-->
<!--
#### EVENT DETAILS
-->
</div>
</div>
</body>
</html>
@@ -0,0 +1,160 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="JsDoc Toolkit" />
<title>JsDoc Reference - AutoFill#s.screen</title>
<link href="../css/default.css" type="text/css" rel="stylesheet" media="all" />
</head>
<body>
<div id="header">
</div>
<div class="index">
<div class="menu">
<!-- begin publish.classesIndex -->
<div align="center"><a href="../index.html">Class Index</a> | <a href="../files.html">File Index</a></div>
<h2 class="heading1">Classes</h2>
<ul class="classList">
<li><a href="../symbols/_global_.html">_global_</a></li>
<li><a href="../symbols/AutoFill.html">AutoFill</a></li>
<li><a href="../symbols/AutoFill%23dom.html">AutoFill#dom</a></li>
<li><a href="../symbols/AutoFill%23s.html">AutoFill#s</a></li>
<li><a href="../symbols/AutoFill%23s.border.html">AutoFill#s.border</a></li>
<li><a href="../symbols/AutoFill%23s.columns.html">AutoFill#s.columns</a></li>
<li><a href="../symbols/AutoFill%23s.drag.html">AutoFill#s.drag</a></li>
<li><a href="../symbols/AutoFill%23s.filler.html">AutoFill#s.filler</a></li>
<li><a href="../symbols/AutoFill%23s.screen.html">AutoFill#s.screen</a></li>
<li><a href="../symbols/AutoFill%23s.scroller.html">AutoFill#s.scroller</a></li>
</ul>
<!-- end publish.classesIndex -->
</div>
<div class="fineprint" style="clear:both">
Generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sat Sep 10 2011 10:47:26 GMT+0100 (BST)<br />
HTML template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a>
</div>
</div>
<div class="content">
<div class="innerContent">
<h1 class="classTitle">
Namespace <span>AutoFill#s.screen</span>
</h1>
<p class="description summary">
Data cache for information that we need for scrolling the screen when we near
the edges
<br /><em>Defined in: </em> <a href="../symbols/src/js_AutoFill.js.html">AutoFill.js</a>.
</p>
<div class="props">
<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class AutoFill#s.screen.">
<caption>Namespace Summary</caption>
<thead>
<tr>
<th scope="col">Constructor Attributes</th>
<th scope="col">Constructor Name and Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="attributes">&nbsp;</td>
<td class="nameDescription" >
<div class="fixedFont">
<b><a href="../symbols/AutoFill%23s.screen.html#constructor">AutoFill#s.screen</a></b>
</div>
<div class="description"></div>
</td>
</tr>
</tbody>
</table>
</div>
<!--
#### METHODS SUMMARY
-->
<!--
#### EVENTS SUMMARY
-->
<!--
#### CONSTRUCTOR DETAILS
-->
<div class="details props">
<div class="innerProps">
<a name="constructor"></a>
<div class="sectionTitle">
Namespace Detail
</div>
<div class="fixedFont">
<b>AutoFill#s.screen</b>
</div>
<div class="description">
</div>
</div>
</div>
<!--
#### FIELD DETAILS
-->
<!--
#### METHOD DETAILS
-->
<!--
#### EVENT DETAILS
-->
</div>
</div>
</body>
</html>
@@ -0,0 +1,160 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="JsDoc Toolkit" />
<title>JsDoc Reference - AutoFill#s.scroller</title>
<link href="../css/default.css" type="text/css" rel="stylesheet" media="all" />
</head>
<body>
<div id="header">
</div>
<div class="index">
<div class="menu">
<!-- begin publish.classesIndex -->
<div align="center"><a href="../index.html">Class Index</a> | <a href="../files.html">File Index</a></div>
<h2 class="heading1">Classes</h2>
<ul class="classList">
<li><a href="../symbols/_global_.html">_global_</a></li>
<li><a href="../symbols/AutoFill.html">AutoFill</a></li>
<li><a href="../symbols/AutoFill%23dom.html">AutoFill#dom</a></li>
<li><a href="../symbols/AutoFill%23s.html">AutoFill#s</a></li>
<li><a href="../symbols/AutoFill%23s.border.html">AutoFill#s.border</a></li>
<li><a href="../symbols/AutoFill%23s.columns.html">AutoFill#s.columns</a></li>
<li><a href="../symbols/AutoFill%23s.drag.html">AutoFill#s.drag</a></li>
<li><a href="../symbols/AutoFill%23s.filler.html">AutoFill#s.filler</a></li>
<li><a href="../symbols/AutoFill%23s.screen.html">AutoFill#s.screen</a></li>
<li><a href="../symbols/AutoFill%23s.scroller.html">AutoFill#s.scroller</a></li>
</ul>
<!-- end publish.classesIndex -->
</div>
<div class="fineprint" style="clear:both">
Generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sat Sep 10 2011 10:47:26 GMT+0100 (BST)<br />
HTML template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a>
</div>
</div>
<div class="content">
<div class="innerContent">
<h1 class="classTitle">
Namespace <span>AutoFill#s.scroller</span>
</h1>
<p class="description summary">
Data cache for the position of the DataTables scrolling element (when scrolling
is enabled)
<br /><em>Defined in: </em> <a href="../symbols/src/js_AutoFill.js.html">AutoFill.js</a>.
</p>
<div class="props">
<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class AutoFill#s.scroller.">
<caption>Namespace Summary</caption>
<thead>
<tr>
<th scope="col">Constructor Attributes</th>
<th scope="col">Constructor Name and Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="attributes">&nbsp;</td>
<td class="nameDescription" >
<div class="fixedFont">
<b><a href="../symbols/AutoFill%23s.scroller.html#constructor">AutoFill#s.scroller</a></b>
</div>
<div class="description"></div>
</td>
</tr>
</tbody>
</table>
</div>
<!--
#### METHODS SUMMARY
-->
<!--
#### EVENTS SUMMARY
-->
<!--
#### CONSTRUCTOR DETAILS
-->
<div class="details props">
<div class="innerProps">
<a name="constructor"></a>
<div class="sectionTitle">
Namespace Detail
</div>
<div class="fixedFont">
<b>AutoFill#s.scroller</b>
</div>
<div class="description">
</div>
</div>
</div>
<!--
#### FIELD DETAILS
-->
<!--
#### METHOD DETAILS
-->
<!--
#### EVENT DETAILS
-->
</div>
</div>
</body>
</html>
@@ -0,0 +1,109 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="JsDoc Toolkit" />
<title>JsDoc Reference - _global_</title>
<link href="../css/default.css" type="text/css" rel="stylesheet" media="all" />
</head>
<body>
<div id="header">
</div>
<div class="index">
<div class="menu">
<!-- begin publish.classesIndex -->
<div align="center"><a href="../index.html">Class Index</a> | <a href="../files.html">File Index</a></div>
<h2 class="heading1">Classes</h2>
<ul class="classList">
<li><a href="../symbols/_global_.html">_global_</a></li>
<li><a href="../symbols/AutoFill.html">AutoFill</a></li>
<li><a href="../symbols/AutoFill%23dom.html">AutoFill#dom</a></li>
<li><a href="../symbols/AutoFill%23s.html">AutoFill#s</a></li>
<li><a href="../symbols/AutoFill%23s.border.html">AutoFill#s.border</a></li>
<li><a href="../symbols/AutoFill%23s.columns.html">AutoFill#s.columns</a></li>
<li><a href="../symbols/AutoFill%23s.drag.html">AutoFill#s.drag</a></li>
<li><a href="../symbols/AutoFill%23s.filler.html">AutoFill#s.filler</a></li>
<li><a href="../symbols/AutoFill%23s.screen.html">AutoFill#s.screen</a></li>
<li><a href="../symbols/AutoFill%23s.scroller.html">AutoFill#s.scroller</a></li>
</ul>
<!-- end publish.classesIndex -->
</div>
<div class="fineprint" style="clear:both">
Generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sat Sep 10 2011 10:47:25 GMT+0100 (BST)<br />
HTML template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a>
</div>
</div>
<div class="content">
<div class="innerContent">
<h1 class="classTitle">
Built-In Namespace <span>_global_</span>
</h1>
<p class="description summary">
</p>
<!--
#### METHODS SUMMARY
-->
<!--
#### EVENTS SUMMARY
-->
<!--
#### CONSTRUCTOR DETAILS
-->
<!--
#### FIELD DETAILS
-->
<!--
#### METHOD DETAILS
-->
<!--
#### EVENT DETAILS
-->
</div>
</div>
</body>
</html>
@@ -0,0 +1,821 @@
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
.KEYW {color: #933;}
.COMM {color: #bbb; font-style: italic;}
.NUMB {color: #393;}
.STRN {color: #393;}
.REGX {color: #339;}
.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
</style></head><body><pre><span class='line'> 1</span> <span class="COMM">/*
<span class='line'> 2</span> * File: AutoFill.js
<span class='line'> 3</span> * Version: 1.1.1
<span class='line'> 4</span> * CVS: $Id$
<span class='line'> 5</span> * Description: AutoFill for DataTables
<span class='line'> 6</span> * Author: Allan Jardine (www.sprymedia.co.uk)
<span class='line'> 7</span> * Created: Mon 6 Sep 2010 16:54:41 BST
<span class='line'> 8</span> * Modified: $Date$ by $Author$
<span class='line'> 9</span> * Language: Javascript
<span class='line'> 10</span> * License: GPL v2 or BSD 3 point
<span class='line'> 11</span> * Project: DataTables
<span class='line'> 12</span> * Contact: www.sprymedia.co.uk/contact
<span class='line'> 13</span> *
<span class='line'> 14</span> * Copyright 2010 Allan Jardine, all rights reserved.
<span class='line'> 15</span> *
<span class='line'> 16</span> */</span><span class="WHIT">
<span class='line'> 17</span>
<span class='line'> 18</span> </span><span class="COMM">/* Global scope for AutoFill */</span><span class="WHIT">
<span class='line'> 19</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">AutoFill</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 20</span>
<span class='line'> 21</span> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">$</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 22</span>
<span class='line'> 23</span> </span><span class="COMM">/**
<span class='line'> 24</span> * AutoFill provides Excel like auto fill features for a DataTable
<span class='line'> 25</span> * @class AutoFill
<span class='line'> 26</span> * @constructor
<span class='line'> 27</span> * @param {object} DataTables settings object
<span class='line'> 28</span> * @param {object} Configuration object for AutoFill
<span class='line'> 29</span> */</span><span class="WHIT">
<span class='line'> 30</span> </span><span class="NAME">AutoFill</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">oDT</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">oConfig</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'> 31</span> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 32</span> </span><span class="WHIT"> </span><span class="COMM">/* Santiy check that we are a new instance */</span><span class="WHIT">
<span class='line'> 33</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">this.CLASS</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.CLASS</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">"AutoFill"</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'> 34</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 35</span> </span><span class="WHIT"> </span><span class="NAME">alert</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">"Warning: AutoFill must be initialised with the keyword 'new'"</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 36</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 37</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'> 38</span>
<span class='line'> 39</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">$.fn.dataTableExt.fnVersionCheck</span><span class="PUNC">(</span><span class="STRN">'1.7.0'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'> 40</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 41</span> </span><span class="WHIT"> </span><span class="NAME">alert</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">"Warning: AutoFill requires DataTables 1.7 or greater - www.datatables.net/download"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 42</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 43</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'> 44</span> </span><span class="WHIT">
<span class='line'> 45</span>
<span class='line'> 46</span> </span><span class="COMM">/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
<span class='line'> 47</span> * Public class variables
<span class='line'> 48</span> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */</span><span class="WHIT">
<span class='line'> 49</span> </span><span class="WHIT">
<span class='line'> 50</span> </span><span class="COMM">/**
<span class='line'> 51</span> * @namespace Settings object which contains customisable information for AutoFill instance
<span class='line'> 52</span> */</span><span class="WHIT">
<span class='line'> 53</span> </span><span class="WHIT"> </span><span class="NAME">this.s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 54</span> </span><span class="WHIT"> </span><span class="COMM">/**
<span class='line'> 55</span> * @namespace Cached information about the little dragging icon (the filler)
<span class='line'> 56</span> */</span><span class="WHIT">
<span class='line'> 57</span> </span><span class="WHIT"> </span><span class="NAME">filler</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 58</span> </span><span class="WHIT"> </span><span class="NAME">height</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 59</span> </span><span class="WHIT"> </span><span class="NAME">width</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT">
<span class='line'> 60</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 61</span> </span><span class="WHIT">
<span class='line'> 62</span> </span><span class="COMM">/**
<span class='line'> 63</span> * @namespace Cached information about the border display
<span class='line'> 64</span> */</span><span class="WHIT">
<span class='line'> 65</span> </span><span class="WHIT"> </span><span class="NAME">border</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 66</span> </span><span class="WHIT"> </span><span class="NAME">width</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="WHIT">
<span class='line'> 67</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 68</span> </span><span class="WHIT">
<span class='line'> 69</span> </span><span class="COMM">/**
<span class='line'> 70</span> * @namespace Store for live information for the current drag
<span class='line'> 71</span> */</span><span class="WHIT">
<span class='line'> 72</span> </span><span class="WHIT"> </span><span class="NAME">drag</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 73</span> </span><span class="WHIT"> </span><span class="NAME">startX</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 74</span> </span><span class="WHIT"> </span><span class="NAME">startY</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 75</span> </span><span class="WHIT"> </span><span class="NAME">startTd</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 76</span> </span><span class="WHIT"> </span><span class="NAME">endTd</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 77</span> </span><span class="WHIT"> </span><span class="NAME">dragging</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="WHIT">
<span class='line'> 78</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 79</span> </span><span class="WHIT">
<span class='line'> 80</span> </span><span class="COMM">/**
<span class='line'> 81</span> * @namespace Data cache for information that we need for scrolling the screen when we near
<span class='line'> 82</span> * the edges
<span class='line'> 83</span> */</span><span class="WHIT">
<span class='line'> 84</span> </span><span class="WHIT"> </span><span class="NAME">screen</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 85</span> </span><span class="WHIT"> </span><span class="NAME">interval</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 86</span> </span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 87</span> </span><span class="WHIT"> </span><span class="NAME">height</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 88</span> </span><span class="WHIT"> </span><span class="NAME">scrollTop</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT">
<span class='line'> 89</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 90</span> </span><span class="WHIT">
<span class='line'> 91</span> </span><span class="COMM">/**
<span class='line'> 92</span> * @namespace Data cache for the position of the DataTables scrolling element (when scrolling
<span class='line'> 93</span> * is enabled)
<span class='line'> 94</span> */</span><span class="WHIT">
<span class='line'> 95</span> </span><span class="WHIT"> </span><span class="NAME">scroller</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 96</span> </span><span class="WHIT"> </span><span class="NAME">top</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 97</span> </span><span class="WHIT"> </span><span class="NAME">bottom</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT">
<span class='line'> 98</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 99</span> </span><span class="WHIT">
<span class='line'>100</span>
<span class='line'>101</span> </span><span class="COMM">/**
<span class='line'>102</span> * @namespace Information stored for each column. An array of objects
<span class='line'>103</span> */</span><span class="WHIT">
<span class='line'>104</span> </span><span class="WHIT"> </span><span class="NAME">columns</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="WHIT">
<span class='line'>105</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>106</span> </span><span class="WHIT">
<span class='line'>107</span>
<span class='line'>108</span> </span><span class="COMM">/**
<span class='line'>109</span> * @namespace Common and useful DOM elements for the class instance
<span class='line'>110</span> */</span><span class="WHIT">
<span class='line'>111</span> </span><span class="WHIT"> </span><span class="NAME">this.dom</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>112</span> </span><span class="WHIT"> </span><span class="NAME">table</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>113</span> </span><span class="WHIT"> </span><span class="NAME">filler</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>114</span> </span><span class="WHIT"> </span><span class="NAME">borderTop</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>115</span> </span><span class="WHIT"> </span><span class="NAME">borderRight</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>116</span> </span><span class="WHIT"> </span><span class="NAME">borderBottom</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>117</span> </span><span class="WHIT"> </span><span class="NAME">borderLeft</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>118</span> </span><span class="WHIT"> </span><span class="NAME">currentTarget</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="WHIT">
<span class='line'>119</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>120</span> </span><span class="WHIT">
<span class='line'>121</span>
<span class='line'>122</span>
<span class='line'>123</span> </span><span class="COMM">/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
<span class='line'>124</span> * Public class methods
<span class='line'>125</span> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */</span><span class="WHIT">
<span class='line'>126</span> </span><span class="WHIT">
<span class='line'>127</span> </span><span class="COMM">/**
<span class='line'>128</span> * Retreieve the settings object from an instance
<span class='line'>129</span> * @method fnSettings
<span class='line'>130</span> * @returns {object} AutoFill settings object
<span class='line'>131</span> */</span><span class="WHIT">
<span class='line'>132</span> </span><span class="WHIT"> </span><span class="NAME">this.fnSettings</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>133</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.s</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>134</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>135</span> </span><span class="WHIT">
<span class='line'>136</span>
<span class='line'>137</span> </span><span class="COMM">/* Constructor logic */</span><span class="WHIT">
<span class='line'>138</span> </span><span class="WHIT"> </span><span class="NAME">this._fnInit</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">oDT</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">oConfig</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>139</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>140</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>141</span>
<span class='line'>142</span>
<span class='line'>143</span>
<span class='line'>144</span> </span><span class="NAME">AutoFill.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>145</span> </span><span class="WHIT"> </span><span class="COMM">/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
<span class='line'>146</span> * Private methods (they are of course public in JS, but recommended as private)
<span class='line'>147</span> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */</span><span class="WHIT">
<span class='line'>148</span> </span><span class="WHIT">
<span class='line'>149</span> </span><span class="COMM">/**
<span class='line'>150</span> * Initialisation
<span class='line'>151</span> * @method _fnInit
<span class='line'>152</span> * @param {object} oDT DataTables settings object
<span class='line'>153</span> * @param {object} oConfig Configuration object for AutoFill
<span class='line'>154</span> * @returns void
<span class='line'>155</span> */</span><span class="WHIT">
<span class='line'>156</span> </span><span class="WHIT"> </span><span class="NAME">_fnInit</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">oDT</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">oConfig</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>157</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>158</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT">
<span class='line'>159</span> </span><span class="WHIT"> </span><span class="NAME">that</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>160</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">iLen</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>161</span> </span><span class="WHIT">
<span class='line'>162</span> </span><span class="COMM">/*
<span class='line'>163</span> * Settings
<span class='line'>164</span> */</span><span class="WHIT">
<span class='line'>165</span> </span><span class="WHIT"> </span><span class="NAME">this.s.dt</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">oDT.fnSettings</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>166</span> </span><span class="WHIT">
<span class='line'>167</span> </span><span class="NAME">this.dom.table</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.s.dt.nTable</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>168</span> </span><span class="WHIT">
<span class='line'>169</span> </span><span class="COMM">/* Add and configure the columns */</span><span class="WHIT">
<span class='line'>170</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">iLen</span><span class="PUNC">=</span><span class="NAME">this.s.dt.aoColumns.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">iLen</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>171</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>172</span> </span><span class="WHIT"> </span><span class="NAME">this._fnAddColumn</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>173</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>174</span> </span><span class="WHIT">
<span class='line'>175</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">oConfig</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">oConfig.aoColumnDefs</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>176</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>177</span> </span><span class="WHIT"> </span><span class="NAME">this._fnColumnDefs</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">oConfig.aoColumnDefs</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>178</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>179</span> </span><span class="WHIT">
<span class='line'>180</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">oConfig</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">oConfig.aoColumns</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>181</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>182</span> </span><span class="WHIT"> </span><span class="NAME">this._fnColumnsAll</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">oConfig.aoColumns</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>183</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>184</span> </span><span class="WHIT">
<span class='line'>185</span>
<span class='line'>186</span> </span><span class="COMM">/*
<span class='line'>187</span> * DOM
<span class='line'>188</span> */</span><span class="WHIT">
<span class='line'>189</span> </span><span class="WHIT">
<span class='line'>190</span> </span><span class="COMM">/* Auto Fill click and drag icon */</span><span class="WHIT">
<span class='line'>191</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">filler</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'div'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>192</span> </span><span class="WHIT"> </span><span class="NAME">filler.className</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"AutoFill_filler"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>193</span> </span><span class="WHIT"> </span><span class="NAME">document.body.appendChild</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">filler</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>194</span> </span><span class="WHIT"> </span><span class="NAME">this.dom.filler</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">filler</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>195</span> </span><span class="WHIT">
<span class='line'>196</span> </span><span class="NAME">filler.style.display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"block"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>197</span> </span><span class="WHIT"> </span><span class="NAME">this.s.filler.height</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">filler</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">height</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>198</span> </span><span class="WHIT"> </span><span class="NAME">this.s.filler.width</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">filler</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">width</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>199</span> </span><span class="WHIT"> </span><span class="NAME">filler.style.display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"none"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>200</span> </span><span class="WHIT">
<span class='line'>201</span> </span><span class="COMM">/* Border display - one div for each side. We can't just use a single one with a border, as
<span class='line'>202</span> * we want the events to effectively pass through the transparent bit of the box
<span class='line'>203</span> */</span><span class="WHIT">
<span class='line'>204</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">border</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>205</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">appender</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.body</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>206</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">that.s.dt.oScroll.sY</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">""</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>207</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>208</span> </span><span class="WHIT"> </span><span class="NAME">that.s.dt.nTable.parentNode.style.position</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"relative"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>209</span> </span><span class="WHIT"> </span><span class="NAME">appender</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">that.s.dt.nTable.parentNode</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>210</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>211</span> </span><span class="WHIT">
<span class='line'>212</span> </span><span class="NAME">border</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'div'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>213</span> </span><span class="WHIT"> </span><span class="NAME">border.className</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"AutoFill_border"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>214</span> </span><span class="WHIT"> </span><span class="NAME">appender.appendChild</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">border</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>215</span> </span><span class="WHIT"> </span><span class="NAME">this.dom.borderTop</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">border</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>216</span> </span><span class="WHIT">
<span class='line'>217</span> </span><span class="NAME">border</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'div'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>218</span> </span><span class="WHIT"> </span><span class="NAME">border.className</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"AutoFill_border"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>219</span> </span><span class="WHIT"> </span><span class="NAME">appender.appendChild</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">border</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>220</span> </span><span class="WHIT"> </span><span class="NAME">this.dom.borderRight</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">border</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>221</span> </span><span class="WHIT">
<span class='line'>222</span> </span><span class="NAME">border</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'div'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>223</span> </span><span class="WHIT"> </span><span class="NAME">border.className</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"AutoFill_border"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>224</span> </span><span class="WHIT"> </span><span class="NAME">appender.appendChild</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">border</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>225</span> </span><span class="WHIT"> </span><span class="NAME">this.dom.borderBottom</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">border</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>226</span> </span><span class="WHIT">
<span class='line'>227</span> </span><span class="NAME">border</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'div'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>228</span> </span><span class="WHIT"> </span><span class="NAME">border.className</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"AutoFill_border"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>229</span> </span><span class="WHIT"> </span><span class="NAME">appender.appendChild</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">border</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>230</span> </span><span class="WHIT"> </span><span class="NAME">this.dom.borderLeft</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">border</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>231</span> </span><span class="WHIT">
<span class='line'>232</span> </span><span class="COMM">/*
<span class='line'>233</span> * Events
<span class='line'>234</span> */</span><span class="WHIT">
<span class='line'>235</span> </span><span class="WHIT">
<span class='line'>236</span> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">filler</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">mousedown</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>237</span> </span><span class="WHIT"> </span><span class="NAME">this.onselectstart</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>238</span> </span><span class="WHIT"> </span><span class="NAME">that._fnFillerDragStart.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">that</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>239</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>240</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>241</span> </span><span class="WHIT">
<span class='line'>242</span> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="STRN">'tbody>tr>td'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.dom.table</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">live</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'mouseover mouseout'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>243</span> </span><span class="WHIT"> </span><span class="NAME">that._fnFillerDisplay.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">that</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>244</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>245</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>246</span> </span><span class="WHIT">
<span class='line'>247</span>
<span class='line'>248</span> </span><span class="NAME">_fnColumnDefs</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">aoColumnDefs</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>249</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>250</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT">
<span class='line'>251</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">iLen</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">jLen</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">kLen</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>252</span> </span><span class="WHIT"> </span><span class="NAME">aTargets</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>253</span> </span><span class="WHIT">
<span class='line'>254</span> </span><span class="COMM">/* Loop over the column defs array - loop in reverse so first instace has priority */</span><span class="WHIT">
<span class='line'>255</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">aoColumnDefs.length</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">>=</span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">--</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>256</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>257</span> </span><span class="WHIT"> </span><span class="COMM">/* Each column def can target multiple columns, as it is an array */</span><span class="WHIT">
<span class='line'>258</span> </span><span class="WHIT"> </span><span class="NAME">aTargets</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">aoColumnDefs</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">aTargets</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>259</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">jLen</span><span class="PUNC">=</span><span class="NAME">aTargets.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">&lt;</span><span class="NAME">jLen</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>260</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>261</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">aTargets</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">aTargets</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>262</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>263</span> </span><span class="WHIT"> </span><span class="COMM">/* 0+ integer, left to right column counting. */</span><span class="WHIT">
<span class='line'>264</span> </span><span class="WHIT"> </span><span class="NAME">this._fnColumnOptions</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">aTargets</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">aoColumnDefs</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>265</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>266</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">aTargets</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">aTargets</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>267</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>268</span> </span><span class="WHIT"> </span><span class="COMM">/* Negative integer, right to left column counting */</span><span class="WHIT">
<span class='line'>269</span> </span><span class="WHIT"> </span><span class="NAME">this._fnColumnOptions</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.s.dt.aoColumns.length</span><span class="PUNC">+</span><span class="NAME">aTargets</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">aoColumnDefs</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>270</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>271</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">aTargets</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>272</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>273</span> </span><span class="WHIT"> </span><span class="COMM">/* Class name matching on TH element */</span><span class="WHIT">
<span class='line'>274</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">kLen</span><span class="PUNC">=</span><span class="NAME">this.s.dt.aoColumns.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">&lt;</span><span class="NAME">kLen</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>275</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>276</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">aTargets</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">"_all"</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
<span class='line'>277</span> </span><span class="WHIT"> </span><span class="NAME">this.s.dt.aoColumns</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">nTh.className.indexOf</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">aTargets</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>278</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>279</span> </span><span class="WHIT"> </span><span class="NAME">this._fnColumnOptions</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">aoColumnDefs</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>280</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>281</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>282</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>283</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>284</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>285</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>286</span> </span><span class="WHIT">
<span class='line'>287</span>
<span class='line'>288</span> </span><span class="NAME">_fnColumnsAll</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">aoColumns</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>289</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>290</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">iLen</span><span class="PUNC">=</span><span class="NAME">this.s.dt.aoColumns.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">iLen</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>291</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>292</span> </span><span class="WHIT"> </span><span class="NAME">this._fnColumnOptions</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">aoColumns</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>293</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>294</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>295</span> </span><span class="WHIT">
<span class='line'>296</span>
<span class='line'>297</span> </span><span class="NAME">_fnAddColumn</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>298</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>299</span> </span><span class="WHIT"> </span><span class="NAME">this.s.columns</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>300</span> </span><span class="WHIT"> </span><span class="NAME">enable</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>301</span> </span><span class="WHIT"> </span><span class="NAME">read</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this._fnReadCell</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>302</span> </span><span class="WHIT"> </span><span class="NAME">write</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this._fnWriteCell</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>303</span> </span><span class="WHIT"> </span><span class="NAME">step</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this._fnStep</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>304</span> </span><span class="WHIT"> </span><span class="NAME">complete</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="WHIT">
<span class='line'>305</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>306</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>307</span> </span><span class="WHIT">
<span class='line'>308</span> </span><span class="NAME">_fnColumnOptions</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">opts</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>309</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>310</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">opts.bEnable</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>311</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>312</span> </span><span class="WHIT"> </span><span class="NAME">this.s.columns</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">enable</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">opts.bEnable</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>313</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>314</span> </span><span class="WHIT">
<span class='line'>315</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">opts.fnRead</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>316</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>317</span> </span><span class="WHIT"> </span><span class="NAME">this.s.columns</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">read</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">opts.fnRead</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>318</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>319</span> </span><span class="WHIT">
<span class='line'>320</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">opts.fnWrite</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>321</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>322</span> </span><span class="WHIT"> </span><span class="NAME">this.s.columns</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">write</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">opts.fnWrite</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>323</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>324</span> </span><span class="WHIT">
<span class='line'>325</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">opts.fnStep</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>326</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>327</span> </span><span class="WHIT"> </span><span class="NAME">this.s.columns</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">step</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">opts.fnStep</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>328</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>329</span> </span><span class="WHIT">
<span class='line'>330</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">opts.fnCallback</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>331</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>332</span> </span><span class="WHIT"> </span><span class="NAME">this.s.columns</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">complete</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">opts.fnCallback</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>333</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>334</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>335</span> </span><span class="WHIT">
<span class='line'>336</span>
<span class='line'>337</span> </span><span class="COMM">/**
<span class='line'>338</span> * Find out the coordinates of a given TD cell in a table
<span class='line'>339</span> * @method _fnTargetCoords
<span class='line'>340</span> * @param {Node} nTd
<span class='line'>341</span> * @returns {Object} x and y properties, for the position of the cell in the tables DOM
<span class='line'>342</span> */</span><span class="WHIT">
<span class='line'>343</span> </span><span class="WHIT"> </span><span class="NAME">_fnTargetCoords</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">nTd</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>344</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>345</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">nTr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">nTd.parentNode</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>346</span> </span><span class="WHIT">
<span class='line'>347</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>348</span> </span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="STRN">'td'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">nTr</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">index</span><span class="PUNC">(</span><span class="NAME">nTd</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>349</span> </span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="STRN">'tr'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">nTr.parentNode</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">index</span><span class="PUNC">(</span><span class="NAME">nTr</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>350</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>351</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>352</span> </span><span class="WHIT">
<span class='line'>353</span>
<span class='line'>354</span> </span><span class="COMM">/**
<span class='line'>355</span> * Display the border around one or more cells (from start to end)
<span class='line'>356</span> * @method _fnUpdateBorder
<span class='line'>357</span> * @param {Node} nStart Starting cell
<span class='line'>358</span> * @param {Node} nEnd Ending cell
<span class='line'>359</span> * @returns void
<span class='line'>360</span> */</span><span class="WHIT">
<span class='line'>361</span> </span><span class="WHIT"> </span><span class="NAME">_fnUpdateBorder</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">nStart</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">nEnd</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>362</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>363</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT">
<span class='line'>364</span> </span><span class="WHIT"> </span><span class="NAME">border</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.s.border.width</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>365</span> </span><span class="WHIT"> </span><span class="NAME">offsetStart</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">nStart</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">offset</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>366</span> </span><span class="WHIT"> </span><span class="NAME">offsetEnd</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">nEnd</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">offset</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>367</span> </span><span class="WHIT"> </span><span class="NAME">x1</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">offsetStart.left</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">border</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>368</span> </span><span class="WHIT"> </span><span class="NAME">x2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">offsetEnd.left</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">nEnd</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">outerWidth</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>369</span> </span><span class="WHIT"> </span><span class="NAME">y1</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">offsetStart.top</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">border</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>370</span> </span><span class="WHIT"> </span><span class="NAME">y2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">offsetEnd.top</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">nEnd</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">outerHeight</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>371</span> </span><span class="WHIT"> </span><span class="NAME">width</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">offsetEnd.left</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">nEnd</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">outerWidth</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">offsetStart.left</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NUMB">2</span><span class="PUNC">*</span><span class="NAME">border</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>372</span> </span><span class="WHIT"> </span><span class="NAME">height</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">offsetEnd.top</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">nEnd</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">outerHeight</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">offsetStart.top</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NUMB">2</span><span class="PUNC">*</span><span class="NAME">border</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>373</span> </span><span class="WHIT"> </span><span class="NAME">oStyle</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>374</span> </span><span class="WHIT">
<span class='line'>375</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.s.dt.oScroll.sY</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">""</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>376</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>377</span> </span><span class="WHIT"> </span><span class="COMM">/* The border elements are inside the DT scroller - so position relative to that */</span><span class="WHIT">
<span class='line'>378</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT">
<span class='line'>379</span> </span><span class="WHIT"> </span><span class="NAME">offsetScroll</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">this.s.dt.nTable.parentNode</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">offset</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>380</span> </span><span class="WHIT"> </span><span class="NAME">scrollTop</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">this.s.dt.nTable.parentNode</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">scrollTop</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>381</span> </span><span class="WHIT"> </span><span class="NAME">scrollLeft</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">this.s.dt.nTable.parentNode</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">scrollLeft</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>382</span> </span><span class="WHIT">
<span class='line'>383</span> </span><span class="NAME">x1</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">offsetScroll.left</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">scrollLeft</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>384</span> </span><span class="WHIT"> </span><span class="NAME">x2</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">offsetScroll.left</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">scrollLeft</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>385</span> </span><span class="WHIT"> </span><span class="NAME">y1</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">offsetScroll.top</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">scrollTop</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>386</span> </span><span class="WHIT"> </span><span class="NAME">y2</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">offsetScroll.top</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">scrollTop</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>387</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>388</span> </span><span class="WHIT">
<span class='line'>389</span> </span><span class="COMM">/* Top */</span><span class="WHIT">
<span class='line'>390</span> </span><span class="WHIT"> </span><span class="NAME">oStyle</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.dom.borderTop.style</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>391</span> </span><span class="WHIT"> </span><span class="NAME">oStyle.top</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">y1</span><span class="PUNC">+</span><span class="STRN">"px"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>392</span> </span><span class="WHIT"> </span><span class="NAME">oStyle.left</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">x1</span><span class="PUNC">+</span><span class="STRN">"px"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>393</span> </span><span class="WHIT"> </span><span class="NAME">oStyle.height</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.s.border.width</span><span class="PUNC">+</span><span class="STRN">"px"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>394</span> </span><span class="WHIT"> </span><span class="NAME">oStyle.width</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">width</span><span class="PUNC">+</span><span class="STRN">"px"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>395</span> </span><span class="WHIT">
<span class='line'>396</span> </span><span class="COMM">/* Bottom */</span><span class="WHIT">
<span class='line'>397</span> </span><span class="WHIT"> </span><span class="NAME">oStyle</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.dom.borderBottom.style</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>398</span> </span><span class="WHIT"> </span><span class="NAME">oStyle.top</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">y2</span><span class="PUNC">+</span><span class="STRN">"px"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>399</span> </span><span class="WHIT"> </span><span class="NAME">oStyle.left</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">x1</span><span class="PUNC">+</span><span class="STRN">"px"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>400</span> </span><span class="WHIT"> </span><span class="NAME">oStyle.height</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.s.border.width</span><span class="PUNC">+</span><span class="STRN">"px"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>401</span> </span><span class="WHIT"> </span><span class="NAME">oStyle.width</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">width</span><span class="PUNC">+</span><span class="STRN">"px"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>402</span> </span><span class="WHIT">
<span class='line'>403</span> </span><span class="COMM">/* Left */</span><span class="WHIT">
<span class='line'>404</span> </span><span class="WHIT"> </span><span class="NAME">oStyle</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.dom.borderLeft.style</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>405</span> </span><span class="WHIT"> </span><span class="NAME">oStyle.top</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">y1</span><span class="PUNC">+</span><span class="STRN">"px"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>406</span> </span><span class="WHIT"> </span><span class="NAME">oStyle.left</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">x1</span><span class="PUNC">+</span><span class="STRN">"px"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>407</span> </span><span class="WHIT"> </span><span class="NAME">oStyle.height</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">height</span><span class="PUNC">+</span><span class="STRN">"px"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>408</span> </span><span class="WHIT"> </span><span class="NAME">oStyle.width</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.s.border.width</span><span class="PUNC">+</span><span class="STRN">"px"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>409</span> </span><span class="WHIT">
<span class='line'>410</span> </span><span class="COMM">/* Right */</span><span class="WHIT">
<span class='line'>411</span> </span><span class="WHIT"> </span><span class="NAME">oStyle</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.dom.borderRight.style</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>412</span> </span><span class="WHIT"> </span><span class="NAME">oStyle.top</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">y1</span><span class="PUNC">+</span><span class="STRN">"px"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>413</span> </span><span class="WHIT"> </span><span class="NAME">oStyle.left</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">x2</span><span class="PUNC">+</span><span class="STRN">"px"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>414</span> </span><span class="WHIT"> </span><span class="NAME">oStyle.height</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">height</span><span class="PUNC">+</span><span class="STRN">"px"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>415</span> </span><span class="WHIT"> </span><span class="NAME">oStyle.width</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.s.border.width</span><span class="PUNC">+</span><span class="STRN">"px"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>416</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>417</span> </span><span class="WHIT">
<span class='line'>418</span>
<span class='line'>419</span> </span><span class="COMM">/**
<span class='line'>420</span> * Mouse down event handler for starting a drag
<span class='line'>421</span> * @method _fnFillerDragStart
<span class='line'>422</span> * @param {Object} e Event object
<span class='line'>423</span> * @returns void
<span class='line'>424</span> */</span><span class="WHIT">
<span class='line'>425</span> </span><span class="WHIT"> </span><span class="NAME">_fnFillerDragStart</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>426</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>427</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">that</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>428</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">startingTd</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.dom.currentTarget</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>429</span> </span><span class="WHIT">
<span class='line'>430</span> </span><span class="NAME">this.s.drag.dragging</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>431</span> </span><span class="WHIT">
<span class='line'>432</span> </span><span class="NAME">that.dom.borderTop.style.display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"block"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>433</span> </span><span class="WHIT"> </span><span class="NAME">that.dom.borderRight.style.display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"block"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>434</span> </span><span class="WHIT"> </span><span class="NAME">that.dom.borderBottom.style.display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"block"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>435</span> </span><span class="WHIT"> </span><span class="NAME">that.dom.borderLeft.style.display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"block"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>436</span> </span><span class="WHIT">
<span class='line'>437</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">coords</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._fnTargetCoords</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">startingTd</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>438</span> </span><span class="WHIT"> </span><span class="NAME">this.s.drag.startX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">coords.x</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>439</span> </span><span class="WHIT"> </span><span class="NAME">this.s.drag.startY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">coords.y</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>440</span> </span><span class="WHIT">
<span class='line'>441</span> </span><span class="NAME">this.s.drag.startTd</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">startingTd</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>442</span> </span><span class="WHIT"> </span><span class="NAME">this.s.drag.endTd</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">startingTd</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>443</span> </span><span class="WHIT">
<span class='line'>444</span> </span><span class="NAME">this._fnUpdateBorder</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">startingTd</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">startingTd</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>445</span> </span><span class="WHIT">
<span class='line'>446</span> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">document</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="STRN">'mousemove.AutoFill'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>447</span> </span><span class="WHIT"> </span><span class="NAME">that._fnFillerDragMove.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">that</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>448</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>449</span> </span><span class="WHIT">
<span class='line'>450</span> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">document</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="STRN">'mouseup.AutoFill'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>451</span> </span><span class="WHIT"> </span><span class="NAME">that._fnFillerFinish.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">that</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>452</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>453</span> </span><span class="WHIT">
<span class='line'>454</span> </span><span class="COMM">/* Scrolling information cache */</span><span class="WHIT">
<span class='line'>455</span> </span><span class="WHIT"> </span><span class="NAME">this.s.screen.y</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e.pageY</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>456</span> </span><span class="WHIT"> </span><span class="NAME">this.s.screen.height</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">window</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">height</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>457</span> </span><span class="WHIT"> </span><span class="NAME">this.s.screen.scrollTop</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">document</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">scrollTop</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>458</span> </span><span class="WHIT">
<span class='line'>459</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.s.dt.oScroll.sY</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">""</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>460</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>461</span> </span><span class="WHIT"> </span><span class="NAME">this.s.scroller.top</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">this.s.dt.nTable.parentNode</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">offset</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">top</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>462</span> </span><span class="WHIT"> </span><span class="NAME">this.s.scroller.bottom</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.s.scroller.top</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">this.s.dt.nTable.parentNode</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">height</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>463</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>464</span> </span><span class="WHIT">
<span class='line'>465</span> </span><span class="COMM">/* Scrolling handler - we set an interval (which is cancelled on mouse up) which will fire
<span class='line'>466</span> * regularly and see if we need to do any scrolling
<span class='line'>467</span> */</span><span class="WHIT">
<span class='line'>468</span> </span><span class="WHIT"> </span><span class="NAME">this.s.screen.interval</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">setInterval</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>469</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">iScrollTop</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">document</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">scrollTop</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>470</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">iScrollDelta</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">iScrollTop</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">that.s.screen.scrollTop</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>471</span> </span><span class="WHIT"> </span><span class="NAME">that.s.screen.y</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">iScrollDelta</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>472</span> </span><span class="WHIT">
<span class='line'>473</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">that.s.screen.height</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">that.s.screen.y</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">iScrollTop</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">50</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>474</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>475</span> </span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="STRN">'html, body'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">animate</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>476</span> </span><span class="WHIT"> </span><span class="NAME">scrollTop</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">iScrollTop</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">50</span><span class="WHIT">
<span class='line'>477</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">240</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'linear'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>478</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>479</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">that.s.screen.y</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">iScrollTop</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">50</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>480</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>481</span> </span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="STRN">'html, body'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">animate</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>482</span> </span><span class="WHIT"> </span><span class="NAME">scrollTop</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">iScrollTop</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">50</span><span class="WHIT">
<span class='line'>483</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">240</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'linear'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>484</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>485</span> </span><span class="WHIT">
<span class='line'>486</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">that.s.dt.oScroll.sY</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">""</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>487</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>488</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">that.s.screen.y</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">that.s.scroller.bottom</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">50</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>489</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>490</span> </span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">that.s.dt.nTable.parentNode</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">animate</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>491</span> </span><span class="WHIT"> </span><span class="NAME">scrollTop</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">that.s.dt.nTable.parentNode</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">scrollTop</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">50</span><span class="WHIT">
<span class='line'>492</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">240</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'linear'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>493</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>494</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">that.s.screen.y</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">that.s.scroller.top</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">50</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>495</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>496</span> </span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">that.s.dt.nTable.parentNode</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">animate</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>497</span> </span><span class="WHIT"> </span><span class="NAME">scrollTop</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">that.s.dt.nTable.parentNode</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">scrollTop</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">50</span><span class="WHIT">
<span class='line'>498</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">240</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'linear'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>499</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>500</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>501</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">250</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>502</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>503</span> </span><span class="WHIT">
<span class='line'>504</span>
<span class='line'>505</span> </span><span class="COMM">/**
<span class='line'>506</span> * Mouse move event handler for during a move. See if we want to update the display based on the
<span class='line'>507</span> * new cursor position
<span class='line'>508</span> * @method _fnFillerDragMove
<span class='line'>509</span> * @param {Object} e Event object
<span class='line'>510</span> * @returns void
<span class='line'>511</span> */</span><span class="WHIT">
<span class='line'>512</span> </span><span class="WHIT"> </span><span class="NAME">_fnFillerDragMove</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>513</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>514</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">e.target</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">e.target.nodeName.toUpperCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">"TD"</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
<span class='line'>515</span> </span><span class="WHIT"> </span><span class="NAME">e.target</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">this.s.drag.endTd</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>516</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>517</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">coords</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._fnTargetCoords</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">e.target</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>518</span> </span><span class="WHIT">
<span class='line'>519</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">coords.x</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">this.s.drag.startX</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>520</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>521</span> </span><span class="WHIT"> </span><span class="NAME">e.target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="STRN">'tbody>tr:eq('</span><span class="PUNC">+</span><span class="NAME">coords.y</span><span class="PUNC">+</span><span class="STRN">')>td:eq('</span><span class="PUNC">+</span><span class="NAME">this.s.drag.startX</span><span class="PUNC">+</span><span class="STRN">')'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.dom.table</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>522</span> </span><span class="WHIT"> </span><span class="NAME">coords</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._fnTargetCoords</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">e.target</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>523</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>524</span> </span><span class="WHIT">
<span class='line'>525</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">coords.x</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">this.s.drag.startX</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>526</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>527</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">drag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.s.drag</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>528</span> </span><span class="WHIT"> </span><span class="NAME">drag.endTd</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e.target</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>529</span> </span><span class="WHIT">
<span class='line'>530</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">coords.y</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NAME">this.s.drag.startY</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>531</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>532</span> </span><span class="WHIT"> </span><span class="NAME">this._fnUpdateBorder</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">drag.startTd</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">drag.endTd</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>533</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>534</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
<span class='line'>535</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>536</span> </span><span class="WHIT"> </span><span class="NAME">this._fnUpdateBorder</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">drag.endTd</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">drag.startTd</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>537</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>538</span> </span><span class="WHIT"> </span><span class="NAME">this._fnFillerPosition</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">e.target</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>539</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>540</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>541</span> </span><span class="WHIT">
<span class='line'>542</span> </span><span class="COMM">/* Update the screen information so we can perform scrolling */</span><span class="WHIT">
<span class='line'>543</span> </span><span class="WHIT"> </span><span class="NAME">this.s.screen.y</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e.pageY</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>544</span> </span><span class="WHIT"> </span><span class="NAME">this.s.screen.scrollTop</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">document</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">scrollTop</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>545</span> </span><span class="WHIT">
<span class='line'>546</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.s.dt.oScroll.sY</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">""</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>547</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>548</span> </span><span class="WHIT"> </span><span class="NAME">this.s.scroller.scrollTop</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">this.s.dt.nTable.parentNode</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">scrollTop</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>549</span> </span><span class="WHIT"> </span><span class="NAME">this.s.scroller.top</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">this.s.dt.nTable.parentNode</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">offset</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">top</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>550</span> </span><span class="WHIT"> </span><span class="NAME">this.s.scroller.bottom</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.s.scroller.top</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">this.s.dt.nTable.parentNode</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">height</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>551</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>552</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>553</span> </span><span class="WHIT">
<span class='line'>554</span>
<span class='line'>555</span> </span><span class="COMM">/**
<span class='line'>556</span> * Mouse release handler - end the drag and take action to update the cells with the needed values
<span class='line'>557</span> * @method _fnFillerFinish
<span class='line'>558</span> * @param {Object} e Event object
<span class='line'>559</span> * @returns void
<span class='line'>560</span> */</span><span class="WHIT">
<span class='line'>561</span> </span><span class="WHIT"> </span><span class="NAME">_fnFillerFinish</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>562</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>563</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">that</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>564</span> </span><span class="WHIT">
<span class='line'>565</span> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">document</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">unbind</span><span class="PUNC">(</span><span class="STRN">'mousemove.AutoFill'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>566</span> </span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">document</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">unbind</span><span class="PUNC">(</span><span class="STRN">'mouseup.AutoFill'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>567</span> </span><span class="WHIT">
<span class='line'>568</span> </span><span class="NAME">this.dom.borderTop.style.display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"none"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>569</span> </span><span class="WHIT"> </span><span class="NAME">this.dom.borderRight.style.display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"none"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>570</span> </span><span class="WHIT"> </span><span class="NAME">this.dom.borderBottom.style.display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"none"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>571</span> </span><span class="WHIT"> </span><span class="NAME">this.dom.borderLeft.style.display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"none"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>572</span> </span><span class="WHIT">
<span class='line'>573</span> </span><span class="NAME">this.s.drag.dragging</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>574</span> </span><span class="WHIT">
<span class='line'>575</span> </span><span class="NAME">clearInterval</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.s.screen.interval</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>576</span> </span><span class="WHIT">
<span class='line'>577</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">coordsStart</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._fnTargetCoords</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.s.drag.startTd</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>578</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">coordsEnd</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._fnTargetCoords</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.s.drag.endTd</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>579</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">aTds</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>580</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">bIncrement</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>581</span> </span><span class="WHIT">
<span class='line'>582</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">coordsStart.y</span><span class="WHIT"> </span><span class="PUNC">&lt;=</span><span class="WHIT"> </span><span class="NAME">coordsEnd.y</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>583</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>584</span> </span><span class="WHIT"> </span><span class="NAME">bIncrement</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>585</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">coordsStart.y</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">&lt;=</span><span class="NAME">coordsEnd.y</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>586</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>587</span> </span><span class="WHIT"> </span><span class="NAME">aTds.push</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="STRN">'tbody>tr:eq('</span><span class="PUNC">+</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">')>td:eq('</span><span class="PUNC">+</span><span class="NAME">coordsStart.x</span><span class="PUNC">+</span><span class="STRN">')'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.dom.table</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>588</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>589</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>590</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
<span class='line'>591</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>592</span> </span><span class="WHIT"> </span><span class="NAME">bIncrement</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>593</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">coordsStart.y</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">>=</span><span class="NAME">coordsEnd.y</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">--</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>594</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>595</span> </span><span class="WHIT"> </span><span class="NAME">aTds.push</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="STRN">'tbody>tr:eq('</span><span class="PUNC">+</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">')>td:eq('</span><span class="PUNC">+</span><span class="NAME">coordsStart.x</span><span class="PUNC">+</span><span class="STRN">')'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.dom.table</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>596</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>597</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>598</span> </span><span class="WHIT">
<span class='line'>599</span>
<span class='line'>600</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">iColumn</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">coordsStart.x</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>601</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">bLast</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>602</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">aoEdited</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>603</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">sStart</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.s.columns</span><span class="PUNC">[</span><span class="NAME">iColumn</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">read.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.s.drag.startTd</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>604</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">oPrepped</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._fnPrep</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">sStart</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>605</span> </span><span class="WHIT">
<span class='line'>606</span> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">iLen</span><span class="PUNC">=</span><span class="NAME">aTds.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">iLen</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>607</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>608</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">==</span><span class="NAME">iLen</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>609</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>610</span> </span><span class="WHIT"> </span><span class="NAME">bLast</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>611</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>612</span> </span><span class="WHIT">
<span class='line'>613</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">original</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.s.columns</span><span class="PUNC">[</span><span class="NAME">iColumn</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">read.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">aTds</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>614</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">step</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.s.columns</span><span class="PUNC">[</span><span class="NAME">iColumn</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">step.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">aTds</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">oPrepped</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">bIncrement</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>615</span> </span><span class="STRN">'SPRYMEDIA_AUTOFILL_STEPPER'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>616</span> </span><span class="WHIT"> </span><span class="NAME">this.s.columns</span><span class="PUNC">[</span><span class="NAME">iColumn</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">write.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">aTds</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">step</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">bLast</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>617</span> </span><span class="WHIT">
<span class='line'>618</span> </span><span class="NAME">aoEdited.push</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>619</span> </span><span class="WHIT"> </span><span class="NAME">td</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">aTds</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>620</span> </span><span class="WHIT"> </span><span class="NAME">newValue</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">step</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>621</span> </span><span class="WHIT"> </span><span class="NAME">oldValue</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">original</span><span class="WHIT">
<span class='line'>622</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>623</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>624</span> </span><span class="WHIT">
<span class='line'>625</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.s.columns</span><span class="PUNC">[</span><span class="NAME">iColumn</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">complete</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>626</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>627</span> </span><span class="WHIT"> </span><span class="NAME">this.s.columns</span><span class="PUNC">[</span><span class="NAME">iColumn</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">complete.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">aoEdited</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>628</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>629</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>630</span> </span><span class="WHIT">
<span class='line'>631</span>
<span class='line'>632</span> </span><span class="COMM">/**
<span class='line'>633</span> * Chunk a string such that it can be filled in by the stepper function
<span class='line'>634</span> * @method _fnPrep
<span class='line'>635</span> * @param {String} sStr String to prep
<span class='line'>636</span> * @returns {Object} with parameters, iStart, sStr and sPostFix
<span class='line'>637</span> */</span><span class="WHIT">
<span class='line'>638</span> </span><span class="WHIT"> </span><span class="NAME">_fnPrep</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">sStr</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>639</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>640</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">aMatch</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">sStr.match</span><span class="PUNC">(</span><span class="REGX">/[\d\.]+/g</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>641</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">aMatch</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">aMatch.length</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>642</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>643</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>644</span> </span><span class="WHIT"> </span><span class="NAME">iStart</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>645</span> </span><span class="WHIT"> </span><span class="NAME">sStr</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">sStr</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>646</span> </span><span class="WHIT"> </span><span class="NAME">sPostFix</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="WHIT">
<span class='line'>647</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>648</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>649</span> </span><span class="WHIT">
<span class='line'>650</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">sLast</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">aMatch</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">aMatch.length</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>651</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">num</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">sLast</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">10</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>652</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">regex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'^(.*)'</span><span class="PUNC">+</span><span class="NAME">sLast</span><span class="PUNC">+</span><span class="STRN">'(.*?)$'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>653</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">decimal</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">sLast.match</span><span class="PUNC">(</span><span class="REGX">/\./</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">"."</span><span class="PUNC">+</span><span class="NAME">sLast.split</span><span class="PUNC">(</span><span class="STRN">'.'</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>654</span> </span><span class="WHIT">
<span class='line'>655</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>656</span> </span><span class="WHIT"> </span><span class="NAME">iStart</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">num</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>657</span> </span><span class="WHIT"> </span><span class="NAME">sStr</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">sStr.replace</span><span class="PUNC">(</span><span class="NAME">regex</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"$1SPRYMEDIA_AUTOFILL_STEPPER$2"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>658</span> </span><span class="WHIT"> </span><span class="NAME">sPostFix</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">decimal</span><span class="WHIT">
<span class='line'>659</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>660</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>661</span> </span><span class="WHIT">
<span class='line'>662</span>
<span class='line'>663</span> </span><span class="COMM">/**
<span class='line'>664</span> * Render a string for it's position in the table after the drag (incrememt numbers)
<span class='line'>665</span> * @method _fnStep
<span class='line'>666</span> * @param {Node} nTd Cell being written to
<span class='line'>667</span> * @param {Object} oPrepped Prepared object for the stepper (from _fnPrep)
<span class='line'>668</span> * @param {Int} iDiff Step difference
<span class='line'>669</span> * @param {Boolean} bIncrement Increment (true) or decriment (false)
<span class='line'>670</span> * @param {String} sToken Token to replace
<span class='line'>671</span> * @returns {String} Rendered information
<span class='line'>672</span> */</span><span class="WHIT">
<span class='line'>673</span> </span><span class="WHIT"> </span><span class="NAME">_fnStep</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">nTd</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">oPrepped</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">iDiff</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">bIncrement</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sToken</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>674</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>675</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">iReplace</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">bIncrement</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">oPrepped.iStart</span><span class="PUNC">+</span><span class="NAME">iDiff</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">oPrepped.iStart</span><span class="PUNC">-</span><span class="NAME">iDiff</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>676</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">iReplace</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>677</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>678</span> </span><span class="WHIT"> </span><span class="NAME">iReplace</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>679</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>680</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">oPrepped.sStr.replace</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">sToken</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">iReplace</span><span class="PUNC">+</span><span class="NAME">oPrepped.sPostFix</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>681</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>682</span> </span><span class="WHIT">
<span class='line'>683</span>
<span class='line'>684</span> </span><span class="COMM">/**
<span class='line'>685</span> * Read informaiton from a cell, possibly using live DOM elements if suitable
<span class='line'>686</span> * @method _fnReadCell
<span class='line'>687</span> * @param {Node} nTd Cell to read
<span class='line'>688</span> * @returns {String} Read value
<span class='line'>689</span> */</span><span class="WHIT">
<span class='line'>690</span> </span><span class="WHIT"> </span><span class="NAME">_fnReadCell</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">nTd</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>691</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>692</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">jq</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="STRN">'input'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">nTd</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>693</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">jq.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>694</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>695</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">jq</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">val</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>696</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>697</span> </span><span class="WHIT">
<span class='line'>698</span> </span><span class="NAME">jq</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="STRN">'select'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">nTd</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>699</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">jq.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>700</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>701</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">jq</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">val</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>702</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>703</span> </span><span class="WHIT">
<span class='line'>704</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">nTd.innerHTML</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>705</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>706</span> </span><span class="WHIT">
<span class='line'>707</span>
<span class='line'>708</span> </span><span class="COMM">/**
<span class='line'>709</span> * Write informaiton to a cell, possibly using live DOM elements if suitable
<span class='line'>710</span> * @method _fnWriteCell
<span class='line'>711</span> * @param {Node} nTd Cell to write
<span class='line'>712</span> * @param {String} sVal Value to write
<span class='line'>713</span> * @param {Boolean} bLast Flag to show if this is that last update
<span class='line'>714</span> * @returns void
<span class='line'>715</span> */</span><span class="WHIT">
<span class='line'>716</span> </span><span class="WHIT"> </span><span class="NAME">_fnWriteCell</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">nTd</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sVal</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">bLast</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>717</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>718</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">jq</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="STRN">'input'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">nTd</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>719</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">jq.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>720</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>721</span> </span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">jq</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">val</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">sVal</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>722</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>723</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>724</span> </span><span class="WHIT">
<span class='line'>725</span> </span><span class="NAME">jq</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="STRN">'select'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">nTd</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>726</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">jq.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>727</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>728</span> </span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">jq</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">val</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">sVal</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>729</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>730</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>731</span> </span><span class="WHIT">
<span class='line'>732</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.s.dt.oInstance.fnGetPosition</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">nTd</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>733</span> </span><span class="WHIT"> </span><span class="NAME">this.s.dt.oInstance.fnUpdate</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">sVal</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">bLast</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>734</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>735</span> </span><span class="WHIT">
<span class='line'>736</span>
<span class='line'>737</span> </span><span class="COMM">/**
<span class='line'>738</span> * Display the drag handle on mouse over cell
<span class='line'>739</span> * @method _fnFillerDisplay
<span class='line'>740</span> * @param {Object} e Event object
<span class='line'>741</span> * @returns void
<span class='line'>742</span> */</span><span class="WHIT">
<span class='line'>743</span> </span><span class="WHIT"> </span><span class="NAME">_fnFillerDisplay</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>744</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>745</span> </span><span class="WHIT"> </span><span class="COMM">/* Don't display automatically when dragging */</span><span class="WHIT">
<span class='line'>746</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.s.drag.dragging</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>747</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>748</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>749</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>750</span> </span><span class="WHIT">
<span class='line'>751</span> </span><span class="COMM">/* Check that we are allowed to AutoFill this column or not */</span><span class="WHIT">
<span class='line'>752</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">iX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._fnTargetCoords</span><span class="PUNC">(</span><span class="NAME">e.target</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">x</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>753</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">this.s.columns</span><span class="PUNC">[</span><span class="NAME">iX</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">enable</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>754</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>755</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>756</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>757</span> </span><span class="WHIT">
<span class='line'>758</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">filler</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.dom.filler</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>759</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e.type</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'mouseover'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>760</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>761</span> </span><span class="WHIT"> </span><span class="NAME">this.dom.currentTarget</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e.target</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>762</span> </span><span class="WHIT"> </span><span class="NAME">this._fnFillerPosition</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">e.target</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>763</span> </span><span class="WHIT">
<span class='line'>764</span> </span><span class="NAME">filler.style.display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"block"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>765</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>766</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">e.relatedTarget</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">e.relatedTarget.className.match</span><span class="PUNC">(</span><span class="REGX">/AutoFill/</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>767</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>768</span> </span><span class="WHIT"> </span><span class="NAME">filler.style.display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"none"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>769</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>770</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>771</span> </span><span class="WHIT">
<span class='line'>772</span>
<span class='line'>773</span> </span><span class="COMM">/**
<span class='line'>774</span> * Position the filler icon over a cell
<span class='line'>775</span> * @method _fnFillerPosition
<span class='line'>776</span> * @param {Node} nTd Cell to position filler icon over
<span class='line'>777</span> * @returns void
<span class='line'>778</span> */</span><span class="WHIT">
<span class='line'>779</span> </span><span class="WHIT"> </span><span class="NAME">_fnFillerPosition</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">nTd</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>780</span> </span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>781</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">offset</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">nTd</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">offset</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>782</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">filler</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.dom.filler</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>783</span> </span><span class="WHIT"> </span><span class="NAME">filler.style.top</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">offset.top</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.s.filler.height</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">nTd</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">outerHeight</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">"px"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>784</span> </span><span class="WHIT"> </span><span class="NAME">filler.style.left</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">offset.left</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.s.filler.width</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">$</span><span class="PUNC">(</span><span class="NAME">nTd</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">outerWidth</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">"px"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>785</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>786</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>787</span>
<span class='line'>788</span>
<span class='line'>789</span>
<span class='line'>790</span>
<span class='line'>791</span> </span><span class="COMM">/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
<span class='line'>792</span> * Constants
<span class='line'>793</span> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */</span><span class="WHIT">
<span class='line'>794</span>
<span class='line'>795</span> </span><span class="COMM">/**
<span class='line'>796</span> * Name of this class
<span class='line'>797</span> * @constant CLASS
<span class='line'>798</span> * @type String
<span class='line'>799</span> * @default AutoFill
<span class='line'>800</span> */</span><span class="WHIT">
<span class='line'>801</span> </span><span class="NAME">AutoFill.prototype.CLASS</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"AutoFill"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>802</span>
<span class='line'>803</span>
<span class='line'>804</span> </span><span class="COMM">/**
<span class='line'>805</span> * AutoFill version
<span class='line'>806</span> * @constant VERSION
<span class='line'>807</span> * @type String
<span class='line'>808</span> * @default 1.1.1
<span class='line'>809</span> */</span><span class="WHIT">
<span class='line'>810</span> </span><span class="NAME">AutoFill.VERSION</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"1.1.1"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>811</span> </span><span class="NAME">AutoFill.prototype.VERSION</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"1.1.1"</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>812</span>
<span class='line'>813</span>
<span class='line'>814</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="NAME">jQuery</span><span class="PUNC">)</span><span class="PUNC">;</span></pre></body></html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

@@ -0,0 +1,814 @@
/*
* File: AutoFill.js
* Version: 1.1.1
* CVS: $Id$
* Description: AutoFill for DataTables
* Author: Allan Jardine (www.sprymedia.co.uk)
* Created: Mon 6 Sep 2010 16:54:41 BST
* Modified: $Date$ by $Author$
* Language: Javascript
* License: GPL v2 or BSD 3 point
* Project: DataTables
* Contact: www.sprymedia.co.uk/contact
*
* Copyright 2010 Allan Jardine, all rights reserved.
*
*/
/* Global scope for AutoFill */
var AutoFill;
(function($) {
/**
* AutoFill provides Excel like auto fill features for a DataTable
* @class AutoFill
* @constructor
* @param {object} DataTables settings object
* @param {object} Configuration object for AutoFill
*/
AutoFill = function( oDT, oConfig )
{
/* Santiy check that we are a new instance */
if ( !this.CLASS || this.CLASS != "AutoFill" )
{
alert( "Warning: AutoFill must be initialised with the keyword 'new'" );
return;
}
if ( !$.fn.dataTableExt.fnVersionCheck('1.7.0') )
{
alert( "Warning: AutoFill requires DataTables 1.7 or greater - www.datatables.net/download");
return;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Public class variables
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* @namespace Settings object which contains customisable information for AutoFill instance
*/
this.s = {
/**
* @namespace Cached information about the little dragging icon (the filler)
*/
"filler": {
"height": 0,
"width": 0
},
/**
* @namespace Cached information about the border display
*/
"border": {
"width": 2
},
/**
* @namespace Store for live information for the current drag
*/
"drag": {
"startX": -1,
"startY": -1,
"startTd": null,
"endTd": null,
"dragging": false
},
/**
* @namespace Data cache for information that we need for scrolling the screen when we near
* the edges
*/
"screen": {
"interval": null,
"y": 0,
"height": 0,
"scrollTop": 0
},
/**
* @namespace Data cache for the position of the DataTables scrolling element (when scrolling
* is enabled)
*/
"scroller": {
"top": 0,
"bottom": 0
},
/**
* @namespace Information stored for each column. An array of objects
*/
"columns": []
};
/**
* @namespace Common and useful DOM elements for the class instance
*/
this.dom = {
"table": null,
"filler": null,
"borderTop": null,
"borderRight": null,
"borderBottom": null,
"borderLeft": null,
"currentTarget": null
};
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Public class methods
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Retreieve the settings object from an instance
* @method fnSettings
* @returns {object} AutoFill settings object
*/
this.fnSettings = function () {
return this.s;
};
/* Constructor logic */
this._fnInit( oDT, oConfig );
return this;
};
AutoFill.prototype = {
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Private methods (they are of course public in JS, but recommended as private)
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Initialisation
* @method _fnInit
* @param {object} oDT DataTables settings object
* @param {object} oConfig Configuration object for AutoFill
* @returns void
*/
"_fnInit": function ( oDT, oConfig )
{
var
that = this,
i, iLen;
/*
* Settings
*/
this.s.dt = oDT.fnSettings();
this.dom.table = this.s.dt.nTable;
/* Add and configure the columns */
for ( i=0, iLen=this.s.dt.aoColumns.length ; i<iLen ; i++ )
{
this._fnAddColumn( i );
}
if ( typeof oConfig != 'undefined' && typeof oConfig.aoColumnDefs != 'undefined' )
{
this._fnColumnDefs( oConfig.aoColumnDefs );
}
if ( typeof oConfig != 'undefined' && typeof oConfig.aoColumns != 'undefined' )
{
this._fnColumnsAll( oConfig.aoColumns );
}
/*
* DOM
*/
/* Auto Fill click and drag icon */
var filler = document.createElement('div');
filler.className = "AutoFill_filler";
document.body.appendChild( filler );
this.dom.filler = filler;
filler.style.display = "block";
this.s.filler.height = $(filler).height();
this.s.filler.width = $(filler).width();
filler.style.display = "none";
/* Border display - one div for each side. We can't just use a single one with a border, as
* we want the events to effectively pass through the transparent bit of the box
*/
var border;
var appender = document.body;
if ( that.s.dt.oScroll.sY !== "" )
{
that.s.dt.nTable.parentNode.style.position = "relative";
appender = that.s.dt.nTable.parentNode;
}
border = document.createElement('div');
border.className = "AutoFill_border";
appender.appendChild( border );
this.dom.borderTop = border;
border = document.createElement('div');
border.className = "AutoFill_border";
appender.appendChild( border );
this.dom.borderRight = border;
border = document.createElement('div');
border.className = "AutoFill_border";
appender.appendChild( border );
this.dom.borderBottom = border;
border = document.createElement('div');
border.className = "AutoFill_border";
appender.appendChild( border );
this.dom.borderLeft = border;
/*
* Events
*/
$(filler).mousedown( function (e) {
this.onselectstart = function() { return false; };
that._fnFillerDragStart.call( that, e );
return false;
} );
$('tbody>tr>td', this.dom.table).live( 'mouseover mouseout', function (e) {
that._fnFillerDisplay.call( that, e );
} );
},
"_fnColumnDefs": function ( aoColumnDefs )
{
var
i, j, k, iLen, jLen, kLen,
aTargets;
/* Loop over the column defs array - loop in reverse so first instace has priority */
for ( i=aoColumnDefs.length-1 ; i>=0 ; i-- )
{
/* Each column def can target multiple columns, as it is an array */
aTargets = aoColumnDefs[i].aTargets;
for ( j=0, jLen=aTargets.length ; j<jLen ; j++ )
{
if ( typeof aTargets[j] == 'number' && aTargets[j] >= 0 )
{
/* 0+ integer, left to right column counting. */
this._fnColumnOptions( aTargets[j], aoColumnDefs[i] );
}
else if ( typeof aTargets[j] == 'number' && aTargets[j] < 0 )
{
/* Negative integer, right to left column counting */
this._fnColumnOptions( this.s.dt.aoColumns.length+aTargets[j], aoColumnDefs[i] );
}
else if ( typeof aTargets[j] == 'string' )
{
/* Class name matching on TH element */
for ( k=0, kLen=this.s.dt.aoColumns.length ; k<kLen ; k++ )
{
if ( aTargets[j] == "_all" ||
this.s.dt.aoColumns[k].nTh.className.indexOf( aTargets[j] ) != -1 )
{
this._fnColumnOptions( k, aoColumnDefs[i] );
}
}
}
}
}
},
"_fnColumnsAll": function ( aoColumns )
{
for ( var i=0, iLen=this.s.dt.aoColumns.length ; i<iLen ; i++ )
{
this._fnColumnOptions( i, aoColumns[i] );
}
},
"_fnAddColumn": function ( i )
{
this.s.columns[i] = {
"enable": true,
"read": this._fnReadCell,
"write": this._fnWriteCell,
"step": this._fnStep,
"complete": null
};
},
"_fnColumnOptions": function ( i, opts )
{
if ( typeof opts.bEnable != 'undefined' )
{
this.s.columns[i].enable = opts.bEnable;
}
if ( typeof opts.fnRead != 'undefined' )
{
this.s.columns[i].read = opts.fnRead;
}
if ( typeof opts.fnWrite != 'undefined' )
{
this.s.columns[i].write = opts.fnWrite;
}
if ( typeof opts.fnStep != 'undefined' )
{
this.s.columns[i].step = opts.fnStep;
}
if ( typeof opts.fnCallback != 'undefined' )
{
this.s.columns[i].complete = opts.fnCallback;
}
},
/**
* Find out the coordinates of a given TD cell in a table
* @method _fnTargetCoords
* @param {Node} nTd
* @returns {Object} x and y properties, for the position of the cell in the tables DOM
*/
"_fnTargetCoords": function ( nTd )
{
var nTr = nTd.parentNode;
return {
"x": $('td', nTr).index(nTd),
"y": $('tr', nTr.parentNode).index(nTr)
};
},
/**
* Display the border around one or more cells (from start to end)
* @method _fnUpdateBorder
* @param {Node} nStart Starting cell
* @param {Node} nEnd Ending cell
* @returns void
*/
"_fnUpdateBorder": function ( nStart, nEnd )
{
var
border = this.s.border.width,
offsetStart = $(nStart).offset(),
offsetEnd = $(nEnd).offset(),
x1 = offsetStart.left - border,
x2 = offsetEnd.left + $(nEnd).outerWidth(),
y1 = offsetStart.top - border,
y2 = offsetEnd.top + $(nEnd).outerHeight(),
width = offsetEnd.left + $(nEnd).outerWidth() - offsetStart.left + (2*border),
height = offsetEnd.top + $(nEnd).outerHeight() - offsetStart.top + (2*border),
oStyle;
if ( this.s.dt.oScroll.sY !== "" )
{
/* The border elements are inside the DT scroller - so position relative to that */
var
offsetScroll = $(this.s.dt.nTable.parentNode).offset(),
scrollTop = $(this.s.dt.nTable.parentNode).scrollTop(),
scrollLeft = $(this.s.dt.nTable.parentNode).scrollLeft();
x1 -= offsetScroll.left - scrollLeft;
x2 -= offsetScroll.left - scrollLeft;
y1 -= offsetScroll.top - scrollTop;
y2 -= offsetScroll.top - scrollTop;
}
/* Top */
oStyle = this.dom.borderTop.style;
oStyle.top = y1+"px";
oStyle.left = x1+"px";
oStyle.height = this.s.border.width+"px";
oStyle.width = width+"px";
/* Bottom */
oStyle = this.dom.borderBottom.style;
oStyle.top = y2+"px";
oStyle.left = x1+"px";
oStyle.height = this.s.border.width+"px";
oStyle.width = width+"px";
/* Left */
oStyle = this.dom.borderLeft.style;
oStyle.top = y1+"px";
oStyle.left = x1+"px";
oStyle.height = height+"px";
oStyle.width = this.s.border.width+"px";
/* Right */
oStyle = this.dom.borderRight.style;
oStyle.top = y1+"px";
oStyle.left = x2+"px";
oStyle.height = height+"px";
oStyle.width = this.s.border.width+"px";
},
/**
* Mouse down event handler for starting a drag
* @method _fnFillerDragStart
* @param {Object} e Event object
* @returns void
*/
"_fnFillerDragStart": function (e)
{
var that = this;
var startingTd = this.dom.currentTarget;
this.s.drag.dragging = true;
that.dom.borderTop.style.display = "block";
that.dom.borderRight.style.display = "block";
that.dom.borderBottom.style.display = "block";
that.dom.borderLeft.style.display = "block";
var coords = this._fnTargetCoords( startingTd );
this.s.drag.startX = coords.x;
this.s.drag.startY = coords.y;
this.s.drag.startTd = startingTd;
this.s.drag.endTd = startingTd;
this._fnUpdateBorder( startingTd, startingTd );
$(document).bind('mousemove.AutoFill', function (e) {
that._fnFillerDragMove.call( that, e );
} );
$(document).bind('mouseup.AutoFill', function (e) {
that._fnFillerFinish.call( that, e );
} );
/* Scrolling information cache */
this.s.screen.y = e.pageY;
this.s.screen.height = $(window).height();
this.s.screen.scrollTop = $(document).scrollTop();
if ( this.s.dt.oScroll.sY !== "" )
{
this.s.scroller.top = $(this.s.dt.nTable.parentNode).offset().top;
this.s.scroller.bottom = this.s.scroller.top + $(this.s.dt.nTable.parentNode).height();
}
/* Scrolling handler - we set an interval (which is cancelled on mouse up) which will fire
* regularly and see if we need to do any scrolling
*/
this.s.screen.interval = setInterval( function () {
var iScrollTop = $(document).scrollTop();
var iScrollDelta = iScrollTop - that.s.screen.scrollTop;
that.s.screen.y += iScrollDelta;
if ( that.s.screen.height - that.s.screen.y + iScrollTop < 50 )
{
$('html, body').animate( {
"scrollTop": iScrollTop + 50
}, 240, 'linear' );
}
else if ( that.s.screen.y - iScrollTop < 50 )
{
$('html, body').animate( {
"scrollTop": iScrollTop - 50
}, 240, 'linear' );
}
if ( that.s.dt.oScroll.sY !== "" )
{
if ( that.s.screen.y > that.s.scroller.bottom - 50 )
{
$(that.s.dt.nTable.parentNode).animate( {
"scrollTop": $(that.s.dt.nTable.parentNode).scrollTop() + 50
}, 240, 'linear' );
}
else if ( that.s.screen.y < that.s.scroller.top + 50 )
{
$(that.s.dt.nTable.parentNode).animate( {
"scrollTop": $(that.s.dt.nTable.parentNode).scrollTop() - 50
}, 240, 'linear' );
}
}
}, 250 );
},
/**
* Mouse move event handler for during a move. See if we want to update the display based on the
* new cursor position
* @method _fnFillerDragMove
* @param {Object} e Event object
* @returns void
*/
"_fnFillerDragMove": function (e)
{
if ( e.target && e.target.nodeName.toUpperCase() == "TD" &&
e.target != this.s.drag.endTd )
{
var coords = this._fnTargetCoords( e.target );
if ( coords.x != this.s.drag.startX )
{
e.target = $('tbody>tr:eq('+coords.y+')>td:eq('+this.s.drag.startX+')', this.dom.table)[0];
coords = this._fnTargetCoords( e.target );
}
if ( coords.x == this.s.drag.startX )
{
var drag = this.s.drag;
drag.endTd = e.target;
if ( coords.y >= this.s.drag.startY )
{
this._fnUpdateBorder( drag.startTd, drag.endTd );
}
else
{
this._fnUpdateBorder( drag.endTd, drag.startTd );
}
this._fnFillerPosition( e.target );
}
}
/* Update the screen information so we can perform scrolling */
this.s.screen.y = e.pageY;
this.s.screen.scrollTop = $(document).scrollTop();
if ( this.s.dt.oScroll.sY !== "" )
{
this.s.scroller.scrollTop = $(this.s.dt.nTable.parentNode).scrollTop();
this.s.scroller.top = $(this.s.dt.nTable.parentNode).offset().top;
this.s.scroller.bottom = this.s.scroller.top + $(this.s.dt.nTable.parentNode).height();
}
},
/**
* Mouse release handler - end the drag and take action to update the cells with the needed values
* @method _fnFillerFinish
* @param {Object} e Event object
* @returns void
*/
"_fnFillerFinish": function (e)
{
var that = this;
$(document).unbind('mousemove.AutoFill');
$(document).unbind('mouseup.AutoFill');
this.dom.borderTop.style.display = "none";
this.dom.borderRight.style.display = "none";
this.dom.borderBottom.style.display = "none";
this.dom.borderLeft.style.display = "none";
this.s.drag.dragging = false;
clearInterval( this.s.screen.interval );
var coordsStart = this._fnTargetCoords( this.s.drag.startTd );
var coordsEnd = this._fnTargetCoords( this.s.drag.endTd );
var aTds = [];
var bIncrement;
if ( coordsStart.y <= coordsEnd.y )
{
bIncrement = true;
for ( i=coordsStart.y ; i<=coordsEnd.y ; i++ )
{
aTds.push( $('tbody>tr:eq('+i+')>td:eq('+coordsStart.x+')', this.dom.table)[0] );
}
}
else
{
bIncrement = false;
for ( i=coordsStart.y ; i>=coordsEnd.y ; i-- )
{
aTds.push( $('tbody>tr:eq('+i+')>td:eq('+coordsStart.x+')', this.dom.table)[0] );
}
}
var iColumn = coordsStart.x;
var bLast = false;
var aoEdited = [];
var sStart = this.s.columns[iColumn].read.call( this, this.s.drag.startTd );
var oPrepped = this._fnPrep( sStart );
for ( i=0, iLen=aTds.length ; i<iLen ; i++ )
{
if ( i==iLen-1 )
{
bLast = true;
}
var original = this.s.columns[iColumn].read.call( this, aTds[i] );
var step = this.s.columns[iColumn].step.call( this, aTds[i], oPrepped, i, bIncrement,
'SPRYMEDIA_AUTOFILL_STEPPER' );
this.s.columns[iColumn].write.call( this, aTds[i], step, bLast );
aoEdited.push( {
"td": aTds[i],
"newValue": step,
"oldValue": original
} );
}
if ( this.s.columns[iColumn].complete !== null )
{
this.s.columns[iColumn].complete.call( this, aoEdited );
}
},
/**
* Chunk a string such that it can be filled in by the stepper function
* @method _fnPrep
* @param {String} sStr String to prep
* @returns {Object} with parameters, iStart, sStr and sPostFix
*/
"_fnPrep": function ( sStr )
{
var aMatch = sStr.match(/[\d\.]+/g);
if ( !aMatch || aMatch.length === 0 )
{
return {
"iStart": 0,
"sStr": sStr,
"sPostFix": ""
};
}
var sLast = aMatch[ aMatch.length-1 ];
var num = parseInt(sLast, 10);
var regex = new RegExp( '^(.*)'+sLast+'(.*?)$' );
var decimal = sLast.match(/\./) ? "."+sLast.split('.')[1] : "";
return {
"iStart": num,
"sStr": sStr.replace(regex, "$1SPRYMEDIA_AUTOFILL_STEPPER$2"),
"sPostFix": decimal
};
},
/**
* Render a string for it's position in the table after the drag (incrememt numbers)
* @method _fnStep
* @param {Node} nTd Cell being written to
* @param {Object} oPrepped Prepared object for the stepper (from _fnPrep)
* @param {Int} iDiff Step difference
* @param {Boolean} bIncrement Increment (true) or decriment (false)
* @param {String} sToken Token to replace
* @returns {String} Rendered information
*/
"_fnStep": function ( nTd, oPrepped, iDiff, bIncrement, sToken )
{
var iReplace = bIncrement ? (oPrepped.iStart+iDiff) : (oPrepped.iStart-iDiff);
if ( isNaN(iReplace) )
{
iReplace = "";
}
return oPrepped.sStr.replace( sToken, iReplace+oPrepped.sPostFix );
},
/**
* Read informaiton from a cell, possibly using live DOM elements if suitable
* @method _fnReadCell
* @param {Node} nTd Cell to read
* @returns {String} Read value
*/
"_fnReadCell": function ( nTd )
{
var jq = $('input', nTd);
if ( jq.length > 0 )
{
return $(jq).val();
}
jq = $('select', nTd);
if ( jq.length > 0 )
{
return $(jq).val();
}
return nTd.innerHTML;
},
/**
* Write informaiton to a cell, possibly using live DOM elements if suitable
* @method _fnWriteCell
* @param {Node} nTd Cell to write
* @param {String} sVal Value to write
* @param {Boolean} bLast Flag to show if this is that last update
* @returns void
*/
"_fnWriteCell": function ( nTd, sVal, bLast )
{
var jq = $('input', nTd);
if ( jq.length > 0 )
{
$(jq).val( sVal );
return;
}
jq = $('select', nTd);
if ( jq.length > 0 )
{
$(jq).val( sVal );
return;
}
var pos = this.s.dt.oInstance.fnGetPosition( nTd );
this.s.dt.oInstance.fnUpdate( sVal, pos[0], pos[2], bLast );
},
/**
* Display the drag handle on mouse over cell
* @method _fnFillerDisplay
* @param {Object} e Event object
* @returns void
*/
"_fnFillerDisplay": function (e)
{
/* Don't display automatically when dragging */
if ( this.s.drag.dragging)
{
return;
}
/* Check that we are allowed to AutoFill this column or not */
var iX = this._fnTargetCoords(e.target).x;
if ( !this.s.columns[iX].enable )
{
return;
}
var filler = this.dom.filler;
if (e.type == 'mouseover')
{
this.dom.currentTarget = e.target;
this._fnFillerPosition( e.target );
filler.style.display = "block";
}
else if ( !e.relatedTarget || !e.relatedTarget.className.match(/AutoFill/) )
{
filler.style.display = "none";
}
},
/**
* Position the filler icon over a cell
* @method _fnFillerPosition
* @param {Node} nTd Cell to position filler icon over
* @returns void
*/
"_fnFillerPosition": function ( nTd )
{
var offset = $(nTd).offset();
var filler = this.dom.filler;
filler.style.top = (offset.top - (this.s.filler.height / 2)-1 + $(nTd).outerHeight())+"px";
filler.style.left = (offset.left - (this.s.filler.width / 2)-1 + $(nTd).outerWidth())+"px";
}
};
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Constants
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Name of this class
* @constant CLASS
* @type String
* @default AutoFill
*/
AutoFill.prototype.CLASS = "AutoFill";
/**
* AutoFill version
* @constant VERSION
* @type String
* @default 1.1.1
*/
AutoFill.VERSION = "1.1.1";
AutoFill.prototype.VERSION = "1.1.1";
})(jQuery);
@@ -0,0 +1,33 @@
/*
* File: AutoFill.min.js
* Version: 1.1.1
* Author: Allan Jardine (www.sprymedia.co.uk)
*
* Copyright 2010-2011 Allan Jardine, all rights reserved.
*
* This source file is free software, under either the GPL v2 license or a
* BSD (3 point) style license, as supplied with this software.
*
* This source file is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
*/
var AutoFill;
(function(d){AutoFill=function(b,a){if(!this.CLASS||this.CLASS!="AutoFill")alert("Warning: AutoFill must be initialised with the keyword 'new'");else if(d.fn.dataTableExt.fnVersionCheck("1.7.0")){this.s={filler:{height:0,width:0},border:{width:2},drag:{startX:-1,startY:-1,startTd:null,endTd:null,dragging:false},screen:{interval:null,y:0,height:0,scrollTop:0},scroller:{top:0,bottom:0},columns:[]};this.dom={table:null,filler:null,borderTop:null,borderRight:null,borderBottom:null,borderLeft:null,currentTarget:null};
this.fnSettings=function(){return this.s};this._fnInit(b,a);return this}else alert("Warning: AutoFill requires DataTables 1.7 or greater - www.datatables.net/download")};AutoFill.prototype={_fnInit:function(b,a){var c=this,e;this.s.dt=b.fnSettings();this.dom.table=this.s.dt.nTable;b=0;for(e=this.s.dt.aoColumns.length;b<e;b++)this._fnAddColumn(b);typeof a!="undefined"&&typeof a.aoColumnDefs!="undefined"&&this._fnColumnDefs(a.aoColumnDefs);typeof a!="undefined"&&typeof a.aoColumns!="undefined"&&this._fnColumnsAll(a.aoColumns);
a=document.createElement("div");a.className="AutoFill_filler";document.body.appendChild(a);this.dom.filler=a;a.style.display="block";this.s.filler.height=d(a).height();this.s.filler.width=d(a).width();a.style.display="none";e=document.body;if(c.s.dt.oScroll.sY!==""){c.s.dt.nTable.parentNode.style.position="relative";e=c.s.dt.nTable.parentNode}b=document.createElement("div");b.className="AutoFill_border";e.appendChild(b);this.dom.borderTop=b;b=document.createElement("div");b.className="AutoFill_border";
e.appendChild(b);this.dom.borderRight=b;b=document.createElement("div");b.className="AutoFill_border";e.appendChild(b);this.dom.borderBottom=b;b=document.createElement("div");b.className="AutoFill_border";e.appendChild(b);this.dom.borderLeft=b;d(a).mousedown(function(f){this.onselectstart=function(){return false};c._fnFillerDragStart.call(c,f);return false});d("tbody>tr>td",this.dom.table).live("mouseover mouseout",function(f){c._fnFillerDisplay.call(c,f)})},_fnColumnDefs:function(b){var a,c,e,f,
h,g;for(a=b.length-1;a>=0;a--){g=b[a].aTargets;c=0;for(f=g.length;c<f;c++)if(typeof g[c]=="number"&&g[c]>=0)this._fnColumnOptions(g[c],b[a]);else if(typeof g[c]=="number"&&g[c]<0)this._fnColumnOptions(this.s.dt.aoColumns.length+g[c],b[a]);else if(typeof g[c]=="string"){e=0;for(h=this.s.dt.aoColumns.length;e<h;e++)if(g[c]=="_all"||this.s.dt.aoColumns[e].nTh.className.indexOf(g[c])!=-1)this._fnColumnOptions(e,b[a])}}},_fnColumnsAll:function(b){for(var a=0,c=this.s.dt.aoColumns.length;a<c;a++)this._fnColumnOptions(a,
b[a])},_fnAddColumn:function(b){this.s.columns[b]={enable:true,read:this._fnReadCell,write:this._fnWriteCell,step:this._fnStep,complete:null}},_fnColumnOptions:function(b,a){if(typeof a.bEnable!="undefined")this.s.columns[b].enable=a.bEnable;if(typeof a.fnRead!="undefined")this.s.columns[b].read=a.fnRead;if(typeof a.fnWrite!="undefined")this.s.columns[b].write=a.fnWrite;if(typeof a.fnStep!="undefined")this.s.columns[b].step=a.fnStep;if(typeof a.fnCallback!="undefined")this.s.columns[b].complete=a.fnCallback},
_fnTargetCoords:function(b){var a=b.parentNode;return{x:d("td",a).index(b),y:d("tr",a.parentNode).index(a)}},_fnUpdateBorder:function(b,a){var c=this.s.border.width,e=d(b).offset(),f=d(a).offset();b=e.left-c;var h=f.left+d(a).outerWidth(),g=e.top-c,j=f.top+d(a).outerHeight(),k=f.left+d(a).outerWidth()-e.left+2*c;a=f.top+d(a).outerHeight()-e.top+2*c;if(this.s.dt.oScroll.sY!==""){c=d(this.s.dt.nTable.parentNode).offset();e=d(this.s.dt.nTable.parentNode).scrollTop();f=d(this.s.dt.nTable.parentNode).scrollLeft();
b-=c.left-f;h-=c.left-f;g-=c.top-e;j-=c.top-e}c=this.dom.borderTop.style;c.top=g+"px";c.left=b+"px";c.height=this.s.border.width+"px";c.width=k+"px";c=this.dom.borderBottom.style;c.top=j+"px";c.left=b+"px";c.height=this.s.border.width+"px";c.width=k+"px";c=this.dom.borderLeft.style;c.top=g+"px";c.left=b+"px";c.height=a+"px";c.width=this.s.border.width+"px";c=this.dom.borderRight.style;c.top=g+"px";c.left=h+"px";c.height=a+"px";c.width=this.s.border.width+"px"},_fnFillerDragStart:function(b){var a=
this,c=this.dom.currentTarget;this.s.drag.dragging=true;a.dom.borderTop.style.display="block";a.dom.borderRight.style.display="block";a.dom.borderBottom.style.display="block";a.dom.borderLeft.style.display="block";var e=this._fnTargetCoords(c);this.s.drag.startX=e.x;this.s.drag.startY=e.y;this.s.drag.startTd=c;this.s.drag.endTd=c;this._fnUpdateBorder(c,c);d(document).bind("mousemove.AutoFill",function(f){a._fnFillerDragMove.call(a,f)});d(document).bind("mouseup.AutoFill",function(f){a._fnFillerFinish.call(a,
f)});this.s.screen.y=b.pageY;this.s.screen.height=d(window).height();this.s.screen.scrollTop=d(document).scrollTop();if(this.s.dt.oScroll.sY!==""){this.s.scroller.top=d(this.s.dt.nTable.parentNode).offset().top;this.s.scroller.bottom=this.s.scroller.top+d(this.s.dt.nTable.parentNode).height()}this.s.screen.interval=setInterval(function(){var f=d(document).scrollTop();a.s.screen.y+=f-a.s.screen.scrollTop;if(a.s.screen.height-a.s.screen.y+f<50)d("html, body").animate({scrollTop:f+50},240,"linear");
else a.s.screen.y-f<50&&d("html, body").animate({scrollTop:f-50},240,"linear");if(a.s.dt.oScroll.sY!=="")if(a.s.screen.y>a.s.scroller.bottom-50)d(a.s.dt.nTable.parentNode).animate({scrollTop:d(a.s.dt.nTable.parentNode).scrollTop()+50},240,"linear");else a.s.screen.y<a.s.scroller.top+50&&d(a.s.dt.nTable.parentNode).animate({scrollTop:d(a.s.dt.nTable.parentNode).scrollTop()-50},240,"linear")},250)},_fnFillerDragMove:function(b){if(b.target&&b.target.nodeName.toUpperCase()=="TD"&&b.target!=this.s.drag.endTd){var a=
this._fnTargetCoords(b.target);if(a.x!=this.s.drag.startX){b.target=d("tbody>tr:eq("+a.y+")>td:eq("+this.s.drag.startX+")",this.dom.table)[0];a=this._fnTargetCoords(b.target)}if(a.x==this.s.drag.startX){var c=this.s.drag;c.endTd=b.target;a.y>=this.s.drag.startY?this._fnUpdateBorder(c.startTd,c.endTd):this._fnUpdateBorder(c.endTd,c.startTd);this._fnFillerPosition(b.target)}}this.s.screen.y=b.pageY;this.s.screen.scrollTop=d(document).scrollTop();if(this.s.dt.oScroll.sY!==""){this.s.scroller.scrollTop=
d(this.s.dt.nTable.parentNode).scrollTop();this.s.scroller.top=d(this.s.dt.nTable.parentNode).offset().top;this.s.scroller.bottom=this.s.scroller.top+d(this.s.dt.nTable.parentNode).height()}},_fnFillerFinish:function(){d(document).unbind("mousemove.AutoFill");d(document).unbind("mouseup.AutoFill");this.dom.borderTop.style.display="none";this.dom.borderRight.style.display="none";this.dom.borderBottom.style.display="none";this.dom.borderLeft.style.display="none";this.s.drag.dragging=false;clearInterval(this.s.screen.interval);
var b=this._fnTargetCoords(this.s.drag.startTd),a=this._fnTargetCoords(this.s.drag.endTd),c=[],e;if(b.y<=a.y){e=true;for(i=b.y;i<=a.y;i++)c.push(d("tbody>tr:eq("+i+")>td:eq("+b.x+")",this.dom.table)[0])}else{e=false;for(i=b.y;i>=a.y;i--)c.push(d("tbody>tr:eq("+i+")>td:eq("+b.x+")",this.dom.table)[0])}b=b.x;a=false;var f=[],h=this._fnPrep(this.s.columns[b].read.call(this,this.s.drag.startTd));i=0;for(iLen=c.length;i<iLen;i++){if(i==iLen-1)a=true;var g=this.s.columns[b].read.call(this,c[i]),j=this.s.columns[b].step.call(this,
c[i],h,i,e,"SPRYMEDIA_AUTOFILL_STEPPER");this.s.columns[b].write.call(this,c[i],j,a);f.push({td:c[i],newValue:j,oldValue:g})}this.s.columns[b].complete!==null&&this.s.columns[b].complete.call(this,f)},_fnPrep:function(b){var a=b.match(/[\d\.]+/g);if(!a||a.length===0)return{iStart:0,sStr:b,sPostFix:""};var c=a[a.length-1];a=parseInt(c,10);var e=new RegExp("^(.*)"+c+"(.*?)$");c=c.match(/\./)?"."+c.split(".")[1]:"";return{iStart:a,sStr:b.replace(e,"$1SPRYMEDIA_AUTOFILL_STEPPER$2"),sPostFix:c}},_fnStep:function(b,
a,c,e,f){b=e?a.iStart+c:a.iStart-c;if(isNaN(b))b="";return a.sStr.replace(f,b+a.sPostFix)},_fnReadCell:function(b){var a=d("input",b);if(a.length>0)return d(a).val();a=d("select",b);if(a.length>0)return d(a).val();return b.innerHTML},_fnWriteCell:function(b,a,c){var e=d("input",b);if(e.length>0)d(e).val(a);else{e=d("select",b);if(e.length>0)d(e).val(a);else{b=this.s.dt.oInstance.fnGetPosition(b);this.s.dt.oInstance.fnUpdate(a,b[0],b[2],c)}}},_fnFillerDisplay:function(b){if(!this.s.drag.dragging)if(this.s.columns[this._fnTargetCoords(b.target).x].enable){var a=
this.dom.filler;if(b.type=="mouseover"){this.dom.currentTarget=b.target;this._fnFillerPosition(b.target);a.style.display="block"}else if(!b.relatedTarget||!b.relatedTarget.className.match(/AutoFill/))a.style.display="none"}},_fnFillerPosition:function(b){var a=d(b).offset(),c=this.dom.filler;c.style.top=a.top-this.s.filler.height/2-1+d(b).outerHeight()+"px";c.style.left=a.left-this.s.filler.width/2-1+d(b).outerWidth()+"px"}};AutoFill.prototype.CLASS="AutoFill";AutoFill.VERSION="1.1.1";AutoFill.prototype.VERSION=
"1.1.1"})(jQuery);
@@ -0,0 +1,496 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="shortcut icon" type="image/ico" href="http://www.sprymedia.co.uk/media/images/favicon.ico">
<title>AutoFill example</title>
<style type="text/css" title="currentStyle">
@import "../../media/css/demo_page.css";
@import "../../media/css/demo_table.css";
@import "media/css/AutoFill.css";
</style>
<script type="text/javascript" charset="utf-8" src="../../media/js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../../media/js/jquery.dataTables.js"></script>
<script type="text/javascript" charset="utf-8" src="media/js/AutoFill.js"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready( function () {
var oTable = $('#example').dataTable({
"sScrollY": 200,
"bScrollCollapse": true,
"bPaginate": false
});
new AutoFill( oTable );
} );
</script>
</head>
<body id="dt_example">
<div id="container">
<div class="full_width big">
AutoFill example with scrolling
</div>
<h1>Preamble</h1>
<p>
When dragging an AutoFill handle, the table (if DataTables scrolling is enabled) or the window will be automatically scrolled, as you approach the edge of the scrolling component. The example below shows the effect with DataTables scrolling (and also window if needed).
</p>
<h1>Live example</h1>
<form>
<div id="demo">
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
<thead>
<tr>
<th>Rendering engine</th>
<th>Browser</th>
<th>Platform(s)</th>
<th>Engine version</th>
<th>CSS grade</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Rendering engine</th>
<th>Browser</th>
<th>Platform(s)</th>
<th>Engine version</th>
<th>CSS grade</th>
</tr>
</tfoot>
<tbody>
<tr class="odd_gradeX">
<td>Trident</td>
<td>Internet Explorer 4.0</td>
<td>Win 95+ (Entity: &amp;)</td>
<td class="center">4</td>
<td class="center">X</td>
</tr>
<tr class="even_gradeC">
<td>Trident</td>
<td>Internet Explorer 5.0</td>
<td>Win 95+</td>
<td class="center">5</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeA">
<td>Trident</td>
<td>Internet Explorer 5.5</td>
<td>Win 95+</td>
<td class="center">5.5</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Trident</td>
<td>Internet Explorer 6</td>
<td>Win 98+</td>
<td class="center">6</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Trident</td>
<td>Internet Explorer 7</td>
<td>Win XP SP2+</td>
<td class="center">7</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Trident</td>
<td>AOL browser (AOL desktop)</td>
<td>Win XP</td>
<td class="center">6</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko (UTF-8: $¢€)</td>
<td>Firefox 1.0</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Firefox 1.5</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Firefox 2.0</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Firefox 3.0</td>
<td>Win 2k+ / OSX.3+</td>
<td class="center">1.9</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Camino 1.0</td>
<td>OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Camino 1.5</td>
<td>OSX.3+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Netscape 7.2</td>
<td>Win 95+ / Mac OS 8.6-9.2</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Netscape Browser 8</td>
<td>Win 98SE+</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Netscape Navigator 9</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.0</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Mozilla 1.1</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.1</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.2</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.2</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Mozilla 1.3</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.3</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.4</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.4</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Mozilla 1.5</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.5</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.6</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.6</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Mozilla 1.7</td>
<td>Win 98+ / OSX.1+</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Mozilla 1.8</td>
<td>Win 98+ / OSX.1+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Gecko</td>
<td>Seamonkey 1.1</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Gecko</td>
<td>Epiphany 2.20</td>
<td>Gnome</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Webkit</td>
<td>Safari 1.2</td>
<td>OSX.3</td>
<td class="center">125.5</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Webkit</td>
<td>Safari 1.3</td>
<td>OSX.3</td>
<td class="center">312.8</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Webkit</td>
<td>Safari 2.0</td>
<td>OSX.4+</td>
<td class="center">419.3</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Webkit</td>
<td>Safari 3.0</td>
<td>OSX.4+</td>
<td class="center">522.1</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Webkit</td>
<td>OmniWeb 5.5</td>
<td>OSX.4+</td>
<td class="center">420</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Webkit</td>
<td>iPod Touch / iPhone</td>
<td>iPod</td>
<td class="center">420.1</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Webkit</td>
<td>S60</td>
<td>S60</td>
<td class="center">413</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Opera 7.0</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Opera 7.5</td>
<td>Win 95+ / OSX.2+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Opera 8.0</td>
<td>Win 95+ / OSX.2+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Opera 8.5</td>
<td>Win 95+ / OSX.2+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Opera 9.0</td>
<td>Win 95+ / OSX.3+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Opera 9.2</td>
<td>Win 88+ / OSX.3+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Opera 9.5</td>
<td>Win 88+ / OSX.3+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Opera for Wii</td>
<td>Wii</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>Presto</td>
<td>Nokia N800</td>
<td>N800</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeA">
<td>Presto</td>
<td>Nintendo DS browser</td>
<td>Nintendo DS</td>
<td class="center">8.5</td>
<td class="center">C/A<sup>1</sup></td>
</tr>
<tr class="even_gradeC">
<td>KHTML</td>
<td>Konqureror 3.1</td>
<td>KDE 3.1</td>
<td class="center">3.1</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeA">
<td>KHTML</td>
<td>Konqureror 3.3</td>
<td>KDE 3.3</td>
<td class="center">3.3</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeA">
<td>KHTML</td>
<td>Konqureror 3.5</td>
<td>KDE 3.5</td>
<td class="center">3.5</td>
<td class="center">A</td>
</tr>
<tr class="odd_gradeX">
<td>Tasman</td>
<td>Internet Explorer 4.5</td>
<td>Mac OS 8-9</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="even_gradeC">
<td>Tasman</td>
<td>Internet Explorer 5.1</td>
<td>Mac OS 7.6-9</td>
<td class="center">1</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeC">
<td>Tasman</td>
<td>Internet Explorer 5.2</td>
<td>Mac OS 8-X</td>
<td class="center">1</td>
<td class="center">C</td>
</tr>
<tr class="even_gradeA">
<td>Misc</td>
<td>NetFront 3.1</td>
<td>Embedded devices</td>
<td class="center">-</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeA">
<td>Misc</td>
<td>NetFront 3.4</td>
<td>Embedded devices</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="even_gradeX">
<td>Misc</td>
<td>Dillo 0.8</td>
<td>Embedded devices</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="odd_gradeX">
<td>Misc</td>
<td>Links</td>
<td>Text only</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="even_gradeX">
<td>Misc</td>
<td>Lynx</td>
<td>Text only</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="odd_gradeC">
<td>Misc</td>
<td>IE Mobile</td>
<td>Windows Mobile 6</td>
<td class="center">-</td>
<td class="center">C</td>
</tr>
<tr class="even_gradeC">
<td>Misc</td>
<td>PSP browser</td>
<td>PSP</td>
<td class="center">-</td>
<td class="center">C</td>
</tr>
<tr class="odd_gradeU">
<td>Other browsers</td>
<td>All others</td>
<td>-</td>
<td class="center">-</td>
<td class="center">U</td>
</tr>
</tbody>
</table>
</div>
</form>
<div class="spacer"></div>
<h1>Examples</h1>
<ul>
<li><a href="index.html">Basic initialisation</a></li>
<li><a href="columns.html">Selecting which columns to provide AutoFill on</a></li>
<li><a href="scrolling.html">Scrolling a DataTable using fill</a></li>
<li><a href="inputs.html">Using with input elements</a></li>
<li><a href="callbacks.html">Customisation using callback functions</a></li>
</ul>
<h1>Initialisation code</h1>
<pre>$(document).ready( function () {
var oTable = $('#example').dataTable({
"sScrollY": 200,
"bScrollCollapse": true,
"bPaginate": false
});
new AutoFill( oTable );
} );</pre>
<div id="footer" style="text-align:center;">
<span style="font-size:10px;">
AutoFill and DataTables &copy; Allan Jardine 2009-2010.<br>
</span>
</div>
</div>
</body>
</html>