src/pyams_skin/resources/js/ext/tinymce/dev/classes/util/JSON.js
changeset 69 a361355b55c7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/pyams_skin/resources/js/ext/tinymce/dev/classes/util/JSON.js	Wed Jun 17 10:00:10 2015 +0200
@@ -0,0 +1,109 @@
+/**
+ * JSON.js
+ *
+ * Copyright, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://www.tinymce.com/license
+ * Contributing: http://www.tinymce.com/contributing
+ */
+
+/**
+ * JSON parser and serializer class.
+ *
+ * @class tinymce.util.JSON
+ * @static
+ * @example
+ * // JSON parse a string into an object
+ * var obj = tinymce.util.JSON.parse(somestring);
+ *
+ * // JSON serialize a object into an string
+ * var str = tinymce.util.JSON.serialize(obj);
+ */
+define("tinymce/util/JSON", [], function() {
+	function serialize(o, quote) {
+		var i, v, t, name;
+
+		quote = quote || '"';
+
+		if (o === null) {
+			return 'null';
+		}
+
+		t = typeof o;
+
+		if (t == 'string') {
+			v = '\bb\tt\nn\ff\rr\""\'\'\\\\';
+
+			return quote + o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g, function(a, b) {
+				// Make sure single quotes never get encoded inside double quotes for JSON compatibility
+				if (quote === '"' && a === "'") {
+					return a;
+				}
+
+				i = v.indexOf(b);
+
+				if (i + 1) {
+					return '\\' + v.charAt(i + 1);
+				}
+
+				a = b.charCodeAt().toString(16);
+
+				return '\\u' + '0000'.substring(a.length) + a;
+			}) + quote;
+		}
+
+		if (t == 'object') {
+			if (o.hasOwnProperty && Object.prototype.toString.call(o) === '[object Array]') {
+				for (i = 0, v = '['; i < o.length; i++) {
+					v += (i > 0 ? ',' : '') + serialize(o[i], quote);
+				}
+
+				return v + ']';
+			}
+
+			v = '{';
+
+			for (name in o) {
+				if (o.hasOwnProperty(name)) {
+					v += typeof o[name] != 'function' ? (v.length > 1 ? ',' + quote : quote) + name +
+						quote + ':' + serialize(o[name], quote) : '';
+				}
+			}
+
+			return v + '}';
+		}
+
+		return '' + o;
+	}
+
+	return {
+		/**
+		 * Serializes the specified object as a JSON string.
+		 *
+		 * @method serialize
+		 * @param {Object} obj Object to serialize as a JSON string.
+		 * @param {String} quote Optional quote string defaults to ".
+		 * @return {string} JSON string serialized from input.
+		 */
+		serialize: serialize,
+
+		/**
+		 * Unserializes/parses the specified JSON string into a object.
+		 *
+		 * @method parse
+		 * @param {string} s JSON String to parse into a JavaScript object.
+		 * @return {Object} Object from input JSON string or undefined if it failed.
+		 */
+		parse: function(text) {
+			try {
+				// Trick uglify JS
+				return window[String.fromCharCode(101) + 'val']('(' + text + ')');
+			} catch (ex) {
+				// Ignore
+			}
+		}
+
+		/**#@-*/
+	};
+});