User:Soxra/monobook.js

From the Kingdom Hearts Wiki, the Kingdom Hearts encyclopedia
< User:Soxra
Revision as of 16:19, 23 January 2012 by Soxra (talk | contribs)
Jump to navigationJump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
$(document).ready(function() {
	/* Force input boxes to have input box class */
	$(":text, input[type='text'], input[type='password'], input[type='search'], textarea, input#wpSummary").addClass("input-text-box");

	/* Recent Changes slider */
	$(".page-Special_RecentChanges span.mw-changeslist-expanded a, .page-Special_RecentChanges span:not(.mw-changeslist-expanded) a").live("mouseover",function() {
		$(this).attr("onclick","");
	}).live("click",function() {
		var num = $(this).parent().attr("id").split("-")[3];

		var $openarrow = $("#mw-rc-openarrow-"+num);
		var $closearrow = $("#mw-rc-closearrow-"+num);
		var $subentries = $("#mw-rc-subentries-"+num);

		$openarrow.css("visibility","visible").removeClass("mw-changeslist-hidden mw-changeslist-expanded");
		$closearrow.css("visibility","visible").removeClass("mw-changeslist-hidden mw-changeslist-expanded");
		$subentries.css("visibility","visible").removeClass("mw-changeslist-expanded");

		if ($subentries.is(":hidden") || $subentries.hasClass("mw-changeslist-hidden")) {
		  $openarrow.hide();
		  $closearrow.show();
		  $subentries.hide().removeClass("mw-changeslist-hidden").slideDown(300);
		} else {
		  $openarrow.show();
		  $closearrow.hide();
		  $subentries.slideUp(300);
		}

		return false;
	});

	/* Recent Changes Preview */
	$(".page-Special_RecentChanges").each(function() {
		var openTimer = undefined;
		var currTimer = undefined;
		var currAjax = undefined;
		$("head").append($("<link rel='stylesheet' href='http://www.khwiki.net/load.php?debug=false&lang=en&modules=mediawiki.legacy.diff&only=styles&skin=monobook&*' type='text/css'/>"));
		$("<div/>",{
			id:"rc-preview-div",
			style:"position:absolute;height:300px;width:55%;background:#fff;border:1px solid #888;z-index:500;padding:10px;box-shadow:2px 2px 6px rgba(0,0,0,0.5);border-radius:8px",
		}).hide().appendTo("body");
		$("table.mw-enhanced-rc a").live("mouseover",function() {
			var $link = $(this);
			var subtxt = $link.text().substr(-7);
			if (subtxt == "diff" || subtxt == "prev" || subtxt == "changes") {
				if (currAjax) currAjax.abort();
				if (currTimer) clearTimeout(currTimer);
				if (openTimer) clearTimeout(openTimer);
				openTimer = setTimeout(function() {
					var otop = $link.offset().top;
					var oleft = $link.offset().left;
					var wide = $link.width();
					$("div#rc-preview-div").css({
						top:otop-150,
						left:oleft+wide+5,
					}).html("Loading...").show();
					currAjax = $.ajax({
						url:"http://www.khwiki.net/index.php",
						method:"GET",
						data:$link.attr("href").substr(11),
						dataType:"text",
						success:function(msg, status, obj) {
							while (msg.charCodeAt(0) < 32)
								msg = msg.substr(1);
							$("div#rc-preview-div").html("<div style='height:20px;font-size:18px;font-weight:bold'>"+$link.parent().find("a:first").text()+"</div><div style='height:280px;font-size:110%;width:auto;overflow-y:auto'><table class='diff'>"+$(msg).find("table.diff").html()+"</table></div>").hover(function() {
								if (currTimer) clearTimeout(currTimer);
							},function() {
								$("div#rc-preview-div").hide().html("");
							}).find("#mw-diff-otitle4, #mw-diff-ntitle4").hide();
						},
					});
					if (openTimer) clearTimeout(openTimer);
				},1000);
			}
		}).live("mouseout",function() {
			if (currTimer) clearTimeout(currTimer);
			if (openTimer) clearTimeout(openTimer);
			currTimer = setTimeout(function() {
				$("div#rc-preview-div").hide().html("");
				if (currTimer) clearTimeout(currTimer);
				if (openTimer) clearTimeout(openTimer);
			},1000);
		});
	});
});