/*Copyright Scand LLC http://www.scbr.com To use this component please contact info@scbr.com to obtain license */ var globalActiveDHTMLGridObject;String.prototype._dhx_trim = function(){return this.replace(/ /g," ").replace(/(^[ \t]*)|([ \t]*$)/g,"");};function dhtmlxArray(ar){return dhtmlXHeir((ar||new Array()),new _dhtmlxArray());};function _dhtmlxArray(){return this;};_dhtmlxArray.prototype._dhx_find = function(pattern){for(var i=0;i=ind;i--){this[i] = this[i-1] };this[ind] = value };_dhtmlxArray.prototype._dhx_removeAt = function(ind){for(var i=ind;i=8.5)) this.hdr.style.tableLayout = "fixed";this.hdr.className = "hdr";this.hdr.width = "100%";this.xHdr = document.createElement("TABLE");this.xHdr.cellPadding = 0;this.xHdr.cellSpacing = 0;var r = this.xHdr.insertRow(0) var c = r.insertCell(0);r.insertCell(1).innerHTML = "      ";c.appendChild(this.hdr) this.objBuf = document.createElement("DIV");this.objBuf.appendChild(this.obj);this.entCnt = document.createElement("TABLE");this.entCnt.insertRow(0).insertCell(0) this.entCnt.insertRow(1).insertCell(0);this.entCnt.cellPadding = 0;this.entCnt.cellSpacing = 0;this.entCnt.width = "100%";this.entCnt.height = "100%";this.entCnt.style.tableLayout = "fixed";this.objBox = document.createElement("DIV");this.objBox.style.width = "100%";this.objBox.style.height = this.entBox.style.height;this.objBox.style.overflow = "auto";this.objBox.style.position = "relative";this.objBox.appendChild(this.objBuf);this.objBox.className = "objbox";this.hdrBox = document.createElement("DIV");this.hdrBox.style.width = "100%" if (((_isOpera)&&(_OperaRv<9)) ) this.hdrSizeA=25;else this.hdrSizeA=200;this.hdrBox.style.height=this.hdrSizeA+"px";if (_isIE)this.hdrBox.style.overflowX="hidden";else this.hdrBox.style.overflow = "hidden";this.hdrBox.style.position = "relative";this.hdrBox.appendChild(this.xHdr);this.preloadImagesAr = new Array(0) this.sortImg = document.createElement("IMG") this.sortImg.style.display = "none";this.hdrBox.insertBefore(this.sortImg,this.xHdr) this.entCnt.rows[0].cells[0].vAlign="top";this.entCnt.rows[0].cells[0].appendChild(this.hdrBox);this.entCnt.rows[1].cells[0].appendChild(this.objBox);this.entBox.appendChild(this.entCnt);this.entBox.grid = this;this.objBox.grid = this;this.hdrBox.grid = this;this.obj.grid = this;this.hdr.grid = this;this.cellWidthPX = new Array(0);this.cellWidthPC = new Array(0);this.cellWidthType = this.entBox.cellwidthtype || "px";this.delim = this.entBox.delimiter || ",";this._csvDelim = ",";this.hdrLabels = (this.entBox.hdrlabels || "").split(",");this.columnIds = (this.entBox.columnids || "").split(",");this.columnColor = (this.entBox.columncolor || "").split(",");this.cellType = dhtmlxArray((this.entBox.cellstype || "").split(","));this.cellAlign = (this.entBox.cellsalign || "").split(",");this.initCellWidth = (this.entBox.cellswidth || "").split(",");this.fldSort = (this.entBox.fieldstosort || "").split(",") this.imgURL = this.entBox.imagesurl || "gridCfx/";this.isActive = false;this.isEditable = true;this.raNoState = this.entBox.ranostate || null;this.chNoState = this.entBox.chnostate || null;this.selBasedOn = (this.entBox.selbasedon || "cell").toLowerCase() this.selMultiRows = this.entBox.selmultirows || false;this.multiLine = this.entBox.multiline || false;this.noHeader = this.entBox.noheader || false;this.dynScroll = this.entBox.dynscroll || false;this.dynScrollPageSize = 0;this.dynScrollPos = 0;this.xmlFileUrl = this.entBox.xmlfileurl || "";this.recordsNoMore = this.entBox.infinitloading || true;;this.useImagesInHeader = false;this.pagingOn = false;this.rowsBufferOutSize = 0;dhtmlxEvent(window,"unload",function(){try{self.destructor();}catch(e){}});this.loadXML = function(url,afterCall){if (this._dload){this._dload=url;this._askRealRows(null,afterCall);return true;};if (this._xmlaR)this.setXMLAutoLoading(url);if(url.indexOf("?")!=-1) var s = "&";else var s = "?";var obj = this;this.callEvent("onXLS",[this]);if (afterCall)this.xmlLoader.waitCall=afterCall;this.xmlLoader.loadXML(url+""+s+"rowsLoaded="+this.getRowsNum()+"&lastid="+this.getRowId(this.getRowsNum()-1));};this.setSkin = function(name){this.entBox.className = "gridbox gridbox_"+name;this.enableAlterCss("ev_"+name,"odd_"+name,this.isTreeGrid()) this._fixAlterCss() switch(name){case "clear": this._topMb=document.createElement("DIV");this._topMb.className="topMumba";this._topMb.innerHTML="";this.entBox.appendChild(this._topMb);this._botMb=document.createElement("DIV");this._botMb.className="bottomMumba";this._botMb.innerHTML="";this.entBox.appendChild(this._botMb);this.entBox.style.position="relative";this._gcCorr=20;break;case "modern": case "light": this.forceDivInHeader=true;this._sizeFix=1;break;case "xp": this._srdh=22;this._sizeFix=1;break;case "mt": this._srdh=22;this._sizeFix=1;this._borderFix=(_isIE?1:0);break;break;case "gray": if ((_isIE)&&(document.compatMode != "BackCompat")) this._srdh=22;this._sizeFix=1;this._borderFix=(_isIE?1:0);break;};this.setSizes();};this.loadXMLString = function(str,afterCall){if (this._dload){this._dloadStr=str;this._askRealRows(null,afterCall);return true;};this.callEvent("onXLS",[this]);if (afterCall)this.xmlLoader.waitCall=afterCall;this.xmlLoader.loadXMLString(str);};this.doLoadDetails = function(obj){var root = self.xmlLoader.getXMLTopNode(self._tttag) if (root.tagName!="DIV")if (self._refresh_mode){self._refreshFromXML(self.xmlLoader);self._refresh_mode=null;}else if(!self.xmlLoader.xmlDoc.nodeName){self.parseXML(self.xmlLoader.xmlDoc.responseXML) }else{self.parseXML(self.xmlLoader.xmlDoc) };if(self.pagingOn)self.createPagingBlock() };this.xmlLoader = new dtmlXMLLoaderObject(this.doLoadDetails,window,true,this.no_cashe);if (_isIE)this.preventIECashing(true);this.dragger=new dhtmlDragAndDropObject();this._doOnScroll = function(e,mode){this.callEvent("onScroll",[this.objBox.scrollLeft,this.objBox.scrollTop]);this.doOnScroll(e,mode);};this.doOnScroll = function(e,mode){this.hdrBox.scrollLeft = this.objBox.scrollLeft;if (this.ftr)this.ftr.parentNode.scrollLeft = this.objBox.scrollLeft;this.setSortImgPos(null,true);if (mode)return;if(!this.pagingOn && this.objBox.scrollTop+this.hdrSizeA+this.objBox.offsetHeight>this.objBox.scrollHeight){if(this._xml_ready && (this.objBox._oldScrollTop!=this.objBox.scrollTop)&& this.addRowsFromBuffer()){this.objBox.scrollTop = this.objBox.scrollHeight - (this.hdrSizeA+1+this.objBox.offsetHeight) this.objBox._oldScrollTop=this.objBox.scrollTop;};};if (this._dload){if (this._dLoadTimer)window.clearTimeout(this._dLoadTimer);this._dLoadTimer=window.setTimeout(function(){self._askRealRows();},500);};};this.attachToObject = function(obj){obj.appendChild(this.entBox) };this.init = function(fl){this.editStop() this.lastClicked = null;this.resized = null;this.fldSorted = this.r_fldSorted = null;this.gridWidth = 0;this.gridHeight = 0;this.cellWidthPX = new Array(0);this.cellWidthPC = new Array(0);if(this.hdr.rows.length>0){this.clearAll(true);};if(this.cellType._dhx_find("tree")!=-1){this.loadedKidsHash = new Hashtable();this.loadedKidsHash.put("hashOfParents",new Hashtable()) };var hdrRow = this.hdr.insertRow(0);for(var i=0;i0)) this.entCnt.rows[0].cells[0].height = this.hdrBox.offsetHeight+"px";var gridWidth = parseInt(this.entBox.offsetWidth)-(this._gcCorr||0);var gridHeight = parseInt(this.entBox.offsetHeight)-((!_isIE)?(this._sizeFix||0):0);var _isVSroll=(this.objBox.scrollHeight>this.objBox.offsetHeight);if (((!this._ahgr)&&(_isVSroll))||((this._ahgrM)&&(this._ahgrMms?min:ms):ms)-this._wcorr;summ+=ms;};};this.chngCellWidth();var summ = 0;for(var i=0;ithis._ahgrM))) gridHeight=this._ahgrM*1+(this._ahgrF?0:(zheight+scrfix));else gridHeight=z2+zheight+scrfix;this.entBox.style.height=gridHeight+"px";};if (this.ftr)zheight-=this.ftr.offsetHeight;var aRow=this.entCnt.rows[1].cells[0].childNodes[0];if(!this.noHeader)aRow.style.top = (zheight-this.hdrBox.offsetHeight+(_isFF?0:(-wcor)))+"px";if (this._topMb){this._topMb.style.top=(zheight||0)+"px";this._topMb.style.width=(gridWidth+20)+"px";};if (this._botMb){this._botMb.style.top=(gridHeight-3)+"px";this._botMb.style.width=(gridWidth+20)+"px";};aRow.style.height = (((gridHeight - zheight-1)<0 && _isIE)?20:(gridHeight - zheight-1))-(this.ftr?this.ftr.offsetHeight:0)+"px";if (this.ftr)this.entCnt.style.height=this.entBox.offsetHeight-this.ftr.offsetHeight+"px";if (this._dload)this._dloadSize=Math.floor(parseInt(this.entBox.style.height)/20)+(_isKHTML?4:2);};this.chngCellWidth = function(){if ((_isOpera)&&(this.ftr)) this.ftr.width=this.objBox.scrollWidth+"px";var l=this._cCount;for(var i=0;i1){var a_sizes=new Array();for (var i=0;i(this._drsclmW?(this._drsclmW[ind]||10):10)){this.obj.firstChild.firstChild.childNodes[ind].style.width = fcolW+"px";this.hdr.rows[0].childNodes[ind].style.width = fcolW+"px";if (this.ftr)this.ftr.rows[0].childNodes[ind].style.width = fcolW+"px";if(this.cellWidthType=='px'){this.cellWidthPX[ind]=fcolW;}else{var gridWidth = parseInt(this.entBox.offsetWidth);if (this.objBox.scrollHeight>this.objBox.offsetHeight)gridWidth-=(this._scrFix||(_isFF?19:16));var pcWidth = Math.round(fcolW/gridWidth*100) this.cellWidthPC[ind]=pcWidth;};};};this.setSortImgState=function(state,ind,direction,row){if (!convertStringToBoolean(state)){this.sortImg.style.display = "none";return;};if (direction=="ASC")this.sortImg.src = this.imgURL+"sort_asc.gif";else this.sortImg.src = this.imgURL+"sort_desc.gif";this.sortImg.style.display="";this.fldSorted=this.hdr.rows[0].cells[ind];this.r_fldSorted=this.hdr.rows[row||1].cells[ind];this.setSortImgPos(ind);};this.setSortImgPos = function(ind,mode,hRowInd,el){if (!el){if(!ind)var el = this.r_fldSorted;else var el = this.hdr.rows[hRowInd||0].cells[ind];};if(el!=null){var pos = this.getPosition(el,this.hdrBox) var wdth = el.offsetWidth;this.sortImg.style.left = Number(pos[0]+wdth-13)+"px";this.sortImg.defLeft = parseInt(this.sortImg.style.left) this.sortImg.style.top = Number(pos[1]+5)+"px";if ((!this.useImagesInHeader)&&(!mode)) this.sortImg.style.display = "inline";this.sortImg.style.left = this.sortImg.defLeft+"px";};};this.setActive = function(fl){if(arguments.length==0)var fl = true;if(fl==true){if (globalActiveDHTMLGridObject && ( globalActiveDHTMLGridObject != this )) globalActiveDHTMLGridObject.editStop();globalActiveDHTMLGridObject = this;this.isActive = true;}else{this.isActive = false;};};this._doClick = function(ev){var selMethod = 0;var el = this.getFirstParentOfType(_isIE?ev.srcElement:ev.target,"TD");var fl = true;if(this.selMultiRows!=false){if(ev.shiftKey && this.row!=null){selMethod = 1;};if(ev.ctrlKey){selMethod = 2;};};this.doClick(el,fl,selMethod) };this._doContClick=function(ev){var el = this.getFirstParentOfType(_isIE?ev.srcElement:ev.target,"TD");if ((!el)||(el.parentNode.idd===undefined)) return true;if (ev.button==2){if (!this.callEvent("onRightClick",[el.parentNode.idd,el._cellIndex,ev])) {var z=function(e){document.body.oncontextmenu=Function("return true;");(e||event).cancelBubble=true;return false;};if (_isIE)ev.srcElement.oncontextmenu=z;else document.body.oncontextmenu=z;return false;};if (this._ctmndx){if (!(this.callEvent("onBeforeContextMenu",[el.parentNode.idd,el._cellIndex,this]))) return true;el.contextMenuId=el.parentNode.idd+"_"+el._cellIndex;el.contextMenu=this._ctmndx;el.a=this._ctmndx._contextStart;if (_isIE)ev.srcElement.oncontextmenu = function(){event.cancelBubble=true;return false;};el.a(el,ev);el.a=null;};}else if(this._ctmndx)this._ctmndx._contextEnd();return true;};this.doClick = function(el,fl,selMethod){var psid=this.row?this.row.idd:0;this.setActive(true);if(!selMethod)selMethod = 0;if(this.cell!=null)this.cell.className = this.cell.className.replace(/cellselected/g,"");if(el.tagName=="TD" && (this.rowsCol._dhx_find(this.rowsAr[el.parentNode.idd])!=-1 || this.rowsBuffer[0]._dhx_find(el.parentNode.idd)!=-1)){if (this.checkEvent("onSelectStateChanged")) var initial=this.getSelectedId();var prow=this.row;if(selMethod==0){this.clearSelection();}else if(selMethod==1){var elRowIndex = this.rowsCol._dhx_find(el.parentNode) var lcRowIndex = this.rowsCol._dhx_find(this.lastClicked) if(elRowIndex>lcRowIndex){var strt = lcRowIndex;var end = elRowIndex;}else{var strt = elRowIndex;var end = lcRowIndex;};this.clearSelection();for(var i=0;i=strt && i<=end)&&(this.rowsCol[i])&&(!this.rowsCol[i]._sRow)){if (this.callEvent("onBeforeSelect",[this.rowsCol[i].idd,psid])){this.rowsCol[i].className+=" rowselected";this.selectedRows[this.selectedRows.length] = this.rowsCol[i] };};};}else if(selMethod==2){if(el.parentNode.className.indexOf("rowselected")!= -1){el.parentNode.className=el.parentNode.className.replace("rowselected","");this.selectedRows._dhx_removeAt(this.selectedRows._dhx_find(el.parentNode)) var skipRowSelection = true;};};this.editStop() this.cell = el;if ((prow == el.parentNode)&&(this._chRRS)) fl=false;this.row = el.parentNode;if((!skipRowSelection)&&(!this.row._sRow)){if (this.callEvent("onBeforeSelect",[this.row.idd,psid])){this.row.className+= " rowselected" if(this.selectedRows._dhx_find(this.row)==-1) this.selectedRows[this.selectedRows.length] = this.row;}else this.row=prow;};if(this.selBasedOn=="cell"){if (this.cell.parentNode.className.indexOf("rowselected")!=-1) this.cell.className = this.cell.className.replace(/cellselected/g,"")+" cellselected";};if(selMethod!=1)this.lastClicked = el.parentNode;var rid = this.row.idd;var cid = this.cell.cellIndex;if (fl)setTimeout(function(){self.callEvent("onRowSelect",[rid,cid]);},100) if (this.checkEvent("onSelectStateChanged")) {var afinal=this.getSelectedId();if (initial!=afinal)this.callEvent("onSelectStateChanged",[afinal]);};};this.isActive = true;this.moveToVisible(this.cell) };this.selectCell = function(r,cInd,fl,preserve,edit){if(!fl)fl = false;if(typeof(r)!="object") r = this.rowsCol[r] if (r._childIndexes)var c = r.childNodes[r._childIndexes[cInd]];else var c = r.childNodes[cInd];if (preserve)this.doClick(c,fl,3) else this.doClick(c,fl) if (edit)this.editCell();};this.moveToVisible = function(cell_obj,onlyVScroll){try{var distance = cell_obj.offsetLeft+cell_obj.offsetWidth+20;if(distance>(this.objBox.offsetWidth+this.objBox.scrollLeft)){var scrollLeft = distance - this.objBox.offsetWidth;}else if(cell_obj.offsetLeft(this.objBox.offsetHeight+this.objBox.scrollTop)){var scrollTop = distance - this.objBox.offsetHeight;}else if(cell_obj.offsetTop(new Date).valueOf()) return;this._Opera_stop=null;};if(this.editor && this.editor!=null){this.cell.className=this.cell.className.replace("editable","");if (this.editor.detach()) this.cell.wasChanged = true;var g=this.editor;this.editor=null;var z=this.callEvent("onEditCell",[2,this.row.idd,this.cell._cellIndex,g.getValue(),g.val]);if ((typeof(z)=="string")||(typeof(z)=="number")) g[g.setLabel?"setLabel":"setValue"](z);else if (!z)g[g.setLabel?"setLabel":"setValue"](g.val);};};this._getNextCell=function(acell){acell=acell||this.cell;arow=this.cell.parentNode;if (acell.nextSibling)acell=acell.nextSibling;else{arow=this.rowsCol[this.rowsCol._dhx_find(arow)+1];if (!arow)return null;acell=arow.childNodes[0];};if (acell.style.display!="none")return acell;return this._getNextCell(acell);};this._getPrevCell=function(acell){acell=acell||this.cell;arow=this.cell.parentNode;if (acell.previousSibling)acell=acell.previousSibling;else{arow=this.rowsCol[this.rowsCol._dhx_find(arow)-1];if (!arow)return null;acell=arow.childNodes[arow.childNodes.length-1];};if (acell.style.display!="none")return acell;return this._getPrevCell(acell);};this.doKey = function(ev){if (!ev)return true;if ((ev.target||ev.srcElement).value!==window.undefined){var zx= (ev.target||ev.srcElement);if ((!zx.parentNode)||(zx.parentNode.className.indexOf("editable")==-1)) return true;};if ((globalActiveDHTMLGridObject)&&(this!=globalActiveDHTMLGridObject)) return globalActiveDHTMLGridObject.doKey(ev);if(this.isActive==false){return true;};if (this._htkebl)return true;if (!this.callEvent("onKeyPress",[ev.keyCode,ev.ctrlKey,ev.shiftKey])) return false;try{var type = this.cellType[this.cell._cellIndex] if(ev.keyCode==13 && (ev.ctrlKey || ev.shiftKey)){var rowInd = this.rowsCol._dhx_find(this.row) if(window.event.ctrlKey && rowInd!=this.rowsCol.length-1){if(this.row.rowIndex==this.obj._rowslength()-1 && this.dynScroll && this.dynScroll!='false') this.doDynScroll("dn") this.selectCell(this.rowsCol[rowInd+1],this.cell._cellIndex,true);}else if(ev.shiftKey && rowInd!=0){if(this.row.rowIndex==0 && this.dynScroll && this.dynScroll!='false')this.doDynScroll("up") this.selectCell(this.rowsCol[rowInd-1],this.cell._cellIndex,true);};_isIE?ev.returnValue=false:ev.preventDefault();};if(ev.keyCode==13 && !ev.ctrlKey && !ev.shiftKey){this.editStop();this.callEvent("onEnter",[this.row.idd,this.cell._cellIndex]);_isIE?ev.returnValue=false:ev.preventDefault();};if(ev.keyCode==9){this.editStop();if (ev.shiftKey)var z=this._getPrevCell();else var z=this._getNextCell();if (!z)return true;this.selectCell(z.parentNode,z._cellIndex,(this.row!=z.parentNode));this.editCell() _isIE?ev.returnValue=false:ev.preventDefault();};if(ev.keyCode==40 || ev.keyCode==38){if (this.editor && this.editor.combo){if (ev.keyCode==40)this.editor.shiftNext();if (ev.keyCode==38)this.editor.shiftPrev();return false;}else{var rowInd = this.row.rowIndex;if(ev.keyCode==38 && rowInd!=1){var nrow=this.obj._rows(rowInd-2);if (nrow._sRow || nrow._rLoad)return false;this.selectCell(this.obj._rows(rowInd-2),this.cell._cellIndex,true);}else if(this.pagingOn && ev.keyCode==38 && rowInd==1 && this.currentPage!=1){this.changePage(this.currentPage-1) this.selectCell(this.obj.rows[this.obj.rows.length-1],this.cell._cellIndex,true);}else if(ev.keyCode==40 && rowInd!=this.rowsCol.length && rowInd!=this.obj.rows.length-1){var nrow=this.obj._rows(rowInd);if (nrow._sRow || nrow._rLoad)return false;this.selectCell(nrow,this.cell._cellIndex,true);}else if(this.pagingOn && ev.keyCode==40 && (this.row!=this.rowsCol[this.rowsCol.length-1] || this.rowsBuffer[0].length>0 || !this.recordsNoMore)){this.changePage(this.currentPage+1) this.selectCell(this.obj._rows(0),this.cell._cellIndex,true);};};_isIE?ev.returnValue=false:ev.preventDefault();};if((ev.keyCode==113)&&(this._f2kE)){this.editCell();return false;};if(ev.keyCode==32){var c = this.cell var ed = this.cells4(c);if(ed.changeState()!=false) _isIE?ev.returnValue=false:ev.preventDefault();};if(ev.keyCode==27 && this.oe!=false){this.editStop();_isIE?ev.returnValue=false:ev.preventDefault();};if(ev.keyCode==33 || ev.keyCode==34){if(this.pagingOn){if(ev.keyCode==33){this.changePage(this.currentPage-1) }else{this.changePage(this.currentPage+1) };};var new_ind=Math.floor((this.getRowIndex(this.row.idd)||0)+(ev.keyCode!=33?1:-1)*this.objBox.offsetHeight/(this._srdh||20));if (new_ind<0)new_ind=0;if (new_ind>=this.rowsCol.length)new_ind=this.rowsCol.length-1;this.selectCell(new_ind,this.cell._cellIndex,true);_isIE?ev.returnValue=false:ev.preventDefault();};if (!this.editor){if(ev.keyCode==37 && this.cellType._dhx_find("tree")!=-1){this.collapseKids(this.row) _isIE?ev.returnValue=false:ev.preventDefault();};if(ev.keyCode==39 && this.cellType._dhx_find("tree")!=-1){this.expandKids(this.row) _isIE?ev.returnValue=false:ev.preventDefault();};};return true;}catch(er){return true;};};this.getRow = function(cell){if(!cell)cell = window.event.srcElement;if(cell.tagName!='TD')cell = cell.parentElement;r = cell.parentElement;if(this.cellType[cell._cellIndex]=='lk')eval(this.onLink+"('"+this.getRowId(r.rowIndex)+"',"+cell._cellIndex+")");this.selectCell(r,cell._cellIndex,true) };this.selectRow = function(r,fl,preserve){if(typeof(r)!='object') r = this.rowsCol[r] this.selectCell(r,0,fl,preserve) };this.sortRows = function(col,type,order){while(this.addRowsFromBuffer(true));if(this.cellType._dhx_find("tree")!=-1){return this.sortTreeRows(col,type,order) };var self=this;var arrTS=new Array();var atype = this.cellType[col];var amet="getValue";if (atype=="link")amet="getContent";for (var i=0;iarrTS[b.idd]?1:-1 else return arrTS[a.idd]=0;i--){var node = tmpAr[i] if(!this.deleteRow(node.idd,node)){this.selectedRows[this.selectedRows.length] = node;}else{if(node==this.row){var ind = i;};};};if(ind){try{if(ind+1>this.rowsCol.length)ind--;this.selectCell(ind,0,true) }catch(er){this.row = null this.cell = null };};};this.getSelectedId = function(){var selAr = new Array(0);for(var i=0;i=0){this._askRealRows(ind);return this.getRowById(id);};}else if(this.pagingOn){var ind = this.rowsBuffer[0]._dhx_find(id);if (ind>=0){var r = this.createRowFromXMLTag(this.rowsBuffer[1][ind]);this.rowsBuffer[1][ind] = r;return r;}else{return null;};}else if (this._slowParse)return this._seekAndDeploy(id);return null;};this.getRowByIndex = function(ind){if(this.rowsCol.length<=ind){if((this.rowsCol.length+this.rowsBuffer[0].length)<=ind) return null;else{var indInBuf = ind-this.rowsCol.length-1;var r = this.createRowFromXMLTag(this.rowsBuffer[1][indInBuf]);return r;};}else{return this.rowsCol[ind] };};this.getRowIndex = function(row_id){var ind = this.rowsCol._dhx_find(this.getRowById(row_id));if(ind!=-1)return ind;else{ind = this.rowsBuffer[0]._dhx_find(row_id) if(ind!=-1)return ind+this.rowsCol.length;return -1;};};this.getRowId = function(ind){var z=this.rowsCol[parseInt(ind)];if (z)return z.idd;return (this.rowsBuffer[0][this._dload?ind:(ind-this.rowsCol.length-1)]||null);};this.setRowId = function(ind,row_id){var r = this.rowsCol[ind] this.changeRowId(r.idd,row_id) };this.changeRowId = function(oldRowId,newRowId){var row = this.rowsAr[oldRowId] row.idd = newRowId;if(this.UserData[oldRowId]){this.UserData[newRowId] = this.UserData[oldRowId] this.UserData[oldRowId] = null;};if (this.loadedKidsHash){var oldHash=this.loadedKidsHash.get(oldRowId);if (oldHash!=null){for (var z=0;z0){if(this.hdr.rows[0].cells.length>=this.columnIds.length){for(var i=0;i0)&&(z.firstChild.nodeType==1)){this.rowsCol[i].cells[j].firstChild.disabled = ifl;};};};};this.isEditable = !ifl;};this.setSelectedRow = function(row_id, multiFL,show,call){if(!call)call = false;this.selectCell(this.getRowById(row_id),0,call,multiFL);if(arguments.length>2 && show==true){this.moveToVisible(this.getRowById(row_id).cells[0],true) };};this.clearSelection = function(){this.editStop() for(var i=0;i]+)\].*/,"$1");label = label.substr(label.indexOf("]")+1,label.length) hdrHTML+="" };hdrHTML+=label;hdrHTML+="";z.cells[col].innerHTML = hdrHTML;if (this._hstyles[col])z.cells[col].style.cssText = this._hstyles[col];}else{z.cells[col].style.textAlign = "left";z.cells[col].innerHTML = "";var a = new Image();a.src = this.imgURL+""+label.replace(/(\.[a-z]+)/,".desc$1");this.preloadImagesAr[this.preloadImagesAr.length] = a;var b = new Image();b.src = this.imgURL+""+label.replace(/(\.[a-z]+)/,".asc$1");this.preloadImagesAr[this.preloadImagesAr.length] = b;};};this.clearAll = function(header){this.limit=this._limitC=0;this.editStop();if (this._dLoadTimer)window.clearTimeout(this._dLoadTimer);if (this._dload){this.objBox.scrollTop=0;this.limit=this._limitC||0;this._initDrF=true;};var len = this.rowsCol.length;if(this.loadedKidsHash!=null){this.loadedKidsHash.clear();this.loadedKidsHash.put("hashOfParents",new Hashtable());};len = this.obj._rowslength();for(var i=len-1;i>=0;i--){var t_r=this.obj._rows(i);t_r.parentNode.removeChild(t_r);};if (header){this.obj.rows[0].parentNode.removeChild(this.obj.rows[0]);for(var i=this.hdr.rows.length-1;i>=0;i--){var t_r=this.hdr.rows[i];t_r.parentNode.removeChild(t_r);};this._aHead=this._aFoot=null;};this.row = null;this.cell = null;this.rowsCol = new dhtmlxArray(0) this.rowsAr = new Array(0);this.rowsBuffer = new Array(new dhtmlxArray(0),new dhtmlxArray(0));this.UserData = new Array(0) this.selectedRows = new dhtmlxArray(0);if(this.pagingOn){this.changePage(1);};if (!this._fake){if ((this._hideShowColumn)&&(this.hdr.rows[0])) for (var i=0;i=el._cellIndex && this.fldSort[el._cellIndex]!='na'){ if((((this.sortImg.src.indexOf("_asc.gif")==-1) && (!repeatFl)) || ((this.sortImg.style.filter!="") && (repeatFl))) && (this.fldSorted==el)){var sortType = "asc";this.sortImg.src = this.imgURL+"sort_asc.gif";}else{var sortType = "desc";this.sortImg.src = this.imgURL+"sort_desc.gif";};if (!this.callEvent("onBeforeSorting",[ind,this,sortType])) return;if(this.useImagesInHeader){var cel=this.hdr.rows[1].cells[el._cellIndex].firstChild;if(this.fldSorted!=null){var celT=this.hdr.rows[1].cells[this.fldSorted._cellIndex].firstChild;celT.src = celT.src.replace(/\.[ascde]+\./,".");};cel.src = cel.src.replace(/(\.[a-z]+)/,"."+sortType+"$1") };this.sortRows(el._cellIndex,this.fldSort[el._cellIndex],sortType) this.fldSorted = el;this.r_fldSorted = r_el;var c=this.hdr.rows[1];var c=r_el.parentNode;var real_el=c._childIndexes?c._childIndexes[el._cellIndex]:el._cellIndex;this.setSortImgPos(false,false,false,r_el);};};this.setCustomSorting = function(func,col){if (!this._customSorts)this._customSorts=new Array();this._customSorts[col]=func;this.fldSort[col]="cus";};this.enableHeaderImages = function(fl){this.useImagesInHeader = fl;};this.setHeader = function(hdrStr,splitSign,styles){if (typeof(hdrStr)=="object") var arLab = hdrStr.split(this.delim);else var arLab = hdrStr.split(this.delim);var arWdth = new Array(0);var arTyp = new dhtmlxArray(0);var arAlg = new Array(0);var arVAlg = new Array(0);var arSrt = new Array(0);for(var i=0;i4)&&(typeof(window[this.fldSort[i]])=="function")) {if (!this._customSorts)this._customSorts=new Array();this._customSorts[i]=window[this.fldSort[i]];this.fldSort[i]="cus";};};this.setColAlign = function(alStr){this.cellAlign = alStr.split(this.delim) };this.setColVAlign = function(alStr){this.cellVAlign = alStr.split(this.delim) };this.setMultiLine = function(fl){if(fl==true)this.multiLine = -1;};this.setNoHeader = function(fl){if(convertStringToBoolean(fl)==true) this.noHeader = true;};this.showRow = function(rowID){if(this.pagingOn){if (this.rowsAr[rowID])this.changePage(Math.floor(this.getRowIndex(rowID)/this.rowsBufferOutSize)+1);else while((!this.rowsAr[rowID])&& ( this.rowsBuffer[0].length>0 || !this.recordsNoMore )) this.changePage(this.currentPage+1);};this.moveToVisible(this.getRowById(rowID).cells[0],true) };this.setStyle = function(ss_header,ss_grid,ss_selCell,ss_selRow){this.ssModifier = [ss_header, ss_grid , ss_selCell,ss_selCell, ss_selRow];var prefs=["#"+this.entBox.id+" table.hdr td","#"+this.entBox.id+" table.obj td","#"+this.entBox.id+" table.obj tr.rowselected td.cellselected","#"+this.entBox.id+" table.obj td.cellselected","#"+this.entBox.id+" table.obj tr.rowselected td"];for (var i=0;ithis.rowsCol.length){this.addRowsFromBuffer() };this.dynScrollPos+=this.dynScrollPageSize };var start = Math.max(this.dynScrollPos-this.dynScrollPageSize,0);for(var i = start;i=this.dynScrollPos && ithis.objBox.offsetHeight)this.dynScrollPos-=(this.dynScrollPageSize-i) };this.setSizes() };this.setDynScrollPageSize = function(){if(this.dynScroll && this.dynScroll!='false'){var rowsH = 0;try{var rowH = this.obj._rows(0).scrollHeight;}catch(er){var rowH = 20 };for(var i=0;i<1000;i++){rowsH = i*rowH;if(this.objBox.offsetHeight";var i=0;for(var jj=0;jj";i++;};out+="";return out;};this._serializeRow = function(r,i){var out = "";if ((!r)||(r._sRow)||(r._rLoad)) {if (this.rowsBuffer[1][i]){if (this.xmlSerializer)out+=this.xmlSerializer.serializeToString(this.rowsBuffer[1][i]);else out+=this.rowsBuffer[1][i].xml;};return out;};var selStr = "";if(this._sAll && this.selectedRows._dhx_find(r)!=-1) selStr = " selected='1'";out += "";if(this._sUDa && this.UserData[r.idd]){keysAr = this.UserData[r.idd].getKeys() for(var ii=0;ii"+this.UserData[r.idd].get(keysAr[ii])+"";};};var changeFl=false;for(var jj=0;jj";if ((this._ecspn)&&(cvx.colSpan)&&cvx.colSpan>1) out+=" colspan=\""+cvx.colSpan+"\" ";if (this._chAttr){if (zx.wasChanged()){out+=" changed=\"1\"";changeFl=true;};}else if ((this._onlChAttr)&&(zx.wasChanged())) changeFl=true;if (this._sAll)out+=(cvx._aimage?(" image='"+cvx._aimage+"'"):"")+">"+zxVal+"";else out+=">"+zxVal+"";if ((this._ecspn)&&(cvx.colSpan)){cvx=cvx.colSpan-1;for (var u=0;u";out+=this.getHeaderCol(i);var z=this.getCombo(i);if (z)for (var j=0;j"+z.values[j]+"";out+="" };return out+="";};this.serialize = function(){if(_isFF)this.xmlSerializer = new XMLSerializer();var out='';if (this._mathSerialization)this._agetm="getMathValue";else this._agetm="getValue";if(this._sUDa && this.UserData["gridglobaluserdata"]){var keysAr = this.UserData["gridglobaluserdata"].getKeys() for(var i=0;i"+this.UserData["gridglobaluserdata"].get(keysAr[i])+"";};};if (this._sConfig)out+=this._serialiseConfig();out+=this._serialise(this.rowsCol)[0];if (!this._dload){for(var i=0;i';return out;};this.setOnRowSelectHandler = function(func,anyClick){this.attachEvent("onRowSelect",func);this._chRRS=(!convertStringToBoolean(anyClick));};this.setOnScrollHandler = function(func){this.attachEvent("onScroll",func);};this.setOnEditCellHandler = function(func){this.attachEvent("onEditCell",func);};this.setOnCheckHandler = function(func){this.attachEvent("onCheckbox",func);};this.setOnEnterPressedHandler = function(func){this.attachEvent("onEnter",func);};this.setOnBeforeRowDeletedHandler = function(func){this.attachEvent("onBeforeRowDeleted",func);};this.setOnRowAddedHandler = function(func){this.attachEvent("onRowAdded",func);};this.setOnGridReconstructedHandler = function(func){this.attachEvent("onGridReconstructed",func);};dhtmlXGridObject.prototype.setOnResize=function(func){this.attachEvent("onResize",func);};dhtmlXGridObject.prototype.setOnBeforeSelect=function(func){this.attachEvent("onBeforeSelect",func);};dhtmlXGridObject.prototype.setOnKeyPressed=function(func){this.attachEvent("onKeyPress",func);};dhtmlXGridObject.prototype.setOnRowCreated=function(func){this.attachEvent("onRowCreated",func);};dhtmlXGridObject.prototype.setOnLoadingEnd=function(func){this.attachEvent("onXLE",func);};dhtmlXGridObject.prototype.setOnCellChanged=function(func){this.attachEvent("onCellChanged",func);};dhtmlXGridObject.prototype.setOnLoadingStart=function(func){this.attachEvent("onXLS",func);};dhtmlXGridObject.prototype.setOnColumnSort=function(func){this.attachEvent("onBeforeSorting",func);};this.setOnSelectStateChanged = function(func){this.attachEvent("onSelectStateChanged",func);};this.setOnRowDblClickedHandler = function(func){this.attachEvent("onRowDblClicked",func);};this.setOnHeaderClickHandler = function(func){this.attachEvent("onHeaderClick",func);};dhtmlXGridObject.prototype.setOnResizeEnd=function(func){this.attachEvent("onResizeEnd",func);};this.getPosition = function(oNode,pNode){if(!pNode)var pNode = document.body var oCurrentNode=oNode;var iLeft=0;var iTop=0;while ((oCurrentNode)&&(oCurrentNode!=pNode)){iLeft+=oCurrentNode.offsetLeft-oCurrentNode.scrollLeft;iTop+=oCurrentNode.offsetTop-oCurrentNode.scrollTop;oCurrentNode=oCurrentNode.offsetParent;};if (pNode == document.body ){if (_isIE){if (document.documentElement.scrollTop)iTop+=document.documentElement.scrollTop;if (document.documentElement.scrollLeft)iLeft+=document.documentElement.scrollLeft;}else if (!_isFF){iLeft+=document.body.offsetLeft;iTop+=document.body.offsetTop;};};return new Array(iLeft,iTop);};this.getFirstParentOfType = function(obj,tag){while(obj.tagName!=tag && obj.tagName!="BODY"){obj = obj.parentNode;};return obj;};this.setColumnCount = function(cnt){alert('setColumnCount method deprecated')};this.showContent = function(){alert('showContent method deprecated')};this.objBox.onscroll = new Function("","this.grid._doOnScroll()") if ((!_isOpera)||(_OperaRv>8.5)) {this.hdr.onmousemove = new Function("e","this.grid.changeCursorState(e||window.event)");this.hdr.onmousedown = new Function("e","this.grid.startColResize(e||window.event)");};this.obj.onmousemove = this._drawTooltip;this.obj.onclick = new Function("e","this.grid._doClick(e||window.event);if (this.grid._sclE)this.grid.editCell(e||window.event);(e||event).cancelBubble=true;");this.entBox.onmousedown = new Function("e","return this.grid._doContClick(e||window.event);");this.obj.ondblclick = new Function("e","if(!this.grid.wasDblClicked(e||window.event)){return false};if (this.grid._dclE)this.grid.editCell(e||window.event);(e||event).cancelBubble=true;");this.hdr.onclick = this._onHeaderClick;this.hdr.ondblclick = this._onHeaderDblClick;if (!document.body._dhtmlxgrid_onkeydown){dhtmlxEvent(document,"keydown",new Function("e","if (globalActiveDHTMLGridObject)return globalActiveDHTMLGridObject.doKey(e||window.event);return true;"));document.body._dhtmlxgrid_onkeydown=true;};dhtmlxEvent(document.body,"click",function(){if (self.editStop)self.editStop();return true;});this.entBox.onbeforeactivate = new Function("","this.grid.setActive();event.cancelBubble=true;");this.entBox.onbeforedeactivate = new Function("","this.grid.isActive=-1;event.cancelBubble=true;");this.doOnRowAdded = function(row){};return this;};dhtmlXGridObject.prototype.isTreeGrid= function(){return (this.cellType._dhx_find("tree")!=-1);};dhtmlXGridObject.prototype.addRow = function(new_id,text,ind){var r = this._addRow(new_id,text,ind);this.callEvent("onRowAdded",[new_id]);this.callEvent("onRowCreated",[r.idd,r,null]);if(this.pagingOn)this.changePage(this.currentPage) this.setSizes();r._added=true;this.callEvent("onGridReconstructed",[]);return r;};dhtmlXGridObject.prototype._prepareRow=function(new_id){var r=document.createElement("TR");r.idd = new_id;r.grid = this;for(var i=0;ithis.rowsCol.length)ind = this.rowsCol.length;};if (!skip)if ((ind==(this.obj.rows.length-1))||(!this.rowsCol[ind])) if (_isKHTML)this.obj.appendChild(r);else{this.obj.firstChild.appendChild(r);}else {this.rowsCol[ind].parentNode.insertBefore(r,this.rowsCol[ind]);};this.rowsAr[r.idd] = r;this.rowsCol._dhx_insertAt(ind,r);if (this._cssEven){if ((this._cssSP?this.getLevel(r.idd):ind)%2==1) r.className+=" "+this._cssUnEven+(this._cssSU?(this._cssUnEven+"_"+this.getLevel(r.idd)):"");else r.className+=" "+this._cssEven+(this._cssSU?(" "+this._cssEven+"_"+this.getLevel(r.idd)):"");if (!this._cssSP && (ind!=(this.rowsCol.length-1))) this._fixAlterCss(ind+1);};this.doOnRowAdded(r);if ((this.math_req)&&(!this._parsing_)){for(var i=0;ithis.rowsCol.length && ind<(this.rowsCol.length+this.rowsBuffer[0].length)){var inBufInd = ind - this.rowsCol.length;this.rowsBuffer[0]._dhx_insertAt(inBufInd,new_id);this.rowsBuffer[1]._dhx_insertAt(inBufInd,row);return row;};return this._insertRowAt(row,ind);};dhtmlXGridObject.prototype.setRowHidden=function(id,state){var f=convertStringToBoolean(state);var row= this.getRowById(id) if(!row)return;if (row.expand==="")this.collapseKids(row);if ((state)&&(row.style.display!="none")){row.style.display="none";var z=this.selectedRows._dhx_find(row);if (z!=-1){row.className=row.className.replace("rowselected","");for (var i=0;i-1)pfix=nmask.length-pfix-1;var dfix=nmask.indexOf(",");if (dfix>-1)dfix=nmask.length-pfix-2-dfix;p_sep=p_sep||".";d_sep=d_sep||",";var pref=mask.split(nmask)[0];var postf=mask.split(nmask)[1];this._maskArr[cInd]=[pfix,dfix,pref,postf,p_sep,d_sep];};dhtmlXGridObject.prototype._aplNFb=function(data,ind){var a=this._maskArr[ind];if (!a)return data;var ndata=parseFloat(data.toString().replace(/[^0-9]*/g,""));if (data.toString().substr(0,1)=="-") ndata=ndata*-1;if (a[0]>0)ndata=ndata/Math.pow(10,a[0]);return ndata;};dhtmlXGridObject.prototype._aplNF=function(data,ind){var a=this._maskArr[ind];if (!a)return data;var c=(parseFloat(data)<0?"-":"")+a[2];data = Math.abs(Math.round(parseFloat(data)*Math.pow(10,a[0]>0?a[0]:0))).toString();data=(data.length0)for (var j=(a[0]>0?0:1)+a[0]+a[1];j0){var a_list="";var b_list="";var c_list="";var d_list="";var e_list="";var f_list="";var g_list="";var f_arr=[];for (var i=0;i0){if (!this.UserData["gridglobaluserdata"])this.UserData["gridglobaluserdata"] = new Hashtable();for(var j=0;j0){if (!this.UserData[rId])this.UserData[rId] = new Hashtable();for(var j=0;j0){this.changePage(this.currentPage) };if ((r)&&(this._checkSCL)) for(var i=0;i]*>/gi,"");return true;};dhtmlXGridObject.prototype.enableCellWidthCorrection=function(size){if (_isFF)this._wcorr=parseInt(size);};dhtmlXGridObject.prototype.getAllItemIds = function(separator){var ar = new Array(0) for(i=0;i=0){this.rowsBuffer[0]._dhx_removeAt(ind) this.rowsBuffer[1]._dhx_removeAt(ind) };};node = null;};for (var i=0;i1)){if (r._childIndexes)var j=r._childIndexes[col_ind];else{var j=col_ind;r._childIndexes=new Array();for (var z=0;zm)m=z;};m+=20;this._setColumnSizeR(cInd,m);this._notresize=false;this.setSizes();};dhtmlXGridObject.prototype.attachHeader = function(values,style,_type){if (typeof(values)=="string") values=values.split(this.delim);if (typeof(style)=="string") style=style.split(this.delim);_type=_type||"_aHead";if (this.hdr.rows.length){if (values)this._createHRow([values,style],this[(_type=="_aHead")?"hdr":"ftr"]);else if (this[_type])for (var i=0;i1)){var pind=parent.rows.length-2;var found=false;var pz=null;while(!found){var pz=parent.rows[pind];for (var j=0;j";else w.innerHTML=data[0][i];if (st1)w.style.cssText = st1[i];z.appendChild(w);};var self=parent;if (_isKHTML){if (parent._kTimer)window.clearTimeout(parent._kTimer);parent._kTimer=window.setTimeout(function(){parent.rows[1].style.display='none';window.setTimeout(function(){parent.rows[1].style.display='';},1);},500);};};dhtmlXGridObject.prototype.attachFooter = function(values,style){this.attachHeader(values,style,"_aFoot");};dhtmlXGridObject.prototype.setCellExcellType = function(rowId,cellIndex,type){this.changeCellType(this.rowsAr[rowId],cellIndex,type);};dhtmlXGridObject.prototype.changeCellType=function(r,ind,type){type=type||this.cellType[ind];var z=this.cells3(r,ind);var v=z.getValue();z.cell._cellType=type;var z=this.cells3(r,ind);z.setValue(v);};dhtmlXGridObject.prototype.setRowExcellType = function(rowId,type){var z=this.rowsAr[rowId];for (var i=0;i'+catcher[2]+'';postVar2="";target=rpc;};var z = function() {};return z;};var z = function() {if (dhx_catch)var res=true;for (var i=0;i