// * Merken von abgerarbeiteten Tagen auf der Beobachtungsliste
// * Diff-zu-mir-Links für die Beobachtungsliste
// * Diff-zu-mir-Links für den Werkzeugkasten im Artikel
// * Link um in "Eigene Beiträge" nur Artikel anzuzeigen, die nach dem eigenen Edit bearbeitet wurden
// * Zusätzliche Leerzeilen in Diff-Ansichten, damit mit STRG und Maus untereinanderliegende Blöcke ausgewählt und kopiert werden können

$(function() {
   change_link_to_watchlist();
  if(mw.config.get('wgCanonicalSpecialPageName')=="Watchlist")
  {
    AddCheckLinks();
     AddDiffToMeLinksContribs();
  }
  if(mw.config.get('wgCanonicalSpecialPageName')=="Recentchangeslinked")
  {
   AddDiffToMeLinksContribs();
  }
  
  if(mw.config.get('wgCanonicalSpecialPageName')=="Contributions")
  {
    AddLinksRemovehiddenRevisions();
	 AddDiffToMeLinksContribs();
  }
  
  if((window.location+"").search('diff=') != -1)
  {
	InsertNewLinesInDiff();  
  }
  
 });

function change_link_to_watchlist()
{
	var beoLink = document.getElementById('pt-watchlist');
	beoLink.firstChild.href="http://wikipedia.ramselehof.de/wherewasi.php?user=" + mw.config.get('wgUserName');
}

function AddCheckLinks()
{
	var watchListDays = document.getElementsByTagName("h4");
	for (i = 0; i < watchListDays.length; i++)
	{

		var dateString = watchListDays.firstChild.data;
		var posOfDot = dateString.indexOf('.');
		var dayString = dateString.substr(0, posOfDot);
		var linkCode = '<a href="http://wikipedia.ramselehof.de/wherewasi.php?user=' + wgUserName +'&newday=' + dayString + '">X</a>';
		if (watchListDays) 
		{
			var dayLink = document.createElement("span");
			dayLink.innerHTML=/* */linkCode;/* */
			watchListDays.appendChild(dayLink);
		}
	}

}

function AddDiffToMeLinksContribs()
{
	var watchlistItems = GetElementsByClassName('a', 'mw-changeslist-history');
	var myDiffToolUrl = 'http://wikipedia.ramselehof.de/diff2me.php?project=wikipedia&lang=de&user=' + mw.config.get('wgUserName') + '&article=';
	for (i = 0; i < watchlistItems.length; i++)
	{
		var diffLink = watchlistItems.nextSibling;
		if (diffLink) 
		{
			var ins_li = document.createElement('span');
			ins_li.innerHTML=/* */' | <a href=\"' + myDiffToolUrl + encodeURIComponent(watchlistItems.title) + '\">diff2me</a>';/* */
			diffLink.parentNode.insertBefore(ins_li, diffLink);
		}
	}
}

function AddLinksRemovehiddenRevisions()
{
	var contentSub = document.getElementById('contentSub');
	contentSub.innerHTML = contentSub.innerHTML.replace(')', ' | <a href="#" onclick="javascript:HideMyLatestRevisions()">Aktuelle Versionen ausblenden</a>)');
}

function HideMyLatestRevisions()
{
	var listItem = document.getElementsByTagName('ul'); 
	var hiddenRevisions = new Array();  
	var end = listItem.childNodes.length; 
	for(var i=1;i<end; i=i+2) 
	{ 
		var titleArticle = listItem.childNodes.childNodes.title; 
		if(listItem.childNodes.className.startsWith('mw-contributions-current')) 
		{ 
			hiddenRevisions.push(titleArticle); 
			listItem.childNodes.style.display='none'; 
		} 
		else if(hiddenRevisions.indexOf(titleArticle)!=-1) 
		{ 
			listItem.childNodes.style.display='none'; 
		} 
		else 
		{ 
			hiddenRevisions.push(titleArticle); 
		} 
	} 
	;void(0);
}

function InsertNewLinesInDiff()
{
	var tds = document.getElementsByTagName("td");

	for(var i=0;i<tds.length;i++)
	{
	  if(tds.className+"" == "diff-addedline"
		|| tds.className+"" == "diff-deletedline"	
		|| tds.className+"" == "diff-context")	
		{
			if(tds.childNodes!=null)
			{
				var br = document.createElement('br');
				var ok = tds.childNodes.innerHTML +='\n';
			}
		}
	}
}
function GetElementsByClassName(tagname, classname)
{
  /* ] */
   var ret = new Array();
   var tags = document.getElementsByTagName(tagname);
   for (i = 0; i < tags.length; i++)
      if (tags.className == classname)
		ret.push(tags);

   return ret;
}