export declare const NSExportCode = "var nsModuleExport = function(root,name,prototype)\r\n\t{\r\n\t\tif(typeof exports === 'object' && typeof module === 'object')\r\n\t\t{\r\n\t\t\tmodule.exports[name] = prototype;\r\n\t\t}\r\n\t\telse if (typeof define === \"function\" && define.amd)\r\n\t\t{\r\n\t\t\tdefine(name,[], function () {return prototype;});\r\n\t\t}\r\n\t\telse if(typeof exports === 'object')\r\n\t\t{\r\n\t\t\texports[name] = prototype;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\troot[name] = prototype;\r\n\t\t}\r\n\t};var nsIsWeb = function(root)\r\n\t{\r\n\t\tif(typeof exports === 'object' && typeof module === 'object')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse if (typeof define === \"function\" && define.amd)\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse if(typeof exports === 'object')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\treturn true;\r\n\t\t}\r\n\t};if(!nsIsWeb())\r\n\t\t{\r\nvar nsutilRef = require('./nsUtil.min.js');\r\nvar NSUtil = nsutilRef.NSUtil;\r\nvar nscontainerbaseRef = require('./nsContainerBase.min.js');\r\nvar nsExtendPrototype = nscontainerbaseRef.nsExtendPrototype;\r\nvar NSContainerBase = nscontainerbaseRef.NSContainerBase;\r\nvar svgRef = require('./nsSVG.min.js');\r\nvar NSSvg = svgRef.NSSvg;\r\nvar NSSvgShapes = svgRef.NSSvgShapes;\r\nvar plugginsRef = require('./nsPluggins.min.js');\r\nvar nsTextEditor = plugginsRef.nsTextEditor;\r\nvar nsTextAreaEditor = plugginsRef.nsTextAreaEditor;\r\nvar NSCellSelection = plugginsRef.NSCellSelection;\r\nvar NSTableCellNavigator = plugginsRef.NSTableCellNavigator;\r\nvar dateutilRef = require('./nsDateUtil.min.js');\r\nvar NSDateUtil = dateutilRef.NSDateUtil;\r\n\r\n\t\t}\r\nvar NSExport = (function()\r\n{\r\n\t//DONOT REMOVE: taken from https://gist.github.com/sevir/3946819\r\n\tif (window && !window.atob && !window.btoa)\r\n\t{\r\n\t ( function( window ) {\r\n\t    var _PADCHAR = \"=\",\r\n\t      _ALPHA = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n\t   \r\n\t    function _getbyte64( s, i ) { \r\n\t      var idx = _ALPHA.indexOf( s.charAt( i ) );\r\n\t   \r\n\t      if ( idx === -1 ) {\r\n\t        throw \"Cannot decode base64\";\r\n\t      }\r\n\t   \r\n\t      return idx;\r\n\t    }\r\n\t   \r\n\t    function _decode( s ) {\r\n\t      var pads = 0,\r\n\t        i,\r\n\t        b10,\r\n\t        imax = s.length,\r\n\t        x = [];\r\n\t   \r\n\t      s = String( s );\r\n\t   \r\n\t      if ( imax === 0 ) {\r\n\t        return s;\r\n\t      }\r\n\t   \r\n\t      if ( imax % 4 !== 0 ) {\r\n\t        throw \"Cannot decode base64\";\r\n\t      }\r\n\t   \r\n\t      if ( s.charAt( imax - 1 ) === _PADCHAR ) {\r\n\t        pads = 1;\r\n\t   \r\n\t        if ( s.charAt( imax - 2 ) === _PADCHAR ) {\r\n\t          pads = 2;\r\n\t        }\r\n\t   \r\n\t        // either way, we want to ignore this last block\r\n\t        imax -= 4;\r\n\t      }\r\n\t   \r\n\t      for ( i = 0; i < imax; i += 4 ) {\r\n\t        b10 = ( _getbyte64( s, i ) << 18 ) | ( _getbyte64( s, i + 1 ) << 12 ) | ( _getbyte64( s, i + 2 ) << 6 ) | _getbyte64( s, i + 3 );\r\n\t        x.push( String.fromCharCode( b10 >> 16, ( b10 >> 8 ) & 0xff, b10 & 0xff ) );\r\n\t      }\r\n\t   \r\n\t      switch ( pads ) {\r\n\t        case 1:\r\n\t          b10 = ( _getbyte64( s, i ) << 18 ) | ( _getbyte64( s, i + 1 ) << 12 ) | ( _getbyte64( s, i + 2 ) << 6 );\r\n\t          x.push( String.fromCharCode( b10 >> 16, ( b10 >> 8 ) & 0xff ) );\r\n\t          break;\r\n\t   \r\n\t        case 2:\r\n\t          b10 = ( _getbyte64( s, i ) << 18) | ( _getbyte64( s, i + 1 ) << 12 );\r\n\t          x.push( String.fromCharCode( b10 >> 16 ) );\r\n\t          break;\r\n\t      }\r\n\t   \r\n\t      return x.join( \"\" );\r\n\t    }\r\n\t   \r\n\t    function _getbyte( s, i ) {\r\n\t      var x = s.charCodeAt( i );\r\n\t   \r\n\t      if ( x > 255 ) {\r\n\t        throw \"INVALID_CHARACTER_ERR: DOM Exception 5\";\r\n\t      }\r\n\t   \r\n\t      return x;\r\n\t    }\r\n\t   \r\n\t    function _encode( s ) {\r\n\t      if ( arguments.length !== 1 ) {\r\n\t        throw \"SyntaxError: exactly one argument required\";\r\n\t      }\r\n\t   \r\n\t      s = String( s );\r\n\t   \r\n\t      var i,\r\n\t        b10,\r\n\t        x = [],\r\n\t        imax = s.length - s.length % 3;\r\n\t   \r\n\t      if ( s.length === 0 ) {\r\n\t        return s;\r\n\t      }\r\n\t   \r\n\t      for ( i = 0; i < imax; i += 3 ) {\r\n\t        b10 = ( _getbyte( s, i ) << 16 ) | ( _getbyte( s, i + 1 ) << 8 ) | _getbyte( s, i + 2 );\r\n\t        x.push( _ALPHA.charAt( b10 >> 18 ) );\r\n\t        x.push( _ALPHA.charAt( ( b10 >> 12 ) & 0x3F ) );\r\n\t        x.push( _ALPHA.charAt( ( b10 >> 6 ) & 0x3f ) );\r\n\t        x.push( _ALPHA.charAt( b10 & 0x3f ) );\r\n\t      }\r\n\t   \r\n\t      switch ( s.length - imax ) {\r\n\t        case 1:\r\n\t          b10 = _getbyte( s, i ) << 16;\r\n\t          x.push( _ALPHA.charAt( b10 >> 18 ) + _ALPHA.charAt( ( b10 >> 12 ) & 0x3F ) + _PADCHAR + _PADCHAR );\r\n\t          break;\r\n\t   \r\n\t        case 2:\r\n\t          b10 = ( _getbyte( s, i ) << 16 ) | ( _getbyte( s, i + 1 ) << 8 );\r\n\t          x.push( _ALPHA.charAt( b10 >> 18 ) + _ALPHA.charAt( ( b10 >> 12 ) & 0x3F ) + _ALPHA.charAt( ( b10 >> 6 ) & 0x3f ) + _PADCHAR );\r\n\t          break;\r\n\t      }\r\n\t   \r\n\t      return x.join(\"\");\r\n\t    }\r\n\t\r\n\t    window.btoa = _encode;\r\n\t    window.atoa = _decode;\r\n\t   \r\n\t  })( window );\r\n\t}\r\n\t\r\n\t\"use strict\"; \r\n\tfunction NSExport(grid,fileName,extPath,ignoreColumn) \r\n\t{\r\n\t\tthis.__grid = grid;\r\n\t\tthis.__fileName = fileName;\r\n\t\tthis.__ignoreColumn = ignoreColumn;\r\n\t\tthis.__extFilePath = extPath ? extPath : \"../lib/com/ext\";\r\n\t\tthis.util = new NSUtil();\r\n\t\tthis.__defaultDelimiter = \",\";\r\n\t\tthis.__defaultNewLine = \"\\r\\n\";\r\n\t\tthis.__externalScriptLoad = {jspdf:false,html2canvas:false};\r\n\t}\r\n\t\r\n\t//Orientation: portrait or landscape\r\n\tNSExport.prototype.word = function(setting) \r\n\t{\r\n\t\tif(setting)\r\n\t\t{\r\n\t\t\tif(setting.type === \"doc\")\r\n\t\t\t{\r\n\t\t\t\tvar docSetting = {appType:\"doc\",extension:\"doc\",event:setting.event,orientation:setting.orientation,element:setting.element,pageBreakTag:setting.pageBreakTag,headerFooterCss:\"\",startHtml:\"\",endHtml:\"\"};\r\n\t\t\t\tif(setting.hasHeaderOrFooter)\r\n\t            {\r\n\t            \tdocSetting.headerFooterCss = setting.headerFooterCss || \"\";\r\n\t            \tdocSetting.startHtml = setting.startHtml || \"\";\r\n\t            \tdocSetting.endHtml = setting.endHtml || \"\";\r\n\t            }\r\n\t\t\t\tif(setting.enablePageNumber)\r\n\t\t\t\t{\r\n\t\t\t\t\tdocSetting.headerFooterCss += \"p.MsoHeader, li.MsoHeader, div.MsoHeader{     margin:0in;     margin-top:.0001pt;     mso-pagination:widow-orphan;     tab-stops:center 3.0in right 6.0in; } p.MsoFooter, li.MsoFooter, div.MsoFooter{     margin:0in 0in 1in 0in;     margin-bottom:.0001pt;     mso-pagination:widow-orphan;     tab-stops:center 3.0in right 6.0in; } .footer {     font-size: 9pt; } @page Section1{     size:8.5in 11.0in;     margin:0.5in 0.5in 0.5in 0.5in;     mso-header-margin:0.5in;     mso-header:h1;     mso-footer:f1;     mso-footer-margin:0.5in;     mso-paper-source:0; } div.Section1{     page:Section1; } table#hrdftrtbl{     margin:0in 0in 0in 9in; }\";\r\n\t\t\t\t\tdocSetting.startHtml = \"<div class=\\\"Section1\\\">\" + docSetting.startHtml; \r\n\t\t\t\t\tdocSetting.endHtml += \"<table id=\\\"hrdftrtbl\\\" border=\\\"1\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"> <tr> <td> <div style=\\\"mso-element:footer\\\" id=\\\"f1\\\"> <p class=\\\"MsoFooter\\\"> <table width=\\\"100%\\\" border=\\\"0\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"> <tr> <td align=\\\"center\\\" class=\\\"footer\\\"> <g:message code=\\\"offer.letter.page.label\\\"/> <span style=\\\"mso-field-code: PAGE \\\"></span> of <span style=\\\"mso-field-code: NUMPAGES \\\"></span> </td> </tr> </table> </p> </div> </td> </tr> </table> </div>\";;\r\n\t\t\t\t}\r\n\t\t\t\tthis.__exportOfficeTypes(docSetting);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tif(!setting.orientation || (setting.orientation !== \"portrait\" && setting.orientation !== \"landscape\"))\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.util.warning(\"NSExport\",\"Docx type value was either not valid or not in the correct format.Hence defaulting to portrait\");\r\n\t\t\t\t\tsetting.orientation = \"portrait\";\r\n\t\t\t\t}\r\n\t\t\t\tvar docSetting = {appType:\"doc\",element:setting.element,pageBreakTag:setting.pageBreakTag,headerFooterCss:\"\",startHtml:\"\",endHtml:\"\"};\r\n\t\t\t\tif(setting.hasHeaderOrFooter)\r\n\t            {\r\n\t            \tdocSetting.headerFooterCss = setting.headerFooterCss;\r\n\t            \tdocSetting.startHtml = setting.startHtml;\r\n\t            \tdocSetting.endHtml = setting.endHtml;\r\n\t            }\r\n\t\t\t\tvar htmlText = this.__getHTMLTextForOffice(docSetting);\r\n\t\t\t\tif(htmlText && htmlText.length > 0)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar fileName = this.__getFileName(\"docx\");\r\n\t\t\t\t\tvar exportSetting = {fileName:fileName,htmlSetting:{html:htmlText,htmlStyle: setting.extraStyle,loopNodesCallback: setting.loopNodesCallback},printSetting:{orientation: setting.orientation}};\r\n\t\t\t\t\tvar docxExport = new NSDocxExport(exportSetting);\r\n\t\t\t\t\tdocxExport.process();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.powerpoint = function(setting) \r\n\t{\r\n\t\tif(setting)\r\n\t\t{\r\n\t\t\tvar docSetting = {appType:\"powerpoint\",extension:\"ppt\",event:setting.event,element:setting.element};\r\n\t\t\tthis.__exportOfficeTypes(docSetting);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.excel = function(setting) \r\n\t{\r\n\t\tif(setting)\r\n\t\t{\r\n\t\t\tif(setting.type === \"xls\")\r\n\t\t\t{\r\n\t\t\t\tvar docSetting = {appType:\"excel\",extension:\"xls\",sheetName:setting.sheetName,event:setting.event,element:setting.element,properties:setting.properties};\r\n\t\t\t\tthis.__exportOfficeTypes(docSetting);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tvar objXslxExport = new this.xslxExport(this,setting.sheetName,setting.event,setting.properties);\r\n\t\t\t\tobjXslxExport.exportToxlsx();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.csv = function(event) \r\n\t{ \r\n\t\tvar csvText = this.__getTableAsString(this.__defaultDelimiter,this.__defaultNewLine);\r\n\t\tif(csvText)\r\n\t\t{\r\n\t\t\tvar uri = \"application/csv\";\r\n\t\t\tthis.__downloadFile(csvText,uri,\"csv\",event);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.xml = function(event) \r\n\t{ \r\n\t\tvar xmlText = this.__getTableAsXML();\r\n\t\tif(xmlText)\r\n\t\t{\r\n\t\t\tvar uri = \"application/xml\";\r\n\t\t\tthis.__downloadFile(xmlText,uri,\"xml\",event);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.text = function(event) \r\n\t{ \r\n\t\tvar csvText = this.__getTableAsString(this.__defaultDelimiter,this.__defaultNewLine,\"-\");\r\n\t\tif(csvText)\r\n\t\t{\r\n\t\t\tvar uri = \"application/txt\";\r\n\t\t\tthis.__downloadFile(csvText,uri,\"txt\",event);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.json = function(event) \r\n\t{ \r\n\t\tvar jsonText = this.__getTableAsJson();\r\n\t\tif(jsonText)\r\n\t\t{\r\n\t\t\tvar uri = \"application/json\";\r\n\t\t\tthis.__downloadFile(jsonText,uri,\"json\",event);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.pdf = function(event,setting) \r\n\t{ \r\n\t\tthis.__processPDF = function()\r\n\t\t{\r\n\t\t\tthis.__externalScriptLoad.jspdf = true;\r\n\t\t\tif(!setting)\r\n\t\t\t{\r\n\t\t\t\tsetting = {};\r\n\t\t\t}\r\n\t\t\tvar config = {\r\n\t\t\t\t\tfontSize: setting[\"fontSize\"] || 14,\r\n\t\t\t\t\twidth: setting[\"width\"] || 1200,\r\n\t\t\t\t\ttopMargin: setting[\"topMargin\"] || 30,\r\n\t\t\t\t\tbottomMargin: setting[\"bottomMargin\"] || 60,\r\n\t\t\t\t\tleftMargin: setting[\"leftMargin\"] || 60,\r\n\t\t\t\t\tmaxWidth: setting[\"maxWidth\"] || 550\r\n\t\t\t};\r\n\t\t\tvar divSource = this.__getStructureForPDF(config.width,config.fontSize);\r\n\t\t\tdocument.body.appendChild(divSource);\r\n\t\t\tvar pdf = new jsPDF(\"p\", \"pt\", \"ledger\");\r\n\t\t\t// we support special element handlers. Register them with jQuery-style \r\n\t\t    // ID selector for either ID or node name. (\"#iAmID\", \"div\", \"span\" etc.)\r\n\t\t    // There is no support for any other type of selectors \r\n\t\t    // (class, of compound) at this time.\r\n\t\t\tspecialElementHandlers = \r\n\t\t\t{\r\n\t\t        // element with id of \"bypass\" - jQuery style selector\r\n\t\t        '#bypassme' : function(element, renderer) {\r\n\t\t            // true = \"handled elsewhere, bypass text extraction\"\r\n\t\t            return true;\r\n\t\t        }\r\n\t\t    };\r\n\t\t    margins = {\r\n\t\t        top : config.topMargin,\r\n\t\t        bottom : config.bottomMargin,\r\n\t\t        left : config.leftMargin,\r\n\t\t        width : config.maxWidth\r\n\t\t    };\r\n\t\t    var self =  this;\r\n\t\t    // all coords and widths are in jsPDF instance's declared units\r\n\t\t    // 'inches' in this case\r\n\t\t    pdf.fromHTML(divSource, // HTML string or DOM elem ref.\r\n\t\t    margins.left, // x coord\r\n\t\t    margins.top, { // y coord\r\n\t\t        'width' : margins.width, // max width of content on PDF\r\n\t\t        'elementHandlers' : specialElementHandlers\r\n\t\t    },\r\n\t\r\n\t\t    function(dispose) {\r\n\t\t        // dispose: object with X, Y of the last line add to the PDF \r\n\t\t        //          this allow the insertion of new lines after html\r\n\t\t        pdf.save(self.__getFileName(\"pdf\"));\r\n\t\t\t\tdocument.body.removeChild(divSource);\r\n\t\t    }, margins);\r\n\t\t};\r\n\t\tif(!this.__externalScriptLoad.jspdf)\r\n\t\t{\r\n\t\t\tthis.__includeJavaScriptFile(this.__extFilePath + \"/jspdf/jspdf.min.js\",this.__processPDF.bind(this));\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.__processPDF.bind(this)();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.image = function(setting) \r\n\t{\r\n\t\tif(!setting)\r\n\t\t{\r\n\t\t\tsetting = {};\r\n\t\t}\r\n\t\tthis.__processImage = function()\r\n\t\t{\r\n\t\t\tthis.__externalScriptLoad.html2canvas = true;\r\n\t\t\tif(!setting.type || (setting.type !== \"png\" && setting.type !== \"jpeg\"))\r\n\t\t\t{\r\n\t\t\t\tthis.util.warning(\"NSExport\",\"Image type value was either not valid or not in the correct format.Hence defaulting to png\");\r\n\t\t\t\tsetting.type = \"png\";\r\n\t\t\t}\r\n\t\t\tvar imageType = \"image/\" + setting.type; \r\n\t\t\tvar divParent = this.__getStructureForImage();\r\n\t\t\tif(divParent)\r\n\t\t\t{\r\n\t\t\t\tvar nsExport = this;\r\n\t\t\t\thtml2canvas(divParent,{\r\n\t\t\t\t\tonrendered: function(canvas) {\t\t\r\n\t\t\t\t\t\t//document.body.appendChild(canvas);\r\n\t\t\t\t\t\tvar data = canvas.toDataURL(imageType);\r\n\t\t\t\t\t\tif(!data || data === \"data:,\")\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tnsExport.util.throwNSError(\"NSExport\",\"Please give table some width and height\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tnsExport.__downloadFile(data,imageType,setting.type);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\t\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tthis.util.throwNSError(\"NSExport\",\"Please add the table inside a parent Element\");\r\n\t\t\t}\r\n\t\t};\r\n\t\tif(!this.__externalScriptLoad.html2canvas)\r\n\t\t{\r\n\t\t\tthis.__includeJavaScriptFile(this.__extFilePath + \"/html2canvas/html2canvas.min.js\",this.__processImage.bind(this));\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.__processImage.bind(this)();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.__exportOfficeTypes = function(setting) \r\n\t{\r\n\t\tvar htmlText = this.__getHTMLTextForOffice(setting);\r\n\t\tif(htmlText && htmlText.length > 0)\r\n\t\t{\r\n\t\t\tvar uri = \"application/vnd.ms-\" + setting.appType;\r\n\t\t\tif(setting.extension === \"doc\")\r\n\t\t\t{\r\n\t\t\t\turi = \"application/msword\";\r\n\t\t\t}\r\n\t\t\tthis.__downloadFile(htmlText,uri,setting.extension,setting.event);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.__getHTMLTextForOffice = function(setting) \r\n\t{\r\n\t\tvar appType = setting.appType;\r\n\t\tvar element = setting.element;\r\n\t\tvar headerFooterCss = setting.headerFooterCss ? setting.headerFooterCss : \"\";\r\n\t    var startHtml = setting.startHtml ? setting.startHtml : \"\";\r\n\t    var endHtml = setting.endHtml ? setting.endHtml : \"\";\r\n\t\tvar htmlText = \"\";\r\n\t\tvar outerHTML = null;\r\n\t\tvar isTable =  false;\r\n\t\tif(element)\r\n\t\t{\r\n\t\t\touterHTML = element.outerHTML;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tvar table = this.__getTable();\r\n\t\t\tif(table)\r\n\t\t\t{\r\n\t\t\t\touterHTML = table.outerHTML;\r\n\t\t\t}\r\n\t\t\tisTable = true;\r\n\t\t}\r\n\t\tvar objValue = {};\r\n\t\tswitch(appType)\r\n\t\t{\r\n\t\t\tcase \"doc\":\r\n\t\t\t\tobjValue = this.__getHTMLTextForWord(setting,outerHTML,isTable);\r\n\t\t\tbreak;\r\n\t\t\tcase \"excel\":\r\n\t\t\t\tobjValue = this.__getHTMLTextForExcel(setting,outerHTML,isTable);\r\n\t\t\tbreak;\r\n\t\t\tcase \"powerpoint\":\r\n\t\t\t\tobjValue = this.__getHTMLTextForPpt(setting,outerHTML,isTable);\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\tif(outerHTML)\r\n\t\t{\r\n\t\t\tobjValue.style = (objValue.style) ? objValue.style : \"\";\r\n\t\t\thtmlText = '<html  xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:x=\"urn:schemas-microsoft-com:office:' + appType +'\" xmlns=\"http://www.w3.org/TR/REC-html40\">';\r\n\t\t\thtmlText += '<head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">';\r\n\t\t\thtmlText +='<!--[if gte mso 9]><xml>';\r\n\t\t\thtmlText += objValue.header;\r\n\t\t\thtmlText += '</xml><![endif]-->';\r\n\t\t    //htmlText +=\"<o:shapedefaults v:ext=\\\"edit\\\" spidmax=\\\"1026\\\"/>\";\r\n\t\t\thtmlText += '<style>' + objValue.style + headerFooterCss + '.header{mso-style-parent:style0;color:white;font-size:10.0pt;font-weight:700;font-family:Tahoma, sans-serif;mso-font-charset:0;text-align:center;background:gray;mso-pattern:black none;}</style>';\r\n\t\t\thtmlText += '</head>';\r\n\t\t\thtmlText += '<body link=\"blue\" vlink=\"purple\">';\r\n\t\t\thtmlText += startHtml + objValue.html + endHtml;\r\n\t\t\thtmlText += '</body></html>';\r\n\t\t}\r\n\t\treturn htmlText;\r\n\t};\r\n\t\r\n\tNSExport.prototype.__getHTMLTextForWord = function(setting,html,isTable)\r\n\t{\r\n\t\tvar objReturn = {header:null,style:null,html:html};\r\n\t\tobjReturn.header = \"<w:WordDocument><w:View>Print</w:View><w:Zoom>100</w:Zoom><w:DoNotOptimizeForBrowser/></w:WordDocument>\";\r\n\t\tif(isTable)\r\n\t\t{\r\n\t\t\tobjReturn.style = 'table{border-collapse: collapse;} table, th, td {border: 1px solid black;} ';\r\n\t\t}\r\n\t\tif(setting[\"pageBreakTag\"])\r\n\t\t{\r\n\t\t\tobjReturn.html = objReturn.html.replaceAll(setting[\"pageBreakTag\"],\"<br clear=all style='mso-special-character:line-break;page-break-before:always'>\");\r\n\t\t}\r\n\t\treturn objReturn;\r\n\t};\r\n\t\r\n\tNSExport.prototype.__getHTMLTextForExcel = function(setting,html,isTable)\r\n\t{\r\n\t\tvar objReturn = {header:null,style:null,html:html};\r\n\t\tobjReturn.header = \"<x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>\";\r\n\t\tobjReturn.header += (setting[\"sheetName\"] ? setting[\"sheetName\"]: ((this.__fileName ? this.__fileName : \"Sheet 1\")));\r\n\t\tobjReturn.header += '</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>';\r\n\t\treturn objReturn;\r\n\t};\r\n\t\r\n\tNSExport.prototype.__getHTMLTextForPpt = function(setting,html,isTable)\r\n\t{\r\n\t\tvar objReturn = {header:null,style:null,html:html};\r\n\t\tobjReturn.header = \"<x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>\";\r\n\t\tobjReturn.header += (setting[\"sheetName\"] ? setting[\"sheetName\"]: ((this.__fileName ? this.__fileName : \"Sheet 1\")));\r\n\t\tobjReturn.header += '</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>';\r\n\t\treturn objReturn;\r\n\t};\r\n\t\r\n\tNSExport.prototype.__downloadFile = function(text,uri,fileType,event) \r\n\t{\r\n\t\tif(text && fileType)\r\n\t\t{\r\n\t\t\tif (\"Blob\" in window) \r\n\t\t\t{\r\n\t\t\t\tvar fileName = this.__getFileName(fileType);\r\n\t\t\t\tif (\"msSaveOrOpenBlob\" in window.navigator) \r\n\t\t\t\t{\r\n\t\t\t\t\tvar blobObject = null;\r\n\t\t\t\t\tif(text instanceof Blob)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tblobObject = text;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(!(text instanceof ArrayBuffer) && text.indexOf(\"base64\") > -1)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tblobObject = this.__dataURItoBlob(text);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tblobObject = new Blob([text], { type: uri});\r\n\t\t\t\t\t}\r\n\t\t\t\t\twindow.navigator.msSaveOrOpenBlob(blobObject,fileName);\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tvar hrefvalue = null;\r\n\t\t\t\t\tif(text instanceof ArrayBuffer)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar blobObject = new Blob([text], {type: uri});\r\n\t\t\t\t\t\threfvalue = URL.createObjectURL(blobObject);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(text instanceof Blob)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\threfvalue = URL.createObjectURL(text);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(text.indexOf(\"data:\") === -1)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\turi = \"data:\" + uri;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(text.indexOf(\";base64,\") === -1)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar base64String = \";base64,\" + window.btoa(window.unescape(encodeURIComponent(text)));\r\n\t\t\t\t\t\t\threfvalue = uri + base64String;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\threfvalue = text;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t    var anchor = document.createElement(\"a\");\r\n\t\t\t\t    if (\"webkitURL\" in window) \r\n\t\t\t\t    {\r\n\t\t\t\t          // Chrome allows the link to be clicked without actually adding it to the DOM.\r\n\t\t\t\t    \t//hrefvalue = window.webkitURL.createObjectURL([hrefvalue]);\r\n\t\t\t\t    }\r\n\t\t\t\t    else\r\n\t\t\t\t    {\r\n\t\t\t\t    \t//hrefvalue = window.URL.createObjectURL([hrefvalue]);\r\n\t\t\t\t    \tanchor.style.display = 'none';\r\n\t\t\t\t        document.body.appendChild(anchor);\r\n\t\t\t\t        this.util.addEvent(anchor,\"click\",function(event){\r\n\t\t\t\t    \t\tdocument.body.removeChild(event.target);\r\n\t\t\t\t    \t});\r\n\t\t\t\t    }\r\n\t\t\t\t    anchor.setAttribute(\"href\",hrefvalue);\r\n\t\t\t\t    anchor.setAttribute(\"download\",this.__getFileName(fileType));\r\n\t\t\t\t    anchor.setAttribute(\"target\",\"_blank\");\r\n\t\t\t\t    anchor.innerHTML = \"Download File\";\r\n\t\t\t\t    /*if(window.URL && window.URL.revokeObjectURL)\r\n\t\t\t\t    {\r\n\t\t\t\t    \twindow.URL.revokeObjectURL(hrefvalue);\r\n\t\t\t\t    }*/\r\n\t\t\t\t    anchor.click();\r\n\t\t\t\t    if(event)\r\n\t\t\t\t    {\r\n\t\t\t\t    \tthis.util.preventDefault(event);\r\n\t\t\t\t    }\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.__getTable = function() \r\n\t{ \r\n\t\tvar tblResult = null;\r\n\t\tif(this.__grid)\r\n\t\t{\r\n\t\t\tvar grid = this.__getPrototype(this.__grid);\r\n\t\t\tif(grid && this.__isTypeNSGrid(grid))\r\n\t\t\t{\r\n\t\t\t\tvar tblHeader = grid.__tblCenterHeader;\r\n\t\t    \tvar tblBody = grid.__tblCenterBody;\r\n\t\t    \ttblResult = document.createElement(\"TABLE\");\r\n\t\t    \ttblResult.style.width = tblHeader.style.width;\r\n\t\t    \tif(tblHeader && tblHeader.tBodies && tblHeader.tBodies.length > 0 && tblHeader.tBodies[0].rows && tblHeader.tBodies[0].rows.length > 0)\r\n\t\t\t\t{\r\n\t\t    \t\tvar arrColumns = grid.__columns;\r\n\t\t    \t\tif(grid.gridType === grid.GRID_TYPE_GROUP)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tarrColumns = grid.util.cloneObject(arrColumns);\r\n\t\t\t\t\t\tarrColumns.splice(0, 1);\r\n\t\t\t\t\t}\r\n\t\t    \t\tvar header = tblResult.createTHead();\r\n\t\t    \t\tvar headerRow = header.insertRow(-1);\r\n\t\t    \t\tvar rowIndex = 0;\r\n\t\t    \t\tvar colIndex = 0;\r\n\t\t\t        for(colIndex = 0; colIndex < arrColumns.length; colIndex++)\r\n\t\t\t        {\r\n\t\t\t        \tvar colItem = arrColumns[colIndex];\r\n\t\t\t        \tif(colItem && (!colItem.hasOwnProperty(grid.__fieldColVisible) || colItem[grid.__fieldColVisible]) && (!colItem.hasOwnProperty(\"isExportable\") || Boolean.parse(colItem[\"isExportable\"])))\r\n\t\t\t        \t{\r\n\t\t\t        \t\tvar headerCell = headerRow.insertCell(-1);\r\n\t\t\t        \t\tthis.util.addStyleClass(headerCell,\"header\");\r\n\t\t\t\t    \t\theaderCell.style.width = colItem[\"width\"]; \r\n\t\t\t\t    \t\tvar headerText = colItem[\"headerText\"];\r\n\t\t\t\t    \t\theaderCell.appendChild(document.createTextNode(headerText));\r\n\t\t\t        \t}\r\n\t\t\t        }\r\n\t\t\t        if(tblBody && tblBody.tBodies && tblBody.tBodies.length > 0 && tblBody.tBodies[0].rows && tblBody.tBodies[0].rows.length > 0)\r\n\t\t\t\t\t{\r\n\t\t\t        \tvar arrItems = grid.__getAllItems();\r\n\t\t\t        \tvar body = document.createElement(\"tbody\");\r\n\t\t\t        \ttblResult.appendChild(body);\r\n\t\t\t        \tvar colText = \"\";\r\n\t\t\t        \tvar row = null;\r\n\t\t\t        \tfor(rowIndex = 0;rowIndex < arrItems.length;rowIndex++)\r\n\t\t\t \t        {\r\n\t\t\t        \t\tvar item = arrItems[rowIndex];\r\n\t\t\t        \t\tif(!item.hasOwnProperty(grid.__fieldRowVisible) || item[grid.__fieldRowVisible])\r\n\t\t\t        \t\t{\r\n\t\t\t\t        \t\tvar bodyRow = body.insertRow(-1);\r\n\t\t\t\t        \t\tfor(colIndex = 0;colIndex < arrColumns.length;colIndex++)\r\n\t\t\t\t    \t        {\r\n\t\t\t\t        \t\t\tvar colItem = arrColumns[colIndex];\r\n\t\t\t\t        \t\t\tif(colItem && (!colItem.hasOwnProperty(grid.__fieldColVisible) || colItem[grid.__fieldColVisible]) && (!colItem.hasOwnProperty(\"isExportable\") || Boolean.parse(colItem[\"isExportable\"])))\r\n\t\t\t\t    \t        \t{\r\n\t\t\t\t        \t\t\t\tcolText = item[colItem[\"dataField\"]];\r\n\t\t\t\t\t\t\t\t\t\tif(colItem.hasOwnProperty(\"exportRenderer\"))\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tcolText = colItem[\"exportRenderer\"](item,colItem[\"dataField\"],item[grid.__fieldIndex],count);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t        \t\t\t\tvar bodyCell = bodyRow.insertCell(-1);\r\n\t\t\t\t\t        \t\t\tbodyCell.style.width = colItem[\"width\"]; \r\n\t\t\t\t\t    \t    \t\tbodyCell.innerHTML = colText;\r\n\t\t\t\t    \t        \t}\r\n\t\t\t\t    \t        }\r\n\t\t\t        \t\t}\r\n\t\t\t \t        }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\ttblResult = this.__grid.cloneNode(true);\r\n\t\t\t\tif(tblResult.tHead && tblResult.tHead.rows && tblResult.tHead.rows.length > 0)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar headerRow = tblResult.tHead.rows[0];\r\n\t\t\t\t\tif(headerRow)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar arrCells = [];\r\n\t\t\t\t\t\tvar arrTempCells = [];\r\n\t\t\t\t\t\tif(headerRow.getElementsByTagName(\"th\").length > 0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tarrTempCells = headerRow.getElementsByTagName(\"th\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(headerRow.getElementsByTagName(\"td\").length > 0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tarrTempCells = headerRow.getElementsByTagName(\"td\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tarrCells = Array.prototype.slice.call(arrTempCells).slice(0);\r\n\t\t\t    \t\tvar colIndex = 0;\r\n\t\t\t    \t\tvar cell = null;\r\n\t\t\t    \t\tfor(colIndex = arrCells.length - 1; colIndex >= 0; colIndex--)\r\n\t\t\t\t        {\r\n\t\t\t    \t\t\theaderRow.deleteCell(colIndex);\r\n\t\t\t\t        }\r\n\t\t\t\t        for(colIndex = 0; colIndex < arrCells.length; colIndex++)\r\n\t\t\t\t        {\r\n\t\t\t\t        \tcell = arrCells[colIndex];\r\n\t\t\t\t        \tvar headerCell = headerRow.insertCell(-1);\r\n\t\t\t\t        \theaderCell.style.width = cell.offsetWidth + \"px\";\r\n\t\t\t\t        \theaderCell.color = \"red\";\r\n\t\t\t\t        \theaderCell.appendChild(document.createTextNode(cell.textContent.trim()));\r\n\t\t\t\t        \tthis.util.addStyleClass(headerCell,\"header\");\r\n\t\t\t\t        }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(tblResult)\r\n\t\t\t{\r\n\t\t\t\ttblResult.setAttribute(\"border\",0);\r\n\t\t    \ttblResult.setAttribute(\"cellpadding\",0);\r\n\t\t    \ttblResult.setAttribute(\"cellspacing\",0);\r\n\t\t    \ttblResult.setAttribute(\"style\",\"border-collapse:collapse;table-layout:fixed;\");\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn tblResult;\r\n\t};\r\n\t\r\n\tNSExport.prototype.__getTableAsString = function(delimiter,newLine,headerSeparator) \r\n\t{ \r\n\t\tvar strResult = \"\";\r\n\t\tif(this.__grid)\r\n\t\t{\r\n\t\t\tvar grid = this.__getPrototype(this.__grid);\r\n\t\t\tif(grid && this.__isTypeNSGrid(grid))\r\n\t\t\t{\r\n\t\t\t\tvar tblHeader = grid.__tblCenterHeader;\r\n\t\t    \tvar tblBody = grid.__tblCenterBody;\r\n\t\t    \tif(tblHeader && tblHeader.tBodies && tblHeader.tBodies.length > 0 && tblHeader.tBodies[0].rows && tblHeader.tBodies[0].rows.length > 0)\r\n\t\t\t\t{\r\n\t\t    \t\tvar arrColumns = grid.__columns;\r\n\t\t    \t\tif(grid.gridType === grid.GRID_TYPE_GROUP)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tarrColumns = grid.util.cloneObject(arrColumns);\r\n\t\t\t\t\t\tarrColumns.splice(0, 1);\r\n\t\t\t\t\t}\r\n\t\t    \t\tvar rowIndex = 0;\r\n\t\t    \t\tvar colIndex = 0;\r\n\t\t    \t\tvar cell = null;\r\n\t\t    \t\tvar arrCollItem = [];\r\n\t\t\t        for(colIndex = 0; colIndex < arrColumns.length; colIndex++)\r\n\t\t\t        {\r\n\t\t\t        \tvar colItem = arrColumns[colIndex];\r\n\t\t\t        \tif(colItem && (!colItem.hasOwnProperty(grid.__fieldColVisible) || colItem[grid.__fieldColVisible]) && (!colItem.hasOwnProperty(\"isExportable\") || Boolean.parse(colItem[\"isExportable\"])))\r\n\t\t\t        \t{\r\n\t\t\t\t    \t\tvar headerText = colItem[\"headerText\"];\r\n\t\t\t\t    \t\tif(colIndex > 0)\r\n\t\t\t\t    \t\t{\r\n\t\t\t\t    \t\t\tstrResult += delimiter;\r\n\t\t\t\t    \t\t}\r\n\t\t\t\t    \t\tstrResult += this.__getFieldValue(headerText,delimiter);\r\n\t\t\t        \t}\r\n\t\t\t        }\r\n\t\t\t        strResult += newLine;\r\n\t\t\t        if(headerSeparator)\r\n\t\t\t        {\r\n\t\t\t        \tvar separatorLength = strResult.length + 20;\r\n\t\t\t        \tfor(var count = 0;count < separatorLength;count++)\r\n\t\t\t \t        {\r\n\t\t\t        \t\tstrResult += headerSeparator;\r\n\t\t\t \t        }\r\n\t\t\t        \tstrResult += newLine;\r\n\t\t\t        }\r\n\t\t\t        if(tblBody && tblBody.tBodies && tblBody.tBodies.length > 0 && tblBody.tBodies[0].rows && tblBody.tBodies[0].rows.length > 0)\r\n\t\t\t\t\t{\r\n\t\t\t        \tvar arrItems = grid.__getAllItems();\r\n\t\t\t        \tvar colText = \"\";\r\n\t\t\t        \tfor(rowIndex = 0;rowIndex < arrItems.length;rowIndex++)\r\n\t\t\t \t        {\r\n\t\t\t        \t\tvar item = arrItems[rowIndex];\r\n\t\t\t        \t\tif(!item.hasOwnProperty(grid.__fieldRowVisible) || item[grid.__fieldRowVisible])\r\n\t\t\t        \t\t{\r\n\t\t\t\t        \t\tfor(colIndex = 0;colIndex < arrColumns.length;colIndex++)\r\n\t\t\t\t    \t        {\r\n\t\t\t\t        \t\t\tvar colItem = arrColumns[colIndex];\r\n\t\t\t\t        \t\t\tif(colItem && (!colItem.hasOwnProperty(grid.__fieldColVisible) || colItem[grid.__fieldColVisible]) && (!colItem.hasOwnProperty(\"isExportable\") || Boolean.parse(colItem[\"isExportable\"])))\r\n\t\t\t\t    \t        \t{\r\n\t\t\t\t        \t\t\t\tif(colIndex > 0)\r\n\t\t\t\t\t\t\t    \t\t{\r\n\t\t\t\t\t\t\t    \t\t\tstrResult += delimiter;\r\n\t\t\t\t\t\t\t    \t\t}\r\n\t\t\t\t        \t\t\t\tcolText = item[colItem[\"dataField\"]];\r\n\t\t\t\t\t\t\t\t\t\tif(colItem.hasOwnProperty(\"exportRenderer\"))\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tcolText = colItem[\"exportRenderer\"](item,colItem[\"dataField\"],item[grid.__fieldIndex],count);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t        \t\t\t\tstrResult += this.__getFieldValue(colText,delimiter);\r\n\t\t\t\t    \t        \t}\r\n\t\t\t\t    \t        }\r\n\t\t\t\t        \t\tstrResult += newLine;\r\n\t\t\t        \t\t}\r\n\t\t\t \t        }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tif(this.__grid.tHead && this.__grid.tHead.rows && this.__grid.tHead.rows.length > 0)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar headerRow = this.__grid.tHead.rows[0];\r\n\t\t\t\t\tif(headerRow)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar arrCells = [];\r\n\t\t\t\t\t\tif(headerRow.getElementsByTagName(\"th\").length > 0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tarrCells = headerRow.getElementsByTagName(\"th\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(headerRow.getElementsByTagName(\"td\").length > 0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tarrCells = headerRow.getElementsByTagName(\"td\");\r\n\t\t\t\t\t\t}\r\n\t\t\t    \t\tvar colIndex = 0;\r\n\t\t\t    \t\tvar cell = null;\r\n\t\t\t\t        for(colIndex = 0; colIndex < arrCells.length; colIndex++)\r\n\t\t\t\t        {\r\n\t\t\t\t        \tif(!this.__isColumnIgnored(colIndex))\r\n\t\t\t\t        \t{\r\n\t\t\t\t\t        \tcell = arrCells[colIndex];\r\n\t\t\t\t\t    \t\tvar headerText = cell.textContent.trim();\r\n\t\t\t\t\t    \t\tif(colIndex > 0)\r\n\t\t\t\t\t    \t\t{\r\n\t\t\t\t\t    \t\t\tstrResult += delimiter;\r\n\t\t\t\t\t    \t\t}\r\n\t\t\t\t\t    \t\tstrResult += this.__getFieldValue(headerText,delimiter);\r\n\t\t\t\t        \t}\r\n\t\t\t\t        }\r\n\t\t\t\t        strResult += newLine;\r\n\t\t\t\t        if(headerSeparator)\r\n\t\t\t\t        {\r\n\t\t\t\t        \tvar separatorLength = strResult.length + 20;\r\n\t\t\t\t        \tfor(var count = 0;count < separatorLength;count++)\r\n\t\t\t\t \t        {\r\n\t\t\t\t        \t\tstrResult += headerSeparator;\r\n\t\t\t\t \t        }\r\n\t\t\t\t        \tstrResult += newLine;\r\n\t\t\t\t        }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(this.__grid.tBodies && this.__grid.tBodies.length > 0 && this.__grid.tBodies[0].rows && this.__grid.tBodies[0].rows.length > 0)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar arrRows = this.__grid.tBodies[0].rows;\r\n\t\t    \t\tvar rowIndex = 0;\r\n\t\t    \t\tvar colIndex = 0;\r\n\t\t    \t\tfor(rowIndex = 0;rowIndex < arrRows.length;rowIndex++)\r\n\t\t \t        {\r\n\t\t        \t\tvar row = arrRows[rowIndex];\r\n\t\t        \t\tvar cells = row.cells;\r\n\t\t        \t\tfor(colIndex = 0;colIndex < cells.length;colIndex++)\r\n\t\t    \t        {\r\n\t\t        \t\t\tif(!this.__isColumnIgnored(colIndex))\r\n\t\t\t\t        \t{\r\n\t\t\t        \t\t\tvar cell = cells[colIndex];\r\n\t\t\t        \t\t\tif(colIndex > 0)\r\n\t\t\t\t\t    \t\t{\r\n\t\t\t\t\t    \t\t\tstrResult += delimiter;\r\n\t\t\t\t\t    \t\t}\r\n\t\t\t        \t\t\tstrResult += this.__getFieldValue(cell.textContent.trim());\r\n\t\t\t\t        \t}\r\n\t\t    \t        }\r\n\t\t        \t\tstrResult += newLine;\r\n\t\t \t        }\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn strResult;\r\n\t};\r\n\t\r\n\tNSExport.prototype.__getTableAsXML = function() \r\n\t{ \r\n\t\tvar strXML = \"\";\r\n\t\tif(this.__grid)\r\n\t\t{\r\n\t\t\tstrXML = '<?xml version=\"1.0\" encoding=\"utf-8\"?>';\r\n\t\t\tstrXML += '<root>';\r\n\t\t\tvar grid = this.__getPrototype(this.__grid);\r\n\t\t\tif(grid && this.__isTypeNSGrid(grid))\r\n\t\t\t{\r\n\t\t\t\tvar tblHeader = grid.__tblCenterHeader;\r\n\t\t    \tvar tblBody = grid.__tblCenterBody;\r\n\t\t    \tif(tblHeader && tblHeader.tBodies && tblHeader.tBodies.length > 0 && tblHeader.tBodies[0].rows && tblHeader.tBodies[0].rows.length > 0)\r\n\t\t\t\t{\r\n\t\t    \t\tstrXML += '<columns>';\r\n\t\t    \t\tvar arrColumns = grid.__columns;\r\n\t\t    \t\tif(grid.gridType === grid.GRID_TYPE_GROUP)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tarrColumns = grid.util.cloneObject(arrColumns);\r\n\t\t\t\t\t\tarrColumns.splice(0, 1);\r\n\t\t\t\t\t}\r\n\t\t    \t\tvar rowIndex = 0;\r\n\t\t    \t\tvar colIndex = 0;\r\n\t\t    \t\tvar cell = null;\r\n\t\t    \t\tvar arrCollItem = [];\r\n\t\t\t        for(colIndex = 0; colIndex < arrColumns.length; colIndex++)\r\n\t\t\t        {\r\n\t\t\t        \tvar colItem = arrColumns[colIndex];\r\n\t\t\t        \tif(colItem && (!colItem.hasOwnProperty(grid.__fieldColVisible) || colItem[grid.__fieldColVisible]) && (!colItem.hasOwnProperty(\"isExportable\") || Boolean.parse(colItem[\"isExportable\"])))\r\n\t\t\t        \t{\r\n\t\t\t\t    \t\tvar headerText = colItem[\"headerText\"];\r\n\t\t\t\t    \t\tstrXML += \"<column>\" + headerText + \"</column>\";\r\n\t\t\t        \t}\r\n\t\t\t        }\r\n\t\t\t        strXML += '</columns>';\r\n\t\t\t        if(tblBody && tblBody.tBodies && tblBody.tBodies.length > 0 && tblBody.tBodies[0].rows && tblBody.tBodies[0].rows.length > 0)\r\n\t\t\t\t\t{\r\n\t\t\t        \tstrXML += '<rows>';\r\n\t\t\t        \tvar arrItems = grid.__getAllItems();\r\n\t\t\t        \tvar colText = \"\";\r\n\t\t\t        \tvar rowCounter = 1;\r\n\t\t\t        \tfor(rowIndex = 0;rowIndex < arrItems.length;rowIndex++)\r\n\t\t\t \t        {\r\n\t\t\t        \t\tvar item = arrItems[rowIndex];\r\n\t\t\t        \t\tif(!item.hasOwnProperty(grid.__fieldRowVisible) || item[grid.__fieldRowVisible])\r\n\t\t\t        \t\t{\r\n\t\t\t        \t\t\tstrXML += '<row id=\"row-'+ rowCounter++ +'\">';\r\n\t\t\t\t\t\t\t\tvar colCounter = 1;\r\n\t\t\t\t        \t\tfor(colIndex = 0;colIndex < arrColumns.length;colIndex++)\r\n\t\t\t\t    \t        {\r\n\t\t\t\t        \t\t\tvar colItem = arrColumns[colIndex];\r\n\t\t\t\t        \t\t\tif(colItem && (!colItem.hasOwnProperty(grid.__fieldColVisible) || colItem[grid.__fieldColVisible]) && (!colItem.hasOwnProperty(\"isExportable\") || Boolean.parse(colItem[\"isExportable\"])))\r\n\t\t\t\t    \t        \t{\r\n\t\t\t\t        \t\t\t\tcolText = item[colItem[\"dataField\"]];\r\n\t\t\t\t\t\t\t\t\t\tif(colItem.hasOwnProperty(\"exportRenderer\"))\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tcolText = colItem[\"exportRenderer\"](item,colItem[\"dataField\"],item[grid.__fieldIndex],count);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t        \t\t\t\tstrXML += '<column id=\"column-'+ colCounter++ +'\">';\r\n\t\t\t\t        \t\t\t\tstrXML += colText;\r\n\t\t\t\t        \t\t\t\tstrXML += '</column>';\r\n\t\t\t\t    \t        \t}\r\n\t\t\t\t    \t        }\r\n\t\t\t\t        \t\tstrXML += '</row>';\r\n\t\t\t        \t\t}\r\n\t\t\t \t        }\r\n\t\t\t        \tstrXML += '</rows>';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tif(this.__grid.tHead && this.__grid.tHead.rows && this.__grid.tHead.rows.length > 0)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar headerRow = this.__grid.tHead.rows[0];\r\n\t\t\t\t\tif(headerRow)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar arrCells = [];\r\n\t\t\t\t\t\tif(headerRow.getElementsByTagName(\"th\").length > 0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tarrCells = headerRow.getElementsByTagName(\"th\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(headerRow.getElementsByTagName(\"td\").length > 0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tarrCells = headerRow.getElementsByTagName(\"td\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstrXML += '<columns>';\r\n\t\t\t    \t\tvar colIndex = 0;\r\n\t\t\t    \t\tvar cell = null;\r\n\t\t\t\t        for(colIndex = 0; colIndex < arrCells.length; colIndex++)\r\n\t\t\t\t        {\r\n\t\t\t\t        \tif(!this.__isColumnIgnored(colIndex))\r\n\t\t\t\t        \t{\r\n\t\t\t\t\t        \tcell = arrCells[colIndex];\r\n\t\t\t\t\t        \tstrXML += \"<column>\" + cell.textContent.trim() + \"</column>\";\r\n\t\t\t\t        \t}\r\n\t\t\t\t        }\r\n\t\t\t\t        strXML += '</columns>';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(this.__grid.tBodies && this.__grid.tBodies.length > 0 && this.__grid.tBodies[0].rows && this.__grid.tBodies[0].rows.length > 0)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar arrRows = this.__grid.tBodies[0].rows;\r\n\t\t\t\t\tstrXML += '<rows>';\r\n\t\t        \tvar rowCounter = 1;\r\n\t\t    \t\tvar rowIndex = 0;\r\n\t\t    \t\tvar colIndex = 0;\r\n\t\t    \t\tfor(rowIndex = 0;rowIndex < arrRows.length;rowIndex++)\r\n\t\t \t        {\r\n\t\t    \t\t\tstrXML += '<row id=\"row-'+ rowCounter++ +'\">';\r\n\t\t    \t\t\tvar colCounter = 1;\r\n\t\t        \t\tvar row = arrRows[rowIndex];\r\n\t\t        \t\tvar cells = row.cells;\r\n\t\t        \t\tfor(colIndex = 0;colIndex < cells.length;colIndex++)\r\n\t\t    \t        {\r\n\t\t        \t\t\tif(!this.__isColumnIgnored(colIndex))\r\n\t\t\t\t        \t{\r\n\t\t\t        \t\t\tvar cell = cells[colIndex];\r\n\t\t\t        \t\t\tstrXML += '<column id=\"column-'+ colCounter++ +'\">';\r\n\t\t        \t\t\t\tstrXML += cell.textContent.trim();\r\n\t\t        \t\t\t\tstrXML += '</column>';\r\n\t\t\t\t        \t}\r\n\t\t    \t        }\r\n\t\t        \t\tstrXML += '</row>';\r\n\t\t \t        }\r\n\t\t    \t\tstrXML += '</rows>';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tstrXML += '</root>';\r\n\t\t}\r\n\t\treturn strXML;\r\n\t};\r\n\t\r\n\tNSExport.prototype.__getTableAsJson = function() \r\n\t{ \r\n\t\tvar retValue = { columns: [], rows: [] };\r\n\t\tif(this.__grid)\r\n\t\t{\r\n\t\t\tvar grid = this.__getPrototype(this.__grid);\r\n\t\t\tif(grid && this.__isTypeNSGrid(grid))\r\n\t\t\t{\r\n\t\t\t\tvar tblHeader = grid.__tblCenterHeader;\r\n\t\t    \tvar tblBody = grid.__tblCenterBody;\r\n\t\t    \tif(tblHeader && tblHeader.tBodies && tblHeader.tBodies.length > 0 && tblHeader.tBodies[0].rows && tblHeader.tBodies[0].rows.length > 0)\r\n\t\t\t\t{\r\n\t\t    \t\tvar arrColumns = grid.__columns;\r\n\t\t    \t\tif(grid.gridType === grid.GRID_TYPE_GROUP)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tarrColumns = grid.util.cloneObject(arrColumns);\r\n\t\t\t\t\t\tarrColumns.splice(0, 1);\r\n\t\t\t\t\t}\r\n\t\t    \t\tvar rowIndex = 0;\r\n\t\t    \t\tvar colIndex = 0;\r\n\t\t\t        for(colIndex = 0; colIndex < arrColumns.length; colIndex++)\r\n\t\t\t        {\r\n\t\t\t        \tvar colItem = arrColumns[colIndex];\r\n\t\t\t        \tif(colItem && (!colItem.hasOwnProperty(grid.__fieldColVisible) || colItem[grid.__fieldColVisible]) && (!colItem.hasOwnProperty(\"isExportable\") || Boolean.parse(colItem[\"isExportable\"])))\r\n\t\t\t        \t{\r\n\t\t\t\t    \t\tvar headerText = colItem[\"headerText\"];\r\n\t\t\t\t    \t\tretValue.columns.push(headerText);\r\n\t\t\t        \t}\r\n\t\t\t        }\r\n\t\t\t        if(tblBody && tblBody.tBodies && tblBody.tBodies.length > 0 && tblBody.tBodies[0].rows && tblBody.tBodies[0].rows.length > 0)\r\n\t\t\t\t\t{\r\n\t\t\t        \tvar arrItems = grid.__getAllItems();\r\n\t\t\t        \tvar colText = \"\";\r\n\t\t\t        \tfor(rowIndex = 0;rowIndex < arrItems.length;rowIndex++)\r\n\t\t\t \t        {\r\n\t\t\t        \t\tvar item = arrItems[rowIndex];\r\n\t\t\t        \t\tif(!item.hasOwnProperty(grid.__fieldRowVisible) || item[grid.__fieldRowVisible])\r\n\t\t\t        \t\t{\r\n\t\t\t\t        \t\tvar rowData = [];\r\n\t\t\t\t        \t\tfor(colIndex = 0;colIndex < arrColumns.length;colIndex++)\r\n\t\t\t\t    \t        {\r\n\t\t\t\t        \t\t\tvar colItem = arrColumns[colIndex];\r\n\t\t\t\t        \t\t\tif(colItem && (!colItem.hasOwnProperty(grid.__fieldColVisible) || colItem[grid.__fieldColVisible]) && (!colItem.hasOwnProperty(\"isExportable\") || Boolean.parse(colItem[\"isExportable\"])))\r\n\t\t\t\t    \t        \t{\r\n\t\t\t\t        \t\t\t\tcolText = item[colItem[\"dataField\"]];\r\n\t\t\t\t\t\t\t\t\t\tif(colItem.hasOwnProperty(\"exportRenderer\"))\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tcolText = colItem[\"exportRenderer\"](item,colItem[\"dataField\"],item[grid.__fieldIndex],count);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\trowData.push(colText ? colText : \"\");\r\n\t\t\t\t    \t        \t}\r\n\t\t\t\t    \t        }\r\n\t\t\t\t        \t\tretValue.rows.push(rowData);\r\n\t\t\t        \t\t}\r\n\t\t\t \t        }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tif(this.__grid.tHead && this.__grid.tHead.rows && this.__grid.tHead.rows.length > 0)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar headerRow = this.__grid.tHead.rows[0];\r\n\t\t\t\t\tif(headerRow)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar arrCells = [];\r\n\t\t\t\t\t\tif(headerRow.getElementsByTagName(\"th\").length > 0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tarrCells = headerRow.getElementsByTagName(\"th\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(headerRow.getElementsByTagName(\"td\").length > 0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tarrCells = headerRow.getElementsByTagName(\"td\");\r\n\t\t\t\t\t\t}\r\n\t\t\t    \t\tvar colIndex = 0;\r\n\t\t\t    \t\tvar cell = null;\r\n\t\t\t\t        for(colIndex = 0; colIndex < arrCells.length; colIndex++)\r\n\t\t\t\t        {\r\n\t\t\t\t        \tif(!this.__isColumnIgnored(colIndex))\r\n\t\t\t\t        \t{\r\n\t\t\t\t\t        \tcell = arrCells[colIndex];\r\n\t\t\t\t\t        \tretValue.columns.push(typeof cell !== \"undefined\" ? cell.textContent.trim() : \"\");\r\n\t\t\t\t        \t}\r\n\t\t\t\t        }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(this.__grid.tBodies && this.__grid.tBodies.length > 0 && this.__grid.tBodies[0].rows && this.__grid.tBodies[0].rows.length > 0)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar arrRows = this.__grid.tBodies[0].rows;\r\n\t\t        \tvar rowCounter = 1;\r\n\t\t    \t\tvar rowIndex = 0;\r\n\t\t    \t\tvar colIndex = 0;\r\n\t\t    \t\tfor(rowIndex = 0;rowIndex < arrRows.length;rowIndex++)\r\n\t\t \t        {\r\n\t\t        \t\tvar row = arrRows[rowIndex];\r\n\t\t        \t\tvar style = window.getComputedStyle(row);\r\n\t\t        \t\tif (style.display !== \"none\") \r\n\t\t        \t\t{\r\n\t\t        \t\t\tvar rowData = [];\r\n\t\t\t        \t\tvar cells = row.cells;\r\n\t\t\t        \t\tfor(colIndex = 0;colIndex < cells.length;colIndex++)\r\n\t\t\t    \t        {\r\n\t\t\t        \t\t\tif(!this.__isColumnIgnored(colIndex))\r\n\t\t\t\t\t        \t{\r\n\t\t\t\t        \t\t\tvar cell = cells[colIndex];\r\n\t\t\t\t        \t\t\trowData.push(typeof cell !== \"undefined\" ? cell.textContent.trim() : \"\");\r\n\t\t\t\t\t        \t}\r\n\t\t\t    \t        }\r\n\t\t\t        \t\tretValue.rows.push(rowData);\r\n\t\t        \t\t}\r\n\t\t \t        }\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn JSON.stringify(retValue);\r\n\t};\r\n\t\r\n\tNSExport.prototype.__getTableAsArray = function() \r\n\t{ \r\n\t\tvar arrSource = [];\r\n\t\tvar arrColumns = [];\r\n\t\tvar util = this.util;\r\n\t\tif(this.__grid)\r\n\t\t{\r\n\t\t\tvar grid = this.__getPrototype(this.__grid);\r\n\t\t\tif(grid && this.__isTypeNSGrid(grid))\r\n\t\t\t{\r\n\t\t    \tif(grid.__columns && grid.__columns.length > 0)\r\n\t\t\t\t{\r\n\t\t    \t\tvar arrColumnsTemp = grid.util.cloneObject(grid.__columns,true);\r\n\t\t    \t\tif(grid.gridType === grid.GRID_TYPE_GROUP)\r\n\t\t\t\t\t{\r\n\t\t    \t\t\tarrColumnsTemp.splice(0, 1);\r\n\t\t\t\t\t}\r\n\t\t    \t\tvar rowIndex = 0;\r\n\t\t    \t\tvar colIndex = 0;\r\n\t\t\t        for(colIndex = 0; colIndex < arrColumnsTemp.length; colIndex++)\r\n\t\t\t        {\r\n\t\t\t        \tvar colItem = arrColumnsTemp[colIndex];\r\n\t\t\t        \tif(!(colItem && (!colItem.hasOwnProperty(grid.__fieldColVisible) || colItem[grid.__fieldColVisible]) && (!colItem.hasOwnProperty(\"isExportable\") || Boolean.parse(colItem[\"isExportable\"]))))\r\n\t\t\t        \t{\r\n\t\t\t        \t\tarrColumnsTemp.splice(colIndex, 1);\r\n\t\t\t        \t}\r\n\t\t\t        \telse\r\n\t\t\t        \t{\r\n\t\t\t        \t\tcolItem.headerCellStyle = colItem[\"excelStyleHeaderFunction\"] ? colItem[\"excelStyleHeaderFunction\"](colItem,colIndex) : null;\r\n\t\t\t        \t\tcolItem.type = colItem.exportType;\r\n\t\t\t        \t\tif(!util.isUndefinedOrNull(colItem.width))\r\n\t\t\t\t        \t{\r\n\t\t\t\t        \t\tvar unit = util.getDimensionUnit(colItem.width);\r\n\t\t\t\t        \t\tswitch(unit)\r\n\t\t\t\t        \t\t{\r\n\t\t\t\t        \t\t\tcase 1:\r\n\t\t\t\t        \t\t\t\tcolItem.widthInPercentage = parseInt(colItem.width.substring(0,colItem.width.length - 1));\r\n\t\t\t\t        \t\t\t\tcolItem.width = null;\r\n\t\t\t\t        \t\t\tbreak;\r\n\t\t\t\t        \t\t\tcase 2:\r\n\t\t\t\t        \t\t\t\tcolItem.widthInPx = util.getDimensionAsNumber(null,colItem.width);\r\n\t\t\t\t        \t\t\t\tcolItem.width = null;\r\n\t\t\t\t        \t\t\tbreak;\r\n\t\t\t\t        \t\t}\r\n\t\t\t\t        \t}\r\n\t\t\t        \t}\r\n\t\t\t        }\r\n\t\t\t        var dataSource = grid.getFilteredData();\r\n\t\t\t        if(dataSource && dataSource.length > 0)\r\n\t\t\t        {\r\n\t\t\t        \tfor(rowIndex = 0;rowIndex < dataSource.length;rowIndex++)\r\n\t\t\t \t        {\r\n\t\t\t        \t\tvar data = dataSource[rowIndex];\r\n\t\t\t        \t\tvar item = {};\r\n\t\t\t        \t\tfor(colIndex = 0;colIndex < arrColumnsTemp.length;colIndex++)\r\n\t\t\t    \t        {\r\n\t\t\t        \t\t\tvar colItem = arrColumnsTemp[colIndex];\r\n\t\t\t        \t\t\tvar dataField = colItem.dataField;\r\n\t\t\t        \t\t\tvar text = colItem[\"exportGetBodyTextFunction\"] ? colItem[\"exportGetBodyTextFunction\"](data,dataField,colItem) : data[dataField];\r\n\t\t\t        \t\t\tvar style = colItem[\"excelStyleBodyFunction\"] ? colItem[\"excelStyleBodyFunction\"](data,dataField,colItem,text) : null;\r\n\t\t\t        \t\t\titem[dataField] = {value: text,style: style};\r\n\t\t\t    \t        }\r\n\t\t\t        \t\tarrSource.push(item);\r\n\t\t\t \t        }\r\n\t\t\t        \tif(grid.__enableFooter)\r\n\t\t\t        \t{\r\n\t\t\t        \t\tvar item = {};\r\n\t\t\t        \t\tfor (var colIndex = 0; colIndex < arrColumnsTemp.length; colIndex++)\r\n\t\t\t    \t\t    {\r\n\t\t\t    \t\t    \tvar colItem = arrColumnsTemp[colIndex];\r\n\t\t\t    \t\t    \tvar dataField = colItem.dataField;\r\n\t\t\t    \t\t    \tvar text = colItem[\"exportGetFooterTextFunction\"] ? colItem[\"exportGetFooterTextFunction\"](dataField,colItem,grid.getGroupedSource(),0,colIndex) : \"\";\r\n\t\t\t    \t\t    \tvar style = colItem[\"excelStyleFooterFunction\"] ? colItem[\"excelStyleFooterFunction\"](dataField,colItem,grid.getGroupedSource(),0,colIndex,text) : null;\r\n\t\t\t        \t\t\titem[dataField] = {value: text,style: style};\r\n\t\t\t    \t\t    }\r\n\t\t\t        \t\tarrSource.push(item);\r\n\t\t\t        \t}\r\n\t\t\t        }\r\n\t\t\t        arrColumns = arrColumnsTemp;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tif(this.__grid.tHead && this.__grid.tHead.rows && this.__grid.tHead.rows.length > 0)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar headerRow = this.__grid.tHead.rows[0];\r\n\t\t\t\t\tif(headerRow)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar arrCells = [];\r\n\t\t\t\t\t\tif(headerRow.getElementsByTagName(\"th\").length > 0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tarrCells = headerRow.getElementsByTagName(\"th\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(headerRow.getElementsByTagName(\"td\").length > 0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tarrCells = headerRow.getElementsByTagName(\"td\");\r\n\t\t\t\t\t\t}\r\n\t\t\t    \t\tvar colIndex = 0;\r\n\t\t\t    \t\tvar cell = null;\r\n\t\t\t    \t\tvar text = \"\";\r\n\t\t\t    \t\tvar headerText = \"\";\r\n\t\t\t    \t\tvar dataField = \"\";\r\n\t\t\t\t        for(colIndex = 0; colIndex < arrCells.length; colIndex++)\r\n\t\t\t\t        {\r\n\t\t\t\t        \tif(!this.__isColumnIgnored(colIndex))\r\n\t\t\t\t        \t{\r\n\t\t\t\t\t        \tcell = arrCells[colIndex];\r\n\t\t\t\t\t        \tvar altText = \"col\" + colIndex;\r\n\t\t\t\t\t        \tif(typeof cell == \"undefined\" || cell.textContent.trim() !== \"\")\r\n\t\t\t\t\t        \t{\r\n\t\t\t\t\t        \t\ttext = \"\";\r\n\t\t\t\t\t        \t\theaderText = \"\";\r\n\t\t\t\t\t        \t\tdataField = altText;\r\n\t\t\t\t\t        \t}\r\n\t\t\t\t\t        \telse\r\n\t\t\t\t\t        \t{\r\n\t\t\t\t\t        \t\ttext = cell.textContent.trim();\r\n\t\t\t\t\t        \t\theaderText = text;\r\n\t\t\t\t\t        \t\tdataField = text;\r\n\t\t\t\t\t        \t}\r\n\t\t\t\t\t        \tarrColumns.push({headerText:headerText,dataField:dataField,widthInPx:cell.offsetWidth});\r\n\t\t\t\t        \t}\r\n\t\t\t\t        }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(this.__grid.tBodies && this.__grid.tBodies.length > 0 && this.__grid.tBodies[0].rows && this.__grid.tBodies[0].rows.length > 0)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar arrRows = this.__grid.tBodies[0].rows;\r\n\t\t    \t\tvar rowIndex = 0;\r\n\t\t    \t\tvar colIndex = 0;\r\n\t\t    \t\tfor(rowIndex = 0;rowIndex < arrRows.length;rowIndex++)\r\n\t\t \t        {\r\n\t\t        \t\tvar row = arrRows[rowIndex];\r\n\t\t        \t\tvar style = window.getComputedStyle(row);\r\n\t\t        \t\tif (style.display !== \"none\") \r\n\t\t        \t\t{\r\n\t\t\t        \t\tvar cells = row.cells;\r\n\t\t\t        \t\tvar item = {};\r\n\t\t\t        \t\tvar arrColIndex = 0;\r\n\t\t\t        \t\tfor(colIndex = 0;colIndex < cells.length;colIndex++)\r\n\t\t\t    \t        {\r\n\t\t\t        \t\t\tif(!this.__isColumnIgnored(colIndex))\r\n\t\t\t\t\t        \t{\r\n\t\t\t\t        \t\t\tvar cell = cells[colIndex];\r\n\t\t\t\t        \t\t\tvar objColumn = arrColumns[arrColIndex];\r\n\t\t\t\t        \t\t\tvar text = (typeof cell == \"undefined\" || cell.textContent.trim() !== \"\") ? cell.textContent.trim() : \"\";\r\n\t\t\t\t        \t\t\titem[objColumn.dataField] = {value: text};\r\n\t\t\t\t        \t\t\tarrColIndex++;\r\n\t\t\t\t\t        \t}\r\n\t\t\t    \t        }\r\n\t\t\t        \t\tarrSource.push(item);\r\n\t\t        \t\t}\r\n\t\t \t        }\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {columns:arrColumns,source:arrSource};\r\n\t};\r\n\t\r\n\tNSExport.prototype.__getStructureForPDF = function(width,fontSize) \r\n\t{ \r\n\t\tif(this.__grid)\r\n\t\t{\r\n\t\t\tvar tblResult = this.__getTable();\r\n\t\t\ttblResult.style.width = width + \"px\";\r\n\t\t\ttblResult.style.fontSize = fontSize + \"px\";\r\n\t\t\tvar divParent = this.util.createDiv(\"div\" + this.util.getUniqueId());\r\n\t\t\tdivParent.appendChild(tblResult);\r\n\t\t\treturn divParent;\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSExport.prototype.__getStructureForImage = function() \r\n\t{ \r\n\t\tvar divReturn = null;\r\n\t\tif(this.__grid)\r\n\t\t{\r\n\t\t\tvar grid = this.__getPrototype(this.__grid);\r\n\t\t\tif(grid && this.__isTypeNSGrid(grid))\r\n\t\t\t{\r\n\t\t\t\tdivReturn = grid.__divOuterContainer;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tdivReturn = this.__grid.parentElement;\r\n\t\t\t\tif(divReturn && divReturn.nodeName === \"BODY\")\r\n\t\t\t\t{\r\n\t\t\t\t\tdivReturn = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn divReturn;\r\n\t};\r\n\t\r\n\tNSExport.prototype.__isColumnIgnored = function(colIndex) \r\n\t{\r\n\t    if(this.__ignoreColumn && this.__ignoreColumn.length > 0)\r\n\t    {\r\n\t    \tfor(var count = 0;count < this.__ignoreColumn.length;count++)\r\n\t    \t{\r\n\t    \t\tif(this.__ignoreColumn[count] === colIndex)\r\n\t    \t\t{\r\n\t    \t\t\treturn true;\r\n\t    \t\t}\r\n\t    \t}\r\n\t    }\r\n\t    return false;\r\n\t};\r\n\t\r\n\tNSExport.prototype.__getFieldValue = function(value,delimiter) \r\n\t{\r\n\t\tif(!value)\r\n\t\t{\r\n\t\t\tvalue = \"\";\r\n\t\t}\r\n\t\tvalue = \"\" + value;\r\n\t    var addQuotes = (value.indexOf(delimiter) !== -1) || (value.indexOf('\\r') !== -1) || (value.indexOf('\\n') !== -1);\r\n\t    var replaceDoubleQuotes = (value.indexOf('\"') !== -1);\r\n\t    if (replaceDoubleQuotes) \r\n\t    {\r\n\t    \tvalue = fixedValue.replace(/\"/g, '\"\"');\r\n\t    }\r\n\t    if (addQuotes || replaceDoubleQuotes) \r\n\t    {\r\n\t    \tvalue = '\"' + value + '\"';\r\n\t    }\r\n\t    return value;\r\n\t};\r\n\t\r\n\tNSExport.prototype.__getFileName = function(format) \r\n\t{\r\n\t\tvar date = new Date();\r\n\t    var day = date.getDate();\r\n\t    var month = date.getMonth() + 1;\r\n\t    var year = date.getFullYear();\r\n\t    var hour = date.getHours();\r\n\t    var mins = date.getMinutes();\r\n\t    var timePart = day + \".\" + month + \".\" + year + \"_\" + hour + \".\" + mins;\r\n\t    var fileName = (this.__fileName? this.__fileName : \"download\");\r\n\t    fileName = fileName + \"(\" + timePart + \")\" + \".\" + format;\r\n\t    \r\n\t    return fileName;\r\n\t};\r\n\t\r\n\t//taken from http://stackoverflow.com/questions/4998908/convert-data-uri-to-file-then-append-to-formdata\r\n\tNSExport.prototype.__dataURItoBlob = function(dataURI) \r\n\t{\r\n\t    // convert base64/URLEncoded data component to raw binary data held in a string\r\n\t    var byteString = null;\r\n\t    var uintArray = null;\r\n\t    var mimeString = null;\r\n\t    if (dataURI.split(',')[0].indexOf('base64') >= 0)\r\n\t    {\r\n\t    \t byteString = window.atob(dataURI.split(',')[1]);\r\n\t    }\r\n\t    else\r\n\t    {\r\n\t    \t byteString = decodeURIComponent(dataURI.split(',')[1]);\r\n\t    }\r\n\t    // separate out the mime component\r\n\t    mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\r\n\t    // write the bytes of the string to a typed array\r\n\t    uintArray = new Uint8Array(byteString.length);\r\n\t    for (var count = 0; count < byteString.length; count++) \r\n\t    {\r\n\t    \tuintArray[count] = byteString.charCodeAt(count);\r\n\t    }\r\n\t\r\n\t    return new Blob([uintArray], {type:mimeString});\r\n\t};\r\n\t\r\n\tNSExport.prototype.__includeJavaScriptFile = function (filePath,callback,position)\r\n\t{\r\n\t    if(filePath)\r\n\t    {\r\n\t        if(!position)\r\n\t        {\r\n\t            position = \"body\";\r\n\t        }\r\n\t        var domPosition = document.getElementsByTagName(position)[0];\r\n\t        var script = document.createElement(\"script\");\r\n\t        script.setAttribute(\"id\", filePath);\r\n\t        script.setAttribute(\"type\",\"text/javascript\");\r\n\t        script.setAttribute(\"src\",filePath);\r\n\t        if(callback)\r\n\t        {\r\n\t            script.onload = function()\r\n\t            {\r\n\t            \tcallback(filePath);\r\n\t            }; \r\n\t        }\r\n\t        domPosition.appendChild(script);\r\n\t    }\r\n\t};\r\n\t\r\n\tNSExport.prototype.__getPrototype = function(grid) \r\n\t{\r\n\t\tif(grid)\r\n\t\t{\r\n\t\t\tif(this.util.isElementOfType(grid,\"NS-GRID\"))\r\n\t\t\t{\r\n\t\t\t\tgrid = grid.__nsGrid;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn grid;\r\n\t};\r\n\t\r\n\tNSExport.prototype.__isTypeNSGrid = function(grid) \r\n\t{\r\n\t\ttry\r\n\t\t{\r\n\t\t\tif(grid)\r\n\t\t\t{\r\n\t\t\t\tif(grid instanceof NSGrid)\r\n\t\t\t\t{\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch(error)\r\n\t\t{}\r\n\t\treturn false;\r\n\t};\r\n\t\r\n\tNSExport.prototype.xslxExport = function(objNSExport,worksheetName,event,properties)\r\n\t{\r\n\t\tthis.util = new NSUtil();\r\n\t\tthis.__objNSExport = objNSExport;\r\n\t\tthis.__worksheetName = worksheetName;\r\n\t\tthis.__event = event;\r\n\t\tthis.__properties = properties;\r\n\t\tvar self = this;\r\n\t\t\r\n\t\tthis.exportToxlsx = function() \r\n\t\t{\r\n\t\t\tvar processXSLX = function()\r\n\t\t\t{\r\n\t\t\t\tvar objTableValue = self.__objNSExport.__getTableAsArray();\r\n\t\t\t\tif(objTableValue)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(!self.__properties)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tself.__properties = {};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar fileName = self.__objNSExport.__getFileName(\"xlsx\");\r\n\t\t\t\t\tvar headerStyle = {\r\n\t\t\t\t\t\t\tfont: {bold: true, color: '#FFFFFF'},\r\n\t\t\t\t\t\t\thorizontal: 'center',\r\n\t\t\t\t\t\t\tpattern: {color: '#000000'}\r\n\t\t\t\t\t};\r\n\t\t\t\t\tvar prop = {};\r\n\t\t\t\t\tfor(var key in self.__properties)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tprop[key] = self.__properties[key];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tprop.dataSource = objTableValue.source;\r\n\t\t\t\t\tprop.columns = objTableValue.columns;\r\n\t\t\t\t\tprop.name = prop.name || \"Sheet 1\";\r\n\t\t\t\t\tprop.headerStyle = prop.headerStyle || headerStyle;\r\n\t\t\t\t\tvar arrSheet=[prop];\r\n\t\t\t\t\tvar setting = {fileName:fileName,sheets:arrSheet};\r\n\t\t\t\t\tvar xlsxExport = new NSXlsxExport(setting);\r\n\t\t\t\t\txlsxExport.process();\r\n\t\t\t\t\tif(self.__event)\r\n\t\t\t\t    {\r\n\t\t\t\t\t\tself.util.preventDefault(this.__event);\r\n\t\t\t\t    }\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tprocessXSLX();\r\n\t\t};\r\n\t};\r\n\treturn NSExport;\r\n})();\r\nnsModuleExport(this,\"NSExport\",NSExport);";
