Участница:Lvova/wikilove.js: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Содержимое удалено Содержимое добавлено
Maintenance: mw:RL/MGU - addOnloadHook is deprecated, Updated deprecated module name
Исправление отображения меню в Векторе
Строка 601: Строка 601:
var menuHolidays= '<li id="wl-holidays"><span><a href="#">Празднества</a></span></li>';
var menuHolidays= '<li id="wl-holidays"><span><a href="#">Празднества</a></span></li>';
var menuFlowers= '<li id="wl-flowers"><span><a href="#">Цветы</a></span></li>';
var menuFlowers= '<li id="wl-flowers"><span><a href="#">Цветы</a></span></li>';
var wikiLoveMenu = '<div class="vectorMenu" id="p-wikilove"><h5><span>WikiLove</span><a href="#" style="padding:0 0.4em;width:auto;"><span style="display:inline-block;height:2.5em;width:16px;margin-right:14px;background-position:0 60%;background-image:url(http://upload.wikimedia.org/wikipedia/commons/d/d9/Heart.png);background-repeat:no-repeat;">&nbsp;</span></a></h5><div class="menu"><ul>'+menuBarnstar+menuPresents+menuHolidays+menuFlowers+'</ul></div></div>';
var wikiLoveMenu = '<nav class="vector-menu vector-menu-dropdown vectorMenu" id="p-wikilove"><h3><span>WikiLove</span><span style="display:inline-block;width:16px;margin:0 0 0 .4em;background-position:0 60%;background-image:url(http://upload.wikimedia.org/wikipedia/commons/d/d9/Heart.png);background-repeat:no-repeat;">&nbsp;</span></h3><div class="vector-menu-content"><ul class="vector-menu-content-list">'+menuBarnstar+menuPresents+menuHolidays+menuFlowers+'</ul></div></div>';
$('#p-cactions').after(wikiLoveMenu);
$('#p-cactions').after(wikiLoveMenu);
document.getElementById('wl-barnstar').onclick = menuItemClick;
document.getElementById('wl-barnstar').onclick = menuItemClick;

Версия от 17:47, 17 июня 2020

//<nowiki>
if(!$.wikiLove) {
  var conf = mw.config.get();
  var isSubPage = /(^.*\/.*$)/m.exec (conf.wgPageName);
  var isNotMine = (conf.wgPageName.indexOf(conf.wgUserName) == -1);
  var isVirtualUser = (conf.wgTitle.toLowerCase() == 'box' || 
      conf.wgTitle.toLowerCase() == 'орденоносец' ||
      conf.wgTitle.toLowerCase() == 'js');
// Разрешить для пространств имён 0 и 1, для скинов modern, vector, monobook, только в режиме просмотра
// Разрешить на своих подстраницах, но запретить на чужих
if ( (conf.wgNamespaceNumber==2 || conf.wgNamespaceNumber==3) && conf.wgAction == 'view' && (skin == 'vector' || skin == 'monobook' || skin == "modern") && !(isSubPage && isNotMine) && !isVirtualUser ) {
  // Script depends on jQuery dialog widget
  mw.loader.using( 'jquery.ui', function() {
    // Construct object (to prevent namespace conflicts)
	var talkPage = conf.wgPageName;
	if( conf.wgNamespaceNumber==2 && !isSubPage) {
	    talkPage = 'User_talk:' + conf.wgTitle;
	}
    wikiLove = {
		srcPageTitle: conf.wgPageName,
		pageTitle: talkPage,
		pageText : null,
		pageTime : null,
		//bottom: true,

      displayProgress: function( form, message ) {
        $('#'+form+' div').hide(); // remove everything else from the dialog box
        $('#'+form).append ( $('<div style="text-align:center;margin:3em 0;"></div>').html( message+'<br/><img src="http://upload.wikimedia.org/wikipedia/commons/4/42/Loading.gif" />' ) );
      },
      
      displayError: function( form, error ) {
        $('#'+form+' div').hide(); // remove everything else from the dialog box
        $('#'+form).append ( $('<div style="color:#990000;margin-top:0.4em;"></div>').html( 'Error: '+error ) );
      },
      
      getEditToken: function() {
        $.ajax({
          url: conf.wgScriptPath + '/api.php?',
          data: 'action=query&prop=info&intoken=edit&titles=Main%20Page&indexpageids&format=json',
          dataType: 'json',
          success: function( data ) {
            if ( data.query.pages && data.query.pageids ) {
              var pageid = data.query.pageids[0];
              wikiLove.editToken = data.query.pages[pageid].edittoken;
            }
          }
        });
      },
	  
	  
	  
	    getPage: function() {

		
		var setPage = function (json) {
			if (json && json.query) {
			  if (json.query.pages) {
				var page = json.query.pages[conf.wgArticleId === 0 ? "-1" : "" + conf.wgArticleId];
				if (page) {
				  if (page.revisions && page.revisions.length > 0) {
					wikiLove.pageText = page.revisions[0]['*'];
					wikiLove.pageTime = page.revisions[0].timestamp;
					//pageTime = page.revisions[0].timestamp.replace (/\D/g, "");
				  }
				}
			  }      
			}
		};
		
		// We know we have an article here.
		if (conf.wgArticleId === 0) {
		  // Doesn't exist yet.
		  pageText = "";
		  //pageTime = null;
		  //wikiLove.setupMode ();
		} else {
			$.ajax({
			  url: conf.wgScriptPath + '/api.php?',
			  data: 'format=json&action=query&titles='
				  + encodeURIComponent (wikiLove.pageTitle)
				  + '&prop=info%7Crevisions&rvprop=content%7Ctimestamp&meta=siteinfo&rvlimit=1&rvstartid='
				  + conf.wgCurRevisionId,
			  dataType: 'json',
			  success: function( json ) {
				setPage (json); //wikiLove.setupMode ();
			  }
			});
		}
	  },

	  
		
      
      getEmailable: function() {
        // Test to see if the 'E-mail this user' link exists
        wikiLove.emailable = $('#t-emailuser').length ? true : false;
      },
      
      editPage: function( form, summary, template ) {
		var simpleMode = true;
		if(wikiLove.pageText!==null && wikiLove.pageText!=='') {
			var match = null;
			match = /(\{\{[Нн]+овые сверху[^\}]*\}\})/.exec (wikiLove.pageText);
			if (match) simpleMode = false;
		}	  
	    var fullsummary = summary + ' ← выдано с помощью [[User:Lvova/wikilove|wikilove]]';
		var post_data = {
				format: 'json',
				action: 'edit',
				title:  wikiLove.pageTitle,
				summary: fullsummary
			};
		if(simpleMode) {
			post_data['section'] = 'new';
			post_data['text'] = template;
			post_data['sectiontitle'] = summary;
		} else {
			var section = '== ' + summary + '==\n'+template;
			match = /^(==[^=]+==)$/m.exec (wikiLove.pageText);
			var newText = '';
			if(match) {				
				newText = wikiLove.pageText.substring(0,match.index) + section + '\n';
			} else {
				newText = wikiLove.pageText + '\n'+section;
			}
			post_data['section'] = '0';
			post_data['text'] = newText;
		}
		post_data['token'] = wikiLove.editToken; // token must be the last in data

		$.ajax({
			  url: conf.wgScriptPath + '/api.php?',
			  data: post_data,
			  dataType: 'json',
			  type: 'POST',
			  success: function( data ) {
				if ( data && data.edit && data.edit.result == 'Success' ) {
					window.location.reload(); // reload page if edit was successful
				} else if ( data && data.error ) {
					wikiLove.displayError( form, 'API выдаёт ошибку '+'"' + data.error.code + '": ' + data.error.info );
				} else {
					wikiLove.displayError( form, 'API выдаёт что-то непонятное.' );
				}
			  },
			  error: function( xhr ) {
				wikiLove.displayError( form, 'Редактирование не удалось.' );
				//console.debug( xhr.responseText );
			  }
			});
			
      },
      
      sendEmail: function( form, subject, text ) {
        $.ajax({
          url: conf.wgScriptPath + '/api.php?',
          data: 'action=emailuser&target='+encodeURIComponent(conf.wgTitle)+'&subject='+encodeURIComponent(subject)+'&text='+encodeURIComponent(text)+'&format=json&token='+encodeURIComponent(wikiLove.editToken),
          dataType: 'json',
          type: 'POST'
        });
      },

      launchDialog: function( intf, emailOption ) {
        if ( emailOption && typeof wikiLove.emailable !== 'undefined' && wikiLove.emailable ) {
          if ( typeof intf.data('emailCheckboxAppended') == 'undefined' ) {
            intf.append( $('<div style="margin-top:0.4em;"></div>').html('<input type="checkbox" name="notify"/> Оповещение пользователя по электронной почте') );
            intf.data('emailCheckboxAppended', true);
          }
        }
        intf.dialog('open');
        wikiLove.getEditToken();
      },
      
      initialize: function() {

        // Function to make a list of images selectable
        $.fn.selectItem = function() {
          return this.each(function() {
            var containerId = this.id;
            var customId = 0;
            $('#'+containerId+' img').css('border', '8px solid transparent');
            $('#'+containerId+' img').each(function() {
              if (this.id === '') {
                this.id = 'select_img_' + containerId +'_'+ customId;
                customId++;
              }
              $('#'+this.id).click(function() {
                  $('#'+containerId+'Selected').val(this.title);
                  $('#'+containerId+' img').css('border', '8px solid transparent');
                  $('#'+this.id).css('border', '8px solid #AED0EA');
              });
            });
          });
        };
		
		var nodesc = 'К сожалению, информации об этом ордене нет. Мы будем очень рады, если вы добавите описание об этой награде на странице <a href="http://ru.wikipedia.org/wiki/Википедия:Ордена">Википедия:Ордена</a>';
      
        // Список всех доступных орденов
        var $barnstarList = [
          ['15 статей в месяц', 'Является поощрительным призом и наградой за заслуги в административной деятельности проекта «15 статей в месяц», а также за написание 15 статей в рамках последнего.'],
          ['30 статей за 45 дней','Вручается участникам, создавшим 30 статей в рамках проекта «30 статей за 45 дней».'],
          ['E=mc2','Вручается за вклад в статьи Википедии по темам физика и математика, а также физическая химия, атомная и квантовая физика, теория относительности, разные измерения и вообще устройство Мироздания.'],
          ['Kotwica',nodesc],
          ['Pro Wiklesia',nodesc],
          ['Virtuti Wikipedi',nodesc],
          ['Ω','Вручается за вклад в статьи Википедии по темам физика, атомная физика, астрофизика.'],
          ['Авиационный орден','Вручается за вклад в статьи Википедии по истории авиации, пилотам, самолётам, их вооружению, воздухоплаванию, авиакатастрофам, боевым действиям с применением воздушных сил, частям ВВС, авиабазам, учебным заведениям воздушного флота и аэродинамике. Орден проекта «Авиация».'],
          ['Аниме-орден','Вручается за вклад в проект «Аниме и манга».'],
          ['Архитектурный орден','Вручается за вклад в Википедию по статьям и спискам архитектурой тематики.'],
          ['Астрономический орден','Вручается за вклад в статьи Википедии по астрономии, астрофизике, терраформированию, искусственным и другим спутникам и прочим телескопам, экзопланетам, туманностям и галактикам.'],
          ['Аудиоорден','Вручается за вклад в проект «Аудиостатьи».'],
          ['Баскетбольный орден','Вручается за существенный вклад в статьи о баскетболе.'],
          ['Биоорден 1 степени','Орден, вручаемый участнику Википедии за существенные заслуги в написании и улучшении статей по биологической тематике. Орден проекта «Биология».'],
          ['Биоорден 2 степени','Орден для поощрения начинающих в биопроекте и участников с весомыми заслугами. Орден проекта «Биология».'],
          ['Благодарность проекта «Мурманская область»',nodesc],
          ['Благороднейший орден подвязки','Благороднейший Орден Подвязки учреждён с целью соединить некоторое число достойных лиц для совершения добрых дел и оживления творческого духа в рамках экономических проектов Википедии. Орден проекта «Экономика».'],
          ['Бронзовая камера','Вручается за вклад в иллюстрацию Википедии, а также в статьи о фотографии.'],
          ['Будь героем!','Вручается за героическое отстаивание своих идей, принципов и взглядов. Орден проекта «Филателия».'],
          ['Взявшему рубеж','Вручается участнику, являющемуся автором «круглой» (N-тысячной) статьи, например, статьи № 1000, 10 000, 15 000, 20 000, 30 000, …, 1 000 000 и т.д.'],
          ['Военная галерея','Вручается участнику, написавшему либо улучшившему значительное количество военно-биографических статей хорошего качества.'],
          ['Военный исторический орден II степени','Вручается участникам за вклад в статьи на военно-историческую тематику: войны, сражения, воинские формирования, военные персоналии и т.д.'],
          ['Военный исторический орден I степени','Вручается участникам за вклад в статьи на военно-историческую тематику. Вручения производятся последовательно: сначала 2-я степень, потом 1-я степень.'],
          ['Восточный орден','Вручается за вклад в статьи Википедии по истории, политике, экономике стран и территорий ислама, а также Ближнего и Среднего Востока, Средней Азии и про их известных деятелей.'],
          ['Геймерский орден','Вручается за развитие статей по тематике компьютерных игр.'],
          ['Геозвезда','Вручается участникам, способствовавшим развитию геоинформационных возможностей Википедии и существенный вклад в статьи по географии.'],
          ['Геологический орден','Вручается за вклад в статьи Википедии по геологической тематике, а также за развитие и поддержание проекта «Геология».'],
          ['Готический орден','Вручается участникам, внёсшим значительный вклад в статьи о готической культуре и музыке.'],
          ['Доспехи и оружие','Вручается за заслуги при создании статей связанных с холодным оружием и доспехами.'],
          ['Европейский орден','Вручается за значительный вклад в развитие статей о Европейском союзе.'],
          ['За абсурд','Вручается самым юмористическим участникам Википедии (например, авторам нескольких статей, перенесённых впоследствии в Абсурдопедию).'],
          ['За борьбу с вандализмом','Вручается наиболее упорным борцам с вандализмом.'],
          ['За выдающиеся заслуги','Вручается участнику, внёсшему очень важный вклад в Википедию. Например, тому, кто постоянно производит правки, повышающие уровень Википедии, или тому, кто глубоко разрабатывает определённую тематику статей (или район административных работ).'],
          ['За выдающиеся заслуги с лаврами','Вручается участнику, внёсшему очень важный вклад в Википедию. Например, тому, кто постоянно производит правки, повышающие уровень Википедии, или тому, кто глубоко разрабатывает определённую тематику статей (или район административных работ).'],
          ['За заслуги','Вручается участнику, внёсшему значительный вклад в дело развития Википедии. Этим вкладом могут быть новые статьи, полезные дополнения в уже существующие статьи, борьба с вандализмом, административная работа, помощь в разрешении конфликтов.'],
          ['За корректное использование AWB','Вручается участникам, которые активно используют AutoWikiBrowser, улучшая качество Википедии малыми правками.'],
          ['За креатив','Вручается за заслуги в оформлении Википедии и дизайнерские инновации.'],
          ['За малые правки','Вручается за малые правки, несущие отнюдь не малую пользу.'],
          ['За написание статей о принтерах',nodesc],
          ['За поддержку','Вручается участникам, которые своими словами и действиями поддерживали других участников в написании статьи, помогали в устранении её недостатков и защищали здравый смысл при её обсуждении.'],
          ['За сотрудничество','Вручается участникам, проявившим конструктив, доброжелательность и обширные знания при совместной работе над статьёй.'],
          ['За удаление','Вручается за последовательную и непримиримую позицию в очищении Википедии от хлама и мусора.'],
          ['Заслуженному администратору','Вручается администраторам, хорошо справляющимся со своей работой.'],
          ['Заслуженному арбитру','Вручается за активный и конструктивный труд в составе арбитражного комитета в течение одного или более созывов'],
          ['Заслуженному патрульному!','Орден «Заслуженному патрульному» Высшей степени учреждён в 2011г. Новая степень ордена является знаком благодарности за особенные заслуги на ниве патрулирования. Орден вручается индивидуально и нерегулярно, по мере возникновения достойных кандидатов. Каждое вручение должно сопровождаться достаточно подробным описанием заслуг.'],
          ['Заслуженному патрульному I','Вручается трём лучшим патрульным за месяц.'],
          ['Заслуженному патрульному II','Вручается патрульным, показавшим хорошие результаты за месяц.'],
          ['Заслуженному художнику','Вручается за оперативную и качественную работу в Графической мастерской.'],
          ['Заслуженный ботовод','Вручается труженику в сфере ботоводства за выведение породистых ботов. Бот получает маркировку «Почётный бот Википедии».'],
          ['Заслуженный корректор','Вручается за существенный вклад в дело удаления орфографических, пунктуационных и стилистических ошибок из Википедии.'],
          ['Защитник Википедии','Вручается наиболее упорным борцам с нарушителями функционирования Википедии и за отстаивание её духа.'],
          ['Звезда пленительного счастья','Вручается деятельным последователям декабристов или участникам, считающим себя революционерами Википедии, в особенности таким, которые неправомерно либо на спорных основаниях подвергались блокировке.'],
          ['Зелёный орден','Вручается за заслуги в написании и улучшении статей по биотематике с уклоном во флору. Орден проекта «Биология».'],
          ['Золотое перо','Вручается участнику, написавшему много хороших статей в течение длительного периода времени.'],
          ['Золотой трак','Вручается за заслуги при создании статей в области бронетанковой техники, артиллерии и другой военно-технической тематики. Орден проекта «Бронетехника».'],
          ['Зоркий объектив','Вручается за вклад в иллюстрацию Википедии своими фотографиями, а также за размещённые как иллюстрация статей собственные особо художественные или уникальные фотографии.'],
          ['Избранная статья','Вручается участнику, создавшему и (или) внёсшему основной вклад в статью, которая по итогам обсуждения получила статус избранной. Орден проекта «Избранные статьи».'],
          ['Избранный список','Вручается участнику, создавшему и (или) внёсшему основной вклад в список, который по итогам обсуждения получил статус избранного. Орден проекта «Избранные списки и порталы».'],
		  ['Интернет-орден','Вручается за развитие статей по тематике Интернет.'],
          ['Исторический орден','Вручается участникам за вклад в статьи на историческую тематику.'],
          ['Киевский орден им. Иосифа Каракиса','Вручается участникам за качественную и значимую работу в статьях, посвящённых городу Киеву, персонам, связанным с Киевом, их прошлому, настоящему и будущему.'],
          ['Киноорден','Вручается за весомый вклад в статьи Википедии по кинематографии, фильмам, актёрам, киностудиям и кинотеатрам.'],
          ['Комикс-орден','Вручается за значительный вклад в статьи, посвящённые тематике комиксов: сериям комиксов, графическим романам, авторам, художникам, студиям и издательствам комиксов.'],
          ['Королевский и дворянский орден','Вручается участнику, внёсшему значительный вклад в статьи о королевских семьях и знати, участникам, принимающим участие в создании статей о биографии людей, принадлежащих к королевской власти и/или дворянству.'],
          ['Криминальный орден','Вручается за существенный вклад в развитие статей о преступности.'],
          ['ЛГБТ-орден','ЛГБТ-орден вручается за значительный вклад в развитие статей о гомосексуальности, бисексуальности, трансгендерности и ЛГБТ-движении. Орден «ЛГБТ-проекта».'],
          ['ЛГБТ-орден с радужной лентой','Эквивалент ЛГБТ-орден.'],
          ['Лимон','Орденом Лимона может быть награждён любой участник Русской Википедии, внёсший свой посильный вклад в развитие проекта.'],
          ['Литературный орден','Вручается за существенный вклад в статьях по литературе.'],
          ['Литературный орден им. Виктора Некрасова',nodesc],
          ['Локомотив','Вручается за весомый вклад в разделы Википедии по железнодорожной тематике, трамваю, метрополитену, подземке, надземке, монорельсовому транспорту, поездам на магнитной подушке и прочим локомотивам.'],
          ['Медицинский орден','Вручается за существенный вклад в статьях медико-биологической тематики.'],
          ['Морской орден II степени','Вручается участникам, написавшим много хороших статей, посвящённых морской тематике.'],
          ['Морской орден I степени','Вручается участникам, написавшим много хороших статей, посвящённых морской тематике. Дополнительным бонусом к награде является получение права именоваться званием «Почётный адмиралтеец».'],
          ['Музыкальный орден','Вручается за вклад в статьи Википедии по музыке, её стилям, композиторам, исполнителям и группам.'],
          ['Недреманное око','Вручается участникам, быстро реагирующим на правки вандалов и неопытных новичков.'],
          ['Неоднозначный орден','Вручается за создания большого числа нужных страниц-неоднозначностей.'],
          ['Непримиримому борцу за качество статей','Вручается за уничтожение некачественных статей на корню и проведение массовых чисток.'],
          ['Нумизматика',nodesc],
          ['Нумизматика и бонистика',nodesc],
          ['Организатор Вики-конференции','Вручается за участие в организации очередной Вики-конференции.'],
          ['Орден Викиславы III степени','Вручается участникам за вклад в статьи о наградах и геральдике: орденах, медалях, почётных званиях, гербах и пр.'],
          ['Орден Викиславы II степени','Вручается участникам за вклад в статьи о наградах и геральдике. Награждение производится последовательно: сначала третьей, затем второй, потом первой степенью.'],
          ['Орден Викиславы I степени','Орден Викиславы имеет три степени, высшей степенью ордена является первая степень. Награждённому всеми тремя степенями присваивается звание полного кавалера ордена Викиславы.'],
          ['Орден Мурманской области',nodesc],
          ['Орден Носорога','Вручается за проявление несгибаемости намерения.'],
          ['Орден ПРО:1000 1 степени','Вручается участникам, создавшим за выдающийся вклад в рамках проекта «ПРО:1000».'],
          ['Орден ПРО:1000 2 степени','Вручается участникам, создавшим за значительный вклад в рамках проекта «ПРО:1000».'],
          ['Орден ПРО:1000 3 степени','Вручается участникам, создавшим за существенный вклад в рамках проекта «ПРО:1000».'],
          ['Орден СМИ','Вручается за значительное развитие статей Википедии по средствам массовой информации: прессе, радио, телевидению, радиостанциям и телеканалам.'],
          ['Орден Связности','Вручается за достижения в работе над связностью статей Википедии. Орден проекта Юные вики-связисты.'],
          ['Орден Тематическая неделя|степень=3','Вручается участникам, которые по результатам недели набрали максимальное количество баллов в проекте «ПРО:Тематическая неделя», чем участники с орденом II степени. Вручается участнику, который по результатам проведенной недели занял 1-ое место и при этом набрал более 60 баллов без учета дополнительных.'], 
          ['Орден Тематическая неделя|степень=2','Вручается участникам, которые по результатам недели набрали меньшее количество баллов в проекте «ПРО:Тематическая неделя», чем участники с орденом I степени. Вручается участнику, который по результатам проведенной недели занял 2-ое место и при этом набрал более 40 баллов без учета дополнительных'], 
          ['Орден Тематическая неделя|степень=1','Вручается участникам, которые по результатам недели набрали максимальное количество баллов в проекте «ПРО:Тематическая неделя». Вручается участнику, который по результатам проведенной недели занял 1-ое место и при этом набрал более 60 баллов без учета дополнительных'], 
		  ['Орден Совместная работа недели|степень=3','Вручается участникам, которые по результатам недели набрали меньшее количество баллов в проекте «ПРО:Тематическая неделя», чем участники с орденом II степени. Вручается участнику, который по результатам проведённой недели создал не менее 10 статей.'],
		  ['Орден Совместная работа недели|степень=2','Вручается участникам, которые по результатам недели набрали меньшее количество баллов в проекте «ПРО:Тематическая неделя», чем участники с орденом I степени. Вручается участнику, который по результатам проведённой недели создал не менее 20 статей.'],
		  ['Орден Совместная работа недели|степень=1','Вручается участникам, которые по результатам недели набрали максимальное количество баллов в проекте «ПРО:Тематическая неделя». Вручается участнику, который по результатам проведённой недели создал не менее 30 статей.'],
          ['Орден Харькова','Вручается за большие заслуги и вклад в развитие проекта «Харьков».'],
          ['Орден Черногории',nodesc],
          ['Орден за спасение статей','Вручается за активную деятельность по спасению статей от удаления.'],
          ['Орден за энциклопедическую содержательность','Орден «за энциклопедическую содержательность» за цикл статей, полностью раскрывающих какую-либо тему. \n(подразаумевается, что тематика достаточно узкая, чтобы её можно было реально полностью охватить циклом статей) \n NB: содержимое статей темы, за которую вручается Орден, должно соответсвовать ВП:ПРОВ.'],
          ['Орден шестерни','Вручается за общий вклад в статьи Википедии по тематике техники либо за вклад в статьи на конкретные технические темы, для которых не предусмотрены специальные награды.'],
          ['Панк-орден','Вручается участникам, внёсшим значительный вклад в статьи о панк-культуре.'],
          ['Подводящему итоги','Вручается за заслуги в деятельности по подведению итогов обсуждений.'],
          ['Подкультурный орден',nodesc],
          ['Половинка левая','Вручается за продуктивное сотрудничество; особенно достойны награды участники с абсолютно противоположными взглядами, продуктивно работающие в паре. Каждый из участников получает одну половинку — только совместный труд составляет целый орден.'],
          ['Половинка правая','Вручается за продуктивное сотрудничество; особенно достойны награды участники с абсолютно противоположными взглядами, продуктивно работающие в паре. Каждый из участников получает одну половинку — только совместный труд составляет целый орден.'],
          ['Почётный знак ПРО:1000','Вручается участникам, создавшим за большой вклад в рамках проекта «ПРО:1000».'],
          ['Права человека','Вручается за значительный вклад в развитие статей о правах человека.'],
          ['Признание прессы','Вручается участнику, который упоминался в СМИ в связи с Википедией, например, упоминавшийся в газете или давший интервью на радио или телевидении.'],
          ['Пси-орден III степени','Вручается за существенные заслуги в написании и улучшении содержимого статей, касающегося психологии и психиатрии. Орден проекта «Психология и психиатрия».'],
          ['Пси-орден II степени','Вручается за существенные заслуги в написании и улучшении содержимого статей, касающегося психологии и психиатрии. Орден проекта «Психология и психиатрия».'],
          ['Пси-орден I степени','Вручается за существенные заслуги в написании и улучшении содержимого статей, касающегося психологии и психиатрии. Орден проекта «Психология и психиатрия».'],
          ['Римский орден','Вручается за существенный вклад в статьи о Римской и/или Византийской империи.'],
          ['Розеттская звезда','Вручается за заслуги по переводу статей или за написание статей по лингвистике и письменностям.'],
          ['Российский исторический орден','Вручается за значительный вклад в статьи Википедии по истории России (также Советского Cоюза), а также стран и территорий, когда-либо входивших в её состав.'],
          ['Рыбный орден','Вручается за значительный вклад в статьи Википедии на рыбную и рыболовную тематику.'],
          ['Спортивный орден','Вручается за существенный вклад в статьи о спорте.'],
          ['Терпеливому посреднику','Вручается за успешное посредничество.'],
          ['Технический','Вручается участникам, внёсшим значительный вклад в техническое обеспечение проекта: например, написание персональных скриптов, гаджетов, сложных шаблонов.'],
          ['Тортик','Бросается в участника, имеющего проблемы с чувством юмора. Рекомендуется как альтернатива административным мерам. Предлагается не считать личным оскорблением.'],
          ['Трансгуманизм','Вручается за значительный вклад в развитие статей о трансгуманизме.'],
          ['Труженику','Вручается участникам, внёсшим большой вклад в течение длительного времени.'],
          ['Улыбка','Вручается за доброжелательное отношение к другим участникам и помощь новичкам.'],
          ['Формулический орден','Вручается за существенный вклад в статьи Википедии, посвящённые автогонкам в классе Формула-1.'],
          ['Футбольная звезда','Вручается за существенный вклад в статьи Википедии по футболу. Орден проекта «Футбол».'],
          ['Химический орден','Вручается за существенный вклад в статьи Википедии, посвящённые химической тематике.'],
          ['Хорошая статья','Вручается участнику, создавшему и (или) внёсшему основной вклад в статью, которая по итогам обсуждения получила статус хорошей. Орден проекта «Хорошие статьи».'],
          ['Хорошее настроение','Вручается участникам, которые своими словами или действиями подняли настроение и мотивировали на дальнейшую конструктивную работу в Википедии всех или часть участников сообщества.'],
          ['Честному человеку планеты','Вручается за стремление честно резать правду-матку, невзирая на последствия.'],
          ['Чёрный пенни','Вручается за существенные заслуги в написании и улучшении статей о филателии и почте. Главный орден проекта «Филателия».'],
          ['Шаблонный орден','Вручается за разработку и улучшение полезных шаблонов.'],
          ['Экзопедический','Почётное звание экзопедического гиганта вручается за весомый вклад в создание контента Русской Википедии.'],
          ['Эко-орден','Вручается участникам за вклад в статьи на тему «зелёных» технологий (альтернативная энергия, переработка отходов, «зелёная» архитектура, и т. д.).']
        ];

       
        // Определение интерфейса орденов
        $barnstars = $('<div id="barnstarForm" style="position:relative;"></div>')
          .append( $('<div style="margin-top:0.4em;"></div>').html( 'Выберите орден: ' )
				.append( $('<select id="barnstarSelect" style="padding:1px;vertical-align:baseline;"></select>') ) )
          .append( $('<div style="margin-top:0.4em;"></div>').html( 'Описание ордена: ' )
				.append( $('<div id="barnstarDescription" style="padding:1px;vertical-align:baseline;"></div>') )
					.append('См. также: <a href="http://ru.wikipedia.org/wiki/Википедия:Ордена">Википедия:Ордена</a>') )
          .append( $('<div style="margin-top:0.4em;"></div>').html( 'Введите сообщение (без подписи):<br/>' ).append( $('<textarea name="message" id="barnstarMessage" style="width:99%" rows="4" cols="60"></textarea>') ) )
          .dialog({
            width: 500,
            autoOpen: false,
            title: 'Наградить орденом',
            modal: true,
            buttons: { "Наградить орденом": function() { 
              $(this).dialog({buttons:{}});
              if ( typeof wikiLove.editToken !== 'undefined' ) {
                if ( $('#barnstarForm input[name="notify"]').attr('checked') ) {
                  // Send email
                  wikiLove.sendEmail( 'barnstarForm', 'Вы были награждены викиорденом!', 'Привет, '+conf.wgTitle+'!\n\nМной был вручён викиорден ('+$('#barnstarSelect').val()+') за твои заслуги; загляни к себе на личную страницу!' );
                }
                // Perform edit to page
                wikiLove.displayProgress( 'barnstarForm', 'Добавление ордена на страницу...' );
                var message = $('#barnstarMessage').val();
                if ( message.indexOf( '~~~' ) == -1 ) {
                  message += ' ~~~~';
                }
                var template = '{{подст:Участник:Орденоносец/'+$('#barnstarSelect').val()+'|'+ message +'}}';
                wikiLove.editPage( 'barnstarForm', 'Орден', template );
              } else {
                wikiLove.displayError( 'barnstarForm', 'Не получается.' );
              }
            }}
          });
		  
		var el = document.getElementById('barnstarSelect');
		el.onchange = function ( e ) {
			//e.preventDefault();
			var index = document.getElementById('barnstarSelect').selectedIndex;
			//var index1 = e.selectedIndex;
			var eld = document.getElementById('barnstarDescription');
			eld.innerHTML = '<i>'+$barnstarList[index][1]+'</i>';
			return false;
		};
		
		document.getElementById('barnstarDescription').innerHTML = '<i>'+$barnstarList[0][1]+'</i>';
    
        // Выбор ордена
        $.each( $barnstarList, function(index, value) { $('#barnstarSelect').append( $('<option></option>').val(value[0]).html(value[0]) ); });

		// Общие параметры для картинок
		var commonsPrefix = "http://upload.wikimedia.org/wikipedia/commons/thumb/";
		// Размер (высота) картинок в диалоге
		var flImgSize = 100;
		if(typeof (window.wl_flower_size) != 'undefined') {
			flImgSize = window.wl_flower_size;
		}
		// Ширина диалога цветочков/подарков/печенек
		var flDlgWidth = 600;
		if(typeof (window.wl_flower_dialog_width) != 'undefined') {
			flDlgWidth = window.wl_flower_dialog_width;
		}
        // Определение интерфейса праздников
		
		var $imgList = [
			{src:"2/25/",title:"Roberta\'s WikiCake.jpg", w:534, h:800},
			{src:"9/92/",title:"Guinness.jpg", w:348, h:536 },
			{src:"2/20/",title:"Strawberry and champagne.jpg", w:1024, h:1280 },
			{src:"b/b3/",title:"Pouring two champagne glasses.jpg", w:2592 , h:3888},
			{src:"e/e2/",title:"Absinthe-glass.jpg", w:418, h:600},
			{src:"0/03/",title:"Wikipe-tan Birthday.png", w:918, h:1500},
			{src:"f/fa/",title:"Happy new year 06463.jpg", w:2048, h:1536},
			{src:"2/24/",title:"Wikilove2.png", w:800, h:600},
			{src:"3/37/",title:"Essen - Wikipedia10 06 ies.jpg", w:3888, h:2592 },
			{src:"6/6a/",title:"St Patty\'s Day cupcakes in a row.jpg", w:600, h:400},
			{src:"e/ed/",title:"GDJ 2008 tort malowany p.jpg", w:2282, h:2282},
			{src:"8/8a/",title:"Flaschen im SonyCenter.jpg", w:1248, h:832},
			{src:"4/43/",title:"The Gift-1.jpg", w:2076, h:2046 },
			{src:"b/b4/",title:"Music present.jpg", w:2592, h:1944},
			{src:"1/1a/",title:"Mary\'s chocates gift box, made in Japan.jpg", w:1024, h:768}
        ];
		var buffer = [];
		$.each( $imgList, function(index, fl) { 
			var title = mw.util.wikiUrlencode(fl['title']);
			buffer.push('<img src="'+commonsPrefix + fl['src'] + title + '/'+ Math.floor(fl['w']*flImgSize/fl['h'])+
				'px-' + title+'" title="'+fl['title']+'"/>'); 
		});		
		var imagesHtml = buffer.join("");
		
		var dlg = $('<div id="holidaysForm" style="position:relative;"></div>')
          .html( '<input type="hidden" id="holidaysSelected" name="holidaysSelected" value="Roberta\'s WikiCake.jpg"/>' )
          .append( $('<div style="margin-top:0.4em;"></div>').html( 'Выберите:' ) )
          .append( $('<div style="margin-top:1em;text-align:center;" id="holidays"></div>').html( imagesHtml ) )
          .append( $('<div style="margin-top:0.4em;"></div>')
			.html( 'Введите сообщение (без подписи):<br/>' ).append( $('<textarea name="message" id="holidaysMessage" style="width:99%" rows="4" cols="60"></textarea>') ) );

		$holidays = dlg.dialog({
            width: flDlgWidth,
            autoOpen: false,
            title: 'Поздравить',
            modal: true,
            buttons: { "Поздравить": function() { 
              $(this).dialog({buttons:{}});
              if ( typeof wikiLove.editToken !== 'undefined' ) {
               if ( $('#holidaysForm input[name="notify"]').attr('checked') ) {
              // Send email
              wikiLove.sendEmail( 'holidaysForm', 'С праздником', 'Привет, '+conf.wgTitle+'!\n\nЗагляни на свою страницу обсуждения, пожалуйста' );
                }
                // Perform edit to page
                wikiLove.displayProgress( 'holidaysForm', 'Поздравление в процессе доставки...' );
				var message = $('#holidaysMessage').val();
                if ( message.indexOf( '~~~' ) == -1 ) {
                  message += ' ~~~~';
                }
                var template = '<div style="border: 1px solid blue; background-color: White; text-align:left; padding:5px; margin-right: 2%; color:#526272;" class="plainlinks"> [[Файл:'+$('#holidaysSelected').val()+('|250px]]')+'<br />'+message +'</div>';
                wikiLove.editPage( 'holidaysForm', 'С праздником!', template );
              } else {
                wikiLove.displayError( 'holidaysForm', 'Не получается.' );
              }
            }}
          });

		$('#holidays').selectItem();		

        // Определение интерфейса цветов		
		$imgList = [
			{src:"0/09/",title:"Tulip Monsella 2006.jpg", w:1200, h:1600},
			{src:"c/c1/",title:"Cymbidium Clarisse Austin \'Best Pink\' Flowers 2000px.JPG", w:2000, h:3008},
			{src:"2/27/",title:"Flowers 247.jpg", w:1024, h:768},
			{src:"0/0c/",title:"Leucanthemum vulgare qtl1.jpg", w:2613, h:2517},
			{src:"9/9a/",title:"IMG 6732-Leucanthemum vulgare.jpg", w:3872, h:2571 },
			{src:"5/52/",title:"Flower February 2008-2.jpg", w:3088, h:2431 },
			{src:"8/8d/",title:"Urbana Illinois park 20070928 img 2120-crop.jpg", w:2000, h:1331 },
			{src:"b/ba/",title:"DeltoidBalsamroot1.jpg", w:2048, h:2904 },
			{src:"b/ba/",title:"Flower jtca001.jpg", w:2240, h:1680 },
			{src:"4/41/",title:"Narzisse.jpg", w:4146, h:2764 },
			{src:"b/b5/",title:"Rosa Gold Glow 2.jpg", w:1600, h:1570 },
			{src:"1/1c/",title:"Blue closeup flowers.jpg", w:800, h:533},
			{src:"3/3e/",title:"Convolvulus January 2008-1.jpg", w:3284, h:2592},
			{src:"c/c2/",title:"- Flower 07 -.jpg", w:1476, h:1440},
			{src:"e/e5/",title:"A Red Flower in a Pond.jpg", w:1024, h:768},
			{src:"8/8f/",title:"Nymphaea tetragona.jpg", w:2560, h:1920 },
			{src:"2/2a/",title:"Blue Parfum (Tantau 1978) 01.jpg", w:1951, h:1587 },
			{src:"3/3a/",title:"Clematis white background.jpg", w:485, h:513}
		];
		buffer = [];
		$.each( $imgList, function(index, fl) { 
			var title = mw.util.wikiUrlencode(fl['title']);
			buffer.push('<img src="'+commonsPrefix + fl['src'] + title + '/'+ Math.floor(fl['w']*flImgSize/fl['h'])+
				'px-' + title+'" title="'+fl['title']+'"/>'); 
		});		
		var imagesHtml = buffer.join("");
        dlg = $('<div id="flowersForm" style="position:relative;"></div>')
          .html( '<input type="hidden" id="flowersSelected" name="flowersSelected" value="Leucanthemum vulgare qtl1.jpg"/>' )
          .append( $('<div style="margin-top:0.4em;"></div>').html( 'Выберите:' ) )
          .append( $('<div style="margin-top:1em;text-align:center;" id="flowers"></div>').html( imagesHtml ))
          .append( $('<div style="margin-top:0.4em;"></div>').html( 'Введите сообщение (без подписи):<br/>' ).append( $('<textarea name="message" id="flowersMessage" style="width:99%" rows="4" cols="60"></textarea>') ) );
         
		$flowers = dlg.dialog({
            width: flDlgWidth,
            autoOpen: false,
            title: 'Make Wikilove!',
            modal: true,
            buttons: { "Make Wikilove!": function() { 
              $(this).dialog({buttons:{}});
              if ( typeof wikiLove.editToken !== 'undefined' ) {
               if ( $('#flowersForm input[name="notify"]').attr('checked') ) {
              // Send email
              wikiLove.sendEmail( 'flowersForm', 'WikiLove!', 'Привет, '+conf.wgTitle+'!\n\nЗагляни на свою страницу обсуждения, пожалуйста' );
                }
                // Perform edit to page
                wikiLove.displayProgress( 'flowersForm', 'Wikilove в процессе доставки...' );
				var message = $('#flowersMessage').val();
                if ( message.indexOf( '~~~' ) == -1 ) {
                  message += ' ~~~~';
                }
                var template = '<div style="border: 1px solid blue; background-color: White; text-align:left; padding:5px; margin-right: 2%; color:#526272;" class="plainlinks">[[Файл:'+$('#flowersSelected').val()+('|250px]]')+'<br />'+message +'</div>';
                wikiLove.editPage( 'flowersForm', 'WikiLove!', template );
              } else {
                wikiLove.displayError( 'flowersForm', 'Не получается.' );
              }
            }}
          });

		$('#flowers').selectItem();

		$imgList = [
			{src:"b/b4/",title:"Choco chip cookie.png", w:800, h:557, tpl:"Печенька", alt:"Печенька"},
			{src:"e/e8/",title:"Teacup clipart.svg", w:672, h:522, tpl:"Tea", alt:"Чай"},
			{src:"8/84/",title:"WLANL - Sandra Voogt - Kunstcafé - Kunsthal Rotterdam (3).jpg", w:1024, h:685, tpl:"WikiCoffee", alt:"Кофе"},
			{src:"1/17/",title:"Shashlik.jpg", w:1600, h:1200, tpl:"WikiMeat", alt:"Шашлык"},
			{src:"8/87/",title:"Cup of tea, Scotland.jpg", w:2288, h:1712, tpl:"WikiTea", alt:"Чашка чая"},
			{src:"3/3e/",title:"Weizenbier.jpg", w:750, h:1486, tpl:"WikiBeer", alt:"Пиво"},
			{src:"c/c6/",title:"Birthday cake 01.jpg", w:1354, h:1556 , tpl:"WikiТортик", alt:"Тортик"}
		];
		
		buffer = [];
		$.each( $imgList, function(index, fl) { 
		    var title = mw.util.wikiUrlencode(fl['title']);
			var commonsTitle = title;			
			if(commonsTitle.indexOf(".svg", commonsTitle.length - 4) !== -1) {
				commonsTitle = title + ".png"
			}
			buffer.push('<img src="'+commonsPrefix + fl['src'] + title + '/'+ Math.floor(fl['w']*flImgSize/fl['h']) +
				'px-' + commonsTitle+'" title="'+fl['tpl']+'" alt="'+fl['alt']+'"/>'); 
		});		
		var imagesHtml = buffer.join("");
        //Меню подарков
        dlg = $('<div id="presentsForm" style="position:relative;"></div>')
          .html( '<input type="hidden" id="presentsSelected" name="presentsSelected" value="Печенька"/>' )
          .append( $('<div style="margin-top:0.4em;"></div>').html( 'Выберите вкусность:' ) )
          .append( $('<div style="margin-top:1em;text-align:center;" id="presents"></div>').html(imagesHtml) )
		  .append( $('<div style="margin-top:0.4em;"></div>')
			.html( 'Введите сообщение (без подписи):<br/>' ).append( $('<textarea name="message" id="presentsMessage" style="width:99%" rows="1" cols="60"></textarea>') ) );
		    
          $presents = dlg.dialog({
           width: flDlgWidth,
           autoOpen: false,
           title: 'Выдать вкусненькое',
           modal: true,
            buttons: { "Выдать вкусненькое": function() {
            $(this).dialog({buttons:{}});
            if ( typeof wikiLove.editToken !== 'undefined' ) {
             if ( $('#presentsForm input[name="notify"]').attr('checked') ) {
              // Send email
              wikiLove.sendEmail( 'presentsForm', 'Викиугощение :)', 'Привет, '+conf.wgTitle+'!\n\nНа твоей странице Википедии на русском языке есть кое-что приятное; загляни!' );
                }
                // Perform edit to page
                wikiLove.displayProgress( 'presentsForm', 'Добавление вкусности...' );
				var message = $('#presentsMessage').val();		
				if(message!='') {
					if ( message.indexOf( '~~~' ) == -1 ) {
					  message += ' ~~~~';
					}
				} else {
					message = '<br/>';
				}
                var template = '{{subst:'+$('#presentsSelected').val()+'}}'+'\n'+message;
                wikiLove.editPage( 'presentsForm', 'Угощайся!', template );
              } else {
                wikiLove.displayError( 'presentsForm', 'Не получается.' );
              }
            }}
           });

        // Специальное меню для выбора
        $('#presents').selectItem();
		
		var dlgs = {"wl-barnstar":	[$barnstars,true],
					"wl-cookie":	[$presents,true],
					"wl-holidays":	[$holidays,false],
					"wl-flowers":	[$flowers,false]};
					
		var menuItemClick = function ( e ) {
							e.preventDefault();							
							var dlg = dlgs[this.id];
							wikiLove.launchDialog( dlg[0], dlg[1] );
							var m = $("#wlMonobookMenu");
							if(m) m.dialog("close");
							return false;
						};	

        // Insert new tab into page
		if (skin == 'vector') {
			var menuBarnstar = '<li id="wl-barnstar"><span><a href="#">Ордена</a></span></li>';
			var menuPresents= '<li id="wl-cookie"><span><a href="#">Приятности</a></span></li>'; 
			var menuHolidays= '<li id="wl-holidays"><span><a href="#">Празднества</a></span></li>'; 
			var menuFlowers= '<li id="wl-flowers"><span><a href="#">Цветы</a></span></li>'; 
			var wikiLoveMenu = '<nav class="vector-menu vector-menu-dropdown vectorMenu" id="p-wikilove"><h3><span>WikiLove</span><span style="display:inline-block;width:16px;margin:0 0 0 .4em;background-position:0 60%;background-image:url(http://upload.wikimedia.org/wikipedia/commons/d/d9/Heart.png);background-repeat:no-repeat;">&nbsp;</span></h3><div class="vector-menu-content"><ul class="vector-menu-content-list">'+menuBarnstar+menuPresents+menuHolidays+menuFlowers+'</ul></div></div>';
			$('#p-cactions').after(wikiLoveMenu);
			document.getElementById('wl-barnstar').onclick = menuItemClick;
			document.getElementById('wl-cookie').onclick = menuItemClick;
			document.getElementById('wl-holidays').onclick = menuItemClick;
			document.getElementById('wl-flowers').onclick = menuItemClick;
		} else if ((skin == 'monobook' || skin == 'modern')) { 
			if(typeof _cactions !== 'undefined') {
				var monobookDropDownMenu = function () {
					if (_cactions.uname) {
						with (_cactions) {
							menus[menus.length] = createMenu('opt-love', Array(
								['wl-barnstar',    	'Ордена',    	''],
								['wl-cookie',   	'Приятности',	''],
								['wl-holidays',     'Празднества', 	''],
								['wl-flowers',      'Цветы',    	'']
							));
							document.getElementById('p-cactions').getElementsByTagName('div')[0].getElementsByTagName('ul')[0].appendChild(createTab('ca-love','opt-love','WikiLove'));
						}						
						document.getElementById('wl-barnstar').onclick = menuItemClick;
						document.getElementById('wl-cookie').onclick = menuItemClick;
						document.getElementById('wl-holidays').onclick = menuItemClick;
						document.getElementById('wl-flowers').onclick = menuItemClick;
					}
				};		
				$(monobookDropDownMenu);			
			} else {
				// Create portlet link
				var portletLink = mw.util.addPortletLink( 'p-cactions', '#',
					'WikiLove', 'ca-wikilove', 'Вызов меню WikiLove'
				);
				// Bind click handler
				$( portletLink ).click( function ( e ) {
					e.preventDefault();
					// doSomeStuff();
					
					if(typeof $wlMonobookMenu == 'undefined' || $wlMonobookMenu == null) {				
					
						var menuBarnstar= '<li id="wl-barnstar"><span><a href="#">Ордена</a></span></li>';
						var menuPresents= '<li id="wl-cookie">	<span><a href="#">Приятности</a></span></li>'; 
						var menuHolidays= '<li id="wl-holidays"><span><a href="#">Празднества</a></span></li>'; 
						var menuFlowers	= '<li id="wl-flowers">	<span><a href="#">Цветы</a></span></li>'; 
				
						var dlg = $('<div id="wlMonobookMenu" style="position:relative;"></div>')
							.html( '<div class="menu"><ul>'+menuBarnstar+menuPresents+menuHolidays+menuFlowers+'</ul></div>' );
						
						$wlMonobookMenu = dlg.dialog({
							width: 200,
							autoOpen: false,
							title: 'Что хотим выдать?',
							modal: true,
							buttons: {}
						});						
										
						document.getElementById('wl-barnstar').onclick = menuItemClick;
						document.getElementById('wl-cookie').onclick = menuItemClick;
						document.getElementById('wl-holidays').onclick = menuItemClick;
						document.getElementById('wl-flowers').onclick = menuItemClick;
					}
					
					$wlMonobookMenu.dialog('open');
				});
			
			}
		}

      } // close initialize function

    } // close wikiLove object
    wikiLove.initialize();
    wikiLove.getEmailable();
	wikiLove.getPage();
  }) // close mw.loader
} // close if
} // close if
//</nowiki>