//v.1.5 build 80319 /* Copyright DHTMLX LTD. http://www.dhtmlx.com You allowed to use this component or parts of it under GPL terms To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com */ 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 = "c_hdr".substr(2);this.hdr.width = "100%";this.xHdr = document.createElement("TABLE");this.xHdr.className = "xhdr";this.xHdr.cellPadding = 0;this.xHdr.cellSpacing = 0;this.xHdr.style.width='100%' var r = this.xHdr.insertRow(0) var c = r.insertCell(0);r.insertCell(1).innerHTML = "      ";r.childNodes[1].style.width='100%';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.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() this._sizeFix=this._borderFix=0;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.forceDivInHeader=true;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};if (_isIE && this.hdr){var d=this.hdr.parentNode;d.removeChild(this.hdr);d.appendChild(this.hdr)};this.setSizes()};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(){if (self.limit)self._askRealRows()},500)}};this.attachToObject = function(obj){obj.appendChild(this.entBox) this.objBox.style.height = this.entBox.style.height};this.init = function(fl){if ((this.isTreeGrid()) && (!this._h2)){this._aEx=new _dhtmlxArray();this._h2=new dhtmlxHierarchy();if ((this._fake)&&(!this._realfake)) this._fake._h2=this._h2;this._tgc={imgURL:null}};if(!this._hstyles)return;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}};var summ = 0;for(var i=0;ithis._awdth[1]?this._awdth[1]:(summthis._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+((_isIE && !window.XMLHttpRequest)?(-wcor):0) )+"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-(this._isIE7s?2:1)))-(this.ftr?this.ftr.offsetHeight:0)+"px";if (this.ftr && this.entBox.offsetHeight>this.ftr.offsetHeight)this.entCnt.style.height=this.entBox.offsetHeight-this.ftr.offsetHeight+"px";if (this._dload)this._dloadSize=Math.floor(parseInt(this.entBox.offsetHeight)/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._notresize)?(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,order,row){order=(order||"asc").toLowerCase();if (!convertStringToBoolean(state)){this.sortImg.style.display = "none";this.fldSorted=null;return};if (order=="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].childNodes[ind];var r=this.hdr.rows[row||1];for (var i=0;i < r.childNodes.length;i++)if (r.childNodes[i]._cellIndex==ind)this.r_fldSorted=r.childNodes[i];this.setSortImgPos()};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 || ev.metaKey){selMethod = 2}};this.doClick(el,fl,selMethod) };this._doContClick=function(ev){var el = this.getFirstParentOfType(_isIE?ev.srcElement:ev.target,"TD");if ((!el)||(typeof(el.parentNode.idd)=="undefined")) return true;if (ev.button==2 || (_isKHTML && ev.ctrlKey)){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 if (!_isMacOS)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,show){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 || this.isTreeGrid())){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};for(var i=0;i=strt && i<=end)){if (this.rowsCol[i] && (!this.rowsCol[i]._sRow)){if (this.rowsCol[i].className.indexOf("rowselected")==-1 && this.callEvent("onBeforeSelect",[this.rowsCol[i].idd,psid])){this.rowsCol[i].className+=" rowselected";this.selectedRows[this.selectedRows.length] = this.rowsCol[i] }}else{this.clearSelection();return this.doClick(el,fl,0,show)}}}else if(selMethod==2){if(el.parentNode.className.indexOf("rowselected")!= -1){el.parentNode.className=el.parentNode.className.replace(/rowselected/g,"");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;if (typeof(el.parentNode.idd)=="undefined") return true;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)if (!this.row)return;this.lastClicked = el.parentNode;var rid = this.row.idd;var cid = this.cell._cellIndex;if (fl && typeof(rid)!="undefined") self.onRowSelectTime=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;if (show!==false)this.moveToVisible(this.cell) };this.selectAll = function(){this.clearSelection();this.selectedRows=dhtmlxArray([].concat(this.rowsCol));if (this.selectedRows.length){this.row=this.selectedRows[0];this.cell=this.row.cells[0]};for (var i=0;i(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.editor.cell.className=this.editor.cell.className.replace("editable","");if (mode){var t=this.editor.val;this.editor.detach();this.editor.setValue(t);this.editor=null;return};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.setImage?"setLabel":"setValue"](z);else if (!z)g[g.setImage?"setLabel":"setValue"](g.val)}};this._nextRowCell=function(row,dir,pos){row=this._nextRow(this.rowsCol._dhx_find(row),dir);if (!row)return null;return row.childNodes[row._childIndexes?row._childIndexes[pos]:pos]};this._getNextCell=function(acell,dir,i){acell=acell||this.cell;var arow=this.cell.parentNode;if (this._tabOrder){i=this._tabOrder[acell._cellIndex];if (typeof i != "undefined")if (i < 0)acell=this._nextRowCell(arow,dir,Math.abs(i)-1);else acell=arow.childNodes[i]}else {var i=acell._cellIndex+dir;if (i >= 0 && i < this._cCount ){if (arow._childIndexes)i=arow._childIndexes[acell._cellIndex]+dir;acell=arow.childNodes[i]}else acell=this._nextRowCell(arow,dir,(dir==1?0:(this._cCount-1)))};if (!acell)return null;if (acell.style.display!="none")return acell;return this._getNextCell(acell,dir)};this._nextRow=function(ind,dir){var r=this.rowsCol[ind+dir];if (r && r.style.display=="none")return this._nextRow(ind+dir,dir);return r};this.scrollPage = function(dir){var new_ind=Math.floor((this.getRowIndex(this.row.idd)||0)+(dir)*this.objBox.offsetHeight/(this._srdh||20));if (new_ind<0)new_ind=0;if (this._dload && (!this.rowsCol[new_ind])){this._askRealRows(new_ind,function(){try{self.selectCell(new_ind,(this.cell?this.cell._cellIndex:0),true)}catch(e){}})}else{if (new_ind>=this.rowsCol.length)new_ind=this.rowsCol.length-1;this.selectCell(new_ind,this.cell._cellIndex,true)}};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,ev])) return false;var code="k"+ev.keyCode+"_"+(ev.ctrlKey?1:0)+"_"+(ev.shiftKey?1:0);if (this.cell){if (this._key_events[code]){if (false===this._key_events[code].call(this)) return true;if (ev.preventDefault)ev.preventDefault();ev.cancelBubble=true;return false};if (this._key_events["k_other"])this._key_events.k_other.call(this,ev)};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,show){if(typeof(r)!='object') r = this.rowsCol[r] this.selectCell(r,0,fl,preserve,false,show) };this.sortRows = function(col,type,order){order=(order||"asc").toLowerCase();type=(type||this.fldSort[col]);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";if (atype=="dhxCalendar" || atype=="dhxCalendarA")amet="getDate";for (var i=0;iarrTS[b.idd]?1:-1 else return arrTS[a.idd]=this.limit)return false;if ((this.xmlFileUrl!="")&&(!this._startXMLLoading)){this._startXMLLoading=true;this.loadXML(this.xmlFileUrl) }}else return false};var cnt = Math.min(this.rowsBufferOutSize,this.rowsBuffer[0].length) for(var i=0;i=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.getSelectedRowId = function(){return this.getSelectedId()};this.getSelectedId = function(){var selAr = new Array(0);var uni={};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._postRowProcessing(r,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)]||null)};this.setRowId = function(ind,row_id){var r = this.rowsCol[ind] this.changeRowId(r.idd,row_id) };this.changeRowId = function(oldRowId,newRowId){if (oldRowId==newRowId)return;var row = this.rowsAr[oldRowId] row.idd = newRowId;if(this.UserData[oldRowId]){this.UserData[newRowId] = this.UserData[oldRowId] this.UserData[oldRowId] = null};if (this._h2 && this._h2.get[oldRowId]){this._h2.get[newRowId]=this._h2.get[oldRowId];this._h2.get[newRowId].id=newRowId;delete this._h2.get[oldRowId]};if (this.rowsBuffer[0]){var ind=this.rowsBuffer[0]._dhx_find(oldRowId);if (ind!=-1)this.rowsBuffer[0][ind]==newRowId};this.rowsAr[oldRowId] = null;this.rowsAr[newRowId] = row;for (var i=0;i0){if(this.hdr.rows[0].cells.length>=this.columnIds.length){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};if ((label||"").indexOf("#")!=-1){var t=label.match(/(^|{)#([^}]+)(}|$)/);if (t){var tn="_in_header_"+t[2];if (this[tn])this[tn]((this.forceDivInHeader?z.cells[col].firstChild:z.cells[col]),col,label.split(t[0]))}}};this.clearAll = function(header){if (this._h2){this._h2=new dhtmlxHierarchy();if (this._fake){if (this._realfake)this._h2=this._fake._h2;else this._fake._h2=this._h2}};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]){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)};if (this.ftr){this.ftr.parentNode.removeChild(this.ftr);this.ftr=null};this._aHead=this.ftr=this._aFoot=null;this._hrrar=[]};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.xmlFileUrl="";this.recordsNoMore=null;this.changePage(1)};if (this._contextCallTimer)window.clearTimeout(this._contextCallTimer);if (this._sst)this.enableStableSorting(true);this.setSortImgState(false);this.setSizes();this.callEvent("onClearAll",[])};this.sortField = function(ind,repeatFl,r_el){if(this.getRowsNum()==0) return false;var el = this.hdr.rows[0].cells[ind];if (!el)return;if(el.tagName == "TH" && (this.fldSort.length-1)>=el._cellIndex && this.fldSort[el._cellIndex]!='na'){if((((this.sortImg.src.indexOf("_desc.gif")==-1) && (!repeatFl)) || ((this.sortImg.style.filter!="") && (repeatFl))) && (this.fldSorted==el)) var sortType = "des";else var sortType = "asc";if (!this.callEvent("onBeforeSorting",[ind,this,sortType])) return;this.sortImg.src = this.imgURL+"sort_"+(sortType=="asc"?"asc":"desc")+".gif";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.callEvent("onAfterSorting",[])};this.enableHeaderImages = function(fl){this.useImagesInHeader = fl};this.setHeader = function(hdrStr,splitSign,styles){if (typeof(hdrStr)!="object") var arLab = this._eSplit(hdrStr);else arLab=[].concat(hdrStr);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;i0 || !this.recordsNoMore )) this.changePage(this.currentPage+1)};var c=this.getRowById(rowID).cells[0];while (c && c.style.display=="none")c=c.nextSibling;if (c)this.moveToVisible(c,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;i8.5)) {this.hdr.onmousemove = new Function("e","this.grid.changeCursorState(e||window.event)");this.hdr.onmousedown = new Function("e","return 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;");if (_isMacOS){this.entBox.oncontextmenu = new Function("e","return this.grid._doContClick(e||window.event);")};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.sortImg.onclick= function(){self._onHeaderClick.apply({grid:self},[null,self.r_fldSorted])};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()});this.entBox.onbeforeactivate = new Function("","this._still_active=null;this.grid.setActive();event.cancelBubble=true;");this.entBox.onbeforedeactivate = new Function("","if (this.grid._still_active)this.grid._still_active=null;else this.grid.isActive=false;event.cancelBubble=true;");this.doOnRowAdded = function(row){};if (this.entBox.style.height.toString().indexOf("%")!=-1) this._setAutoResize();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);if (!this.dragContext)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 (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 (r._skipInsert){this.rowsAr[r.idd] = r;return r};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 && (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)) || (typeof ind =="undefined" && this.rowsBuffer[0].length)){if (typeof ind =="undefined")var inBufInd=this.rowsBuffer[0].length;else 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;i0){var temp=this[j];this[j]=this[j+1];this[j+1]=temp};size--}}};dhtmlXGridObject.prototype.enableKeyboardSupport=function(mode){this._htkebl=!convertStringToBoolean(mode)};dhtmlXGridObject.prototype.enableContextMenu=function(menu){this._ctmndx=menu};dhtmlXGridObject.prototype.setOnBeforeContextMenu=function(func){this.attachEvent("onBeforeContextMenu",func)};dhtmlXGridObject.prototype.setOnRightClick=function(func){this.attachEvent("onRightClick",func)};dhtmlXGridObject.prototype.setScrollbarWidthCorrection=function(width){this._scrFix=parseInt(width)};dhtmlXGridObject.prototype.enableTooltips=function(list){this._enbTts=list.split(",");for (var i=0;i0){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.getAllRowIds = function(separator){var ar = new Array(0) var z=this.getRowsNum();for(i=0;i=0){this.rowsBuffer[0]._dhx_removeAt(ind) this.rowsBuffer[1]._dhx_removeAt(ind) }};this.rowsAr[row_id] = null};for (var i=0;im)m=z};m+=20;this._setColumnSizeR(cInd,m);this._notresize=false;this.setSizes()};dhtmlXGridObject.prototype.detachHeader = function(index,hdr){hdr=hdr||this.hdr;var row=hdr.rows[index+1];if (row)row.parentNode.removeChild(row);this.setSizes()};dhtmlXGridObject.prototype.detachFooter = function(index){this.detachHeader(index,this.ftr)};dhtmlXGridObject.prototype.attachHeader = function(values,style,_type){if (typeof(values)=="string") values=this._eSplit(values);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 ((data[0][i]||"").indexOf("#")!=-1){var t=data[0][i].match(/(^|{)#([^}]+)(}|$)/);if (t){var tn="_in_header_"+t[2];if (this[tn])this[tn]((this.forceDivInHeader?w.firstChild:w),i,data[0][i].split(t[0]))}};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.dhx_Event=function() {this.dhx_SeverCatcherPath="";this.attachEvent = function(original, catcher, CallObj) {CallObj = CallObj||this;original = 'ev_'+original;if ( ( !this[original] )|| ( !this[original].addEvent ) ) {var z = new this.eventCatcher(CallObj);z.addEvent( this[original] );this[original] = z};return ( original + ':' + this[original].addEvent(catcher) )};this.callEvent=function(name,arg0){if (this["ev_"+name])return this["ev_"+name].apply(this,arg0);return true};this.checkEvent=function(name){if (this["ev_"+name])return true;return false};this.eventCatcher = function(obj) {var dhx_catch = new Array();var m_obj = obj;var func_server = function(catcher,rpc) {catcher = catcher.split(":");var postVar="";var postVar2="";var target=catcher[1];if (catcher[1]=="rpc"){postVar=''+catcher[2]+'';postVar2="";target=rpc};var z = function() {};return z};var z = function() {if (dhx_catch)var res=true;for (var i=0;ib.c?1:-1)});for (var i=0;i < this._cCount;i++)if (!t[i+1] || (typeof t[i].c == "undefined")) this._tabOrder[t[i].ind]=(t[0].ind+1)*-1;else this._tabOrder[t[i].ind]=t[i+1].ind};dhtmlXGridObject.prototype.i18n={loading:"Loading" };dhtmlXGridObject.prototype._key_events={k13_1_0:function(){var rowInd = this.rowsCol._dhx_find(this.row) this.selectCell(this.rowsCol[rowInd+1],this.cell._cellIndex,true)}, k13_0_1:function(){var rowInd = this.rowsCol._dhx_find(this.row) this.selectCell(this.rowsCol[rowInd-1],this.cell._cellIndex,true)}, k13_0_0:function(){this.editStop();this.callEvent("onEnter",[(this.row?this.row.idd:null),(this.cell?this.cell._cellIndex:null)])}, k9_0_0:function(){this.editStop();var z=this._getNextCell(null,1);if (z){this.selectCell(z.parentNode,z._cellIndex,(this.row!=z.parentNode),false,true);this._still_active=true}}, k9_0_1:function(){this.editStop();var z=this._getNextCell(null,-1);if (z){this.selectCell(z.parentNode,z._cellIndex,(this.row!=z.parentNode),false,true);this._still_active=true}}, k113_0_0:function(){if (this._f2kE)this.editCell()}, k32_0_0:function(){var c=this.cells4(this.cell);if (!c.changeState || (c.changeState()===false)) return false}, k27_0_0:function(){this.editStop(true)}, k33_0_0:function(){if(this.pagingOn)this.changePage(this.currentPage-1);else this.scrollPage(-1)}, k34_0_0:function(){if(this.pagingOn)this.changePage(this.currentPage+1);else this.scrollPage(1)}, k37_0_0:function(){if(!this.editor && this.isTreeGrid()) this.collapseKids(this.row) else return false}, k39_0_0:function(){if(!this.editor && this.isTreeGrid()) this.expandKids(this.row) else return false}, k40_0_0:function(){if (this.editor && this.editor.combo)this.editor.shiftNext();else{var rowInd = this.rowsCol._dhx_find(this.row)+1;if (rowInd!=this.rowsCol.length && rowInd!=this.obj.rows.length-1){var nrow=this._nextRow(rowInd-1,1);if (nrow._sRow || nrow._rLoad)return false;this.selectCell(nrow,this.cell._cellIndex,true)}else {this._key_events.k34_0_0.apply(this,[]);if (this.pagingOn && this.rowsCol[(this.currentPage-1)*this.rowsBufferOutSize]) this.selectCell((this.currentPage-1)*this.rowsBufferOutSize,0,true)}}}, k38_0_0:function(){if (this.editor && this.editor.combo)this.editor.shiftPrev();else{var rowInd = this.rowsCol._dhx_find(this.row)+1;if (rowInd!=-1 && (!this.pagingOn || (this.currentPage-1)*this.rowsBufferOutSize+1 < rowInd )){var nrow=this._nextRow(rowInd-1,-1);if (!nrow || nrow._sRow || nrow._rLoad)return false;this.selectCell(nrow,this.cell._cellIndex,true)}else {this._key_events.k33_0_0.apply(this,[]);if (this.pagingOn && this.rowsCol[this.currentPage*this.rowsBufferOutSize-1])this.selectCell(this.currentPage*this.rowsBufferOutSize-1,0,true)}}}};//(c)dhtmlx ltd. www.dhtmlx.com //v.1.5 build 80319 /* Copyright DHTMLX LTD. http://www.dhtmlx.com You allowed to use this component or parts of it under GPL terms To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com */