2013-06-16 16:08:47 +03:00
|
|
|
var templatePage, templateBookDetail, templateMain, currentData;
|
2013-06-15 09:27:33 +03:00
|
|
|
|
2013-06-16 08:50:14 +03:00
|
|
|
var isEink = /Kobo|Kindle|EBRD1101/i.test(navigator.userAgent);
|
|
|
|
|
|
|
|
function fancyBoxObject (title, type) {
|
|
|
|
var out = { prevEffect : 'none', nextEffect : 'none' };
|
|
|
|
if (isEink) {
|
|
|
|
out ["openEffect"] = 'none';
|
|
|
|
out ["closeEffect"] = 'none';
|
|
|
|
out ["helper"] = { overlay : null };
|
|
|
|
}
|
|
|
|
if (title) out ["title"] = title;
|
|
|
|
if (type) out ["type"] = type;
|
|
|
|
return out;
|
|
|
|
}
|
|
|
|
|
2013-06-16 23:01:13 +03:00
|
|
|
function getCurrentOption (option) {
|
|
|
|
return $.cookie (option);
|
|
|
|
}
|
|
|
|
|
2013-06-15 09:03:22 +03:00
|
|
|
function htmlEscape(str) {
|
|
|
|
return String(str)
|
|
|
|
.replace(/&/g, '&')
|
|
|
|
.replace(/"/g, '"')
|
|
|
|
.replace(/'/g, ''')
|
|
|
|
.replace(/</g, '<')
|
|
|
|
.replace(/>/g, '>');
|
2013-06-15 09:27:33 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
function navigateTo (url) {
|
2013-06-15 17:09:37 +03:00
|
|
|
var jsonurl = url.replace ("index", "getJSON");
|
2013-06-15 09:27:33 +03:00
|
|
|
$.getJSON(jsonurl, function(data) {
|
|
|
|
history.pushState(data, "", url);
|
|
|
|
updatePage (data);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
function updatePage (data) {
|
2013-06-16 16:21:21 +03:00
|
|
|
data ["i18n"] = currentData ["i18n"];
|
2013-06-16 16:08:47 +03:00
|
|
|
currentData = data;
|
|
|
|
var result = templatePage (data);
|
2013-06-15 09:27:33 +03:00
|
|
|
document.title = data.title;
|
2013-06-16 23:14:21 +03:00
|
|
|
$("body").html (result);
|
2013-06-15 09:27:33 +03:00
|
|
|
|
2013-06-16 16:08:47 +03:00
|
|
|
if ($.cookie('toolbar') == 1) $("#tool").show ();
|
|
|
|
|
2013-06-15 09:27:33 +03:00
|
|
|
ajaxifyLinks ();
|
2013-06-15 17:09:37 +03:00
|
|
|
|
2013-06-16 23:01:13 +03:00
|
|
|
$("#sort").click(function(){
|
|
|
|
$('.books').sortElements(function(a, b){
|
|
|
|
var test = 1;
|
|
|
|
if ($("#sortorder").val() == "desc")
|
|
|
|
{
|
|
|
|
test = -1;
|
|
|
|
}
|
|
|
|
return $(a).find ("." + $("#sortchoice").val()).text() > $(b).find ("." + $("#sortchoice").val()).text() ? test : -test;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2013-06-16 16:08:47 +03:00
|
|
|
$(".headright").click(function(){
|
|
|
|
if ($("#tool").is(":hidden")) {
|
|
|
|
$("#tool").slideDown("slow");
|
|
|
|
$.cookie('toolbar', '1');
|
|
|
|
} else {
|
|
|
|
$("#tool").slideUp();
|
|
|
|
$.removeCookie('toolbar');
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2013-06-16 23:01:13 +03:00
|
|
|
if (getCurrentOption ("use_fancyapps") == 1) {
|
|
|
|
$(".fancydetail").click(function(event){
|
|
|
|
event.preventDefault();
|
|
|
|
var url = $(this).attr("href");
|
|
|
|
var jsonurl = url.replace ("bookdetail", "getJSON");
|
|
|
|
$.getJSON(jsonurl, function(data) {
|
|
|
|
data ["i18n"] = currentData ["i18n"];
|
|
|
|
var detail = templateBookDetail (data);
|
|
|
|
$.fancybox( {
|
|
|
|
content: detail,
|
|
|
|
autoSize: true
|
|
|
|
});
|
2013-06-15 17:09:37 +03:00
|
|
|
});
|
|
|
|
});
|
2013-06-16 23:01:13 +03:00
|
|
|
|
|
|
|
$(".fancycover").fancybox(fancyBoxObject (null, 'image'));
|
|
|
|
|
|
|
|
$(".fancyabout").fancybox(fancyBoxObject ('COPS ' + currentData.version, 'ajax'));
|
|
|
|
}
|
2013-06-15 17:09:37 +03:00
|
|
|
|
2013-06-15 09:27:33 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
function ajaxifyLinks () {
|
|
|
|
if (history.pushState) {
|
|
|
|
$("a[href^='index']").click (function (event) {
|
|
|
|
event.preventDefault();
|
|
|
|
|
|
|
|
var url = $(this).attr('href');
|
|
|
|
navigateTo (url);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
window.onpopstate = function(event) {
|
|
|
|
updatePage (event.state);
|
|
|
|
};
|
|
|
|
|
2013-06-16 15:47:11 +03:00
|
|
|
$(document).keydown(function(e){
|
2013-06-15 09:27:33 +03:00
|
|
|
if (e.keyCode == 37 && $("#prevLink").length > 0) {
|
|
|
|
navigateTo ($("#prevLink").attr('href'));
|
|
|
|
}
|
|
|
|
if (e.keyCode == 39 && $("#nextLink").length > 0) {
|
|
|
|
navigateTo ($("#nextLink").attr('href'));
|
|
|
|
}
|
|
|
|
});
|