From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

//Преобразование ссылок в читабельный вид

//Часть кода позаимствована из http://ru.wikipedia.org/wiki/MediaWiki:Wikificator.js

//Автор: X-romix

 

var XRomix_RefConv_CantWork = 'RefConv не может работать в вашем браузере.\n\RefConv cannot work in your browser' // английский текст для тех, кто не видит русские буквы

var XRomix_RefConv_FullText = 'Эта кнопка предназначена для преобразования ссылок в читабельный вид. Выберите фрагмент текста.';

 

//Добавляет кнопку

function add_XRomix_RefConv_Button(){

	var toolbar = document.getElementById('toolbar')

	var textbox = document.getElementById('wpTextbox1')

	if (!textbox || !toolbar) return

	var i = document.createElement('img')

	i.src = 'http://upload.wikimedia.org/wikipedia/ru/0/0d/Button-RefConv.png'

	//i.src = 'http://upload.wikimedia.org/wikipedia/ru/7/75/Button-Test.PNG'

	

	i.alt = i.title = 'Преобразование ссылки в читаемый вид'

	i.onclick = XRomix_RefConv1

	i.style.cursor = 'pointer'

	toolbar.appendChild(i)

 

} 

 

//Этот код выполняется в начале.

if (wgAction == 'edit' || wgAction == 'submit'){

  addOnloadHook(add_XRomix_RefConv_Button)

}

 

 

//Функция по преобразованию текста

function XRomix_RefConv1(){

 //Проверяем, поддерживает ли браузер регулярные выражения (RegExp)	

 if (('code'.replace(/d/g, 'r') != 'core') 

    || (navigator.appName=='Netscape' && navigator.appVersion.substr (0, 1) < 5))

  { alert(XRomix_RefConv_CantWork); return }

 setWpSummary();

 var txt, hidden = [], hidIdx = 0, wpTextbox1 = document.editform.wpTextbox1

 

 wpTextbox1.focus();

 

 var winScroll=getScrollTop(wpTextbox1)//remember window scroll

 var startPos = getSelectionStart(wpTextbox1) 

 var endPos = startPos+getSelectionLength(wpTextbox1)

 

 if (startPos==-2)

 // Для браузеров, которые не умеют возвращать выделенный фрагмент, выдаем ошибку

   { alert(XRomix_RefConv_CantWork); return }

 

	if (startPos==endPos){

	  while (1==1){

		if (startPos==0) break;

		var str= wpTextbox1.value.substring(startPos, startPos+7);

		if (str.search(/http\:\/\//i)!=-1) break;

		startPos--;

	  }

	  var str= wpTextbox1.value.substr(startPos);

	  endPos=str.search(/[\s\]\t\n\<\>]/);

	  if (endPos==-1) {endPos=wpTextbox1.value.length;}

	  else{endPos=endPos+startPos} 

	  

	  if(endPos<wpTextbox1.selectionStart){

	    alert('В текущей позиции курсора не найден интернет-адрес http:// ');

		return;

	  }

	}

	

    txt = wpTextbox1.value.substring(startPos, endPos)

    if (txt == '') {alert(XRomix_RefConv_FullText); return}

    else{

 

	  processText()

      wpTextbox1.value = wpTextbox1.value.substring(0, startPos) + txt + wpTextbox1.value.substring(endPos)

    }

	

	setSelectionRange(wpTextbox1, startPos, startPos + txt.length)

 

	setScrollTop(wpTextbox1, winScroll)//scroll back

 

//Здесь производим замену в переменной txt - это отразится на выделенном фрагменте текста 

function processText(){

  

  txt = txt.replace(/%D0%81/g, 'Ё'); 

  txt = txt.replace(/%D0%90/g, 'А'); 

  txt = txt.replace(/%D0%91/g, 'Б'); 

  txt = txt.replace(/%D0%92/g, 'В'); 

  txt = txt.replace(/%D0%93/g, 'Г'); 

  txt = txt.replace(/%D0%94/g, 'Д'); 

  txt = txt.replace(/%D0%95/g, 'Е'); 

  txt = txt.replace(/%D0%96/g, 'Ж'); 

  txt = txt.replace(/%D0%97/g, 'З'); 

  txt = txt.replace(/%D0%98/g, 'И'); 

  txt = txt.replace(/%D0%99/g, 'Й'); 

  txt = txt.replace(/%D0%9A/g, 'К'); 

  txt = txt.replace(/%D0%9B/g, 'Л'); 

  txt = txt.replace(/%D0%9C/g, 'М'); 

  txt = txt.replace(/%D0%9D/g, 'Н'); 

  txt = txt.replace(/%D0%9E/g, 'О'); 

  txt = txt.replace(/%D0%9F/g, 'П'); 

  txt = txt.replace(/%D0%A0/g, 'Р'); 

  txt = txt.replace(/%D0%A1/g, 'С'); 

  txt = txt.replace(/%D0%A2/g, 'Т'); 

  txt = txt.replace(/%D0%A3/g, 'У'); 

  txt = txt.replace(/%D0%A4/g, 'Ф'); 

  txt = txt.replace(/%D0%A5/g, 'Х'); 

  txt = txt.replace(/%D0%A6/g, 'Ц'); 

  txt = txt.replace(/%D0%A7/g, 'Ч'); 

  txt = txt.replace(/%D0%A8/g, 'Ш'); 

  txt = txt.replace(/%D0%A9/g, 'Щ'); 

  txt = txt.replace(/%D0%AA/g, 'Ъ'); 

  txt = txt.replace(/%D0%AB/g, 'Ы'); 

  txt = txt.replace(/%D0%AC/g, 'Ь'); 

  txt = txt.replace(/%D0%AD/g, 'Э'); 

  txt = txt.replace(/%D0%AE/g, 'Ю'); 

  txt = txt.replace(/%D0%AF/g, 'Я'); 

  

  txt = txt.replace(/%D1%91/g, 'ё'); 

  txt = txt.replace(/%D0%B0/g, 'а'); 

  txt = txt.replace(/%D0%B1/g, 'б'); 

  txt = txt.replace(/%D0%B2/g, 'в'); 

  txt = txt.replace(/%D0%B3/g, 'г'); 

  txt = txt.replace(/%D0%B4/g, 'д'); 

  txt = txt.replace(/%D0%B5/g, 'е'); 

  txt = txt.replace(/%D0%B6/g, 'ж'); 

  txt = txt.replace(/%D0%B7/g, 'з'); 

  txt = txt.replace(/%D0%B8/g, 'и'); 

  txt = txt.replace(/%D0%B9/g, 'й'); 

  txt = txt.replace(/%D0%BA/g, 'к'); 

  txt = txt.replace(/%D0%BB/g, 'л'); 

  txt = txt.replace(/%D0%BC/g, 'м'); 

  txt = txt.replace(/%D0%BD/g, 'н'); 

  txt = txt.replace(/%D0%BE/g, 'о'); 

  txt = txt.replace(/%D0%BF/g, 'п'); 

  txt = txt.replace(/%D1%80/g, 'р'); 

  txt = txt.replace(/%D1%81/g, 'с'); 

  txt = txt.replace(/%D1%82/g, 'т'); 

  txt = txt.replace(/%D1%83/g, 'у'); 

  txt = txt.replace(/%D1%84/g, 'ф'); 

  txt = txt.replace(/%D1%85/g, 'х'); 

  txt = txt.replace(/%D1%86/g, 'ц'); 

  txt = txt.replace(/%D1%87/g, 'ч'); 

  txt = txt.replace(/%D1%88/g, 'ш'); 

  txt = txt.replace(/%D1%89/g, 'щ'); 

  txt = txt.replace(/%D1%8A/g, 'ъ'); 

  txt = txt.replace(/%D1%8B/g, 'ы'); 

  txt = txt.replace(/%D1%8C/g, 'ь'); 

  txt = txt.replace(/%D1%8D/g, 'э'); 

  txt = txt.replace(/%D1%8E/g, 'ю'); 

  txt = txt.replace(/%D1%8F/g, 'я'); 

  

 

}



//подсчитывает концы строк в фрагменте текста

function countCrlf(str){

  var cnt=0;

  for(var i=0; i<str.length; i++){

    var c=str.charCodeAt(i);

	if (c==13){

	  cnt++;

	}

  }

  return cnt;

}



//Браузеро-независимый setSelectionRange - изменяет начало и конец

//выделенного фрагмента в поле ввода input

function setSelectionRange(input, start, end) {

  if (typeof wpTextbox1.selectionStart != 'undefined' 

    && (navigator.productSub > 20031000 || is_safari)) { 

	//Mozilla/Opera/Safari3

	input.setSelectionRange(start, end);

  }else if (document.selection && document.selection.createRange) { 

 	 //Internet Explorer

		var range = input.createTextRange();

		range.collapse(true);

		range.moveStart("character", start - countCrlf(input.value.substring(0, start)));

		range.moveEnd("character", end - start - countCrlf(input.value.substring(start, end)));

		range.select();

  }	 

};



//Браузеро-независимое получение длины

//выделенного фрагмента в поле ввода input

function getSelectionLength(input) {

  if (typeof wpTextbox1.selectionStart != 'undefined' 

    && (navigator.productSub > 20031000 || is_safari)) { 

	//Mozilla/Opera/Safari3

	return input.selectionEnd-input.selectionStart;

  }else if (document.selection && document.selection.createRange) { 

 	 //Internet Explorer

	 input.focus()

	 var range = document.selection.createRange()

	 return range.text.length

  }	else 

     return -2;

};



//Браузеро-независимый getSelectionStart - возвращает позицию начала 

//выделенного фрагмента в поле ввода input, или позицию курсора в поле ввода

function getSelectionStart(input) {

  if (typeof wpTextbox1.selectionStart != 'undefined' 

    && (navigator.productSub > 20031000 || is_safari)) { 

	//Mozilla/Opera/Safari3

	return input.selectionStart;

  }else if (document.selection && document.selection.createRange) { 

 	 //Internet Explorer

	 input.focus()

	 //return Math.abs(document.selection.createRange().moveStart("character", -1000000));



	 

	var temp = input.value; 

	input.focus()

	var range = document.selection.createRange()

	var length = range.text.length 

    var txt = range.text

    range.text="{50E9CD6A-BC3E-4B44-9107-FFF6A65DC28E}" //фтыкаем гуид чтобы найти положение курсора в IE

	 //Статья http://www.bazon.net/mishoo/articles.epl?art_id=1292 

	 //рекомендует фтыкать тильду, но гуид лучше, потому что он гарантированно не встретится в тексте

	 var vv=input.value;

	 var startPos = vv.search("{50E9CD6A-BC3E-4B44-9107-FFF6A65DC28E}") //ищем этот гуид

	 input.value=temp //восстанавливаем текст, который был в поле ввода

	 setSelectionRange(input, startPos, startPos+length) //восстанавливаем выделение

	 return startPos

	 

  }	else 

     return -2;

};





//Браузеро-независимый getScrollTop - возвращает позицию прокрутки

//в поле ввода input

function getScrollTop(input) {

  if (typeof wpTextbox1.selectionStart != 'undefined' 

    && (navigator.productSub > 20031000 || is_safari)) { 

	//Mozilla/Opera/Safari3

	return input.scrollTop

  }else if (document.selection && document.selection.createRange) { 

 	 //Internet Explorer

	input.focus()

	return document.documentElement.scrollTop

  }	else 

     return -2;

};



//Браузеро-независимый setScrollTop - устанавливает позицию прокрутки

//в поле ввода input

function setScrollTop(input, top) {

  if (typeof wpTextbox1.selectionStart != 'undefined' 

    && (navigator.productSub > 20031000 || is_safari)) { 

	//Mozilla/Opera/Safari3

	input.scrollTop=top

  }else if (document.selection && document.selection.createRange) { 

 	 //Internet Explorer

	input.focus()

	document.documentElement.scrollTop=top

  }

};

	

  function setWpSummary(){

     var wpSummary = document.getElementById('wpSummary')

	 if(wpSummary){

	    var temp=wpSummary.value;

	    temp=temp.replace(/\/\*.*?\*\// , ""); //комментарии

	    temp=temp.replace(/[\s]*/ , ""); //пробелы

	    if (temp==""){

	       wpSummary.value=wpSummary.value+" [[User talk:Khanson/refconv.js|refconv.js]] - преобразование ссылок";

	    }

	 }

  } 

}
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

//Преобразование ссылок в читабельный вид

//Часть кода позаимствована из http://ru.wikipedia.org/wiki/MediaWiki:Wikificator.js

//Автор: X-romix

 

var XRomix_RefConv_CantWork = 'RefConv не может работать в вашем браузере.\n\RefConv cannot work in your browser' // английский текст для тех, кто не видит русские буквы

var XRomix_RefConv_FullText = 'Эта кнопка предназначена для преобразования ссылок в читабельный вид. Выберите фрагмент текста.';

 

//Добавляет кнопку

function add_XRomix_RefConv_Button(){

	var toolbar = document.getElementById('toolbar')

	var textbox = document.getElementById('wpTextbox1')

	if (!textbox || !toolbar) return

	var i = document.createElement('img')

	i.src = 'http://upload.wikimedia.org/wikipedia/ru/0/0d/Button-RefConv.png'

	//i.src = 'http://upload.wikimedia.org/wikipedia/ru/7/75/Button-Test.PNG'

	

	i.alt = i.title = 'Преобразование ссылки в читаемый вид'

	i.onclick = XRomix_RefConv1

	i.style.cursor = 'pointer'

	toolbar.appendChild(i)

 

} 

 

//Этот код выполняется в начале.

if (wgAction == 'edit' || wgAction == 'submit'){

  addOnloadHook(add_XRomix_RefConv_Button)

}

 

 

//Функция по преобразованию текста

function XRomix_RefConv1(){

 //Проверяем, поддерживает ли браузер регулярные выражения (RegExp)	

 if (('code'.replace(/d/g, 'r') != 'core') 

    || (navigator.appName=='Netscape' && navigator.appVersion.substr (0, 1) < 5))

  { alert(XRomix_RefConv_CantWork); return }

 setWpSummary();

 var txt, hidden = [], hidIdx = 0, wpTextbox1 = document.editform.wpTextbox1

 

 wpTextbox1.focus();

 

 var winScroll=getScrollTop(wpTextbox1)//remember window scroll

 var startPos = getSelectionStart(wpTextbox1) 

 var endPos = startPos+getSelectionLength(wpTextbox1)

 

 if (startPos==-2)

 // Для браузеров, которые не умеют возвращать выделенный фрагмент, выдаем ошибку

   { alert(XRomix_RefConv_CantWork); return }

 

	if (startPos==endPos){

	  while (1==1){

		if (startPos==0) break;

		var str= wpTextbox1.value.substring(startPos, startPos+7);

		if (str.search(/http\:\/\//i)!=-1) break;

		startPos--;

	  }

	  var str= wpTextbox1.value.substr(startPos);

	  endPos=str.search(/[\s\]\t\n\<\>]/);

	  if (endPos==-1) {endPos=wpTextbox1.value.length;}

	  else{endPos=endPos+startPos} 

	  

	  if(endPos<wpTextbox1.selectionStart){

	    alert('В текущей позиции курсора не найден интернет-адрес http:// ');

		return;

	  }

	}

	

    txt = wpTextbox1.value.substring(startPos, endPos)

    if (txt == '') {alert(XRomix_RefConv_FullText); return}

    else{

 

	  processText()

      wpTextbox1.value = wpTextbox1.value.substring(0, startPos) + txt + wpTextbox1.value.substring(endPos)

    }

	

	setSelectionRange(wpTextbox1, startPos, startPos + txt.length)

 

	setScrollTop(wpTextbox1, winScroll)//scroll back

 

//Здесь производим замену в переменной txt - это отразится на выделенном фрагменте текста 

function processText(){

  

  txt = txt.replace(/%D0%81/g, 'Ё'); 

  txt = txt.replace(/%D0%90/g, 'А'); 

  txt = txt.replace(/%D0%91/g, 'Б'); 

  txt = txt.replace(/%D0%92/g, 'В'); 

  txt = txt.replace(/%D0%93/g, 'Г'); 

  txt = txt.replace(/%D0%94/g, 'Д'); 

  txt = txt.replace(/%D0%95/g, 'Е'); 

  txt = txt.replace(/%D0%96/g, 'Ж'); 

  txt = txt.replace(/%D0%97/g, 'З'); 

  txt = txt.replace(/%D0%98/g, 'И'); 

  txt = txt.replace(/%D0%99/g, 'Й'); 

  txt = txt.replace(/%D0%9A/g, 'К'); 

  txt = txt.replace(/%D0%9B/g, 'Л'); 

  txt = txt.replace(/%D0%9C/g, 'М'); 

  txt = txt.replace(/%D0%9D/g, 'Н'); 

  txt = txt.replace(/%D0%9E/g, 'О'); 

  txt = txt.replace(/%D0%9F/g, 'П'); 

  txt = txt.replace(/%D0%A0/g, 'Р'); 

  txt = txt.replace(/%D0%A1/g, 'С'); 

  txt = txt.replace(/%D0%A2/g, 'Т'); 

  txt = txt.replace(/%D0%A3/g, 'У'); 

  txt = txt.replace(/%D0%A4/g, 'Ф'); 

  txt = txt.replace(/%D0%A5/g, 'Х'); 

  txt = txt.replace(/%D0%A6/g, 'Ц'); 

  txt = txt.replace(/%D0%A7/g, 'Ч'); 

  txt = txt.replace(/%D0%A8/g, 'Ш'); 

  txt = txt.replace(/%D0%A9/g, 'Щ'); 

  txt = txt.replace(/%D0%AA/g, 'Ъ'); 

  txt = txt.replace(/%D0%AB/g, 'Ы'); 

  txt = txt.replace(/%D0%AC/g, 'Ь'); 

  txt = txt.replace(/%D0%AD/g, 'Э'); 

  txt = txt.replace(/%D0%AE/g, 'Ю'); 

  txt = txt.replace(/%D0%AF/g, 'Я'); 

  

  txt = txt.replace(/%D1%91/g, 'ё'); 

  txt = txt.replace(/%D0%B0/g, 'а'); 

  txt = txt.replace(/%D0%B1/g, 'б'); 

  txt = txt.replace(/%D0%B2/g, 'в'); 

  txt = txt.replace(/%D0%B3/g, 'г'); 

  txt = txt.replace(/%D0%B4/g, 'д'); 

  txt = txt.replace(/%D0%B5/g, 'е'); 

  txt = txt.replace(/%D0%B6/g, 'ж'); 

  txt = txt.replace(/%D0%B7/g, 'з'); 

  txt = txt.replace(/%D0%B8/g, 'и'); 

  txt = txt.replace(/%D0%B9/g, 'й'); 

  txt = txt.replace(/%D0%BA/g, 'к'); 

  txt = txt.replace(/%D0%BB/g, 'л'); 

  txt = txt.replace(/%D0%BC/g, 'м'); 

  txt = txt.replace(/%D0%BD/g, 'н'); 

  txt = txt.replace(/%D0%BE/g, 'о'); 

  txt = txt.replace(/%D0%BF/g, 'п'); 

  txt = txt.replace(/%D1%80/g, 'р'); 

  txt = txt.replace(/%D1%81/g, 'с'); 

  txt = txt.replace(/%D1%82/g, 'т'); 

  txt = txt.replace(/%D1%83/g, 'у'); 

  txt = txt.replace(/%D1%84/g, 'ф'); 

  txt = txt.replace(/%D1%85/g, 'х'); 

  txt = txt.replace(/%D1%86/g, 'ц'); 

  txt = txt.replace(/%D1%87/g, 'ч'); 

  txt = txt.replace(/%D1%88/g, 'ш'); 

  txt = txt.replace(/%D1%89/g, 'щ'); 

  txt = txt.replace(/%D1%8A/g, 'ъ'); 

  txt = txt.replace(/%D1%8B/g, 'ы'); 

  txt = txt.replace(/%D1%8C/g, 'ь'); 

  txt = txt.replace(/%D1%8D/g, 'э'); 

  txt = txt.replace(/%D1%8E/g, 'ю'); 

  txt = txt.replace(/%D1%8F/g, 'я'); 

  

 

}



//подсчитывает концы строк в фрагменте текста

function countCrlf(str){

  var cnt=0;

  for(var i=0; i<str.length; i++){

    var c=str.charCodeAt(i);

	if (c==13){

	  cnt++;

	}

  }

  return cnt;

}



//Браузеро-независимый setSelectionRange - изменяет начало и конец

//выделенного фрагмента в поле ввода input

function setSelectionRange(input, start, end) {

  if (typeof wpTextbox1.selectionStart != 'undefined' 

    && (navigator.productSub > 20031000 || is_safari)) { 

	//Mozilla/Opera/Safari3

	input.setSelectionRange(start, end);

  }else if (document.selection && document.selection.createRange) { 

 	 //Internet Explorer

		var range = input.createTextRange();

		range.collapse(true);

		range.moveStart("character", start - countCrlf(input.value.substring(0, start)));

		range.moveEnd("character", end - start - countCrlf(input.value.substring(start, end)));

		range.select();

  }	 

};



//Браузеро-независимое получение длины

//выделенного фрагмента в поле ввода input

function getSelectionLength(input) {

  if (typeof wpTextbox1.selectionStart != 'undefined' 

    && (navigator.productSub > 20031000 || is_safari)) { 

	//Mozilla/Opera/Safari3

	return input.selectionEnd-input.selectionStart;

  }else if (document.selection && document.selection.createRange) { 

 	 //Internet Explorer

	 input.focus()

	 var range = document.selection.createRange()

	 return range.text.length

  }	else 

     return -2;

};



//Браузеро-независимый getSelectionStart - возвращает позицию начала 

//выделенного фрагмента в поле ввода input, или позицию курсора в поле ввода

function getSelectionStart(input) {

  if (typeof wpTextbox1.selectionStart != 'undefined' 

    && (navigator.productSub > 20031000 || is_safari)) { 

	//Mozilla/Opera/Safari3

	return input.selectionStart;

  }else if (document.selection && document.selection.createRange) { 

 	 //Internet Explorer

	 input.focus()

	 //return Math.abs(document.selection.createRange().moveStart("character", -1000000));



	 

	var temp = input.value; 

	input.focus()

	var range = document.selection.createRange()

	var length = range.text.length 

    var txt = range.text

    range.text="{50E9CD6A-BC3E-4B44-9107-FFF6A65DC28E}" //фтыкаем гуид чтобы найти положение курсора в IE

	 //Статья http://www.bazon.net/mishoo/articles.epl?art_id=1292 

	 //рекомендует фтыкать тильду, но гуид лучше, потому что он гарантированно не встретится в тексте

	 var vv=input.value;

	 var startPos = vv.search("{50E9CD6A-BC3E-4B44-9107-FFF6A65DC28E}") //ищем этот гуид

	 input.value=temp //восстанавливаем текст, который был в поле ввода

	 setSelectionRange(input, startPos, startPos+length) //восстанавливаем выделение

	 return startPos

	 

  }	else 

     return -2;

};





//Браузеро-независимый getScrollTop - возвращает позицию прокрутки

//в поле ввода input

function getScrollTop(input) {

  if (typeof wpTextbox1.selectionStart != 'undefined' 

    && (navigator.productSub > 20031000 || is_safari)) { 

	//Mozilla/Opera/Safari3

	return input.scrollTop

  }else if (document.selection && document.selection.createRange) { 

 	 //Internet Explorer

	input.focus()

	return document.documentElement.scrollTop

  }	else 

     return -2;

};



//Браузеро-независимый setScrollTop - устанавливает позицию прокрутки

//в поле ввода input

function setScrollTop(input, top) {

  if (typeof wpTextbox1.selectionStart != 'undefined' 

    && (navigator.productSub > 20031000 || is_safari)) { 

	//Mozilla/Opera/Safari3

	input.scrollTop=top

  }else if (document.selection && document.selection.createRange) { 

 	 //Internet Explorer

	input.focus()

	document.documentElement.scrollTop=top

  }

};

	

  function setWpSummary(){

     var wpSummary = document.getElementById('wpSummary')

	 if(wpSummary){

	    var temp=wpSummary.value;

	    temp=temp.replace(/\/\*.*?\*\// , ""); //комментарии

	    temp=temp.replace(/[\s]*/ , ""); //пробелы

	    if (temp==""){

	       wpSummary.value=wpSummary.value+" [[User talk:Khanson/refconv.js|refconv.js]] - преобразование ссылок";

	    }

	 }

  } 

}

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook