/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


window[esri._dojoScopeName||"dojo"]._xdResourceLoaded(function(_1,_2,_3){return {depends:[["provide","dojox.grid.enhanced.plugins.filter.FilterBuilder"],["require","dojox.grid.enhanced.plugins.filter._FilterExpr"]],defineResource:function(_4,_5,_6){if(!_4._hasResource["dojox.grid.enhanced.plugins.filter.FilterBuilder"]){_4._hasResource["dojox.grid.enhanced.plugins.filter.FilterBuilder"]=true;_4.provide("dojox.grid.enhanced.plugins.filter.FilterBuilder");_4.require("dojox.grid.enhanced.plugins.filter._FilterExpr");(function(){var _7=_6.grid.enhanced.plugins.filter,_8=function(_9){return _4.partial(function(_a,_b){return new _7[_a](_b);},_9);},_c=function(_d){return _4.partial(function(_e,_f){return new _7.LogicNOT(new _7[_e](_f));},_d);};_4.declare("dojox.grid.enhanced.plugins.filter.FilterBuilder",null,{buildExpression:function(def){if("op" in def){return this.supportedOps[def.op.toLowerCase()](_4.map(def.data,this.buildExpression,this));}else{var _10=_4.mixin(this.defaultArgs[def.datatype],def.args||{});return new this.supportedTypes[def.datatype](def.data,def.isColumn,_10);}},supportedOps:{"equalto":_8("EqualTo"),"lessthan":_8("LessThan"),"lessthanorequalto":_8("LessThanOrEqualTo"),"largerthan":_8("LargerThan"),"largerthanorequalto":_8("LargerThanOrEqualTo"),"contains":_8("Contains"),"startswith":_8("StartsWith"),"endswith":_8("EndsWith"),"notequalto":_c("EqualTo"),"notcontains":_c("Contains"),"notstartswith":_c("StartsWith"),"notendswith":_c("EndsWith"),"isempty":_8("IsEmpty"),"range":function(_11){return new _7.LogicALL(new _7.LargerThanOrEqualTo(_11.slice(0,2)),new _7.LessThanOrEqualTo(_11[0],_11[2]));},"logicany":_8("LogicANY"),"logicall":_8("LogicALL")},supportedTypes:{"number":_7.NumberExpr,"string":_7.StringExpr,"boolean":_7.BooleanExpr,"date":_7.DateExpr,"time":_7.TimeExpr},defaultArgs:{"boolean":{"falseValue":"false","convert":function(_12,_13){var _14=_13.falseValue;var _15=_13.trueValue;if(_4.isString(_12)){if(_15&&_12.toLowerCase()==_15){return true;}if(_14&&_12.toLowerCase()==_14){return false;}}return !!_12;}}}});})();}}};});