+ $area.append(pageEditor);
+};
+
+Rakka.previewRakkaPage = function (pageName, source) {
+ Rakka.displayWaitingMessage("Loading... please wait.");
+
+ var url = Rakka.baseURI + "render/" + encodeURI(pageName);
+ $.ajax({
+ type : "POST",
+ url : url,
+ contentType: "text/x-rakka",
+ data : source,
+ processData: false,
+ success : function (resultDoc) {
+ Rakka.hideWaitingMessage();
+ Rakka.showPreview(resultDoc);
+ },
+ error : function (req) {
+ alert("Error: " + req.status + " " + req.statusText);
+ }
+ });
+};
+
+Rakka.showPreview = function (doc) {
+ Rakka.$previewArea.empty();
+
+ Rakka.$previewHeader.show();
+ Rakka.$previewArea.show();
+
+ var root = doc.documentElement;
+ var child = root.firstChild;
+ do {
+ if (child.nodeType == 1) {
+ // 要素だったので複製
+ Rakka.$previewArea.append(child.cloneNode(true));
+ }
+ } while (child = child.nextSibling);
+};
+
+Rakka.submitTextPage = function (pageName, oldRevision, givenPageName, mimeType, text) {
+ var doc = document.implementation.createDocument(
+ "http://cielonegro.org/schema/Rakka/Page/1.0", "page", null);
+
+ var page = doc.documentElement;
+
+ if (oldRevision != null) {
+ // ページ書換時
+ var updateInfo = doc.createElement("updateInfo");
+ updateInfo.setAttribute("oldRevision", oldRevision);
+
+ if (pageName != givenPageName) {
+ var move = doc.createElement("move");
+ move.setAttribute("from", pageName);
+ updateInfo.appendChild(move);
+ }
+
+ page.appendChild(updateInfo);
+ }
+
+ page.setAttribute("type", mimeType);
+
+ var textData = doc.createElement("textData");
+ textData.appendChild(
+ doc.createTextNode(text));
+
+ page.appendChild(textData);
+
+ Rakka.displayWaitingMessage("Submitting... please wait.");
+
+ var url = Rakka.baseURI + encodeURI(givenPageName);
+ $.ajax({
+ type : "PUT",
+ url : url,
+ contentType: "text/xml",
+ data : doc,
+ processData: false,
+ success : function () {
+ window.location.replace(url);
+ },
+ error : function (req) {
+ Rakka.hideWaitingMessage();
+
+ var $area = Rakka.switchScreen();
+ $area.text("Error: " + req.status + " " + req.statusText);
+ }
+ });