For the best experience using a screen reader with this application, please use
Internet Explorer 11
and the latest version of
JAWS
or
NVDA
.
PLEASE NOTE: This Proof of Concept is
not the final version of the planned Virtual Card Catalog (VCC).
The purpose of the VCC Proof of Concept is to test if this
system can be used for online public access to the physical Copyright
Card Catalog. The images appear in roughly the same filing order as
the physical cards, but filing errors and corrupt images may cause
some images to be in the wrong place. Enhanced browse capabilities
are limited because data capture technology is not entirely accurate.
We are working to update and improve overall functionality. Your
feedback is essential to improving the system.
This Proof of Concept does not replace or supersede existing search
practices established by the U.S. Copyright Office. Any results
obtained during the course of your enhanced browse are not reliable
for legal matters. For information regarding searching copyright
records, please refer to Circular 22
"How to Investigate the Copyright Status of a Work." For information
regarding the removal of personal information from the Virtual Card
Catalog, please refer to the Circular 18
"Privacy: Copyright Public Records."
");
}
}
}
function buildPaginatedCardsGallery(data) {
document.getElementById('popupCardCountText').innerHTML = data.cardRangeStart + " - " + data.cardRangeEnd + " of " + data.total_number_of_cards + " Results for Cards";
MasterList = [];
for (var h = 0; h < data.cards_paginated.length; h++) {
cardsrc = data.cdn_dir + data.dict_of_drawers[data.cards_paginated[h].drawerid][1]
+ "/" + data.dict_of_drawers[data.cards_paginated[h].drawerid][1].replace('.', '').replace(/\//g, '') + "/"
+ data.cards_paginated[h].cardid
MasterList
.push({
small : cardsrc,
big : cardsrc,
cardid : data.cards_paginated[h].cardid,
drawerid : data.cards_paginated[h].drawerid,
cardnumber : data.cards_paginated[h].cardnumber,
timeframedescription : data.timeframe_dictionary[(data.cards_paginated[h].timeframe).replace("\n","")],
timeframe : data.cards_paginated[h].timeframe,
cardtext : data.cards_paginated[h].cardtext,
drawerdescription : data.dict_of_drawers[data.cards_paginated[h].drawerid][0]
});
if(h==0){
image = $("#" + (h+1));
}
}
}
function buildGenericGallery(CardList, selectedImage) {
MasterList = CardList;
image = selectedImage;
}
function paginateCards() {
$('#popupLoader').modal('show');
var searchType = "simple";
if($('#advanced_options').css("display") != 'none') {
searchType = "advanced";
}
var listOfSelectedAlphaFilters = [];
if ($(".clearAlphaFilters").length == 0) {
$(".drawerData").each(
function() {
if ($(this).attr('class').indexOf(
'drawerDataSelected') != -1) {
listOfSelectedAlphaFilters.push($(this).attr(
'id'));
}
});
}
var timeframes = [];
$('.indexInputCheckboxStyle').each(function() {
if ($(this)[0].checked) {
formattedTimeframe = ($(this).attr('id')).replace("checkbox", "");
if(timeframes.indexOf(formattedTimeframe) == -1) {
timeframes.push(formattedTimeframe);
}
}
});
var select = document.getElementById('resultCardSelect');
var card_number_of_results = select.options[select.selectedIndex].value;
$
.ajax({
type : "POST",
url : "/ajax/query_paginate_cards",
data : {
'selected_timeframes' : JSON.stringify(timeframes),
'drawer_search' : $('#drawerSearchInput').val(),
'card_search' : $('#cardSearchInput').val(),
'selected_tab' : $('#tablist').find(".active")
.attr('id'),
'advanced_search_list' : JSON
.stringify(getAdvancedSeachTerms()),
'simple_exact_search_checkbox' : $('#simple_exact')[0].checked,
'advanced_exact_search_checkbox' : $('#advanced_exact')[0].checked,
'selected_drawers_checkbox' : $('#myDrawersEventCheckbox')[0].checked,
'card_page' : cardPage,
'search_type' : searchType,
'card_number_of_results' : card_number_of_results,
'list_of_selected_alpha_filters' : JSON
.stringify(listOfSelectedAlphaFilters)
},
dataType : 'json',
success : function(data) {
if (!data.success) {
$.notify({
// options
message : data.message
}, {
// settings
type : 'danger',
placement : {
from : "top",
align : "left"
}
});
setHistoryList(data.message, "alert-danger");
cardPage = data.card_page;
} else {
$("#image-gallery-container").modal('hide');
buildPaginatedCardsGallery(data);
buildPopupCardGallery();
cardViewer(MasterList);
$.notify({
// options
message : data.message
}, {
// settings
type : 'success',
placement : {
from : "top",
align : "left"
}
});
setHistoryList(data.message, "alert-success");
}
$('#popupLoader').modal('hide');
}
});
}
function setPreviousFields() {
PreviousCardList = MasterList;
previousImage = image;
previousView = currentView;
}
function setCardCount() {
var cardCount = 0;
$.ajax({
type : "POST",
url : "/ajax/get_vcc_session",
async : false,
data : {},
dataType : 'json',
success : function(data) {
if (data.no_data) {
$("#myfolderId").html("My Cards (0)");
} else {
var MasterList = data.master_list;
cardCount = MasterList.length;
$("#myfolderId").html("My Cards (" + cardCount + ")");
}
}
});
}
function buildPopupCardGallery() {
var cardSlickContainer = $("#cardSlickContainerPopup");
cardSlickContainer.empty();
for(var h = 0; h < MasterList.length; h++) {
var innerTable = $("#popupInnerCardTable").clone(true,true);
innerTable.show();
var div = $("
");
var cardNumber = innerTable.find(".slickCardCount");
cardNumber.attr('id', "cardid" + h);
cardNumber.css('color', 'white');
cardNumber.text(MasterList[h].cardnumber);
var img = innerTable.find(".popup-gallery-items");
img.attr("src", MasterList[h].small);
img.attr("data-high-res-src", MasterList[h].big);
img.attr("id", h+1);
img.attr("tabindex", 0);
img.attr("title", "Card ID: " + MasterList[h].cardnumber);
img.attr("aria-label", "Card ID: " + MasterList[h].cardnumber);
testImage(img[0]);
div.append(innerTable);
cardSlickContainer.append(div);
}
$('#cardSlickContainerPopup').slick({
dots: true,
infinite: false,
speed: 300,
slidesToShow: 5,
slidesToScroll: 5,
rows: 1,
prevArrow:"

",
nextArrow:"

",
responsive: [
{
breakpoint: 1024,
settings: {
slidesToShow: 3,
slidesToScroll: 3,
slidesPerRow: 3,
rows: 1
}
},
{
dots: false,
breakpoint: 600,
settings: {
slidesToShow: 2,
slidesToScroll: 2,
slidesPerRow: 2,
rows:1
}
},
{
dots: false,
breakpoint: 480,
settings: {
slidesToShow: 1,
slidesToScroll: 1,
slidesPerRow: 1,
dots: false,
infinite: false,
rows:1
}
}
]
});
setCardSlickDotsPopupListener();
}
function setCardSlickDotsPopupListener() {
$("#cardSlickContainerPopup .slick-dots li button").hover(function() {
var cardContainerSlides = $('#cardSlickContainerPopup').slick("slickGetOption", "slidesToShow");
var firstCardCount = $("#" + $(this).attr("aria-controls")).find(".slickCardCount").first().text();
var lastCardCount = "";
var startIndex = parseInt($("#" + $(this).attr("aria-controls")).attr("data-slick-index"));
var endIndex = (cardContainerSlides + startIndex) - 1;
var foundLast = false;
$("#cardSlickContainerPopup .slick-slide").each(function() {
if($(this).attr("data-slick-index") == endIndex) {
foundLast = true;
lastCardCount = $(this).find(".slickCardCount").last().text();
}
});
if(foundLast == false || lastCardCount == "") {
lastCardCount = $("#cardSlickContainerPopup .slick-slide").last().find(".slickCardCount").last().text();
}
var buttonpos = $(this).offset();
var tooltip = $(".slickToolTipStyle");
tooltip.show();
tooltip.text(firstCardCount + " - " + lastCardCount);
tooltip.offset({top:buttonpos.top - 40,left:buttonpos.left - tooltip.width()/2});
});
$(".slick-dots li button").mouseout(function() {
var tooltip = $(".slickToolTipStyle");
tooltip.hide();
});
}
Tell Us What You Think...
Your feedback is important, Please consider
providing your overall experience
by taking our short 2 minute-survey.
Virtual Card Catalog | U.S. Copyright Office
You have no cards in My Folder.