//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
*/





dhtmlXGridObject.prototype.filterBy=function(column, value, preserve){if (this.pagingOn)return this.filterByPaging(column, value, preserve);if (this._dload)return this.filterBySRND(column, value, preserve);if (this._srowsCol){if (!preserve)this.rowsCol=dhtmlxArray([].concat(this._srowsCol))}else
 this._srowsCol=[].concat(this.rowsCol);if (!this.rowsCol.length)return;var d=true;if (typeof(column)=="object")
 for (var j=0;j<value.length;j++)this._filterA(column[j],value[j]);else
 this._filterA(column,value);var p=this.obj.parentNode;var pp=this.obj.rows[0].parentNode;if (_isKHTML)pp=pp.parentNode;for (var i=this.obj.rows.length-1;i>0;i--)pp.removeChild(this.obj.rows[i]);for (var i=0;i<this.rowsCol.length;i++)pp.appendChild(this.rowsCol[i]);p.appendChild(this.obj);this.callEvent("onGridReconstructed",[])
};dhtmlXGridObject.prototype._filterA=function(column,value){if (value=="")return;var d=true;if (typeof(value)=="function") d=false;else value=(value||"").toString().toLowerCase();if (!this.rowsCol.length)return;var e=this.cells3(this.rowsCol[0],column);for (var i=this.rowsCol.length-1;i>=0;i--){e.cell=this.rowsCol[i].childNodes[column];if (d?(e.getValue().toString().toLowerCase().indexOf(value)==-1):(!value(e.getValue()))){this.rowsCol.splice(i,1)}}};dhtmlXGridObject.prototype.filterBySRND=function(column, value, preserve){for (var i=0;i<this.rowsCol.length;i++)if ( this.rowsCol[i] && !this.rowsBuffer[1][i]){this.rowsBuffer[1][i]=this.rowsCol[i];this.rowsBuffer[0][i]=this.rowsCol[i].idd};this._filterBy_core(column, value, preserve);for(var i=this.rowsCol.length-1;i>=0;i--)if (this.rowsCol[i])this.rowsCol[i].parentNode.removeChild(this.rowsCol[i]);this.rowsCol=new dhtmlxArray();this.limit=this.rowsBuffer[0].length;this._fastAddRowSpacer(0,this.limit*this._srdh);if (this.limit)this._askRealRows(0)};dhtmlXGridObject.prototype._filterBy_core=function(column, value, preserve){if (this._srowsBuf){if (!preserve){this.rowsBuffer=[dhtmlxArray([].concat(this._srowsBuf[0])),dhtmlxArray([].concat(this._srowsBuf[1]))]}}else{this._srowsBuf=[[].concat(this.rowsBuffer[0]),[].concat(this.rowsBuffer[1])]};if (!this.rowsBuffer[0].length)return;if (typeof(column)=="object" )
 for (var j=0;j<value.length;j++)this._filterB(column[j],value[j]);else this._filterB(column,value)};dhtmlXGridObject.prototype._filterB=function(column,value){if (value=="")return;var d=true;if (typeof(value)=="function") d=false;else value=(value||"").toString().toLowerCase();var e=null;for (var i=this.rowsBuffer[0].length-1;i>=0;i--){if (this.rowsBuffer[1][i].idd){if (!e)e=this.cells3(this.rowsBuffer[1][i],column);e.cell=this.rowsBuffer[1][i].childNodes[column];var val=e.getValue()}else {var val=this.rowsBuffer[1][i].getElementsByTagName("cell")[this._m_order?this._m_order[column]:column];if (val && val.firstChild)val=val.firstChild.data;else val=""};if (d?(val.toString().toLowerCase().indexOf(value)==-1):(!value(val))){this.rowsBuffer[0].splice(i,1);this.rowsBuffer[1].splice(i,1)}}};dhtmlXGridObject.prototype.filterByPaging=function(column, value, preserve){var a0=[];var a1=[];for (var i=0;i<this.rowsCol.length;i++){a0.push(this.rowsCol[i].idd);a1.push(this.rowsCol[i])};this.rowsBuffer[1]=dhtmlxArray(a1.concat(this.rowsBuffer[1]));this.rowsBuffer[0]=dhtmlxArray(a0.concat(this.rowsBuffer[0]));this._filterBy_core(column, value, preserve);for(var i=this.rowsCol.length-1;i>=0;i--)if (this.rowsCol[i].parentNode)this.rowsCol[i].parentNode.removeChild(this.rowsCol[i]);this.rowsCol=new dhtmlxArray();this.limit=this.rowsBuffer[0].length;this.changePage(1)};dhtmlXGridObject.prototype.collectValues=function(column){var c={};var f=[];this._build_m_order();var col=this._srowsCol||this.rowsCol;if (col.length)var e=this.cells3(col[0],column);for (var i=0;i<col.length;i++){if (!col[i])continue;e.cell=col[i].childNodes[this._m_order?this._m_order[column]:column];var val=e.getValue();if (val)c[val]=true};var col=this._srowsBuf||this.rowsBuffer;for (var i=col[0].length-1;i>=0;i--){if (!col[1][i])continue;if (col[1][i].idd){e.cell=col[1][i].childNodes[this._m_order?this._m_order[column]:column];var val=e.getValue();if (val)c[val]=true}else {var val=col[1][i].getElementsByTagName("cell")[column];if (val && val.firstChild){val=val.firstChild.data;if (val)c[val]=true}}};var vals=this.combos[this._m_order?this._m_order[column]:column];for (d in c)if (c[d]===true)f.push(vals?(vals.get(d)||d):d);return f.sort()};dhtmlXGridObject.prototype._build_m_order=function(){if (this._c_order){this._m_order=[]
 for (var i=0;i < this._c_order.length;i++){this._m_order[this._c_order[i]]=i}}};dhtmlXGridObject.prototype.filterByAll=function(){var a=[];var b=[];this._build_m_order();for (var i=0;i<this.filters.length;i++){var ind=this._m_order?this._m_order[this.filters[i][1]]:this.filters[i][1];b.push(ind);var val=this.filters[i][0]._filter?this.filters[i][0]._filter():this.filters[i][0].value;var vals;if (typeof val != "function" && (vals=this.combos[ind])){ind=vals.values._dhx_find(val);val=(ind==-1)?val:vals.keys[ind]};a.push(val)};this.filterBy(b,a);if (this._cssEven)this._fixAlterCss();this.callEvent("onFilterEnd",[this.filters])};dhtmlXGridObject.prototype.makeFilter=function(id,column,preserve){if (!this.filters)this.filters=[];if (typeof(id)!="object")
 id=document.getElementById(id);if(!id)return;var self=this;if (!id.style.width)id.style.width = "90%";if (id.tagName=='SELECT'){this.filters.push([id,column]);this._loadSelectOptins(id,column);id.onchange=function(){self.filterByAll()};if(_isIE)id.style.marginTop="1px";this.attachEvent("onEditCell",function(stage,a,ind){this._build_m_order();if (stage==2 && this.filters && ( this._m_order?(ind==this._m_order[column]):(ind==column) ))
 this._loadSelectOptins(id,column);return true})}else if (id.tagName=='INPUT'){this.filters.push([id,column]);id.value='';id.onkeydown=function(){if (this._timer)window.clearTimeout(this._timer);this._timer=window.setTimeout(function(){self.filterByAll()},500)}}else if (id.tagName=='DIV' && id.className=="combo"){this.filters.push([id,column]);id.style.padding="0px";id.style.margin="0px";if (!window.dhx_globalImgPath)window.dhx_globalImgPath=this.imgURL;var z=new dhtmlXCombo(id,"_filter","90%");z.enableFilteringMode(true);id.combo=z;id.value="";this._loadComboOptins(id,column);z.attachEvent("onChange",function(){id.value=z.getSelectedValue();self.filterByAll()})};if (id.parentNode)id.parentNode.className+=" filter"};dhtmlXGridObject.prototype.makeSearch=function(id,column){if (typeof(id)!="object")
 id=document.getElementById(id);if(!id)return;var self=this;if (id.tagName=='INPUT'){id.onkeypress=function(){if (this._timer)window.clearTimeout(this._timer);this._timer=window.setTimeout(function(){if (id.value=="")return;var z=self.findCell(id.value,column);if (z.length)self.selectRow(z[0][0])
 },500)}};if (id.parentNode)id.parentNode.className+=" filter"};dhtmlXGridObject.prototype._loadSelectOptins=function(t,c){var l=this.collectValues(c);t.innerHTML="";t.options[0]=new Option("","");var f=this._filter_tr?this._filter_tr[c]:null;for (var i=0;i<l.length;i++)t.options[t.options.length]=new Option(f?f(l[i]):l[i],l[i])};dhtmlXGridObject.prototype.setSelectFilterLabel=function(ind,fun){if (!this._filter_tr)this._filter_tr=[];this._filter_tr[ind]=fun};dhtmlXGridObject.prototype._loadComboOptins=function(t,c){var l=this.collectValues(c);t.combo.clearAll();t.combo.render(false);t.combo.addOption("","");for (var i=0;i<l.length;i++)t.combo.addOption(l[i],l[i]);t.combo.render(true)};dhtmlXGridObject.prototype.refreshFilters=function(){for (var i=0;i<this.filters.length;i++){switch(this.filters[i][0].tagName.toLowerCase()){case "input":
 break;case "select":
 this._loadSelectOptins.apply(this,this.filters[i]);break;case "div":
 this._loadComboOptins.apply(this,this.filters[i]);break}}};dhtmlXGridObject.prototype._filters_ready=function(fl,code){this.attachEvent("onXLE",this.refreshFilters);this.attachEvent("onClearAll",function(){this._srowsCol=null;if (!this.obj.rows.length)this.filters=[]});this._filters_ready=function(){}};dhtmlXGridObject.prototype._in_header_text_filter=function(t,i){t.innerHTML="<input type='text' style='width:98%;font-size:8pt;font-family:Tahoma;-moz-user-select:text;'>";t.onclick=t.onmousedown = function(e){(e||event).cancelBubble=true;return true};t.onselectstart=function(){return (event.cancelBubble=true)};this.makeFilter(t.firstChild,i);this._filters_ready()};dhtmlXGridObject.prototype._in_header_select_filter=function(t,i){t.innerHTML="<select style='width:98%;font-size:8pt;font-family:Tahoma;'></select>";t.onclick=function(e){(e||event).cancelBubble=true;return false};this.makeFilter(t.firstChild,i);this._filters_ready()};dhtmlXGridObject.prototype._in_header_combo_filter=function(t,i){t.innerHTML="<div style='width:100%;padding-left:2px;overflow:hidden;font-size:8pt;font-family:Tahoma;-moz-user-select:text;' class='combo'></div>";t.onselectstart=function(){return (event.cancelBubble=true)};t.onclick=function(e){(e||event).cancelBubble=true;return false};this.makeFilter(t.firstChild,i);this._filters_ready()};dhtmlXGridObject.prototype._in_header_text_search=function(t,i){t.innerHTML="<input type='text' style='width:98%;font-size:8pt;font-family:Tahoma;-moz-user-select:text;'>";t.onclick= t.onmousedown = function(e){(e||event).cancelBubble=true;return true};t.onselectstart=function(){return (event.cancelBubble=true)};this.makeSearch(t.firstChild,i)};dhtmlXGridObject.prototype._in_header_numeric_filter=function(t,i){this._in_header_text_filter.call(this,t,i);t.firstChild._filter=function(){var v=this.value;var r;var op="==";var num=parseFloat(v.replace("=",""));var num2=null;if (v){if (v.indexOf("..")!=-1){v=v.split("..");num=parseFloat(v[0]);num2=parseFloat(v[1]);return function(v){if (v>=num && v<=num2)return true;return false}};r=v.match(/>|>=|<=|</)
 if (r){op=r[0];num=parseFloat(v.replace(op,""))};return Function("v"," if (v "+op+" "+num+" )return true;return false;")}}};dhtmlXGridObject.prototype._in_header_master_checkbox=function(t,i){t.innerHTML="<input type='checkbox' />";var self=this;t.firstChild.onclick=function(){var val=this.checked?1:0;self.forEachRow(function(id){this.cells(id,i).setValue(val)})}};dhtmlXGridObject.prototype._in_header_stat_total=function(t,i,c){var calck=function(){var summ=0;for (var j=0;j<this.rowsCol.length;j++){var v=parseFloat(this.cells2(j,i).getValue());summ+=isNaN(v)?0:v};return this._maskArr[i]?this._aplNF(summ,i):(Math.round(summ*100)/100)};this._stat_in_header(t,calck,i,c,c)};dhtmlXGridObject.prototype._in_header_stat_multi_total=function(t,i,c){var cols=c[1].split(":");c[1]="";var calck=function(){var summ=0;for (var j=0;j<this.rowsCol.length;j++){var v=parseFloat(this.cells2(j,cols[0]).getValue())*parseFloat(this.cells2(j,cols[1]).getValue());summ+=isNaN(v)?0:v};return this._maskArr[i]?this._aplNF(summ,i):(Math.round(summ*100)/100)};this._stat_in_header(t,calck,i,c,c)};dhtmlXGridObject.prototype._in_header_stat_max=function(t,i,c){var calck=function(){var summ=-999999999;if (this.getRowsNum()==0) return "";for (var j=0;j<this.rowsCol.length;j++)summ=Math.max(summ,parseFloat(this.cells2(j,i).getValue()));return this._maskArr[i]?this._aplNF(summ,i):summ};this._stat_in_header(t,calck,i,c)};dhtmlXGridObject.prototype._in_header_stat_min=function(t,i,c){var calck=function(){var summ=999999999;if (this.getRowsNum()==0) return "";for (var j=0;j<this.rowsCol.length;j++)summ=Math.min(summ,parseFloat(this.cells2(j,i).getValue()));return this._maskArr[i]?this._aplNF(summ,i):summ};this._stat_in_header(t,calck,i,c)};dhtmlXGridObject.prototype._in_header_stat_average=function(t,i,c){var calck=function(){var summ=0;var count=0;for (var j=0;j<this.rowsCol.length;j++){var v=parseFloat(this.cells2(j,i).getValue());summ+=isNaN(v)?0:v;count++};return this._maskArr[i]?this._aplNF(summ,i):(Math.round(summ/count*100)/100)};this._stat_in_header(t,calck,i,c)};dhtmlXGridObject.prototype._in_header_stat_count=function(t,i,c){var calck=function(){return this.getRowsNum()};this._stat_in_header(t,calck,i,c)};dhtmlXGridObject.prototype._stat_in_header=function(t,calck,i,c){var that=this;var f=function(){this.dma(true)
 t.innerHTML=(c[0]?c[0]:"")+calck.call(this)+(c[1]?c[1]:"");this.dma(false)
 this.callEvent("onStatReady",[])
 };if (!this._stat_events){this._stat_events=[];this.attachEvent("onClearAll",function(){if (!this.hdr.rows[1]){for (var i=0;i<this._stat_events.length;i++)for (var j=0;j < 4;j++)this.detachEvent(this._stat_events[i][j]);this._stat_events=[]}})
 };this._stat_events.push([
 this.attachEvent("onGridReconstructed",f),
 this.attachEvent("onXLE",f),
 this.attachEvent("onFilterEnd",f),
 this.attachEvent("onEditCell",function(stage,id,ind){if (stage==2 && ind==i)f.call(this);return true})]);t.innerHTML=""};//(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
*/
