;(function($) { $(document).ready(function() { var switched = false; var updateTables = function() { if (($(window).width() < 540) && !switched ){ switched = true; $("table").each(function(i, element) { splitTable($(element)); }); return true; } else if (switched && ($(window).width() > 540)) { switched = false; $("table").each(function(i, element) { unsplitTable($(element)); }); } }; $(window).load(updateTables); $(window).on("redraw",function() { switched = false; updateTables(); }); // An event to listen for $(window).on("resize", updateTables); function splitTable(original) { original.wrap("
"); var copy = original.clone(); copy.find("td:not(:first-child), th:not(:first-child)").css("display", "none"); copy.removeClass("responsive"); original.closest(".table-wrapper").append(copy); copy.wrap("
"); original.wrap("
"); setCellHeights(original, copy); } function unsplitTable(original) { original.closest(".table-wrapper").find(".pinned").remove(); original.unwrap(); original.unwrap(); } function setCellHeights(original, copy) { var tr = original.find('tr'), tr_copy = copy.find('tr'), heights = []; tr.each(function (index) { var self = $(this), tx = self.find('th, td'); tx.each(function () { var height = $(this).outerHeight(true); heights[index] = heights[index] || 0; if (height > heights[index]) heights[index] = height; }); }); tr_copy.each(function (index) { $(this).height(heights[index]); }); } /** ----------------------------------------------- * TABLE OF CONTENTS * * Transform a #table-of-contents div to a nested list */ if($("#table-contents-holder").length > 0) { var toc = '
' + '

Table of contents

    '; // Remove existing anchor redirection in the url var pageURL = window.location.href.replace(/#[a-zA-Z0-9\-\_]*/g, ''); var itemCount = 0; $('#content h1[id], #content h2[id], #content h3[id], #content h4[id]').each(function(i) { var current = $(this); var tagName = current.prop("tagName"); if(typeof tagName == "String") tagName = tagName.toLowerCase(); itemCount++; toc += '
  • ' + current.html() + '
  • '; }); // if no items in the table of contents, don't show anything if(itemCount == 0) return false; toc += '
'; $('#table-contents-holder').prepend(toc); // Toggle the TOC $('#table-of-contents').attr('href', 'javascript:void()').toggle( function() { $("#table-of-contents ul").animate({'height':'show'}, 200, function(){$('#table-of-contents h4 span').html('▲');}) }, function() { $("#table-of-contents ul").animate({'height':'hide'}, 200, function(){$('#table-of-contents h4 span').html('▼');}) } ); // Make sure clicking a link won't toggle the TOC $("#table-of-contents li a").click(function (e) { e.stopPropagation(); }); } /** --------------------------------------------- * HEADING ANCHOR LINKS * * Automatically adds anchor links to headings that have IDs */ var url = window.location.href; $("#content h1[id], #content h2[id], #content h3[id], #content h4[id], #content h5[id], #content h6[id]").each(function() { var link = ''; $(this).append(' ' + link); }); $("h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]").mouseenter(function() { $(this).addClass('hover'); }); $("h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]").mouseleave(function() { $(this).removeClass('hover'); }); $(".search input").live("keyup", function(e) { clearTimeout($.data(this, 'timer')); var string = $(this).val(); var self = $(this); if (string == '') { $(".search .autocomplete-results").hide(); } else { var container; if($(this).siblings('.autocomplete-results').length == 0) { container = $("
"); $.each(results, function(i, elem) { list.append( $("
  • ") .append( $("").attr('href', elem.link).text(elem.title) ).append( elem.path ) ); }); container.append(list); } else { container.hide().removeClass('loading'); } } ); } return false; }, 100)); }; }); /** --------------------------------------------- * LANGAUGE SELECTER * * Hide the change button and do it onclick */ $("#Form_LanguageForm .Actions").hide(); $("#Form_LanguageForm select").change(function() { $("#Form_LanguageForm").submit(); }); /** --------------------------------------------- * SYNTAX HIGHLIGHTER * * As the Markdown parser now uses the GFM structure (```yml) this does * not work with SyntaxHighlighter. The below translates the GFM output * to one SyntaxHighter can use */ $("pre").each(function(i, elem) { var code = $(elem).find('code[class^=language]'); if(code.length > 0) { var brush = code.attr('class').replace('language-', ''); $(elem).attr('class', 'prettyprint lang-' + brush); // $(elem).html(code.html()); } }); $('.menu-toggle').on('click', function (e) { e.preventDefault(); var left = $('#sidebar').is('.visible') ? -270 : 0; $('#sidebar').animate({ left: left}, 'fast', function() { $(this).toggleClass('visible'); }); }) }); })(jQuery);