Skip to content

Instantly share code, notes, and snippets.

@kardeiz
Last active December 10, 2015 01:08
Show Gist options
  • Save kardeiz/4355671 to your computer and use it in GitHub Desktop.
Save kardeiz/4355671 to your computer and use it in GitHub Desktop.
catalog js
(function(){
if (typeof jQuery=='undefined') {
var headTag = document.getElementsByTagName("head")[0];
var jqTag = document.createElement('script');
jqTag.type = 'text/javascript';
jqTag.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js';
jqTag.onload = (function(){ myJQueryCode(jQuery); });
headTag.appendChild(jqTag);
} else {
myJQueryCode(jQuery);
}
function myJQueryCode($) {
var staff_view = $('a:contains("Staff View")').attr("href");
$('body').append("<div id='thumbnails_container'><div><ul id='my_thumbnails'/></div>");
$('#my_thumbnails').parent("div").parent("div").prepend("<div id='scroll_left'></div>");
$('#my_thumbnails').parent("div").parent("div").prepend("<div id='scroll_right'></div>");
var right_arrow = "iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ" +
"bWFnZVJlYWR5ccllPAAAACFQTFRFBAcH0NDQFBcXoaKiYmRk7+/vMzY2cnR0U1VVkZKS////CDkD" +
"PwAAAAt0Uk5T/////////////wBKTwHyAAABFElEQVR42uzXOQ6DUBAE0fl4web+B3ZsZ3SXTFLk" +
"qJ7EX4Y5Ln5GgAABAgQIECBAgAABAgQIECBAgAABAsL31roWsLZtXQlY2wwkmLRPCSbuQ4LJ+4xg" +
"ij4imKZPCE4DXjOo4DTg8WQF59cALAh2AStIzgFUEJ2EpCC7C0BBeBtygnQewATxREQJ8pEMEhQz" +
"ISNohlJEUE3FhKAbywFB+V/w/gbM/mfA7ad///MnAPoVgOg3AKRfAJh+DoD6MYDqpwCsHwK4fgYA" +
"+xGA7CcAtB8A2P55ANyvAW2//QR1v1yEfb/bhkC/OoiIfnMUI/3iMmL6+XW8H9cCsEeAAAECBAgQ" +
"IECAAAECBAgQIECAAAECPgIMAGXoZ6/gaO/QAAAAAElFTkSuQmCC";
var left_arrow = "iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ" +
"bWFnZVJlYWR5ccllPAAAABhQTFRFBAcHoaKiYmRk0NDQFBcXcnR0sLGx////lsLBhQAAAAh0Uk5T" +
"/////////wDeg71ZAAABFklEQVR42uzZMRqCQAwF4QRF7n9jbaXjZb7dZjwA8xcIm1DX5l8JECBA" +
"gAABAgQIECBAgAABAgQIECBAAHOZs/cCjqreCfj1Y0FR/VRQWD8UFNfPBAX2I0GR/URQaH85YN6f" +
"AYD+CED0JwCkPwAw/RwA9WMA1U8BWD8EcP0MAPYjANlPAGg/ALD954CT7T8H9A1wLJ8LYEFwE7KC" +
"5G+ICqIHESnIHsWgIHwZcYL0dYwJ4gMJJciPZJBgcChlBJNjOSIYDSaEYDaaAYLhcHoXnMvH83/B" +
"+7V+QdGzPrCi6VGfWFL1pI+s6XrQZxaVnfehVW3HfWpZ/Un7fi8QIECAAAECBAgQIECAAAECBAgQ" +
"IEDAfsBXgAEA+Yiu6sjbSCcAAAAASUVORK5CYII=";
$('#thumbnails_container').css({float: 'left', position: 'relative', width: '900px', height: '250px', display: 'none'});
$('#my_thumbnails').parent("div").css({position: 'absolute', top: 0, left: 0, width: '900px', height: '250px', overflow: 'hidden', whiteSpace: 'nowrap'});
$('#my_thumbnails').css({position: 'absolute', top: '50%', marginTop: '-95px', width: "1508px"});
$("#scroll_left").css({position: 'absolute', zIndex: 1, height: '250px', width: '50px', top: 0, left: 0, backgroundImage: 'url(data:image/png;base64,' + left_arrow + ')', backgroundPosition: '50% 50%', backgroundRepeat: 'no-repeat'});
$("#scroll_right").css({position: 'absolute', zIndex: 1, height: '250px', width: '50px', top: 0, right: 0, backgroundImage: 'url(data:image/png;base64,' + right_arrow + ')', backgroundPosition: '50% 50%', backgroundRepeat: 'no-repeat'});
$("#scroll_left, #scroll_right").hover(
function() {
$(this).css({backgroundColor: 'gray', opacity: 0.3});
},
function() {
$(this).css({backgroundColor: '', opacity: 1});
}
);
$.get(staff_view, function(data) {
var call_number = $(data).find('td:contains("PST0")').first().next("td").text().match(/\|h\s+([^$]+?)(\s*\||$)/);
if (call_number) {
process_primary_call_number(call_number[1]);
}
});
function process_primary_call_number(call_number) {
var adjacent_lookup = "http://libweb.lib.tcu.edu/F/?func=scan&scan_start=" + call_number + "&scan_code=LCI&local_base=tcudefault";
$.get(adjacent_lookup, function(data) {
data = $(data);
var links_array = $.makeArray(data.find('th:contains("Index Number")').first().parent("tr").nextAll().slice(0,6).find("td:nth-child(2) > a"));
var previous_link = data.find('img[alt="Previous Page"]').parent("a").attr("href");
$.get(previous_link, function(data_two) {
data_two = $(data_two);
var links_array_two = $.makeArray(data_two.find('th:contains("Index Number")').parent("tr").nextAll().slice(-5).find("td:nth-child(2) > a"));
links_array = links_array_two.concat(links_array);
get_thumbnails(links_array[0], links_array);
});
});
}
function get_thumbnails(link, links_array) {
var link_href = $(link).attr("href") + "&format=001";
$.get(link_href, function(data) {
data = $(data);
var isbn = data.find('td:nth-child(1):contains("020")').first().next('td').text().match(/\|a\s+(\d+)/);
var sys_number = data.find('td:nth-child(1):contains("SYS")').first().next('td').text().match(/(\d+)/)[1];
var src = "/favicon.ico";
function process_next_link(link, links_array) {
var next_link = ($.inArray(link, links_array) + 1);
if (next_link < links_array.length) {
get_thumbnails(links_array[next_link], links_array);
}
else if (next_link == links_array.length) {
$('#my_thumbnails li:not(:first)').css({paddingLeft: "10px"});
function startScrollingLeft() {
$('#my_thumbnails').parent("div").animate({scrollLeft: '-=40'}, "fast", "linear", startScrollingLeft);
}
function startScrollingRight() {
$('#my_thumbnails').parent("div").animate({scrollLeft: '+=40'}, "fast", "linear", startScrollingRight);
}
function stopScrolling() {
$('#my_thumbnails').parent("div").stop();
}
$('#scroll_left').mousedown(startScrollingLeft).mouseup(stopScrolling);
$('#scroll_right').mousedown(startScrollingRight).mouseup(stopScrolling);
$('#thumbnails_container').show();
$('#my_thumbnails').parent("div").scrollLeft(304);
}
}
if (isbn) {
isbn = isbn[1];
$.getJSON('https://www.googleapis.com/books/v1/volumes?q=isbn:' + isbn, function(google_data) {
if (google_data && google_data.items && google_data.items[0].volumeInfo && google_data.items[0].volumeInfo.imageLinks && google_data.items[0].volumeInfo.imageLinks.thumbnail) {
src = google_data.items[0].volumeInfo.imageLinks.thumbnail;
}
var thumbnail_object = $("<li style='display:inline-block;'><a href='http://libweb.lib.tcu.edu/F/?func=direct&doc_library=TCU01&doc_number=" + sys_number + "'><div style='height: 191px; width: 128px; display: table-cell; vertical-align: middle; text-align:center;'><img style='max-height: 191px; max-width: 128px;' src='" + src + "'/></div></a></li>");
$('#my_thumbnails').append(thumbnail_object);
process_next_link(link, links_array);
});
}
else {
var thumbnail_object = $("<li style='display:inline-block;'><a href='http://libweb.lib.tcu.edu/F/?func=direct&doc_library=TCU01&doc_number=" + sys_number + "'><div style='height: 191px; width: 128px; display: table-cell; vertical-align: middle; text-align:center;'><img style='max-height: 191px; max-width: 128px;' src='" + src + "'/></div></a></li>");
$('#my_thumbnails').append(thumbnail_object);
process_next_link(link, links_array);
}
});
}
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment