Skip to content
This repository has been archived by the owner on Jan 26, 2018. It is now read-only.

Commit

Permalink
Move things around a bit. Fix #103, fix #104.
Browse files Browse the repository at this point in the history
  • Loading branch information
ahodesuka committed Jul 16, 2012
1 parent 189030d commit 8b6d16c
Show file tree
Hide file tree
Showing 2 changed files with 219 additions and 100 deletions.
304 changes: 210 additions & 94 deletions 4chanSS.user.js
Original file line number Diff line number Diff line change
Expand Up @@ -797,39 +797,12 @@
document.head.innerHTML = document.head.innerHTML;

var div;
reload = reload === true;

$(document).bind("QRDialogCreation", $SS.QRDialogCreationHandler);

if ($SS.conf["ExHentai Source"] !== 1)
$SS.exsauce.init();
else if (reload)
$(".exSource").remove();

if ($SS.conf["Custom Navigation Links"])
$SS.buildCustomNav();
else if (reload && (div = $("#boardLinks")).exists())
div.remove();

if (!reload)
if (reload !== true)
{
$SS.options.init();

var select = $("#boardSelectMobile").attr("id", "bSelectSS");

$("option[value=fa]", select).before($("<option value=f>/f/ - Flash"));
$("option[value=" + $SS.location.board + "]", select).attr("selected", "true");
div = $("#boardNavDesktop").prepend(select.bind("change", function(e)
{
location.href = location.href.replace(/(\.org\/).+\/.*$/, "$1" + e.target.value + "/");
}));
$(document.body).prepend($("<div id=bNavWrapper>").append(div));

div = $("<div id=bBanner>").append($(".boardBanner>img").attr("id", "banner"));
$(".boardBanner").prepend(div);

if (!$SS.browser.webkit && !$SS.conf["Hide Checkboxes"])
$("input[type=checkbox]:not(#imageExpand)").riceCheck();
$(document).bind("QRDialogCreation", $SS.QRDialogCreationHandler)
.bind("QRPostSuccessful", $SS.QRPostSuccessfulHandler)
.bind("DOMNodeInserted", $SS.nodeInsertedHandler);

if ((div = $("#imageType+label")).exists())
div.bind("change", function()
Expand All @@ -839,32 +812,18 @@

if (!$SS.QRhandled && (div = $("#qr")).exists())
$SS.QRDialogCreationHandler({ target: div });
}

$(document).bind("DOMNodeInserted", $SS.nodeInsertedHandler);
$SS.options.init();
$SS.nav.init();
$SS.pages.init();

if ($SS.location.board === "f")
$(".postarea input[type=file]").riceFile();
$SS.exsauce.init();
$SS.menuEntries.init();

if ($SS.conf["Show/Hide Menu Entry"])
$SS.hidePostME.init();
}
else
{
if (!$SS.conf["Smart Tripcode Hider"])
$("input[name=name]").each(function()
{
$(this).unbind("blur", $SS.tripCheck)
.removeClass("tripping");
});

if (!$SS.browser.webkit && !$SS.conf["Hide Checkboxes"] && !$(".postInfo>.riceCheck").exists())
$("input[type=checkbox]:not(#imageExpand)").riceCheck();
}
$SS.riceInputs.init();
$SS.logoReflect.init();

if ($SS.conf["Pages Position"] === 1)
$SS.buildPagesDropdown();
else
$("#pagesDrop").remove();
},
nodeInsertedHandler: function(e)
{
Expand All @@ -876,10 +835,16 @@
if (!$SS.browser.webkit && !$SS.conf["Hide Checkboxes"])
$("input[type=checkbox]", e.target).riceCheck();
}
else if (e.target.className === "thumbnail")
$(".riceFile>span", $("#qr")).text("");
else if (e.target.nodeName === "DIV" && !$SS.browser.webkit)
$("input[type=checkbox]", e.target).riceCheck();
else if (e.target.className === "thumbnail" ||
e.target.nodeName === "DIV" ||
e.target.id === "prefetch")
{
if (e.target.className === "thumbnail")
$(".riceFile>span", $("#qr")).text("");

if (!$SS.browser.webkit)
$("input[type=checkbox]", e.target).riceCheck();
}
},
QRDialogCreationHandler: function(e)
{
Expand Down Expand Up @@ -909,16 +874,6 @@

$SS.QRhandled = true;
},
tripCheck: function(e)
{
var $this = this.nodeName ? $(this) : $(e),
check = /^.*##?.+/.test($this.val());

if (check && !$this.hasClass("tripping"))
$this.addClass("tripping");
else if (!check && $this.hasClass("tripping"))
$this.removeClass("tripping");
},

/* CONFIG */
Config:
Expand Down Expand Up @@ -2133,7 +2088,7 @@
continue;
}

if ($SS.conf["Mascots"][j].boards != undefined &&
if ($SS.conf["Mascots"][j].boards != null &&
$SS.conf["Mascots"][j].boards.split(",").indexOf($SS.location.board) == -1)
continue;

Expand All @@ -2150,54 +2105,215 @@
}
},

hidePostME:
nav:
{
hasInit: false,
init: function()
{
var d = document;
var a = d.createElement("a");
var onclick;
a.href = "javascript:;";
if (!this.hasInit)
{
var select = $("#boardSelectMobile"),
links = $SS.conf["Nav Links"],
div, a = [];

if (!$("#bNavWrapper").exists())
{
div = $("#boardNavDesktop").prepend(select.bind("change", function(e)
{
location.href = location.href.replace(/(\.org\/).+\/.*$/, "$1" + e.target.value + "/");
}));

$("option[value=fa]", select).before($("<option value=f>/f/ - Flash"));
$("option[value=" + $SS.location.board + "]", select).attr("selected", "true");
$(document.body).prepend($("<div id=bNavWrapper>").append(div));
}

if ($SS.conf["Custom Navigation Links"])
{
if (links == undefined) return;

for (var i = 0, MAX = links.length; i < MAX; ++i)
a.push("<a href='" + window.location.protocol + "//" + links[i].link + "'" +
($SS.location.board == $SS.getLocation(links[i].link).board ? " class=selectedBoard" : "") + ">" + links[i].text + "</a>");

if ((div = $("#boardLinks")).exists())
return div.html(a.join($SS.conf["Nav Link Delimiter"]));

if ((div = $("#pagesDrop")).exists())
return div.after($("<div id=boardLinks>").html(a.join($SS.conf["Nav Link Delimiter"])));

$("#boardNavDesktop").prepend($("<div id=boardLinks>").html(a.join($SS.conf["Nav Link Delimiter"])));
return this.hasInit = true;
}
}
else if (this.hasInit &&
(div = $("#boardLinks")).exists() &&
!$SS.conf["Custom Navigation Links"])
{
div.remove();
return this.hasInit = false;
}
}
},

pages:
{
hasInit: false,
init: function()
{
if (!this.hasInit && $SS.conf["Pages Position"] === 1)
{
if ($("#pagesDrop").exists()) return;

var pages = $(".pagelist .pages>*"),
cpage = $(".pagelist .pages>strong").text(),
select = $("<select id=pagesDrop>");

if (pages.length() == 0) return;

var open = function(post)
pages.each(function() { select.append($("<option value=" + this.textContent +
(cpage == this.textContent ? " selected=true" : "") + ">Page " + this.textContent)); });
select.bind("change", function(){ location.href = location.href.replace(/(\.org\/[^\/]+)\/?.*$/, "$1/" + this.value); });

$("#boardNavDesktop").prepend(select);
return this.hasInit = true;
}
else if (this.hasInit)
{
if (post.isInlined)
return false;
$("#pagesDrop").remove();
return this.hasInit = false;
}
}
},

var p = $(post.el),
bIsHidden = p.attr("hidden") !== null;
tripHider:
{
hasInit: false,
init: function(input)
{
if (!this.hasInit && $SS.conf["Smart Tripcode Hider"])
{
input.bind("blur", this.handle);
return this.hasInit = true;
}
else if (this.hasInit)
{
$("input[name=name]").each(function()
{
$(this).unbind("blur", $SS.tripHider.handle)
.removeClass("tripping");
});
return this.hasInit = false;
}
},
handle: function(e)
{
var $this = this.nodeName ? $(this) : $(e),
check = /^.*##?.+/.test($this.val());

if (p.hasClass("op") && p.parent().previousSibling(".hidden_thread").exists())
bIsHidden = true;
if (check && !$this.hasClass("tripping"))
$this.addClass("tripping");
else if (!check && $this.hasClass("tripping"))
$this.removeClass("tripping");
}
},

a.textContent = (bIsHidden ? "Show" : "Hide") + " this post";
menuEntries:
{
hasInit: false,
init: function()
{
if (!this.hasInit && $SS.conf["Show/Hide Menu Entry"])
{
var a = document.createElement("a");
var onclick;
a.href = "javascript:;";

a.removeEventListener("click", onclick);
onclick = function()
var open = function(post)
{
var pc = $("#pc" + post.ID);
if (post.isInlined)
return false;

if (pc.hasClass("opContainer"))
pc.previousSibling().click();
else
pc.children(".hide_reply_button:first-child>a").click();
};
a.addEventListener("click", onclick);
var p = $(post.el),
bIsHidden = p.attr("hidden") !== null;

return true;
};
if (p.hasClass("op") && p.parent().previousSibling(".hidden_thread").exists())
bIsHidden = true;

a.textContent = (bIsHidden ? "Show" : "Hide") + " this post";

a.removeEventListener("click", onclick);
onclick = function()
{
var pc = $("#pc" + post.ID);

if (pc.hasClass("opContainer"))
pc.previousSibling().click();
else
pc.children(".hide_reply_button:first-child>a").click();
};
a.addEventListener("click", onclick);

return true;
};

d.dispatchEvent(new CustomEvent("AddMenuEntry",
this.createEntry(a, open);
return this.hasInit = true;
}
},
createEntry: function(a, func)
{
return document.dispatchEvent(new CustomEvent("AddMenuEntry",
{
detail: {
el : a,
open : open
open : func
}
}));
}
},

riceInputs:
{
hasInit: false,
init: function()
{
if (!this.hasInit)
{
if (!$SS.browser.webkit && !$SS.conf["Hide Checkboxes"])
$("input[type=checkbox]:not(#imageExpand)").riceCheck();
else if (!$SS.browser.webkit)
$("input#prefetch").riceCheck();

if ($SS.location.board === "f")
$(".postarea input[type=file]").riceFile();

return this.hasInit = true;
}
else if (!$SS.browser.webkit &&
!$SS.conf["Hide Checkboxes"] &&
!$(".postInfo>.riceCheck").exists())
{
$("input[type=checkbox]:not(#imageExpand)").riceCheck();
return this.hasInit = false;
}
}
},

logoReflect:
{
hasInit: false,
init: function()
{
if (this.hasInit) return;

var div = $("<div id=bBanner>").append($(".boardBanner>img").attr("id", "banner"));
$(".boardBanner").prepend(div);

return this.hasInit = true;
}
},

/* Thanks to hurfdurf
* http://pastebin.com/TTDJNH7c
* Modified by ahoka
Expand Down
Loading

0 comments on commit 8b6d16c

Please sign in to comment.