1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
"use strict";
(function($) {
swfobject.registerObject("player", "9.0.98", "videos/expressInstall.swf");
function toKey(href) {
var lnk = "__savedContent_" + href.replace(/\//g, '_');
if (lnk.substring(lnk.length - 5) === ".html") lnk = lnk.substring(0, lnk.length - 5);
return lnk;
}
function captureLinkClick() {
var self = $(this);
if (self.data("clc")) return;
var href = self.attr("href");
self.data("clc", true);
if (!href || href.substr(0, 4) === "http" || href.substr(href.length - 4, 4) === ".xml") return;
self.on("click", function(evt) {
evt.preventDefault();
var key = toKey(window.location.pathname);
if ($("#" + key).length < 1) {
var d = $("<div />").attr("id", key).append($("#main-section").contents()).hide();
$("body").append(d);
}
History.pushState({urlPath: href}, self.text(), href);
});
}
function ajaxFeaturePages() {
if (!History.enabled) return;
History.replaceState({urlPath: window.location.pathname}, $("title").text(), History.getState().urlpath);
$("a").each(captureLinkClick);
$(window).on("statechange", function() {
var hs = History.getState();
var u = hs.data.urlPath;
if (u === "/" || u === "") u = "/main.html";
if (u.substring(u.length - 5) !== ".html") u += ".html";
if (u.substring(u.length - 8) === "all.html") u = u.substring(0, u.length - 8) + "index.html";
var key = toKey(u);
var sc = $("#" + key);
if (sc.length > 0) {
var a = $("#main-section");
sc.show().attr("id", "main-section").attr("class", "container-fluid main-section");
a.replaceWith(sc);
} else {
$.ajax({
url: u,
success: function(response) {
var x = '<div class="container-fluid main-section" id="main-section">';
var y = '<footer';
var start = response.indexOf(x);
var end = response.indexOf(y);
var newH = $(response.substr(start, end - start));
$("#main-section").replaceWith(newH);
$("a").each(captureLinkClick);
}
});
}
});
}
$(ajaxFeaturePages);
})($);
|