" + lang.defaultAllySubject + " | " + "" + " | |
---|---|---|
" + lang.defaultSubject + " | " + "" + " | |
" + lang.reply + " | " + ""+ " | " + lang.reply2 + " | "+ "
" + lang.language + " | " + ""+ " |
// ==UserScript== // @name Ikariam Subject // @namespace http://ikariam.norsam.org/subject // @description Can add a subject to your messages: simply put between square brackets the subject in first line. // @include http://s*.ikariam.*/index.php* // @version 0.7 // ==/UserScript== var version = 0.7; var dlUrl = 'http://ikariam.norsam.org/gm/ikariam_subject.user.js'; var CHECK_INTERVAL = 8640000; var page = document.getElementsByTagName('body')[0].id; var defaultSubject; var defaultAllySubject; var lang; function getIkaDomain(s) { var spl = s.toLowerCase().split("."); return (spl[1] != 'ikariam' ? spl[1] : spl[spl.length - 1]); } function getIkaServer(s) { return s.toLowerCase().split(".")[0]; } var serDom = '.' + getIkaServer(top.location.host) + '.' + getIkaDomain(top.location.host); defineLanguage = function () { var language; var domain = getIkaDomain(top.location.host); var spanish = ':ar:ve:cl:co:mx:pe:'; if (spanish.indexOf(':' + domain + ':') != - 1) { domain = 'es'; } if (isDefined(GM_getValue('subjectLang'))) { if (domain != GM_getValue('subjectLang') && GM_getValue('subjectLang')!='default') { domain = GM_getValue('subjectLang'); } } else { GM_setValue('subjectLang', domain); } switch (domain) { case "it": language = { newver: 'Nuova versione Ikariam Subject disponibile', install: 'installare', //help: 'Mettere nella prima riga del messaggio il soggetto tra parentesi quadre. Es: [Cerco legno]', subject: 'Oggetto:', type: 'Tipo:', spam: 'Per favore, verifica l\'oggetto del messaggio', Re: 'Re:', reply: 'Aggiungere "Re:" nella risposta', reply2: 'solo se c\'è già un soggetto', defaultAllySubject: 'Soggetto per messaggi circolari', defaultSubject: 'Soggetto per messaggi privati', language: 'Lingua', saveconfig: 'Salvare' }; break; case "fr": language = { newver: 'Nouvelle version du Ikariam Subject', install: 'télécharger', //help: 'Put in first line of the message the subject inside square brackets. .g.: [Looking for marble]', subject: 'Sujet:', type: 'Typologie:', spam: 'Svp, verifiez le sujet du message', Re: 'Re:', reply: 'Ajouter "Re:" danse la réponse', reply2: 'seulement s\'il y a un autre Suject', defaultAllySubject: 'Suject pour l\'alliance', defaultSubject: 'Suject pour les messages privés', language: 'Langue', saveconfig: 'Sauver' }; break; case "gr": language = { newver: 'Νέα Έκδοση του Ikariam Subject διαθέσιμη', install: 'εγκατέστησε', //help: 'Put in first line of the message the subject inside square brackets. .g.: [Looking for marble]', subject: 'θέμα:', type: 'γράψε:', spam: 'Παρακαλώ,ελέγξτε τι θέμα του μηνύματος', Re: 'Απ.:', reply: 'Εισαγωγή Απ.: στις απαντήσεις', reply2: 'μόνο άμα υπάρχει παλιότερο θέμα', defaultAllySubject: 'Προεπιλεγμένο περιεχόμενο συμμαχίας', defaultSubject: 'Προεπιλεγμένο περιεχόμενο προσωπικού μη νύματος', language: 'Γλώσσα', saveconfig: 'Αποθήκευσε' }; break; case "es": language = { newver: 'Nueva versión disponible de Ikariam Subject', install: 'instalar', //help: 'Escriba en la primera línea del mensaje el asunto entre corchetes . P.E.: [Busco mármol]', subject: 'Asunto:', type: 'Tipo:', spam: 'Por favor, revise el asunto', Re: 'Re:', reply: 'Insertar Re: en respuestas', reply2: 'sólo si hay asunto previo', defaultAllySubject: 'Asunto mensaje a alianza', defaultSubject: 'Asunto mensaje', language: 'Idioma', saveconfig: 'Guardar' }; break; case "ro": language = { newver: 'O noua versiune Ikariam Subject este disponibila', install: 'install', //help: 'Escriba en la primera línea del mensaje el asunto entre corchetes . P.E.: [Busco mármol]', subject: 'Subiect:', type: 'Tipul:', spam: 'Verificati subiectul mesajului', Re: 'Re:', reply: 'Insert Re: in reply-uri', reply2: 'doar daca exista un subiect anterior', defaultAllySubject: 'Default alliance subject', defaultSubject: 'Default private msg subject', language: 'Limba', saveconfig: 'Save' }; break; default: language = { newver: 'New version of Ikariam Subject available', install: 'install', //help: 'Put in first line of the message the subject inside square brackets. .g.: [Looking for marble]', subject: 'Subject:', type: 'Type:', spam: 'Please, check message subject', Re: 'Re:', reply: 'Insert Re: in replies', reply2: 'only if there is a previous subject', defaultAllySubject: 'Default ally subject', defaultSubject: 'Default private msg subject', language: 'Language', saveconfig: 'Save' }; break; } return language; }; //recycling some code... ;-) String.prototype.trim = function () { return this.replace(/^\s+|\s+$/g, ''); }; function insertAfter(newElement, targetElement) { var parent = targetElement.parentNode; if (parent.lastchild == targetElement) { parent.appendChild(newElement); } else { parent.insertBefore(newElement, targetElement.nextSibling); } } getElementsByClass = function (inElement, className) { var all = inElement.getElementsByTagName('*'); var elements = []; for (var e = 0; e < all.length; e++) { if (all[e].className == className) { elements[elements.length] = all[e]; } } return elements; }; isDefined = function (myvar) { if (typeof(myvar) != 'undefined') { return true; } return false; }; //Ikariam Subject functions function setDefaults() { if (isDefined(GM_getValue('defaultAllySubject' + serDom))) { defaultAllySubject = GM_getValue('defaultAllySubject' + serDom); } else { GM_setValue('defaultAllySubject' + serDom, 'SPAM'); defaultAllySubject = 'SPAM'; } if (isDefined(GM_getValue('defaultSubject' + serDom))) { defaultSubject = GM_getValue('defaultSubject' + serDom); } else { GM_setValue('defaultSubject' + serDom, ''); defaultSubject = ''; } if (!isDefined(GM_getValue('Reply'))) { GM_setValue('Reply', true); } if (!isDefined(GM_getValue('Reply2'))) { GM_setValue('Reply2', true); } } function insertSubjectTextbox() { var parentDiv = document.getElementById('mailSubject'); var allyMessage = isDefined(top.location.href.split('msgType=51')[1]) && isDefined(top.location.href.split('allyId=')[1]); GM_addStyle("#textSubject { width: 180px; }"); if (allyMessage) { parentDiv.childNodes[3].childNodes[11].innerHTML = ""; } else { var newSubjectDiv = document.createElement('div'); newSubjectDiv.setAttribute('id', 'mailSubjectMod'); if (GM_getValue('Reply')) { var replyMessage = document.getElementById('text').value.split("> ")[1]; if (isDefined(replyMessage)) { var replySubject = replyMessage.split("[")[1]; if (isDefined(replySubject)) { replySubject = replySubject.split("]")[0]; if (replySubject.split(lang.reply)[1] != null) { replySubject = replySubject.split(lang.reply)[1]; } defaultSubject = lang.Re + replySubject; } else if (!GM_getValue('Reply2')) { defaultSubject = lang.Re; } }//ends reply } newSubjectDiv.innerHTML = '' + '' + '' + '' + '' + ''; document.getElementById('mailRecipient').parentNode.insertBefore(newSubjectDiv, document.getElementById('mailSubject')); parentDiv.childNodes[1].innerHTML = ''; } } function insertSubjectinMessage(e) { var subject = document.getElementById('textSubject').value.trim(); if (subject == defaultSubject) { var news = prompt(lang.spam, subject); if (news == null) { e.preventDefault(); document.getElementById('textSubject').focus(); return; } else { subject = news; } } if (subject != "") { document.getElementById('text').value = "[" + subject + "]\n" + document.getElementById('text').value; } } function moveUpSendButton() { getElementsByClass(notice, "centerButton")[0].setAttribute('style', 'margin-top: 0px; margin-bottom: 0px'); document.getElementById('text').removeEventListener("keypress", moveUpSendButton, false); } function optionsPage() { var newElement = document.createElement("form"); newElement.setAttribute('id', 'optionSubject'); newElement.innerHTML = "
" + lang.defaultAllySubject + " | " + "" + " | |
---|---|---|
" + lang.defaultSubject + " | " + "" + " | |
" + lang.reply + " | " + ""+ " | " + lang.reply2 + " | "+ "
" + lang.language + " | " + ""+ " |
' + lang.newver + ': ' + lang.install + '
'; installDiv.style.borderTop = '1px solid #444'; var newpos = document.getElementById("mainview"); var newdesc = getElementsByClass(newpos, "buildingDescription")[0]; verChecker('ikasubject', installDiv, newdesc.lastChild); GM_registerMenuCommand('Subject Info', cbf);