Разлика между версии на „МедияУики:Common.js“
От БГ-Фантастика
м (всъщност масивите работят и със запетая след последния елемент) |
(малки подобрения от Уикипедия) |
||
| Ред 25: | Ред 25: | ||
// тук посочвайте какви шаблони да се вмъкват чрез падащото меню „Инфокутия…“ | // тук посочвайте какви шаблони да се вмъкват чрез падащото меню „Инфокутия…“ | ||
| − | var | + | var tpl1 = { |
| − | // "ИМЕ НА СТРАНИЦАТА" : " | + | // "ПОКАЗВАН ТЕКСТ" : "ИМЕ НА СТРАНИЦАТА", |
| − | "Шаблон:Инфокутия личност/празен" | + | "Инфокутия…" : "-", |
| − | "Шаблон:Инфокутия произведение/празен" | + | "Личност" : "Шаблон:Инфокутия личност/празен", |
| − | "Шаблон:Инфокутия статия/празен" | + | "Произведение" : "Шаблон:Инфокутия произведение/празен", |
| − | "Шаблон:Инфокутия рецензия/празен" | + | "Статия" : "Шаблон:Инфокутия статия/празен", |
| − | "Шаблон:Инфокутия интервю/празен" | + | "Рецензия" : "Шаблон:Инфокутия рецензия/празен", |
| − | "Шаблон:Инфокутия книга/празен" | + | "Интервю" : "Шаблон:Инфокутия интервю/празен", |
| − | "Шаблон:Инфокутия филм/празен" | + | "Книга" : "Шаблон:Инфокутия книга/празен", |
| − | "Шаблон:Инфокутия издателство/празен" | + | "Филм" : "Шаблон:Инфокутия филм/празен", |
| − | "Шаблон:Инфокутия клуб/празен" | + | "Издателство" : "Шаблон:Инфокутия издателство/празен", |
| − | "Шаблон:Инфокутия списание брой/празен" | + | "Клуб" : "Шаблон:Инфокутия клуб/празен", |
| − | "Шаблон:Инфокутия вложка писател/празен" | + | "Списание брой" : "Шаблон:Инфокутия списание брой/празен", |
| − | "Шаблон:Инфокутия вложка преводач/празен" | + | "Вложка писател" : "Шаблон:Инфокутия вложка писател/празен", |
| − | "Шаблон:Инфокутия вложка критик/празен" | + | "Вложка преводач" : "Шаблон:Инфокутия вложка преводач/празен", |
| − | "Шаблон:Инфокутия вложка журналист/празен" | + | "Вложка критик" : "Шаблон:Инфокутия вложка критик/празен", |
| − | "Шаблон:Инфокутия вложка рецензент/празен" | + | "Вложка журналист" : "Шаблон:Инфокутия вложка журналист/празен", |
| − | "Шаблон:Инфокутия вложка фен/празен" | + | "Вложка рецензент" : "Шаблон:Инфокутия вложка рецензент/празен", |
| − | "Шаблон:Инфокутия вложка издател/празен" | + | "Вложка фен" : "Шаблон:Инфокутия вложка фен/празен", |
| − | "Шаблон:Инфокутия вложка художник/празен | + | "Вложка издател" : "Шаблон:Инфокутия вложка издател/празен", |
| + | "Вложка художник" : "Шаблон:Инфокутия вложка художник/празен" | ||
}; | }; | ||
// тук посочвайте какви шаблони да се вмъкват чрез падащото меню „Образец…“ | // тук посочвайте какви шаблони да се вмъкват чрез падащото меню „Образец…“ | ||
| − | var | + | var tpl2 = { |
| − | // "ИМЕ НА СТРАНИЦАТА" : " | + | // "ПОКАЗВАН ТЕКСТ" : "ИМЕ НА СТРАНИЦАТА", |
| − | "БГ-Фантастика:Образец за статия за писател" | + | "Образец статия…" : "-", |
| − | "БГ-Фантастика:Образец за статия за художник" | + | "Писател" : "БГ-Фантастика:Образец за статия за писател", |
| − | "БГ-Фантастика:Образец за статия за музикант" | + | "Художник" : "БГ-Фантастика:Образец за статия за художник", |
| − | "БГ-Фантастика:Образец за статия за преводач" | + | "Музикант" : "БГ-Фантастика:Образец за статия за музикант", |
| − | "БГ-Фантастика:Образец за статия за режисьор" | + | "Преводач" : "БГ-Фантастика:Образец за статия за преводач", |
| − | "БГ-Фантастика:Образец за статия за актьор" | + | "Режисьор" : "БГ-Фантастика:Образец за статия за режисьор", |
| − | "БГ-Фантастика:Образец за статия за издател" | + | "Актьор" : "БГ-Фантастика:Образец за статия за актьор", |
| − | "БГ-Фантастика:Образец за статия за редактор" | + | "Издател" : "БГ-Фантастика:Образец за статия за издател", |
| − | "БГ-Фантастика:Образец за статия за фен" | + | "Редактор" : "БГ-Фантастика:Образец за статия за редактор", |
| − | "БГ-Фантастика:Образец за статия за литературно произведение" | + | "Фен" : "БГ-Фантастика:Образец за статия за фен", |
| − | "БГ-Фантастика:Образец за статия за книга" | + | "Произведение" : "БГ-Фантастика:Образец за статия за литературно произведение", |
| − | "БГ-Фантастика:Образец за статия за вестник" | + | "Книга" : "БГ-Фантастика:Образец за статия за книга", |
| − | "БГ-Фантастика:Образец за статия за списание" | + | "Вестник" : "БГ-Фантастика:Образец за статия за вестник", |
| − | "БГ-Фантастика:Образец за статия за поредица" | + | "Списание" : "БГ-Фантастика:Образец за статия за списание", |
| − | "БГ-Фантастика:Образец за статия за брой на вестник" | + | "Поредица" : "БГ-Фантастика:Образец за статия за поредица", |
| − | "БГ-Фантастика:Образец за статия за брой на списание" | + | "Вестник брой" : "БГ-Фантастика:Образец за статия за брой на вестник", |
| − | "БГ-Фантастика:Образец за статия за герой на произведение" | + | "Списание брой" : "БГ-Фантастика:Образец за статия за брой на списание", |
| − | "БГ-Фантастика:Образец за статия за второстепенни герои в произведение" | + | "Герой" : "БГ-Фантастика:Образец за статия за герой на произведение", |
| − | "БГ-Фантастика:Образец за статия за място в произведение" | + | "Второст. герои" : "БГ-Фантастика:Образец за статия за второстепенни герои в произведение", |
| − | "БГ-Фантастика:Образец за статия за понятие от произведение" | + | "Място" : "БГ-Фантастика:Образец за статия за място в произведение", |
| − | "БГ-Фантастика:Образец за статия за издателство" | + | "Понятие" : "БГ-Фантастика:Образец за статия за понятие от произведение", |
| − | "БГ-Фантастика:Образец за статия за фен-клуб" | + | "Издателство" : "БГ-Фантастика:Образец за статия за издателство", |
| − | "БГ-Фантастика:Образец за статия за събитие | + | "Фен-клуб" : "БГ-Фантастика:Образец за статия за фен-клуб", |
| + | "Събитие" : "БГ-Фантастика:Образец за статия за събитие" | ||
}; | }; | ||
// тук посочвайте какви шаблони да се вмъкват чрез падащото меню „Шаблон…“ | // тук посочвайте какви шаблони да се вмъкват чрез падащото меню „Шаблон…“ | ||
| − | var | + | var tpl3 = { |
| − | // "ИМЕ НА СТРАНИЦАТА" : " | + | // "ПОКАЗВАН ТЕКСТ" : "ИМЕ НА СТРАНИЦАТА", |
| − | "Шаблон:Превод/празен" | + | "Шаблон…" : "-", |
| − | "Шаблон:Пояснение/празен | + | "Превод" : "Шаблон:Превод/празен", |
| + | "Пояснение" : "Шаблон:Пояснение/празен" | ||
}; | }; | ||
| + | // описания на падащите менюта | ||
| + | var tplDescriptions = { | ||
| + | 1: "празна инфокутия", | ||
| + | 2: "образец за нова статия", | ||
| + | 3: "празен шаблон" | ||
| + | }; | ||
| − | + | var tplVarBaseName = "tpl"; | |
| − | var | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
// добавя нови бутони и други играчки | // добавя нови бутони и други играчки | ||
| Ред 115: | Ред 118: | ||
addDropDownMenus(toolbar); // падащите менюта | addDropDownMenus(toolbar); // падащите менюта | ||
toolbar.appendChild(tools); | toolbar.appendChild(tools); | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
| + | |||
| + | hookEvent("load", setupCustomEditTools); | ||
function addCustomButton(box, item) { | function addCustomButton(box, item) { | ||
| Ред 130: | Ред 130: | ||
function addDropDownMenus(parent) { | function addDropDownMenus(parent) { | ||
| − | + | var tplVar = null; | |
| − | + | for ( var i = 1; tplVar = tplVarBaseName + i, | |
| − | + | eval("var tpl = typeof("+ tplVar +") == 'object' ? "+ tplVar +" : null"), | |
| + | tpl != null; i++ ) { | ||
| + | addDropDownMenu(parent, tpl, tplDescriptions[i]); | ||
| + | } | ||
} | } | ||
| − | / | + | /** генерира падащо меню */ |
| − | function addDropDownMenu(parent, | + | function addDropDownMenu(parent, content, title) { |
var box = document.createElement("select"); | var box = document.createElement("select"); | ||
box.title = "Оттук можете да вмъкнете " + title; | box.title = "Оттук можете да вмъкнете " + title; | ||
box.onchange = function() { | box.onchange = function() { | ||
| − | if (this.value != "") { | + | if (this.value != "-") { |
loadPage(this.value); | loadPage(this.value); | ||
| − | this.selectedIndex=0; | + | this.selectedIndex = 0; |
} | } | ||
return; | return; | ||
}; | }; | ||
| − | + | if ( appendOptions(box, content) > 1 ) { | |
| − | + | parent.appendChild(box); | |
| − | + | } | |
| − | |||
} | } | ||
| + | |||
function appendOptions(box, opts) { | function appendOptions(box, opts) { | ||
| + | var count = 0; | ||
for (var i in opts) { | for (var i in opts) { | ||
| − | + | if (opts[i] == "") { | |
| + | continue; // skip emtpy entries | ||
| + | } | ||
| + | var child = typeof(opts[i]) == "object" | ||
| + | ? newOptgroup(i, opts[i]) | ||
| + | : newOption(opts[i], i); | ||
| + | box.appendChild(child); | ||
| + | count++; | ||
} | } | ||
| + | return count; | ||
| + | } | ||
| + | |||
| + | function newOptgroup(label, data) { | ||
| + | var g = document.createElement("optgroup"); | ||
| + | g.label = label; | ||
| + | for (var i in data) { | ||
| + | g.appendChild( newOption(data[i], i) ); | ||
| + | } | ||
| + | return g; | ||
} | } | ||
| Ред 172: | Ред 193: | ||
} | } | ||
| + | |||
| + | /* * * * * * * * * * Ajax functions * * * * * * * * * */ | ||
var prevReq; | var prevReq; | ||
| − | var | + | var pageUrl = "{{fullurl:$1|action=raw}}"; |
var pageToFetch = ""; | var pageToFetch = ""; | ||
| Ред 181: | Ред 204: | ||
if( !prevReq ) return false; | if( !prevReq ) return false; | ||
pageToFetch = page; | pageToFetch = page; | ||
| − | var getUrl = | + | var getUrl = pageUrl.replace(/\$1/, encodeURI(page)); |
//alert("Страница: "+page+"\nАдрес: "+getUrl); | //alert("Страница: "+page+"\nАдрес: "+getUrl); | ||
showLoadIndicator(); | showLoadIndicator(); | ||
| Ред 187: | Ред 210: | ||
prevReq.open("GET", getUrl, true); | prevReq.open("GET", getUrl, true); | ||
prevReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); | prevReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); | ||
| − | prevReq.send( | + | prevReq.send(null); |
return true; | return true; | ||
} | } | ||
| Ред 196: | Ред 219: | ||
} | } | ||
hideLoadIndicator(); | hideLoadIndicator(); | ||
| − | if( prevReq.status != 200 ) { | + | if ( prevReq.status != 200 ) { |
window.alert("Неуспешна връзка: " + prevReq.status + | window.alert("Неуспешна връзка: " + prevReq.status + | ||
" “" + prevReq.statusText + "”\nСтраница: "+ pageToFetch); | " “" + prevReq.statusText + "”\nСтраница: "+ pageToFetch); | ||
| Ред 204: | Ред 227: | ||
var re = /<!--noinclude-->.*<!--\/noinclude-->|<\/?pre>|<\/?nowiki>/g; | var re = /<!--noinclude-->.*<!--\/noinclude-->|<\/?pre>|<\/?nowiki>/g; | ||
var content = prevReq.responseText.replace(re, ""); | var content = prevReq.responseText.replace(re, ""); | ||
| − | + | // replace escaped tags | |
| + | var specials = ["pre", "nowiki"]; | ||
| + | for (var i in specials) { | ||
| + | re = new RegExp("\\[(\/?)"+ specials[i] +"\\]", "g"); | ||
| + | content = content.replace(re, "<$1"+ specials[i] +">"); | ||
| + | } | ||
| + | // split at caret’s position | ||
| + | var parts = content.split(">>|<<"); | ||
| + | var left = parts[0]; | ||
| + | delete(parts[0]); | ||
| + | var right = parts.join(""); | ||
| + | insertTags(left, right, ""); | ||
} | } | ||
| Ред 218: | Ред 252: | ||
} | } | ||
loadIndicator = document.createElement("div"); | loadIndicator = document.createElement("div"); | ||
| − | loadIndicator.id = " | + | loadIndicator.id = "loadIndicator"; |
| − | + | loadIndicator.appendChild( document.createTextNode("Шаблонът се зарежда…") ); | |
| − | |||
| − | |||
| − | |||
content.appendChild(loadIndicator); | content.appendChild(loadIndicator); | ||
} | } | ||
| Ред 229: | Ред 260: | ||
loadIndicator.style.display = "none"; | loadIndicator.style.display = "none"; | ||
} | } | ||
| + | |||
// function copied from {{SERVER}}/skins/common/preview.js | // function copied from {{SERVER}}/skins/common/preview.js | ||
| Ред 241: | Ред 273: | ||
} | } | ||
} | } | ||
| − | |||
| − | |||
| − | |||
Версия от 19:27, 28 ноември 2007
// от тези данни ще се генерират допълнителни бутони с insertTags()
var customInsButtons = [
// ТЕКСТ_ОТЛЯВО ТЕКСТ_ОТДЯСНО ТЕКСТ_ПО_СРЕДАТА ЗАГЛАВИЕ ПОКАЗАН_ТЕКСТ
["#виж ["+"[", "]]", "Страница", "+команда за пренасочване", "вж"],
["„", "“", "текст в кавички", "+български кавички", "„“"],
["̀", "", "", "+ударение за гласна буква (изберете една буква)", "à"],
["<code>", "</code>", "моля, въведете програмен код", "Текст с фиксирана ширина на буквите — обикновено код", "<tt>код</tt>"],
["<sub>", "</sub>", "моля, въведете индекс", "+долен индекс", "a<sub>x</sub>"],
["<sup>", "</sup>", "моля, въведете степен", "+горен индекс", "a<sup>x</sup>"],
[" ", "", "", "+несекаем интервал", "nbsp"],
["<del>", "</del>", "зачертан текст", "Отбелязване на текст като изтрит", "<del>del</del>"],
["{"+"{", "}}", "", "+скоби за шаблон", "{{}}"],
["—", "", "", "+дълга чертица — mdash", "—"],
["–", "", "", "+средна чертица — ndash", " – "],
["<"+"!-- ", " -->", "моля, въведете коментар", "+коментар", "<!--"],
["{"+"{ЗАМЕСТ:)}}", "", "", "+шаблон „Усмивка“", ":-)"],
["{"+"{ЗАМЕСТ:D}}", "", "", "+шаблон „Ухилено човече“", ":-D"],
["<ref>", "</ref>", "", "Бележка под линия", "<small><sup>[1]</sup></small>"]
];
// данни за още бутони с код по желание
var customMiscButtons = [
// КОД_ЗА_ИЗПЪЛНЕНИЕ ЗАГЛАВИЕ ПОКАЗАН_ТЕКСТ
];
// тук посочвайте какви шаблони да се вмъкват чрез падащото меню „Инфокутия…“
var tpl1 = {
// "ПОКАЗВАН ТЕКСТ" : "ИМЕ НА СТРАНИЦАТА",
"Инфокутия…" : "-",
"Личност" : "Шаблон:Инфокутия личност/празен",
"Произведение" : "Шаблон:Инфокутия произведение/празен",
"Статия" : "Шаблон:Инфокутия статия/празен",
"Рецензия" : "Шаблон:Инфокутия рецензия/празен",
"Интервю" : "Шаблон:Инфокутия интервю/празен",
"Книга" : "Шаблон:Инфокутия книга/празен",
"Филм" : "Шаблон:Инфокутия филм/празен",
"Издателство" : "Шаблон:Инфокутия издателство/празен",
"Клуб" : "Шаблон:Инфокутия клуб/празен",
"Списание брой" : "Шаблон:Инфокутия списание брой/празен",
"Вложка писател" : "Шаблон:Инфокутия вложка писател/празен",
"Вложка преводач" : "Шаблон:Инфокутия вложка преводач/празен",
"Вложка критик" : "Шаблон:Инфокутия вложка критик/празен",
"Вложка журналист" : "Шаблон:Инфокутия вложка журналист/празен",
"Вложка рецензент" : "Шаблон:Инфокутия вложка рецензент/празен",
"Вложка фен" : "Шаблон:Инфокутия вложка фен/празен",
"Вложка издател" : "Шаблон:Инфокутия вложка издател/празен",
"Вложка художник" : "Шаблон:Инфокутия вложка художник/празен"
};
// тук посочвайте какви шаблони да се вмъкват чрез падащото меню „Образец…“
var tpl2 = {
// "ПОКАЗВАН ТЕКСТ" : "ИМЕ НА СТРАНИЦАТА",
"Образец статия…" : "-",
"Писател" : "БГ-Фантастика:Образец за статия за писател",
"Художник" : "БГ-Фантастика:Образец за статия за художник",
"Музикант" : "БГ-Фантастика:Образец за статия за музикант",
"Преводач" : "БГ-Фантастика:Образец за статия за преводач",
"Режисьор" : "БГ-Фантастика:Образец за статия за режисьор",
"Актьор" : "БГ-Фантастика:Образец за статия за актьор",
"Издател" : "БГ-Фантастика:Образец за статия за издател",
"Редактор" : "БГ-Фантастика:Образец за статия за редактор",
"Фен" : "БГ-Фантастика:Образец за статия за фен",
"Произведение" : "БГ-Фантастика:Образец за статия за литературно произведение",
"Книга" : "БГ-Фантастика:Образец за статия за книга",
"Вестник" : "БГ-Фантастика:Образец за статия за вестник",
"Списание" : "БГ-Фантастика:Образец за статия за списание",
"Поредица" : "БГ-Фантастика:Образец за статия за поредица",
"Вестник брой" : "БГ-Фантастика:Образец за статия за брой на вестник",
"Списание брой" : "БГ-Фантастика:Образец за статия за брой на списание",
"Герой" : "БГ-Фантастика:Образец за статия за герой на произведение",
"Второст. герои" : "БГ-Фантастика:Образец за статия за второстепенни герои в произведение",
"Място" : "БГ-Фантастика:Образец за статия за място в произведение",
"Понятие" : "БГ-Фантастика:Образец за статия за понятие от произведение",
"Издателство" : "БГ-Фантастика:Образец за статия за издателство",
"Фен-клуб" : "БГ-Фантастика:Образец за статия за фен-клуб",
"Събитие" : "БГ-Фантастика:Образец за статия за събитие"
};
// тук посочвайте какви шаблони да се вмъкват чрез падащото меню „Шаблон…“
var tpl3 = {
// "ПОКАЗВАН ТЕКСТ" : "ИМЕ НА СТРАНИЦАТА",
"Шаблон…" : "-",
"Превод" : "Шаблон:Превод/празен",
"Пояснение" : "Шаблон:Пояснение/празен"
};
// описания на падащите менюта
var tplDescriptions = {
1: "празна инфокутия",
2: "образец за нова статия",
3: "празен шаблон"
};
var tplVarBaseName = "tpl";
// добавя нови бутони и други играчки
function setupCustomEditTools() {
var toolbar = document.getElementById("toolbar");
// ако няма съществуващи бутони, няма да добавяме и тези
if ( !toolbar ) { return; }
toolbar.className += " buttonlinks";
var tools = document.createElement("div");
tools.id = "custombuttons";
for (var i in customInsButtons) {
var el = customInsButtons[i];
var title = el[3];
if ( title.charAt(0) == "+" ) {
title = "Вмъкване на " + title.substr(1);
}
addCustomButton(tools,
{"href": "javascript:insertTags('"+el[0] +"','"+el[1]+"','"+ el[2]+"')",
"title": title, "innerHTML": el[4]});
}
for (var i in customMiscButtons) {
var el = customMiscButtons[i];
addCustomButton(tools, {"href":"javascript:"+el[0], "title":el[1], "innerHTML":el[2]});
}
addDropDownMenus(toolbar); // падащите менюта
toolbar.appendChild(tools);
}
hookEvent("load", setupCustomEditTools);
function addCustomButton(box, item) {
var b = document.createElement("a");
for (var attr in item) { b[attr] = item[attr]; }
box.appendChild(b);
box.appendChild( document.createTextNode(" ") );
}
function addDropDownMenus(parent) {
var tplVar = null;
for ( var i = 1; tplVar = tplVarBaseName + i,
eval("var tpl = typeof("+ tplVar +") == 'object' ? "+ tplVar +" : null"),
tpl != null; i++ ) {
addDropDownMenu(parent, tpl, tplDescriptions[i]);
}
}
/** генерира падащо меню */
function addDropDownMenu(parent, content, title) {
var box = document.createElement("select");
box.title = "Оттук можете да вмъкнете " + title;
box.onchange = function() {
if (this.value != "-") {
loadPage(this.value);
this.selectedIndex = 0;
}
return;
};
if ( appendOptions(box, content) > 1 ) {
parent.appendChild(box);
}
}
function appendOptions(box, opts) {
var count = 0;
for (var i in opts) {
if (opts[i] == "") {
continue; // skip emtpy entries
}
var child = typeof(opts[i]) == "object"
? newOptgroup(i, opts[i])
: newOption(opts[i], i);
box.appendChild(child);
count++;
}
return count;
}
function newOptgroup(label, data) {
var g = document.createElement("optgroup");
g.label = label;
for (var i in data) {
g.appendChild( newOption(data[i], i) );
}
return g;
}
function newOption(val, text) {
var o = document.createElement("option");
o.value = val;
o.appendChild( document.createTextNode(text) );
return o;
}
/* скрива/показва елемент */
function toggleElemDisplay(elemId) {
var elem = document.getElementById(elemId);
elem.style.display = elem.style.display == 'none' ? '' : 'none';
}
/* * * * * * * * * * Ajax functions * * * * * * * * * */
var prevReq;
var pageUrl = "{{fullurl:$1|action=raw}}";
var pageToFetch = "";
function loadPage(page) {
prevReq = openXMLHttpRequest();
if( !prevReq ) return false;
pageToFetch = page;
var getUrl = pageUrl.replace(/\$1/, encodeURI(page));
//alert("Страница: "+page+"\nАдрес: "+getUrl);
showLoadIndicator();
prevReq.onreadystatechange = insertIntoWikiText;
prevReq.open("GET", getUrl, true);
prevReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
prevReq.send(null);
return true;
}
function insertIntoWikiText() {
if( prevReq.readyState != 4 ) {
return;
}
hideLoadIndicator();
if ( prevReq.status != 200 ) {
window.alert("Неуспешна връзка: " + prevReq.status +
" “" + prevReq.statusText + "”\nСтраница: "+ pageToFetch);
return;
}
// изтриване на текст, отбелязан за невмъкване + <pre> и <nowiki>
var re = /<!--noinclude-->.*<!--\/noinclude-->|<\/?pre>|<\/?nowiki>/g;
var content = prevReq.responseText.replace(re, "");
// replace escaped tags
var specials = ["pre", "nowiki"];
for (var i in specials) {
re = new RegExp("\\[(\/?)"+ specials[i] +"\\]", "g");
content = content.replace(re, "<$1"+ specials[i] +">");
}
// split at caret’s position
var parts = content.split(">>|<<");
var left = parts[0];
delete(parts[0]);
var right = parts.join("");
insertTags(left, right, "");
}
var loadIndicator;
function showLoadIndicator() {
if ( typeof(loadIndicator) != "undefined" ) {
loadIndicator.style.display = "block";
return;
}
var content = document.getElementById("content");
if ( !content ) { // no "content" element
return;
}
loadIndicator = document.createElement("div");
loadIndicator.id = "loadIndicator";
loadIndicator.appendChild( document.createTextNode("Шаблонът се зарежда…") );
content.appendChild(loadIndicator);
}
function hideLoadIndicator() {
loadIndicator.style.display = "none";
}
// function copied from {{SERVER}}/skins/common/preview.js
function openXMLHttpRequest() {
if( window.XMLHttpRequest ) {
return new XMLHttpRequest();
} else if( window.ActiveXObject && navigator.platform != 'MacPPC' ) {
// IE/Mac has an ActiveXObject but it doesn't work.
return new ActiveXObject("Microsoft.XMLHTTP");
} else {
return null;
}
}