//<source lang="javascript">
function getElementsByClass(searchClass,node,tag) {
var classElements = [];
if ( node == null )
node = document;
if ( tag == null )
tag = '*';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
for (i = 0, j = 0; i < elsLen; i++) {
if ( pattern.test(els[i].className) ) {
classElements[j++] = els[i];
}
}
return classElements;
}
function ce(name) {
return document.createElement(name)
}
function createNewElement(toAppend) {
var newElement = ce("div")
newElement.style.marginTop = "0.7em"
var header = ce('h5')
header.innerHTML = 'смотри также'
var body = ce('div')
body.className = 'pBody'
document.getElementById("p-tb").appendChild(newElement)
newElement.appendChild(header)
newElement.appendChild(body)
body.appendChild(toAppend)
return newElement
}
function iProject2() {
var listElement = document.createElement("ul")
var codeNames = ['wikiquote', 'wikinews', 'wikisource', 'wikidict', 'wikibooks', 'wikispice', 'wiki-meta', 'wikicommons']
var displayNames = ['Викицитатник', 'Викиновости', 'Викитека', 'Викисловарь', 'Викиучебник', 'Викивиды', 'Метавики', 'Викисклад']
var linsk = []
var toHide = []
var ne = null
// Проекты
for (var i in codeNames) {
var iProjects = getElementsByClass(codeNames[i] + "-ref")
toHide = toHide.concat(getElementsByClass(codeNames[i] + "-box"))
if (iProjects.length != 0) {
var li = ce('li')
li.innerHTML = '<a href="/wiki/' + encodeURIComponent (displayNames[i]) + '" title="' + displayNames[i] + '">' + displayNames[i] + '</a>'
ne || (ne = createNewElement(listElement))
listElement.appendChild(li)
var ul = ce('ul')
li.appendChild(ul)
for (var j in iProjects) {
var li2 = ce('li')
ul.appendChild(li2)
li2.appendChild(iProjects[j].getElementsByTagName('a')[0].cloneNode(true))
}
}
}
// Порталы
var portals = getElementsByClass("portal-box")
toHide = toHide.concat(portals)
if (portals.length != 0) {
var li = ce('li')
var ul = null
ne || (ne = createNewElement(listElement))
listElement.appendChild(li)
// Если порталов больше одного, то добавляем секцию "Порталы"
if (portals.length > 1) {
ul = ce('ul')
li.innerHTML ='<a href="/wiki/' + encodeURIComponent ('Портал:Обзор') + '" title="Портал:Обзор">Порталы</a>'
li.appendChild(ul)
}
for (var i in portals) {
// Пытаемся получить ссылку на портал
var portalRefs = portals[i].getElementsByTagName('a')
var portalRef = (portalRefs[0].getElementsByTagName('img').length == 0 ? portalRefs[0] : portalRefs[1]).cloneNode(true)
var text = portalRef.innerHTML
// Если в ссылке не описанно, что это портал - берём в кавычки и добавляем слово "Портал"
if (text.indexOf("портал") == -1 && text.indexOf("Портал") == -1) {
if (text.indexOf("«")) { text = "«" + text + "»" }
text = "Портал " + text
}
portalRef.innerHTML = text
if (portals.length > 1) {
var li2 = ce('li')
ul.appendChild(li2)
li2.appendChild(portalRef)
}
else {
li.appendChild(portalRef)
}
}
}
var nav = document.getElementById('navigation-box')
if (nav)
toHide.push(nav)
// Скрываем старую навигацию
for (var i in toHide) {
toHide[i].style.display = 'none'
}
}
hookEvent("load", iProject2);
//</source >