rem: if(dojo.html.hasAttribute(rowA,"emptyRow") || dojo.html.hasAttribute(rowB,"emptyRow")){ return -1; } 
add: if(dojo.html.hasAttribute(rowA,"emptyRow")){ return 1; } if(dojo.html.hasAttribute(rowB,"emptyRow")){ return -1; }  
context: 	createSorter: function(/* array */info){		//	summary		//	creates a custom function to be used for sorting.		var self=this;		var sortFunctions=[];	//	our function stack.			function createSortFunction(fieldIndex, dir){			var meta=self.columns[fieldIndex];			var field=meta.getField();			return function(rowA, rowB){				if(dojo.html.hasAttribute(rowA,"emptyRow") || dojo.html.hasAttribute(rowB,"emptyRow")){					return -1;				}				//	TODO: check for markup and compare by rendered text.				var a = self.store.getField(self.getDataByRow(rowA), field);				var b = self.store.getField(self.getDataByRow(rowB), field);				var ret = 0;				if(a > b) ret = 1;				if(a < b) ret = -1;				return dir * ret;			}		}		var current=0;		var max = Math.min(info.length, this.maxSortable, this.columns.length);		while(current < max){			var direction = (info[current].direction == 0) ? 1 : -1;			sortFunctions.push(				createSortFunction(info[current].index, direction)			);			current++;		}		return function(rowA, rowB){			var idx=0;			while(idx < sortFunctions.length){				var ret = sortFunctions[idx++](rowA, rowB);				if(ret != 0) return ret;			}			//	if we got here then we must be equal.			return 0; 			};	//	function	},
meta: 4707	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/4707/50c3492c4c3c825dbd3401e134a19ed46799c456/FilteringTable.js/clean/www/resources/dojo-ajax/src/widget/FilteringTable.js