summaryrefslogtreecommitdiff
path: root/plugins/embed_original/init.js
blob: 517f2cd54a3c0c39346ebe16bcd42785a566aaa5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
function embedOriginalArticle(id) {
	try {
		var hasSandbox = "sandbox" in document.createElement("iframe");

		if (!hasSandbox) {
			alert(__("Sorry, your browser does not support sandboxed iframes."));
			return;
		}

		var query = "op=pluginhandler&plugin=embed_original&method=getUrl&id=" +
			param_escape(id);

		var c = false;

		if (isCdmMode()) {
			c = $$("div#RROW-" + id + " div[class=cdmContentInner]")[0];
		} else if (id == getActiveArticleId()) {
			c = $$("div[class=postContent]")[0];
		}

		if (c) {
			var iframe = c.getElementsByClassName("embeddedContent")[0];

			if (iframe) {
				Element.show(c.firstChild);
				c.removeChild(iframe);

				if (isCdmMode()) {
					cdmScrollToArticleId(id, true);
				}

				return;
			}
		}

		new Ajax.Request("backend.php",	{
			parameters: query,
			onComplete: function(transport) {
				var ti = JSON.parse(transport.responseText);

				if (ti) {

					var iframe = new Element("iframe", {
						class: "embeddedContent",
						src: ti.url,
						sandbox: 'allow-scripts',
					});

					if (c) {
						Element.hide(c.firstChild);

						if (c.firstChild.nextSibling)
							c.insertBefore(iframe, c.firstChild.nextSibling);
						else
							c.appendChild(iframe);

						if (isCdmMode()) {
							cdmScrollToArticleId(id, true);
						}
					}
				}

			} });


	} catch (e) {
		exception_error("embedOriginalArticle", e);
	}
}