(function(scope,main,comp){function ObjectQueryCollection(arr){this.items=arr;};ObjectQueryCollection.prototype.filter=function(property,filterFn,value){var items=this.items,len=items.length,result=[];for(var i=len;i--;){var item=items[i];if(filterFn(item[property],value)){result.push(item);}}
return new ObjectQueryCollection(result.reverse());};ObjectQueryCollection.prototype.distinct=function(property){var items=this.items,inArray=scope[comp].inArray,distinctValues=[];for(var i=items.length;i--;){if(!inArray(items[i][property],distinctValues)){distinctValues.push(items[i][property]);}}
return distinctValues;};ObjectQueryCollection.prototype.orderBy=function(property){var items=this.items;items.sort((function(property){return function(a,b){return((a[property]>b[property])?1:((a[property]<b[property])?-1:0));}})(property));return this;};ObjectQueryCollection.prototype.toArray=function(){return this.items;};scope[main]=function(arr){var obj=new ObjectQueryCollection(arr);return obj;};scope[comp]={equals:function(a,b){return(a==b);},strictEquals:function(a,b){return(a===b);},greaterThan:function(a,b){return(a>b);},greaterThanOrEquals:function(a,b){return(a>=b);},lessThan:function(a,b){return(a<b);},lessThanOrEquals:function(a,b){return(a<=b);},not:function(a,b){return(a!=b);},strictNot:function(a,b){return(a!==b);},inArray:function(a,b){for(var i=b.length;i--;){if(a===b[i]){return true;}}
return false;}};})(this,"$oq","$oqc");
