Advertisement
Guest User

Rigged Wiki group browsing script thing

a guest
Dec 22nd, 2014
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <script>
  2. var rowHoverBG;
  3. var selectedGroup = null;
  4. var selectedMatch = null;
  5. var groupShow, matchShow;
  6. window.addEventListener("load",onLoad,true);
  7. function onLoad(){
  8.   document.getElementById("groupBrowseControls").style.display = "";
  9.   rowHoverBG = document.getElementById("groupBrowseControls").dataset.rowhovercolor;
  10.   groupShow = document.getElementById("groupShow");
  11.   matchShow = document.getElementById("matchShow");
  12.   groupSel.addEventListener("change",selchange,true);
  13.   hideAll();
  14.   window.removeEventListener("load",onLoad,true);
  15. }
  16. function hideAll(){
  17.   var groupDivs = document.getElementsByClassName("groupDiv");
  18.   var groupSel = document.getElementById("groupSel");
  19.   for(var i = 0; i<groupDivs.length; ++i){
  20.     groupDivs[i].style.display="";
  21.     groupSel.add(new Option("Group "+groupDivs[i].id.substr(5),groupDivs[i].id),null);
  22.   }
  23.   var groupTables = document.getElementsByClassName("groupTable");
  24.   for(i = 0; i<groupTables.length; ++i){
  25.     groupTables[i].removeEventListener("mouseover",teamMouseOver);
  26.     groupTables[i].addEventListener("mouseover",teamMouseOver);
  27.   }
  28.   hideMatches();
  29.   matchShow.style.display = "";
  30.   groupSel.addEventListener("change",selchange,true);
  31.   groupShow.innerHTML = "All Groups";
  32.   groupShow.removeEventListener("click",hideAll,true);
  33.   groupShow.addEventListener("click",showAll,true);
  34. }
  35. function showAll(){
  36.   var groupDivs = document.getElementsByClassName("groupDiv");
  37.   var groupSel = document.getElementById("groupSel");
  38.   for(var i = 0; i<groupDivs.length; ++i){
  39.     groupDivs[i].style.display="";
  40.   }
  41.   selectedGroup = null;
  42.   while(groupSel.options[0])
  43.     groupSel.remove(0);
  44.   matchShow.style.display = "none";
  45.   showMatches();
  46.   groupShow.innerHTML = "Select Group";
  47.   groupShow.removeEventListener("click",showAll,true);
  48.   groupShow.addEventListener("click",hideAll,true);
  49. }
  50. function hideMatches(){
  51.   var matchTables = document.getElementsByClassName("matchTable");
  52.   var matches = document.getElementsByClassName("matchDiv");
  53.   for(i = 0; i < matchTables.length; ++i){
  54.     matchTables[i].removeEventListener("mouseover",matchMouseOver);
  55.     matchTables[i].addEventListener("mouseover",matchMouseOver);
  56.     matchTables[i].addEventListener("click",matchTableClick);
  57.   }
  58.   for(i = 0; i < matches.length; ++i){
  59.     matches[i].style.display = "none";
  60.   }
  61.   matchShow.innerHTML = "All Matches";
  62.   matchShow.removeEventListener("click",hideMatches,true);
  63.   matchShow.addEventListener("click",showMatches,true);
  64. }
  65. function showMatches(){
  66.   var matchTables = document.getElementsByClassName("matchTable");
  67.   var matches = document.getElementsByClassName("matchDiv");
  68.   for(i = 0; i < matchTables.length; ++i){
  69.     matchTables[i].removeEventListener("click",matchTableClick);
  70.   }
  71.   for(i = 0; i < matches.length; ++i){
  72.     matches[i].style.display = "";
  73.   }
  74.   selectedMatch = null;
  75.   matchShow.innerHTML = "Select Match";
  76.   matchShow.removeEventListener("click",showMatches,true);
  77.   matchShow.addEventListener("click",hideMatches,true);
  78. }
  79. function teamMouseOver (event){
  80.   rowMouseOver(event,true);
  81. }
  82. function matchMouseOver (event){
  83.   rowMouseOver(event,false);
  84. }
  85. function rowMouseOver(event,isTeam){
  86.   var grouprows = [], matchrows = [], allRows = [];
  87.   var element = event.target;
  88.   while(element.tagName != "TABLE" && element.tagName != "TR")
  89.     element = element.parentNode;
  90.   if(element.tagName == "TR" && element.rowIndex > 0 && !element.contains(event.relatedTarget) && element.classList[0]){
  91.     if(isTeam){
  92.       grouprows = [element];
  93.       matchrows = document.querySelectorAll("div.groupDiv table.matchTable tr."+element.classList[0]);
  94.     }else{
  95.       matchrows = [element];
  96.       grouprows[0] = document.querySelector("div.groupDiv table.groupTable tr."+element.classList[0]);
  97.       grouprows[1] = document.querySelector("div.groupDiv table.groupTable tr."+element.classList[1]);
  98.     }
  99.     for(var i = 0;grouprows && i < grouprows.length; ++i){
  100.       allRows.push(grouprows[i]);
  101.       for(var j = 0; j<grouprows[i].cells.length;++j){
  102.         grouprows[i].cells[j].dataset.Background = grouprows[i].cells[j].style.background;
  103.         grouprows[i].cells[j].style.background = rowHoverBG;
  104.       }
  105.     }
  106.     for(var i = 0;matchrows && i < matchrows.length; ++i){
  107.       allRows.push(matchrows[i]);
  108.       for(var j = 0; j<matchrows[i].cells.length;++j){
  109.         matchrows[i].cells[j].dataset.Background = matchrows[i].cells[j].style.background;
  110.         matchrows[i].cells[j].style.background = rowHoverBG;
  111.       }
  112.     }
  113.   }else//end if homeRows
  114.     return;
  115.   element.addEventListener("mouseout",(function(){
  116.     return function (event){
  117.       if(element.contains(event.relatedTarget))
  118.         return;
  119.       rowMouseOut(allRows);
  120.       element.removeEventListener("mouseout",arguments.callee,false);
  121.     };
  122.   })(),false);
  123. }
  124. function rowMouseOut (rows){
  125.   for(var row of rows){
  126.     for(var i = 0; i < row.cells.length; ++i){
  127.       row.cells[i].style.background = row.cells[i].dataset.Background;
  128.       delete row.cells[i].dataset.Background;
  129.     }
  130.   }
  131. }
  132. function matchTableClick(event){
  133.   if(event.target.tagName == "TR" && event.target.rowIndex > 0){
  134.     var match = document.getElementById(event.target.dataset.matchid);
  135.     if(match){
  136.       if(selectedMatch)
  137.         selectedMatch.style.display = "none";
  138.       selectedMatch = match;
  139.       match.style.display = "";
  140.     }
  141.   }
  142. }
  143. function selchange(){
  144.   if(selectedGroup)
  145.     selectedGroup.style.display = "none";
  146.   if(selectedMatch){
  147.     selectedMatch.style.display = "none";
  148.     selectedMatch = null;
  149.   }
  150.   selectedGroup = document.getElementById(this.value);
  151.   selectedGroup.style.display = "";
  152. }
  153. </script>
  154. <div style="width:100%; background:#CCCCCC; max-width:800px; padding:2px; display:none;" data-rowHoverColor="#DDDDDD" id="groupBrowseControls">
  155. <div style="display:inline-block; padding-right:20px;"><select id="groupSel"></select></div>
  156. <div style="display:inline-block; padding-right:20px;" ><button id="matchShow">All Matches</button></div>
  157. <div style="display:inline-block;" ><button id="groupShow">All Groups</button></div></div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement