$(document).ready(function() { // ua detection if ($.browser.mozilla) { $('body').addClass('ff'); } else if ($.browser.webkit) { $('body').addClass('webkit'); } else if ($.browser.msie) { $('body').addClass('ie'); if ($.browser.version == "7.0") { $('body').addClass('ie7'); } else if ($.browser.version == "8.0") { $('body').addClass('ie8'); } } if ($('#minibutton-new-page').length) { $('#minibutton-new-page').removeClass('jaws'); $('#minibutton-new-page').click(function(e) { e.preventDefault(); $.GollumDialog.init({ title: 'Create New Page', fields: [ { id: 'name', name: 'Page Name', type: 'text' } ], OK: function( res ) { var n = 'New Page'; if ( res['name'] ) var n = res['name']; n = encodeURIComponent( n ); window.location = $('#minibutton-new-page').attr('data-url') + '/' + n; } }); }); } if ($('#wiki-wrapper').hasClass('history')) { $('#wiki-history td.checkbox input').each(function() { $(this).click(highlightChecked); if ( $(this).is(':checked') ) { nodeSelector.checkNode($(this)); } }); if ($('.history a.action-compare-revision').length) { $('.history a.action-compare-revision').click(function() { $("#version-form").submit(); }); } } if ($('#gollum-searchbar a#search-submit').length) { $.GollumPlaceholder.add($('#gollum-searchbar #search-query')); $('#gollum-searchbar a#search-submit').click(function(e) { e.preventDefault(); $('#gollum-searchbar #gollum-search-form')[0].submit(); }); $('#gollum-searchbar #gollum-search-form').submit(function(e) { $.GollumPlaceholder.clearAll(); $(this).unbind('submit'); $(this).submit(); }); } if ($('#gollum-revert-form').length && $('.gollum-revert-button').length ) { $('a.gollum-revert-button').click(function(e) { e.preventDefault(); $('#gollum-revert-form').submit(); }); } }); var nodeSelector = { node1: null, node2: null, selectNodeRange: function( n1, n2 ) { if ( nodeSelector.node1 && nodeSelector.node2 ) { $('#wiki-history td.selected').removeClass('selected'); nodeSelector.node1.addClass('selected'); nodeSelector.node2.addClass('selected'); // swap the nodes around if they went in reverse if ( nodeSelector.nodeComesAfter( nodeSelector.node1, nodeSelector.node2 ) ) { var n = nodeSelector.node1; nodeSelector.node1 = nodeSelector.node2; nodeSelector.node2 = n; } var s = true; var $nextNode = nodeSelector.node1.next(); while ( $nextNode ) { $nextNode.addClass('selected'); if ( $nextNode[0] == nodeSelector.node2[0] ) { break; } $nextNode = $nextNode.next(); } } }, nodeComesAfter: function ( n1, n2 ) { var s = false; $(n1).prevAll().each(function() { if ( $(this)[0] == $(n2)[0] ) { s = true; } }); return s; }, checkNode: function( nodeCheckbox ) { var $nodeCheckbox = nodeCheckbox; var $node = $(nodeCheckbox).parent().parent(); // if we're unchecking if ( !$nodeCheckbox.is(':checked') ) { // remove the range, since we're breaking it $('#wiki-history tr.selected').each(function() { if ( $(this).find('td.checkbox input').is(':checked') ) { return; } $(this).removeClass('selected'); }); // no longer track this if ( $node[0] == nodeSelector.node1[0] ) { nodeSelector.node1 = null; if ( nodeSelector.node2 ) { nodeSelector.node1 = nodeSelector.node2; nodeSelector.node2 = null; } } else if ( $node[0] == nodeSelector.node2[0] ) { nodeSelector.node2 = null; } } else { if ( !nodeSelector.node1 ) { nodeSelector.node1 = $node; nodeSelector.node1.addClass('selected'); } else if ( !nodeSelector.node2 ) { // okay, we don't have a node 2 but have a node1 nodeSelector.node2 = $node; nodeSelector.node2.addClass('selected'); nodeSelector.selectNodeRange( nodeSelector.node1, nodeSelector.node2 ); } else { // we have two selected already $nodeCheckbox[0].checked = false; } } } }; function highlightOn() { $(this).parent().parent().animate({ backgroundColor: '#ffffea', duration: 400 }); } function highlightOff() { var color = '#ebf2f6'; if ($(this).parent().parent().hasClass('alt-row')) { color = '#f3f7fa'; } $(this).parent().parent().animate({ backgroundColor: color, duration: 400 }); } function highlightChecked() { nodeSelector.checkNode($(this)); } function initMathJax() { }