(function(b) {
	var c, a = [];
	function e(g, f, i) {
		var h;
		h = b.fn[f];
		b.fn[f] = function() {
			var j;
			if (g !== "after") {
				j = i.apply(this, arguments);
				if (j !== undefined) {
					return j
				}
			}
			j = h.apply(this, arguments);
			if (g !== "before") {
				i.apply(this, arguments)
			}
			return j
		}
	}
	b.fn.tinymce = function(i) {
		var h = this, g, j = "", f;
		if (!h.length) {
			return
		}
		if (!i) {
			return tinyMCE.get(this[0].id)
		}
		function k() {
			if (d) {
				d();
				d = null
			}
			h.each(function(m, p) {
				var l, o = p.id || tinymce.DOM.uniqueId();
				p.id = o;
				l = new tinymce.Editor(o, i);
				l.render()
			})
		}
		if (!window.tinymce && !c && (g = i.script_url)) {
			c = 1;
			if (/_(src|dev)\.js/g.test(g)) {
				j = "_src"
			}
			window.tinyMCEPreInit = {
				base : g.substring(0, g.lastIndexOf("/")),
				suffix : j,
				query : ""
			};
			b.getScript(g, function() {
				tinymce.dom.Event.domLoaded = 1;
				c = 2;
				k();
				b.each(a, function(l, m) {
					m()
				})
			})
		} else {
			if (c === 1) {
				a.push(k)
			} else {
				k()
			}
		}
	};
	b.extend(b.expr[":"], {
		tinymce : function(f) {
			return f.id && !!tinyMCE.get(f.id)
		}
	});
	function d() {
		function f() {
			this.find("span.mceEditor,div.mceEditor").each(function(j, k) {
				var h;
				if (h = tinyMCE.get(k.id.replace(/_parent$/, ""))) {
					h.remove()
				}
			})
		}
		function g(i) {
			var h;
			if (i !== undefined) {
				f.call(this);
				this.each(function(k, l) {
					var j;
					if (j = tinyMCE.get(l.id)) {
						j.setContent(i)
					}
				})
			} else {
				if (this.length > 0) {
					if (h = tinyMCE.get(this[0].id)) {
						return h.getContent()
					}
				}
			}
		}
		e("both", "text", function(h) {
			if (h !== undefined) {
				return g.call(this, h)
			}
			if (this.length > 0) {
				if (ed = tinyMCE.get(this[0].id)) {
					return ed.getContent().replace(/<[^>]+>/g, "")
				}
			}
		});
		b.each( [ "val", "html" ], function(j, h) {
			e("both", h, g)
		});
		b.each( [ "append", "prepend" ], function(j, h) {
			e("before", h, function(i) {
				if (i !== undefined) {
					this.each(function(l, m) {
						var k;
						if (k = tinyMCE.get(m.id)) {
							if (h === "append") {
								k.setContent(k.getContent() + i)
							} else {
								k.setContent(i + k.getContent())
							}
						}
					})
				}
			})
		});
		e("both", "attr", function(h, i) {
			if (h && h === "value") {
				return g.call(this, i)
			}
		});
		b.each( [ "remove", "replaceWith", "replaceAll", "empty" ], function(j,
				h) {
			e("before", h, f)
		})
	}
})(jQuery);
