functionlebedevrefs(){vardiglasttext;vargetsimpletext;diglasttext=function(n){returnn.lastChild?diglasttext(n.lastChild):n};getsimpletext=function(n){returnn.innerHTML.replace(/<(?:"(?:\\\\|\\"|\\[^"]|[^\\"])*"|'(?:\\\\|\\'|\\[^']|[^\\'])*'|[^"'>])+>/ig,'');//'};//innerText работает не вездеvarzone=document.getElementById('wikiPreview')||document.getElementById('bodyContent')||document.getElementById('mw_contentholder')||document.getElementById('article');varalles=Array();{varj=zone.getElementsByTagName('*');for(vari=0;i<j.length;i++){alles[i]=j[i]};};vargetdots=/^([\s\S]*?)([.,…]*)$/;vari=0;varf=function(){if(i<alles.length){varch=alles[i].childNodes;// Ищем последовательности элементов класса reference// а также рассматриваем ноды до и после нихfor(varj=0;j<ch.length;j++){varl=0;while(j+l<ch.length// &&&&(ch[j+l].nodeType==1/*элемент*/)// &&&&/(^|\s)reference(\s|$)/i.test(ch[j+l].className)){l++};if(l){//есть группаvargrp=document.createElement('span');for(vark=0;k<l;k++){grp.appendChild(ch[j]);//alles[i].removeChild(ch[j]);//автоматом};if(j<ch.length){alles[i].insertBefore(grp,ch[j])}else{alles[i].appendChild(grp)};grp.style.whiteSpace='nowrap';varppw=0.;if(j){if(ch[j-1].nodeType==3/*текст*/){vara=/^([\S\s]*\s)?(\S*?)([.,…]*)?$/.exec(ch[j-1].nodeValue);ch[j-1].nodeValue=a[1]||'';varb=document.createElement('span');vart=document.createTextNode(a[3]||a[2]);b.appendChild(t);grp.insertBefore(b,grp.firstChild);if(a[3]){b.style.marginRight='-'+b.offsetWidth+'px';t.nodeValue=a[2]+t.nodeValue;};ppw=b.offsetWidth;}else{// если предыдущий узел - элементvarlt=diglasttext(ch[j-1]);vara=getdots.exec(lt.nodeValue);if(a[2]){//финишные точки выделяемlt.nodeValue=a[1];varb=document.createElement('span');b.appendChild(document.createTextNode(a[2]));lt.parentNode.appendChild(b);ppw=b.offsetWidth;b.style.marginRight='-'+ppw+'px';};if(/nowrap|pre$/.test(ch[j-1].style.whiteSpace)||!/\s/.test(getsimpletext(ch[j-1]))){//если его можно втащить в неразрывный текст, делаем этоgrp.insertBefore(ch[j-1],grp.firstChild);ppw+=grp.firstChild.offsetWidth;}};//else };//if ( j )if(grp.nextSibling){//Смотрим дальше, если текст, отрезаем начальную точкуif(grp.nextSibling.nodeType==3){vara=/^([.,…]*)([\s\S]*?)$/.exec(grp.nextSibling.nodeValue);if(a[1]){grp.nextSibling.nodeValue=a[2];varb=document.createElement('span');b.appendChild(document.createTextNode(a[1]));grpw=grp.offsetWidth;grp.appendChild(b);b.previousSibling.style.marginRight=(ppw-grpw)+'px';b.style.marginRight=(grpw-ppw-b.offsetWidth)+'px';}//if(a[1])}//if( grp.nextSibling.nodeType==3 )}//if(grp.nextSibling)}//if(l)};//for(ch)window.setTimeout(f,1);}else{alert('stopped at'+i)};//if(i<alles.length)i++;};//ff();};if(mw.config.get('wgNamespaceNumber')>=0&&mw.config.get('wgUserName'))addOnloadHook(lebedevrefs);