User:Writ Keeper/Scripts/selfTalkbackLink.js

function talkbackLink { if($("#mw-content-text").length > 0) { var $nodeList = $('a[title^="User talk:"]'), pdne = ' (page does not exist)'; if($nodeList !== null) { var i;			for( i = 0; i < $nodeList.length; i++) { var $link = $($nodeList[i]); $newLink = $('TB'); $newLink.click(function(e) {					tbSubmit($(this).attr('href').substr(1), this.id)				}); $($link).after($newLink); }		}	$('a[title="Send a talkback!"]').tipsy({html: true}).before("|").after("|"); } } function tbSubmit(page, id) { var questionTitle = prompt("Please enter the title of the section you're replying in (or just leave it blank):", ""), sectionTitle = "{{Talkback|"+mw.config.get('wgPageName')+"|"; if (questionTitle === null) { $("#"+id).attr("title", 'You canceled the talkback!').tipsy("show"); return; }	else if (questionTitle === "") { sectionTitle += "ts=" + "}}"; } 	else { sectionTitle += questionTitle + "|ts=" + "}}"; }	var data = { format : 'json', action : 'edit', minor : false, title : page, text : sectionTitle, section : 'new', summary : "Talkback: you've got messages!", token : mw.user.tokens.get('csrfToken') };	$.ajax({		url : mw.util.wikiScript('api'),		type : 'POST',		dataType : 'json',		data : data,		success : function(data) {			if(data && data.edit && data.edit.result && data.edit.result === 'Success') {				//window.location = mw.util.getUrl(page);                               alert("Talkback posted!");			} else {				$("#"+id).attr("title", 'There was an error requesting the page edit. Code: ' + data.error.code + '": ' + data.error.info).tipsy("show");			}		},		error : function {			$("#"+id).attr("title", 'There was an error using AJAX to edit the page.').tipsy("show");		}	}); } if(mw.config.get('wgPageName') === "User_talk:"+mw.config.get('wgUserName').replace(" ", "_")) {	mw.loader.using( 'jquery.tipsy', function { $(talkbackLink); } );}