diff options
Diffstat (limited to 'webapps/scripting/client/encoder.js')
-rw-r--r-- | webapps/scripting/client/encoder.js | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/webapps/scripting/client/encoder.js b/webapps/scripting/client/encoder.js deleted file mode 100644 index 4aa4cc0954..0000000000 --- a/webapps/scripting/client/encoder.js +++ /dev/null @@ -1,84 +0,0 @@ -/* - client side js functions for encoding/decoding objects into linear strings - - Copyright Andrew Tridgell 2005 - released under the GNU GPL Version 2 or later -*/ -/* - usage: - - enc = encodeObject(obj); - obj = decodeObject(enc); - - The encoded format of the object is a string that is safe to - use in URLs - - Note that only data elements are encoded, not functions -*/ - -function count_members(o) { - var i, count = 0; - for (i in o) { - count++; - } - return count; -} - -function encodeObject(o) { - var i, r = count_members(o) + ":"; - for (i in o) { - var t = typeof(o[i]); - if (t == 'object') { - r = r + "" + i + ":" + t + ":" + encodeObject(o[i]); - } else if (t == 'string') { - var s = encodeURIComponent(o[i]).replace(/%/g,'#'); - r = r + "" + i + ":" + t + ":" + s + ":"; - } else if (t == 'boolean' || t == 'number') { - r = r + "" + i + ":" + t + ":" + o[i] + ":"; - } else if (t == 'undefined' || t == 'null') { - r = r + "" + i + ":" + t + ":"; - } else if (t != 'function') { - alert("Unable to encode type " + t); - } - } - return r; -} - -function decodeObjectArray(a) { - var o = new Object(); - var i, count = a[a.i]; a.i++; - for (i=0;i<count;i++) { - var name = a[a.i]; a.i++; - var type = a[a.i]; a.i++; - var value; - if (type == 'object') { - o[name] = decodeObjectArray(a); - } else if (type == "string") { - value = decodeURIComponent(a[a.i].replace(/#/g,'%')); a.i++; - o[name] = value; - } else if (type == "boolean") { - value = a[a.i]; a.i++; - if (value == 'true') { - o[name] = true; - } else { - o[name] = false; - } - } else if (type == "undefined") { - o[name] = undefined; - } else if (type == "null") { - o[name] = null; - } else if (type == "number") { - value = a[a.i]; a.i++; - o[name] = value * 1; - } else { - alert("Unable to delinearise type " + type); - } - } - return o; -} - -function decodeObject(str) { - var a = str.split(':'); - a.i = 0; - return decodeObjectArray(a); -} |