/* Settings now in settings.js, so there's no need to edit this file. */ /* Saving Ubooquity preferences to sessionStorage. */ if(sessionStorage.getItem("settings") === null){ var currentPath = location.href; if(currentPath.indexOf("/comics/") != -1){ currentPath=currentPath.split("/comics/")[0]; }else if(currentPath.indexOf("/books/") != -1){ currentPath=currentPath.split("/books/")[0]; }else if(currentPath.indexOf("/files/") != -1){ currentPath=currentPath.split("/files/")[0]; }else if(currentPath.indexOf("/theme/") != -1){ currentPath=currentPath.split("/theme/")[0]; }else if(currentPath.substring(currentPath.length-1) == "/"){ currentPath=currentPath.slice(0, -1); } sessionStorage.settings = getPage(currentPath+'/public-api/preferences'); } var settingsJSON = JSON.parse(sessionStorage.settings); var proxyPrefix = ""; if(settingsJSON['reverseProxyPrefix'].length > 0){ proxyPrefix = "/"+settingsJSON['reverseProxyPrefix']; } var itemsPerPage = settingsJSON['comicsPaginationNumber']; var bookmarkLocation = "Ubooquity_Bookmarks2"; var Bookmarks = []; var cacheLocation = "Ubooquity_IDcache2"; var IDcache = {"books": [], "comics": []}; var themeVariant; var themeVariants = ['dark-a', 'dark-b', 'dark-c']; var flipNumName; var readSeriesJSON; var usePublicationRun; var hideStoryTitles; var uncommaAuthors; var useBookTitles; var useCalibreMetadata; var showRecommended; var recommendedTitle; var disablePublisherFilter; var weeklyID; /* Load theme settings from settings.js. */ loadScript(proxyPrefix+"/theme/settings.js", function(){ if(themeVariant === null){ themeVariant='default'; } if(flipNumName === null){ flipNumName=false; } if(readSeriesJSON === null){ readSeriesJSON=true; } if(usePublicationRun === null){ usePublicationRun=true; } if(hideStoryTitles == null){ hideStoryTitles=true; } if(uncommaAuthors === null){ uncommaAuthors=false; } if(useBookTitles === null){ useBookTitles=false; } if(useCalibreMetadata === null){ useCalibreMetadata=false; } if(showRecommended === null){ showRecommended=false; } if(recommendedTitle === null){ recommendedTitle="Recommended for You"; } if(disablePublisherFilter === null){ disablePublisherFilter = false; } if(weeklyID === null){ weeklyID = null; } if(typeof Storage !== "undefined"){ if (localStorage.getItem('UbooquityThemeVariant') !== null) { themeVariant=localStorage.getItem('UbooquityThemeVariant'); }else{ localStorage.setItem('UbooquityThemeVariant', 'default'); } } }); /* Load JQuery and JQuery UI, then rebuild pages. */ loadScript(proxyPrefix+"/theme/js/jquery-3.6.0.min.js", function(){ loadScript(proxyPrefix+"/theme/js/jquery-ui.min.js", function(){ $.ajaxSetup({ cache: false }); $('head').append(''); if(typeof Storage !== "undefined"){ if (localStorage.getItem(bookmarkLocation) !== null) { Bookmarks=JSON.parse(localStorage.getItem(bookmarkLocation)); }else{ localStorage.setItem(bookmarkLocation,JSON.stringify([])); } if (localStorage.getItem(cacheLocation) !== null) { IDcache=JSON.parse(localStorage.getItem(cacheLocation)); }else{ localStorage.setItem(cacheLocation,JSON.stringify({"books": [], "comics": []})); } } if($('#loginform').length === 0){ /* Homepage */ if($('head link:eq(0)').attr('href').split('/').pop() == "homepage.css"){ //if(location.pathname == proxyPrefix+'/'){ $('#group').hide(); $('

Quick Links

').prependTo('body'); if(settingsJSON['isComicsProviderEnabled']){ $('#latest-comics').insertBefore('#comics'); $(makeSliderList('newComics','Latest Comics',proxyPrefix+'/comics/?latest=true')).css("zIndex",5).appendTo('.main_homepage_content'); if(storyArcID){ $('Story Arcs').insertAfter('#comics'); } if(weeklyID){ $('Release Date').insertAfter('#comics'); } $('
').load(proxyPrefix+'/comics/?latest=true'+" #group", function(){ $(this).find('.cellcontainer:lt('+homepageIssues+')').appendTo('#newComics .list-content'); if($('#newComics .cellcontainer').length){ initializeControls('newComics'); homepageWrap('newComics'); }else{ $('#newComics').remove(); } if(showRandom){ $('
').load(proxyPrefix+'/comics/?random=true'+" #group", function(){ $(makeSliderList('randomComics','Random Comics',proxyPrefix+'/comics/?random=true')).css("zIndex",4).insertAfter('#newComics'); $(this).find('.cellcontainer:lt('+homepageIssues+')').appendTo('#randomComics .list-content'); if($('#randomComics .cellcontainer').length){ initializeControls('randomComics'); homepageWrap('randomComics'); }else{ $('#randomComics').remove(); } }); } }); $('
').insertAfter('#group'); } if(settingsJSON['isBooksProviderEnabled']){ $('#latest-books').insertBefore('#books'); $(makeSliderList('newBooks','Latest Books',proxyPrefix+'/books/?latest=true')).css("zIndex",3).appendTo('.main_homepage_content'); if(seriesID){ $('Series').insertAfter('#books'); } $('
').load(proxyPrefix+'/books/?latest=true'+" #group", function(){ $(this).find('.cellcontainer:lt('+homepageIssues+')').appendTo('#newBooks .list-content'); if($('#newBooks .cellcontainer').length){ initializeControls('newBooks'); homepageWrap('newBooks'); }else{ $('#newBooks').remove(); } if(showRandom){ $(makeSliderList('randomBooks','Random Books',proxyPrefix+'/books/?random=true')).css("zIndex",2).insertAfter('#newBooks'); $('
').load(proxyPrefix+'/books/?random=true'+" #group", function(){ $(this).find('.cellcontainer:lt('+homepageIssues+')').appendTo('#randomBooks .list-content'); if($('#randomBooks .cellcontainer').length){ initializeControls('randomBooks'); homepageWrap('randomBooks'); }else{ $('#randomBooks').remove(); } }); } }); $('
').insertAfter('#group'); } if((Bookmarks.length > 0)&&(Bookmarks != undefined)){ $(makeSliderList('bookmarks','Bookmarks',proxyPrefix+'/theme/mybooks.htm')).css("zIndex",1).appendTo('.main_homepage_content'); if(Bookmarks.length < homepageIssues){ var bookmarkLimit = Bookmarks.length; }else{ var bookmarkLimit = homepageIssues; } for (i = 0; i < bookmarkLimit; i++) { buildElement(Bookmarks[i][0],Bookmarks[i][1],Bookmarks[i][2],Bookmarks[i][3], i+1, '#bookmarks .list-content'); } initializeControls('bookmarks'); homepageWrap('bookmarks'); } if((showRecommended)&&(typeof sessionStorage.seeComics != "undefined")&&(!typeof sessionStorage.seeBooks != "undefined")){ $.ajax({ url:'theme/recommendations.json', type:'GET', error: function(jqXHR, exception){ if(jqXHR.status == 404) { console.log('The above 404 just means there is no series.json in files/extras (or you do not have access to it), it can be ignored. - ScooterPSU'); }else if(jqXHR.status == 500) { // Figure out better solution for 500's (disable series.json on root links?) }else{ console.error('There is something wrong in the JSON formatting of this series.json. Probably an unescaped quote or special character.'); } }, success: function(data, textStatus, xhr){ if(data.Issues){ $(makeSliderList('recommended',recommendedTitle,proxyPrefix+'/theme/recommendations.htm')).css("zIndex",6).insertBefore('#newComics'); if(data.Issues.length < homepageIssues){ var bookmarkLimit = data.Issues.length; }else{ var bookmarkLimit = homepageIssues; } for (i = 0; i < data.Issues.length; i++) { if(((sessionStorage.seeComics == "true")&&(data.Issues[i].type=="comic"))||((sessionStorage.seeBooks == "true")&&(data.Issues[i].type=="book"))){ buildElement("#","showHidePopupMenu('"+data.Issues[i].type+"details','searchbox','pageselector','settingsbox');load"+data.Issues[i].type.charAt(0).toUpperCase() + data.Issues[i].type.slice(1)+"Details("+data.Issues[i].dbnumber+",'"+ proxyPrefix +"/');return false;",proxyPrefix +"/"+data.Issues[i].type+"s/"+data.Issues[i].dbnumber+"/"+data.Issues[i].comicname+"?cover=true",data.Issues[i].label.substring(4),i,"#recommended .list-content"); } } if($('#recommended .list-content .cellcontainer').length){ homepageWrap('recommended'); initializeControls('recommended'); }else{ $('#recommended').hide(); } } } }); } if((settingsJSON['isFilesProviderEnabled'])&&(audiobookShare)){ $('Audiobooks').insertBefore('#files'); } $("#group a").each(function(){ $(this).wrap('
  • '); $(this).parent().appendTo('#quickLinksUl'); }); $('
    ').insertAfter('#group'); /*< Books or Comics module >*/ }else if(($('head link:eq(0)').attr('href').split('/').pop() == "comics.css")||($('head link:eq(0)').attr('href').split('/').pop() == "books.css")){ /* Get module and book ID */ var locationParts = location.pathname.split('/'); var baseType; if(location.pathname.startsWith(proxyPrefix+'/comics/')){ baseType = "comics"; }else if(location.pathname.startsWith(proxyPrefix+'/books/')){ baseType = "books"; } var myID = 0; /* If multiple base shares exist / No folders (Grouping: None) */ if((location.pathname== proxyPrefix+'/comics/')||(location.pathname== proxyPrefix+'/books/')){ $('
  • ').insertBefore('#group'); if($('.rootlink').length){ var rootLinks = $('.rootlink'); for (i = 0; i < rootLinks.length; i++) { buildElement(rootLinks[i].href,'',rootLinks[i].href+'?cover=true',rootLinks[i].text, i+1, '#group'); } $('.rootlink, br').remove(); }else if($('.cellcontainer').length){ if(location.search == ""){ $('.hinline').text('All '+baseType.charAt(0).toUpperCase()+baseType.slice(1)); }else if(location.search == "?random=true"){ $('.hinline').text('Random '+baseType.charAt(0).toUpperCase()+baseType.slice(1)); }else if(location.search == "?latest=true"){ $('.hinline').text('Latest '+baseType.charAt(0).toUpperCase()+baseType.slice(1)); }else if(location.search.startsWith('?search')){ if($('.searcharrowform').length !== 0){ var searchString = $('.searcharrowform input').attr('value'); if(searchString.endsWith("_")){ searchString = searchString.slice(0, -1) + '.'; if(uncommaAuthors){ searchString = searchString.split(",")[1]+' '+searchString.split(",")[0]; } } $('.hinline').text('Search for "'+searchString+'"'); }else{ $('.hinline').text('Search Results'); } $('#group').addClass('searchPage'); } containerWrap(); } }else{ myID = locationParts[locationParts.indexOf(baseType)+1]; } /*< Only Comics module >*/ if($('head link:eq(0)').attr('href').split('/').pop() == "comics.css"){ /* Publisher page */ if(myID==comicsBaseID){ $('#folderinfo').remove(); $('').insertBefore('#group'); $('').insertBefore('#group'); $('#group').addClass('scriptPage'); containerWrap(); if(featuredPublishers){ $('').insertBefore('#group'); for (i = 0; i < featuredPublishers.length; i++) { addFeatured(featuredPublishers[i], 0); } } if(storyArcID){ hideID(storyArcID); } if(weeklyID){ hideID(weeklyID); } } /* Story Arc pages */ if(storyArcID){ if(myID==storyArcID){ $('').insertBefore('#group'); $('').insertBefore('#group'); $('#group').addClass('scriptPage'); containerWrap('arc'); } } /* Release Date pages */ if(weeklyID){ if(myID==weeklyID){ $('').insertBefore('#group'); $('#group').addClass('scriptPage'); containerWrap('weeks'); } } /*< Only Comics module >*/ /*< Only Books module >*/ }else if($('head link:eq(0)').attr('href').split('/').pop() == "books.css"){ /* Authors page */ if(myID==booksBaseID){ $('').insertBefore('#group'); $('').insertBefore('#group'); $('#group').addClass('scriptPage'); containerWrap('authors'); if(seriesID){ hideSeries(); } } /* Series pages */ if(seriesID){ if(myID==seriesID){ $('').insertBefore('#group'); $('').insertBefore('#group'); $('#group').addClass('scriptPage'); containerWrap('arc'); } } } /**/ /* Add header to #group. */ if((!$('#group header').length)&&(!$('#folderinfo').length)){ $('#group').prepend('

      '); } if(baseType=="comics" && myID==comicsBaseID){ if(featuredPublishers){ $('#group .list-title').text("All Publishers"); }else{ $('#group .list-title').text("Publishers"); } }else if(baseType=="books" && myID==booksBaseID){ $('#group .list-title').text("Authors"); }else if(location.search.startsWith('?search')){ if(baseType=='comics'){ $('#group .list-title').text("Single Issues"); }else if(baseType=='books'){ $('#group .list-title').text("Books"); } }else if($(".thumb a:not([href='#'])").length == 0){ if((baseType=="comics")&&(myID != 0)){ $('#group .list-title').text("Issues"); } } /* Copy #folderinfo to pages 2+. */ if((location.search.indexOf("?index=") != -1)&&(location.search.indexOf("?index=0") == -1)&&(location.search.indexOf("search") == -1)&&(myID != 0)){ $('
      ').load(location.pathname+" #folderinfo", function(){ var type; if($(this).find('#folderinfo').length > 0){ $('#cmx_breadcrumb').remove(); $(this).find('#folderinfo').prependTo('#group'); if($('#folderinfo #cover').length){ $('#publisher, #publisher2').attr('href',$('#arrowup').attr('href')); if($('#folderinfo #publisher2').length){ $("#group").addClass("seriesPage"); }else{ $("#group").addClass("arcPage"); type="arc"; } }else{ $("#group").addClass("publisherPage"); } } containerWrap(type); if($('#group header').length){ $('#group').prepend($('#group header')); } }); } /* If no folder-info, check for series.json */ if(readSeriesJSON){ if((!$('#group #folderinfo').length)&&($('.cellcontainer').length)&&(settingsJSON['enableFolderMetadataDisplay'])&&!($('#group').hasClass('scriptPage'))&&(myID != 0)){ $.ajax({ url:'?folderinfo=series.json', type:'GET', error: function(jqXHR, exception){ if(jqXHR.status == 404) { console.log('The above 404 just means there is no series.json for this page, it can be ignored. - ScooterPSU'); }else if(jqXHR.status == 500) { // Figure out better solution for 500's (disable series.json on root links?) }else{ console.error('There is something wrong in the JSON formatting of this series.json. Probably an unescaped quote or special character.'); } }, success: function(data, textStatus, xhr){ if(data.metadata != undefined){ if ($.isArray(data.metadata)){ var metadata = data.metadata[0]; }else{ var metadata = data.metadata; } var type = metadata.type; $('
      ').insertBefore($('#group')); if(type=="comicSeries"){ $('#group').addClass('seriesPage'); containerWrap(); }else if(type=="comicArc"){ $('#group').addClass('arcPage'); containerWrap('arc'); if(useSimpleArcTemplate){ type = "comicArcSimple"; } }else if(type=="comicChar"){ $('#group').addClass('seriesPage'); containerWrap(); }else if(type=="authorBio"){ $('#group').addClass('authorPage'); containerWrap(); } $('#group').addClass('scriptPage'); $('
      ').load(proxyPrefix+'/theme/templates/'+type+'.html', function(){ $(".headerSection").html($(this).contents().contents()); $('#cover').attr('src','?folderinfo=folder.jpg'); $('#publisher, #publisher2').attr('href', $('#arrowup').attr('href')); if(type=="comicChar"){ if(comicCharHeader === null){ comicCharHeader=false; } if(comicCharHeader){ $('
      ').insertBefore($('.headerSection')); $('#charHeaderImg').attr('src', '?folderinfo=header.jpg'); }else{ $(".headerSection").css('background-image','url(?folderinfo=header.jpg)'); $(".headerSection").addClass('embeddedHeader'); $(".social-links").css('cssText','background-color: rgba(0,0,0,.4) !important'); } $('#group .list-title').text("Series"); } if(type=="authorBio"){ $(".headerSection").addClass('topSection'); } $('#pubImg').attr('src', $('#arrowup').attr('href')+'?folderinfo=folder.jpg'); $('#pubImg').on("error", function(){ var pub = metadata.publisher; $(this).attr('src', '/theme/publishers/'+pub+'.jpg'); $(this).on("error", function(){ $(this).attr('src', proxyPrefix+'/theme/folder.png'); }); }); $('#cover').on("error", function(){ $(this).attr('src', proxyPrefix+'/theme/folder.png'); }); getSeriesJson('?folderinfo=series.json'); if($('.publisherContainer').length){ $(document).ajaxStop(function(){ var curloc = 2 if ($('#cmx_breadcrumb a:eq(0)').length > 0){ var curloc = $('#cmx_breadcrumb a').length - 1; } var publisher = $('#cmx_breadcrumb a:eq('+curloc+')').text(); publisher = publisher.replace('_', ' '); $('.publisher').text(publisher); $('#pubImg').attr('title',publisher); }) } }); } if(data.oneshots != undefined){ if(!$('#oneshots').length){ $('').insertAfter($('#group')); } for (i = 0; i < data.oneshots.length; i++) { $(".cellcontainer:has(.label:contains('"+data.oneshots[i].replace(/'/g,'\\\'')+"'))").appendTo($('#oneshots')); } if($('#oneshots .cellcontainer').length){ $('#oneshots').show(); } } } }); } } /* Story Arc/Series page with json.cbr/json.epub */ if($('.cellcontainer .label:contains("json")').length||(!($('.cellcontainer').length)&&location.search.startsWith('?index'))){ var pageURLparts = location.href.split('/'); if(pageURLparts.indexOf('comics') != -1){ var type = 'comics'; var targetID = pageURLparts[pageURLparts.indexOf('comics')+1]; var grepResult = $.grep(IDcache[type], function(e){ return e.bookID == targetID && e.parent == storyArcID; }); } if(pageURLparts.indexOf('books') != -1){ var type = 'books'; var targetID = pageURLparts[pageURLparts.indexOf('books')+1]; var grepResult = $.grep(IDcache[type], function(e){ return e.bookID == targetID && e.parent == seriesID; }); } if(grepResult.length){ if($('#group .cellcontainer .label:contains("json")').length){ var filename = $('#group .cellcontainer .label:contains("json")').parent().find('img').attr('src').split('?cover=true')[0]; }else{ $('
      ').load(location.pathname+" #group", function(){ var filename = $(this).find('.cellcontainer .label:contains("json")').parent().find('img').attr('src').split('?cover=true')[0]; arcRunner(filename); }); } arcRunner(filename); } } /* Series Pages and Publisher Pages */ if(!($('#group').hasClass('wrapped'))){ if(($('#group').hasClass('seriesPage'))||($('#group').hasClass('publisherPage'))){ containerWrap(); }else if($('#group').hasClass('arcPage')){ containerWrap('arc'); } } /**/ /*< Files and Audiobooks module >*/ }else if($('head link:eq(0)').attr('href').split('/').pop() == "rawfiles.css"){ $('body').contents().wrapAll($('
      ', { id: 'group' })); if((location.href.indexOf("/"+audiobookShare+"/") != -1)&&(audiobookShare)){ $('#cmx_breadcrumb a:eq(0)').text('Audiobooks'); $('#group a').first().remove(); if(location.pathname== proxyPrefix+'/files/'+audiobookShare+'/'){ $('').insertBefore('#group'); $('#group').addClass('scriptPage'); }else{ $('
      ').load("folder-info.html", function( response, status, xhr ) { if (status != "error") { $('#group').prepend('
      '); $('#folderinfo').html($(this)); $('#group #folderinfo').append($('#cmx_breadcrumb')); }else{ console.log('The above 404 just means there is no folder-info.html for this page, it can be ignored. - ScooterPSU'); } }); } if(($('#group a[href$=".mp3"]').length == 0)&&($('#group a[href$=".m4a"]').length == 0)&&($('#group a[href$=".m4b"]').length == 0)){ var rootLinks = $('#group a[href$="/"]'); for (i = 0; i < rootLinks.length; i++) { buildElement(rootLinks[i].href,'',rootLinks[i].href+'folder.jpg',rootLinks[i].text.replace('/', ''), i+1, '#group'); } $('.thumb a img').on("error", function(){ $(this).attr('src', proxyPrefix+'/theme/folder.png'); }); }else{ $('
      ').load(proxyPrefix+"/theme/templates/player.html #audiobooks", function(){ loadScript(proxyPrefix+"/theme/audiobook.js", function(){ loadScript(proxyPrefix+"/theme/js/jsmediatags.min.js", function(){ $('#audioPlayer .controlButton').show(); $('#group').addClass('audiobook'); checkAudio(); if(!autoPlayAudiobooks){ audio.pause(); } if($('#playlist li').length < 22){ var addNum = 22 - $('#playlist li').length; for (i = 0; i < addNum; i++) { $('
    • ').appendTo($('#playlist')); } } }); }); $('head').append(''); $("#group").append($(this).contents().contents()); }) } }else{ $('#group').addClass('filePage'); $('#group a').each(function(){ $(this).wrap('
      '); $(this).parent().appendTo('#group'); if($(this).attr('href').match("/$")){ $(this).text($(this).text().replace('/', '')); $(this).prepend(''); }else if($(this).attr('href').match(".cbz$")||$(this).attr('href').match(".cbr$")){ $(this).prepend(''); }else if($(this).attr('href').match(".png$")||$(this).attr('href').match(".jpg$")||$(this).attr('href').match(".gif$")){ $(this).prepend(''); }else if($(this).attr('href').match(".htm$")||$(this).attr('href').match(".html$")||$(this).attr('href').match(".css$")){ $(this).prepend(''); }else if($(this).attr('href').match(".pdf$")){ $(this).prepend(''); }else if($(this).attr('href').match(".epub$")){ $(this).prepend(''); }else if($(this).attr('href').match("cvinfo$")){ $(this).prepend(''); }else{ $(this).prepend(''); } }); $('#group a img').first().removeClass().addClass('openFolder'); if(audiobookShare){ $('a[href="'+proxyPrefix+'/files/'+audiobookShare+'/"]').parent().remove(); } } $('#group br').remove(); /**/ } }else{ /* Add Register link to login form. */ if(registerLink){ $('body').prepend('Register'); } } /*< All page functions >*/ /* Add breadcrumb navigation. */ if(($('#cmx_breadcrumb').length === 0)&&((location.pathname != proxyPrefix+'/')||($('#loginform').length == 1))&&!($('body').hasClass('noBreadcrumb'))){ $("body").prepend(''); if($('#loginform').length == 0){ if(location.href.indexOf("/files/") != -1){ var pathSplit; if((location.href.indexOf("/files/"+audiobookShare+"/") != -1)&&(audiobookShare)){ $('#cmx_breadcrumb a').text('Audiobooks'); $('#cmx_breadcrumb a').attr('href', '/files/'+audiobookShare+'/'); pathSplit = '/files/'+audiobookShare+'/'; }else{ $('#cmx_breadcrumb a').text('File Browser'); $('#cmx_breadcrumb a').attr('href', '/files/'); pathSplit = '/files/'; } var pathname = location.pathname.split(pathSplit)[1]; var folders = decodeURIComponent(pathname).slice(0,-1).split('/'); var hinlineText = folders.pop(); var pathFolders = ""; for (i = 0; i < folders.length; i++) { pathFolders += encodeURIComponent(folders[i]) + "/"; $('.breadcrumb a:last-of-type').after(' > '+folders[i]+' '); } $('.hinline').text(hinlineText); }else if(location.href.indexOf("/books/") != -1){ $('#cmx_breadcrumb a:eq(0)').text('Books'); $('#cmx_breadcrumb a:eq(0)').attr('href', '/books/'); buildBreadcrumb(location.pathname); if($('#cmx_breadcrumb').find('a[href*="'+seriesID+'"]').length){ containerWrap('arc'); }else{ containerWrap(); } }else if(location.href.indexOf("/comics/") != -1){ $('#cmx_breadcrumb a:eq(0)').text('Comics'); $('#cmx_breadcrumb a:eq(0)').attr('href', '/comics/'); buildBreadcrumb(location.pathname); if($('#cmx_breadcrumb').find('a[href*="'+storyArcID+'"]').length){ containerWrap('arc'); }else if($('#cmx_breadcrumb').find('a[href*="'+weeklyID+'"]').length){ containerWrap('weeks'); $('.hinline').text("Week of " + getWeekRange($('.hinline').text().split('-')[1],$('.hinline').text().split('-')[0])); $('.list-title').text($('.hinline').text()); }else{ containerWrap(); } } }else{ $('.hinline').text('Sign In'); clearUsername(); } fixPaths('#cmx_breadcrumb a','href'); } /* Add and update navigation header. */ if($('.top-navigation').length === 0){ $('
      ').load(proxyPrefix+"/theme/templates/header.html #header", function(){ $("body").prepend($(this).contents()); $(".dropdown").mouseover(function(){ $(this).parent().find("ul").show('blind', 50); }); if(settingsJSON['isUserManagementEnabled']){ if(sessionStorage.getItem("username") === null){ $('
      ').load(proxyPrefix+"/index.html", function(){ var connectedString = $(this).find('#userinfo').text(); sessionStorage.seeComics = Boolean($(this).find('#comics').length==1); sessionStorage.seeBooks = Boolean($(this).find('#books').length==1); settingsJSON['isComicsProviderEnabled'] = Boolean($(this).find('#comics').length==1); settingsJSON['isBooksProviderEnabled'] = Boolean($(this).find('#books').length==1); if(connectedString.indexOf('Connected') == -1){ $('#menuitem_login ul,.books,.booksOnly,.comics,.comicsOnly,.both,.files,#menuitem_browse,#searchForm').remove(); $('.topright-menu').remove(); }else{ sessionStorage.username = connectedString.split("-")[0].split("Connected as ")[1].trim(); $('#username').text(sessionStorage.username); } showHideNav(); }); }else{ showHideNav(); } }else{ sessionStorage.username = defaultUsername; $('#username').text(sessionStorage.username); sessionStorage.seeComics = settingsJSON['isComicsProviderEnabled']; sessionStorage.seeBooks = settingsJSON['isBooksProviderEnabled']; showHideNav(); } }); } /* Reorganize/move page numbers/page arrows so they're in a common element. */ if($('.pagenumber').length > 1){ $("#group").append('
      '); $('#arrowleft10, #searchleft10').text('First'); $('#arrowright10, #searchright10').text('Last'); $('#arrowleft, #searchleft').text('<'); $('#arrowright, #searchright').text('>'); $(".pager").append($('#searchleft10').parent()); $(".pager").append($('#searchleft').parent()); $(".pager").append($('#arrowleft10')); $("#arrowleft10").attr('href', '?index=0'); $(".pager").append($('#arrowleft')); $(".pager").append($('.pagenumber')); $('.pagenumber').hide(); if($('.pagenumber').index($('.currentpagenumber'))==2){ $('.pagenumber').slice(0, 5).show(); }else if($('.pagenumber').index($('.currentpagenumber'))+1==$('.pagenumber').length){ $('.pagenumber').slice(-5).show(); }else{ if($('.pagenumber').index($('.currentpagenumber')) != 0){ $('.pagenumber').eq($('.pagenumber').index($('.currentpagenumber'))-1).show(); }else{ $('.pagenumber').eq($('.pagenumber').index($('.currentpagenumber'))+4).show(); } $('.currentpagenumber').show(); $('.pagenumber').eq($('.pagenumber').index($('.currentpagenumber'))+1).show(); if($('.pagenumber').index($('.currentpagenumber')) > 1){ $('.pagenumber').eq($('.pagenumber').index($('.currentpagenumber'))-2).show(); }else{ $('.pagenumber').eq($('.pagenumber').index($('.currentpagenumber'))+3).show(); } if($('.pagenumber').index($('.currentpagenumber'))+1 != $('.pagenumber').length){ $('.pagenumber').eq($('.pagenumber').index($('.currentpagenumber'))+2).show(); } if($('.pagenumber').index($('.currentpagenumber')) == $('.pagenumber').length-2){ $('.pagenumber').eq($('.pagenumber').index($('.currentpagenumber'))-3).show(); } } if($('.searcharrowform').length){ $(".pagenumber:not([style*='display: none'])").each(function(){ if($(this).hasClass('currentpagenumber')){ $(this).appendTo(".pager"); }else{ $form = $('
      '); var str=$(this)[0].href; str=str.substring(str.lastIndexOf("?") + 1, str.length); $form.attr('action',location.pathname+"?search="+getSearchParams('search')+"&"+str); $form.append(''); $form.append(''); $form.appendTo(".pager"); $(this).remove(); } }); $("#searchleft10").parent().attr('action', location.pathname+"?search="+getSearchParams('search')+"&index=0"); $("#searchright10").parent().attr('action', location.pathname+"?search="+getSearchParams('search')+"&index="+($('.pagenumber').length*itemsPerPage-itemsPerPage)); } $(".pager").append($('#arrowright')); $(".pager").append($('#arrowright10')); $("#arrowright10").attr('href', '?index='+($('.pagenumber').length*itemsPerPage-itemsPerPage)); $(".pager").append($('#searchright').parent()); $(".pager").append($('#searchright10').parent()); $(".pager").append('
      / '+$('.pagenumber').length+'
      '); $(".pager-jump").keyup(function(e) { if(e.which == 13){ if($('.pager-jump').val() <= $('.pagenumber').length){ if(!$('.searcharrowform').length){ location = location.href.split('?')[0]+"?index="+($('.pager-jump').val()*itemsPerPage-itemsPerPage); }else{ $form = $(''); $form.attr('action',location.pathname+"?search="+getSearchParams('search')+"&index="+($('.pager-jump').val()*itemsPerPage-itemsPerPage)); $form.append(''); $(document.body).append($form); $form.submit(); } } } }); $('.pager .pagenumber').addClass('pager-link'); $('.pager .topbutton').removeClass('topbutton').addClass('pager-link'); $(".pager").append($('
      ').text("Page "+$('.currentpagenumber').text()+" of "+$('.pagenumber').length)); } /* Add html footer to all pages. */ if($('#footer').length === 0){ $('
      ').load(proxyPrefix+"/theme/templates/footer.html #footer", function(){ $("body").append($(this).contents()); if(((location.href.indexOf("/books/") != -1)||(location.href.indexOf("/comics/") != -1))&&(location.href.indexOf("/files/") == -1)&&((location.search.length==0)||(location.search=="?settings=true")||(location.href.indexOf("?index=") != -1))){ $("#footerSettings option[value='"+$("input[name='grouping']:checked").val()+"']").attr('selected','selected'); $("#footerSettings option[value='"+$("input[name='sortingCriterion']:checked").val()+"']").attr('selected','selected'); $("#footerSettings option[value='"+$("input[name='sortingOrder']:checked").val()+"']").attr('selected','selected'); $('#footerSettings').attr('action',function(){ if(location.href.indexOf("/comics/") != -1){ return proxyPrefix+'/comics/?settings=true'; }else if(location.href.indexOf("/books/") != -1){ return proxyPrefix+'/books/?settings=true'; } }); }else{ $('#footerSettings label:eq(0), #footerSettings label:eq(1)').remove(); } if(location.href.indexOf("/files/") != -1){ $('.footer_navigation_column').eq(1).find('ul').append('
    • Icons made by Freepik from www.flaticon.com
    • '); $('.footer_navigation_column:eq(2)').remove(); } if(themeVariants.length){ $("#footerSettings select[name='themeSelector']").css({'display':'inline-block'}); $.each(themeVariants, function( index, value ) { $("#footerSettings select[name='themeSelector']").append('') }); $("#footerSettings option[value='"+themeVariant+"']").attr('selected','selected'); }else{ $('#footerSettings').parent().remove(); } }); } /* Remove extraneous elements. */ $("#searchbox").remove(); $("#poweredby").remove(); $("#banner").remove(); $("body > #logoutlink").remove(); $("body > br").remove(); $(document).ajaxStop(function(){ /* Copy breadcrumb text to page title. */ var defaultTitle = "Digital Media"; if($('#cmx_breadcrumb').length > 0){ var category = $('#cmx_breadcrumb a:eq(0)').text(); if (category == "Home"){ category = defaultTitle}; if($('.hinline').text().length > 0 ){ document.title = $('.hinline').text() + " - "+ category +" by Ubooquity"; }else if($('#cmx_breadcrumb').text().split(" > ").pop().length){ document.title = $('#cmx_breadcrumb').text().split(" > ").pop() + " - "+ category +" by Ubooquity"; }else{ document.title = category +" by Ubooquity"; } }else{ document.title = defaultTitle + " by Ubooquity"; } /* Run pageFunction() for pages like mobile.htm and mybooks.htm */ if((typeof pageFunction !== 'undefined')&&($.isFunction(pageFunction))&&!($('#group').hasClass('pageFunction'))){ $('#group').addClass('pageFunction'); pageFunction(); } /* Reader session settings */ sessionStorage.originUrl = location.href; sessionStorage.loadBookmark = true; /* Hide page loading until everything is done. */ $("body").show(); $("html").css('background','0'); /* Attach code to "Bookmark Series/Story Arc" button. */ $('#bookmarkButton').off('click').on('click',function(){ storeElement(location.pathname,'',location.pathname+'?cover=true',$('.seriesname').text(),true); }); /* Remove social links from series/arc pages. */ if(hideSocialLinks){ $('.social-links').remove(); } }); /* Functions that will not load without jQuery. */ String.prototype.unquoted = function (){return this.replace (/(^")|("$)/g, '')} $.fn.fixToTop = function(){ var $window = $(window); return this.each(function(){ var $this = $(this), //initial_top = $this.position().top; initial_top = 71; $window.on('scroll',function(event) { var cur_top = $this.position().top, window_scroll_amt = $window.scrollTop(); if(window_scroll_amt > initial_top) { $this.addClass('fixToTop'); }else{ $this.removeClass('fixToTop'); } }); }); }; $.urlParam = function(name){ var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(location.href); if (results==null){ return 0; } else{ return results[1] || 0; } } $.expr[':'].exact = $.expr.createPseudo(function(arg) { return function( elem ) { return $(elem).text().match("^" + arg + "$"); }; }); $('img.svg').each(function(){ var $img = jQuery(this); var imgID = $img.attr('id'); var imgClass = $img.attr('class'); var imgURL = $img.attr('src'); $.get(imgURL, function(data) { var $svg = jQuery(data).find('svg'); if(typeof imgID !== 'undefined') { $svg = $svg.attr('id', imgID); } if(typeof imgClass !== 'undefined') { $svg = $svg.attr('class', imgClass+' replaced-svg'); } $svg = $svg.removeAttr('xmlns:a'); $img.replaceWith($svg); }, 'xml'); }); /**/ }); }); function showHideNav(){ $('#username').text(sessionStorage.username); if(sessionStorage.username == defaultUsername){ $('#menuitem_login ul li:eq(1)').remove(); } if(!comicsBaseID){ $('#submenuitem_browse_publisherLink').text('Comics'); } if(sessionStorage.seeComics == "false"){ $('#menuitem_new_comics').remove(); $('#menuitem_new').remove(); $('#submenuitem_browse_publisher').remove(); $('#submenuitem_browse_storyArc').remove(); $('#submenuitem_browse_randomComicsOnly').remove(); $('#submenuitem_browse_randomBooks').remove(); $('#submenuitem_browse_randomComics').remove(); } if(!booksBaseID){ $('#submenuitem_browse_authorsLink').text('Books'); } if(sessionStorage.seeBooks == "false"){ $('#menuitem_new_books').remove(); $('#menuitem_new').remove(); $('#submenuitem_browse_authors').remove(); $('#submenuitem_browse_series').remove(); $('#submenuitem_browse_randomBooksOnly').remove(); $('#submenuitem_browse_randomBooks').remove(); $('#submenuitem_browse_randomComics').remove(); } if((sessionStorage.seeComics == "true")&&(sessionStorage.seeBooks == "true")){ $('#menuitem_new_books').remove(); $('#menuitem_new_comics').remove(); $('#submenuitem_browse_randomBooksOnly').remove(); $('#submenuitem_browse_randomComicsOnly').remove(); } if((sessionStorage.seeComics == "false")&&(sessionStorage.seeBooks == "false")){ $('#menuitem_browse').remove(); $('#searchForm').remove(); } if(!settingsJSON['isFilesProviderEnabled']){ $('#menuitem_files').remove(); $('#submenuitem_audiobooks').remove(); } if(!weeklyID){ $('#submenuitem_browse_releaseDate').remove(); }else{ $('#submenuitem_browse_releaseDateLink').attr('href','/comics/'+weeklyID+'/'); } if(!storyArcID){ $('#submenuitem_browse_storyArc').remove(); }else{ $('#submenuitem_browse_storyArcLink').attr('href','/comics/'+storyArcID+'/'); } if(!seriesID){ $('#submenuitem_browse_series').remove(); }else{ $('#submenuitem_browse_seriesLink').attr('href','/books/'+seriesID+'/'); } if(!audiobookShare){ $('#submenuitem_audiobooks').remove(); }else{ $('#submenuitem_audiobooksLink').attr('href','/files/'+audiobookShare+'/'); } if(!settingsJSON['isOpdsProviderEnabled']){ $('#menuitem_mobile').remove(); } if(!showRandom){ $('#submenuitem_browse_randomBooks').remove(); $('#submenuitem_browse_randomComics').remove(); $('#submenuitem_browse_randomBooksOnly').remove(); $('#submenuitem_browse_randomComicsOnly').remove(); } fixPaths('.top-navigation a', 'href'); if($('.main-menu a[href="'+location.pathname+location.search+'"]').length){ $('.main-menu a[href="'+location.pathname+location.search+'"]').closest('.main-menu > li').addClass("sel"); }else if(($('#cmx_breadcrumb a:eq(0)').length)&&($('#cmx_breadcrumb a:eq(0)')[0].pathname != proxyPrefix+'/')&&($('.main-menu a[href$="'+$('#cmx_breadcrumb a:eq(0)')[0].pathname+'"]').length)){ $('.main-menu a[href$="'+$('#cmx_breadcrumb a:eq(0)')[0].pathname+'"]').closest('.main-menu > li').addClass("sel"); } $('.primary_navigation_frame').fixToTop(); $('#menuitem_home a img').attr('src', proxyPrefix+'/theme/home-light.svg') /* Search */ var searchString; if((location.href.indexOf("/books/") != -1)&&(location.href.indexOf("/files/") == -1)){ searchString='/books/?search=simple'; }else if((location.href.indexOf("/comics/") != -1)&&(location.href.indexOf("/files/") == -1)){ searchString='/comics/?search=true'; }else{ if(defaultSearch=="books"){ searchString = '/books/?search=simple'; }else if(defaultSearch=="comics"){ searchString = '/comics/?search=true'; } } $('#searchForm').attr('action',function(){ return proxyPrefix + searchString; }); /* Apply theme variant/conditional logo. */ switchTheme(themeVariant); } function switchTheme(theme){ $('body').removeClass(); $('link[title=themeVariant]').remove(); if(theme == undefined){ theme = "default"; } localStorage.setItem('UbooquityThemeVariant', theme); themeVariant = theme; var themePath = ""; if((theme != "")&&(theme != "default")){ themePath = 'themes/'+themeVariant+'/'; $('body').addClass(theme); $('body').addClass('themed'); $('head').append(''); } if((sessionStorage.seeComics == "true")&&(sessionStorage.seeBooks == "false")){ $('.comixology-logo').css("background-image", "url('"+proxyPrefix+"/theme/"+themePath+"Ubooquity-logo_1_comic.png')"); }else if((sessionStorage.seeComics == "false")&&(sessionStorage.seeBooks == "true")){ $('.comixology-logo').css("background-image", "url('"+proxyPrefix+"/theme/"+themePath+"Ubooquity-logo_1_ebook.png')"); }else{ $('.comixology-logo').css("background-image", "url('"+proxyPrefix+"/theme/"+themePath+"Ubooquity-logo_1_comic_ebook.png')"); } /* Audiobook controls */ $('#sb img').attr('src',proxyPrefix+'/theme/'+themePath+'filebrowser/rewind-symbol.png'); $('#pp img').attr('src',proxyPrefix+'/theme/'+themePath+'filebrowser/pause-play-button.png'); $('#sf img').attr('src',proxyPrefix+'/theme/'+themePath+'filebrowser/fast-forward-media-control-button.png'); $('#dl img').attr('src',proxyPrefix+'/theme/'+themePath+'filebrowser/download-arrow.png'); /* Filebrowser icons */ $('.filePage .openFolder').attr('src', proxyPrefix+'/theme/'+themePath+'filebrowser/black-open-folder-shape.png'); $('.filePage .genericFile, .filePage .cbz, .filePage .png, .filePage .htm, .filePage .pdf, .filePage .epub, .filePage .cvinfo').attr('src', proxyPrefix+'/theme/'+themePath+'filebrowser/file-interface-symbol.png'); $('.filePage .folder').attr('src', proxyPrefix+'/theme/'+themePath+'filebrowser/black-folder.png'); } function fixPaths(parent, attr, extraPath){ if(proxyPrefix != ""){ $(parent).attr(attr,function(index,value) { if(extraPath){ value = extraPath + value; } if((value != "#")&&(value.indexOf(proxyPrefix) == -1)){ return proxyPrefix + value; }else{ return value; } }); } } function containerWrap(wrapType){ if(!$('#group').hasClass('wrapped')){ $('#group').addClass('wrapped'); $(".cellcontainer .label").each(function(index){ if($(this).text() == "json"){ $(this).parent().parent().hide(); return } if(!$(this).parent().parent().is('[id]')){ $(this).parent().parent().attr('ID', index+1); } var fullLabel = $(this).text(); if(fullLabel.endsWith(", The")){ fullLabel = "The "+fullLabel.split(", The")[0]; } if(fullLabel.endsWith(", A")){ fullLabel = "A "+fullLabel.split(", A")[0]; } if((!displayTitleInsteadOfFileName)&&(((location.href.indexOf('books') == -1)||(location.href.indexOf('mybooks') != -1))||(wrapType == "arc")||(wrapType == "weeks"))){ var labelParts = parseLabel(fullLabel); var issueNum = labelParts[0]; var seriesName = labelParts[1]; var seriesYear = labelParts[2]; var arcNum = labelParts[3]; }else{ var seriesName = fullLabel; var issueNum = ""; var seriesYear = ""; var arcNum = ""; } /* Issue / Bookmark */ if($(this).parent().find('a')[0].hasAttribute('onclick')){ var menuBlock = ''; var bookPath = $(this).parent().find('img').attr('src').split('?cover=true')[0]; var readLink = parseImgPath(bookPath); if(readLink[1] == 'comicdetails'){ checkBookmarkAPI(readLink, $(this).parent().parent().attr('ID')); }else if(readLink[1] == 'bookdetails'){ var seriesName = fullLabel; var issueNum = ""; if(useBookTitles){ getBookTitle(readLink[0], proxyPrefix+'/', readLink[1], $(this).parent().parent().attr('ID'), "group"); } } if($(this).parent().find('a').attr('onclick') != ""){ menuBlock += '
      Read
      ' } menuBlock += '
      ' $(menuBlock).insertAfter($(this)); if((issueNum != "")||(issueNum == "0")){ $('
      #'+issueNum+'
      ').insertAfter($(this)); }else{ $('
      ').insertAfter($(this)); } if(seriesName.charAt(0)=="_"){ seriesName = seriesName.substring(1); } seriesName = seriesName.replace(" - ", ": "); seriesName = seriesName.replace("_ ", ": "); var titleText = seriesName; if(seriesYear.length){ titleText += ' '+seriesYear; } $('
      '+titleText+'
      ').insertAfter($(this)); $(this).parent().find('.content-title').prop('title',titleText); if((issueNum != "")||(issueNum == "0")){ titleText += ' #'+issueNum; } $(this).parent().find('.thumb a img').prop('title',titleText); $('').insertAfter($(this)); /* Story Arc */ if((arcNum != "")&&(wrapType=="arc")){ $(this).parent().find('.content-title').text(titleText); $(this).parent().find('.content-title').prop('title',titleText); $(this).parent().find('.content-subtitle').text('#'+parseFloat(arcNum)); } if(flipNumName){ $(this).parent().find('.content-subtitle').insertAfter($(this)); if(location.href.indexOf("mybooks.htm") != -1){ $(this).parent().find('.content-subtitle').addClass('temp-content-title'); $(this).parent().find('.content-title').addClass('temp-content-subtitle'); $(this).parent().find('.temp-content-title').addClass('content-title').removeClass('content-subtitle'); $(this).parent().find('.temp-content-subtitle').addClass('content-subtitle').removeClass('content-title'); } } /* Series */ }else{ var bookID = $(this).parent().parent().attr('ID'); if(isNaN(fullLabel.split(' - ').pop().split(')')[0])){ fullLabel = fullLabel.replace(' - ', ': '); } if(fullLabel.charAt(0)=="_"){ fullLabel = fullLabel.substring(1); } if(showBookCount){ var issueCount = parseInt($(this).parent().parent().find('.numberblock').text()); var bookText; if(issueCount > 1){ bookText = "Books"; }else{ bookText = "Book"; } $('
      '+issueCount+' '+bookText+'
      ').insertAfter($(this)); } cacheID($(this).parent().find('.thumb a img').attr('src'), $(this).parent().find('.label:not(.content-title)').text(),location.href); var imgPath = $(this).parent().find('.thumb a img').attr('src'); var imgPathParts = imgPath.split('/'); if(imgPathParts.indexOf('comics') != -1){ var type = 'comics'; var targetID = imgPathParts[imgPathParts.indexOf('comics')+1]; fullLabel = fullLabel.replace('_ ', ': '); } if(imgPathParts.indexOf('books') != -1){ var type = 'books'; var targetID = imgPathParts[imgPathParts.indexOf('books')+1]; fullLabel = fullLabel.replace('_', '. '); if((uncommaAuthors)&&(fullLabel.indexOf(", ") != -1)){ var namePieces = fullLabel.split(', '); fullLabel = namePieces[1]+' '+namePieces[0].trim(); } } if(wrapType=="weeks"){ fullLabel = getWeekRange(fullLabel.split('-')[1],fullLabel.split('-')[0]) } $('
      '+fullLabel+'
      ').insertAfter($(this)); $(this).parent().find('.content-title').prop('title',fullLabel); $(this).parent().find('.thumb a img').prop('title',fullLabel); if(type == 'comics'){ var grepResult = $.grep(IDcache[type], function(e){ return e.bookID == targetID && e.parent == storyArcID; }); var grepResult2 = $.grep(IDcache[type], function(e){ return e.bookID == targetID && e.parent == comicsBaseID; }); }else if (type== 'books'){ var grepResult = $.grep(IDcache[type], function(e){ return e.bookID == targetID && e.parent == seriesID; }); var grepResult2 = $.grep(IDcache[type], function(e){ return e.bookID == targetID && e.parent == booksBaseID; }); } if(grepResult.length > 0){ var destination = 'storyarcsearch'; }else{ if(grepResult2.length > 0){ var destination = 'publishersearch'; }else{ var destination = 'seriessearch'; } } if(location.search.startsWith('?search')){ if(destination == 'storyarcsearch'){ if(!$('#storyarcsearch').length){ $('

        ').insertBefore('#group'); if(location.pathname.startsWith(proxyPrefix+'/comics/')){ $('#storyarcsearch .list-title').text("Story Arcs"); }else if(location.pathname.startsWith(proxyPrefix+'/books/')){ $('#storyarcsearch .list-title').text("Series"); } } }else if(destination == 'seriessearch'){ if(!$('#seriessearch').length){ $('

          ').insertBefore('#group'); if(type=='comics'){ $('#seriessearch .list-title').text("Series"); }else if(type=='books'){ $('#seriessearch .list-title').text("Authors"); } } }else if(destination == 'publishersearch'){ if(!$('#publishersearch').length){ $('

            ').insertBefore('#group'); if(type=='comics'){ $('#publishersearch .list-title').text("Publishers"); }else if(type=='books'){ $('#publishersearch .list-title').text("Authors"); } } } $('#'+destination).append($('#'+bookID)); $(document).ajaxStop(function(){ if($('#group .cellcontainer').length == 0){ $('#group header').hide(); if($('#group .pager').length == 0){ $('#group').hide(); } } }); } if(flipNumName){ $(this).parent().find('.content-subtitle').insertAfter($(this)); } } $(this).hide(); }); $(".clickdown").off('click').on('click', function(){ $(this).parent().find("ul").toggle('blind', 50); }); $(".clickdown").parent().off('mouseleave').on('mouseleave', function(){ $(this).find("ul").hide(); }); } } function checkBookmarkAPI(returnval, containerID){ var bookID = returnval[0]; if(returnval[1]=='comicdetails'){ var isBook = false; }else{ var isBook = true; } var markPage; var pageCount; $.ajax({ type: "GET", url: proxyPrefix+"/user-api/bookmark?isBook="+isBook+"&docId="+bookID, }).done(function(data){ if(data != undefined){ if(data.mark.includes("#")){ data.mark = data.mark.split("#")[0]; } if(data.mark != "0"){ if(data.mark.indexOf('#') > -1){ data.mark = data.mark.split('#')[0]; } markPage = +data.mark + 1; $('#'+containerID).find('progress').attr('value',markPage); $.ajax({ type: "GET", url: proxyPrefix+"/"+returnval[1]+"/"+bookID, }).done(function(bookData){ $('
            ').html(bookData).promise().done(function (ajaxReturn){ var sizeReturn = $(ajaxReturn).find('#details_size')[0]; pageCount = $(sizeReturn).text().split(' pages')[0]; $('#'+containerID).find('progress').attr('max',pageCount); $('#'+containerID).find('progress').attr('title', 'Page ' +markPage + ' of ' + pageCount); $('#'+containerID).find('progress').css('display', 'block'); }); }); } } }); } function cacheID(srcURL, labelText, parentURL){ var srcParts = srcURL.split('/'); var parentParts = parentURL.split('/'); var type; var ID; var parentID; if(srcParts.indexOf('comics') != -1){ type = "comics"; ID = srcParts[srcParts.indexOf('comics')+1]; parentID = parentParts[parentParts.indexOf('comics')+1]; if(ID == comicsBaseID){ labelText = "Publishers"; } if(ID == storyArcID){ labelText = "Story Arcs"; } if(ID == weeklyID){ labelText = "Release Date"; } } if(srcParts.indexOf('books') != -1){ type = "books"; ID = srcParts[srcParts.indexOf('books')+1]; parentID = parentParts[parentParts.indexOf('books')+1]; if(ID == booksBaseID){ labelText = "Authors"; } } var grepResult = $.grep(IDcache[type], function(e){ return e.bookID == ID; }); if(grepResult.length > 0){ var bookID = grepResult[0].bookID; }else{ if((ID)&&(!isNaN(parentID))){ IDcache[type].push({'bookID': ID, "label": labelText, "parent": parentID}); localStorage.setItem(cacheLocation,JSON.stringify(IDcache)); } } } function clearIDCache(){ IDcache = {"books": [], "comics": []}; localStorage.setItem(cacheLocation,JSON.stringify(IDcache)); } /* series.json read */ function getSeriesJson(filename){ $.get(filename, function(response) { if ($.isArray(response.metadata)){ var metadata = response.metadata[0]; }else{ var metadata = response.metadata; } if((response.metadata)&&($('.headerSection').length)){ var seriesname = metadata.name; if(!usePublicationRun){ if(metadata.year){ seriesname += " ("+metadata.year+")"; } }else{ if(metadata.publication_run){ var runParts = metadata.publication_run.split(" "); var yearString; if(runParts[2]=="-"){ yearString = runParts[1] if(runParts[1]!=runParts[4]){ yearString += runParts[2]; if(runParts[3]!="Present"){ yearString += runParts[4]; } } } seriesname += " ("+yearString+")"; }else{ if(metadata.year){ seriesname += " ("+metadata.year+")"; } } } $('.seriesname').text(seriesname); var description = ""; if(metadata.description){ description = metadata.description; } if(metadata.description_text != null){ description = metadata.description_text; } if(metadata.description_formatted != null){ description = metadata.description_formatted; } if(metadata.type == "authorBio"){ description += "

            "; } if(metadata.players){ description +="

            Featured Characters: "+metadata.players; } $('#desc').html(description); $('#cover').attr('title', seriesname); if(metadata.type == "comicChar"){ $('#cover').click(function(){ window.open("https://comicvine.gamespot.com/" + metadata.name + "/4005-" + metadata.id, "_blank"); }); } if(metadata.type == "authorBio"){ if(metadata.website){ $('.headerSection #column2').append('