|
|
Line 1: |
Line 1: |
| /* Any JavaScript here will be loaded for all users on every page load. */
| |
|
| |
|
| /* Custom hex strings */
| |
| var hss = document.getElementsByClassName("hex-string");
| |
| var i;
| |
|
| |
| for (i = 0; i < hss.length; i++) {
| |
| hss[i].addEventListener("click", function() {
| |
| if (this.dataset.state === 'hex') {
| |
| // Switch to English
| |
| this.querySelector('.hex-string-content').innerText = this.dataset.text;
| |
| this.dataset.state = 'text';
| |
| } else {
| |
| // Switch to Hex
| |
| this.querySelector('.hex-string-content').innerText = this.dataset.hex;
| |
| this.dataset.state = 'hex';
| |
| }
| |
| });
| |
| }
| |
|
| |
|
| |
| /* Custom collapsibles for hints (cannot be nested): */
| |
| var coll = document.getElementsByClassName("collapsible-hint");
| |
| var i;
| |
|
| |
| for (i = 0; i < coll.length; i++) {
| |
| coll[i].addEventListener("click", function() {
| |
| this.classList.toggle("active");
| |
| var content = this.nextElementSibling;
| |
| if (content.style.maxHeight){
| |
| content.style.maxHeight = null;
| |
| content.classList.remove("collapsible-hint-content-visible");
| |
| } else {
| |
| content.style.maxHeight = content.scrollHeight + "px";
| |
| content.classList.add("collapsible-hint-content-visible");
| |
| }
| |
| });
| |
| }
| |
|
| |
|
| |
| /* Custom collapsibles for social media threads */
| |
| $(document).ready(function() {
| |
| $('.collapsible-dialogue-link').on('click', function() {
| |
| //alert("Click!");
| |
| $parentElem = $(this).closest('.collapsible-dialogue');
| |
| if ($(this).text() == 'Collapse') {
| |
| // hide
| |
| $(this).text('Choose');
| |
| $parentElem.children('.collapsible-dialogue-content').slideUp(200);
| |
| } else {
| |
| // show
| |
| $(this).text('Collapse');
| |
| $parentElem.children('.collapsible-dialogue-content').slideDown(200);
| |
| $parentElem.siblings('.collapsible-dialogue').find('.collapsible-dialogue-content').slideUp(200);
| |
| $parentElem.siblings('.collapsible-dialogue').find('.collapsible-dialogue-link').text('Choose');
| |
| }
| |
| });
| |
| });
| |
|
| |
| /* Custom collapsibles for social media threads METHOD 2 */
| |
| $(document).ready(function() {
| |
| var depth;
| |
| var stillCollapsing, stillExpanding;
| |
| // Attach the click event
| |
| $('div.dialogue-thread span.dialogue-choice-button').on('click', chooseDialogue);
| |
| // Hide initially
| |
| $('div.dialogue-thread ul').each(initialDeepHide);
| |
|
| |
| function initialDeepHide() {
| |
| if ($(this).is('ul')) {
| |
| $(this).children('li').each(initialDeepHide);
| |
| }
| |
| else if ($(this).is('li')) {
| |
| if ($(this).children('ul').length) {
| |
| //myDepth = 1 + $(this).parents('li').length;
| |
| //if (myDepth > 1) { $(this).css('background','yellow'); }
| |
| //$(this).children('ul').each(initialDeepHide);
| |
| } else {
| |
| myDepth = 1 + $(this).parents('li').length;
| |
| //$(this).append(" - Depth "+myDepth);
| |
| if (myDepth > 1) { $(this).hide(); }
| |
| }
| |
| }
| |
| }
| |
|
| |
| function deepCollapse() {
| |
| if ($(this).is('ul')) {
| |
| $(this).children('li').each(deepCollapse);
| |
| }
| |
| else if ($(this).is('li')) {
| |
| if ($(this).children('ul').length) {
| |
| $(this).children('ul').each(deepCollapse);
| |
| } else {
| |
| myDepth = 1 + $(this).parents('li').length;
| |
| if (myDepth <= depth) { stillCollapsing = false; }
| |
| if (stillCollapsing) {
| |
| $(this).slideUp();
| |
| // Also set any sub-options to be collapsed
| |
| $(this).find('span.dialogue-choice-button').data('collapsed', true).text('Expand');
| |
| }
| |
| }
| |
| }
| |
| }
| |
| function deepExpand() {
| |
| if ($(this).is('ul')) {
| |
| $(this).children('li').each(deepExpand);
| |
| }
| |
| else if ($(this).is('li')) {
| |
| if ($(this).children('ul').length) {
| |
| $(this).children('ul').each(deepExpand);
| |
| } else {
| |
| myDepth = 1 + $(this).parents('li').length;
| |
| if (myDepth <= depth) { stillExpanding = false; }
| |
| if (stillExpanding && myDepth == depth+1) { $(this).slideDown(); }
| |
| }
| |
| }
| |
| }
| |
|
| |
| function chooseDialogue() {
| |
| var $topLevelUl = $(this).parents('li').last().parent('ul');
| |
| depth = 1 + $(this).parent('li').parents('li').length;
| |
| //$topLevelUl.nextAll('ul').each(diveDeepUl);
| |
| if ($(this).data('collapsed') === true) {
| |
| $(this).data('collapsed', false);
| |
| $(this).text('Collapse');
| |
| stillExpanding = true;
| |
| //$topLevelUl.css('background', 'lightgreen');
| |
| $topLevelUl.nextAll('ul').each(deepExpand);
| |
| } else {
| |
| $(this).data('collapsed', true);
| |
| $(this).text('Expand');
| |
| stillCollapsing = true;
| |
| //$topLevelUl.css('background', 'pink');
| |
| $topLevelUl.nextAll('ul').each(deepCollapse);
| |
| }
| |
| }
| |
| });
| |