// ==UserScript==
// @name MH - Marmotte - MZ no CSS
// @namespace MH
// @description Gestion de la CSS pour MZ
// @include */View/PJView*
// @include */View/AllianceView.php*
// @include */View/AllianceView_Membres.php*
// @include */View/AllianceView_Affinite.php*
// @include */MH_Play/Options/Play_o_css.php
// @icon https://xballiet.github.io/ImagesMH/MZ.png
// @version 1.6
// @grant none
// @require https://greasyfork.org/scripts/23602-tout-mz?version=892175&d=.user.js
// ==/UserScript==
/*
* Script MZ : Affiche un aperçu lors de l'écriture des MP
* Auteur : Bandedrubor (93138)
*/
var defaultBaseCss = 'https://games.mountyhall.com/mountyhall/MH_PageUtils/MH_Style_ProfilSimple.css';
var defaultSimpleCss = 'https://games.mountyhall.com/MH_Packs/packMH_parchemin/css/MH_Style_Play.css';
var defaultAdvancedCss = 'https://games.mountyhall.com/mountyhall/MH_PageUtils/MH_Style_ProfilAvance.css';
var defaultGuildCss = 'https://games.mountyhall.com/MH_Packs/packMH_parchemin/css/MH_Style_Play.css';
/* Effectue le changement de CSS */
function replace() {
if (customCss) {
// Profil avec une CSS personnalisée
if (window.localStorage['nocss_replace']) {
customStylesheet.href = defaultCss;
} else {
customStylesheet.href = customCss;
}
} else {
// Profil sans personnalisation
if (window.localStorage['nocss_replace']) {
baseStylesheet.href = defaultBaseCss;
customStylesheet.disabled = false;
} else {
baseStylesheet.href = baseCss;
customStylesheet.disabled = true;
}
}
}
/* Change l'option de CSS */
function changeCss() {
window.localStorage['nocss_replace'] = !window.localStorage['nocss_replace'];
replace();
}
// URL des CSS à utiliser
var baseCss = customCss = defaultCss = '';
// Elément à modifier pour effectuer le changement de CSS
var baseStylesheet = customStylesheet = null;
if (window.self.location.toString().indexOf("View/PJView") !== -1) {
// Partie du script exécutée sur le profil public des trolls
if (document.getElementById('pjLinks')) {
// Profil avancé
customStylesheet = document.getElementsByTagName('link')[1];
if (customStylesheet) {
customCss = customStylesheet.href;
defaultCss = window.localStorage['nocss_advancedcss'];
}
} else {
// Profil simple
customStylesheet = document.getElementsByTagName('link')[2];
if (customStylesheet) {
customCss = customStylesheet.href;
defaultCss = window.localStorage['nocss_simplecss'];
} else {
baseStylesheet = document.getElementsByTagName('link')[1];
baseCss = baseStylesheet.href;
customStylesheet = document.createElement('link');
customStylesheet.setAttribute('rel', 'stylesheet');
customStylesheet.setAttribute('type', 'text/css');
customStylesheet.setAttribute('href', window.localStorage['nocss_simplecss']);
document.getElementsByTagName('head')[0].appendChild(customStylesheet);
}
}
} else if (window.self.location.toString().indexOf("View/AllianceView.php") !== -1 || window.self.location.toString().indexOf("View/AllianceView_Membres.php") !== -1 || window.self.location.toString().indexOf("View/AllianceView_Affinite.php") !== -1) {
// Partie du script exécutée sur le profil public des trolls
customStylesheet = document.getElementsByTagName('link')[2];
if (!customStylesheet) {
customStylesheet = document.getElementsByTagName('link')[1];
}
if (customStylesheet) {
customCss = customStylesheet.href;
defaultCss = window.localStorage['nocss_guildcss'];
}
} else if (window.self.location.toString().indexOf("MH_Play/Options/Play_o_css.php") !== -1) {
// Options du script, affichées dans la page d'apparence du profil
/* Ajoute une ligne d'options dans le tableau */
function addOption(caption, name, type, defaultValue) {
var optionsRow = document.createElement('tr');
var optionsTitle = document.createElement('td');
optionsTitle.setAttribute('style', 'padding:2px;text-align:right;width:250px;font-weight:bold;');
var optionsLabel = document.createElement('label');
optionsLabel.setAttribute('for', name);
optionsLabel.appendChild(document.createTextNode(caption));
optionsTitle.appendChild(optionsLabel);
optionsRow.appendChild(optionsTitle);
var optionsContent = document.createElement('td');
optionsContent.setAttribute('style', 'padding:2px;');
var optionsInput = document.createElement('input');
optionsInput.setAttribute('class', 'TextboxV2');
optionsInput.setAttribute('type', type);
optionsInput.setAttribute('size', 75);
optionsInput.setAttribute('id', name);
if (type == 'checkbox' && window.localStorage[name]) {
optionsInput.setAttribute('checked', true);
}
if (window.localStorage[name] && window.localStorage[name] != '') {
optionsInput.setAttribute('value', window.localStorage[name]);
} else if (defaultValue) {
optionsInput.setAttribute('value', defaultValue);
}
optionsContent.appendChild(optionsInput);
optionsRow.appendChild(optionsContent);
optionsTable.appendChild(optionsRow);
// Ajout de l'option dans le tableau des options modifiables
optionsArray[name] = new Array();
optionsArray[name]['type'] = type;
if (defaultValue) {
optionsArray[name]['defaultValue'] = defaultValue;
}
}
/* Modifie la valeur d'une option */
function saveOptions() {
for (var name in optionsArray) {
var type = optionsArray[name]['type'];
var defaultValue = optionsArray[name]['defaultValue'];
var value = document.getElementById(name).value;
if (defaultValue && (!value || value == '')) {
value = defaultValue;
document.getElementById(name).value = value;
}
if (type == 'checkbox') {
value = document.getElementById(name).checked;
}
window.localStorage[name] = value;
}
}
// Tableau des options d'affichage de CSS
var optionsArray = new Array();
var optionsTable = document.createElement('table');
optionsTable.setAttribute('class', 'mh_tdtitre');
optionsTable.setAttribute('cellspacing', '0');
optionsTable.setAttribute('cellpadding', '0');
optionsTable.setAttribute('style', 'width:98%;border:1px solid black;');
// Ligne d'en tête
var optionsHeaderRow = document.createElement('tr');
var optionsHeaderContent = document.createElement('th');
optionsHeaderContent.setAttribute('colspan', '2');
optionsHeaderContent.appendChild(document.createTextNode('Affichage des profils publics'));
optionsHeaderRow.appendChild(optionsHeaderContent);
optionsTable.appendChild(optionsHeaderRow);
// Ligne d'options
addOption('Remplacer la CSS', 'nocss_replace', 'checkbox');
addOption('Afficher un bouton dans le profil public', 'nocss_displaybutton', 'checkbox');
addOption('CSS de remplacement Simple', 'nocss_simplecss', 'text', defaultSimpleCss);
addOption('CSS de remplacement Avancée', 'nocss_advancedcss', 'text', defaultAdvancedCss);
addOption('CSS de remplacement Guilde', 'nocss_guildcss', 'text', defaultGuildCss);
// Bouton de validation
var optionsFooter = document.createElement('tr');
optionsFooter.appendChild(document.createElement('td'));
var optionsFooterContent = document.createElement('td');
var optionsSaveButton = document.createElement('input');
optionsSaveButton.setAttribute('class', 'mh_form_submit');
optionsSaveButton.setAttribute('type', 'button');
optionsSaveButton.setAttribute('Value', 'Sauvegarder');
optionsSaveButton.addEventListener('click', saveOptions, true);
optionsFooterContent.appendChild(optionsSaveButton);
optionsFooter.appendChild(optionsFooterContent);
optionsTable.appendChild(optionsFooter);
optionsTable.appendChild(document.createElement('br'));
// Affichage du tableau d'options
var bottom = document.getElementsByTagName('table')[9];
bottom.parentNode.insertBefore(optionsTable, bottom.nextSibling);
bottom.parentNode.insertBefore(document.createElement('hr'), bottom.nextSibling);
}
if (customStylesheet) {
// Affichage du bouton si demandé
if (window.localStorage['nocss_displaybutton']) {
var changeButton = document.createElement('input');
changeButton.setAttribute('type', 'button');
changeButton.setAttribute('value', 'Changer de CSS');
changeButton.setAttribute('style', 'background:white!important;color:black!important;padding:0px!important;margin:0px!important;border:1px solid black!important;font-size:10pt!important;font-family:Verdana!important;font-weight:normal!important;width:113px!important;height:18px!important;-moz-border-radius:0px!important;');
changeButton.addEventListener('click', changeCss, true);
var changeDiv = document.createElement('div');
changeDiv.setAttribute('style', 'position:fixed!important;top:0px!important;left:0px!important;padding:0px!important;margin:0px!important;width:15px!important;height:15px!important;');
document.body.appendChild(changeDiv);
changeDiv.addEventListener('mouseover', function() { changeDiv.appendChild(changeButton); }, true);
changeDiv.addEventListener('mouseout', function() { changeDiv.innerHTML = ''; }, true);
changeButton.addEventListener('mouseover', function() { changeDiv.appendChild(changeButton); }, true);
changeButton.addEventListener('mouseout', function() { changeDiv.innerHTML = ''; }, true);
}
// Remplacement de la CSS si nécessaire
replace();
}