☰

Xchan Gold Alpha

Experimental script to enhance xchan.pw

As of 21.12.2015. See апошняя версія.

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         Xchan Gold Alpha
// @version      0.0.0.9
// @description  Experimental script to enhance xchan.pw
// @include      https://xchan.pw/*
// @include      http://xchan.pw/*
// @require 	 https://cdn.jsdelivr.net/jquery.timeago/1.4.1/jquery.timeago.js
// @namespace https://greasyfork.org/users/2657
// ==/UserScript==



//ban notify
var bannotify = 0;
var rows;
if (bannotify == 1) {
    var page;
    if (localStorage.getItem("banpage")) {page = localStorage.getItem("banpage");}
    setInterval(function () { 

        $.get("https://xchan.pw/?page=banlist", function (data) {
            var lastb = $(data).find('a[href*="geo"]')[0];
            if (lastb == page) {} else {alert('Novo Bam!'); page = lastb; localStorage.setItem("banpage", lastb)};
        });

    }, 100000);

    $('input[name="reportpost"]').remove();

    $.get("https://xchan.pw/manage_page.php?action=reports", function (data) {
        $('.logo').after($(data).find('#contents'));
    });
}


//yttitlestest
function extractVideoID(url){
    var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
    var match = url.match(regExp);
    if ( match && match[7].length == 11 ){
        return match[7];
    }else{
        return url;
    }
}

$(document).on('click', ".mask", function() {
    if ($(this).hasClass('isop')){$(this).prev().attr('height', '25x').attr('width', '300px');$(this).removeClass('isop');} else {
        //$(this).prev().attr('height', '480x').attr('width', '600px');$(this).addClass('isop');
        $(this).prev().clone().attr('height', '480x').attr('width', '600px').appendTo('.logo');
        $('.logo').append('<div class="killvid">[Fechar]</div>');
        jQuery('html,body').animate({scrollTop:0},0);
    };
}); 

$(document).on('click', ".killvid", function() {
    $(this).prev().remove();
    $(this).remove();
}); 

$(document).on('mouseenter', 'a[href*="youtube.com/watch?"], a[href*="youtu.be"]', function() {
    url = extractVideoID($(this).attr('href'));
    $(this).replaceWith('<iframe class="ytv" src="https://www.youtube.com/v/'+url+'" width="300px" height="25px" ></iframe><div class="mask" style="display:inline-block;">OPEN </div>');
});

//ezspoiler

//function easyspoiler(){
//    var text = $('#qr_message').val();
// var cont = text.match(/\*\*/g);
//    var textf = text;
//    if (cont.length%2 == 0) {
//       console.log('even');
//      for (i = 0; i < cont.length; i++) { 
//         if (i%2 == 0){
//            textf = textf.replace('**','[spoiler]');
//       }else{
//          textf = textf.replace('**','[/spoiler]');
//     }
//  }
// }
// $('#qr_message').val(textf);
//};

//403 fixer 


$('#quickform, #postform').find('input[accesskey="z"]').replaceWith('<input type="button" class="postfix" value="Enviar Fixed">');

function postfix(form){ 
    $('<iframe />').attr('src', 'https://xchan.pw/b/').appendTo('body');    
    setTimeout(function(){document.forms[form].submit();}, 3000); 
}; 

$(document).on('click', ".postfix", function() {
    postfix($(this).closest('form').attr('name'));
    easyspoiler();
}); 



//Hijacks
function semifag(){ 
    $('.postername:contains("Semi")').parent().parent().css('background-image', 'url(\"http://a.pomf.se/rcqfit.png\")');
    $('.postertrip:contains("hKvr")').parent().parent().css('background-image', 'url(\"http://a.pomf.se/ndnvht.png\")');
    $('blockquote:contains("…"), blockquote:contains("daí"), blockquote:contains("Coë")' ).parent().css('background-image', 'url(\"http://a.pomf.se/aopqpg.jpg\")');
}; 
semifag(); 




//Hijacks//Location hack

location.replace("javascript:function expandimg(){};function expandthread(){};");

//Hijack ExpandImg
$(document).on('click', "a[href*='/src/']", function(e) {
    e.preventDefault();
    var src = $(this).attr('href');

    var imgfl = $('<div><a href="javascript:;" onclick="$(this).remove(); return false;" ><img class="floatimg" src="'+src+'" style="max-width:1000px;"></div>'); 
    if (src.indexOf(".webm") !=-1) {
        imgfl = $('<div class="floatimg"><a href="javascript:;" onclick="$(\'.floatimg\').remove(); $(\'.floatvid\').pause(); return false;"><span style="cursor: pointer; cursor: hand;background:black;">[Fechar]</span></a><br><video width="auto" class="floatvid" height="auto" controls loop><source src="'+ $(this).attr('href') +'" type="video/webm">Your browser does not support the video tag.</video></div>');
    }
    $('#postform').prepend(imgfl);
    jQuery('html,body').animate({scrollTop:0},0);
    //$('.floatimg').draggable();
    //javascript:expandimg('728609', 'https://xchan.pw/b/src/142252018357.jpg', 'https://xchan.pw/b/thumb/142252018357s.jpg', '344', '257', '175', '131');return false;
});

//webm improvement
/*$(document).on('click', "f[href*='webm']", function(e) {
    e.preventDefault();
    id = $(this).find('.thumb').attr('alt');
    $(this).find('.thumb').css('display', 'none');
    $(this).before('<div class="'+id+'vd" style="vertical-aligb:top;"><span class="clsvd" style="cursor: pointer; cursor: hand;" id="'+id+'">[Fechar]</span><br>< width="auto" height="auto" controls><source src="'+ $(this).attr('href') +'" type="video/webm">Your browser does not support the video tag.</video></div>');
});*/
$(document).on('click', ".clsvd", function() {
    id = $(this).attr('id');
    $('.thumb[alt*="'+id+'"]').css('display', 'block');
    $('.'+id+'vd').remove();
});

//fix hidden threads
function hidefix(){
    for (i = 0; i < hiddenthreads.length; i++) {

        if (hiddenthreads.toString().indexOf(i)!==-1) {

            $('#unhidethread'+hiddenthreads[i]+'').css('display', 'block');
            $('#thread'+hiddenthreads[i]+'').css('display', 'none');
        }
    };
};


//Hijacks//Quick Reply Preview Image
$("[name='imagefile']:eq(1)").change(function () {
    if (window.FileReader) {
        var Reader = new FileReader();
        var file = this.files[0];
        window.file2 = file;
        var previewarea = $('.qrpreviewer');

        if (file.type.indexOf("video") > -1) { 

            previewarea.html('');                
            Reader.onload = function (event) {
                previewarea.append([' <video width="100" height="88" controls><source src="'+ event.target.result +'" type="'+ window.file2.type +'">Your browser does not support the video tag.</video>'].join(''));
            }
            Reader.readAsDataURL(file);    

        } else {

            previewarea.html('');
            Reader.onload = function (event) {
                previewarea.show().append(['<img style="max-height:88px;max-width:100px;" src="' + event.target.result + '" alt="">'].join(''));
            }
            Reader.readAsDataURL(file);
        };
    }
});
//anti-antispam
setTimeout(function(){
    //location.reload();
}, 1500000);




//Hijacks//Quick Reply Replacer
$('#qr_form').draggable();

$(document).mousemove(function (e) {
    window.pageX = e.pageX;
    window.pageY = e.pageY;
});
function getSelectedText() {
    if (window.getSelection) {
        return window.getSelection().toString();
    } else if (document.selection) {
        return document.selection.createRange().text;
    }
    return '';
};

$(document).on('click', ".qrp", function() {
    tidrpt = $(this).attr('title');
    tidrpts = tidrpt.split(' ');
    var threadid = tidrpts[0];
    var replyto = tidrpts[1];

    var meval = "";
    $('#qr_info').html("Reposta ao post: " + replyto + " na thread: " + threadid);
    $('#qr_name').val($.cookie("name"));
    $('#qr_postpassword').val($.cookie("postpassword"));
    $('#qr_threadid').val(threadid);
    //meval += $('#qr_message').val();
    //leval = $('textarea[name="message"]').val();
    //$('textarea[name="message"]').val('');
    var text = getSelectedText();
    if (text!='') {
        text = text.split('\n');
        var ftext = "";

        text.forEach(function (str) {
            if (str !== '') {
                str = '>' + str + '\n';
            } else {
                str = '\n';
            }
            ftext += str;});

        $('#qr_message').insertAtCaret('', ">>" + replyto + "\n" + ftext);
    } else {
        $('#qr_message').insertAtCaret('', ">>" + replyto + "\n");
    };
    //$("#qr_message")[0].value += '>>' + replyto + '\n';
    //citeReply(replyto);
    //$('#qr_message').val(meval + ">>" + replyto + "\n");

    $('#qr_form').css({
        'left' : window.pageX,
        'top' : window.pageY,
        'display' : 'block'
    }).fadeIn('slow');
    $('#qr_name').get(0).type = 'password';

    $( '.namecheck' ).appendTo( '.qr_new' );
    $('.postblock:contains("Mensagem"):eq(1)').append($('.movepreview'));
});
$(document).on('click', "img[alt='Close']", function() {
    $( '.namecheck' ).appendTo( '.new' );
});

function prepqrp(){
    $('a[title="Resposta Rápida"]').each(function() {	
        var onc = $(this).attr('onclick');
        oncf = onc.replace('javascript:qr(','').replace(',', '').replace(');', '');
        //oncfs = oncf.split(' ');    
        $(this).attr('onclick', '');    
        $(this).attr('title', oncf);
        $(this).attr('class', 'qrp');
    });
};

//Hijacks//Expand Thread

$(document).on('click', ".expandthread", function() {   
    var tid = $(this).parent().attr('onclick');
    tids = tid.split("'");
    var c = tids[1];
    var d = tids[3];
    $('.expandedthread').remove();
    var e = $('<div></div>').addClass('expandedthread').attr('style', 'background:dimgray;position:fixed;top:3px;left:10%;width:600px;height:99%;border: solid 1px;overflow-y:scroll;overflow-x:hidden;')
    if (e.length) {
        e.prepend(_('Expanding thread') + '...<br /><br />');
        e.load(ku_boardspath + '/expand.php?board=' + d + '&threadid=' + c, {}, function (a, b) {
            if (!a) {
                e.html(_("something went wrong (blank response)"))
            }
            if (b == "error") {
                alert(_('Something went wrong...'))
            }
            e.prepend('<div class="closexp" style="cursor:pointer;cursor:hand;position:fixed;background:orange;">[Fechar]</div>');
            $('body').append(e);
            delandbanlinks(this);
            loop();
        })
    }
    return false
});

$(document).on('click', ".closexp", function() { 
    $('.expandedthread').remove();
});


/*$(document).on('click', ".expandthread", function() {   
    var tid = $(this).parent().attr('onclick');
    tids = tid.split("'");
    var c = tids[1];
    var d = tids[3];

    var e = $("#replies" + c + d);
    if (e.length) {
        e.prepend(_('Expanding thread') + '...<br /><br />');
        e.load(ku_boardspath + '/expand.php?board=' + d + '&threadid=' + c, {}, function (a, b) {
            if (!a) {
                e.html(_("something went wrong (blank response)"))
            }
            if (b == "error") {
                alert(_('Something went wrong...'))
            }
            delandbanlinks(this);
            loop();
        })
    }
    return false
});*/

//hideposts
function hideposts(){$('.extrabtns').prepend('<div class="hidepost" style="display:inline-block;"><img src="https://xchan.pw/css/icons/blank.gif" border="0" class="hidethread" alt="hide"></div>');};
if (localStorage.getItem("hidenposts")){var rawposts = localStorage.getItem("hidenposts"); var hidenposts = JSON.parse(rawposts);} else {var hidenposts = [];};



$(document).on('click', ".hidepost", function() { 
    id = $(this).parent().parent().attr('id');
    id = '#' + id;
    if ( hidenposts.indexOf(id) == -1) {hidenposts.push(id);
                                        localStorage.setItem("hidenposts", JSON.stringify(hidenposts))                                    
                                        $(this).parent().parent().attr('style', 'height:17px;overflow:hidden;');
                                       } else {
                                           hidenposts.splice(hidenposts.indexOf(id), 1);
                                           localStorage.setItem("hidenposts", JSON.stringify(hidenposts))                                    
                                           $(this).parent().parent().attr('style', 'height:auto;overflow:;');
                                       };    
});

$("<style>").text(""+hidenposts+"{height:17px;overflow:hidden;}").appendTo("head");

//Hijacks//Hover

$("<style>").text(".reflinkpreview {display:none!important;} div[class^='floater'], .hold {min-width: 0; z-index: 9999; margin: 0 !important; display: block !important; max-width: 808.5px; background:grey; font-family: 'Trebuchet MS','Tahoma','Verdana','Arial',sans-serif; font-size: 13px; text-align: left;}").appendTo("head");

$('.logo').append('<div class="previews"></div>');

var waiter;
var c;
$(document).on('mouseenter', 'a[class^="ref|"]', function() {
    c = $(this).attr("class").split('|'); 
    var htop = $(this).offset().top;
    var hleft = $(this).offset().left;

    waiter = window.setTimeout(function() {

        $('.floater').attr('class', 'hold');

        var d = $("<div></div>").addClass('floater').attr({
            style : "position:absolute;width:400px;"
        });

        if ($('#postform [name=board]').val() == c[1] && $('#reply' + c[3]).length && (($('#thumb' + c[3]).length && $('#thumb' + c[3] + " img:first-child").attr("src").lastIndexOf("thumb") != -1) || !$('#thumb' + c[3]).length)) {
            var f = true;
            d.html($("#reply" + c[3]).parents("table").html())
        } else {
            d.html('Carregando...').toggle("normal");
            $.get(ku_boardspath + '/read.php?b=' + c[1] + '&t=' + c[2] + '&p=' + c[3] + '&single', {}, function (a, b) {
                if (b != "success") {
                    alert('wut')
                } else {

                    if (a) {
                        d.html(a)
                    } else {
                        d.html(_("something went wrong (blank response)"))
                    }
                }
            })
        }

        $('.previews').append(d).slideDown( "slow" );
        //loop();

        if (f) {
            //d.toggle("normal")
        };

        $('.floater')
            .css("top", htop)
            .css("left",(hleft-100))
    }, 500);
});
$(document).on('mouseleave', 'a[class^="ref|"]', function() { clearTimeout(waiter); });


$(document).on('mouseleave', '.previews', function() {    

    $('.floater').remove();
    $('.hold').remove();
});  


//Start
$( document ).ready(function() {
    loop();
    (function() {
        var link = document.createElement('link');
        link.type = 'image/x-icon';
        link.rel = 'shortcut icon';
        link.href = 'http://www.stackoverflow.com/favicon.ico';
        document.getElementsByTagName('head')[0].appendChild(link);
    }());
    //$('#favicon').remove();    
    //$("#favicon").attr("href","http://i.imgur.com/AB4G76Z.png");
    //$('link[rel="shortcut icon"]').remove();
    //$('head').append('<link href="https://i.imgur.com/AB4G76Z.png" id="favicon" rel="shortcut icon">');


    //addpreviewevents2();
    $('#qr_form').find('.postblock:contains("Mensagem")').append('<div class="qrpreviewer"></div>');
    $('.qrpreviewer').attr('style', 'background:none; border:0px; width:100px; padding:0px; position:relative; ');    
});

window.dt = "";
//text-format


jQuery.fn.extend({
    insertAtCaret: function(myValue, myValueE){
        return this.each(function(i) {
            if (document.selection) {
                //For browsers like Internet Explorer
                this.focus();
                sel = document.selection.createRange();
                sel.text = myValue + myValueE;
                this.focus();
            }
            else if (this.selectionStart || this.selectionStart == '0') {
                //For browsers like Firefox and Webkit based
                var startPos = this.selectionStart;
                var endPos = this.selectionEnd;
                var scrollTop = this.scrollTop;
                this.value = this.value.substring(0,     startPos)+myValue+this.value.substring(startPos,endPos)+myValueE+this.value.substring(endPos,this.value.length);
                this.focus();
                this.selectionStart = startPos + myValue.length;
                this.selectionEnd = ((startPos + myValue.length) + this.value.substring(startPos,endPos).length);
                this.scrollTop = scrollTop;
            } else {
                this.value += myValue;
                this.focus();
            }
        })
    }
});
$('textarea[id="qr_message"]').after('<br class="stylebar">');

$('.stylebar').after('<input class="formbutton_SS" type="button" value="Spoiler" /><input class="formbutton_B" type="button" value="B" /><input class="formbutton_R" type="button" value=">" /><input class="formbutton_S" type="button" value="S" /><input class="formbutton_I" type="button" value="I" /><input class="formbutton_C" type="button" value="Code" />');
$('.formbutton_I').css('font-style', 'italic');
$('.formbutton_S').css('text-decoration', 'line-through');
$('.formbutton_R').css('color', 'green');
$('.formbutton_B').css('font-weight', 'bold');
$('.formbutton_SS').css('font-weight', 'bold');

$('.formbutton_C').on('click', function(){ 
    $('textarea[id="qr_message"]').insertAtCaret("[code]", "[/code]");
});
$('.formbutton_I').on('click', function(){ 
    $('textarea[id="qr_message"]').insertAtCaret("[i]", "[/i]");
});
$('.formbutton_S').on('click', function(){ 
    $('textarea[id="qr_message"]').insertAtCaret("[s]", "[/s]");
});
$('.formbutton_R').on('click', function(){ 
    $('textarea[id="qr_message"]').insertAtCaret(">", "");
});
$('.formbutton_B').on('click', function(){ 
    $('textarea[id="qr_message"]').insertAtCaret("[b]", "[/b]");
});
$('.formbutton_SS').on('click', function(){ 
    $('textarea[id="qr_message"]').insertAtCaret("[spoiler]", "[/spoiler]");
});

//Zoom Thumbs

/*$('.thumb').each( function () { 
    var w = $(this).attr('width');
    var h = $(this).attr('height');
    $(this).attr({
        width: (parseInt(w) + 40),
        height: (parseInt(h) + 40)
    });

} );*/

//Menu

$(".navbar").after("<div class='optionslink hov' style='display:inline;cursor: pointer; cursor: hand; width:auto;'><b>[Opções de Script]</b></div>")
$(".navbar").after("<div class='optionsmenu' style='display:none;background:rgb(199, 199, 199);font-weight:bold;padding:3px;cursor: pointer; cursor: hand;'></div>")

$('.optionsmenu').append(' <span class="capture hov">[Capturar Pagina]</span> <span class="Dcatalog hov">[Catalogo]</span>');
$('.optionsmenu').append(' <span class="hidetrips hov">[Esconder Trips]</span>');
$('.optionsmenu').append(' <span class="hidetripposts hov">[Esconder Trip Posts]</span>');
$('.optionsmenu').append(' <span class="hideanon hov">[Esconder Anônimos]</span>');

$(document).on('mouseenter', ".hov", function() {
    $(this).css('background', 'orange');
}).on('mouseleave', ".hov", function() {
    $(this).css('background', 'rgb(199, 199, 199)');
});

//trip hidder
$("<style>").text(".shidden{display:none;}").appendTo("head");

function showtrips(){
    localStorage.removeItem("hidetrips");
    $('.showtrips').text('[Esconder Trips]');
    $('.showtrips').attr('class', 'hidetrips');
    $('.shidden').removeClass('shidden');
};

function hidetrips(){
    localStorage.setItem("hidetrips", "OFF")
    $('.hidetrips').text('[Mostrar Trips]');
    $('.hidetrips').attr('class', 'showtrips');
    $('.postertrip, .postername').addClass('shidden');
};

$(document).on('click', ".showtrips", function() { showtrips(); });

$(document).on('click', ".hidetrips", function() { hidetrips(); });

if (localStorage.getItem("hidetrips")){ hidetrips(); };

//- 

//trip post hidder

function showtrippost(){
    localStorage.removeItem("hidetripposts");
    $('.showtripposts').text('[Esconder Trip Posts]');
    $('.showtripposts').attr('class', 'hidetripposts');
    $('.shidden').removeClass('shidden');
};

function hidetrippost(){
    localStorage.setItem("hidetripposts", "OFF")
    $('.hidetripposts').text('[Mostrar Trip Posts]');
    $('.hidetripposts').attr('class', 'showtripposts');
    $('.postername:not(:contains("Anônimo"))').parent().parent().addClass('shidden');
};

$(document).on('click', ".showtripposts", function() { showtrippost(); });

$(document).on('click', ".hidetripposts", function() { hidetrippost(); });

if (localStorage.getItem("hidetripposts")){ hidetrippost(); };


//Anon post hidder

function showanon(){
    localStorage.removeItem("hideanon");
    $('.showanon').text('[Esconder Anônimos]');
    $('.showanon').attr('class', 'hideanon');
    $('.shidden').removeClass('shidden');
};

function hideanon(){
    localStorage.setItem("hideanon", "OFF")
    $('.hideanon').text('[Mostrar Anônimos]');
    $('.hideanon').attr('class', 'showanon');
    $('.postername:contains("Anônimo")').parent().parent().addClass('shidden');
};

$(document).on('click', ".showanon", function() { showanon(); });

$(document).on('click', ".hideanon", function() { hideanon(); });

if (localStorage.getItem("hideanon")){ hideanon(); };

//

$(document).on('click', ".optionslink", function() {
    $(".optionsmenu").css("display","block");
    $('.optionslink').html("<b><font color='red'>[Fechar]</font></b>");
    $('.optionslink').attr('class', 'optionslinkclose hov');

});
$(document).on('click', ".optionslinkclose", function() {
    $(".optionsmenu").css("display","none");
    $('.optionslinkclose').html("<b>[Opções de Script]</b>");
    $('.optionslinkclose').attr('class', 'optionslink hov');
});


$(document).on('click', ".menubut", function() { 
    $('.menu').attr('display', 'block');
});

//Image Merger
$(document).on('click', ".merger", function() { 
    $('body').prepend('<br><div style="display:inline-block;border:1px solid;width:auto;height:auto;" class="workspace"><center></div>');
    $('.workspace').before('<input class="maintCostField" type="file"/> Width:<input class="width" type="text"/> Height:<input class="height" type="text"/> <button class="savemerge" type="button">Salvar</button>');   
});

$(document).on('click', ".savemerge", function() { 
    target = $('.workarea')
    html2canvas(target, {
        onrendered: function(canvas) {
            Canvas2Image.saveAsJPEG(canvas)
        }
    });
});

$(document).on('change', '.maintCostField', function(){    
    if (window.FileReader) {
        var Reader = new FileReader();
        var file = this.files[0];
        var previewarea = $('.workspace');

        Reader.onload = function (event) {
            previewarea.append(['<img class="dra" style="max-width:100%;max-height:100%;" src="' + event.target.result + '" alt="">'].join(''));
        }
        Reader.readAsDataURL(file);
    }
});

$(document).on('click', '.dra', function(){
    $(this).draggable();   
});



$(document).on('change', '.width', function(){    
    wid = $(this).val() + "px";
    $('.workspace').css('width', wid);
});

$(document).on('change', '.height', function(){    
    wid = $(this).val() + "px";
    $('.workspace').css('height', wid);
});
//Debug

$(document).on('click', ".capture", function() { 

    html2canvas(document.body, {
        onrendered: function(canvas) {
            Canvas2Image.saveAsJPEG(canvas)
        }
    });

});


// Catalog

$("<style>").text(".catalogimg > img {max-width:100%;max-height:100%;} .catalogitem {margin-bottom:10px;}").appendTo("head");

$(document).on('click', ".Dcatalog", function() {    
    $('.catalog').remove();
    $('body').prepend('<div class="catalog" style="background: dimgray;border: solid 1px;overflow-y:scroll;overflow-x:hidden;width:240px;height:650px;position:fixed;top:100px;left:10px;"><table id="catalogt"><tbody><div class="closecat hov" style="font-size: 15px;font-weight: bold;position:fixed;top:80px;left:10px;color:red;font-size:11px;cursor: pointer; cursor: hand;">[Fechar Catalogo]</div></tbody></table></div>');
    $.get("https://xchan.pw/b/catalog.html", function (data) {
        $(data).find('a[class^="ref|"]').each(function () {
            var href = $(this).attr('href');
            var c = $(this).attr("class").split('|'); 
            var d = $("<span></span>").addClass('catalogimg').attr({
                style : "max-width:220px;background:#F7F7F7;"
            });
            var g = $("<div></div>").addClass('catalogtext').attr({
                style : "overflow-x:hidden;overflow-y:scroll;max-height:200px;max-width:220px;background:#F7F7F7;"
            });
            $.get(ku_boardspath + '/read.php?b=' + c[1] + '&t=' + c[2] + '&p=' + c[3] + '&single', {}, function (a, b) {
                if (b != "success") {
                    alert('wut')
                } else {

                    if (a) {
                        var z = $('<img />').html(a).find('.thumb').removeClass();
                        var y = $('<blockquote>').html(a).find('blockquote');                        

                        d.html(z);
                        g.html(y);


                    } else {
                        d.html(_("something went wrong (blank response)"))
                    }
                }
            })       




            var wrap = $("<div></div>").addClass('catalogitem').append(d).wrapInner('<a href='+ href +'>').append(g);
            $('#catalogt').append(wrap);
        });

    });

});

$(document).on('click', ".closecat", function() { 
    $('.catalog').remove();
});

//Relative Time
function reltime() {
    $('.time').remove();
    $( "label:contains('@')" ).each(function() {
        var vovar = $(this).contents().map(function() {
            if( this.nodeType === 3 ) {
                return this.data;
            }
        }).get().join('');

        vovar1 = vovar.split("@");
        vovardate = vovar1[0].split("/");
        vovaryear = vovardate[2].split(" ");
        vovarmonth = vovardate[1] - 1;
        vovartime = vovar1[1].split(":");
        tiem = new Date(vovaryear[0], vovarmonth, vovardate[0], vovartime[0], vovartime[1])
        tiemiso = tiem.toISOString();
        tiemago = jQuery.timeago(tiemiso); 

        $( this ).append( '<span class="time">( <bold>' + tiemago + ' </bold>)</span>' );
    });    

};

//Name Box Fixes

$('input[name="name"]').get(0).type = 'password';


$( 'input[name="name"]' ).focus(function() {
    $('input[name="name"]').get(0).type = 'text';
    $('#qr_name').get(0).type = 'text';
});

$( 'input[name="name"]' ).focusout(function() {
    $('input[name="name"]').get(0).type = 'password';
    $('#qr_name').get(0).type = 'password';
});


$( 'input[name="name"]:first' ).wrap( '<span class="new"></span>' );
$( '#qr_name' ).wrap( '<span class="qr_new"></span>' );
$( '.new' ).append( '<input type="checkbox" class="namecheck" value="Bike" checked="checked">' );
if (localStorage.getItem("namecheck") === null) {}else{$( ".namecheck" ).prop( "checked", false ); $( 'input[name="name"], #qr_name' ).prop('disabled',true);};

$(document).on('change', ".namecheck", function() {
    if ( $( '.namecheck' ).prop( "checked" ) ) {$( 'input[name="name"], #qr_name' ).prop('disabled',false); localStorage.removeItem('namecheck');}else{$( 'input[name="name"], #qr_name' ).prop('disabled',true); localStorage.setItem('namecheck', '');};
});

//Backlinks

function backlinks() {
    $('#delform').find(".reply").not('.protect').each(function() {
        blink($(this));
    });
    $('.floater, .hold').find(".reply").not('.protect').each(function() {
        blink($(this));
    });
};

function blink(t){   
    t.addClass('protect');
    rid = t.attr('id').replace('reply','');
    datas = t.find('.reflink').find("a:nth-child(2)").attr('href');
    t.find("a[class^='ref|']").each(function() {
        var quoted = $(this).text();            
        quoteds = quoted.replace('>>','');
        //console.log(datas + "|" + rid + "+" + quoteds + ")");        
        backquote(quoteds, rid, datas);
    });   
};

function backquote(quoteds, rid, datas){    
    splicer = datas.replace('.html#i','/');    
    splicer2 = splicer.split('/');
    $(".reflink:contains('" +quoteds+ "')").after('<a href="/'+splicer2[1]+'/res/'+splicer2[3]+'.html#'+rid+'" onclick="return highlight(\''+rid+'\', true);" class="ref|'+splicer2[1]+'|'+splicer2[3]+'|'+rid+'">&gt;&gt;'+rid+'</a>');

};


/*function backlinks() {
    $('#delform').find(".reply").not('.protect').each(function() {
        $(this).addClass('protect');
        rid = this.id.replace('reply','');
        datas = $(this).find('.reflink').find("a:nth-child(2)").attr('href');
        $(this).find("a[class^='ref|']").each(function() {
            var quoted = $(this).text();            
            quoteds = quoted.replace('>>','');
            console.log(datas + "|" + rid + "+" + quoteds + ")");        
            backquote(quoteds, rid, datas);
        });

    });
};

function backquote(quoteds, rid, datas){    
    splicer = datas.replace('.html#i','/');    
    splicer2 = splicer.split('/');
    $(".reflink:contains('" +quoteds+ "')").after('<a href="/'+splicer2[1]+'/res/'+splicer2[3]+'.html#'+rid+'" onclick="return highlight(\''+rid+'\', true);" class="ref|'+splicer2[1]+'|'+splicer2[3]+'|'+rid+'">&gt;&gt;'+rid+'</a>');

};*/

//live index
var highest = -Infinity;
var compareme = 99999999999999999;
window.updateid = "";

function initupdate(){    
    var highest = -Infinity;
    $('#delform').find("input[name='post[]']").each(function() {
        splice = $(this).attr('value');
        numb = parseInt(splice)
        highest = Math.max(highest, parseFloat(numb));        
    });
    return highest;
};

initupdate();

function update(){
    var compareme = 0;    
    $.get("" + document.location, function (data) {        
        $(data).find("input[name='post[]']").each(function() {
            splice = $(this).attr('value');
            numb = parseInt(splice)

            compareme = Math.max(compareme, parseFloat(numb));
            window.updateid = compareme;
        });
    });
};



setInterval(function () { 
    update();
    if (window.updateid > initupdate()){
        $.get("" + document.location, function (data) {        
            $("#delform").replaceWith($(data).filter("#delform"));
        }).done(function() {
            loop();
            notify();
            hidefix();
        });
    };
    reltime();  
}, 10000);

function nofegget(){
    $('blockquote').each(function() {$(this).html($(this).html().split('____')[0])});
};
//nofegget();

//Loop
function loop(){    
    $('blockquote').find('a[href*="youtube.com/watch?"], a[href*="youtu.be"]').not( ".titled" ).each(function() {
        //yttitle(this);
    });
    $('blockquote').find('a').not( 'a[class^="ref|"]' ).each(function() {
        $(this).attr('target','_blank');
    });

    reltime();
    backlinks();    
    prepqrp();
    if (localStorage.getItem("hidetripposts")){ hidetrippost(); };
    if (localStorage.getItem("hidetrips")){ hidetrips(); };
    if (localStorage.getItem("hideanon")){ hideanon(); };
    semifag();
    hideposts();

    //nofegget();
};

//Notification
var title = $(document).prop('title');
function notify(){

    var state = document["visibilityState"]; 
    if (state == "hidden")
    {  

        $('#favicon').remove();
        $('link[rel="shortcut icon"]').remove();
        $('head').append('<link href="https://i.imgur.com/TirPmur.png" id="favicon" rel="shortcut icon">');
        $(document).prop('title', 'New Posts! '+ title +'');
    } else if (state == "visible") {
        $('#favicon').remove();
        $('link[rel="shortcut icon"]').remove();
        $('head').append('<link href="https://i.imgur.com/TirPmur.png" id="favicon" rel="shortcut icon">');
        $(document).prop('title', 'New Posts! '+ title +'');
        setTimeout(function(){
            $('#favicon').remove();
            $('head').append('<link href="https://i.imgur.com/AB4G76Z.png" id="favicon" rel="shortcut icon">');
            $(document).prop('title', title );
        },5000)
    }
};

var onVisibilityChange = function (args) {
    var state = document["visibilityState"];    
    if (state == "visible")
    {       
        $('#favicon').remove();
        $('head').append('<link href="https://i.imgur.com/AB4G76Z.png" id="favicon" rel="shortcut icon">');
        $(document).prop('title', title );
    }
};


document.addEventListener("visibilitychange", onVisibilityChange, false);