Все мы знаем, какой пиздец сейчас происходит с Украиной и одной известной вам страной-победительницей-фашизма. Если вы хотите почитать об этом, помочь актуализировать информацию или высказать свое мнение — можете сделать это в статье Война в Украине и в обсуждении.
MediaWiki:Common.js: различия между версиями
Перейти к навигации
Перейти к поиску
Нет описания правки |
Нет описания правки |
||
| Строка 240: | Строка 240: | ||
$(this).addClass('current').siblings().removeClass('current') | $(this).addClass('current').siblings().removeClass('current') | ||
.parents('div.section').find('div.box').hide().eq($(this).index()).fadeIn(150); | .parents('div.section').find('div.box').hide().eq($(this).index()).fadeIn(150); | ||
$(this).click(function() { | |||
$('div.box').hide(); | |||
$(this).removeClass('current'); | |||
}) | |||
}) | }) | ||
Версия от 22:35, 6 февраля 2012
/** Misc common defines ****/
/** Frame ***
function frame_resize(){
document.getElementById('frame').width='100%';
document.getElementById('frame').height=document.getElementById('frame').contentWindow.document.body.scrollHeight;
}
*/
/* Неоднократно нужные проверки: */
/*** _is_editpage - я на странице редактирования? */
/*** _is_editable - у меня есть права на правку текущей страницы? */
/*** _is_autoconfirmed */
var _is_editpage = wgAction == 'edit' || wgAction == 'submit';
var _is_editable = (function isEditable() {
var restrict = (typeof wgRestrictionEdit !== 'undefined'?wgRestrictionEdit:wgRestrictionCreate);
if (restrict.length < 1) return true;
if (!wgUserGroups) return false;
for(var g=0; g<wgUserGroups.length; g++) if ($.inArray(wgUserGroups[g], restrict)!=-1) return true;
return false;
})();
var _is_autoconfirmed = wgUserGroups && ($.inArray('autoconfirmed', wgUserGroups) != -1);
var f5s=('localStorage' in window) && window['localStorage']!==null ? window['localStorage'] : false;
/** /Misc common defines ****/
/** Processing queue ****/
/**** Queue.addOnce(function(){}, condition = true) - adds function to run once on page load */
/**** Queue.addEachFragment(function(scope){}, condtion = true) - adds function to run on page load AND on each AJAX loaded fragment */
/**** Function must take a single parameter - currently processed fragment */
/**** Both functions take optional second parameter - if false, function won't be run on current page */
/**** Queue.runOnce - self-descriptive, shouldn't be run directly */
/**** Queue.runEachFragment(scope) - scope can be an html element or array of elements */
var Queue = {
_once: [],
_each: [],
addOnce: function(f, pre) { if (pre !== false) this._once.push(f); return this; },
addEachFragment: function(f, pre) { if (pre !== false) this._each.push(f); return this; },
runOnce: function() {
$.each(this._once, function(i, f) { f() })
return this;
},
runEachFragment: function(sc) {
var que = this._each, sc = sc || document;
$(sc).each(function(x, e) { $.each(que, function(i, f) { f(e) }) });
return this;
}
};
addOnloadHook(function() { Queue.runOnce().runEachFragment(document); })
/** /Processing queue ****/
/** Collapsible tables ****/
/* Description: Allows tables to be collapsed, showing only the header. */
/* Authors: rewrite by [[User:Tachikoma]] based on [[Wikipedia:NavFrame]] */
// Используется в коллапсерах
var autoCollapse = 2;
var collapseCaption = "скрыть";
var expandCaption = "показать";
function createTableCollapsers(scope) {
function collapseTable(tbl) {
var rows = $('tr', tbl).not('tr:first')
var btn = $('a.collapselink', tbl)
if (btn.text() == collapseCaption) {
rows.hide(); btn.text(expandCaption)
} else {
rows.show(); btn.text(collapseCaption)
}
}
var autocollapse_count = 0;
$('table.collapsible', scope).each(function(i, e) {
var header = $('tr th:first', e)
if (!header.size()) return;
autocollapse_count++;
var collapselink = $('<a href="#" class="collapselink"/>').text(collapseCaption)
collapselink.click(function(ev) { ev.preventDefault(); collapseTable(e) })
var collapsebutton = $('<span style="float:right; text-align:right; width:6em; font-weight:normal">[<a></a>]</span>')
$('a', collapsebutton).replaceWith(collapselink)
header.prepend(collapsebutton)
if ($(e).hasClass('collapsed') || ( autocollapse_count >= autoCollapse && $(e).hasClass('autocollapsible'))) collapseTable(e)
});
};
Queue.addEachFragment( createTableCollapsers );
/** /Collapsible tables ****/
/** Dynamic Navigation Bars (experimental) *************************************
*
* Description: See [[Wikipedia:NavFrame]].
* Authors: rewrite by [[User:Tachikoma]] based on [[Wikipedia:NavFrame]]
*/
function createHiderButtons(scope) {
// set up the words in your language
var NavigationBarHide = '[' + collapseCaption + ']';
var NavigationBarShow = '[' + expandCaption + ']';
$('div.NavFrame', scope).each(function(i, e) {
var _ = $(this), head = _.children('.NavHead')
if(!head.size()) return;
var shown = true;
var NavToggle = $('<a href="#"></a>').text(NavigationBarHide)
function toggle() {
shown = !shown;
if(shown) {
_.children('.NavContent').show(); _.children('.NavPic').show(); NavToggle.text(NavigationBarHide)
} else {
_.children('.NavContent').hide(); _.children('.NavPic').hide(); NavToggle.text(NavigationBarShow)
};
}
NavToggle.click(function(ev) { ev.preventDefault(); toggle(); })
head.append(NavToggle);
if($(this).hasClass('NavHideByDefault')) toggle();
})
}
Queue.addEachFragment( createHiderButtons );
/** /Dynamic Navigation Bars ****/
/** NSFW Gallery Items ****/
/* Description: Hides images with |NSFW in description from galleries */
/* Authors: [[User:Anotubus]], [[User:Obvious]] */
function processNSFWGalleryItems(scope) {
$('div.gallerytext', scope).each(function(i, el) {
var descP = $('p:first', el)
if (!descP.size()) return;
var desc = descP.html()
if (desc.match(/(?:\|NSFW|NSFW\||^NSFW\s$)/i)) {
descP.html(desc.replace(/(.*)(?:\|NSFW|NSFW\||^NSFW\s$)(.*)/i,'$1$2'));
var NSFWFrame = $(el).parent().find('div:first')
NSFWFrame.children().css('visibility', 'hidden')
NSFWFrame.css({'background':'url(/skins/common/images/nsfw.png) no-repeat center center', 'cursor':'pointer'})
NSFWFrame.click(function(e) {
NSFWFrame.css({'background':'none', 'cursor':'default'})
NSFWFrame.children().css('visibility', 'visible')
})
}
})
};
Queue.addEachFragment(processNSFWGalleryItems);
/** /NSFW Gallery Items ****/
/** 0sectionedit ****/
function Sect0Edit(){
var editlink = $("#ca-edit a")
if (!editlink.size()) return;
var spansect0span = $('<span class="editsection">[<a>править</a>]</span>')
$('a', spansect0span).attr('href', editlink.attr('href')+"§ion=0")
$(".firstHeading").append(spansect0span)
};
Queue.addOnce(Sect0Edit, wgIsArticle == true && skin!='impetus')
/** /0sectionedit ****/
/** Morph LM Edition *************************************
*
* Description: слайдер скрытого контента
* Stolen^W Made by: hikki-zadrot, Tachikoma, Anotubus
*/
function createMorphObjects(scope) {
$('.morphcontainer', scope).each(function() {
var _this = this, all = $('*', this)
var containers = $('* .morphcontainer', this);
containers.each(function() { all = all.not($('*', this)) })
var morphlinks = all.filter('.morphlink')
var morphcontents = all.filter('.morphcontent')
var morphlink_hilight = $(_this).children('.morphlink_hilight').size()? $(_this).children('.morphlink_hilight').eq(0).attr('style'):'color:blue; text-decoration:underline; cursor: pointer;',
morphlink_default = $(_this).children('.morphlink_default').size()? $(_this).children('.morphlink_default').eq(0).attr('style'):'color:blue; cursor: pointer;',
selmethod = $(_this).hasClass('hover') ? 'mouseover' : 'click',
currentsel = 0;
$(morphcontents).hide();
$(_this).children('.morphlink_hilight, .morphlink_default').remove();
$(morphlinks).attr('style', morphlink_default).each(function(i, e) {
var assocmorphcontents = $('');
if ($(_this).hasClass('manualsort')) {
var morphlinkers = $(e).attr('class').replace(/(.*)morphlink(.*)/, '$1$2').match(/morph\S+/g);
for (x in morphlinkers)
assocmorphcontents = $(assocmorphcontents).add($(morphcontents).filter('.' + morphlinkers[x]));
} else {
assocmorphcontents = $(assocmorphcontents).add($(morphcontents).eq(i));
}
$(e).bind(selmethod, function() {
$(morphlinks).attr('style', morphlink_default);
$(e).attr('style', morphlink_hilight);
$(morphcontents).hide();
$(assocmorphcontents).show();
currentsel = i;
});
});
all.filter('.morphprev, .morphnext').click(function() {
var totrigger = $(this).hasClass('morphprev') ? (currentsel - 1) : ((currentsel + 1));
if (totrigger < 0) totrigger = morphlinks.size() - 1;
if (totrigger > morphlinks.size() - 1) totrigger = 0;
$(morphlinks).eq(totrigger).triggerHandler(selmethod);
});
$(morphlinks).eq(currentsel).triggerHandler(selmethod);
});
}
Queue.addEachFragment(createMorphObjects);
/** /Morph LM Edition ****/
/** Tabbed Edittools **************************************/
(function() {
$('#toolbar').before($('.mw-editTools'));
$('ul.tabs').delegate('li:not(.current)', 'click', function() {
$(this).addClass('current').siblings().removeClass('current')
.parents('div.section').find('div.box').hide().eq($(this).index()).fadeIn(150);
$(this).click(function() {
$('div.box').hide();
$(this).removeClass('current');
})
})
$('.subchar').hide()
$('.subchar').before('<span class="openchar">+</span>')
$('.openchar').click(function() {
$('.openchar').show()
$(this).hide()
$('.subchar').hide()
$(this).next('.subchar').fadeIn()
});
})();
/** /Tabbed Edittools ****/
/** Ref tooltips******************************************
*
* Description: Replace references with JQuery-based tooltips
* Made by: Tachikoma
*/
Queue.addOnce(function() {
$(window).click(function(e) {
if (!($(e.target).hasClass('areference') || $(e.target).parents().andSelf().hasClass('tooltip'))) {
$('.tooltip').hide(250); $('.curreference').removeClass('curreference')
}
})
}).addEachFragment(function(scope) {
var refs = $('ol.references', scope)
if (!refs.size()) return;
refs.before($('<a href="#">[показать примечания]</a>').click(function(e) { e.preventDefault(); refs.toggle() } )).hide()
$('.reference a', scope).click(function(e) {
e.preventDefault();
var x = $(this), iscurrent = x.hasClass('curreference'), i = $('.tooltip').hide(250)
$('.curreference').removeClass('curreference');
if (iscurrent) return;
var par = x.parent(), o = par.offset(), l = o.left, t = o.top+13
var b = $('body'), mh = b.height(), mw = b.width()
var c=$(x.attr('href'), refs).clone().find('a:first').remove().end().html()
x.addClass('areference').addClass('curreference')
if (!i.size()) i = $('<div/>').addClass('tooltip')
i.appendTo(b).queue(function() {
i.empty().append(c).css({ 'left': l-((l+i.width() >= mw) && i.width()), 'top': t-((t+i.height() >= mh) && (i.height()+26)) }).dequeue()
}).show(250)
})
})
/** /Ref tooltips****************************************/
/** Linkchecker **********************************************************/
function linkchecker(scope) {
$('.linkchecker', scope).each(function(i, e) {
var lc_if = $(".linkcheckerif a", this)
var lc_then = $(".linkcheckerthen", this)
var lc_else = $(".linkcheckerelse", this)
if (lc_if.size() && lc_then.size()) {
if (lc_if.hasClass('new')) lc_then.hide(); else lc_else.hide();
lc_if.parent().hide()
} else $(this).hide()
})
};
Queue.addEachFragment(linkchecker);
/** /Linkchecker ****/
/** ShortDiffURL ****/
function shortdiffurl() {
if ($("#ca-history").size() > 0 ){
$("#ca-history").after('<li><a href="'+location.href.replace(/^(.+\?).*&?(diff=(?:\d+|prev|next|curr)).*?(&oldid=\d+)?.*$/,"$1$2$3")+'" title="Короткая ссылка на дифф">url</a></li>');
}
};
Queue.addOnce(shortdiffurl, location.href.indexOf("diff=") != -1)
/** /ShortDiffURL ****/
/** Needed page **/
Queue.addOnce(function() {
$('.mw-redirect').addClass('neededpagerdrcts');
$('ul').addClass('neededpagelist');
}, wgPageName == 'Urbanculture:R')
/** /Needed page **/
/** Wikificator ************************************* */
if (wgAction == "edit" || wgAction == "submit" || wgPageName == "Special:Upload") //scripts specific to editing pages
{
importScriptURI("/skins/common/wikificator.js");
}
function wikification() {
$('<button id="Wikifybutton" onclick="Wikify();" type="button">Викифицировать</button>').insertBefore($('#wpSave'));
if(wgNamespaceNumber==-1 || wgNamespaceNumber==102) {$('#Wikifybutton').attr('disabled','disabled');}
$('#editpage-copywarn').insertAfter('.editOptions');
}
Queue.addOnce(wikification);
/** /Wikificator ************************************* */
/** Image Categorizer ************************************* */
/** Author: Anotubus */
if ( (wgCanonicalNamespace == 'File' || wgNamespaceNumber == 6) && _is_autoconfirmed && _is_editable ) importScriptURI("/skins/common/imgcat.js");
/** Image Categorizer ************************************* */
/** Section menus ****************************************** */
/* Authors: [[User:Tachikoma]], [[User:T_kns]], [[User:Мопец Ципельман]] */
// SectionToolbar.addButton(function(elt, out) { var button = $(elt).find('something'); $(out).doAnythingWith(button); })
// SectionToolbar.appendButton(function(elt) { var button = $(elt).find('something'); return button; }
var SectionToolbar = {
_buttons: [],
addButton: function(fn) { this._buttons.push(fn); return this },
appendButton: function(fn) { this._buttons.push(function(elt, out) { $(out).append(fn(elt)) }); return this },
_run: function(elt, out) { var btn = this._buttons; for(var i in btn) btn[i](elt, out) }
}
function addSectionMenus() {
if (!wgIsArticle) return;
var editimg = '<img src="/skins/Impetus/pencil.png" width="16" height="16" alt="Править" title="Править"/>'
var viewimg = '<img src="/skins/Impetus/magnifier.png" width="16" height="16" alt="Просмотр" title="Просмотр"/>'
var new_header = $('<h1 class="firstHeading" id="firstHeading"></h1>')
var headline = $('<span></span>').text($('#firstHeading').text()).appendTo(new_header)
var toolbar = $('<div class="showmenu"/>').appendTo(new_header).hide()
var toolsline = $('<div class="toolsline"/>')
var headtext = $('<span class="headtext"/>').html(headline.html())
var
div = $('<div class="redact"/>'),
link = $('<a/>').attr('href', wgScript+'?'+$.param({ title: wgPageName, action: 'edit', section: 0 }))
$('.firstHeading').replaceWith(new_header);
toolbar.append(toolsline.append(headtext).append(div.append(link.append(_is_editable ? editimg : viewimg))))
$(toolbar).css({'position': 'fixed', 'left':0, 'top':0})
$(new_header).hover(
function() {
var pos = headline.offset();
toolbar.show().offset({left:pos.left-6, top:pos.top-6})
}, function() { toolbar.hide() })
$(':header:has(.mw-headline)').each(function(i, e) {
var new_header = $(e).clone(true);
new_header.children().remove(':not(.mw-headline)')
var headline = $('.mw-headline', new_header)
var toolbar = $('<div class="showmenu"/>').appendTo(new_header).hide()
var toolsline = $('<div class="toolsline"/>')
var headtext = $('<span class="headtext"/>').html(headline.html())
toolsline.append(headtext)
var original_link = $('.editsection a',e)
if (original_link.size()) {
var
div = $('<div class="redact"/>'),
link = $('<a/>').attr('href', $('.editsection a',e).attr('href'))
toolsline.append(div.append(link.append(original_link.hasClass('viewlink')? viewimg : editimg)))
}
toolbar.append(toolsline)
var buttons = $('<div class="buttons-line"/>').appendTo(toolsline)
SectionToolbar._run(e, toolsline);
$(e).replaceWith(new_header);
toolbar.css({'position': 'fixed', 'left':0, 'top':0}).attr('rel','noClick');
var timer;
var interval;
$(new_header).hover(
function() {
if(toolbar.attr('rel') == 'hoverout') { clearInterval(interval); toolbar.attr('rel','hoverin');}
timer = setTimeout(function(){ var pos = headline.offset(); toolbar.show().offset({left:pos.left-6, top:pos.top-6}); }, 300);
},
function() {
clearTimeout(timer);
toolbar.attr('rel','hoverout');
interval = setInterval(function(){ if(toolbar.attr('rel') == 'hoverout') {clearInterval(interval); toolbar.hide();} else {toolbar.attr('rel','hoverout');}}, 1000);
}
)
});
$(window).scroll(function(){$('.showmenu').hide()})
}
SectionToolbar.addButton(function(elt, out) {
var
div = $('<div class="shorturl" />'),
input = $('<input class="shortlink" type="text" value="http://tinyurl.com/..." readonly="readonly" />').css('color', '#bbb').mousedown(function(e) {if(e.which == 3) {$(this).parent().parent().parent('.showmenu').attr('rel','rightClick');}}).hide(),
url_out = $('<a href="#"><img src="/skins/Impetus/url_out.png" width="16" height="16" alt="TinyURL" title="TinyURL"></a>'),
url_in = $('<a href="#"><img src="/skins/Impetus/url_in.png" width="16" height="16" alt="Внутренняя ссылка" title="Внутренняя ссылка"></a>')
function gentlyEncode(string) {
return ( encodeURIComponent
? encodeURIComponent(string).replace(/%20(\D)?/g, "+$1").replace(/'/g, escape("'"))
: escape(string).replace(/\+/g, "%2B").replace(/%20/g, "+") );
}
var href = /^([^#]+)#?.*$/.exec(location.href)[1]+'#'+$('.mw-headline',elt).attr('id')
function getTinyLink(evt) {
evt.preventDefault()
$.ajax({
url:"http://json-tinyurl.appspot.com/?callback=?&url=" + gentlyEncode(href),
dataType: 'json',
success: function(data) {
var tinyurl = data.tinyurl;
input.val(tinyurl).css('color', 'black').show().select()
url_out.click(function(e) { e.preventDefault(); input.val(tinyurl).show().select() })
url_out.attr('href', tinyurl)
},
error: function() {
url_out.one('click', getTinyLink); input.val("http://tinyurl.com/... :(((").show()
}
})
}
url_out.one('click', getTinyLink)
var Url={decode:function(string){return this._utf8_decode(unescape(string));},_utf8_decode:function(utftext){var string="";var i=0;var c=c1=c2=0;while(i<utftext.length){c=utftext.charCodeAt(i);if(c<128){string+=String.fromCharCode(c);i++;}else if((c>191)&&(c<224)){c2=utftext.charCodeAt(i+1);string+=String.fromCharCode(((c&31)<<6)|(c2&63));i+=2;}else{c2=utftext.charCodeAt(i+1);c3=utftext.charCodeAt(i+2);string+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));i+=3;}}return string;}}
url_in.click(function(e) {
e.preventDefault()
input.val('[['+wgPageName.replace(/_/g, ' ')+'#'+Url.decode( $('.mw-headline',elt).attr('id').replace(/\.([0-9A-F]{2})/g, '%$1').replace(/_/g, ' ') )+']]').css('color', 'black').show().select()
})
url_in.attr('href', href)
input.select().focus(function(e){ this.select() })
$('.buttons-line', out).append(url_out).append(url_in)
$(out).append(div.append(input))
})
Queue.addOnce(addSectionMenus, skin=='impetus');
/** /Section menus ***************************************** */
/** Autochange skin ***************************************** */
function addcurskintolinks() {
$('a:not([href*="useskin"])').each(function(i){
var hd = /^([^\#]*)(\#?.*)$/.exec($(this).attr('href'));
var h = hd[1];
if (/^(?:\/|http:\/\/urbanculture\.in)/.test(h)) {
h += (h.indexOf("?") == -1)?'?':'&';
h += 'useskin=' + skin.toLowerCase();
$(this).attr('href',h+hd[2]);
}
});
}
Queue.addOnce(addcurskintolinks, location.href.indexOf("useskin=") > 0)
/** /Autochange skin ***************************************** */
/** collapsibledivs *****/
;(function(){
function fromStorage() {
var items = {};
var saved = f5s && typeof localStorage.clpsd !== 'undefined' && localStorage.clpsd != null && localStorage.clpsd;
if (saved) {
if (saved.indexOf(':')!=-1) { saved = saved.replace(/(.+?):\d+/g, '$1'); localStorage.clpsd = saved; }
$.each(saved.split('|'), function(i, e) { items[e] = true })
}
return items;
}
function toStorage(items) {
var t = [];
$.each(items, function(i, e) { if (e) t.push(i); })
t = t.join('|').replace(/(?:^[\s\|]*|\|{2,}|[\s\|]*$)/g,'')
if (t!='') localStorage.clpsd = t; else delete localStorage.clpsd;
}
var saved = fromStorage();
function togglest(th) {
saved[th.attr('id')] = !(saved[th.attr('id')] === true);
th.children('.pBody').slideToggle();
th.children('h5').attr('class',(saved[th.attr('id')]===true)?'portlet-title-minimized':'portlet-title-maximized');
toStorage(saved);
}
function maxiorminiicon(cur) {
return (cur)?'/skins/common/images/Maximize.png':'/skins/common/images/Minimize.png';
}
function maxiorminiclass(cur) {
return (cur)?'maximinibutton maximinibutton-minimized':'maximinibutton maximinibutton-maximized';
}
function minimizediv(o, tdv, save) {
tdv.slideToggle('fast');
var itval = o.attr('src').indexOf('Maximize')==-1;
o.attr('src',maxiorminiicon(itval));
o.attr('class',maxiorminiclass(itval));
if (save && f5s) {
var id1 = tdv.attr('id').replace(/\:/g,' ');
saved[id1] = itval;
toStorage(saved)
}
}
Queue.addOnce(function() {
$('div.collapsiblediv').each(function(i) {
var _this = $(this), id = _this.attr('id');
var save = !(id === undefined || id.length == 0)
if(save) id = id.replace(/\:/g,' ');
var itval = save && saved && saved[id] === true;
var img = $('<img alt="_"></img>').attr('src', maxiorminiicon(itval)).attr('class',maxiorminiclass(itval)).click(function(){minimizediv(img, _this, save); return false;})
$(this).before($('<div class="maximinipanel"></div>').append(img));
if (itval) $(this).hide();
});
})
Queue.addOnce(function() {
$('div.portlet').each(function() {
if($.inArray($(this).attr('id'),['p-categories','p-navigation','p-tb','p-lang','p-Autors']) != -1) {
var _this = $(this);
$('h5',this).css('cursor','pointer').click(function(){togglest(_this);return false;});
if(saved[$(this).attr('id')] === true) {$('.pBody',this).hide();$('h5',this).attr('class','portlet-title-minimized');} else {$('h5',this).attr('class','portlet-title-maximized');}
}
});
},skin != 'impetusmobile');
})()
/** /collapsibledivs ****/
/* empty pagename ****/
Queue.addOnce(function() {
$('#bodySearch').submit(function(e) {
var wrap = $(this).children(".bodySearchWrap")
if(/^\s*$/.test(wrap.children('#bodySearchInput').val())) {
if(wrap.children('.pagenameneeded').size() == 0) {
wrap.append($('<p class="pagenameneeded">Введите имя статьи</p>').delay(1500).fadeOut('slow',function() {$(this).remove();}));
}
return false;
}
});
}, wgPageName == "Urbanculture:Новая_статья");
/* /empty pagename ****/
/* b-yauser ****/
Queue.addEachFragment(function(sc) { $('.b-yauser a', sc).each(function(i) { $(this).html($(this).html().replace(/^([^<])/,'<b>$1</b>')); }); });
/* /b-yauser ****/
/** Ajaxed ****
*
* Description: динамическая подгрузка произвольных страниц
* Authors: [[User:Tachikoma]], [[User:T_kns]]
*/
Queue.addEachFragment(function(scope) {
var placeholder = $('<div style="text-align:center;"><img src="/skins/common/images/ajax-loader.gif" alt="l" /></div>')
$(".ajaxed", scope).each(function(i, links){
var contcl = /\bajaxtarget(\S+?)(?:\s|$)/.exec(this.className)
if(!contcl) return;
contcl[1] = contcl[1].replace(/(:|\.|\\|\/)/g,'\\$1');
var lastshown, add_hider = false;
if($(this).hasClass('ajax_addhider')) { add_hider = $(".ajax_addhider.ajaxhide"+contcl[1], scope).eq(0); if(!add_hider.length) add_hider = false; }
var target = $(".ajaxcont"+contcl[1], scope).eq(0)
function show(cont, tgt) {
if(lastshown == cont[0]) { if(!tgt.is(':visible')) tgt.show(); return };
lastshown = cont[0]
var d = cont.data('remote');
if(!d) return;
tgt.empty().append( d.clone() )
if(add_hider)
tgt.append( $('<div style="clear:both;"/>').append( add_hider.clone().click(function(e) { e.preventDefault(); target.toggle(); if ( window.pageYOffset > ($(links).offset().top+$(links).height())) $('html,body').animate({scrollTop:$(links).offset().top}, 350); })) );
Queue.runEachFragment(tgt);
tgt.show()
}
$("a:not(.external):not(.new)", this).addClass('ajaxlink').one('click', function(e) {
$('.ajaxinclude'+contcl[1]).css("display","block");
e.preventDefault()
var $this = $(this)
$this.data('remote', placeholder.clone())
target.empty().append(placeholder.clone());
$.ajax({
url:wgScriptPath+'/api.php'+'?action=parse&format=json&redirects&prop=text&page='+encodeURIComponent($(this).attr('title')),
dataType: 'json',
success: function(data) {
var d = $(data.parse.text["*"]).wrap('<p/>'), inc;
inc = $('.ajaxinclude'+contcl[1], d); inc = inc.length ? inc : $('.ajaxinclude', d)
if(inc.length) d = inc;
$this.data('remote', d)
show($this, target)
}
})
$this.click(function(e){ e.preventDefault(); show($this, target); })
})
$(".ajaxhide"+contcl[1], scope).click(function(e) { e.preventDefault(); target.toggle(); })
})
});
/** /Ajaxed ****/
/* prettyPhoto ****/
Queue.addOnce(function() {
var wpisid = (wgVersion=='1.17')?'#wpImageSize':'#mw-input-thumbsize';
$(wpisid).parent().parent().parent().append('<tr class="mw-htmlform-field-HTMLSelectField"><td class="mw-label"></td><td class="mw-input"><input type="checkbox" id="mw-gallery-slide-show"> <label for="mw-gallery-slide-show">Использовать улучшенную галерею и предпросмотр миниатюр (требуется JavaScript)</label></td></tr>');
if (localStorage.getItem('gallery_slideshow') != 'false') { $('#mw-gallery-slide-show').prop("checked", true); };
var wpsbtnid = (wgVersion=='1.17')?'input.btnSavePrefs':'#prefcontrol';
$(wpsbtnid).click( function () {
if ( $('#mw-gallery-slide-show:checked').size() > 0 ) { localStorage.setItem('gallery_slideshow', 'true'); }
else { localStorage.setItem('gallery_slideshow', 'false'); };
});
}, f5s && wgCanonicalSpecialPageName == "Preferences");
function gallerySlideshow(scope) {
$.ajax({
url:'/skins/common/jquery.prettyPhoto.js',
dataType: 'script',
cache:true,
success: function() {
var usecoralcdn = false;
var imagepath = 'http://urbanculture.in'+(usecoralcdn?'.nyud.net':'')+'/images/';
$('a.internal[href^="/images/"]', scope).each(function() {
if(/\.(?:jpe?g|png|gif|svg)$/i.test($(this).attr('href'))) {
$(this)
.attr({'rel':'prettyPhoto','alt':$(this).attr('href')})
.addClass('mediafile')
.data('htmlDesc',(/^(?:Media|Медиа):/i.test($(this).text()) || $(this).text() == $(this).attr('title'))?'':$(this).html());
}
});
$('div.thumbinner > a.image > img[src^="/images/"]', scope).each(function() {
var src;
if($(this).parent('a').hasClass('image') && (src=/^\/images(?:\/thumb)?\/(.\/..\/[^\/]+)/.exec($(this).attr('src'))[1])) {
var descr;
title = ((descr=$(this).parent().parent().children('div.thumbcaption')).size()>0?descr.text().replace(/\s*(?:\|NSFW|NSFW\||^NSFW\s$|\[\d+\])\s*/g,''):'');
desc = descr.clone();
desc.children('div.magnify,sup.reference').remove();
$(this).parent('a')
.data('htmlDesc',desc.html())
.attr({
'title':title,
'alt':imagepath+src,
'rel':'prettyPhoto'
});
}
});
$('table.gallery, div.morphfileimages', scope).each(function(galnum) {
$('a.image > img[src^="/images/"]',this).each(function() {
var src;
var descr;
var title;
if($(this).parent('a').hasClass('image')
&& (src=/^\/images(?:\/thumb)?\/(.\/..\/[^\/]+)/.exec($(this).attr('src'))[1])
&& (title = ((descr =$(this).closest('div.gallerybox, div.morphcontent').children('div.gallerytext')).children('p').size()>0?descr.children('p').text().replace(/\s*(?:\|NSFW|NSFW\||^NSFW\s$|\[\d+\])\s*/g,''):''))!==false) {
desc = descr.children('p').clone();
desc.children('sup.reference').remove();
descr.prepend('<div class="magnify"><a href="'+$(this).parent('a').attr('href')+'" class="internal" title="Увеличить"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt=""></a></div>')
$(this).parent('a')
.data('htmlDesc',desc.html())
.attr({
'title':title,
'alt':imagepath+src,
'rel':'prettyPhoto[gallery_'+galnum+']'
});
}
});
});
$("a[rel^='prettyPhoto']", scope).prettyPhoto({
modal:false,
deeplinking:false,
animation_speed: 'fast',
opacity:0,
gallery_markup:'',
social_tools:false,
ie6_fallback: false,
show_title:false,
changepicturecallback: function(){
var desc = (arguments[1]=='prettyPhoto')?arguments[0].data('htmlDesc'):$('a.image[rel="'+arguments[1].replace(/([\]\[])/g,'\\$1')+'"]',scope).eq(arguments[3]).data('htmlDesc');
var fname = decodeURIComponent(/images\/.\/..\/(.+)$/.exec($('#fullResImage').attr('src'))[1])
var edesc = $('<div class="imagepagelink"/>')
.append($('<a/>')
.attr('href','/Файл:'+fname)
.text(/^(.{0,30})/
.exec(fname)[1]
// .replace(/\.([^\.]+)$/,'')
.replace(/_/g,' ')));
$('.pp_description')
.html($('.pp_description').is(':hidden')?'':desc)
.append(edesc).show();
if($('#fullResImage').width() < 145) {
$('.pp_pic_holder,.pp_default,.ppt,.pp_hoverContainer,.pp_details')
.css('width','+=200'); // jQuery 1.6
}
}
});
}
});
}
Queue.addEachFragment( gallerySlideshow, f5s && localStorage.getItem('gallery_slideshow') != 'false' );
/* /prettyPhoto ****/
/* By ****/
Queue.addOnce(function() {
$('body').addClass('ns-talk');
},wgPageName == "Urbanculture:Вниманию_участников");
/* /By ****/
/* Spoilers ****/
Queue.addEachFragment(function(scope) {
$('.spoiler',scope).click(function() {
$(this).toggleClass('spoilered');
});
});
/* /Spoilers ****/
/* new gallerytemplate ****/
function newgallerytemplate(scope) {
$('table.gallerytemplate table.gallery > tbody,table.gallerytemplate table.videogallery > tbody',scope).each(function() {
var params = {
'min_visible_rows':1,
'max_visible_rows':2,
'collapsible':true,
'expand_caption':'Показать',
'collapse_caption':'Скрыть',
'rows_in_table':$('> tr',this).size(),
'collapsible_rows':{}
}
/*******************************************
*******************************************/
if($(this).parent().parent('td').size() > 0
&& ($(this).parent().parent('td').attr('class') == 'gallerytemplate-preview'
|| $(this).parent().parent('td').attr('class') == 'gallerytemplate-content')) {
var paramblock = $(this).parent().parent().parent().parent().children('tr[class="gallerytemplate-params"]');
$('td',paramblock).each(function() {
params[$(this).attr('title')] = $(this).text();
});
if(params['min_visible_rows'] < 1) {params['min_visible_rows'] = 1}
if(params['collapsible'] == 'no'
|| params['collapsible'] == 'false'
|| params['collapsible'] == 0) {
params['collapsible'] = false;
} else {
params['collapsible'] = true;
}
} else {
/************************/
return true;
/************************/
}
/*******************************************
*******************************************/
if(params['rows_in_table'] < params['max_visible_rows']
|| params['rows_in_table'] <= params['min_visible_rows']
/* || params['min_visible_rows'] > params['max_visible_rows'] */
|| params['collapsible'] == false) {
return true;
}
/*******************************************
*******************************************/
var expandgal = $('<th/>')
.attr({'colspan':$('tr:first > td',this).size(),'class':'galpreview-showhidebutton'})
.append($('<span/>').text(params['expand_caption']))
.click(function() {
if($('span',this).text() == params['expand_caption']) {
params['collapsible_rows'].show();
$('span',this).text(params['collapse_caption'])
} else {
params['collapsible_rows'].hide();
$('span',this).text(params['expand_caption'])
}
});
$('> tr',this)
.slice(0,params['min_visible_rows'])
.attr('class','galpreview');
$('tr.galpreview:last',this).after($('<tr class="galpreview"/>').append(expandgal));
params['collapsible_rows'] = $('> tr:not(.galpreview)',this);
params['collapsible_rows'].hide();
});
}
Queue.addEachFragment(newgallerytemplate);
/* /new gallerytemplate ****/
var scrollmenu=false;
$(document).ready(function() {
$(document).scroll(function () {
if((scrollmenu==false) && ($(window).scrollTop()>112)){
$(".editbox").css('position','fixed');
$(".editbox").css('top','0');
scrollmenu=true;
}else if((scrollmenu==true) && ($(window).scrollTop()<113)){
$(".editbox").css('position','absolute');
$(".editbox").css('top','');
scrollmenu=false;
}
});
});
/*** AddThis ***/
var addthis_config = {
"ui_click":true,
"data_track_clickback":true,
services_custom:{
name: "my.ya.ru",
url: "http://my.ya.ru/posts_add_link.xml?URL={{URL}}&title={{TITLE}}&body=",
icon: "/skins/Impetus/Ya.png"}
};
var addthis_share = {"url":"http://urbanculture.in"+"/"+encodeURIComponent(wgPageName),"title":wgTitle,templates:{twitter: "{{title}} {{url}} from @Urbanculture_ru"}};
/*** Title page ***/
$('#write-article a').click(function () {
$(this).hide();
$('#create-page-lay').fadeIn();
$('#create-page-lay .createboxInput').focus();
$("#create-page-lay .createboxInput").focusout(function () {
if ($(this).val() == "") {
$('#create-page-lay').hide(),
$('#write-article a').fadeIn() }
});
return false;
});
/*** Blog page ***/
$('div.news.old').first().before("<div id='oldnews'></div>");
$('div.news.old').appendTo($('#oldnews'));
$('#oldnews').after("<div id='showarchive'><a id='show-link' href='#' class='showarchive'><span>Показать архив</span></a></div>");
$('#show-link').toggle( function() {
$('#oldnews').fadeIn();
$(this).html('<span>Скрыть архив</span>')
.stop();
}, function() {
$('#oldnews').hide();
$(this).html('<span>Показать архив</span>')
.stop();
});