// ==UserScript==
// @name Jurisquare GM Script
// @version 2.4.1
// @namespace RJ
// @author Rafael Jafferali
// @description Améliore le fonctionnement de Jurisquare (www.jurisquare.be)
// @include http://www.jurisquare.be*
// @run-at document-end
// ==/UserScript==
debugger;
var PDF_ICON = "data:image/gif; base64,"
+ "R0lGODlhEAAQAPcAAFoAAGMAAHMYGG6Ov3KQv3KRv3aTvXqVu3uVvH6XulWAyFmBxliCxV2ExF6E"
+ "xGGIw2KJw2WKwmeLwWmMwWyOwIwACJQAAJwhIa0ACLUAAL05OZxCQr1KSr1SWsYAAM4ICM4QENYY"
+ "GM4pMd45OecIEPcQEPcYGO85OfcpKf8xOc5KSt5KStZja+dKSu9CSu9KSudaWu9SUu9SWudaY+dz"
+ "c+97e/9zc/8A/4KavIWdvoigwIuiwoyiwo+lxJGnxpKoxpWryJesyZmtypywzJ2xzaO20am71Ky+"
+ "1q/A2LPD2t6EhN61veeMjO+cnO+trdLi+tTj+tbk+tfl+9nm+9vn+9zo+97p++/W1ufv9+Dq/OHs"
+ "/OPt/OXu/Obv/Ojw/erx/evy/e3z/e/0/fD2/vL3/vT4/vX5/vf6/vn7/////xQCgBQCQBLtDNdN"
+ "rxQCgBEGqNdN4xQCgBLtFAAAAJEFyCJ8mBLt4JEFURQHqJEFbRLuOAAAABLtPAAAAJEFyFWi2BLu"
+ "CJEFURQHSBLtWAAAAJEFyFWi2BLuJJEFURQHSJEFbRLuaAAABAAAAOaERAAAAgAABAAAMAAAACJ8"
+ "oNSLsf3QAAAAMAAABBQAABLrmJD7bAAAIAAAAFWi4BLuOAAAAAAAIADwqgAAIAAAAAAAAJDnvJDV"
+ "hhLuCJD7bJD7cZDVhpDnvBQAABLt5JDnyBLujJDuGJD7eAH//wAABBLtaAAAABLujJDuGJEFcP//"
+ "/5EFbZEJvBQAAAAAAFWi4BLuSJEJklWi4AAAABLunN3tDt3tIGKmyAACvGKm1AAAAAAAAAAAAAAA"
+ "AAAAABLuaBLu7BSjUBSjUBLuoOb8I8OlLsYaoBLu2MLCzQAABMLC4xSo8BSjUAAAAxSgLcXS4BSg"
+ "ABLu1BLupP///xLvQMNclMEgcP///8LC40SV1RSjUGMboGMboEUEtRQAABSo8KR+UAAAAAAAAOqG"
+ "1OqG1OqG1OqG1AACXBLvJN1sdBLvLKR+UKR+UObgowAACeaCsAAABCH5BAEAADcALAAAAAAQABAA"
+ "AAjcAG8ITGKkCJEgPnbkSJBAoMMbSNCcMVOGzBgxCdI0fHhkYsWLYTJqvNGBgwYVM2DIgOFCBBiR"
+ "Gm28SIHChIkSJkhg+MKw54kQIEB4+OABQ4YKXrpw2aIlgYUAAARsmLrhwgalTLNsvDFETBgwX1Zg"
+ "1ZLFygGHQr5+uTKiSVYrVQw4BALWSw0sTJyUrUKFgMMfX7xcaeHEyYoWMZRMoeCwR1IYS8jCXcJC"
+ "igSHPLrMYCKZ7xQpUSA41EGDRmcqn6NAceAwx1vPoKE8WeAQBwIEBgoMmBDhQQMGChQEBAA7";
var MOIS = ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août",
"septembre", "octobre", "novembre", "décembre"];
var RG_counter = 0;
// Taken from http://wiki.greasespot.net/Content_Script_Injection
function InjectScript(source) {
// Check for function input.
if ('function' == typeof source) {
// Execute this function with no arguments, by adding parentheses.
// One set around the function, required for valid syntax, and a
// second empty set calls the surrounded function.
source = '(' + source + ')();'
}
// Create a script node holding this source code.
var script = document.createElement('script');
script.setAttribute("type", "application/javascript");
script.textContent = source;
// Insert the script node into the page, so it will run, and immediately
// remove it to clean up.
document.body.appendChild(script);
document.body.removeChild(script);
}
function DefaultLibrarySearch() {
InjectScript(function(){
var LS = new LibrarySearch;
LS.request.searchInOwnAssets = true;
LS.request.order = "alpha";
LS.pushState();
location.reload();
});
}
function ProcessResults(e) {
try {var r = e.target.querySelector("h5") || e.target.querySelector("h1");} catch(err) {}
if (r && r.querySelector("a") && r.querySelector("a").href) {
var a = r.querySelector("a");
var el = document.createElement("a");
el.href = a.href.replace(/index\.html.*/, "document.pdf");
el.target = "_blank";
var img = document.createElement("img");
img.src = PDF_ICON;
img.style.paddingRight = "5px";
el.appendChild(img);
r.insertBefore(el, a);
// Pasicrisie
if (location.href.match(/pasicrisie/) && ( document.querySelector("div.filterlist a") || ( document.querySelector("span#resultCount") && document.querySelector("span#resultCount").textContent == "1" ) ) ) {
// Filterlist vise à s'assurer que les filtres d'année ont déjà été appliqués, ou seulement un résultat
if (document.querySelector("input.searchfield").value.match(/"\s\d+/)) { // Recherche par numéro à la Pasicrisie
var num = document.querySelector("input.searchfield").value.match(/"\s\d+/).toString().match(/\d+/);
if (a.innerText.search(num) >= 0) {
location.href = el.href;
}
}
else if (document.querySelector("input.searchfield").value.match(/"\s\w\.\d{2}\.\d{4}\.\w/)) { // Recherche par numéro de rôle
if (window.self === window.top) {
location.href = el.href;
}
else {
window.top.postMessage(el.href, "http://jure.juridat.just.fgov.be/");
}
}
GM_xmlhttpRequest({ // affichage des résumés
method: "GET",
url: a.href,
onload: function(response) {
var summary = response.responseText.match(/Résumé<\/p>[\s\S]*?<\/p>/).toString().match(/<p>[\s\S]+/).toString().replace(/<.?p>/g,"").replace(/^\s+|\s+$/g,"").replace(/\s\s*/g," ");
r.nextElementSibling.innerText += "\n" + summary;
}
});
}
}
}
function addPasicrisieSearch() {
var btn = document.createElement("input");
btn.style.cssText = window.getComputedStyle(document.querySelector("input.searchbutton")).cssText;
btn.type="submit";
btn.value="Pasicrisie";
if (!location.href.match(/content|library/)) {
document.querySelector("input.searchfield").style.width = "403px";
}
document.querySelector("div.searchform").insertBefore(btn, document.querySelector("div.searchform div"));
btn.addEventListener("click", function(){
var d = document.querySelector("input.searchfield").value.replace(/\//g, "-");
if (!location.href.match(/pasicrisie/)) {
location.href = "http://www.jurisquare.be/fr/journal/pasicrisie/index.html#date" + d;
}
else {
location.hash = "#date" + d;
location.reload();
}
}, false);
}
function PasicrisieSearch() {
// If called with the Pasicrisie button, fill in search field
if (location.hash && location.hash.match(/date/)) {
// Run search
var d = location.hash.slice(5).split("-");
var val = '"' + d[0].replace(/0(?=\d)/, "") + ( (d[0] == 1) ? "er" : "" ) + " " + MOIS[d[1].replace(/0(?=\d)/, "") - 1] + " " + d[2] + '"';
if (d[3]) { val += " " + d[3]; }
document.querySelector("input.searchfield").value = val;
document.querySelector("input.searchbutton").click();
}
// If search is run with judgement date, select the year of the judgement as a filter
if (!document.querySelector(".selected")) {
var d = document.querySelector("input.searchfield").value.match(/"\d.+\s\d{4}"/);
if (d) {
function selectFilter(e) {
if (e.target.querySelector("a").title == y) {
e.target.querySelector("a").click();
document.querySelectorAll("div.filterbox")[1].removeEventListener("DOMNodeInserted", selectFilter, false);
}
}
// Set new filter
var y = d.toString().match(/\d{4}/).toString();
document.querySelectorAll("div.filterbox")[1].addEventListener("DOMNodeInserted", selectFilter, false);
}
}
}
function ShowDocOnly() {
if (document.getElementById("the_canvas")) {
var a = document.createElement("a");
a.className = "greybutton";
a.innerText = "Reading Mode";
document.querySelector("div.detailhead").insertBefore(a, document.querySelector("a.back"));
a.addEventListener("click", function() {
document.body.removeChild(document.getElementById("headGutter"));
document.querySelector("div.container_12").removeChild(document.querySelector("div.detailhead"));
if (document.getElementById("sliderHolder")) {document.querySelector("div.container_12").removeChild(document.getElementById("sliderHolder"));}
document.body.removeChild(document.getElementById("footGutter"));
document.querySelector("div.container_12").style.marginLeft = 0;
}, false);
}
}
// MAIN
if ( (window.self !== window.top) && (location.href == "http://www.jurisquare.be/fr/index.html")) {
if (document.querySelector("input.button") && document.querySelector("input.button").value.match("log in")) {
window.top.postMessage("LoginRequired", "http://jure.juridat.just.fgov.be/");
}
else {
window.top.postMessage("LoginOkay", "http://jure.juridat.just.fgov.be/");
}
}
if (location.href == "http://www.jurisquare.be/fr/library/index.html") {
DefaultLibrarySearch();
}
if (document.querySelector("input.searchbutton") && document.querySelector("input.searchfield")) {
addPasicrisieSearch();
}
if (document.getElementById("results")) {
document.getElementById("results").addEventListener("DOMNodeInserted", ProcessResults, false);
}
if (location.href.match(/pasicrisie/)) {
PasicrisieSearch();
}
ShowDocOnly();