hwm_Silentios_Mod

Add progress bar for Combat, Faction and Guilds levels. (2016.12.15) Dual_Language

Version au 15/12/2016. Voir la dernière version.

Vous devrez installer une extension telle que Tampermonkey, Greasemonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Userscripts pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension de gestionnaire de script utilisateur pour installer ce script.

(J'ai déjà un gestionnaire de scripts utilisateur, laissez-moi l'installer !)

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

(J'ai déjà un gestionnaire de style utilisateur, laissez-moi l'installer!)

// ==UserScript==
// @name 	   hwm_Silentios_Mod
// @author 	   Silentio (update ElMarado)
// @version 	   1.80
// @description    Add progress bar for Combat, Faction and Guilds levels. (2016.12.15) Dual_Language
// @include        http://178.248.235.15/home.php*
// @include        http://178.248.235.15/pl_info.php*
// @include        http://*.heroeswm.*/home.php*
// @include        http://*.heroeswm.*/pl_info.php*
// @include        http://www.lordswm.com/home.php*
// @include        http://www.lordswm.com/pl_info.php*
// @grant          GM_getValue
// @grant          GM_setValue
// @grant          GM_addStyle
// @grant          GM_registerMenuCommand
// @icon           https://app.box.com/representation/file_version_34029013909/image_2048/1.png?shared_name=hz97b2qwo2ycc5ospb7ccffn13w3ehc4
// @namespace https://greasyfork.org/users/14188
// ==/UserScript==

/* 
 * This script is licensed under the 
 * Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Italy License.
 * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.5/it/
 */

// Funzione principale, eseguita al caricamento di tutta la pagina
function main(e){      
    var version = "1.80";

    var lang_en = new Array();
    var lang_uk = lang_en;
    var lang_us = lang_en;
    var lang_com = lang_en;
    lang_en['Knight']               = 'Knight';
    lang_en['Knight2']              = 'Knight';
    lang_en['Necromancer']          = 'Necromancer';
    lang_en['Necromancer2']         = 'Necromancer';
    lang_en['Wizard']               = 'Wizard';
    lang_en['Wizard2']              = 'Wizard';
    lang_en['Elf']                  = 'Elf';
    lang_en['Elf2']                 = 'Elf';
    lang_en['Barbarian']            = 'Barbarian';
    lang_en['Barbarian2']           = 'Barbarian';
    lang_en['Barbarian3']           = 'Barbarian';
    lang_en['Dark elf']             = 'Tamer dark elf';
    lang_en['Demon']                = 'Demon';
    lang_en['Demon2']               = 'Demon';
    lang_en['Dwarf']                = 'Dwarf';
    lang_en['StBarbar']             = 'Tribal';
    lang_en['Combat level']         = 'Combat level';
    lang_en['Hunters\' guild']      = 'Hunters\' guild';
    lang_en['Laborers\' guild']     = 'Laborers\' guild';
    lang_en['Gamblers\' guild']     = 'Gamblers\' guild';
    lang_en['Thieves\' guild']      = 'Thieves\' guild';
    lang_en['Rangers\' guild']      = 'Rangers\' guild';
    lang_en['Mercenaries\' guild']  = 'Mercenaries\' guild';
    lang_en['Tactics\' guild']      = 'Commanders\' guild';
    lang_en['Watchers\' guild']	    = 'Watchers\' guild';
    lang_en['Adventurers\' guild']  = 'Adventurers\' guild';
    lang_en['Smiths\' guild']       = 'Smiths\' guild';
    lang_en['Enchanters\' guild']   = 'Enchanters\' guild';
    lang_en['Progress Bar']         = 'Progress Bar';
    lang_en['Toggle']               = 'Toggle';
    lang_en['Show all factions']    = ustring('Ћв®Ўа ¦ вм ўбҐ да ЄжЁЁ');
    lang_en['Show active faction']  = ustring('Ћв®Ўа ¦ вм в®«мЄ®  ЄвЁў­го');


    var lang_ru = new Array();
    lang_ru['Knight']			= ustring('ђлж ам');
    lang_ru['Knight2']			= ustring('ђлж ам ᢥв ');
    lang_ru['Necromancer']		= ustring('ЌҐЄа®¬ ­в');
    lang_ru['Necromancer2']		= ustring('ЌҐЄа®¬ ­в - Ї®ўҐ«ЁвҐ«м ᬥавЁ');
    lang_ru['Wizard']			= ustring('Њ Ј');
    lang_ru['Wizard2']			= ustring('Њ Ј-а §агиЁвҐ«м');
    lang_ru['Elf']			= ustring('ќ«мд');
    lang_ru['Elf2']			= ustring('ќ«мд-§ Є«Ё­ вҐ«м');
    lang_ru['Barbarian']		= ustring('‚ аў а');
    lang_ru['Barbarian2']		= ustring('‚ аў а Єа®ўЁ');
    lang_ru['Barbarian3']		= ustring('‚ аў а-и ¬ ­');
    lang_ru['Dark elf']			= ustring('’Ґ¬­л© н«мд');
    lang_ru['Dark elf2']		= ustring('’Ґ¬­л© н«мд-гЄа®вЁвҐ«м');
    lang_ru['Demon']			= ustring('„Ґ¬®­');
    lang_ru['Demon2']			= ustring('„Ґ¬®­ вм¬л');
    lang_ru['Dwarf']			= ustring('ѓ­®¬');
    lang_ru['StBarbar']			= ustring('‘⥯­®© ў аў а');
    lang_ru['Combat level']		= ustring('Ѓ®Ґў®© га®ўҐ­м');
    lang_ru['Hunters\' guild']		= ustring('ѓЁ«м¤Ёп Ће®в­ЁЄ®ў');
    lang_ru['Laborers\' guild']		= ustring('ѓЁ«м¤Ёп ђ Ў®зЁе');
    lang_ru['Gamblers\' guild']		= ustring('ѓЁ«м¤Ёп Љ а⥦­ЁЄ®ў');
    lang_ru['Thieves\' guild']		= ustring('ѓЁ«м¤Ёп ‚®а®ў');
    lang_ru['Rangers\' guild']		= ustring('ѓЁ«м¤Ёп ђҐ©­¤¦Ґа®ў');
    lang_ru['Mercenaries\' guild']	= ustring('ѓЁ«м¤Ёп Ќ Ґ¬­ЁЄ®ў');
    lang_ru['Tactics\' guild']		= ustring('ѓЁ«м¤Ёп ’ ЄвЁЄ®ў');
    lang_ru['Watchers\' guild']		= ustring('ѓЁ«м¤Ёп ‘ва ¦Ґ©');
    lang_ru['Adventurers\' guild']	= ustring('ѓЁ«м¤Ёп €бЄ вҐ«Ґ©');
    lang_ru['Smiths\' guild']		= ustring('ѓЁ«м¤Ёп Љг§­Ґж®ў');
    lang_ru['Enchanters\' guild']	= ustring('ѓЁ«м¤Ёп Ћа㦥©­ЁЄ®ў');
    lang_ru['Progress Bar']		= ustring('Џа®ЈаҐбб');
    lang_ru['Toggle']			= ustring('гЎа вм/Ї®Є § вм');

    if ( location.hostname.match('lordswm') ) {
	var language=lang_en;
    } else {
	var language=lang_ru;
    }
    //Factions'
    var nFactions = 9;
    var factions = [ //Ї®а冷Є ЇҐаўле 9 да ЄжЁ© ­Ґ ¬Ґ­пвм
	[T('Knight'),0],
	[T('Necromancer'),1],
	[T('Wizard'),2],
	[T('Elf'),3],
	[T('Barbarian'),4],
        [T('Dark elf'),5],
	[T('Demon'),6],
	[T('Dwarf'),7],
	[T('StBarbar'),8],

	[T('Knight2'),0],
	[T('Necromancer2'),1],
	[T('Wizard2'),2],
	[T('Elf2'),3],
	[T('Barbarian2'),4],
	[T('Barbarian3'),4],
        [T('Dark elf2'),5],
	[T('Demon2'),6]
    ];

    //Combat experience table (21 levels)
    var combat_exp_lvl = [
        0,1500,4500,15000,32000,90000,190000,400000,860000,1650000,
        3000000,5000000,8500000,14500000,25000000,43000000,70000000,108000000,160000000,230000000,325000000
    ];

    //Racial skill table (12 levels)
    var racial_skill_lvl = [
        20,50,90,160,280,500,900,1600,2900,5300,9600,17300
    ];

    //Hunters' Guild (12 levels)
    var hunters_guild_lvl = [
        16,60,180,400,700,1200,2000,3000,4300,6000,8000,10500
    ];
	
    //Laborers' Guild (16 levels)
    var laborers_guild_lvl = [
        90,180,360,720,1500,3000,5000,8000,12000,17000,23000,30000,38000,47000,57000,70000
    ];

    //Gamblers' Guild (15 levels)
    var gamblers_guild_lvl = [
        10,30,60,100,150,210,280,360,450,550,660,800,1000,1300,2000
    ];

    //Thieves' Guild (17 levels)
    var thieves_guild_lvl = [
        50,120,240,400,600,840,1200,2000,3000,4300,6000,8000,10800,14000,17600,21600,26000
    ];

    //Rangers' Guild (11 levels)
    var rangers_guild_lvl = [
        100,240,480,800,1200,1680,2400,4000,6000,8600,12000
    ];

    //Mercenaries' Guild (15 levels)
    var mercenaries_guild_lvl = [
        50,120,300,600,1000,1500,2200,3000,4000,5500,7800,11000,14500,18200,22200
    ];

    //Tactics Guild (10 levels)
    var tactics_guild_lvl = [
	150,350,750,1400,2200,3200,4300,5600,7000,8500
    ];	 

	//Watchers' Guild (5 levels)
    var watchers_guild_lvl = [
        60,200,450,850,1500
    ];

	//Adventurers' Guild (2 levels)
    var Adventurers_guild_lvl = [
        1600,3600
    ];

	//Smiths' Guild (9 levels)
    var smiths_guild_lvl = [
        30,80,165,310,555,970,1680,2885,5770
    ];

    //Enchanters' Guild (5 levels)
    var enchanters_guild_lvl = [
        104,588,2200,7000,10000
    ];
   
    //Enchanters' Guild branches (11 levels)
    var enchanters_guild_branches_lvl = [
        8,29,71,155,295,505,799,1191,1695,6000,12000
    ]; 


   

    // Stile
    var cssStyle = "";
    cssStyle += ".table_progress {width:250px; height:3px; padding: 0px; margin-left: 9px; margin-top: 0px; margin-bottom: 0px; border: 1px solid black;}";
    GM_addStyle(cssStyle);


    var XPFirst = XPathResult.FIRST_ORDERED_NODE_TYPE;         // Costante per il primo elemento per XPath
    var XPList  = XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE;    // Costante per una lista di elementi per XPath

    function init() {
        //Option Menu
        GM_registerMenuCommand(T('Progress Bar') +": "+ T('Show all factions'), function() {
            GM_setValue("SHOW_ONLY_ACTIVE_FACTION_PROGRESS_BAR", false);
            location.reload();
        });

        GM_registerMenuCommand(T('Progress Bar') +": "+ T('Show active faction'), function() {
            GM_setValue("SHOW_ONLY_ACTIVE_FACTION_PROGRESS_BAR", true);
            location.reload();
        });
        makeMenuToggle("SHOW_HUNTERS_PROGRESS_BAR", true, T('Toggle') +" "+ T('Hunters\' guild'), T('Progress Bar'));
        makeMenuToggle("SHOW_LABORERS_PROGRESS_BAR", true, T('Toggle') +" "+ T('Laborers\' guild'), T('Progress Bar'));
        makeMenuToggle("SHOW_GAMBLERS_PROGRESS_BAR", true, T('Toggle') +" "+ T('Gamblers\' guild'), T('Progress Bar'));
        makeMenuToggle("SHOW_THIEVES_PROGRESS_BAR", true, T('Toggle') +" "+ T('Thieves\' guild'), T('Progress Bar'));
        makeMenuToggle("SHOW_RANGERS_PROGRESS_BAR", true, T('Toggle') +" "+ T('Rangers\' guild'), T('Progress Bar'));
        makeMenuToggle("SHOW_MERCENARIES_PROGRESS_BAR", true, T('Toggle') +" "+ T('Mercenaries\' guild'), T('Progress Bar'));
        makeMenuToggle("SHOW_TACTICS_PROGRESS_BAR", true, T('Toggle') +" "+ T('Tactics\' guild'), T('Progress Bar'));
        makeMenuToggle("SHOW_WATCHERS_PROGRESS_BAR", true, T('Toggle') +" "+ T('Watchers\' guild'), T('Progress Bar'));
        makeMenuToggle("SHOW_ADVENTURES_PROGRESS_BAR", true, T('Toggle') +" "+ T('Adventurers\' guild'), T('Progress Bar'));
        makeMenuToggle("SHOW_SMITHS_PROGRESS_BAR", true, T('Toggle') +" "+ T('Smiths\' guild'), T('Progress Bar'));
        makeMenuToggle("SHOW_ENCHANTERS_PROGRESS_BAR", true, T('Toggle') +" "+ T('Enchanters\' guild'), T('Progress Bar'));        
    }
//'
    function find(xpath, xpres,startnode){
        if (!startnode) {startnode=document;}
        var ret = document.evaluate(xpath, startnode, null, xpres, null);
        return  xpres == XPFirst ? ret.singleNodeValue : ret;
    }         

    function insertAfter(newChild, refChild) {
        node.parentNode.insertBefore(newChild, refChild.nextSibling);
    }

    function elem(tag, content){
        var ret = document.createElement(tag);
        ret.innerHTML = content;
        return ret;
    }

    function T(testo){
        if (language[testo] == undefined) return lang_en[testo]; else return language[testo];
    }

    function makeMenuToggle(key, defaultValue, label, prefix) {
        window[key] = GM_getValue(key, defaultValue);

        GM_registerMenuCommand((prefix ? prefix+": " : "") + label, function() {
            GM_setValue(key, !window[key]);
            location.reload();
        });
    }

    function makeProgressBar(exp_attuale, lvl_attuale, exp_lvls){
        if (lvl_attuale=="") {
            for (var i=0; i <= exp_lvls.length; i++) {
                if (exp_lvls[i] > exp_attuale || i == exp_lvls.length) {
                    lvl_attuale = i;
                    break;
                }
            }
        }

        var exp_necessaria = exp_lvls[lvl_attuale];
        if (lvl_attuale == 0) {
            var perc = Math.round(exp_attuale * 250 / exp_necessaria);
        } else if (lvl_attuale == exp_lvls.length) {
            var perc = 250;
        } else {
            exp_attuale = exp_attuale - exp_lvls[lvl_attuale-1];
            exp_necessaria = exp_necessaria - exp_lvls[lvl_attuale-1];
            var perc = Math.round(exp_attuale * 250 / exp_necessaria);
        }
        var perc_text = Math.round(perc / 250 * 100);
        var progress_bar_html = "<DIV class=\"table_progress\" title=\""+ perc_text +"%\">"+
            "<img src=\"i/top/logot.jpg\" height=\"4\" width=\""+ perc +"\" title=\""+ perc_text +"%\" alt\""+ perc +"%\">"+
            "</DIV>";
        
        return progress_bar_html;
    }

    function showExpBar(){
        var tabelle = find("//table", XPList);
        var player_info = "";
        var skill_info = "";
        var player_faction = "";
        
        if (location.href.indexOf('home.php') != -1) {
            for (var i = 25; i < tabelle.snapshotLength; i++){

                if (!tabelle.snapshotItem(i)) continue;
                if (!tabelle.snapshotItem(i).childNodes[0]) continue;
                if (!tabelle.snapshotItem(i).childNodes[0].childNodes[0]) continue;

                //Player Info
                if (tabelle.snapshotItem(i).childNodes[0].childNodes[0].childNodes[0]) {
                    if (tabelle.snapshotItem(i).childNodes[0].childNodes[0].childNodes[0].innerHTML.indexOf(T('Combat level') +":") > 0) {
                        player_info = tabelle.snapshotItem(i).childNodes[0].childNodes[0].childNodes[0];
                    }
                }

                //Skill Info
                if (tabelle.snapshotItem(i).childNodes[0].childNodes[0].childNodes[1]) {
                    if (tabelle.snapshotItem(i).childNodes[0].childNodes[0].childNodes[1].innerHTML.indexOf(T('Knight') +":") > 0) {
                        skill_info = tabelle.snapshotItem(i).childNodes[0].childNodes[0].childNodes[1];
                    }
                }

		//Faction Info
                if (player_faction == "") {
                   if(tabelle.snapshotItem(i).childNodes[0].childNodes[0].innerHTML.search(/title\=\"(.*?)\"/) > 0) {
                        player_faction = RegExp.$1;
			var not_fr = true;
			for (var j=0; j < factions.length; j++){
				if (factions[j][0] == player_faction)  { not_fr = false; break; }
			}
			if (not_fr) {player_faction="";}
                    }
                }

                if (player_info !="" && skill_info != "" && player_faction != "") break;
            }


        } else if (location.href.indexOf('pl_info.php') != -1) {
            for (var i = 25; i < tabelle.snapshotLength; i++){
                if (!tabelle.snapshotItem(i)) continue;
                if (!tabelle.snapshotItem(i).childNodes[0]) continue;

                //Player Info
                if (tabelle.snapshotItem(i).childNodes[0].childNodes[2]) {
                    if (tabelle.snapshotItem(i).childNodes[0].childNodes[2].childNodes[0]) {
                        if (tabelle.snapshotItem(i).childNodes[0].childNodes[2].childNodes[0].textContent.indexOf(T('Combat level') +":") > 0) {
                            player_info = tabelle.snapshotItem(i).childNodes[0].childNodes[2].childNodes[0];
                        }
                    }
                }

                //Skill Info
                if (tabelle.snapshotItem(i).childNodes[0].childNodes[1]) {
                    if (tabelle.snapshotItem(i).childNodes[0].childNodes[1].childNodes[1]) {
                        if (tabelle.snapshotItem(i).childNodes[0].childNodes[1].childNodes[1].textContent.indexOf(T('Knight')) > 0) {
                            skill_info = tabelle.snapshotItem(i).childNodes[0].childNodes[1].childNodes[1];
                        }
                    }
                }
                
                //Faction Info
                if (player_faction == "") {
                    if (tabelle.snapshotItem(i).childNodes[0].childNodes[0]) {
                        if (tabelle.snapshotItem(i).childNodes[0].childNodes[0].childNodes[0]) {
                            if (tabelle.snapshotItem(i).childNodes[0].childNodes[0].childNodes[0].innerHTML.search(/\.gif\" title\=\"(.*?)\"/) > 0) {
                                player_faction = RegExp.$1;
//alert(player_faction+'\n\n'+tabelle.snapshotItem(i).childNodes[0].childNodes[0].childNodes[0].innerHTML);
				var not_fr = true;
				for (var j=0; j < factions.length; j++){
					if (factions[j][0] == player_faction)  { not_fr = false; break; }
				}
				if (not_fr) {player_faction="";}
                            }
                        }
                    }
                }

                if (player_info !="" && skill_info != "" && player_faction != "") break;
            }

        }                             
//alert(player_faction+'\n\n'+factions.indexOf(player_faction));

        //========== Combat Level
        var lvl_info = player_info.textContent.split("\u00BB")[1];
        lvl_info.search(/(.*)\((.*)\)(.*)/);
        var lvl_attuale = eval(RegExp.$1.replace(T('Combat level') +": ",""));

        var exp_attuale =lvl_info.substring(lvl_info.indexOf("(")+1,lvl_info.indexOf(")")).replace(/,{1,}/g,"")*1;

        var progress_bar_html = makeProgressBar(exp_attuale, lvl_attuale, combat_exp_lvl);
        player_info.innerHTML = player_info.innerHTML.replace("</font><br><br>", "</font>"+ progress_bar_html +"<br>");
        player_info.innerHTML = player_info.innerHTML.replace("</font><br>", "</font>"+ progress_bar_html +"<br>");

        var skills = skill_info.innerHTML.split(">&nbsp;&nbsp;");

        //========== Player Faction(s)
	var active_faction_index;
	for (var j=0; j < factions.length; j++){
		if (factions[j][0] == player_faction)  { active_faction_index = factions[j][1]; break; }
	}
//alert(active_faction_index);

        if (GM_getValue("SHOW_ONLY_ACTIVE_FACTION_PROGRESS_BAR", false)) { // show current faction only
            var faction_index = active_faction_index;
            lvl_info = skills[faction_index];
//alert(lvl_info);
            lvl_info.search(/\((\d*.?\d*)\)/);
            exp_attuale = RegExp.$1;
    
            progress_bar_html = makeProgressBar(exp_attuale, "", racial_skill_lvl);
    
            if (faction_index < nFactions-1) {
                var next_faction = factions[faction_index + 1][0];



                skill_info.innerHTML = skill_info.innerHTML.replace("<br>&nbsp;&nbsp;"+ next_faction, progress_bar_html +"&nbsp;&nbsp;"+ next_faction);
            } else {
                skill_info.innerHTML = skill_info.innerHTML.replace("<br>&nbsp;&nbsp;"+ T('Hunters\' guild'), progress_bar_html +"<br>&nbsp;&nbsp;"+ T('Hunters\' guild'));


            }
        } else { // show ALL factions
            for(var faction_index=0; faction_index<nFactions; faction_index++){
                lvl_info = skills[faction_index];
                lvl_info.search(/\((\d*.?\d*)\)/);
                exp_attuale = RegExp.$1;
        
                progress_bar_html = makeProgressBar(exp_attuale, "", racial_skill_lvl);
               
                if (faction_index<nFactions-1) {
                    var next_faction = factions[faction_index + 1][0];
                        skill_info.innerHTML = skill_info.innerHTML.replace("<br>&nbsp;&nbsp;"+ next_faction, progress_bar_html +"&nbsp;&nbsp;"+ next_faction);
                        skill_info.innerHTML = skill_info.innerHTML.replace("<br>&nbsp;&nbsp;<b>"+ next_faction, progress_bar_html +"&nbsp;&nbsp;<b>"+ next_faction);
                } else {
                    skill_info.innerHTML = skill_info.innerHTML.replace("<br>&nbsp;&nbsp;"+ T('Hunters\' guild'), progress_bar_html +"<br>&nbsp;&nbsp;"+ T('Hunters\' guild'));
                }
            }
        }


        //========== Hunters' guild
        if (GM_getValue("SHOW_HUNTERS_PROGRESS_BAR", true)) {
            lvl_info = skills[9];
            lvl_info.search(/\((\d*.?\d*)\)/);
            exp_attuale = RegExp.$1;
    
            progress_bar_html = makeProgressBar(exp_attuale, "", hunters_guild_lvl);
            skill_info.innerHTML = skill_info.innerHTML.replace("<br>&nbsp;&nbsp;"+ T('Laborers\' guild'), progress_bar_html +"&nbsp;&nbsp;"+ T('Laborers\' guild'));
        }


        //========== Laborers' guild
        if (GM_getValue("SHOW_LABORERS_PROGRESS_BAR", true)) {
            lvl_info = skills[10];
            lvl_info.search(/\((\d*.?\d*)\)/);
            exp_attuale = RegExp.$1;
    
            progress_bar_html = makeProgressBar(exp_attuale, "", laborers_guild_lvl);
            skill_info.innerHTML = skill_info.innerHTML.replace("<br>&nbsp;&nbsp;"+ T('Gamblers\' guild'), progress_bar_html +"&nbsp;&nbsp;"+ T('Gamblers\' guild'));
        }


        //========== Gamblers' guild
        if (GM_getValue("SHOW_GAMBLERS_PROGRESS_BAR", true)) {
            lvl_info = skills[11];
            lvl_info.search(/\((\d*.?\d*)\)/);
            exp_attuale = RegExp.$1;
    
            progress_bar_html = makeProgressBar(exp_attuale, "", gamblers_guild_lvl);
            skill_info.innerHTML = skill_info.innerHTML.replace("<br>&nbsp;&nbsp;"+ T('Thieves\' guild'), progress_bar_html +"&nbsp;&nbsp;"+ T('Thieves\' guild'));
        }


        //========== Thieves' guild
        if (GM_getValue("SHOW_THIEVES_PROGRESS_BAR", true)) {
            lvl_info = skills[12];
            lvl_info.search(/\((\d*.?\d*)\)/);
            exp_attuale = RegExp.$1;
    
            progress_bar_html = makeProgressBar(exp_attuale, "", thieves_guild_lvl);
            skill_info.innerHTML = skill_info.innerHTML.replace("<br>&nbsp;&nbsp;"+ T('Rangers\' guild'), progress_bar_html +"&nbsp;&nbsp;"+ T('Rangers\' guild'));
        }

        //========== Rangers' guild
        if (GM_getValue("SHOW_RANGERS_PROGRESS_BAR", true)) {
            lvl_info = skills[13];
            lvl_info.search(/\((\d*.?\d*)\)/);
            exp_attuale = RegExp.$1;
    
            progress_bar_html = makeProgressBar(exp_attuale, "", rangers_guild_lvl);
            skill_info.innerHTML = skill_info.innerHTML.replace("<br>&nbsp;&nbsp;"+ T('Mercenaries\' guild'), progress_bar_html +"&nbsp;&nbsp;"+ T('Mercenaries\' guild'));
        }

       //========== Mercenaries' guild
        if (GM_getValue("SHOW_MERCENARIES_PROGRESS_BAR", true)) {
            lvl_info = skills[14];
            lvl_info.search(/\((\d*.?\d*)\)/);
            exp_attuale = RegExp.$1;
    
            progress_bar_html = makeProgressBar(exp_attuale, "", mercenaries_guild_lvl);
            skill_info.innerHTML = skill_info.innerHTML.replace("<br>&nbsp;&nbsp;"+ T('Tactics\' guild'), progress_bar_html +"&nbsp;&nbsp;"+ T('Tactics\' guild'));
        }

		
        //========== Tactics' guild
        if (GM_getValue("SHOW_TACTICS_PROGRESS_BAR", true)) {
	    lvl_info = skills[15];
            lvl_info.search(/\((\d*.?\d*)\)/);
            exp_attuale = RegExp.$1;
    
            progress_bar_html = makeProgressBar(exp_attuale, "", tactics_guild_lvl);
            skill_info.innerHTML = skill_info.innerHTML.replace("<br>&nbsp;&nbsp;"+ T('Watchers\' guild'), progress_bar_html +"&nbsp;&nbsp;"+ T('Watchers\' guild'));
        }

        //========== Watchers' guild
        if (GM_getValue("SHOW_WATCHERS_PROGRESS_BAR", true)) {
            lvl_info = skills[16];
            lvl_info.search(/\((\d*.?\d*)\)/);
            exp_attuale = RegExp.$1;
            progress_bar_html = makeProgressBar(exp_attuale, "", watchers_guild_lvl);
            skill_info.innerHTML = skill_info.innerHTML.replace("<br>&nbsp;&nbsp;"+ T('Adventurers\' guild'), progress_bar_html +"&nbsp;&nbsp;"+ T('Adventurers\' guild'));
        }

        //========== Adventurers' guild
        if (GM_getValue("SHOW_ADVENTURES_PROGRESS_BAR", true)) {
            lvl_info = skills[17];
            lvl_info.search(/\((\d*.?\d*)\)/);
            exp_attuale = RegExp.$1;
            progress_bar_html = makeProgressBar(exp_attuale, "", Adventurers_guild_lvl);
            skill_info.innerHTML = skill_info.innerHTML.replace("<br>&nbsp;&nbsp;"+ T('Smiths\' guild'), progress_bar_html +"&nbsp;&nbsp;"+ T('Smiths\' guild'));
        }

        //========== Smiths' guild
        if (GM_getValue("SHOW_SMITHS_PROGRESS_BAR", true)) {
            lvl_info = skills[18];
            lvl_info.search(/\((\d*.?\d*)\)/);
            exp_attuale = RegExp.$1;
    
            progress_bar_html = makeProgressBar(exp_attuale, "", smiths_guild_lvl);
            skill_info.innerHTML = skill_info.innerHTML.replace('<div id="home_2">', progress_bar_html +'<div id="home_2">');
        }


        //========== Enchanters' guild
        if (GM_getValue("SHOW_ENCHANTERS_PROGRESS_BAR", true)) {
            lvl_info = skills[19];
            lvl_info.search(/\((\d*.?\d*)\)/);
            exp_attuale = RegExp.$1;
	    progress_bar_html = makeProgressBar(exp_attuale, "", enchanters_guild_lvl);
            skill_info.innerHTML = skill_info.innerHTML.replace("<div id=\"mod_guild\">", progress_bar_html +"<div id=\"mod_guild\">");
        }
		
    }

    init();

    // Azioni specifiche per alcune pagine
    if (location.href.indexOf('home.php') != -1)        showExpBar();
    if (location.href.indexOf('pl_info.php') != -1)     showExpBar();
};
//****************************************************
/** ЃЁЎ«Ё®вҐЄ  о­ЁЄ®¤ 
*
* ђҐ «Ё§гҐв дг­ЄжЁЁ а Ў®вл б о­ЁЄ®¤®¬.
* @file lib_unicode.js
* @version 1.1.0
* @author DrunkenStranger
* @link http://userscripts.org/users/362572
* @license GPL
*/
function uchar(s) {
    switch (s[0]) {
        case "Ђ": return "\u0410";
        case "Ѓ": return "\u0411";
        case "‚": return "\u0412";
        case "ѓ": return "\u0413";
        case "„": return "\u0414";
        case "…": return "\u0415";
        case "†": return "\u0416";
        case "‡": return "\u0417";
        case "€": return "\u0418";
        case "‰": return "\u0419";
        case "Љ": return "\u041a";
        case "‹": return "\u041b";
        case "Њ": return "\u041c";
        case "Ќ": return "\u041d";
        case "Ћ": return "\u041e";
        case "Џ": return "\u041f";
        case "ђ": return "\u0420";
        case "‘": return "\u0421";
        case "’": return "\u0422";
        case "“": return "\u0423";
        case "”": return "\u0424";
        case "•": return "\u0425";
        case "–": return "\u0426";
        case "—": return "\u0427";
        case "˜": return "\u0428";
        case "™": return "\u0429";
        case "љ": return "\u042a";
        case "›": return "\u042b";
        case "њ": return "\u042c";
        case "ќ": return "\u042d";
        case "ћ": return "\u042e";
        case "џ": return "\u042f";
        case " ": return "\u0430";
        case "Ў": return "\u0431";
        case "ў": return "\u0432";
        case "Ј": return "\u0433";
        case "¤": return "\u0434";
        case "Ґ": return "\u0435";
        case "¦": return "\u0436";
        case "§": return "\u0437";
        case "Ё": return "\u0438";
        case "©": return "\u0439";
        case "Є": return "\u043a";
        case "«": return "\u043b";
        case "¬": return "\u043c";
        case "­": return "\u043d";
        case "®": return "\u043e";
        case "Ї": return "\u043f";
        case "а": return "\u0440";
        case "б": return "\u0441";
        case "в": return "\u0442";
        case "г": return "\u0443";
        case "д": return "\u0444";
        case "е": return "\u0445";
        case "ж": return "\u0446";
        case "з": return "\u0447";
        case "и": return "\u0448";
        case "й": return "\u0449";
        case "к": return "\u044a";
        case "л": return "\u044b";
        case "м": return "\u044c";
        case "н": return "\u044d";
        case "о": return "\u044e";
        case "п": return "\u044f";
        case "р": return "\u0401";
        case "с": return "\u0451";
        default: return s[0];
    }
}

function ustring(s) {
    s = String(s);
    var result = "";
    for (var i = 0; i < s.length; i++) result += uchar(s[i]);
    return result;
}
//****************************************************

window.addEventListener('load', main, false);