Widget:CharacterList

From Unforgotten Realms Wiki
Revision as of 17:43, 14 May 2017 by imported>Pillowkeeper
Jump to navigationJump to search

<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.0.min.js"></script>

<style>

   button {
       background-color: #b36e14;
       border: 1px solid #64320d;
       outline: none;
       cursor: pointer;
       padding: 7px 16px;
       transition: 0.3s;
       display: inline;
       color: white;
       height: 31px;
   }
   #buttons {
       text-align: center;
       position: relative;
       display: block;
       float: left;
   }
   #chars a img.thumbborder {
       display: inline-grid;
       border: none;
   }
   #chars a:hover img.thumbborder {
       -webkit-filter: grayscale(50%) brightness(50%);
       filter: grayscale(70%) brightness(50%) blur(2px);
       -webkit-transition: -webkit-filter 250ms linear;
       transition: filter 250ms linear;
   }
   #chars a:hover .tcont {
       opacity: 1;
       transition: opacity 250ms linear;
   }
   #chars a:hover {
       text-decoration: none;
   }
   div#chars .tcont {
       position: relative;
       opacity: 0;
       color: white;
       font-family: Berkshire Swash;
       font-size: 18px;
       display: inline-block;
       width: 135px;
       top: -90px;
       left: 10px;
       text-align: center;
   }
   #chars a {
       display: inline-grid;
       max-width: 150px;
       max-height: 150px;
       margin-right: 20px;
       margin-left: 30px;
       margin-bottom: 30px;
   }
   div#filter {
       border: 3px solid #dddddd;
       border-radius: 20px;
       overflow: hidden;
       display: block;
   }
   div#chars {
       text-align: center;
   }
   div#chars #breaker {
       text-align: left;
       text-size: 18px;
       text-weight: bold;
   }
   #breaker {
       display: block;
       text-align: left;
       font-size: 20px;
       font-weight: bold;
       padding: 5px;
   }
   #charSelect-s1,
   #charSelect-s2 {
       border: 1px solid #000;
       font-size: 14px;
       color: #fff;
       background: #444;
       padding: 2px;
       position: relative;
       width: 220px;
       float: right;
       height: 31px;
   }
   #charTitle {
       display: block;
       text-align: center;
       font-size: 24px;
       font-weight: bold;
       padding-top: 40px;
   }

</style>


<script>

   window.addEventListener('load',
       function() {

$("#chars img.thumbborder").wrap("

");

           $("div#filter").each(function() {
               $(this).after("" + $(this).parent("a").attr("title") + "")
           });
           $("#chars img").each(function() {
               var text = $(this).attr("class");
               text = text.substring(0, text.indexOf(" "));
               $(this).parent().parent().attr("class", text);
           });


           $("span.tcont").each(function() {
               if ($(this).height() >= 29 && $(this).height() < 57) {
                   $(this).parent().css("position", "relative");
                   $(this).css("top", "-100px");
               }
               if ($(this).height() >= 57) {
                   $(this).parent().css("position", "relative");
                   $(this).css("top", "-110px");
               }
           });


           var classList = [];
           $("div#chars a").each(function() {
               var val = $(this).attr("class");
               val = val.substring(0, val.indexOf("-"));
               if (classList.indexOf(val) < 0) {
                   classList.push(val);
               }
           });
           var charList = [];
           $("span.tcont").each(function() {
               if (charList.indexOf($(this).text()) < 0) {
                   charList.push($(this).text());
               }
           });
           var s1List = [];
           $("div#chars a").each(function() {
               if ($(this).attr("class").startsWith("s1")) {
                   if (s1List.indexOf($(this).find("span.tcont").text()) < 0) {
                       s1List.push($(this).find("span.tcont").text());
                   }
               }
           });
           var s2List = [];
           $("div#chars a").each(function() {
               if ($(this).attr("class").startsWith("s2")) {
                   if (s2List.indexOf($(this).find("span.tcont").text()) < 0) {
                       s2List.push($(this).find("span.tcont").text());
                   }
               }
           });
           $("div#chars").before("<select id='charSelect-s1'> <option>Season 1 Characters</option><option>Band of Thieves</option> <option>Porc Hunters</option> <option>The Jewel of the Dingo Isles</option> <option>The Many Gobos of Pat</option> <option>The Sunswords</option> <option>The Unseen Rogues</option> <option>Kobold Headhunters</option> <option>Zarlin Catacombs</option> <option>The New Crew</option> <option>Silvermine Mountains</option><option>Guild of Explorers</option><option>Battle of the Bards</option><option>The Blood Snake Queen</option><option>The Death of Virgo</option><option>Player Characters</option><option>NPC Characters</option><option>Minor Characters</option><option>All Characters</option></select>");
           $("#charSelect-s1").before("<select id='charSelect-s2'><option>Season 2 Characters</option> <option>Woodcarvers</option> <option>Okagnoma Guild Hall</option> <option>Murder Bros</option> <option>The Cobblers</option> <option>The Tower of Ultimate Wizardry: Chapter One</option> <option>Unexpected Discovery</option> <option>Buckeroos</option> <option>Fall of Dundinborough</option> <option>Den of Devils</option> <option>The Skeleton King</option><option>Player Characters</option><option>NPC Characters</option><option>Minor Characters</option><option>All Characters</option></select>");

$("#charSelect-s2").before('

<button id="b-s1" onclick="changeSeason(this)">Season One</button><button id="b-s2" onclick="changeSeason(this)">Season Two</button>');
           /*Default Select Behavior */
           $("#charSelect-s1").show();
           $("#charSelect-s2").hide();
           $("#b-s1").css('background-color', '#89540F');
           /*Default*/
           $("div#chars a").hide();
           $("span#breaker").remove();
           $("#charTitle").remove();
           for (var i = 0; i < s1List.length; i++) {
               $("span.tcont:contains('" + s1List[i] + "')").parent("[class*='s1c']:first").show();
           }
           $("#charSelect-s1").after("Season 1 Characters");
           $("select#charSelect-s1").change(function() {
               $("div#chars a").hide();
               $("span#breaker").remove();
               $("#charTitle").remove();
               $("#charSelect-s1").after("" + $(this).val() + "");
               if ($(this).val() == "All Characters") {
                   for (var i = 0; i < charList.length; i++) {
                       $("span.tcont:contains('" + charList[i] + "'):first").parent().show();
                   }
               }
               if ($(this).val() == "Season 1 Characters") {
                   for (var i = 0; i < s1List.length; i++) {
                       $("span.tcont:contains('" + s1List[i] + "')").parent("[class*='s1c']:first").show();
                   }
               }
               if ($(this).val() == "Band of Thieves") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s1c1-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "Porc Hunters") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s1c2-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "The Jewel of the Dingo Isles") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s1c3-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "The Many Gobos of Pat") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s1c4-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "The Sunswords") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s1c5-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "The Unseen Rogues") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s1c6-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "Kobold Headhunters") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s1c7-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "Zarlin Catacombs") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s1c8-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "The New Crew") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s1c9-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "Silvermine Mountains") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s1c10-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "Guild of Explorers") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s1c11-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "Battle of the Bards") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s1c12-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "The Blood Snake Queen") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s1c13-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "The Death of Virgo") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s1c14-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "Player Characters") {
                   $("div#chars a").hide();
                   for (var i = 0; i < s1List.length; i++) {
                       $("span.tcont:contains('" + s1List[i] + "')").parent("[class*='s1c']:first").show();
                   }
                   $("div#chars a:not([class*='-m'])").hide();
                   $("span#breaker").remove();
               }
               if ($(this).val() == "NPC Characters") {
                   $("div#chars a").hide();
                   for (var i = 0; i < s1List.length; i++) {
                       $("span.tcont:contains('" + s1List[i] + "')").parent("[class*='s1c']:first").show();
                   }
                   $("div#chars a:not([class*='-n'])").hide();
                   $("span#breaker").remove();
               }
               if ($(this).val() == "Minor Characters") {
                   $("div#chars a").hide();
                   for (var i = 0; i < s1List.length; i++) {
                       $("span.tcont:contains('" + s1List[i] + "')").parent("[class*='s1c']:first").show();
                   }
                   $("div#chars a:not([href*='Minor_Characters'])").hide();
                   $("span#breaker").remove();
               }
           });
           $("select#charSelect-s2").change(function() {
               $("div#chars a").hide();
               $("span#breaker").remove();
               $("#charTitle").remove();
               $("#charSelect-s2").after("" + $(this).val() + "");
               if ($(this).val() == "All Characters") {
                   for (var i = 0; i < charList.length; i++) {
                       $("span.tcont:contains('" + charList[i] + "'):first").parent().show();
                   }
               }
               if ($(this).val() == "Season 2 Characters") {
                   for (var i = 0; i < s2List.length; i++) {
                       $("span.tcont:contains('" + s2List[i] + "')").parent("[class*='s2c']:first").show();
                   }
               }
               if ($(this).val() == "Woodcarvers") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s2c1-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "Okagnoma Guild Hall") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s2c2-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "Murder Bros") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s2c3-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "The Cobblers") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s2c4-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "The Tower of Ultimate Wizardry: Chapter One") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s2c5-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "Unexpected Discovery") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s2c6-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "Buckeroos") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s2c7-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "Fall of Dundinborough") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s2c8-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "Den of Devils") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s2c9-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "The Skeleton King") {
                   $("div#chars a").hide();
                   $("div#chars a[class*='s2c10-']").show();
                   $("span#breaker").remove();
                   $("div#chars").find("[class*='-n']:parent:visible").first().before("NPC Characters");
                   $("div#chars").find("[class*='-m']:parent:visible").first().before("Player Characters");
               }
               if ($(this).val() == "Player Characters") {
                   $("div#chars a").hide();
                   for (var i = 0; i < s2List.length; i++) {
                       $("span.tcont:contains('" + s2List[i] + "')").parent("[class*='s2c']:first").show();
                   }
                   $("div#chars a:not([class*='-m'])").hide();
                   $("span#breaker").remove();
               }
               if ($(this).val() == "NPC Characters") {
                   $("div#chars a").hide();
                   for (var i = 0; i < s2List.length; i++) {
                       $("span.tcont:contains('" + s2List[i] + "')").parent("[class*='s2c']:first").show();
                   }
                   $("div#chars a:not([class*='-n'])").hide();
                   $("span#breaker").remove();
               }
               if ($(this).val() == "Minor Characters") {
                   $("div#chars a").hide();
                   for (var i = 0; i < s2List.length; i++) {
                       $("span.tcont:contains('" + s2List[i] + "')").parent("[class*='s2c']:first").show();
                   }
                   $("div#chars a:not([href*='Minor_Characters'])").hide();
                   $("span#breaker").remove();
               }
           });


           $("span.tcont").each(function() {
               if ($(this)[0].scrollWidth > 135) {
                   console.log("Fix Spacing > " + $(this).text());
               }
           });
           if ($(window).width() <= 992) {

$("span.tcont").each(function() { if($(this).height() >= 56){ $(this).parent().css("top", "30px"); console.log($(this).text()); } });

               $("span.tcont").css("opacity", "1");
               $("#chars a img.thumbborder").css("filter", "brightness(50%)");
           } else {
           $("div#buttons").after("<button id='nametoggle' onclick='toggleNames(this)' style='float:right;'>Toggle Names</button>");

}

       }, false);
function toggleNames(val){

if(val.id = "nametoggle"){

           console.log("works");
       if($(val).css("background-color") == "rgb(179, 110, 20)"){
           $("span.tcont").css("opacity", "1");
           $("#chars a img.thumbborder").css("filter", "brightness(50%)");
           $("#nametoggle").css('background-color', '#89540F');

} else {

           $("span.tcont").css("opacity", "0");
           $("#chars a img.thumbborder").css("filter", "brightness(100%)");
           $("#nametoggle").css('background-color', '#b36e14');

} } }

   function changeSeason(val) {
       if (val.id == "b-s1") {
           $("#b-s1").css('background-color', '#89540F');
           $("#b-s2").css('background-color', '#b36e14');
           $('#charSelect-s2').prop('selectedIndex', 0);
           $("#charSelect-s1").show();
           $("#charSelect-s2").hide();
           $('#charSelect-s1').trigger('change');
       }


       if (val.id == "b-s2") {
           $("#b-s2").css('background-color', '#89540F');
           $("#b-s1").css('background-color', '#b36e14');
           $('#charSelect-s1').prop('selectedIndex', 0);
           $("#charSelect-s1").hide();
           $("#charSelect-s2").show();
           $('#charSelect-s2').trigger('change');
       }
 
   }

</script>