PageRenderTime 118ms CodeModel.GetById 19ms app.highlight 84ms RepoModel.GetById 0ms app.codeStats 1ms

/actions/src/main/webapp/scripts/jquery.dataTables.min.js

http://alageospatialportal.googlecode.com/
JavaScript | 2474 lines | 2398 code | 61 blank | 15 comment | 648 complexity | 39305027339885c85e3ba02d4f779517 MD5 | raw file

Large files files are truncated, but you can click here to view the full file

   1/*
   2 * File:        jquery.dataTables.min.js
   3 * Version:     1.8.2
   4 * Author:      Allan Jardine (www.sprymedia.co.uk)
   5 * Info:        www.datatables.net
   6 * 
   7 * Copyright 2008-2011 Allan Jardine, all rights reserved.
   8 *
   9 * This source file is free software, under either the GPL v2 license or a
  10 * BSD style license, as supplied with this software.
  11 * 
  12 * This source file is distributed in the hope that it will be useful, but 
  13 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
  14 * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
  15 */
  16(function (i, za, p) {
  17    i.fn.dataTableSettings = [];
  18    var D = i.fn.dataTableSettings;
  19    i.fn.dataTableExt = {};
  20    var n = i.fn.dataTableExt;
  21    n.sVersion = "1.8.2";
  22    n.sErrMode = "alert";
  23    n.iApiIndex = 0;
  24    n.oApi = {};
  25    n.afnFiltering = [];
  26    n.aoFeatures = [];
  27    n.ofnSearch = {};
  28    n.afnSortData = [];
  29    n.oStdClasses = {sPagePrevEnabled: "paginate_enabled_previous", sPagePrevDisabled: "paginate_disabled_previous", sPageNextEnabled: "paginate_enabled_next", sPageNextDisabled: "paginate_disabled_next", sPageJUINext: "", sPageJUIPrev: "", sPageButton: "paginate_button", sPageButtonActive: "paginate_active",
  30        sPageButtonStaticDisabled: "paginate_button paginate_button_disabled", sPageFirst: "first", sPagePrevious: "previous", sPageNext: "next", sPageLast: "last", sStripeOdd: "odd", sStripeEven: "even", sRowEmpty: "dataTables_empty", sWrapper: "dataTables_wrapper", sFilter: "dataTables_filter", sInfo: "dataTables_info", sPaging: "dataTables_paginate paging_", sLength: "dataTables_length", sProcessing: "dataTables_processing", sSortAsc: "sorting_asc", sSortDesc: "sorting_desc", sSortable: "sorting", sSortableAsc: "sorting_asc_disabled", sSortableDesc: "sorting_desc_disabled",
  31        sSortableNone: "sorting_disabled", sSortColumn: "sorting_", sSortJUIAsc: "", sSortJUIDesc: "", sSortJUI: "", sSortJUIAscAllowed: "", sSortJUIDescAllowed: "", sSortJUIWrapper: "", sSortIcon: "", sScrollWrapper: "dataTables_scroll", sScrollHead: "dataTables_scrollHead", sScrollHeadInner: "dataTables_scrollHeadInner", sScrollBody: "dataTables_scrollBody", sScrollFoot: "dataTables_scrollFoot", sScrollFootInner: "dataTables_scrollFootInner", sFooterTH: ""};
  32    n.oJUIClasses = {sPagePrevEnabled: "fg-button ui-button ui-state-default ui-corner-left",
  33        sPagePrevDisabled: "fg-button ui-button ui-state-default ui-corner-left ui-state-disabled", sPageNextEnabled: "fg-button ui-button ui-state-default ui-corner-right", sPageNextDisabled: "fg-button ui-button ui-state-default ui-corner-right ui-state-disabled", sPageJUINext: "ui-icon ui-icon-circle-arrow-e", sPageJUIPrev: "ui-icon ui-icon-circle-arrow-w", sPageButton: "fg-button ui-button ui-state-default", sPageButtonActive: "fg-button ui-button ui-state-default ui-state-disabled", sPageButtonStaticDisabled: "fg-button ui-button ui-state-default ui-state-disabled",
  34        sPageFirst: "first ui-corner-tl ui-corner-bl", sPagePrevious: "previous", sPageNext: "next", sPageLast: "last ui-corner-tr ui-corner-br", sStripeOdd: "odd", sStripeEven: "even", sRowEmpty: "dataTables_empty", sWrapper: "dataTables_wrapper", sFilter: "dataTables_filter", sInfo: "dataTables_info", sPaging: "dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_", sLength: "dataTables_length", sProcessing: "dataTables_processing", sSortAsc: "ui-state-default", sSortDesc: "ui-state-default", sSortable: "ui-state-default",
  35        sSortableAsc: "ui-state-default", sSortableDesc: "ui-state-default", sSortableNone: "ui-state-default", sSortColumn: "sorting_", sSortJUIAsc: "css_right ui-icon ui-icon-triangle-1-n", sSortJUIDesc: "css_right ui-icon ui-icon-triangle-1-s", sSortJUI: "css_right ui-icon ui-icon-carat-2-n-s", sSortJUIAscAllowed: "css_right ui-icon ui-icon-carat-1-n", sSortJUIDescAllowed: "css_right ui-icon ui-icon-carat-1-s", sSortJUIWrapper: "DataTables_sort_wrapper", sSortIcon: "DataTables_sort_icon", sScrollWrapper: "dataTables_scroll",
  36        sScrollHead: "dataTables_scrollHead ui-state-default", sScrollHeadInner: "dataTables_scrollHeadInner", sScrollBody: "dataTables_scrollBody", sScrollFoot: "dataTables_scrollFoot ui-state-default", sScrollFootInner: "dataTables_scrollFootInner", sFooterTH: "ui-state-default"};
  37    n.oPagination = {two_button: {fnInit: function (g, l, s) {
  38        var t, w, y;
  39        if (g.bJUI) {
  40            t = p.createElement("a");
  41            w = p.createElement("a");
  42            y = p.createElement("span");
  43            y.className = g.oClasses.sPageJUINext;
  44            w.appendChild(y);
  45            y = p.createElement("span");
  46            y.className = g.oClasses.sPageJUIPrev;
  47            t.appendChild(y)
  48        } else {
  49            t = p.createElement("div");
  50            w = p.createElement("div")
  51        }
  52        t.className = g.oClasses.sPagePrevDisabled;
  53        w.className = g.oClasses.sPageNextDisabled;
  54        t.title = g.oLanguage.oPaginate.sPrevious;
  55        w.title = g.oLanguage.oPaginate.sNext;
  56        l.appendChild(t);
  57        l.appendChild(w);
  58        i(t).bind("click.DT", function () {
  59            g.oApi._fnPageChange(g, "previous") && s(g)
  60        });
  61        i(w).bind("click.DT", function () {
  62            g.oApi._fnPageChange(g, "next") && s(g)
  63        });
  64        i(t).bind("selectstart.DT", function () {
  65            return false
  66        });
  67        i(w).bind("selectstart.DT", function () {
  68            return false
  69        });
  70        if (g.sTableId !== "" && typeof g.aanFeatures.p == "undefined") {
  71            l.setAttribute("id", g.sTableId + "_paginate");
  72            t.setAttribute("id", g.sTableId + "_previous");
  73            w.setAttribute("id", g.sTableId + "_next")
  74        }
  75    }, fnUpdate: function (g) {
  76        if (g.aanFeatures.p)for (var l = g.aanFeatures.p, s = 0, t = l.length; s < t; s++)if (l[s].childNodes.length !== 0) {
  77            l[s].childNodes[0].className = g._iDisplayStart === 0 ? g.oClasses.sPagePrevDisabled : g.oClasses.sPagePrevEnabled;
  78            l[s].childNodes[1].className = g.fnDisplayEnd() == g.fnRecordsDisplay() ? g.oClasses.sPageNextDisabled :
  79                g.oClasses.sPageNextEnabled
  80        }
  81    }}, iFullNumbersShowPages: 5, full_numbers: {fnInit: function (g, l, s) {
  82        var t = p.createElement("span"), w = p.createElement("span"), y = p.createElement("span"), F = p.createElement("span"), x = p.createElement("span");
  83        t.innerHTML = g.oLanguage.oPaginate.sFirst;
  84        w.innerHTML = g.oLanguage.oPaginate.sPrevious;
  85        F.innerHTML = g.oLanguage.oPaginate.sNext;
  86        x.innerHTML = g.oLanguage.oPaginate.sLast;
  87        var v = g.oClasses;
  88        t.className = v.sPageButton + " " + v.sPageFirst;
  89        w.className = v.sPageButton + " " + v.sPagePrevious;
  90        F.className =
  91            v.sPageButton + " " + v.sPageNext;
  92        x.className = v.sPageButton + " " + v.sPageLast;
  93        l.appendChild(t);
  94        l.appendChild(w);
  95        l.appendChild(y);
  96        l.appendChild(F);
  97        l.appendChild(x);
  98        i(t).bind("click.DT", function () {
  99            g.oApi._fnPageChange(g, "first") && s(g)
 100        });
 101        i(w).bind("click.DT", function () {
 102            g.oApi._fnPageChange(g, "previous") && s(g)
 103        });
 104        i(F).bind("click.DT", function () {
 105            g.oApi._fnPageChange(g, "next") && s(g)
 106        });
 107        i(x).bind("click.DT", function () {
 108            g.oApi._fnPageChange(g, "last") && s(g)
 109        });
 110        i("span", l).bind("mousedown.DT",function () {
 111            return false
 112        }).bind("selectstart.DT",
 113            function () {
 114                return false
 115            });
 116        if (g.sTableId !== "" && typeof g.aanFeatures.p == "undefined") {
 117            l.setAttribute("id", g.sTableId + "_paginate");
 118            t.setAttribute("id", g.sTableId + "_first");
 119            w.setAttribute("id", g.sTableId + "_previous");
 120            F.setAttribute("id", g.sTableId + "_next");
 121            x.setAttribute("id", g.sTableId + "_last")
 122        }
 123    }, fnUpdate: function (g, l) {
 124        if (g.aanFeatures.p) {
 125            var s = n.oPagination.iFullNumbersShowPages, t = Math.floor(s / 2), w = Math.ceil(g.fnRecordsDisplay() / g._iDisplayLength), y = Math.ceil(g._iDisplayStart / g._iDisplayLength) + 1, F =
 126                "", x, v = g.oClasses;
 127            if (w < s) {
 128                t = 1;
 129                x = w
 130            } else if (y <= t) {
 131                t = 1;
 132                x = s
 133            } else if (y >= w - t) {
 134                t = w - s + 1;
 135                x = w
 136            } else {
 137                t = y - Math.ceil(s / 2) + 1;
 138                x = t + s - 1
 139            }
 140            for (s = t; s <= x; s++)F += y != s ? '<span class="' + v.sPageButton + '">' + s + "</span>" : '<span class="' + v.sPageButtonActive + '">' + s + "</span>";
 141            x = g.aanFeatures.p;
 142            var z, $ = function (M) {
 143                g._iDisplayStart = (this.innerHTML * 1 - 1) * g._iDisplayLength;
 144                l(g);
 145                M.preventDefault()
 146            }, X = function () {
 147                return false
 148            };
 149            s = 0;
 150            for (t = x.length; s < t; s++)if (x[s].childNodes.length !== 0) {
 151                z = i("span:eq(2)", x[s]);
 152                z.html(F);
 153                i("span", z).bind("click.DT",
 154                    $).bind("mousedown.DT", X).bind("selectstart.DT", X);
 155                z = x[s].getElementsByTagName("span");
 156                z = [z[0], z[1], z[z.length - 2], z[z.length - 1]];
 157                i(z).removeClass(v.sPageButton + " " + v.sPageButtonActive + " " + v.sPageButtonStaticDisabled);
 158                if (y == 1) {
 159                    z[0].className += " " + v.sPageButtonStaticDisabled;
 160                    z[1].className += " " + v.sPageButtonStaticDisabled
 161                } else {
 162                    z[0].className += " " + v.sPageButton;
 163                    z[1].className += " " + v.sPageButton
 164                }
 165                if (w === 0 || y == w || g._iDisplayLength == -1) {
 166                    z[2].className += " " + v.sPageButtonStaticDisabled;
 167                    z[3].className += " " +
 168                        v.sPageButtonStaticDisabled
 169                } else {
 170                    z[2].className += " " + v.sPageButton;
 171                    z[3].className += " " + v.sPageButton
 172                }
 173            }
 174        }
 175    }}};
 176    n.oSort = {"string-asc": function (g, l) {
 177        if (typeof g != "string")g = "";
 178        if (typeof l != "string")l = "";
 179        g = g.toLowerCase();
 180        l = l.toLowerCase();
 181        return g < l ? -1 : g > l ? 1 : 0
 182    }, "string-desc": function (g, l) {
 183        if (typeof g != "string")g = "";
 184        if (typeof l != "string")l = "";
 185        g = g.toLowerCase();
 186        l = l.toLowerCase();
 187        return g < l ? 1 : g > l ? -1 : 0
 188    }, "html-asc": function (g, l) {
 189        g = g.replace(/<.*?>/g, "").toLowerCase();
 190        l = l.replace(/<.*?>/g, "").toLowerCase();
 191        return g <
 192            l ? -1 : g > l ? 1 : 0
 193    }, "html-desc": function (g, l) {
 194        g = g.replace(/<.*?>/g, "").toLowerCase();
 195        l = l.replace(/<.*?>/g, "").toLowerCase();
 196        return g < l ? 1 : g > l ? -1 : 0
 197    }, "date-asc": function (g, l) {
 198        g = Date.parse(g);
 199        l = Date.parse(l);
 200        if (isNaN(g) || g === "")g = Date.parse("01/01/1970 00:00:00");
 201        if (isNaN(l) || l === "")l = Date.parse("01/01/1970 00:00:00");
 202        return g - l
 203    }, "date-desc": function (g, l) {
 204        g = Date.parse(g);
 205        l = Date.parse(l);
 206        if (isNaN(g) || g === "")g = Date.parse("01/01/1970 00:00:00");
 207        if (isNaN(l) || l === "")l = Date.parse("01/01/1970 00:00:00");
 208        return l -
 209            g
 210    }, "numeric-asc": function (g, l) {
 211        return(g == "-" || g === "" ? 0 : g * 1) - (l == "-" || l === "" ? 0 : l * 1)
 212    }, "numeric-desc": function (g, l) {
 213        return(l == "-" || l === "" ? 0 : l * 1) - (g == "-" || g === "" ? 0 : g * 1)
 214    }};
 215    n.aTypes = [function (g) {
 216        if (typeof g == "number")return"numeric"; else if (typeof g != "string")return null;
 217        var l, s = false;
 218        l = g.charAt(0);
 219        if ("0123456789-".indexOf(l) == -1)return null;
 220        for (var t = 1; t < g.length; t++) {
 221            l = g.charAt(t);
 222            if ("0123456789.".indexOf(l) == -1)return null;
 223            if (l == ".") {
 224                if (s)return null;
 225                s = true
 226            }
 227        }
 228        return"numeric"
 229    }, function (g) {
 230        var l = Date.parse(g);
 231        if (l !== null && !isNaN(l) || typeof g == "string" && g.length === 0)return"date";
 232        return null
 233    }, function (g) {
 234        if (typeof g == "string" && g.indexOf("<") != -1 && g.indexOf(">") != -1)return"html";
 235        return null
 236    }];
 237    n.fnVersionCheck = function (g) {
 238        var l = function (x, v) {
 239            for (; x.length < v;)x += "0";
 240            return x
 241        }, s = n.sVersion.split(".");
 242        g = g.split(".");
 243        for (var t = "", w = "", y = 0, F = g.length; y < F; y++) {
 244            t += l(s[y], 3);
 245            w += l(g[y], 3)
 246        }
 247        return parseInt(t, 10) >= parseInt(w, 10)
 248    };
 249    n._oExternConfig = {iNextUnique: 0};
 250    i.fn.dataTable = function (g) {
 251        function l() {
 252            this.fnRecordsTotal =
 253                function () {
 254                    return this.oFeatures.bServerSide ? parseInt(this._iRecordsTotal, 10) : this.aiDisplayMaster.length
 255                };
 256            this.fnRecordsDisplay = function () {
 257                return this.oFeatures.bServerSide ? parseInt(this._iRecordsDisplay, 10) : this.aiDisplay.length
 258            };
 259            this.fnDisplayEnd = function () {
 260                return this.oFeatures.bServerSide ? this.oFeatures.bPaginate === false || this._iDisplayLength == -1 ? this._iDisplayStart + this.aiDisplay.length : Math.min(this._iDisplayStart + this._iDisplayLength, this._iRecordsDisplay) : this._iDisplayEnd
 261            };
 262            this.sInstance =
 263                this.oInstance = null;
 264            this.oFeatures = {bPaginate: true, bLengthChange: true, bFilter: true, bSort: true, bInfo: true, bAutoWidth: true, bProcessing: false, bSortClasses: true, bStateSave: false, bServerSide: false, bDeferRender: false};
 265            this.oScroll = {sX: "", sXInner: "", sY: "", bCollapse: false, bInfinite: false, iLoadGap: 100, iBarWidth: 0, bAutoCss: true};
 266            this.aanFeatures = [];
 267            this.oLanguage = {sProcessing: "Processing...", sLengthMenu: "Show _MENU_ entries", sZeroRecords: "No matching records found", sEmptyTable: "No data available in table",
 268                sLoadingRecords: "Loading...", sInfo: "Showing _START_ to _END_ of _TOTAL_ entries", sInfoEmpty: "Showing 0 to 0 of 0 entries", sInfoFiltered: "(filtered from _MAX_ total entries)", sInfoPostFix: "", sInfoThousands: ",", sSearch: "Search:", sUrl: "", oPaginate: {sFirst: "First", sPrevious: "Previous", sNext: "Next", sLast: "Last"}, fnInfoCallback: null};
 269            this.aoData = [];
 270            this.aiDisplay = [];
 271            this.aiDisplayMaster = [];
 272            this.aoColumns = [];
 273            this.aoHeader = [];
 274            this.aoFooter = [];
 275            this.iNextId = 0;
 276            this.asDataSearch = [];
 277            this.oPreviousSearch = {sSearch: "",
 278                bRegex: false, bSmart: true};
 279            this.aoPreSearchCols = [];
 280            this.aaSorting = [
 281                [0, "asc", 0]
 282            ];
 283            this.aaSortingFixed = null;
 284            this.asStripeClasses = [];
 285            this.asDestroyStripes = [];
 286            this.sDestroyWidth = 0;
 287            this.fnFooterCallback = this.fnHeaderCallback = this.fnRowCallback = null;
 288            this.aoDrawCallback = [];
 289            this.fnInitComplete = this.fnPreDrawCallback = null;
 290            this.sTableId = "";
 291            this.nTableWrapper = this.nTBody = this.nTFoot = this.nTHead = this.nTable = null;
 292            this.bInitialised = this.bDeferLoading = false;
 293            this.aoOpenRows = [];
 294            this.sDom = "lfrtip";
 295            this.sPaginationType =
 296                "two_button";
 297            this.iCookieDuration = 7200;
 298            this.sCookiePrefix = "SpryMedia_DataTables_";
 299            this.fnCookieCallback = null;
 300            this.aoStateSave = [];
 301            this.aoStateLoad = [];
 302            this.sAjaxSource = this.oLoadedState = null;
 303            this.sAjaxDataProp = "aaData";
 304            this.bAjaxDataGet = true;
 305            this.jqXHR = null;
 306            this.fnServerData = function (a, b, c, d) {
 307                d.jqXHR = i.ajax({url: a, data: b, success: function (f) {
 308                    i(d.oInstance).trigger("xhr", d);
 309                    c(f)
 310                }, dataType: "json", cache: false, error: function (f, e) {
 311                    e == "parsererror" && alert("DataTables warning: JSON data from server could not be parsed. This is caused by a JSON formatting error.")
 312                }})
 313            };
 314            this.aoServerParams = [];
 315            this.fnFormatNumber = function (a) {
 316                if (a < 1E3)return a; else {
 317                    var b = a + "";
 318                    a = b.split("");
 319                    var c = "";
 320                    b = b.length;
 321                    for (var d = 0; d < b; d++) {
 322                        if (d % 3 === 0 && d !== 0)c = this.oLanguage.sInfoThousands + c;
 323                        c = a[b - d - 1] + c
 324                    }
 325                }
 326                return c
 327            };
 328            this.aLengthMenu = [10, 25, 50, 100];
 329            this.bDrawing = this.iDraw = 0;
 330            this.iDrawError = -1;
 331            this._iDisplayLength = 10;
 332            this._iDisplayStart = 0;
 333            this._iDisplayEnd = 10;
 334            this._iRecordsDisplay = this._iRecordsTotal = 0;
 335            this.bJUI = false;
 336            this.oClasses = n.oStdClasses;
 337            this.bSortCellsTop = this.bSorted = this.bFiltered = false;
 338            this.oInit = null;
 339            this.aoDestroyCallback = []
 340        }
 341
 342        function s(a) {
 343            return function () {
 344                var b = [A(this[n.iApiIndex])].concat(Array.prototype.slice.call(arguments));
 345                return n.oApi[a].apply(this, b)
 346            }
 347        }
 348
 349        function t(a) {
 350            var b, c, d = a.iInitDisplayStart;
 351            if (a.bInitialised === false)setTimeout(function () {
 352                t(a)
 353            }, 200); else {
 354                Aa(a);
 355                X(a);
 356                M(a, a.aoHeader);
 357                a.nTFoot && M(a, a.aoFooter);
 358                K(a, true);
 359                a.oFeatures.bAutoWidth && ga(a);
 360                b = 0;
 361                for (c = a.aoColumns.length; b < c; b++)if (a.aoColumns[b].sWidth !== null)a.aoColumns[b].nTh.style.width = q(a.aoColumns[b].sWidth);
 362                if (a.oFeatures.bSort)R(a); else if (a.oFeatures.bFilter)N(a, a.oPreviousSearch); else {
 363                    a.aiDisplay = a.aiDisplayMaster.slice();
 364                    E(a);
 365                    C(a)
 366                }
 367                if (a.sAjaxSource !== null && !a.oFeatures.bServerSide) {
 368                    c = [];
 369                    ha(a, c);
 370                    a.fnServerData.call(a.oInstance, a.sAjaxSource, c, function (f) {
 371                        var e = f;
 372                        if (a.sAjaxDataProp !== "")e = aa(a.sAjaxDataProp)(f);
 373                        for (b = 0; b < e.length; b++)v(a, e[b]);
 374                        a.iInitDisplayStart = d;
 375                        if (a.oFeatures.bSort)R(a); else {
 376                            a.aiDisplay = a.aiDisplayMaster.slice();
 377                            E(a);
 378                            C(a)
 379                        }
 380                        K(a, false);
 381                        w(a, f)
 382                    }, a)
 383                } else if (!a.oFeatures.bServerSide) {
 384                    K(a,
 385                        false);
 386                    w(a)
 387                }
 388            }
 389        }
 390
 391        function w(a, b) {
 392            a._bInitComplete = true;
 393            if (typeof a.fnInitComplete == "function")typeof b != "undefined" ? a.fnInitComplete.call(a.oInstance, a, b) : a.fnInitComplete.call(a.oInstance, a)
 394        }
 395
 396        function y(a, b, c) {
 397            a.oLanguage = i.extend(true, a.oLanguage, b);
 398            typeof b.sEmptyTable == "undefined" && typeof b.sZeroRecords != "undefined" && o(a.oLanguage, b, "sZeroRecords", "sEmptyTable");
 399            typeof b.sLoadingRecords == "undefined" && typeof b.sZeroRecords != "undefined" && o(a.oLanguage, b, "sZeroRecords", "sLoadingRecords");
 400            c && t(a)
 401        }
 402
 403        function F(a, b) {
 404            var c = a.aoColumns.length;
 405            b = {sType: null, _bAutoType: true, bVisible: true, bSearchable: true, bSortable: true, asSorting: ["asc", "desc"], sSortingClass: a.oClasses.sSortable, sSortingClassJUI: a.oClasses.sSortJUI, sTitle: b ? b.innerHTML : "", sName: "", sWidth: null, sWidthOrig: null, sClass: null, fnRender: null, bUseRendered: true, iDataSort: c, mDataProp: c, fnGetData: null, fnSetData: null, sSortDataType: "std", sDefaultContent: null, sContentPadding: "", nTh: b ? b : p.createElement("th"), nTf: null};
 406            a.aoColumns.push(b);
 407            if (typeof a.aoPreSearchCols[c] ==
 408                "undefined" || a.aoPreSearchCols[c] === null)a.aoPreSearchCols[c] = {sSearch: "", bRegex: false, bSmart: true}; else {
 409                if (typeof a.aoPreSearchCols[c].bRegex == "undefined")a.aoPreSearchCols[c].bRegex = true;
 410                if (typeof a.aoPreSearchCols[c].bSmart == "undefined")a.aoPreSearchCols[c].bSmart = true
 411            }
 412            x(a, c, null)
 413        }
 414
 415        function x(a, b, c) {
 416            b = a.aoColumns[b];
 417            if (typeof c != "undefined" && c !== null) {
 418                if (typeof c.sType != "undefined") {
 419                    b.sType = c.sType;
 420                    b._bAutoType = false
 421                }
 422                o(b, c, "bVisible");
 423                o(b, c, "bSearchable");
 424                o(b, c, "bSortable");
 425                o(b, c, "sTitle");
 426                o(b,
 427                    c, "sName");
 428                o(b, c, "sWidth");
 429                o(b, c, "sWidth", "sWidthOrig");
 430                o(b, c, "sClass");
 431                o(b, c, "fnRender");
 432                o(b, c, "bUseRendered");
 433                o(b, c, "iDataSort");
 434                o(b, c, "mDataProp");
 435                o(b, c, "asSorting");
 436                o(b, c, "sSortDataType");
 437                o(b, c, "sDefaultContent");
 438                o(b, c, "sContentPadding")
 439            }
 440            b.fnGetData = aa(b.mDataProp);
 441            b.fnSetData = Ba(b.mDataProp);
 442            if (!a.oFeatures.bSort)b.bSortable = false;
 443            if (!b.bSortable || i.inArray("asc", b.asSorting) == -1 && i.inArray("desc", b.asSorting) == -1) {
 444                b.sSortingClass = a.oClasses.sSortableNone;
 445                b.sSortingClassJUI = ""
 446            } else if (b.bSortable ||
 447                i.inArray("asc", b.asSorting) == -1 && i.inArray("desc", b.asSorting) == -1) {
 448                b.sSortingClass = a.oClasses.sSortable;
 449                b.sSortingClassJUI = a.oClasses.sSortJUI
 450            } else if (i.inArray("asc", b.asSorting) != -1 && i.inArray("desc", b.asSorting) == -1) {
 451                b.sSortingClass = a.oClasses.sSortableAsc;
 452                b.sSortingClassJUI = a.oClasses.sSortJUIAscAllowed
 453            } else if (i.inArray("asc", b.asSorting) == -1 && i.inArray("desc", b.asSorting) != -1) {
 454                b.sSortingClass = a.oClasses.sSortableDesc;
 455                b.sSortingClassJUI = a.oClasses.sSortJUIDescAllowed
 456            }
 457        }
 458
 459        function v(a, b) {
 460            var c;
 461            c = i.isArray(b) ? b.slice() : i.extend(true, {}, b);
 462            b = a.aoData.length;
 463            var d = {nTr: null, _iId: a.iNextId++, _aData: c, _anHidden: [], _sRowStripe: ""};
 464            a.aoData.push(d);
 465            for (var f, e = 0, h = a.aoColumns.length; e < h; e++) {
 466                c = a.aoColumns[e];
 467                typeof c.fnRender == "function" && c.bUseRendered && c.mDataProp !== null && O(a, b, e, c.fnRender({iDataRow: b, iDataColumn: e, aData: d._aData, oSettings: a}));
 468                if (c._bAutoType && c.sType != "string") {
 469                    f = G(a, b, e, "type");
 470                    if (f !== null && f !== "") {
 471                        f = ia(f);
 472                        if (c.sType === null)c.sType = f; else if (c.sType != f && c.sType != "html")c.sType =
 473                            "string"
 474                    }
 475                }
 476            }
 477            a.aiDisplayMaster.push(b);
 478            a.oFeatures.bDeferRender || z(a, b);
 479            return b
 480        }
 481
 482        function z(a, b) {
 483            var c = a.aoData[b], d;
 484            if (c.nTr === null) {
 485                c.nTr = p.createElement("tr");
 486                typeof c._aData.DT_RowId != "undefined" && c.nTr.setAttribute("id", c._aData.DT_RowId);
 487                typeof c._aData.DT_RowClass != "undefined" && i(c.nTr).addClass(c._aData.DT_RowClass);
 488                for (var f = 0, e = a.aoColumns.length; f < e; f++) {
 489                    var h = a.aoColumns[f];
 490                    d = p.createElement("td");
 491                    d.innerHTML = typeof h.fnRender == "function" && (!h.bUseRendered || h.mDataProp === null) ? h.fnRender({iDataRow: b,
 492                        iDataColumn: f, aData: c._aData, oSettings: a}) : G(a, b, f, "display");
 493                    if (h.sClass !== null)d.className = h.sClass;
 494                    if (h.bVisible) {
 495                        c.nTr.appendChild(d);
 496                        c._anHidden[f] = null
 497                    } else c._anHidden[f] = d
 498                }
 499            }
 500        }
 501
 502        function $(a) {
 503            var b, c, d, f, e, h, j, k, m;
 504            if (a.bDeferLoading || a.sAjaxSource === null) {
 505                j = a.nTBody.childNodes;
 506                b = 0;
 507                for (c = j.length; b < c; b++)if (j[b].nodeName.toUpperCase() == "TR") {
 508                    k = a.aoData.length;
 509                    a.aoData.push({nTr: j[b], _iId: a.iNextId++, _aData: [], _anHidden: [], _sRowStripe: ""});
 510                    a.aiDisplayMaster.push(k);
 511                    h = j[b].childNodes;
 512                    d = e = 0;
 513                    for (f =
 514                             h.length; d < f; d++) {
 515                        m = h[d].nodeName.toUpperCase();
 516                        if (m == "TD" || m == "TH") {
 517                            O(a, k, e, i.trim(h[d].innerHTML));
 518                            e++
 519                        }
 520                    }
 521                }
 522            }
 523            j = ba(a);
 524            h = [];
 525            b = 0;
 526            for (c = j.length; b < c; b++) {
 527                d = 0;
 528                for (f = j[b].childNodes.length; d < f; d++) {
 529                    e = j[b].childNodes[d];
 530                    m = e.nodeName.toUpperCase();
 531                    if (m == "TD" || m == "TH")h.push(e)
 532                }
 533            }
 534            h.length != j.length * a.aoColumns.length && J(a, 1, "Unexpected number of TD elements. Expected " + j.length * a.aoColumns.length + " and got " + h.length + ". DataTables does not support rowspan / colspan in the table body, and there must be one cell for each row/column combination.");
 535            d = 0;
 536            for (f = a.aoColumns.length; d < f; d++) {
 537                if (a.aoColumns[d].sTitle === null)a.aoColumns[d].sTitle = a.aoColumns[d].nTh.innerHTML;
 538                j = a.aoColumns[d]._bAutoType;
 539                m = typeof a.aoColumns[d].fnRender == "function";
 540                e = a.aoColumns[d].sClass !== null;
 541                k = a.aoColumns[d].bVisible;
 542                var u, r;
 543                if (j || m || e || !k) {
 544                    b = 0;
 545                    for (c = a.aoData.length; b < c; b++) {
 546                        u = h[b * f + d];
 547                        if (j && a.aoColumns[d].sType != "string") {
 548                            r = G(a, b, d, "type");
 549                            if (r !== "") {
 550                                r = ia(r);
 551                                if (a.aoColumns[d].sType === null)a.aoColumns[d].sType = r; else if (a.aoColumns[d].sType != r && a.aoColumns[d].sType !=
 552                                    "html")a.aoColumns[d].sType = "string"
 553                            }
 554                        }
 555                        if (m) {
 556                            r = a.aoColumns[d].fnRender({iDataRow: b, iDataColumn: d, aData: a.aoData[b]._aData, oSettings: a});
 557                            u.innerHTML = r;
 558                            a.aoColumns[d].bUseRendered && O(a, b, d, r)
 559                        }
 560                        if (e)u.className += " " + a.aoColumns[d].sClass;
 561                        if (k)a.aoData[b]._anHidden[d] = null; else {
 562                            a.aoData[b]._anHidden[d] = u;
 563                            u.parentNode.removeChild(u)
 564                        }
 565                    }
 566                }
 567            }
 568        }
 569
 570        function X(a) {
 571            var b, c, d;
 572            a.nTHead.getElementsByTagName("tr");
 573            if (a.nTHead.getElementsByTagName("th").length !== 0) {
 574                b = 0;
 575                for (d = a.aoColumns.length; b < d; b++) {
 576                    c = a.aoColumns[b].nTh;
 577                    a.aoColumns[b].sClass !== null && i(c).addClass(a.aoColumns[b].sClass);
 578                    if (a.aoColumns[b].sTitle != c.innerHTML)c.innerHTML = a.aoColumns[b].sTitle
 579                }
 580            } else {
 581                var f = p.createElement("tr");
 582                b = 0;
 583                for (d = a.aoColumns.length; b < d; b++) {
 584                    c = a.aoColumns[b].nTh;
 585                    c.innerHTML = a.aoColumns[b].sTitle;
 586                    a.aoColumns[b].sClass !== null && i(c).addClass(a.aoColumns[b].sClass);
 587                    f.appendChild(c)
 588                }
 589                i(a.nTHead).html("")[0].appendChild(f);
 590                Y(a.aoHeader, a.nTHead)
 591            }
 592            if (a.bJUI) {
 593                b = 0;
 594                for (d = a.aoColumns.length; b < d; b++) {
 595                    c = a.aoColumns[b].nTh;
 596                    f = p.createElement("div");
 597                    f.className = a.oClasses.sSortJUIWrapper;
 598                    i(c).contents().appendTo(f);
 599                    var e = p.createElement("span");
 600                    e.className = a.oClasses.sSortIcon;
 601                    f.appendChild(e);
 602                    c.appendChild(f)
 603                }
 604            }
 605            d = function () {
 606                this.onselectstart = function () {
 607                    return false
 608                };
 609                return false
 610            };
 611            if (a.oFeatures.bSort)for (b = 0; b < a.aoColumns.length; b++)if (a.aoColumns[b].bSortable !== false) {
 612                ja(a, a.aoColumns[b].nTh, b);
 613                i(a.aoColumns[b].nTh).bind("mousedown.DT", d)
 614            } else i(a.aoColumns[b].nTh).addClass(a.oClasses.sSortableNone);
 615            a.oClasses.sFooterTH !== "" && i(a.nTFoot).children("tr").children("th").addClass(a.oClasses.sFooterTH);
 616            if (a.nTFoot !== null) {
 617                c = S(a, null, a.aoFooter);
 618                b = 0;
 619                for (d = a.aoColumns.length; b < d; b++)if (typeof c[b] != "undefined")a.aoColumns[b].nTf = c[b]
 620            }
 621        }
 622
 623        function M(a, b, c) {
 624            var d, f, e, h = [], j = [], k = a.aoColumns.length;
 625            if (typeof c == "undefined")c = false;
 626            d = 0;
 627            for (f = b.length; d < f; d++) {
 628                h[d] = b[d].slice();
 629                h[d].nTr = b[d].nTr;
 630                for (e = k - 1; e >= 0; e--)!a.aoColumns[e].bVisible && !c && h[d].splice(e, 1);
 631                j.push([])
 632            }
 633            d = 0;
 634            for (f = h.length; d < f; d++) {
 635                if (h[d].nTr) {
 636                    a = 0;
 637                    for (e = h[d].nTr.childNodes.length; a < e; a++)h[d].nTr.removeChild(h[d].nTr.childNodes[0])
 638                }
 639                e = 0;
 640                for (b = h[d].length; e < b; e++) {
 641                    k = c = 1;
 642                    if (typeof j[d][e] == "undefined") {
 643                        h[d].nTr.appendChild(h[d][e].cell);
 644                        for (j[d][e] = 1; typeof h[d + c] != "undefined" && h[d][e].cell == h[d + c][e].cell;) {
 645                            j[d + c][e] = 1;
 646                            c++
 647                        }
 648                        for (; typeof h[d][e + k] != "undefined" && h[d][e].cell == h[d][e + k].cell;) {
 649                            for (a = 0; a < c; a++)j[d + a][e + k] = 1;
 650                            k++
 651                        }
 652                        h[d][e].cell.rowSpan = c;
 653                        h[d][e].cell.colSpan = k
 654                    }
 655                }
 656            }
 657        }
 658
 659        function C(a) {
 660            var b, c, d = [], f = 0, e = false;
 661            b = a.asStripeClasses.length;
 662            c = a.aoOpenRows.length;
 663            if (!(a.fnPreDrawCallback !== null && a.fnPreDrawCallback.call(a.oInstance, a) ===
 664                false)) {
 665                a.bDrawing = true;
 666                if (typeof a.iInitDisplayStart != "undefined" && a.iInitDisplayStart != -1) {
 667                    a._iDisplayStart = a.oFeatures.bServerSide ? a.iInitDisplayStart : a.iInitDisplayStart >= a.fnRecordsDisplay() ? 0 : a.iInitDisplayStart;
 668                    a.iInitDisplayStart = -1;
 669                    E(a)
 670                }
 671                if (a.bDeferLoading) {
 672                    a.bDeferLoading = false;
 673                    a.iDraw++
 674                } else if (a.oFeatures.bServerSide) {
 675                    if (!a.bDestroying && !Ca(a))return
 676                } else a.iDraw++;
 677                if (a.aiDisplay.length !== 0) {
 678                    var h = a._iDisplayStart, j = a._iDisplayEnd;
 679                    if (a.oFeatures.bServerSide) {
 680                        h = 0;
 681                        j = a.aoData.length
 682                    }
 683                    for (h =
 684                             h; h < j; h++) {
 685                        var k = a.aoData[a.aiDisplay[h]];
 686                        k.nTr === null && z(a, a.aiDisplay[h]);
 687                        var m = k.nTr;
 688                        if (b !== 0) {
 689                            var u = a.asStripeClasses[f % b];
 690                            if (k._sRowStripe != u) {
 691                                i(m).removeClass(k._sRowStripe).addClass(u);
 692                                k._sRowStripe = u
 693                            }
 694                        }
 695                        if (typeof a.fnRowCallback == "function") {
 696                            m = a.fnRowCallback.call(a.oInstance, m, a.aoData[a.aiDisplay[h]]._aData, f, h);
 697                            if (!m && !e) {
 698                                J(a, 0, "A node was not returned by fnRowCallback");
 699                                e = true
 700                            }
 701                        }
 702                        d.push(m);
 703                        f++;
 704                        if (c !== 0)for (k = 0; k < c; k++)m == a.aoOpenRows[k].nParent && d.push(a.aoOpenRows[k].nTr)
 705                    }
 706                } else {
 707                    d[0] = p.createElement("tr");
 708                    if (typeof a.asStripeClasses[0] != "undefined")d[0].className = a.asStripeClasses[0];
 709                    e = a.oLanguage.sZeroRecords.replace("_MAX_", a.fnFormatNumber(a.fnRecordsTotal()));
 710                    if (a.iDraw == 1 && a.sAjaxSource !== null && !a.oFeatures.bServerSide)e = a.oLanguage.sLoadingRecords; else if (typeof a.oLanguage.sEmptyTable != "undefined" && a.fnRecordsTotal() === 0)e = a.oLanguage.sEmptyTable;
 711                    b = p.createElement("td");
 712                    b.setAttribute("valign", "top");
 713                    b.colSpan = Z(a);
 714                    b.className = a.oClasses.sRowEmpty;
 715                    b.innerHTML = e;
 716                    d[f].appendChild(b)
 717                }
 718                typeof a.fnHeaderCallback ==
 719                    "function" && a.fnHeaderCallback.call(a.oInstance, i(a.nTHead).children("tr")[0], ca(a), a._iDisplayStart, a.fnDisplayEnd(), a.aiDisplay);
 720                typeof a.fnFooterCallback == "function" && a.fnFooterCallback.call(a.oInstance, i(a.nTFoot).children("tr")[0], ca(a), a._iDisplayStart, a.fnDisplayEnd(), a.aiDisplay);
 721                f = p.createDocumentFragment();
 722                b = p.createDocumentFragment();
 723                if (a.nTBody) {
 724                    e = a.nTBody.parentNode;
 725                    b.appendChild(a.nTBody);
 726                    if (!a.oScroll.bInfinite || !a._bInitComplete || a.bSorted || a.bFiltered) {
 727                        c = a.nTBody.childNodes;
 728                        for (b =
 729                                 c.length - 1; b >= 0; b--)c[b].parentNode.removeChild(c[b])
 730                    }
 731                    b = 0;
 732                    for (c = d.length; b < c; b++)f.appendChild(d[b]);
 733                    a.nTBody.appendChild(f);
 734                    e !== null && e.appendChild(a.nTBody)
 735                }
 736                for (b = a.aoDrawCallback.length - 1; b >= 0; b--)a.aoDrawCallback[b].fn.call(a.oInstance, a);
 737                i(a.oInstance).trigger("draw", a);
 738                a.bSorted = false;
 739                a.bFiltered = false;
 740                a.bDrawing = false;
 741                if (a.oFeatures.bServerSide) {
 742                    K(a, false);
 743                    typeof a._bInitComplete == "undefined" && w(a)
 744                }
 745            }
 746        }
 747
 748        function da(a) {
 749            if (a.oFeatures.bSort)R(a, a.oPreviousSearch); else if (a.oFeatures.bFilter)N(a,
 750                a.oPreviousSearch); else {
 751                E(a);
 752                C(a)
 753            }
 754        }
 755
 756        function Ca(a) {
 757            if (a.bAjaxDataGet) {
 758                a.iDraw++;
 759                K(a, true);
 760                var b = Da(a);
 761                ha(a, b);
 762                a.fnServerData.call(a.oInstance, a.sAjaxSource, b, function (c) {
 763                    Ea(a, c)
 764                }, a);
 765                return false
 766            } else return true
 767        }
 768
 769        function Da(a) {
 770            var b = a.aoColumns.length, c = [], d, f;
 771            c.push({name: "sEcho", value: a.iDraw});
 772            c.push({name: "iColumns", value: b});
 773            c.push({name: "sColumns", value: ka(a)});
 774            c.push({name: "iDisplayStart", value: a._iDisplayStart});
 775            c.push({name: "iDisplayLength", value: a.oFeatures.bPaginate !== false ? a._iDisplayLength :
 776                -1});
 777            for (f = 0; f < b; f++) {
 778                d = a.aoColumns[f].mDataProp;
 779                c.push({name: "mDataProp_" + f, value: typeof d == "function" ? "function" : d})
 780            }
 781            if (a.oFeatures.bFilter !== false) {
 782                c.push({name: "sSearch", value: a.oPreviousSearch.sSearch});
 783                c.push({name: "bRegex", value: a.oPreviousSearch.bRegex});
 784                for (f = 0; f < b; f++) {
 785                    c.push({name: "sSearch_" + f, value: a.aoPreSearchCols[f].sSearch});
 786                    c.push({name: "bRegex_" + f, value: a.aoPreSearchCols[f].bRegex});
 787                    c.push({name: "bSearchable_" + f, value: a.aoColumns[f].bSearchable})
 788                }
 789            }
 790            if (a.oFeatures.bSort !== false) {
 791                d =
 792                    a.aaSortingFixed !== null ? a.aaSortingFixed.length : 0;
 793                var e = a.aaSorting.length;
 794                c.push({name: "iSortingCols", value: d + e});
 795                for (f = 0; f < d; f++) {
 796                    c.push({name: "iSortCol_" + f, value: a.aaSortingFixed[f][0]});
 797                    c.push({name: "sSortDir_" + f, value: a.aaSortingFixed[f][1]})
 798                }
 799                for (f = 0; f < e; f++) {
 800                    c.push({name: "iSortCol_" + (f + d), value: a.aaSorting[f][0]});
 801                    c.push({name: "sSortDir_" + (f + d), value: a.aaSorting[f][1]})
 802                }
 803                for (f = 0; f < b; f++)c.push({name: "bSortable_" + f, value: a.aoColumns[f].bSortable})
 804            }
 805            return c
 806        }
 807
 808        function ha(a, b) {
 809            for (var c = 0, d = a.aoServerParams.length; c <
 810                d; c++)a.aoServerParams[c].fn.call(a.oInstance, b)
 811        }
 812
 813        function Ea(a, b) {
 814            if (typeof b.sEcho != "undefined")if (b.sEcho * 1 < a.iDraw)return; else a.iDraw = b.sEcho * 1;
 815            if (!a.oScroll.bInfinite || a.oScroll.bInfinite && (a.bSorted || a.bFiltered))la(a);
 816            a._iRecordsTotal = b.iTotalRecords;
 817            a._iRecordsDisplay = b.iTotalDisplayRecords;
 818            var c = ka(a);
 819            if (c = typeof b.sColumns != "undefined" && c !== "" && b.sColumns != c)var d = Fa(a, b.sColumns);
 820            b = aa(a.sAjaxDataProp)(b);
 821            for (var f = 0, e = b.length; f < e; f++)if (c) {
 822                for (var h = [], j = 0, k = a.aoColumns.length; j < k; j++)h.push(b[f][d[j]]);
 823                v(a, h)
 824            } else v(a, b[f]);
 825            a.aiDisplay = a.aiDisplayMaster.slice();
 826            a.bAjaxDataGet = false;
 827            C(a);
 828            a.bAjaxDataGet = true;
 829            K(a, false)
 830        }
 831
 832        function Aa(a) {
 833            var b = p.createElement("div");
 834            a.nTable.parentNode.insertBefore(b, a.nTable);
 835            a.nTableWrapper = p.createElement("div");
 836            a.nTableWrapper.className = a.oClasses.sWrapper;
 837            a.sTableId !== "" && a.nTableWrapper.setAttribute("id", a.sTableId + "_wrapper");
 838            a.nTableReinsertBefore = a.nTable.nextSibling;
 839            for (var c = a.nTableWrapper, d = a.sDom.split(""), f, e, h, j, k, m, u, r = 0; r < d.length; r++) {
 840                e = 0;
 841                h = d[r];
 842                if (h ==
 843                    "<") {
 844                    j = p.createElement("div");
 845                    k = d[r + 1];
 846                    if (k == "'" || k == '"') {
 847                        m = "";
 848                        for (u = 2; d[r + u] != k;) {
 849                            m += d[r + u];
 850                            u++
 851                        }
 852                        if (m == "H")m = "fg-toolbar ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix"; else if (m == "F")m = "fg-toolbar ui-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix";
 853                        if (m.indexOf(".") != -1) {
 854                            k = m.split(".");
 855                            j.setAttribute("id", k[0].substr(1, k[0].length - 1));
 856                            j.className = k[1]
 857                        } else if (m.charAt(0) == "#")j.setAttribute("id", m.substr(1, m.length - 1)); else j.className = m;
 858                        r += u
 859                    }
 860                    c.appendChild(j);
 861                    c = j
 862                } else if (h == ">")c = c.parentNode; else if (h == "l" && a.oFeatures.bPaginate && a.oFeatures.bLengthChange) {
 863                    f = Ga(a);
 864                    e = 1
 865                } else if (h == "f" && a.oFeatures.bFilter) {
 866                    f = Ha(a);
 867                    e = 1
 868                } else if (h == "r" && a.oFeatures.bProcessing) {
 869                    f = Ia(a);
 870                    e = 1
 871                } else if (h == "t") {
 872                    f = Ja(a);
 873                    e = 1
 874                } else if (h == "i" && a.oFeatures.bInfo) {
 875                    f = Ka(a);
 876                    e = 1
 877                } else if (h == "p" && a.oFeatures.bPaginate) {
 878                    f = La(a);
 879                    e = 1
 880                } else if (n.aoFeatures.length !== 0) {
 881                    j = n.aoFeatures;
 882                    u = 0;
 883                    for (k = j.length; u < k; u++)if (h == j[u].cFeature) {
 884                        if (f = j[u].fnInit(a))e = 1;
 885                        break
 886                    }
 887                }
 888                if (e == 1 && f !== null) {
 889                    if (typeof a.aanFeatures[h] !=
 890                        "object")a.aanFeatures[h] = [];
 891                    a.aanFeatures[h].push(f);
 892                    c.appendChild(f)
 893                }
 894            }
 895            b.parentNode.replaceChild(a.nTableWrapper, b)
 896        }
 897
 898        function Ja(a) {
 899            if (a.oScroll.sX === "" && a.oScroll.sY === "")return a.nTable;
 900            var b = p.createElement("div"), c = p.createElement("div"), d = p.createElement("div"), f = p.createElement("div"), e = p.createElement("div"), h = p.createElement("div"), j = a.nTable.cloneNode(false), k = a.nTable.cloneNode(false), m = a.nTable.getElementsByTagName("thead")[0], u = a.nTable.getElementsByTagName("tfoot").length === 0 ? null : a.nTable.getElementsByTagName("tfoot")[0],
 901                r = typeof g.bJQueryUI != "undefined" && g.bJQueryUI ? n.oJUIClasses : n.oStdClasses;
 902            c.appendChild(d);
 903            e.appendChild(h);
 904            f.appendChild(a.nTable);
 905            b.appendChild(c);
 906            b.appendChild(f);
 907            d.appendChild(j);
 908            j.appendChild(m);
 909            if (u !== null) {
 910                b.appendChild(e);
 911                h.appendChild(k);
 912                k.appendChild(u)
 913            }
 914            b.className = r.sScrollWrapper;
 915            c.className = r.sScrollHead;
 916            d.className = r.sScrollHeadInner;
 917            f.className = r.sScrollBody;
 918            e.className = r.sScrollFoot;
 919            h.className = r.sScrollFootInner;
 920            if (a.oScroll.bAutoCss) {
 921                c.style.overflow = "hidden";
 922                c.style.position = "relative";
 923                e.style.overflow = "hidden";
 924                f.style.overflow = "auto"
 925            }
 926            c.style.border = "0";
 927            c.style.width = "100%";
 928            e.style.border = "0";
 929            d.style.width = "150%";
 930            j.removeAttribute("id");
 931            j.style.marginLeft = "0";
 932            a.nTable.style.marginLeft = "0";
 933            if (u !== null) {
 934                k.removeAttribute("id");
 935                k.style.marginLeft = "0"
 936            }
 937            d = i(a.nTable).children("caption");
 938            h = 0;
 939            for (k = d.length; h < k; h++)j.appendChild(d[h]);
 940            if (a.oScroll.sX !== "") {
 941                c.style.width = q(a.oScroll.sX);
 942                f.style.width = q(a.oScroll.sX);
 943                if (u !== null)e.style.width = q(a.oScroll.sX);
 944                i(f).scroll(function () {
 945                    c.scrollLeft =
 946                        this.scrollLeft;
 947                    if (u !== null)e.scrollLeft = this.scrollLeft
 948                })
 949            }
 950            if (a.oScroll.sY !== "")f.style.height = q(a.oScroll.sY);
 951            a.aoDrawCallback.push({fn: Ma, sName: "scrolling"});
 952            a.oScroll.bInfinite && i(f).scroll(function () {
 953                if (!a.bDrawing)if (i(this).scrollTop() + i(this).height() > i(a.nTable).height() - a.oScroll.iLoadGap)if (a.fnDisplayEnd() < a.fnRecordsDisplay()) {
 954                    ma(a, "next");
 955                    E(a);
 956                    C(a)
 957                }
 958            });
 959            a.nScrollHead = c;
 960            a.nScrollFoot = e;
 961            return b
 962        }
 963
 964        function Ma(a) {
 965            var b = a.nScrollHead.getElementsByTagName("div")[0], c = b.getElementsByTagName("table")[0],
 966                d = a.nTable.parentNode, f, e, h, j, k, m, u, r, H = [], L = a.nTFoot !== null ? a.nScrollFoot.getElementsByTagName("div")[0] : null, T = a.nTFoot !== null ? L.getElementsByTagName("table")[0] : null, B = i.browser.msie && i.browser.version <= 7;
 967            h = a.nTable.getElementsByTagName("thead");
 968            h.length > 0 && a.nTable.removeChild(h[0]);
 969            if (a.nTFoot !== null) {
 970                k = a.nTable.getElementsByTagName("tfoot");
 971                k.length > 0 && a.nTable.removeChild(k[0])
 972            }
 973            h = a.nTHead.cloneNode(true);
 974            a.nTable.insertBefore(h, a.nTable.childNodes[0]);
 975            if (a.nTFoot !== null) {
 976                k = a.nTFoot.cloneNode(true);
 977                a.nTable.insertBefore(k, a.nTable.childNodes[1])
 978            }
 979            if (a.oScroll.sX === "") {
 980                d.style.width = "100%";
 981                b.parentNode.style.width = "100%"
 982            }
 983            var U = S(a, h);
 984            f = 0;
 985            for (e = U.length; f < e; f++) {
 986                u = Na(a, f);
 987                U[f].style.width = a.aoColumns[u].sWidth
 988            }
 989            a.nTFoot !== null && P(function (I) {
 990                I.style.width = ""
 991            }, k.getElementsByTagName("tr"));
 992            f = i(a.nTable).outerWidth();
 993            if (a.oScroll.sX === "") {
 994                a.nTable.style.width = "100%";
 995                if (B && (d.scrollHeight > d.offsetHeight || i(d).css("overflow-y") == "scroll"))a.nTable.style.width = q(i(a.nTable).outerWidth() - a.oScroll.iBarWidth)
 996            } else if (a.oScroll.sXInner !==
 997                "")a.nTable.style.width = q(a.oScroll.sXInner); else if (f == i(d).width() && i(d).height() < i(a.nTable).height()) {
 998                a.nTable.style.width = q(f - a.oScroll.iBarWidth);
 999                if (i(a.nTable).outerWidth() > f - a.oScroll.iBarWidth)a.nTable.style.width = q(f)
1000            } else a.nTable.style.width = q(f);
1001            f = i(a.nTable).outerWidth();
1002            e = a.nTHead.getElementsByTagName("tr");
1003            h = h.getElementsByTagName("tr");
1004            P(function (I, na) {
1005                m = I.style;
1006                m.paddingTop = "0";
1007                m.paddingBottom = "0";
1008    

Large files files are truncated, but you can click here to view the full file