(function() {
var localStorage = {}, sessionStorage = {}; try { localStorage = window.localStorage; } catch (e) { } try { sessionStorage = window.sessionStorage; } catch (e) { }
function createSourceLinks() {
$('.method_details_list .source_code'). before("<span class='showSource'>[<a href='#' class='toggleSource'>View source</a>]</span>"); $('.toggleSource').toggle(function() { $(this).parent().nextAll('.source_code').slideDown(100); $(this).text("Hide source"); }, function() { $(this).parent().nextAll('.source_code').slideUp(100); $(this).text("View source"); });
}
function createDefineLinks() {
var tHeight = 0; $('.defines').after(" <a href='#' class='toggleDefines'>more...</a>"); $('.toggleDefines').toggle(function() { tHeight = $(this).parent().prev().height(); $(this).prev().css('display', 'inline'); $(this).parent().prev().height($(this).parent().height()); $(this).text("(less)"); }, function() { $(this).prev().hide(); $(this).parent().prev().height(tHeight); $(this).text("more..."); });
}
function createFullTreeLinks() {
var tHeight = 0; $('.inheritanceTree').toggle(function() { tHeight = $(this).parent().prev().height(); $(this).parent().toggleClass('showAll'); $(this).text("(hide)"); $(this).parent().prev().height($(this).parent().height()); }, function() { $(this).parent().toggleClass('showAll'); $(this).parent().prev().height(tHeight); $(this).text("show all"); });
}
function searchFrameButtons() {
$('.full_list_link').click(function() { toggleSearchFrame(this, $(this).attr('href')); return false; }); window.addEventListener('message', function(e) { if (e.data === 'navEscape') { $('#nav').slideUp(100); $('#search a').removeClass('active inactive'); $(window).focus(); } }); $(window).resize(function() { if ($('#search:visible').length === 0) { $('#nav').removeAttr('style'); $('#search a').removeClass('active inactive'); $(window).focus(); } });
}
function toggleSearchFrame(id, link) {
var frame = $('#nav'); $('#search a').removeClass('active').addClass('inactive'); if (frame.attr('src') === link && frame.css('display') !== "none") { frame.slideUp(100); $('#search a').removeClass('active inactive'); } else { $(id).addClass('active').removeClass('inactive'); if (frame.attr('src') !== link) frame.attr('src', link); frame.slideDown(100); }
}
function linkSummaries() {
$('.summary_signature').click(function() { document.location = $(this).find('a').attr('href'); });
}
function summaryToggle() {
$('.summary_toggle').click(function(e) { e.preventDefault(); localStorage.summaryCollapsed = $(this).text(); $('.summary_toggle').each(function() { $(this).text($(this).text() == "collapse" ? "expand" : "collapse"); var next = $(this).parent().parent().nextAll('ul.summary').first(); if (next.hasClass('compact')) { next.toggle(); next.nextAll('ul.summary').first().toggle(); } else if (next.hasClass('summary')) { var list = $('<ul class="summary compact" />'); list.html(next.html()); list.find('.summary_desc, .note').remove(); list.find('a').each(function() { $(this).html($(this).find('strong').html()); $(this).parent().html($(this)[0].outerHTML); }); next.before(list); next.toggle(); } }); return false; }); if (localStorage.summaryCollapsed == "collapse") { $('.summary_toggle').first().click(); } else { localStorage.summaryCollapsed = "expand"; }
}
function generateTOC() {
if ($('#filecontents').length === 0) return; var _toc = $('<ol class="top"></ol>'); var show = false; var toc = _toc; var counter = 0; var tags = ['h2', 'h3', 'h4', 'h5', 'h6']; var i; if ($('#filecontents h1').length > 1) tags.unshift('h1'); for (i = 0; i < tags.length; i++) { tags[i] = '#filecontents ' + tags[i]; } var lastTag = parseInt(tags[0][1], 10); $(tags.join(', ')).each(function() { if ($(this).parents('.method_details .docstring').length != 0) return; if (this.id == "filecontents") return; show = true; var thisTag = parseInt(this.tagName[1], 10); if (this.id.length === 0) { var proposedId = $(this).attr('toc-id'); if (typeof(proposedId) != "undefined") this.id = proposedId; else { var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_'); if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; } this.id = proposedId; } } if (thisTag > lastTag) { for (i = 0; i < thisTag - lastTag; i++) { var tmp = $('<ol/>'); toc.append(tmp); toc = tmp; } } if (thisTag < lastTag) { for (i = 0; i < lastTag - thisTag; i++) toc = toc.parent(); } var title = $(this).attr('toc-title'); if (typeof(title) == "undefined") title = $(this).text(); toc.append('<li><a href="#' + this.id + '">' + title + '</a></li>'); lastTag = thisTag; }); if (!show) return; html = '<div id="toc"><p class="title hide_toc"><a href="#"><strong>Table of Contents</strong></a></p></div>'; $('#content').prepend(html); $('#toc').append(_toc); $('#toc .hide_toc').toggle(function() { $('#toc .top').slideUp('fast'); $('#toc').toggleClass('hidden'); $('#toc .title small').toggle(); }, function() { $('#toc .top').slideDown('fast'); $('#toc').toggleClass('hidden'); $('#toc .title small').toggle(); });
}
function navResizeFn(e) {
if (e.which !== 1) { navResizeFnStop(); return; } sessionStorage.navWidth = e.pageX.toString(); $('.nav_wrap').css('width', e.pageX); $('.nav_wrap').css('-ms-flex', 'inherit');
}
function navResizeFnStop() {
$(window).unbind('mousemove', navResizeFn); window.removeEventListener('message', navMessageFn, false);
}
function navMessageFn(e) {
if (e.data.action === 'mousemove') navResizeFn(e.data.event); if (e.data.action === 'mouseup') navResizeFnStop();
}
function navResizer() {
$('#resizer').mousedown(function(e) { e.preventDefault(); $(window).mousemove(navResizeFn); window.addEventListener('message', navMessageFn, false); }); $(window).mouseup(navResizeFnStop); if (sessionStorage.navWidth) { navResizeFn({which: 1, pageX: parseInt(sessionStorage.navWidth, 10)}); }
}
function navExpander() {
var done = false, timer = setTimeout(postMessage, 500); function postMessage() { if (done) return; clearTimeout(timer); var opts = { action: 'expand', path: pathId }; document.getElementById('nav').contentWindow.postMessage(opts, '*'); done = true; } window.addEventListener('message', function(event) { if (event.data === 'navReady') postMessage(); return false; }, false);
}
function mainFocus() {
var hash = window.location.hash; if (hash !== '' && $(hash)[0]) { $(hash)[0].scrollIntoView(); } setTimeout(function() { $('#main').focus(); }, 10);
}
$(document).ready(function() {
navResizer(); navExpander(); createSourceLinks(); createDefineLinks(); createFullTreeLinks(); searchFrameButtons(); linkSummaries(); summaryToggle(); generateTOC(); mainFocus();
});
})();