135 lines
4.0 KiB
JavaScript
135 lines
4.0 KiB
JavaScript
|
$(function () {
|
||
|
'use strict';
|
||
|
|
||
|
var pagePath = document.location.pathname.substring(document.location.pathname.lastIndexOf("/") + 1);
|
||
|
|
||
|
// select current page in sidenav and set up prev/next links if they exist
|
||
|
var $selNavLink = $('#sidebar').find('a[href="' + pagePath + '"]');
|
||
|
if ($selNavLink.length) {
|
||
|
//$selListItem = $selNavLink.closest('li');
|
||
|
|
||
|
$selNavLink.addClass('currentItem');
|
||
|
}
|
||
|
|
||
|
if (window.addEventListener) window.addEventListener('load', loadCallback, true);
|
||
|
else window.attachEvent('load', loadCallback, true);
|
||
|
|
||
|
function loadCallback(evt) {
|
||
|
var form = document.getElementById("searchbox");
|
||
|
|
||
|
if (form) {
|
||
|
var input = form.query;
|
||
|
form.onsubmit = function (evt) {
|
||
|
var query = input.value;
|
||
|
if (query) {
|
||
|
input.value = "";
|
||
|
input.blur();
|
||
|
var url = "https://www.google.com/search?q=" + encodeURIComponent("site:ace.ajax.org" + " " + query);
|
||
|
window.open(url);
|
||
|
}
|
||
|
return false;
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// init search
|
||
|
$('#search')
|
||
|
// prevent from form submit
|
||
|
.on('submit', function () {
|
||
|
return false;
|
||
|
}).find('input');
|
||
|
});
|
||
|
|
||
|
function ux() {
|
||
|
var d = 'a.menu, .dropdown-toggle'
|
||
|
|
||
|
function clearMenus() {
|
||
|
$(d).parent('li').each(function () {
|
||
|
$(this).removeClass('open')
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var s, sx;
|
||
|
|
||
|
// scrolling offset calculation via www.quirksmode.org
|
||
|
if (window.pageYOffset || window.pageXOffset) {
|
||
|
s = window.pageYOffset;
|
||
|
sx = window.pageXOffset;
|
||
|
}
|
||
|
else if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)) {
|
||
|
s = document.documentElement.scrollTop;
|
||
|
sx = document.documentElement.scrollLeft;
|
||
|
}
|
||
|
else if (document.body) {
|
||
|
s = document.body.scrollTop;
|
||
|
sx = document.body.scrollLeft;
|
||
|
}
|
||
|
|
||
|
if (document.documentElement.offsetWidth < 1010) {
|
||
|
if (sx <= 0) sx = 0;
|
||
|
else if (sx + document.documentElement.offsetWidth > 1010) sx = 1010 - document.documentElement.offsetWidth;
|
||
|
}
|
||
|
else sx = 0;
|
||
|
|
||
|
$('span.methodClicker, article.article, i.methodClicker').each(function () {
|
||
|
var a = $(this);
|
||
|
var constructorPos = a.attr("id").indexOf("new ");
|
||
|
|
||
|
var objName = a.attr("id");
|
||
|
if (constructorPos >= 0) {
|
||
|
objName = objName.substring(constructorPos + 4);
|
||
|
objName += ".new";
|
||
|
}
|
||
|
|
||
|
a.attr("id", objName);
|
||
|
});
|
||
|
|
||
|
function showMethodContent() {
|
||
|
var locationHash = location.hash.replace(/^#/, '').replace(/\./g, '\\.');
|
||
|
var equalsPos = location.hash.indexOf("=");
|
||
|
|
||
|
if (equalsPos >=0) {
|
||
|
locationHash = locationHash.substring(0, location.hash.indexOf("="));
|
||
|
}
|
||
|
|
||
|
var $clickerEl = $('span#' + locationHash);
|
||
|
if ($clickerEl.length > 0 && $clickerEl.hasClass('methodClicker')) {
|
||
|
var p = $clickerEl.parent();
|
||
|
p[0].force = true;
|
||
|
p.trigger('click');
|
||
|
p[0].force = false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (location.hash.indexOf("section") >= 1) {
|
||
|
showMethodContent();
|
||
|
var data = location.hash;
|
||
|
scrollTo(null, data.substr(1));
|
||
|
}
|
||
|
|
||
|
window.onhashchange = function () {
|
||
|
showMethodContent();
|
||
|
}
|
||
|
};
|
||
|
|
||
|
function scrollTo(el, data) {
|
||
|
if (!data) {
|
||
|
data = el.getAttribute("data-id");
|
||
|
//location.hash = data;
|
||
|
}
|
||
|
var el = $("span#" + data.replace(/\./g, "\\."))[0];
|
||
|
if (!el) return;
|
||
|
|
||
|
var article = $(el).closest('.article')[0];
|
||
|
|
||
|
var top = article.offsetTop - 100;
|
||
|
|
||
|
if (document.body.scrollTop > top || document.body.scrollTop != top && document.body.scrollTop + (window.innerHeight || document.documentElement.offsetHeight) < top + article.offsetHeight) {
|
||
|
$('body').animate({
|
||
|
scrollTop: top
|
||
|
}, {
|
||
|
duration: 200,
|
||
|
easing: "swing"
|
||
|
});
|
||
|
}
|
||
|
}
|