<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="bg">
		<id>http://bgf.zavinagi.org/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%B5%D0%B4%D0%B8%D1%8F%D0%A3%D0%B8%D0%BA%D0%B8%3ACommon.js%2FEdit_tools.js</id>
		<title>МедияУики:Common.js/Edit tools.js - Редакционна история</title>
		<link rel="self" type="application/atom+xml" href="http://bgf.zavinagi.org/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%B5%D0%B4%D0%B8%D1%8F%D0%A3%D0%B8%D0%BA%D0%B8%3ACommon.js%2FEdit_tools.js"/>
		<link rel="alternate" type="text/html" href="http://bgf.zavinagi.org/index.php?title=%D0%9C%D0%B5%D0%B4%D0%B8%D1%8F%D0%A3%D0%B8%D0%BA%D0%B8:Common.js/Edit_tools.js&amp;action=history"/>
		<updated>2026-04-08T19:46:19Z</updated>
		<subtitle>Редакционна история на страницата в БГ-Фантастика</subtitle>
		<generator>MediaWiki 1.29.1</generator>

	<entry>
		<id>http://bgf.zavinagi.org/index.php?title=%D0%9C%D0%B5%D0%B4%D0%B8%D1%8F%D0%A3%D0%B8%D0%BA%D0%B8:Common.js/Edit_tools.js&amp;diff=32975&amp;oldid=prev</id>
		<title>Борислав: функции за допълнителните редакторски инструменти</title>
		<link rel="alternate" type="text/html" href="http://bgf.zavinagi.org/index.php?title=%D0%9C%D0%B5%D0%B4%D0%B8%D1%8F%D0%A3%D0%B8%D0%BA%D0%B8:Common.js/Edit_tools.js&amp;diff=32975&amp;oldid=prev"/>
				<updated>2009-09-15T20:38:17Z</updated>
		
		<summary type="html">&lt;p&gt;функции за допълнителните редакторски инструменти&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;// добавя нови бутони и други играчки&lt;br /&gt;
function setupCustomEditTools() {&lt;br /&gt;
	var toolbar = document.getElementById(&amp;quot;toolbar&amp;quot;);&lt;br /&gt;
	// ако няма съществуващи бутони, няма да добавяме и тези&lt;br /&gt;
	if ( !toolbar ) { return; }&lt;br /&gt;
	toolbar.className += &amp;quot; buttonlinks&amp;quot;;&lt;br /&gt;
	var tools = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
	tools.id = &amp;quot;custombuttons&amp;quot;;&lt;br /&gt;
	for (var i in customInsButtons) {&lt;br /&gt;
		var el = customInsButtons[i];&lt;br /&gt;
		var title = el[3];&lt;br /&gt;
		if ( title.charAt(0) == &amp;quot;+&amp;quot; ) {&lt;br /&gt;
			title = &amp;quot;Вмъкване на &amp;quot; + title.substr(1);&lt;br /&gt;
		}&lt;br /&gt;
		addCustomButton(tools,&lt;br /&gt;
			{&amp;quot;href&amp;quot;: &amp;quot;javascript:insertTags('&amp;quot;+el[0] +&amp;quot;','&amp;quot;+el[1]+&amp;quot;','&amp;quot;+ el[2]+&amp;quot;')&amp;quot;,&lt;br /&gt;
			&amp;quot;title&amp;quot;: title, &amp;quot;innerHTML&amp;quot;: el[4]});&lt;br /&gt;
	}&lt;br /&gt;
	for (var i in customMiscButtons) {&lt;br /&gt;
		var el = customMiscButtons[i];&lt;br /&gt;
		addCustomButton(tools, {&amp;quot;href&amp;quot;:&amp;quot;javascript:&amp;quot;+el[0], &amp;quot;title&amp;quot;:el[1], &amp;quot;innerHTML&amp;quot;:el[2]});&lt;br /&gt;
	}&lt;br /&gt;
	addDropDownMenus(toolbar); // падащите менюта&lt;br /&gt;
	toolbar.appendChild(tools);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
hookEvent(&amp;quot;load&amp;quot;, setupCustomEditTools);&lt;br /&gt;
&lt;br /&gt;
function addCustomButton(box, item) {&lt;br /&gt;
	var b = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
	for (var attr in item) { b[attr] = item[attr]; }&lt;br /&gt;
	box.appendChild(b);&lt;br /&gt;
	box.appendChild( document.createTextNode(&amp;quot; &amp;quot;) );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function addDropDownMenus(parent) {&lt;br /&gt;
	var tplVar = null;&lt;br /&gt;
	for ( var i = 1; tplVar = tplVarBaseName + i,&lt;br /&gt;
			eval(&amp;quot;var tpl = typeof(&amp;quot;+ tplVar +&amp;quot;) == 'object' ? &amp;quot;+ tplVar +&amp;quot; : null&amp;quot;),&lt;br /&gt;
			tpl != null; i++ ) {&lt;br /&gt;
		addDropDownMenu(parent, tpl, tplDescriptions[i]);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** генерира падащо меню */&lt;br /&gt;
function addDropDownMenu(parent, content, title) {&lt;br /&gt;
	var box = document.createElement(&amp;quot;select&amp;quot;);&lt;br /&gt;
	box.title = &amp;quot;Оттук можете да вмъкнете &amp;quot; + title;&lt;br /&gt;
	box.onchange = function() {&lt;br /&gt;
		if (this.value != &amp;quot;-&amp;quot;) {&lt;br /&gt;
			loadPage(this.value);&lt;br /&gt;
			this.selectedIndex = 0;&lt;br /&gt;
		}&lt;br /&gt;
		return;&lt;br /&gt;
	};&lt;br /&gt;
	if ( appendOptions(box, content) &amp;gt; 1 ) {&lt;br /&gt;
		parent.appendChild(box);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function appendOptions(box, opts) {&lt;br /&gt;
	var count = 0;&lt;br /&gt;
	for (var i in opts) {&lt;br /&gt;
		if (opts[i] == &amp;quot;&amp;quot;) {&lt;br /&gt;
			continue; // skip emtpy entries&lt;br /&gt;
		}&lt;br /&gt;
		var child = typeof(opts[i]) == &amp;quot;object&amp;quot;&lt;br /&gt;
			? newOptgroup(i, opts[i])&lt;br /&gt;
			: newOption(opts[i], i);&lt;br /&gt;
		box.appendChild(child);&lt;br /&gt;
		count++;&lt;br /&gt;
	}&lt;br /&gt;
	return count;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function newOptgroup(label, data) {&lt;br /&gt;
	var g = document.createElement(&amp;quot;optgroup&amp;quot;);&lt;br /&gt;
	g.label = label;&lt;br /&gt;
	for (var i in data) {&lt;br /&gt;
		g.appendChild( newOption(data[i], i) );&lt;br /&gt;
	}&lt;br /&gt;
	return g;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function newOption(val, text) {&lt;br /&gt;
	var o = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
	o.value = val;&lt;br /&gt;
	o.appendChild( document.createTextNode(text) );&lt;br /&gt;
	return o;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* скрива/показва елемент */&lt;br /&gt;
function toggleElemDisplay(elemId) {&lt;br /&gt;
	var elem = document.getElementById(elemId);&lt;br /&gt;
	elem.style.display = elem.style.display == 'none' ? '' : 'none';&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* * * * * * * * * *   Ajax functions   * * * * * * * * * */&lt;br /&gt;
&lt;br /&gt;
var prevReq;&lt;br /&gt;
if ( typeof(wgScript) == &amp;quot;undefined&amp;quot; ) {&lt;br /&gt;
	var wgScript = &amp;quot;/index.php&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
var pageUrl = wgScript + &amp;quot;?title=$1&amp;amp;action=raw&amp;quot;;&lt;br /&gt;
var pageToFetch = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
function loadPage(page) {&lt;br /&gt;
	prevReq = sajax_init_object();&lt;br /&gt;
	if( !prevReq ) return false;&lt;br /&gt;
	pageToFetch = page;&lt;br /&gt;
	var getUrl = pageUrl.replace(/\$1/, encodeURI(page));&lt;br /&gt;
	showLoadIndicator();&lt;br /&gt;
	prevReq.onreadystatechange = insertIntoWikiText;&lt;br /&gt;
	prevReq.open(&amp;quot;GET&amp;quot;, getUrl, true);&lt;br /&gt;
	prevReq.setRequestHeader(&amp;quot;Content-Type&amp;quot;, &amp;quot;application/x-www-form-urlencoded&amp;quot;);&lt;br /&gt;
	prevReq.send(null);&lt;br /&gt;
	return true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function insertIntoWikiText() {&lt;br /&gt;
	if( prevReq.readyState != 4 ) {&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	hideLoadIndicator();&lt;br /&gt;
	if ( prevReq.status != 200 ) {&lt;br /&gt;
		window.alert(&amp;quot;Неуспешна връзка: &amp;quot; + prevReq.status +&lt;br /&gt;
			&amp;quot; “&amp;quot; + prevReq.statusText + &amp;quot;”\nСтраница: &amp;quot;+ pageToFetch);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	// изтриване на текст, отбелязан за невмъкване + &amp;lt;pre&amp;gt; и &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	var re = /&amp;lt;!--noinclude--&amp;gt;.*&amp;lt;!--\/noinclude--&amp;gt;|&amp;lt;\/?pre&amp;gt;|&amp;lt;\/?nowiki&amp;gt;/g;&lt;br /&gt;
	var content = prevReq.responseText.replace(re, &amp;quot;&amp;quot;);&lt;br /&gt;
	// replace escaped tags&lt;br /&gt;
	var specials = [&amp;quot;pre&amp;quot;, &amp;quot;nowiki&amp;quot;];&lt;br /&gt;
	for (var i in specials) {&lt;br /&gt;
		re = new RegExp(&amp;quot;\\[(\/?)&amp;quot;+ specials[i] +&amp;quot;\\]&amp;quot;, &amp;quot;g&amp;quot;);&lt;br /&gt;
		content = content.replace(re, &amp;quot;&amp;lt;$1&amp;quot;+ specials[i] +&amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	// split at caret’s position&lt;br /&gt;
	var parts = content.split(&amp;quot;&amp;gt;&amp;gt;|&amp;lt;&amp;lt;&amp;quot;);&lt;br /&gt;
	var left = parts[0];&lt;br /&gt;
	delete(parts[0]);&lt;br /&gt;
	var right = parts.join(&amp;quot;&amp;quot;);&lt;br /&gt;
	insertTags(left, right, &amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var loadIndicator;&lt;br /&gt;
function showLoadIndicator() {&lt;br /&gt;
	if ( typeof(loadIndicator) != &amp;quot;undefined&amp;quot; ) {&lt;br /&gt;
		loadIndicator.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	var content = document.getElementById(&amp;quot;content&amp;quot;);&lt;br /&gt;
	if ( !content ) { // no &amp;quot;content&amp;quot; element&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	loadIndicator = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
	loadIndicator.id = &amp;quot;loadIndicator&amp;quot;;&lt;br /&gt;
	loadIndicator.appendChild( document.createTextNode(&amp;quot;Шаблонът се зарежда…&amp;quot;) );&lt;br /&gt;
	content.appendChild(loadIndicator);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function hideLoadIndicator() {&lt;br /&gt;
	loadIndicator.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Борислав</name></author>	</entry>

	</feed>