function oeEmpty(n){if(typeof n=="undefined"||n===null)return!0;if(oeIsNonEmptyAA(n))return!1;if(oeIsArray(n)&&n.length==0)return!0;if(n instanceof Object){for(var t in n)return!1;return!0}return!1}function oeIsInt(n){return isNaN(n)===!1&&!(!n&&n!==0)&&!oeIsObject(n)}function oeIsObject(n){return typeof n=="undefined"||n===null?!1:n instanceof Object?!0:!1}function oeIsArray(n){if(typeof n=="undefined"||n===null)return!1;if(n instanceof Array)return!0;var t=Object.prototype.toString.call(n);return t&&t.indexOf("Array")>=0?!0:!1}function oeIsNonEmptyAA(n){if(typeof n=="undefined"||n===null||!(n instanceof Object))return!1;for(var t in n)return!0;return!1}function oeAAKeyExists(n,t){if(!n||!oeIsObject(t))return!1;for(var i in t)if(i===n)return!0;return!1}function oeArNumKeyExists(n,t){return isNaN(n)||n<0||!oeIsArray(t)?!1:n<t.length}function oeKeyExists(n,t){if(!n&&n!==0||!oeIsObject(t))return!1;for(var i in t)if(i===n)return!0;return isNaN(n)||n<0||!oeIsArray(t)?!1:n<t.length}function oeArLength(n){return oeIsArray(n)?n.length:0}function oeAALength(n){var t,i;if(!oeIsNonEmptyAA(n))return 0;t=0;for(i in n)t+=1;return t}function oejsonEncode(n){if(typeof JSON=="undefined"||!JSON)return null;try{return JSON.stringify(n)}catch(t){return null}}function oejsonDecode(n){if(typeof JSON=="undefined"||!JSON)return null;try{return JSON.parse(n)}catch(t){return null}}function __test(){var n={},t;n.field1=1;n["field 2"]=2;t={"Item name":"Item val"};alert("/".split("/").length);alert(oeKeyExists([],"field2"))}function OEDataContainer(n){arguments[0]!==oeflagBlockConstructor&&(this.Name=n,this.Values=null,this.PKeyColumns=null)}var oeflagBlockConstructor={};OEDataContainer.prototype.GetName=function(){return this.Name};OEDataContainer.prototype.SetName=function(n){this.Name=n};OEDataContainer.prototype.GetValue=function(n,t,i){if((t=typeof t!="undefined"?t:-1,i=typeof i!="undefined"?i:!1,i)||oeEmpty(n)||oeEmpty(this.Values)||!oeKeyExists(n,this.Values))return null;var r=this.Values[n];return t>=0&&oeIsArray(r)?oeArNumKeyExists(t,r)?r[t]:r[0]:r};OEDataContainer.prototype.GetNRows=function(n){return!n||empty(this.Values)||!oeAAKeyExists(n,this.Values)?0:oeArLength(this.Values[n])};OEDataContainer.prototype.SetFromAssociativeArray=function(n){this.Values=n}