Waifuist 8chan Enhancer 2

Early version of an updated script for 8chan: Post counting and notify, quick reply, images from links.

As of 2014-09-23. See the latest version.

// ==UserScript==
// @name           Waifuist 8chan Enhancer 2
// @include        https://8chan.co/*res*
// @description    Early version of an updated script for 8chan: Post counting and notify, quick reply, images from links.
// @version        0.0.4
// @namespace https://greasyfork.org/users/2657
// ==/UserScript==

//Config Vars
var Configs = {counter:"ON", linkimgopt:"ON", menu:"ON", configmenu:"ON", arrows:"ON", noko:"ON", antiflood:"ON"};

//Load Configs System
if (localStorage.getItem('Configs')){
    var Configs2 = localStorage.getItem('Configs');
    Configs = JSON.parse(Configs2);
};

//Configs Saver
function save(){
    localStorage.setItem("Configs", JSON.stringify(Configs));
};

//quick reply 2.0
$('form:first-of-type').addClass( "postboxy" );



//$("a[onclick*='cite']").each(function() {
  //  var att = $(this).attr('onclick');
    //$(this).attr('onclick', 'ex' + att);
//});

//$(document).on('click', "a[onclick*='excite']", function() {
  //  alert($(this).text());
//});


//Notifier/Counter
if (Configs["counter"] == "ON") {
    var count = 0;
    
    $('#favicon').remove();
    $('head').append('<link href="http://i.imgur.com/wBQJqld.png" id="favicon" rel="shortcut icon">');
    
    $(document).on( "new_post", function() {
        count++;
        if (Configs["linkimgopt"] == "ON") {linkimg();};
    });
    
    var title_regex = /^\(\d+\) (.*)$/;
    var original_title = document.title;
    var match = title_regex.exec(document.title);
    if (match != null) {
        original_title = match[1];
    };
    
    setInterval(function() {
        var state2 = document["visibilityState"];
        if (state2 == "visible"){
            count = 0;};
        if (count > 0 && state2 == "hidden") {
            document.title = '('+count+') '+original_title;
            $('#favicon').remove();
            $('head').append('<link href="http://i.imgur.com/lfAW4fq.png" id="favicon" rel="shortcut icon">');
        };
    }, 10000);
    
    var onVisibilityChange = function (args) {
        var state = document["visibilityState"];
        if (state == "visible")
        {
            document.title = original_title;
            count = 0;
            $('#favicon').remove();
            $('head').append('<link href="http://i.imgur.com/wBQJqld.png" id="favicon" rel="shortcut icon">');
        }
    };
    
    document.addEventListener("visibilitychange", onVisibilityChange, false);
    
};

//Menu
if (Configs["menu"] == "ON") {
    $('body').append("<div class='menu' style='position:fixed; right:10%; bottom:20%; width:49px; background:grey;'><center><font size='30'><a alt='Scroll Up' style='text-decoration: none' href='javascript:window.scrollTo(0,0);'>▲</a><br><a style='text-decoration: none' href='javascript:window.scrollTo(0,900000000);'>▼</a></div>")
};

//Config Menu
if (Configs["configmenu"] == "ON") {
    $("body").append("<div class='optionslink' style='cursor: pointer; cursor: hand; width:auto;'>[Script Options]</div>")
    $("body").append("<div class='optionsmenu' style='display:none; position:fixed; right:10%; top:5%; width:200px; height:300px; background:grey; padding:5px;'></div>")
    $(document).on('click', ".optionslink", function() {
        $(".optionsmenu").css("display","inline");
        $('.optionslink').html("[Close Script Options]");
        $('.optionslink').attr('class', 'optionslinkclose');
        show_quick_reply();
    });
    $(document).on('click', ".optionslinkclose", function() {
        $(".optionsmenu").css("display","none");
        $('.optionslinkclose').html("[Script Options]");
        $('.optionslinkclose').attr('class', 'optionslink');
    });
};


//linkimg
function linkimg(){
    $('a[href$=".png"][rel="nofollow"], a[href$=".jpg"][rel="nofollow"], a[href$=".gif"][rel="nofollow"]').each(function(){
        $(this).replaceWith('<div class="linkedimg2" style="width:100px;display:inline-block;"><img class="linkedimg2" style="max-width: 100%;" src="' + $(this).attr('href') + '" /></div>');
    });
    
    $(document).on('click', ".linkedimg2", function() {
        $(this).css('width', 'auto');
        $(this).attr('class', 'clicked');
    });
    
    $(document).on('click', ".clicked", function() {
        $(this).css('width', '100px');
        $(this).attr('class', 'linkedimg2');
    });
    
};

//Linkimg Option
if (Configs["linkimgopt"] == "ON") {linkimg();};

$(".optionsmenu").append("<div class='linkimg' style='cursor: pointer; cursor: hand; width:auto;'>Links to Images [" + Configs["linkimgopt"] + "]</div>");
$(document).on('click', ".linkimg", function() {
    imgchange = Configs["linkimgopt"];
    if ( imgchange === "ON") {imgchange = "OFF";} else {imgchange = "ON";};    
    Configs["linkimgopt"] = imgchange;
    $('.linkimg').html("Links to Images [" + Configs["linkimgopt"] + "]");
    save();
});



$('.menu').append("<center><font size='30'><a style='text-decoration: none' class='QR'><img style='cursor: pointer; cursor: hand;' src='http://i.imgur.com/f8L6S1O.png'></a><a style='text-decoration:none;display:none;cursor: pointer; cursor: hand;' class='QR2'>X</a><br>");
$('body').on('click', '.QR', function() {
    $('.close-btn').click();
    $('.postboxy').after("<div class='dummytext' style='height:301px;'></div>");
    $('.postboxy').css({"background-color":"#D1D1D1", position:"fixed", bottom:"10%", right:"calc(10% + 49px)"});    
    $(".QR").css("display","none");
    $(".QR2").css("display","inline");
    
});
$('body').on('click', '.QR2', function() {
    $( ".dummytext" ).remove();
    $('.postboxy').css({"background-color":"", position:"", bottom:"", right:""});    
    $(".QR").css("display","inline");
    $(".QR2").css("display","none");
});

//smaller functions

$(".optionsmenu").append("<div class='antiflood' style='cursor: pointer; cursor: hand; width:auto;'>Anti Flood [" + Configs["antiflood"] + "]</div>");
$(document).on('click', ".antiflood", function() {
    floodchange = Configs["antiflood"];
    if ( floodchange === "ON") {floodchange = "OFF";} else {floodchange = "ON";};    
    Configs["antiflood"] = floodchange;
    $('.antiflood').html("Anti Flood [" + Configs["antiflood"] + "]");
    save();
});

//in-line reply


//autonoko
if (Configs["noko"] == "ON") {
    function noko(){
        document.getElementsByName("email", "input")[0].value = "noko";
    };
    
    
};