/*jshint browser:true, jquery:true, unused:false */ /*global prettyPrint:false */ (function($) { $(function() { var $t, t, v, animating, clicked, cleanupCode = function(code) { return code.replace(/([<>\"\'\t\n]|…)/g, function(m) { return { '<' : '<', '>' : '>', "'" : ''', '"' : '"', '\t': ' ', '\n': '
', // needed for IE '…' : '&#133;' // pager custom controls ellipsis }[m];}); }; $('a.external').each(function() {this.target = '_new';}); // get javascript source if ($('#js').length) { $('#javascript pre').addClass('mod').html( cleanupCode( $('#js').html() ) ); } if ($('#js2').length) { $('#javascript2 pre').addClass('mod').html( cleanupCode( $('#js2').html() ) ); } if ($('#css').length) { $('pre.lang-css').not('.locked').addClass('mod').html( cleanupCode( $('#css').html() ) ); } if ($('#demo').length && $('#html pre').length) { $('#html pre').addClass('mod').html( cleanupCode( $('#demo').html() ) ); } // apply to already pre-formatted blocks to add
for IE $('pre.prettyprint:not(.mod)').each(function() { $t = $(this); $t.html( cleanupCode( $t.html() ) ); }); // apply prettyprint in several settimeouts window['PR_SHOULD_USE_CONTINUATION'] = true; if (typeof prettyPrint !== 'undefined') { prettyPrint(); } // hide child rows $('#root .tablesorter-childRow').hide(); // toggle child row content, not hiding the row since we are using rowspan $('#root .toggle').click(function() { $(this).closest('tr').nextUntil('tr:not(.tablesorter-childRow)').toggle(); return false; }); animating = false; clicked = false; $('.collapsible').hide(); $('a.permalink').click(function() { var $el = $(this); setTimeout(function() { if (!animating && !clicked) { animating = true; $el.closest('tr').find('.collapsible').slideToggle(); setTimeout(function() { animating = false; }, 200); } }, 200); return false; }); $('#root .permalink').dblclick(function() { clicked = true; window.location.hash = '#' + $(this).closest('tr')[0].id; showProperty(); setTimeout(function() { clicked = false; }, 500); return false; }); $('.toggleAll, .showAll, .hideAll').click(function() { t = $.trim($(this).text()); // use nextAll to ignore any
or other elements between this link and the table $(this).parent().nextAll('table:first').find('.collapsible')[t](); return false; }); // update version number $t = $('.current-version'); if ($t.length) { $t.html($.tablesorter.version); } // add high visibility tags for newest versions t = $.tablesorter.version.replace(/(v|version|\+)/g, '').split('.'); v = [ parseInt(t[0], 10) || 1, parseInt(t[1], 10) || 0, parseInt(t[2], 10) || 0 ]; $('.version').each(function() { var i; $t = $(this); i = $t.text().replace(/(v|version|\+)/g, '').split('.'); t = [ parseInt(i[0], 10) || 1, parseInt(i[1], 10) || 0, parseInt(i[2], 10) || 0 ]; if (t[0] === v[0] && t[1] >= v[1] - 1 ) { $t.prepend(''+ ($t.hasClass('updated') ? 'Updated' : 'New') + ' '); // updates for current version are brighter if (t[2] <= v[2] - 1) { // new labels for revisions > 1 back are lighter $t.addClass('older'); } } }); $t = $('.accordion'); if ($t.length) { var hashId, hash = window.location.hash; // add accodion ids $t.each(function() { $(this).children('h3').each(function(i) { var txt = $(this).find('a').text().toLowerCase().replace(/[-:()\"]/g,'').replace(/[\s+\/]/g,'_'); this.id = txt; if (hash && txt === hash.slice(1)) { hashId = i; } }); }); // set up accordions $t.each(function() { var $this = $(this); $this.accordion({ active: $this.hasClass('start-closed') ? false : hashId, animate: false, heightStyle: 'content', collapsible: true, create: function() { $this.children('h3').each(function(i) { this.id = $(this).find('a').text().toLowerCase().replace(/[-:()\"]/g,'').replace(/[\s+\/]/g,'_'); $(this).before(''); }); $this.find('.accordion-link').click(function() { $this.accordion( 'option', 'active', $(this).data('index') ); }); }, activate: function(e, ui) { // refresh zebra widget when rows are visible ui.newPanel.find('table').trigger('applyWidgets'); var $opt = ui.newPanel.find('table.options'); // options tables are hidden, so colgroup won't find any visible columns to get widths if ( $opt.length && $opt[0].config ) { $.tablesorter.fixColumnWidth( $opt ); } } }); openAccordion( hash, $this ); }); $t.find('table.options').not('.tablesorter-jui').tablesorter({ widthFixed: true, widgets: ['stickyHeaders'] }); $('.intlink').click(function() { openAccordion( $(this).attr('href') ); }); } }); function openAccordion( hash, $accordion ) { // hash is not a jQuery selector if ( /[=,]/.test(hash) ) { return false; } var t, id, $hash; if ( !$accordion ) { $accordion = $(hash).closest('.accordion'); } $hash = $accordion.find(hash); if ( $hash.length ) { if ( $hash.hasClass('ui-accordion-header') && !$hash.hasClass('ui-accordion-header-active') ) { $hash.click(); // open parent accordion of nested accordion } else if ( !$accordion.children(hash).length ) { // div should have an id of ui-accordion-#-panel-# id = $(hash).closest('.ui-accordion-content').attr('id').match(/\d+$/); if (id && id.length) { $accordion.accordion('option', 'active', Number(id[0]) - 1); } } // open table row of nested accordion if ( ($accordion.find(hash).closest('tr').attr('id') || '') !== '') { t = $accordion.find(hash).closest('tr'); t.find('.collapsible').show(); if (t.closest('table').hasClass('hasStickyHeaders')) { setTimeout(function() { window.scrollTo( 0, t.offset().top - t.parents('table')[0].config.widgetOptions.$sticky.outerHeight() ); }, 200); } } } } function showProperty() { var prop, $t, wo, stickyHt, h = window.location.hash; if (h && !/[=,]/.test(h)) { prop = $(h); if (prop.length && !/h3|a|table/i.test(prop[0].nodeName)) { prop.find('.collapsible').show(); if (h === '#csschildrow') { $('#root .tablesorter-childRow').show(); } // move below sticky header; added delay as there could be some lag setTimeout(function() { $t = prop.closest('table'); if ($t.length && $t[0].config) { wo = $t[0].config.widgetOptions; if ( wo.$sticky ) { stickyHt = wo.$sticky.outerHeight(); h = ( wo.$sticky ? wo.$sticky.height() : '' ) || $t.hasClass('hasStickHeaders') ? stickyHt : 0; if ($t.hasClass('options') || $t.hasClass('api')) { window.scrollTo( 0, prop.offset().top - h ); } } } }, 200); } } } // update stickyHeader when menu closes $('#main-nav-check').bind('change', function() { setTimeout(function() { $(window).scroll(); }, 350); // transition animation 300ms }); $(window).bind('load', function() { if ($('#root').length) { $(window).bind('hashchange', function() { showProperty(); }); showProperty(); } }); // append hidden parsed value to cell // used by feet-inch-fraction & metric parser demos window.addParsedValues = function($t, cols, format) { var r, val, $r = $t.find('tbody tr'), c = $t[0].config.cache[0].normalized; $r.each(function(i) { r = this; $.each(cols, function(v,j) { val = format ? format(c[i][j]) : c[i][j]; if (val !== '') { r.cells[j].innerHTML += ' '; } }); }); $('.toggleparsedvalue').bind('click', function() { $('.val').toggleClass('hidden'); return false; }); }; })(jQuery);