+++ /dev/null
-The University of Windsor has serial titles where hundreds
-and even thousands of items that have been added, typically microfilm
-that has been individually barcoded for interlibrary loan. This skin
-has a number of workarounds to accomodate the overhead associated
-with exposing extensive holdings in marcxml-format, we also add one page
-definition to "config.js", usually installed at:
-
-/openils/var/web/opac/common/js/config.js
-
-anchored by the comment (/* */) sections below:
-
-/* pages */
-var RSDETAIL = "rsdetail";
-
-/* Set up the page names */
-config.page[RSDETAIL] = "rsdetail.xml";
-
-Dan Scott (dbs) came up with a much more elegant solution to
-how it is handled in this layout this evening on IRC but
-I have taken the route that is least disruptive to the other
-skins for switching this version over to production in the
-short term (since the massive multi-item problem can slurp
-up a lot of cpu processing capacity).
-
-art rhyno, u. of windsor - Sept. 25, 2010
+++ /dev/null
-body { margin: 6px; }
-body { background-color: white; }
-
-.main_header { width: 100%; }
-.space { padding-right:5px; }
-.vert_space { padding-top: 82px; width: 100%;}
-.right { position:absolute; right: 0px; }
-.hide_me { display:none; visibility: hidden; }
-.recid { position:relative; left: 0px; color: #EBEBEB; }
-
-table { border-collapse: collapse; }
-
-/* generic CSS for a table with data */
-.data_grid { font-weight: 500; border-collapse: collapse;}
-.data_grid thead tr { }
-.data_grid thead td { padding-right: 5px; padding-left: 5px;}
-.data_grid tbody td { padding: 5px; }
-.data_grid_center { text-align: center; }
-
-.data_grid_nb { font-weight: 500; border-collapse: collapse;}
-.data_grid_nb thead tr { color: #000000; }
-.data_grid_nb thead td { padding-right: 5px; padding-left: 5px;}
-.data_grid_nb tbody td { padding: 5px; }
-
-
-.classic_link { text-decoration: underline; color: black;}
-.classic_link:visited { text-decoration: underline; color: black;}
-.classic_link_col { text-decoration: underline; color: red;}
-
-.encircled { border: 1px solid black; }
-
-
-.adv_quick_search { padding: 3px;}
-.adv_quick_search_submit { padding: 3px;}
-
-.overdue { color: red; font-weight: bold;}
-
-#main_table { border-collapse: collapse; width: 100%; }
-#main_left_cell { width: 20%; vertical-align: top;margin: 0px; padding: 0px;}
-#main_right_cell { width: 80%; vertical-align: top; margin: 0px; padding:0px; padding-right:5px;}
-
-.too_many_copies {font-weight: bold; color: #000000;}
-
-
-#content { min-height: 300px; }
-
-.canvas { min-height: 300px; padding-left: 4px; -moz-border-radius: 6px;}
-#canvas_main { padding-bottom: 4px; }
-
-#loading_div { width: 100%;}
-
-
-
-.shadowed { background: #F0F0E0; }
-.no_copies { background: #E0E0E0; }
-.overdue_circ { border: 2px dashed #F0D0E0; }
-
-.org_tree { padding-left: 2px; padding-right: 2px; }
-.org_link { padding-right: 15px; }
-#org_link_container { margin-bottom: 5px; padding-left: 4px; padding-bottom: 3px; padding-top: 3px; width: 100%; }
-#left_div { float:left; width: 20%; }
-#statusbar {}
-
-#frontsearch_table { }
-#frontsearch_table tr { margin: 6px; }
-
-/* ---------------------------------------------------------------------- */
-.sidebar_div { width: 100%; font-size: 9pt; margin-top: 12px; }
-.sidebar_header { margin-top: 10px; padding-left: 3px; margin-right: 6px; }
-
-.sidebar_extra_item { padding: 0px; margin-right: 8px;}
-.side_bar_item { padding-left: 8px; padding-right: 8px; padding-top: 4px; padding-bottom: 4px; margin-right: 8px; }
-
-.sidebar_item_active { margin-right: 0px; }
-
-.sidebar_chunk { width: 100%; }
-
-/* ---------------------------------------------------------------------- */
-
-#searchbar { margin-top: 22px; width: 100%; }
-#searchbar table tr td {font-weight: bold; font-size: 8pt; }
-#searchbar select, input { border-collapse: collapse; font-size: 9pt; }
-.searchbar_item { margin: 3px; font-size: 9pt; }
-.searchbar_label_span { font-size: 9pt; }
-#searchbar_table { border-collapse: collapse; }
-
-.search_box_container { width: 240px; padding: 3px; }/* border: 1px solid #A0A0A0;' class='color_2'>*/
-#search_box { width: 260px; }
-
-
-/* ---------------------------------------------------------------------- */
-#login_box { width: 70%; padding: 5px;}
-.login_text { margin-left: 8px; }
-
-/* ---------------------------------------------------------------------- */
-#result_table_div { text-align: left; width: 100%; }
-
-#search_nav_links { width: 100%; }
-#result_info_box { text-align: left; }
-#next_prev_links { padding-left: 2px; padding-right: 2px; text-align: left;}
-#goto_page_links { text-align: left; padding-left: 2px; padding-right: 2px;}
-
-#next_prev_links_dead {padding-left: 5px; padding-right: 5px;}
-
-#res_table { width: 100%; }
-
-.result_table_pic_cell { width: 43px;}
-.result_table_pic { height: 50px; width: 40px; border: none;}
-.result_table_pic_header { width: 43px; }
-
-.result_table_row { text-align: left; width: 100%; }
-.result_table_subtable { width: 100%; border-collapse: collapse; vertical-align: top;}
-/* .result_table_subtable { width: 100%; border-width: 0px; vertical-align: top;} */
-.result_table_subtbody { height: 100%; width: 100%; }
-/* make title slightly larger */
-.result_table_title_cell { font-weight: bold; text-align: left; }
-.result_table_sfx_cell { background: #EBEBEB; color: #000000; font-weight: bold; text-align: left; }
-.result_table_format_cell { font-size: medium; text-align: left;}
-.sfx_image {background: #EBEBEB; padding-right: 10px;}
-.sfx_display {background: #EBEBEB;}
-.sfx_right {width: 25%;}
-
-/* style dan's supercool live status stuff */
-/* windsor's colours are #005595 #B2BB1E */
-.live_call_cell { color: #000000; font-weight: bold; text-align: left; }
-.live_separator_cell { font-weight: bold; text-align: left; }
-.live_location_cell { color: #000000; font-weight: bold; text-align: left; }
-.live_status_cell { color: #000000; font-weight: bold; text-align: left; }
-
-.copy_count_cell { width: 0%; vertical-align: middle; text-align: center; }
-.copy_count_div { width: 4em; height: 99%; vertical-align: middle; text-align: center; }
-
-.search_page_nav_link { margin-right: 5px; }
-
-.np_nav_link { margin-right: 5px; }
-
-/* ---------------------------------------------------------------------- */
-
-#rdetail_detail_main { width: 100%; }
-#rdetail_details_table { padding-top: 10px; width: 100%; padding: 30px; border-collapse: collapse;}
-.rdetail_header { padding: 3px; padding-left: 10px;}
-.rdetail_desc { padding: 2px; padding-left: 2px; padding-right: 2px;}
-.rdetail_item { padding-left: 10px; }
-#rdetail_image { padding-right: 10px; }
-#rdetail_copy_info_table { padding: 4px; width: 100%; border-collapse: collapse; }
-.rdetail_copy_info_header_cell { padding: 2px; }
-.rdetail_copy_count_cell { text-align: center; }
-
-.resolver_item { background: #EBEBEB; }
-
-
-.tor_pic { width: 17px; height: 17px; border: none;}
-
-.dim2_border { border: 1px solid #F06000; -moz-border-radius: 3px;}
-
-.dim2 {
- filter:alpha(opacity=50);
- -moz-opacity:0.5;
- opacity: 0.5;
- text-decoration: none; }
-
-.dim {
- filter:alpha(opacity=10);
- -moz-opacity:0.1;
- opacity: 0.1;
- text-decoration: none; }
-
-/* ---------------------------------------------------------------------- */
-
-.myopac_link { width: 12%; margin: 3px; padding: 3px; text-align: center; vertical-align: middle; }
-.myopac_link_active { font-weight: 700;}
-.myopac_table thead tr td { padding: 2px; font-weight: 500; border: 1px solid #808080;}
-.myopac_table td { padding: 3px; }
-.myopac_form_pic { width: 20px; height: 20px; }
-
-.tips { padding: 2px; text-align: center; border: solid #E0E0E0 3px; -moz-border-radius: 3px; width: 99%; }
-
-.holds_cell { border: 1px solid #E0E0E0; padding: 5px; width: 50%;}
-.myopac_update_cell { border: 3px solid #E0E0E0; width:100%; padding-top: 4px; padding-bottom: 4px;}
-.myopac_update_span { padding: 5px;}
-
-.lowhits_div { width: 100%; border-top: 1px solid #E0E0E0; text-align: center;
- padding-top: 8px; padding-bottom: 8px; }
-
-.rdetail_extras_div {
- border-top: 3px solid #E0E0E0;margin-top: 3px; padding-top: 5px; width: 100%;}
-
-.copy_info_region_row {
- padding: 6px;
- border: 2px solid #E0E0E0;
- font-weight: 600;
-}
-
-.rdetail_extras_td { padding-right: 15px; padding-left: 15px; border-right: 1px solid #888; }
-.rdetails_extra_links { border: 1px solid #808080; padding-right: 5px; padding-left: 5px; }
-
-
-.cn_browse_item { height: 190px; }
-.cn_browse_info { padding: 4px; border-bottom: 1px dashed #E0E0E0;}
-
-.bookshelf {
- /*background-image: url(http://10.4.0.10/woodgrain.jpeg);*/
- /*
- background-image: url(http://dev.gapines.org/opac/images/woodgrain.jpg);
- background-repeat: repeat;
- */
- border-bottom: 1px solid black;
-}
-
-.cn_browse_loading { width: 95%; padding: 15px; text-align: center; background: #E0F0E0; }
-
-.cn_browse_home_cn { border: 2px solid #E0F0E0; background: green; font-weight: 700;}
-
-.rdetail_context_row { background: #F0E0E0; }
-
-.unadorned_link { text-decoration: none; vertical-align: bottom; }
-
-
-/* ie does not support disabling <option> elements */
-.disabled_option { color: #808080; }
-
-.copy_more_info { padding-left: 6px; color: #804070; }
-
-.invalid_hold { background: #F0F0D0; }
-.myopac_summary_table td { padding : 3px; }
-
-.jacket_attrib { font-size: 7pt; }
-
-/* block that contains footer links and copyright */
-#copyright_block {
- width: 100%;
- text-align: center;
- vertical-align: bottom;
- margin-top: 10px;
-}
-
-/* block that contains the footer links */
-#footer_links {
- width: 80%;
- text-align: center;
- padding: 10px;
- margin: auto;
-}
-
-/* span for each link in the footer */
-.footer-link {
- margin-left: 10px;
- margin-right: 10px;
-}
-
-/* block that contains the copyright text */
-#copyright_text {
- margin-top: 4px;
-}
-
-/* block that contains the logo */
-#footer_logo {
- text-align: center;
- margin: auto;
-}
-
-#opac.result.sort { margin-left: 5px; }
-
-#xul_recipient_me { margin-left: 25px; }
-#myopac_holds_thaw_date_form {padding: 10px; text-align: center;}
-#myopac_holds_freeze_select_thaw {margin-right: 100px; margin-left: 100px; }
-
-/* titles in result list */
-/*
-.result_table_title_cell .search_link {
- font-weight: bold;
-}
-*/
-
-.search_link {
- color: #005596;
-}
-
-.search_link:visited {
- color: #005596;
-}
-
-.search_link:hover {
- color: red;
- text-decoration: none;
-}
-
-.libselect {
- text-decoration: none;
-}
+++ /dev/null
-
-attachEvt("common", "run", advgInit);
-attachEvt("common", "locationChanged", advSyncCopyLocLink );
-
-var COOKIE_NOGROUP_RECORDS = 'grpt';
-var advSelectedOrg = null;
-
-function advgInit() {
-
- /* XXX */
- if( cookieManager.read(COOKIE_NOGROUP_RECORDS) || SHOW_MR_DEFAULT )
- $('adv_group_titles').checked = true;
-
- $n($('adv_global_tbody'), 'term').focus();
-
- var extras = [
- FETCH_LIT_FORMS,
- FETCH_ITEM_FORMS,
- FETCH_ITEM_TYPES,
- FETCH_AUDIENCES,
- FETCH_BIB_LEVELS
- ];
-
- for( var x in extras ) {
-
- var req = new Request(extras[x]);
-
- if(x == 0) req.request.sel = $('adv_global_lit_form');
- if(x == 1) req.request.sel = $('adv_global_item_form');
- if(x == 2) req.request.sel = $('adv_global_item_type');
- if(x == 3) req.request.sel = $('adv_global_audience');
- if(x == 4) req.request.sel = $('adv_global_bib_level');
-
- req.callback(advDrawBibExtras);
- req.send();
- }
-
- var input = $n($('adv_global_trow'), 'term');
- input.focus();
- setEnterFunc(input, advSubmitGlobal);
-
- if(getSort() && getSortDir()) {
- setSelector($('adv_global_sort_by'), getSort());
- setSelector($('adv_global_sort_dir'), getSortDir());
- if(getSort() != 'rel')
- $('adv_global_sort_dir').disabled = false;
- }
-
- if(getAvail())
- $('opac.result.limit2avail').checked = true;
-
- // not sure we want to propogate the pubdate filter,
- // since other filters are not propogated
- //advInitPubFilter();
-
- if(!new CGI().param(PARAM_NOPERSIST_SEARCH))
- initSearchBoxes();
- advSyncCopyLocLink(getLocation());
-}
-
-function advInitPubFilter() {
- var i1 = $('adv_global_pub_date_1');
- var i2 = $('adv_global_pub_date_2');
- var sel = $('adv_global_pub_date_type');
- if(getPubdBefore()) {
- i1.value = getPubdBefore();
- setSelector(sel, 'before');
- } else if(getPubdAfter()) {
- i1.value = getPubdAfter();
- setSelector(sel, 'after');
- } else if(getPubdBetween()) {
- var values = getPubdBetween().split(',');
- i1.value = values[0]
- if(values[0] == values[1]) {
- setSelector(sel, 'equals');
- } else {
- setSelector(sel, 'between');
- i2.value = values[1];
- }
- }
-}
-
-function advSyncCopyLocLink(org) {
- // display the option to filter by copy location
- advLocationsLoaded = false;
- advSelectedOrg = org;
- removeChildren($('adv_copy_location_filter_select'));
-
- if(isTrue(findOrgType(findOrgUnit(org).ou_type()).can_have_vols())) {
- unHideMe($('adv_copy_location_filter_row'));
- advLoadCopyLocations(org);
- } else {
- hideMe($('adv_copy_location_filter_row'));
- }
-
-}
-
-function clearSearchBoxes() {
- var rows = $('adv_global_tbody').getElementsByTagName('tr');
- for(var t = 0; t < rows.length; t++) {
- if($n(rows[t], 'term')) {
- $n(rows[t], 'term').value = '';
- setSelector($n(rows[t], 'contains'), 'contains');
- setSelector($n(rows[t], 'type'), 'keyword');
- }
- }
- $n(rows[0], 'term').focus();
-}
-
-
-function initSearchBoxes() {
- /* loads the compiled search from the search cookie
- and sets the widgets accordingly */
-
- search = cookieManager.read(COOKIE_SEARCH);
- if(!search) return;
- _debug("loaded compiled search cookie: " + search);
-
- search = JSON2js(search);
- if(!search) return;
-
- var types = getObjectKeys(search.searches);
-
- // if we have browser cached data, clear it before populating from cookie
- if (search.searches[types[0]].term)
- clearSearchBoxes();
-
- /* pre-add the needed rows */
- while($('adv_global_tbody').getElementsByTagName('tr').length - 1 < types.length)
- advAddGblRow();
-
- var rows = $('adv_global_tbody').getElementsByTagName('tr');
-
- for(var t = 0; t < types.length; t++) {
- var row = rows[t];
- setSelector($n(row, 'type'), types[t]);
- var term = search.searches[types[t]].term;
-
- /* if this is a single -<term> search, set the selector to nocontains */
- if(match = term.match(/^-(\w+)$/)) {
- term = match[1];
- setSelector($n(row, 'contains'), 'nocontains');
- }
- $n(row, 'term').value = term;
- }
-}
-
-function advAddGblRow() {
- var tbody = $("adv_global_tbody");
- var newrow = $("adv_global_trow").cloneNode(true);
- tbody.insertBefore(newrow, $("adv_global_addrow"));
- var input = $n(newrow, "term");
- input.value = "";
- setEnterFunc(input, advSubmitGlobal);
- $n(newrow, 'type').focus();
-}
-
-function advDrawBibExtras(r) {
- var data = r.getResultObject();
- var sel = r.sel;
-
- data = data.sort( /* sort alphabetically */
- function(a,b) {
- if( a.value() < b.value() ) return -1;
- if( a.value() > b.value() ) return 1;
- return 0;
- }
- );
-
- for( var d = 0; d < data.length; d++ ) {
- var thing = data[d];
- var opt = insertSelectorVal( sel, -1, thing.value(), thing.code() );
- opt.setAttribute('title', thing.value());
- }
-}
-
-function advSelToStringList(sel) {
- var list = getSelectedList(sel);
- var vals = [];
- for( var i = 0; i < list.length; i++ ) {
- var str = list[i];
- for( var j = 0; j < str.length; j++ ) {
- //if(str.charAt(j) == ' ') continue;
- vals.push(str.charAt(j));
- }
- }
- return vals.toString();
-}
-
-function advGetVisSelectorVals(id) {
- var basic = id + '_basic';
- if(! $(id).className.match(/hide_me/))
- return advSelToStringList($(id));
- return advSelToStringList($(basic));
-}
-
-function advSubmitGlobal() {
-
- var sortdir = getSelectorVal($('adv_global_sort_dir'));
- var sortby = getSelectorVal($('adv_global_sort_by'));
-
- var litforms = advGetVisSelectorVals('adv_global_lit_form');
- var itemforms = advGetVisSelectorVals('adv_global_item_form');
- var itemtypes = advGetVisSelectorVals('adv_global_item_type');
- var audiences = advGetVisSelectorVals('adv_global_audience');
- var biblevels = advGetVisSelectorVals('adv_global_bib_level');
- var locations = getSelectedList($('adv_copy_location_filter_select')) + '';
- var languages = getSelectedList($('adv_global_lang')) + '';
- var limit2avail = $('opac.result.limit2avail').checked ? 1 : ''
-
- var searches = advBuildSearchBlob();
- if(!searches) return;
-
- clearSearchParams();
-
- var args = {};
- args.page = MRESULT;
- args[PARAM_ITEMFORM] = itemforms;
- args[PARAM_ITEMTYPE] = itemtypes;
- args[PARAM_BIBLEVEL] = biblevels;
- args[PARAM_LITFORM] = litforms;
- args[PARAM_AUDIENCE] = audiences;
- args[PARAM_LANGUAGE] = languages;
- args[PARAM_COPYLOCS] = locations;
- //args[PARAM_SEARCHES] = js2JSON(searches); /* break these out */
- args[PARAM_DEPTH] = depthSelGetDepth();
- args[PARAM_LOCATION] = depthSelGetNewLoc();
- args[PARAM_SORT] = sortby;
- args[PARAM_SORT_DIR] = sortdir;
- args[PARAM_ADVTYPE] = ADVTYPE_MULTI;
- args[PARAM_STYPE] = "";
- args[PARAM_TERM] = searches;
- args[PARAM_AVAIL] = limit2avail;
-
- // publicate year filtering
- var pub1;
- if( (pub1 = $('adv_global_pub_date_1').value) && (''+pub1).match(/\d{4}/)) {
- switch(getSelectorVal($('adv_global_pub_date_type'))) {
- case 'equals':
- args[PARAM_PUBD_BETWEEN] = pub1+','+pub1;
- break;
- case 'before':
- args[PARAM_PUBD_BEFORE] = pub1;
- break;
- case 'after':
- args[PARAM_PUBD_AFTER] = pub1;
- break;
- case 'between':
- var pub2 = $('adv_global_pub_date_2').value;
- if((''+pub2).match(/\d{4}/))
- args[PARAM_PUBD_BETWEEN] = pub1+','+pub2;
- break;
- }
- }
-
- /* pubdate sorting causes a record (not metarecord) search */
- if( sortby == SORT_TYPE_PUBDATE || !$('adv_group_titles').checked ) {
- args.page = RRESULT;
- args[PARAM_RTYPE] = RTYPE_MULTI;
- }
-
- if($('adv_group_titles').checked )
- cookieManager.write(COOKIE_NOGROUP_RECORDS,'1',-1);
- else
- cookieManager.write(COOKIE_NOGROUP_RECORDS,'');
-
-
- goTo(buildOPACLink(args));
-}
-
-
-function advBuildSearchBlob() {
-
- var searches = '';
- var tbody = $('adv_global_tbody');
- var rows = tbody.getElementsByTagName('tr');
-
- for( var i = 0; i < rows.length; i++ ) {
-
- var row = rows[i];
- if(!(row && typeof row == 'object')) continue;
- if(!row.getAttribute('type')) continue;
-
- var stype = getSelectorVal($n(row, 'type'));
- var contains = getSelectorVal($n(row, 'contains'));
- var term = $n(row, 'term').value;
- if(!term) continue;
-
- var string = "";
- switch(contains) {
- case 'contains' :
- string += " " + term;
- break;
-
- case 'nocontains' : {
- var words = term.split(" ");
- for( var j in words )
- string += " -" + words[j];
- }
- break;
-
- case 'exact' :
- if(term.indexOf('"') > -1) string += " " + term;
- else string += " \"" + term + "\"";
- break;
- }
- if(string) {
- string = string.replace(/'/g,' ');
- string = string.replace(/\\/g,' ');
- string = string.replace(/^\s*/,'');
- string = string.replace(/\s*$/,'');
- //searches[stype].term = string;
- if(searches) searches += ' ';
- searches += stype + ': '+ string;
- }
- }
-
- _debug("created search query " + searches);
- return searches;
-}
-
-
-// retrieves the shelving locations
-var advLocationsLoaded = false;
-function advLoadCopyLocations(org) {
- if(org == null)
- org = advSelectedOrg;
- var req = new Request(FETCH_COPY_LOCATIONS, org);
- req.callback(advShowCopyLocations);
- req.send();
- advLocationsLoaded = true;
-}
-
-// inserts the shelving locations into the multi-select
-function advShowCopyLocations(r) {
- var locations = r.getResultObject();
- var sel = $('adv_copy_location_filter_select');
- for(var i = 0; i < locations.length; i++)
- insertSelectorVal(sel, -1, locations[i].name(), locations[i].id());
-}
-
-
+++ /dev/null
-/* advanced search interface */
-
-attachEvt("common", "run", advInit);
-
-function advInit() {
-
- /* propogate these? */
-
- depthSelInit();
- setEnterFunc( $n( $('advanced.marc.tbody'), 'advanced.marc.value'), advMARCRun );
-
- unHideMe($('adv_quick_search_sidebar'));
-
- /*
- if(isXUL())
- setSelector($('adv_quick_type'), 'tcn'); */
-
- setEnterFunc($('adv_quick_text'), advGenericSearch);
-
- unHideMe($('adv_marc_search_sidebar'));
-}
-
-
-function advAddMARC() {
- var newt = $('adv_sdbar_table').cloneNode(true);
- newt.id = "";
- unHideMe($n(newt, 'crow'));
- $n(newt, 'advanced.marc.tag').value = "";
- $n(newt, 'advanced.marc.subfield').value = "";
- $n(newt, 'advanced.marc.value').value = "";
- $('adv_marc_search_sidebar').insertBefore(newt, $('adv_marc_submit'));
-}
-
-function advMARCRun() {
-
- clearSearchParams();
-
- var div = $('adv_marc_search_sidebar');
- var tbodies = div.getElementsByTagName('tbody');
- var searches = [];
-
- for( var i = 0; i < tbodies.length; i++ ) {
- var tbody = tbodies[i];
- var val = advExtractMARC(tbody);
- if(val) searches.push(val);
- }
-
- if(searches.length == 0) return;
-
- var arg = {};
- arg.page = RRESULT;
- arg[PARAM_FORM] = 'all'
- arg[PARAM_RTYPE] = RTYPE_MARC;
- arg[PARAM_OFFSET] = 0;
- arg[PARAM_DEPTH] = depthSelGetDepth();
- arg[PARAM_LOCATION] = depthSelGetNewLoc();
- arg[PARAM_SEARCHES] = js2JSON(searches);
- arg[PARAM_ADVTYPE] = ADVTYPE_MARC;
- arg[PARAM_TERM] = "";
-
- goTo(buildOPACLink(arg));
-}
-
-
-/* EXAMPLE => {"term":"0516011901","restrict":[{"tag":"020","subfield":"a"}]} */
-function advExtractMARC(tbody) {
- if(!tbody) return null;
- var term = $n(tbody, 'advanced.marc.value').value;
- if(!term) return null;
-
- var subfield = $n(tbody, 'advanced.marc.subfield').value;
- if(!subfield) subfield = "_";
-
- var tag = $n(tbody, 'advanced.marc.tag').value;
- if(!tag) return null;
-
- return { 'term' : term.toLowerCase(), 'restrict' : [ { 'tag' : tag, 'subfield' : subfield } ] };
-}
-
-function advGenericSearch() {
- clearSearchParams();
- var type = getSelectorVal($('adv_quick_type'));
-
- var term = $('adv_quick_text').value;
- if(!term) return;
-
- var arg = {};
-
- switch(type) {
-
- case 'isbn' :
- arg.page = RRESULT;
- arg[PARAM_STYPE] = "";
- arg[PARAM_TERM] = "";
- arg[PARAM_RTYPE] = RTYPE_ISBN;
- arg[PARAM_OFFSET] = 0;
- arg[PARAM_ADVTERM] = term.toLowerCase();
- break;
-
- case 'issn' :
- arg.page = RRESULT;
- arg[PARAM_STYPE] = "";
- arg[PARAM_TERM] = "";
- arg[PARAM_ADVTERM] = term.toLowerCase();
- arg[PARAM_OFFSET] = 0;
- arg[PARAM_RTYPE] = RTYPE_ISSN;
- break;
-
- case 'tcn' :
- arg.page = RRESULT;
- arg[PARAM_STYPE] = "";
- arg[PARAM_TERM] = "";
- arg[PARAM_ADVTERM] = term;
- arg[PARAM_OFFSET] = 0;
- arg[PARAM_RTYPE] = RTYPE_TCN;
- break;
-
- case 'barcode':
- advFindBarcode(term);
- break;
-
-
- case 'cn':
- arg.page = CNBROWSE;
- arg[PARAM_CN] = term;
- arg[PARAM_DEPTH] = depthSelGetDepth();
- arg[PARAM_LOCATION] = depthSelGetNewLoc();
- break;
-
- case 'lccn':
- arg.page = RRESULT;
- arg[PARAM_FORM] = 'all'
- arg[PARAM_RTYPE] = RTYPE_MARC;
- arg[PARAM_OFFSET] = 0;
- arg[PARAM_DEPTH] = depthSelGetDepth();
- arg[PARAM_LOCATION] = depthSelGetNewLoc();
- arg[PARAM_SEARCHES] = js2JSON([{ 'term' : term.toLowerCase(),
- 'restrict' : [ { 'tag' : '010', 'subfield' : '_' } ] }]);
- arg[PARAM_ADVTYPE] = ADVTYPE_MARC;
- arg[PARAM_TERM] = "";
- break;
-
-
- default: alert('not done');
- }
-
- if(arg.page) goTo(buildOPACLink(arg));
-}
-
-
-function advFindBarcode(barcode) {
- var req = new Request(FETCH_BIB_ID_BY_BARCODE, barcode);
- req.callback(advDrawBarcode);
- req.request.alertEvent = false;
- req.send();
-}
-
-function advDrawBarcode(r) {
- titleid = r.getResultObject();
- if(checkILSEvent(titleid)) {
- alertId('myopac.copy.not.found');
- return;
- }
- if(!titleid) return;
- var copyCnt = sortOutCopies(getLocation(), titleid, null);
- var args = {};
- if (copyCnt <= lookUpLimit) {
- args.page = RDETAIL;
- } else {
- args[PARAM_RTYPE] = RTYPE_TITLE;
- args.page = RSDETAIL;
- }
- args[PARAM_RID] = titleid;
-
- location.href = buildOPACLink(args);
-}
-
-
-
+++ /dev/null
-/* ---------------------------------------------------------------------------
- * Copyright (C) 2009 Equinox Software, Inc.
- * Mike Rylander <miker@esilibrary.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * ---------------------------------------------------------------------------
- */
-
-if(!dojo._hasResource["bibtemplate"]) {
-
- dojo.require('dojox.data.dom');
- dojo._hasResource["bibtemplate"] = true;
- dojo.provide("bibtemplate");
- dojo.declare('bibtemplate', null, {
-
- constructor : function(kwargs) {
- this.root = kwargs.root;
- this.record = kwargs.record;
- this.org_unit = kwargs.org_unit || '-';
- },
-
- render : function() {
- var all_slots = dojo.query('*[type^=opac/slot-data]', this.root);
-
- var slots = {};
- dojo.forEach(all_slots, function(s){
- var datatype = 'marcxml';
-
- if (s.getAttribute('type').indexOf('+') > -1)
- datatype = s.getAttribute('type').split('+').reverse()[0];
-
- if (!slots[datatype]) slots[datatype] = [];
- slots[datatype].push(s);
- });
-
- for (var datatype in slots) {
-
- (function (slot_list,dtype,rec,org) {
-
- dojo.xhrGet({
- url: '/opac/extras/unapi?id=tag:opac:biblio-record_entry/' + rec + '/' + org + '&format=' + datatype,
- handleAs: 'xml',
- load: function (bib) {
-
- dojo.forEach(slot_list, function (slot) {
- var joiner = slot.getAttribute('join') || ' ';
-
- var slot_handler = dojo.map(
- dojo.query( '*[type=opac/slot-format]', slot ).orphan(),
- function(x){ return dojox.data.dom.textContent(x) || x.innerHTML }
- ).join('');
-
- if (slot_handler) slot_handler = new Function('item', slot_handler);
- else slot_handler = new Function('item','return dojox.data.dom.textContent(item);');
-
- var item_list = dojo.query(
- slot.getAttribute('query'),
- bib
- );
-
- if (item_list.length) slot.innerHTML = dojo.map(item_list, slot_handler).join(joiner);
-
- delete(slot_handler);
-
- });
- }
- });
-
- })(slots[datatype],datatype,this.record,this.org_unit);
-
- }
-
- return true;
- }
- });
-
-}
+++ /dev/null
-/**
- Functions to build SFX url and check holdings in SFX for the current record
- 2009 Guoying Liu
- */
-
-//For now, only valid ISSN enables SFX button
-function rdetailShowSFXButton( issnText ){
- if (document.getElementById("rdetail_sfx_check"))
- if( build_sfx_url(issnText) )
- unHideMe($("rdetail_sfx_check"));
-}
-
-//Build SFX url based on ISSN, return true if the url is successfully built
-//issnText can be retrieved from marcrec_State_Change, so simply pass it
-function build_sfx_url( issnText ) {
- issnText = cleanText(issnText, " ")
-
- if (issnText == "")
- return false;
-
- var http_str = "http://sfx.scholarsportal.info/windsor-default?url_ver=Z39.88-2004"
- + "&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&ctx_enc=info:ofi/enc:UTF-8&ctx_ver=Z39.88-2004"
- + "&rfr_id=info:sid/sfxit.com:azlist&sfx.ignore_date_threshold=1"
- + "&rft.issn=" + escape( issnText )
-
- var issnCheck = $("rdetail_sfx_check");
- issnCheck.setAttribute(
- "href",
- http_str
- );
- issnCheck.setAttribute("target", "SFXWindow");
-
- return true;
-}
-
-/* As directly retrieving ISSN text from marcrec_State_Change, following ISSN or MARC related methods are obsolete
- but may be useful for some other MARC data field customizations
- */
-//only return first ISSN subfield value with code "a"
-function getMarcDataISSNText(){
- var issnItems = getMarcDataFieldItems("022");
- if (issnItems == null)
- return "";
-
- //only retrieve code a subfiled for the first ISSN
- var issnSubfildItems = getMarcSubFieldItems(issnItems[0],"a");
- if (issnSubfildItems == null)
- return "";
-
- //only return first subfield value with code "a"
- return getISSNText(issnSubfildItems[0]);
-}
-
-function getMarcDataFieldItems( dataFieldTag ) {
- var marcItems;
- var MARCXML;
-
- MARCXML = MARCRequest.responseXML;
-
- if ( MARCXML == null )
- return null;
-
- //Marc data tag always 3 digits long.
- if (dataFieldTag.length != 3)
- return null;
-
- //for MARC21, 00X: control fields, others are data fields
- if ((dataFieldTag.charAt(0) == "0") && (dataFieldTag.charAt(1) == "0"))
- marcItems = getElementsByAttribute( MARCXML, "controlfield", "tag", dataFieldTag );
- else
- marcItems = getElementsByAttribute( MARCXML, "datafield", "tag", dataFieldTag );
-
- return marcItems;
-}
-
-//passing the parent item and subfield code, if code not set, return all code
-function getMarcSubFieldItems( dataFieldItem, strSubFieldCode ) {
- return getElementsByAttribute( dataFieldItem, "subfield", "code", ( strSubFieldCode != null ? strSubFieldCode : "*" ) );
-}
-
-function getISSNText( issnElement ) {
-// if (BrowserDetect.browser == "Explorer"){
- if (navigator.appName == "Microsoft Internet Explorer"){
- return cleanText(dojox.data.dom.textContent( issnElement ), " ");
- }else {
- return cleanText(issnElement.textContent, " ");
- }
-}
-
-/* Clean text, trim beginning space, and only return a substring from beginning till the Delimiter
- The Delimiter can be a character or a string
- */
-function cleanText(fullText, seperator) {
- if(fullText) {
- fullText= fullText.toString().replace(/^\s+/,"");
- var idx = fullText.indexOf(seperator);
- if(idx > -1) { fullText = fullText.substring(0, idx); }
- } else
- fullText = "";
-
- return fullText;
-}
\ No newline at end of file
+++ /dev/null
-var cnOffset = 0;
-var cnCount = 9;
-var cnBrowseCN;
-var cnBrowseOrg;
-
-if( findCurrentPage() == CNBROWSE ) {
- attachEvt("common", "run", cnBrowseLoadSearch);
- attachEvt( "common", "locationUpdated", cnBrowseResubmit );
- attachEvt( "common", "depthChanged", cnBrowseResubmit );
-}
-
-
-function cnBrowseLoadSearch() {
- unHideMe($('cn_browse'));
- cnBrowseGo(getCallnumber(), getLocation(), getDepth());
-}
-
-
-function cnBrowseResubmit() {
- var args = {}
- args[PARAM_CN] = cnBrowseCN;
- args[PARAM_DEPTH] = depthSelGetDepth();
- args[PARAM_LOCATION] = getNewSearchLocation();
- goTo(buildOPACLink(args));
-}
-
-
-
-function cnBrowseGo(cn, org, depth) {
- if(depth == null) depth = getDepth();
-
- org = findOrgUnit(org);
- cnOffset = 0;
-
- do {
- var t = findOrgType(org.ou_type());
- if( t.depth() > depth )
- org = findOrgUnit(org.parent_ou());
- else break;
- } while(true);
-
- cnBrowseOrg = org;
- cnBrowseCN = cn;
-
- _cnBrowseGo( cn, org );
- appendClear($('cn_browse_where'), text(org.name()));
-}
-
-
-function _cnBrowseGo( cn, org ) {
- var req = new Request( FETCH_CNBROWSE, cn, org.id(), cnCount, cnOffset );
- req.callback( cnBrowseDraw );
- req.send();
-}
-
-function cnBrowseNext() {
- cnOffset++;
- _cnBrowseGo( cnBrowseCN, cnBrowseOrg );
-}
-
-function cnBrowsePrev() {
- cnOffset--;
- _cnBrowseGo( cnBrowseCN, cnBrowseOrg );
-}
-
-
-function cnBrowseDraw( r ) {
- var list = r.getResultObject();
- _cnBrowseDraw(list);
-}
-
-
-var cnTbody;
-var cnRowT;
-var cnTdT;
-function _cnBrowseDraw( list ) {
-
- if(!cnTbody) {
- cnTbody = $('cn_tbody');
- cnRowT = $('cn_browse_row');
- cnTdT = cnRowT.removeChild($('cn_browse_td'));
- cnTbody.removeChild(cnRowT);
- }
- removeChildren(cnTbody);
-
- var counter = 1;
- var currentRow = cnRowT.cloneNode(true);
- cnTbody.appendChild(currentRow);
-
- for( var idx in list ) {
-
-
- var currentTd = cnTdT.cloneNode(true);
- currentRow.appendChild(currentTd);
-
- var td = cnTdT.cloneNode(true);
-
- var obj = list[idx];
- var cn = obj.cn;
- var mods = obj.mods;
-
- var cn_td = $n(currentTd, 'cn_browse_cn');
- var lib_td = $n(currentTd, 'cn_browse_lib');
- var title_td = $n(currentTd, 'cn_browse_title');
- var author_td = $n(currentTd, 'cn_browse_author');
- var pic_td = $n(currentTd, 'cn_browse_pic');
-
- cn_td.appendChild(text(cn.label()));
- lib_td.appendChild(text(findOrgUnit(cn.owning_lib()).name()));
- cnBrowseDrawTitle(mods, title_td, author_td, pic_td);
-
- if( counter++ % 3 == 0 ) {
- counter = 1;
- currentRow = cnRowT.cloneNode(true);
- cnTbody.appendChild(currentRow);
- }
- }
-}
-
-
-function cnBrowseDrawTitle(mods, title_td, author_td, pic_td) {
-
- buildTitleDetailLink(mods, title_td);
- buildSearchLink(STYPE_AUTHOR, mods.author(), author_td);
- pic_td.setAttribute("src", buildISBNSrc(cleanISBN(mods.isbn())));
-
- var args = {};
- args.page = RDETAIL;
- args[PARAM_OFFSET] = 0;
- args[PARAM_RID] = mods.doc_id();
- args[PARAM_MRID] = 0;
- pic_td.parentNode.setAttribute("href", buildOPACLink(args));
-}
-
+++ /dev/null
-
-function containerDoRequest( req, callback, args ) {
-
- if( callback ) {
- req.callback( callback );
- req.request.args = args;
- req.send();
- return null;
- }
-
- req.send(true);
- return req.result();
-}
-
-
-function containerFetchAll( callback, args ) {
- var req = new Request(
- FETCH_CONTAINERS, G.user.session, G.user.id(), 'biblio', 'bookbag' );
- return containerDoRequest( req, callback, args );
-}
-
-function containerFlesh( id, callback, args ) {
- var req = new Request( FLESH_CONTAINER, G.user.session, 'biblio', id );
- return containerDoRequest( req, callback, args );
-}
-
-function containerDelete( id, callback, args ) {
- var req = new Request( DELETE_CONTAINER, G.user.session, 'biblio', id );
- return containerDoRequest(req, callback, args );
-}
-
-
-function containerCreate( name, pub, callback, args ) {
-
- var container = new cbreb();
- container.btype('bookbag');
- container.owner( G.user.id() );
- container.name( name );
- if(pub) container.pub('t');
- else container.pub('f');
-
- var req = new Request(
- CREATE_CONTAINER, G.user.session, 'biblio', container );
- return containerDoRequest( req, callback, args );
-}
-
-function containerUpdate( container, callback, args ) {
- var req = new Request(UPDATE_CONTAINER, G.user.session, 'biblio', container);
- return containerDoRequest(req, callback, args);
-}
-
-function containerCreateItem( containerId, target, callback, args ) {
-
- var item = new cbrebi();
- item.target_biblio_record_entry(target);
- item.bucket(containerId);
-
- var req = new Request( CREATE_CONTAINER_ITEM,
- G.user.session, 'biblio', item );
-
- return containerDoRequest( req, callback, args );
-}
-
-function containerRemoveItem( id, callback, args ) {
- var req = new Request( DELETE_CONTAINER_ITEM, G.user.session, 'biblio', id );
- return containerDoRequest( req, callback, args );
-}
+++ /dev/null
-var cpdTemplate;
-var cpdCounter = 0;
-var cpdNodes = {};
-
-/* showDueDate will show the due date in the OPAC */
-var showDueDate = true;
-/* showDueTime will show the due time (hours and minutes) in the OPAC;
- if showDueDate is false, then showDueTime has no effect
-*/
-var showDueTime = true;
-
-/* order status regular expression */
-var orderRE = new RegExp("order","gi");
-
-/* process status regular expression */
-var processRE = new RegExp("process","gi");
-
-/* url for process */
-var processURL = 'http://web4.uwindsor.ca/units/leddy/leddy.nsf/InProcessRequest?OpenForm';
-
-function cpdBuild( contextTbody, contextRow, record, callnumber, orgid, depth, copy_location ) {
- var i = cpdCheckExisting(contextRow);
- if(i) return i;
-
- var counter = cpdCounter++;
-
- /* yank out all of the template rows */
- if(!cpdTemplate) cpdTemplate = $('rdetail_volume_details_row');
- var templateRow = cpdTemplate.cloneNode(true);
- templateRow.id = 'cpd_row_' + counter;
-
- /* shove a dummy a tag in before the context previous sibling */
- /*
- contextTbody.insertBefore(
- elem('a',{name:'slot_'+templateRow.id}), contextRow.previousSibling);
- goTo('#slot_'+templateRow.id);
- */
-
- if(isXUL()) {
- /* unhide before we unhide/clone the parent */
- unHideMe($n(templateRow, 'age_protect_label'));
- unHideMe($n(templateRow, 'create_date_label'));
- unHideMe($n(templateRow, 'holdable_label'));
- }
-
- //if (isXUL() || showDueDate) {
- if (isXUL()) {
- unHideMe($n(templateRow, 'due_date_label'));
- }
-
- unHideMe(templateRow);
-
- var print = $n(templateRow,'print');
- print.onclick = function() { cpdBuildPrintPane(
- contextRow, record, callnumber, orgid, depth, copy_location) };
-
- var mainTbody = $n(templateRow, 'copies_tbody');
- var extrasRow = mainTbody.removeChild($n(mainTbody, 'copy_extras_row'));
-
- var req = new Request(FETCH_COPIES_FROM_VOLUME, record.doc_id(), callnumber, orgid);
- req.callback(cpdDrawCopies);
-
- req.request.args = {
- contextTbody : contextTbody, /* tbody that holds the contextrow */
- contextRow : contextRow, /* the row our new row will be inserted after */
- record : record,
- callnumber : callnumber,
- orgid : orgid,
- depth : depth,
- templateRow : templateRow, /* contains everything */
- copy_location : copy_location,
- mainTbody : mainTbody, /* holds the copy rows */
- extrasRow : extrasRow, /* wrapper row for all extras */
- counter : counter
- };
-
- if( contextRow.nextSibling )
- contextTbody.insertBefore( templateRow, contextRow.nextSibling );
- else
- contextTbody.appendChild( templateRow );
-
- req.send();
- _debug('creating new details row with id ' + templateRow.id);
- cpdNodes[templateRow.id] = { templateRow : templateRow };
- return templateRow.id;
-}
-
-
-function cpdBuildPrintWindow(record, orgid) {
- var div = $('rdetail_print_details').cloneNode(true);
- div.id = "";
-
- $n(div, 'lib').appendChild(text(findOrgUnit(orgid).name()));
- $n(div, 'title').appendChild(text(record.title()));
- $n(div, 'author').appendChild(text(record.author()));
- $n(div, 'edition').appendChild(text(record.edition()));
- $n(div, 'pubdate').appendChild(text(record.pubdate()));
- $n(div, 'publisher').appendChild(text(record.publisher()));
- $n(div, 'phys').appendChild(text(record.physical_description()));
-
- return div;
-}
-
-function cpdStylePopupWindow(div) {
- var tds = div.getElementsByTagName('td');
- for( var i = 0; i < tds.length ; i++ ) {
- var td = tds[i];
- var sty = td.getAttribute('style');
- if(!sty) sty = "";
- td.setAttribute('style', sty + 'padding: 2px; border: 1px solid #F0F0E0;');
- if( td.className && td.className.match(/hide_me/) )
- td.parentNode.removeChild(td);
- }
-}
-
-
-/* builds a friendly print window for this CNs data */
-function cpdBuildPrintPane(contextRow, record, callnumber, orgid, depth, copy_location) {
-
- var div = cpdBuildPrintWindow( record, orgid);
-
- $n(div, 'cn').appendChild(sortOutCNmaps(orgid,callnumber,copy_location));
-
- unHideMe($n(div, 'copy_header'));
-
- var subtbody = $n(contextRow.nextSibling, 'copies_tbody');
- var rows = subtbody.getElementsByTagName('tr');
-
- for( var r = 0; r < rows.length; r++ ) {
- var row = rows[r];
- if(!row) continue;
- var name = row.getAttribute('name');
- if( name.match(/extras_row/) ) continue; /* hide the copy notes, stat-cats */
- var clone = row.cloneNode(true);
- var links = clone.getElementsByTagName('a');
- for( var i = 0; i < links.length; i++ )
- links[i].style.display = 'none';
-
- $n(div, 'tbody').appendChild(clone);
- }
-
- cpdStylePopupWindow(div);
- openWindow( div.innerHTML);
-}
-
-
-
-/* hide any open tables and if we've already
- fleshed this cn, just unhide it */
-function cpdCheckExisting( contextRow ) {
-
- var existingid;
- var next = contextRow.nextSibling;
-
- if( next && next.getAttribute('templateRow') ) {
- var obj = cpdNodes[next.id];
- if(obj.templateRow.className.match(/hide_me/))
- unHideMe(obj.templateRow);
- else hideMe(obj.templateRow);
- existingid = next.id;
- }
-
- if(existingid) _debug('row exists with id ' + existingid);
-
- for( var o in cpdNodes ) {
- var node = cpdNodes[o];
- if( existingid && o == existingid ) continue;
- hideMe(node.templateRow);
- removeCSSClass(node.templateRow.previousSibling, 'rdetail_context_row');
- }
-
- addCSSClass(contextRow, 'rdetail_context_row');
- if(existingid) return existingid;
- return null;
-}
-
-/*
-function cpdFetchCopies(r) {
- var args = r.args;
- args.cn = r.getResultObject();
- var req = new Request(FETCH_COPIES_FROM_VOLUME, args.cn.id());
- req.request.args = args;
- req.callback(cpdDrawCopies);
- req.send();
-}
-*/
-
-function cpdDrawCopies(r) {
-
- var copies = r.getResultObject();
- var args = r.args;
- var copytbody = $n(args.templateRow, 'copies_tbody');
- var copyrow = copytbody.removeChild($n(copytbody, 'copies_row'));
-
- if(isXUL()) {
- /* unhide before we unhide/clone the parent */
- unHideMe($n(copyrow, 'age_protect_value'));
- unHideMe($n(copyrow, 'create_date_value'));
- unHideMe($n(copyrow, 'copy_holdable_td'));
- }
-
- //if(isXUL() || showDueDate) {
- if(isXUL()) {
- unHideMe($n(copyrow, 'copy_due_date_td'));
- }
-
- for( var i = 0; i < copies.length; i++ ) {
- var row = copyrow.cloneNode(true);
- var copyid = copies[i];
- var req = new Request(FETCH_FLESHED_COPY, copies[i]);
- req.callback(cpdDrawCopy);
- req.request.args = r.args;
- req.request.row = row;
- req.send();
- copytbody.appendChild(row);
- }
-}
-
-function cpdDrawCopy(r) {
- var copy = r.getResultObject();
- var row = r.row;
- var statusStr = copy.status().name();
-
- if (r.args.copy_location && copy.location().name() != r.args.copy_location) {
- hideMe(row);
- return;
- }
-
- $n(row, 'barcode').appendChild(text(copy.barcode()));
- $n(row, 'location').appendChild(text(copy.location().name()));
- //$n(row, 'status').appendChild(text(copy.status().name()));
- //alert(copy.status().name());
- if (processRE.test(statusStr)) {
- var processLink = document.createElement('a');
- processLink.setAttribute('href', processURL);
- processLink.setAttribute('class', 'classic_link');
- var tn = document.createTextNode(copy.status().name());
- processLink.appendChild(tn);
- $n(row, 'status').appendChild(processLink);
- } else {
- $n(row, 'status').appendChild(text(copy.status().name()));
- }//if processRE
-
- if(isXUL()) {
- /* show the hold link */
- var l = $n(row, 'copy_hold_link');
- unHideMe(l);
- l.onclick = function() {
- holdsDrawEditor(
- {
- type : 'C',
- copyObject : copy,
- onComplete : function(){}
- }
- );
- }
-
- /* show the book now link */
- l = $n(row, 'copy_reserve_link');
- unHideMe(l);
- l.onclick = function() {
- // XXX FIXME this duplicates things in cat/util.js
- // Also needs i18n
- dojo.require("fieldmapper.Fieldmapper");
- var r = fieldmapper.standardRequest(
- ["open-ils.booking",
- "open-ils.booking.resources.create_from_copies"],
- [G.user.session, [copy.id()]]
- );
- if (!r) {
- alert("No response from server!");
- } else if (r.ilsevent != undefined) {
- alert("Error from server:\n" + js2JSON(r));
- } else {
- xulG.auth = {"session": {"key": G.user.session}};
- xulG.bresv_interface_opts = {"booking_results": r};
- location.href = "/eg/booking/reservation";
- }
- }
-
-
- if( copy.age_protect() )
- appendClear($n(row, 'age_protect_value'), text(copy.age_protect().name()));
-
- var cd = copy.create_date();
- cd = cd.replace(/T.*/, '');
- $n(row, 'create_date_value').appendChild(text(cd));
-
- var yes = $('rdetail.yes').innerHTML;
- var no = $('rdetail.no').innerHTML;
-
- if( isTrue(copy.holdable()) &&
- isTrue(copy.location().holdable()) &&
- isTrue(copy.status().holdable()) ) {
- $n(row, 'copy_is_holdable').appendChild(text(yes));
- } else {
- $n(row, 'copy_is_holdable').appendChild(text(no));
- }
- }
-
- if (isXUL() || showDueDate) {
- var circ;
- if( copy.circulations() ) {
- circ = copy.circulations()[0];
- if( circ ) {
- var due_time = dojo.date.stamp.fromISOString(circ.due_date().replace(/(T\d\d:\d\d:\d\d)([+-]\d\d)(\d)/, "$1$2:$3"));
- if( showDueTime ) {
- $n(row, 'copy_due_date').appendChild(text(dojo.date.locale.format(due_time, {"formatLength": "medium"})));
- } else {
- $n(row, 'copy_due_date').appendChild(text(dojo.date.locale.format(due_time, {"selector": "date", "formatLength": "medium"})));
- }
- unHideMe($n(r.args.templateRow, 'due_date_label'));
- unHideMe($n(row, 'copy_due_date_td'));
- }
- }
- }
-
- r.args.copy = copy;
- r.args.copyrow = row;
- cpdShowNotes(copy, r.args)
- cpdShowStats(copy, r.args);
-
-}
-
-function _cpdExtrasInit(args) {
-
- var newrid = 'extras_row_' + args.copy.barcode();
- var newrow = $(newrid);
- if(!newrow) newrow = args.extrasRow.cloneNode(true);
- var tbody = $n(newrow, 'extras_tbody');
- var rowt = $n(tbody, 'extras_row');
- newrow.id = newrid;
-
- var cr = args.copyrow;
- var nr = cr.nextSibling;
- var np = args.mainTbody;
-
- /* insert the extras row into the main table */
- if(nr) np.insertBefore( newrow, nr );
- else np.appendChild(newrow);
-
- var link = $n(args.copyrow, 'details_link');
- var link2 = $n(args.copyrow, 'less_details_link');
- var id = newrow.id;
- link.id = id + '_morelink';
- link2.id = id + '_lesslink';
- unHideMe(link);
- hideMe(link2);
-
- link.setAttribute('href',
- 'javascript:unHideMe($("'+link2.id+'")); hideMe($("'+link.id+'"));unHideMe($("'+newrow.id+'"));');
-
- link2.setAttribute('href',
- 'javascript:unHideMe($("'+link.id+'")); hideMe($("'+link2.id+'"));hideMe($("'+newrow.id+'"));');
-
- return [ tbody, rowt ];
-}
-
-function cpdShowNotes(copy, args) {
- var notes = copy.notes();
- if(!notes || notes.length == 0) return;
-
- var a = _cpdExtrasInit(args);
- var tbody = a[0];
- var rowt = a[1];
-
- for( var n in notes ) {
- var note = notes[n];
- if(!isTrue(note.pub())) continue;
- var row = rowt.cloneNode(true);
- $n(row, 'key').appendChild(text(note.title()));
- $n(row, 'value').appendChild(text(note.value()));
- unHideMe($n(row, 'note'));
- unHideMe(row);
- tbody.appendChild(row);
- }
-}
-
-
-function cpdShowStats(copy, args) {
- var entries = copy.stat_cat_entry_copy_maps();
- if(!entries || entries.length == 0) return;
-
- var visibleStatCat = false;
-
- /*
- check all copy stat cats; if we find one that's OPAC visible,
- set the flag and break the loop. If we've found one, or we're
- in the staff client, build the table. if not, we return doing
- nothing, as though the stat_cat_entry_copy_map was empty or null
- */
-
- for( var n in entries )
- {
- var entry = entries[n];
- if(isTrue(entry.stat_cat().opac_visible()))
- {
- visibleStatCat = true;
- break;
- }
- }
-
- if(!(isXUL() || visibleStatCat)) return;
-
- var a = _cpdExtrasInit(args);
- var tbody = a[0];
- var rowt = a[1];
-
- for( var n in entries ) {
- var entry = entries[n];
- if(!(isXUL() || isTrue(entry.stat_cat().opac_visible()))) continue;
- var row = rowt.cloneNode(true);
- $n(row, 'key').appendChild(text(entry.stat_cat().name()));
- $n(row, 'value').appendChild(text(entry.stat_cat_entry().value()));
- unHideMe($n(row, 'cat'));
- unHideMe(row);
- tbody.appendChild(row);
- }
-}
-
+++ /dev/null
-
-attachEvt( "common", "locationChanged", updateLoc );
-
-var _ds;
-var _libselspan;
-var _libselslink;
-var _dselspan;
-var _newlocation = null;
-
-function depthSelInit() {
- _ds = $('depth_selector');
- _ds.onchange = depthSelectorChanged;
- _libselspan = $('lib_selector_span');
- _libsellink = $('lib_selector_link');
- _dselspan = $('depth_selector_span');
-
- if( getLocation() == globalOrgTree.id() ) {
- unHideMe( _libselspan );
- _libsellink.onclick = _opacHandleLocationTagClick;
- } else {
- unHideMe( _dselspan );
- buildLocationSelector();
- }
-
- setSelector(_ds, getDepth());
- _newlocation = getLocation();
-}
-
-
-var orgTreeIsBuilt = false;
-function _opacHandleLocationTagClick() {
-
- swapCanvas(G.ui.common.org_container);
-
- if(!orgTreeIsBuilt) {
- drawOrgTree();
- orgTreeIsBuilt = true;
- }
-
-}
-
-function depthSelGetDepth() {
- var depth = parseInt(_ds.options[_ds.selectedIndex].value);
- if(isNaN(depth)) depth = 0;
- return depth;
-}
-
-function depthSelectorChanged() {
- var i = _ds.selectedIndex;
- if( i == _ds.options.length - 1 ) {
- setSelector( _ds, getDepth() );
- _opacHandleLocationTagClick();
- } else {
- /* this re-submits the search when they change the search range
- disabled for testing...
- */
- /*runEvt('common', 'depthChanged');*/
- }
-}
-
-var chooseAnotherNode;
-function buildLocationSelector(newLoc) {
-
- var loc;
- if(newLoc != null) loc = newLoc;
- else loc = getLocation();
-
- if( loc == globalOrgTree.id() ) return;
-
- var selector = _ds;
- if(!chooseAnotherNode)
- chooseAnotherNode = selector.removeChild(
- selector.getElementsByTagName("option")[0]);
- var node = chooseAnotherNode;
- removeChildren(selector);
-
- var location = findOrgUnit(loc);
- var type;
- if (location) type = findOrgType(location.ou_type());
-
- var orgHiding = checkOrgHiding();
- while( type && location ) {
- var n = node.cloneNode(true);
- n.setAttribute("value", type.depth());
- removeChildren(n);
- n.appendChild(text(type.opac_label()));
- selector.appendChild(n);
- location = findOrgUnit(location.parent_ou());
- if(location) {
- type = findOrgType(location.ou_type());
- if (orgHiding && orgHiding.depth > type.depth()) {
- type = null;
- }
- } else {
- type = null;
- }
- }
-
- selector.appendChild(node);
-}
-
-function getNewSearchDepth() { return newSearchDepth; }
-function getNewSearchLocation() { return (isNull(_newlocation)) ? LOCATION : _newlocation; }
-function depthSelGetNewLoc() { return getNewSearchLocation(); }
-
-function updateLoc(location, depth) {
- if( depth != null ) {
- if(depth != 0 ){
- _libsellink.onclick = _opacHandleLocationTagClick;
- if( location == globalOrgTree.id() ) {
- hideMe( _dselspan );
- unHideMe( _libselspan );
- } else {
- buildLocationSelector(location);
- hideMe( _libselspan );
- unHideMe( _dselspan );
- }
- }
-
- setSelector(_ds, depth);
- newSearchDepth = depth;
- }
-
- _newlocation = location;
- runEvt('common','locationUpdated', location);
-}
-
-
-
+++ /dev/null
-var holdLocs = [109,122];
-var holdsOrgSelectorBuilt = false;
-var holdArgs;
-
-/*
-note: metarecord holds have a holdable_formats field that contains
-item_type(s)-item_forms(s)-language
-item_form and language are optional - if language exist and no
-item_form is specified, use item_type(s)--language
-*/
-
-var noEmailMessage;
-var noEmailMessageXUL;
-
-function checkLoc(search){
- for (var i=0; i<holdLocs.length; i++)
- if (holdLocs[i] == search) return true;
-
- return false;
-}
-
-/*
- inefficient to check this again but need to go beyond search location
-*/
-function holdsCheckOk(loc_id, rec_id) {
- var req = new Request( 'open-ils.search:open-ils.search.biblio.record.copy_count', loc_id, rec_id );
- req.send(true);
- if (req) {
- var ccDepths = req.result();
- if (
- (parseInt(ccDepths[(ccDepths.length - 1)].available) == 0) &&
- (parseInt(ccDepths[(ccDepths.length - 1)].count) > 0))
- {
- return loc_id;
- }//if
- }
- return 0;
-}
-
-
-function holdsHandleStaff() {
-
- // if we know the recipient's barcode, use it
- if(xulG.patron_barcode) return _holdsHandleStaff();
-
- swapCanvas($('xulholds_box'));
- $('xul_recipient_barcode').focus();
- $('xul_recipient_barcode').onkeypress = function(evt)
- {if(userPressedEnter(evt)) { _holdsHandleStaff(); } };
- $('xul_recipient_barcode_submit').onclick = _holdsHandleStaff;
- $('xul_recipient_me').onclick = _holdsHandleStaffMe;
-
- $('xul_recipient_barcode').onkeyup = function(evt) {
- if($('xul_recipient_barcode').value == '')
- $('xul_recipient_me').disabled = false;
- else
- $('xul_recipient_me').disabled = true;
- };
-}
-
-$('holds_frozen_thaw_input').onchange =
- function(){holdsVerifyThawDateUI('holds_frozen_thaw_input');}
-$('holds_frozen_thaw_input').onkeyup =
- function(){holdsVerifyThawDateUI('holds_frozen_thaw_input');}
-
-function _holdsHandleStaffMe() {
- holdArgs.recipient = G.user;
- holdsDrawEditor();
-}
-
-function _holdsHandleStaff() {
- var barcode = xulG.patron_barcode || $('xul_recipient_barcode').value;
- var user = grabUserByBarcode( G.user.session, barcode );
-
- var evt;
- if(evt = checkILSEvent(user)) {
- alertILSEvent(user);
- return;
- }
-
- if(!barcode || !user) {
- alertId('holds_invalid_recipient', barcode);
- return
- }
-
- grabUserPrefs(user);
-
- holdArgs.recipient = user;
- holdsDrawEditor();
-}
-
-
-
-/** args:
- * record, volume, copy (ids)
- * request, recipient, editHold (objects)
- */
-
-function holdsDrawEditor(args) {
-
- holdArgs = (args) ? args : holdArgs;
-
- if(!noEmailMessage)
- noEmailMessage = $('holds_email').removeChild($('holds.no_email'));
-
- if(!noEmailMessageXUL)
- noEmailMessageXUL = $('holds_email').removeChild($('holds.no_email.xul'));
-
- if(isXUL() && holdArgs.recipient == null
- && holdArgs.editHold == null) {
- holdsHandleStaff();
- return;
- }
-
- if(!holdArgs.recipient) holdArgs.recipient = G.user;
- if(!holdArgs.requestor) holdArgs.requestor = G.user;
-
- if(!(holdArgs.requestor && holdArgs.requestor.session)) {
- detachAllEvt('common','locationChanged');
- attachEvt('common','loggedIn', holdsDrawEditor)
- initLogin();
- return;
- }
-
- if(holdArgs.editHold) // flesh the args with the existing hold
- holdArgsFromHold(holdArgs.editHold, holdArgs);
-
- holdsDrawWindow();
-}
-
-
-// updates the edit window with the existing hold's data
-function _holdsUpdateEditHold() {
-
- var hold = holdArgs.editHold;
- var qstats = holdArgs.status;
-
- var orgsel = $('holds_org_selector');
- var frozenbox = $('holds_frozen_chkbox');
-
- setSelector(orgsel, hold.pickup_lib());
-
- if( hold.capture_time() || qstats.status > 2 ) {
- frozenbox.disabled = true;
- $('holds_frozen_thaw_input').disabled = true;
- if(qstats.status == 3) {
- // no pickup lib changes while in-transit
- orgsel.disabled = true;
- } else {
- var orgs = fetchPermOrgs('UPDATE_PICKUP_LIB_FROM_HOLDS_SHELF');
- if(orgs[0] == -1)
- orgsel.disabled = true;
- }
- } else {
- orgsel.disabled = false;
- frozenbox.disabled = false;
- }
-
-
- $('holds_submit').onclick = holdsEditHold;
- $('holds_update').onclick = holdsEditHold;
-
- if(hold.phone_notify()) {
- $('holds_enable_phone').checked = true;
- $('holds_phone').value = hold.phone_notify();
-
- } else {
- $('holds_phone').disabled = true;
- $('holds_enable_phone').checked = false;
- }
-
- if(isTrue(hold.email_notify())) {
- $('holds_enable_email').checked = true;
-
- } else {
- $('holds_enable_email').checked = false;
- }
-
- dijit.byId('holds_expire_time').setValue(dojo.date.stamp.fromISOString(hold.expire_time()));
-
- /* populate the hold freezing info */
- if(!frozenbox.disabled && isTrue(hold.frozen())) {
- frozenbox.checked = true;
- unHideMe($('hold_frozen_thaw_row'));
- if(hold.thaw_date()) {
- dijit.byId('holds_frozen_thaw_input').setValue(dojo.date.stamp.fromISOString(hold.thaw_date()));
- } else {
- dijit.byId('holds_frozen_thaw_input').setValue('');
- }
- } else {
- frozenbox.checked = false;
- dijit.byId('holds_frozen_thaw_input').setValue('');
- hideMe($('hold_frozen_thaw_row'));
- }
-}
-
-function holdsEditHold() {
- var hold = holdsBuildHoldFromWindow();
- if(!hold) return;
- holdsUpdate(hold);
- showCanvas();
- if(holdArgs.onComplete)
- holdArgs.onComplete(hold);
-}
-
-function holdArgsFromHold(hold, oargs) {
- var args = (oargs) ? oargs : {};
- args.type = hold.hold_type();
- var target = hold.target();
-
- switch(args.type) {
- case 'M':
- args.metarecord = target;
- break;
- case 'T':
- args.record = target;
- break;
- case 'V':
- args.volume = target;
- break;
- case 'C':
- args.copy = target;
- break;
- }
- return args;
-}
-
-function holdFetchObjects(hold, doneCallback) {
-
- var args = (hold) ? holdArgsFromHold(hold) : holdArgs;
-
- var type = args.type;
-
- if( type == 'C' ) {
-
- if( args.copyObject ) {
-
- args.copy = args.copyObject.id();
- args.volume = args.copyObject.call_number();
- _h_set_vol(args, doneCallback);
-
- } else {
- var creq = new Request(FETCH_COPY, args.copy);
-
- creq.callback(
- function(r) {
- var cp = r.getResultObject();
- args.copyObject = cp;
- args.volume = args.copyObject.call_number();
- _h_set_vol(args, doneCallback);
- }
- );
- creq.send();
- }
- } else {
- if( type == 'V' ) {
- _h_set_vol(args, doneCallback);
-
- } else {
- if( type == 'T' ) {
- _h_set_rec(args, doneCallback);
- } else {
- _h_set_rec_descriptors(args, doneCallback);
- }
- }
- }
-
- return args;
-}
-
-function _h_set_vol(args, doneCallback) {
-
- if( args.volumeObject ) {
- args.volume = args.volumeObject.id();
- args.record = args.volumeObject.record();
- _h_set_rec(args, doneCallback);
-
- } else {
-
- var vreq = new Request(FETCH_VOLUME, args.volume);
- vreq.callback(
- function(r) {
- var vol = r.getResultObject();
- args.volumeObject = vol;
- args.record = vol.record();
- _h_set_rec(args, doneCallback);
- }
- );
- vreq.send();
- }
-}
-
-function _h_set_rec(args, doneCallback) {
-
- if(args.recordObject)
- args.record = args.recordObject.doc_id();
- else
- args.recordObject = findRecord( args.record, 'T' );
-
- if( args.type == 'T' || args.type == 'M' )
- _h_set_rec_descriptors(args, doneCallback);
- else
- if(doneCallback) doneCallback(args);
-}
-
-
-function _h_set_rec_descriptors(args, doneCallback) {
-
- // grab the list of record desciptors attached to this records metarecord
- if( ! args.recordDescriptors ) {
- var params = { record: args.record };
-
- if( ! args.record ) {
- if( args.metarecord )
- params = { metarecord : args.metarecord };
- else
- params = { metarecord : args.metarecordObject.doc_id() };
- }
-
- var req = new Request(FETCH_MR_DESCRIPTORS, params );
- req.callback(
- function(r) {
- var data = r.getResultObject();
- args.recordDescriptors = data.descriptors;
- args.metarecord = data.metarecord;
- if( args.type == 'M' && ! args.metarecordObject)
- args.metarecordObject = findRecord(args.metarecord, 'M');
-
- if(doneCallback) doneCallback(args);
- }
- );
- req.send();
-
- } else {
- if(doneCallback) doneCallback(args);
- }
-
- return args;
-}
-
-
-
-function holdsDrawWindow() {
- swapCanvas($('holds_box'));
- $('holds_cancel').onclick = function(){ runEvt('common', 'holdUpdateCanceled'), showCanvas() };
- $('holds_submit').onclick = function(){holdsPlaceHold(holdsBuildHoldFromWindow())};
- $('holds_update').onclick = function(){holdsPlaceHold(holdsBuildHoldFromWindow())};
- holdFetchObjects(null,
- function(){
- __holdsDrawWindow();
-
- if(holdArgs.editHold) {
- hideMe($('holds_submit'));
- unHideMe($('holds_update'));
- var req = new Request(FETCH_HOLD_STATUS,
- G.user.session, holdArgs.editHold.id());
- req.send(true);
- holdArgs.status = req.result();
- _holdsUpdateEditHold();
- }
- }
- );
-}
-
-function __holdsDrawWindow() {
-
- var rec = holdArgs.recordObject;
- var vol = holdArgs.volumeObject;
- var copy = holdArgs.copyObject;
- var mr = holdArgs.metarecordObject;
-
- rec = (rec) ? rec : mr;
-
- if(!holdsOrgSelectorBuilt) {
-
- //give preference to home location
- var holdLoc = holdsCheckOk(holdArgs.recipient.home_ou(),rec.doc_id());
- for (var i=0; i<holdLocs.length && holdLoc == 0; i++) {
- if (holdLoc != holdArgs.recipient.home_ou())
- holdLoc = holdsCheckOk(holdLocs[i], rec.doc_id())
- }//for
-
- //this should be rare, but if someone from another library was using
- //the skin, it could happen, in which case we block it here
- if (holdLoc == 0) {
- alert("Sorry, this material is not available for hold.");
- return;
- }
- holdsBuildOrgSelector(holdLoc,null,0);
- holdsOrgSelectorBuilt = true;
- var selector = $('holds_org_selector');
-
- /*
- var o_loc = findOrgUnit(getOrigLocation());
- var t = findOrgType(o_loc.ou_type());
- if( t.can_have_users() )
- setSelector(selector, o_loc.id());
- else
- */
-
- setSelector(selector, holdArgs.recipient.home_ou());
-
- }
-
- /*
- if(isXUL()) {
- var dsel = $('holds_depth_selector');
- unHideMe($('holds_depth_selector_row'));
- if(dsel.getElementsByTagName('option').length == 0) {
- var types = globalOrgTypes;
- var depth = findOrgDepth(G.user.ws_ou());
- iterate(types,
- function(t) {
- if(t.depth() > depth) return;
- insertSelectorVal(dsel, -1, t.opac_label(), t.depth());
- }
- );
- }
- }
- */
-
- appendClear($('holds_recipient'), text(
- holdArgs.recipient.family_name() + ', ' +
- holdArgs.recipient.first_given_name()));
- appendClear($('holds_title'), text(rec.title()));
- appendClear($('holds_author'), text(rec.author()));
-
- if( holdArgs.type == 'V' || holdArgs.type == 'C' ) {
-
- unHideMe($('holds_type_row'));
- unHideMe($('holds_cn_row'));
- appendClear($('holds_cn'), text(holdArgs.volumeObject.label()));
-
- if( holdArgs.type == 'V' ) {
- unHideMe($('holds_is_cn'));
- hideMe($('holds_is_copy'));
-
- } else {
- hideMe($('holds_is_cn'));
- unHideMe($('holds_is_copy'));
- unHideMe($('holds_copy_row'));
- appendClear($('holds_copy'), text(holdArgs.copyObject.barcode()));
- }
-
- } else {
- hideMe($('holds_type_row'));
- hideMe($('holds_copy_row'));
- hideMe($('holds_cn_row'));
- }
-
- removeChildren($('holds_format'));
-
- var mods_formats = rec.types_of_resource();
- var formats;
-
- if(holdArgs.recordDescriptors)
- formats = holdArgs.recordDescriptors[0].item_type();
-
- if( holdArgs.type == 'T' ) {
- var desc = grep( holdArgs.recordDescriptors,
- function(i) {
- return (i.record() == holdArgs.record);
- }
- );
- formats = desc[0].item_type();
- }
-
- if( holdArgs.type == 'M' ) {
- var data = holdsParseMRFormats(holdArgs.editHold.holdable_formats());
- mods_formats = data.mods_formats;
- formats = data.formats;
- }
-
-
- for( var i in mods_formats ) {
- var res = mods_formats[i];
- var img = elem("img");
- setResourcePic(img, res);
- $('holds_format').appendChild(img);
- if(formats)
- $('holds_format').appendChild(text(' '+ MARCTypeToFriendly(formats[i]) +' '));
- else
- $('holds_format').appendChild(text(' '+ mods_formats[i] +' '));
- $('holds_format').appendChild(elem('br'));
- }
-
-
- $('holds_phone').value = holdArgs.recipient.day_phone();
- appendClear( $('holds_email'), text(holdArgs.recipient.email()));
-
- var pref = holdArgs.recipient.prefs[PREF_HOLD_NOTIFY];
-
- if(pref) {
- if( ! pref.match(/email/i) ) {
- $('holds_enable_email').checked = false;
- } else {
- $('holds_enable_email').checked = true;
- }
-
- if( ! pref.match(/phone/i) ) {
- $('holds_phone').disabled = true;
- $('holds_enable_phone').checked = false;
- } else {
- $('holds_phone').disabled = false;
- $('holds_enable_phone').checked = true;
- }
- }
-
- if(!holdArgs.recipient.email()) {
- $('holds_enable_email').checked = false;
- $('holds_enable_email').disabled = true;
- var message;
- if(isXUL()) {
- message = noEmailMessageXUL.cloneNode(true);
- appendClear($('holds_email'), message);
- } else {
- message = noEmailMessage.cloneNode(true);
- appendClear($('holds_email'), message);
- $('holds.no_email.my_account').setAttribute('href', buildOPACLink({page:MYOPAC},null,true));
- }
- unHideMe(message);
- }
-
- if(!$('holds_phone').value)
- $('holds_enable_phone').checked = false;
-
- appendClear($('holds_physical_desc'), text(rec.physical_description()));
-
- if(holdArgs.type == 'M') hideMe($('hold_physical_desc_row'));
-
- holdsSetFormatSelector();
-
- $('holds_frozen_chkbox').checked = false;
- hideMe($('hold_frozen_thaw_row'));
-
- var interval = fetchOrgSettingDefault(holdArgs.recipient.home_ou(), 'circ.hold_expire_interval');
- var secs = 0;
- if(interval) {
- secs = interval_to_seconds(interval);
- var expire = new Date();
- expire.setTime(expire.getTime() + Number(secs + '000'));
- dijit.byId('holds_expire_time').setValue(expire);
- }
-}
-
-function holdsParseMRFormats(str) {
- var data = str.split(/-/);
-
- var formats = [];
- var mods_formats = [];
-
- for( var i = 0; i < data[0].length; i++ ) {
- formats.push( data[0].charAt(i) );
- mods_formats.push( MARCFormatToMods( formats[i] ) );
- }
-
- formats = uniquify(formats);
- mods_formats = uniquify(mods_formats);
-
- return {
- formats : formats,
- mods_formats : mods_formats,
- lang : data[2],
- largeprint : data[1]
- };
-}
-
-
-function holdsSetFormatSelector() {
- var type = holdArgs.type;
- if( type == 'C' || type == 'V' || holdArgs.editHold ) return;
-
- var data = holdsGetFormats();
- var avail_formats = data.avail_formats;
- var sel_formats = data.sel_formats;
- holdArgs.language = data.lang;
-
- unHideMe($('holds_alt_formats_row_extras'));
- var selector = $('hold_alt_form_selector');
-
- for( var i = 0; i < avail_formats.length; i++ ) {
- var form = avail_formats[i];
- unHideMe(findSelectorOptByValue(selector, form));
- }
-}
-
-
-function holdsGetFormats() {
-
- var lang;
- var formats = [];
- var sformats = []; // selected formats
-
- var type = holdArgs.type;
- var desc = holdArgs.recordDescriptors;
- var rec = holdArgs.record;
- var mrec = holdArgs.metarecord;
-
- if( type == 'T' ) {
-
- for( var i = 0; i < desc.length; i++ ) {
- var d = desc[i];
- if( d.record() == holdArgs.record ) {
- lang = d.item_lang();
- holdArgs.myFormat = _t_f_2_format(d.item_type(), d.item_form());
- sformats.push(holdArgs.myFormat);
- break;
- }
- }
- }
-
- for( var i = 0; i < desc.length; i++ ) {
- var d = desc[i];
- if( d.item_lang() != lang ) continue;
- formats.push( _t_f_2_format(d.item_type(), d.item_form()));
- }
-
- formats = uniquify(formats);
-
- return {
- lang : lang,
- avail_formats : formats,
- sel_formats : sformats
- };
-}
-
-
-
-function _t_f_2_format(type, form) {
- if( form == 'd' ) return 'at-d';
- return (type == 'a' || type == 't') ? 'at' :
- ( type == 'i' || type == 'g' || type == 'j' ) ? type : null;
-}
-
-function holdsSetSelectedFormats() {
-
- var cn = $('holds_alt_formats_row').className;
- if( cn && cn.match(/hide_me/) ) return;
-
- var selector = $('hold_alt_form_selector');
- var vals = getSelectedList(selector);
-
- if(vals.length == 0) return;
-
- var fstring = "";
-
- if( contains(vals, 'at-d') ) {
- if( contains(vals, 'at') )
- fstring = 'at';
- else
- fstring = 'at-d';
- } else {
- if( contains(vals, 'at') )
- fstring = 'at';
- }
-
- for( var i = 0; i < vals.length; i++ ) {
- var val = vals[i];
- if( !val.match(/at/) ) fstring = val + fstring;
- }
-
- if( holdArgs.language ) {
- if( fstring.match(/-/) )
- fstring = fstring + '-' + holdArgs.language;
- else
- fstring = fstring + '--' + holdArgs.language;
- }
-
-
- return fstring;
-}
-
-
-function holdsCheckPossibility(pickuplib, hold, recurse) {
-
- var args = {
- titleid : holdArgs.record,
- volume_id : holdArgs.volume,
- copy_id : holdArgs.copy,
- hold_type : holdArgs.type,
- patronid : holdArgs.recipient.id(),
- depth : 0,
- pickup_lib : pickuplib
- };
-
- if(recurse) {
- /* if we're calling create again (recursing),
- we know that the hold possibility check already succeeded */
- holdHandleCreateResponse({_recurse:true, _hold:hold}, true );
-
- } else {
- _debug("hold possible args = "+js2JSON(args));
-
- var req = new Request(CHECK_HOLD_POSSIBLE, G.user.session, args );
-
- req.request.alertEvent = false;
- req.request._hold = hold;
- req.request._recurse = recurse;
- req.callback(holdHandleCreateResponse);
- req.send();
- }
-}
-
-function holdsBuildOrgSelector(holdLoc,node) {
-
- if(!node) node = globalOrgTree;
- if(!isTrue(node.opac_visible())) return;
-
- var selector = $('holds_org_selector');
- var index = selector.options.length;
-
- var type = findOrgType(node.ou_type());
- var indent = type.depth() - 1;
- /*
- pick up location is only ever one option for uwin
- */
- if (node.id() == holdLoc) {
- var opt = setSelectorVal( selector, index, node.name(), node.id(), null, indent );
- if(!type.can_have_users()) {
- opt.disabled = true;
- addCSSClass(opt, 'disabled_option');
- }//if
- }//if
-
- for( var i in node.children() ) {
- var child = node.children()[i];
- if(child) holdsBuildOrgSelector(holdLoc,child);
- }
-}
-
-function holdsBuildHoldFromWindow() {
-
- var org = getSelectorVal($('holds_org_selector'));
- var node = findOrgUnit(org);
- var ntype = findOrgType(node.ou_type());
- if(!ntype.can_have_users()) {
- alertId('holds_pick_good_org');
- return;
- }
-
- var hold = new ahr();
- if(holdArgs.editHold) {
- hold = holdArgs.editHold;
- holdArgs.editHold = null;
- }
-
- if( $('holds_enable_phone').checked ) {
- var phone = $('holds_phone').value;
- if( !phone || !phone.match(REGEX_PHONE) ) {
- alert($('holds_bad_phone').innerHTML);
- return null;
- }
- hold.phone_notify(phone);
-
- } else {
- hold.phone_notify("");
- }
-
- if( $('holds_enable_email').checked )
- hold.email_notify(1);
- else
- hold.email_notify(0);
-
- var target;
-
- switch(holdArgs.type) {
- case 'M':
- target = holdArgs.metarecord; break;
- case 'T':
- target = holdArgs.record; break;
- case 'V':
- target = holdArgs.volume; break;
- case 'C':
- target = holdArgs.copy; break;
- }
-
-
-
- hold.pickup_lib(org);
- //hold.request_lib(org);
- hold.requestor(holdArgs.requestor.id());
- hold.usr(holdArgs.recipient.id());
- hold.target(target);
- hold.hold_type(holdArgs.type);
-
- var expDate = dijit.byId('holds_expire_time').getValue();
- if(expDate) {
- var expireDate = dojo.date.stamp.toISOString(expDate);
- expireDate = holdsVerifyThawDate(expireDate);
- if(expireDate)
- hold.expire_time(expireDate);
- else
- return;
- }
-
- // see if this hold should be frozen and for how long
- if($('holds_frozen_chkbox').checked) {
- hold.frozen('t');
- unHideMe($('hold_frozen_thaw_row'));
- var thawDate = dijit.byId('holds_frozen_thaw_input').attr('value');
- if(thawDate) {
- thawDate = dojo.date.stamp.toISOString(thawDate);
- thawDate = holdsVerifyThawDate(thawDate);
- if(thawDate)
- hold.thaw_date(thawDate);
- else
- return;
- } else {
- hold.thaw_date(null);
- }
- } else {
- hold.frozen('f');
- hold.thaw_date(null);
- }
-
- //check for alternate hold formats
- var fstring = holdsSetSelectedFormats();
- if(fstring) {
- hold.hold_type('M');
- hold.holdable_formats(fstring);
- hold.target(holdArgs.metarecord);
- }
- return hold;
-}
-
-function holdsPlaceHold(hold, recurse) {
- if(!hold) return;
- swapCanvas($('check_holds_box'));
- holdsCheckPossibility(hold.pickup_lib(), hold, recurse);
-}
-
-
-function holdHandleCreateResponse(r, recurse) {
-
- if(!recurse) {
- var res = r.getResultObject();
- if(checkILSEvent(res) || res.success != 1) {
- if(res.success != 1) {
- alert($('hold_not_allowed').innerHTML);
- } else {
- if( res.textcode == 'PATRON_BARRED' ) {
- alertId('hold_failed_patron_barred');
- } else {
- alert($('hold_not_allowed').innerHTML);
- }
- }
- swapCanvas($('holds_box'));
- return;
- }
- r._hold.selection_depth(res.depth);
- }
-
- holdCreateHold(r._recurse, r._hold);
-}
-
-
-function holdCreateHold( recurse, hold ) {
- var method = CREATE_HOLD;
- if(recurse) method = CREATE_HOLD_OVERRIDE;
- var req = new Request( method, holdArgs.requestor.session, hold );
- req.request.alertEvent = false;
- req.send(true);
- var res = req.result();
- holdProcessResult(hold, res, recurse);
-
- showCanvas();
-
- runEvt('common', 'holdUpdated');
-}
-
-
-function holdProcessResult( hold, res, recurse ) {
-
- if( res == '1' ) {
- alert($('holds_success').innerHTML);
- holdArgs = null;
-
- } else {
-
- if( recurse ) {
- alert($('holds_failure').innerHTML);
- return;
- }
-
- if( grep(res, function(e) { return (e.textcode == 'HOLD_EXISTS'); }) ) {
- if( fetchPermOrgs('HOLD_EXISTS.override')[0] != -1 ) {
- if( confirm($('hold_dup_exists_override').innerHTML) ) {
- return holdsPlaceHold(hold, true);
- }
-
- } else {
- return alert($('hold_dup_exists').innerHTML);
- }
- }
-
- alert($('holds_failure').innerHTML);
- }
-}
-
-
-function holdsCancel(holdid, user) {
- if(!user) user = G.user;
- var req = new Request(CANCEL_HOLD, user.session, holdid, /* Patron via OPAC */ 6);
- req.send(true);
- return req.result();
- runEvt('common', 'holdUpdated');
-}
-
-function holdsUpdate(hold, user) {
- if(!user) user = G.user;
- var req = new Request(UPDATE_HOLD, user.session, hold);
- req.send(true);
- var x = req.result(); // cause an exception if there is one
- runEvt('common', 'holdUpdated');
-}
-
-/* verify that the thaw date is valid and after today */
-function holdsVerifyThawDate(dateString, isGreater) {
- thawDate = dojo.date.stamp.fromISOString(dateString);
- if(thawDate) {
- if(isGreater) {
- if(dojo.date.compare(thawDate) > 0) {
- return dojo.date.stamp.toISOString(thawDate);
- }
- } else {
- return dojo.date.stamp.toISOString(thawDate);
- }
- }
- return null;
-}
-
-function holdsVerifyThawDateUI(element) {
- value = dojo.date.stamp.toISOString(dijit.byId(element).getValue());
-
- if(!value) {
- removeCSSClass($(element), 'invalid_field');
- return;
- }
-
- if(!holdsVerifyThawDate(value, true)) {
- addCSSClass($(element), 'invalid_field');
- } else {
- removeCSSClass($(element), 'invalid_field');
- }
-}
-
+++ /dev/null
-//var records = {};
-var records = [];
-var ranks = [];
-var onlyrecord = {};
-var table;
-var mresultPreCache = 200;
-var searchTimer;
-
-attachEvt("common", "unload", mresultUnload);
-attachEvt("common", "run", mresultDoSearch);
-attachEvt("result", "idsReceived", mresultSetRecords);
-attachEvt("result", "idsReceived", mresultCollectRecords);
-
-function mresultUnload() { removeChildren(table); table = null;}
-
-hideMe($('copyright_block'));
-
-function mresultDoSearch() {
-
-
- TFORM = null; /* clear the rresult tform var so it's not propogated */
-
- swapCanvas($('loading_alt'));
- table = G.ui.result.main_table;
-
- while( table.parentNode.rows.length <= (getDisplayCount() + 1) )
- table.appendChild(G.ui.result.row_template.cloneNode(true));
-
- if( (getSearches() || getAdvTerm()) && !getTerm() ) {
- if(getAdvType() == ADVTYPE_MULTI ) mresultCollectAdvIds();
-
- } else {
- _mresultCollectIds();
- ADVTERM = "";
- ADVTYPE = "";
- }
-}
-
-function _mresultCollectIds() {
- resultCollectSearchIds(true, SEARCH_MRS_QUERY, mresultHandleMRIds );
-}
-
-function mresultCollectAdvIds() {
- resultCollectSearchIds(false, SEARCH_MRS_QUERY, mresultHandleMRIds );
-}
-
-
-function mresultHandleMRIds(r) {
- var res = r.getResultObject();
- resultCompiledSearch = res.compiled_search;
- cookieManager.write(COOKIE_SEARCH, js2JSON(res.compiled_search), -1);
- if(res.count != null) {
- if( getOffset() == 0 ) HITCOUNT = res.count;
- runEvt('result', 'hitCountReceived');
- }
- runEvt('result', 'idsReceived', res.ids);
-}
-
-
-
-function mresultSetRecords(idstruct) {
- if(!idstruct) return;
- var o = getOffset();
- for( var x = o; x < idstruct.length + o; x++ ) {
- if( idstruct[x-o] != null ) {
- var r = parseInt(idstruct[x - o][0]);
- var ra = parseFloat(idstruct[x - o][1]);
- var or = parseInt(idstruct[x - o][2]);
- if(!isNull(r) && !isNaN(r)) records[x] = r;
- if(!isNull(ra) && !isNaN(ra)) ranks[x] = ra;
- if(!isNull(or) && !isNaN(or)) onlyrecord[x] = or;
- }
- }
-
- TOPRANK = ranks[getOffset()];
-}
-
-
-
-function mresultCollectRecords() {
- if(getHitCount() > 0 ) runEvt("result", "preCollectRecords");
- var i = 0;
- for( var x = getOffset(); x!= getDisplayCount() + getOffset(); x++ ) {
- if(isNull(records[x])) break;
- if(isNaN(records[x])) continue;
- var req = new Request(FETCH_MRMODS, records[x]);
-
- req.request.userdata = i++;
-
- /* wait at most 10 seconds for the mods rec to come back */
- /* this needs more testing */
- req.request.timeout(10);
- req.request.abortCallback(
- function(){
- recordsHandled++;
- if(resultPageIsDone()) {
- runEvt('result', 'allRecordsReceived', recordsCache);
- unHideMe($('copyright_block'));
- }
- }
- );
-
- req.callback(mresultHandleMods);
- req.send();
- }
-}
-
-function mresultHandleMods(r) {
- var rec = r.getResultObject();
- var pagePosition = r.userdata;
- runEvt('result', 'recordReceived', rec, pagePosition, true);
- if(rec) resultCollectCopyCounts(rec, pagePosition, FETCH_MR_COPY_COUNTS);
- if(resultPageIsDone()) {
- runEvt('result', 'allRecordsReceived', recordsCache);
- unHideMe($('copyright_block')); /* *** */
- }
-}
-
-
-
-
+++ /dev/null
-
-attachEvt("common", "run", myOPACInit );
-//attachEvt("common", "loggedIn", myOPACInit );
-attachEvt('common','locationUpdated', myopacReload );
-
-var fleshedUser = null;
-var fleshedContainers = {};
-var holdCache = {};
-var holdStatusCache = {};
-var allowPendingAddr = false;
-var preventRenewOverdue = false;
-var myopacEnableRefWorks = true;
-var myopacRefWorksHost = 'http://refworks.scholarsportal.info';
-
-
-function clearNodes( node, keepArray ) {
- if(!node) return;
- for( var n in keepArray ) node.removeChild(keepArray[n]);
- removeChildren(node);
- for( var n in keepArray ) node.appendChild(keepArray[n]);
-}
-
-function myOPACInit() {
-
- if(!(G.user && G.user.session)) {
- initLogin();
-
- } else {
-
- allowPendingAddr = fetchOrgSettingDefault(G.user.home_ou(), 'opac.allow_pending_address');
- if(allowPendingAddr)
- unHideMe($('myopac_pending_addr_td'));
- myOPACChangePage( "summary" );
- }
-
- $('myopac_holds_thaw_date_input').onkeyup =
- function(){holdsVerifyThawDateUI('myopac_holds_thaw_date_input'); }
- $('myopac_holds_thaw_date_input').onchange =
- function(){holdsVerifyThawDateUI('myopac_holds_thaw_date_input'); }
-
-}
-
-function myopacReload() {
- //swapCanvas($('myopac_reloading'));
- var a = {};
- a[PARAM_LOCATION] = getNewSearchLocation();
- a[PARAM_DEPTH] = getNewSearchDepth();
- hideMe($('canvas_main'));
- goTo(buildOPACLink(a, true));
-}
-
-
-function myOPACChangePage( page ) {
- showCanvas();
-
- var s = $("myopac_summary_td");
- var c = $("myopac_checked_td");
- var f = $("myopac_fines_td");
- var h = $("myopac_holds_td");
- var p = $("myopac_prefs_td");
- var b = $('myopac_bookbag_td');
-
- var ss = $("myopac_summary_div");
- var cc = $("myopac_checked_div");
- var ff = $("myopac_fines_div");
- var hh = $("myopac_holds_div");
- var pp = $("myopac_prefs_div");
- var bb = $('myopac_bookbag_div');
-
- var cls = "myopac_link";
- var acls = "myopac_link_active";
-
- hideMe(ss);
- hideMe(cc); hideMe(ff);
- hideMe(hh); hideMe(pp);
- hideMe(bb);
-
- removeCSSClass(s, acls );
- removeCSSClass(c, acls );
- removeCSSClass(f, acls );
- removeCSSClass(h, acls );
- removeCSSClass(p, acls );
- removeCSSClass(b, acls );
-
- switch( page ) {
-
- case "summary":
- unHideMe(ss);
- addCSSClass(s, acls );
- myOPACShowSummary();
- break;
-
- case "checked":
- unHideMe(cc);
- addCSSClass(c, acls );
- myOPACShowChecked();
- break;
-
- case "holds":
- unHideMe(hh);
- addCSSClass(h, acls );
- myOPACShowHolds();
- break;
-
- case "fines":
- unHideMe(ff);
- addCSSClass(f, acls );
- myOPACShowFines();
- break;
-
- case "prefs":
- unHideMe(pp);
- addCSSClass(p, acls );
- myOPACShowPrefs();
- break;
-
- case 'bookbag':
- unHideMe(bb);
- addCSSClass(b, acls);
- myOPACShowBookbags();
- break;
- }
-}
-
-function myOPACShowChecked() {
- if(checkedDrawn) return;
- var req = new Request(FETCH_CHECKED_OUT_SUM, G.user.session, G.user.id());
- req.callback(myOPACDrawCheckedOutSlim);
- req.send();
-
- var nreq = new Request(FETCH_NON_CAT_CIRCS, G.user.session);
- nreq.callback(myOPACDrawNonCatCircs);
- nreq.send();
-}
-
-
-var checkedRowTemplate;
-var circsCache = new Array();
-var checkedDrawn = false;
-
-function moClearCheckedTable() {
- var tbody = $("myopac_checked_tbody");
- var loading = $("myopac_checked_loading");
- var none = $("myopac_checked_none");
- clearNodes( tbody, [ loading, none ] );
-}
-
-var __can_renew_one = false;
-
-function myOPACDrawCheckedOutSlim(r) {
-
- var checked = r.getResultObject();
- var tbody = $("myopac_checked_tbody");
- var loading = $("myopac_checked_loading");
- var none = $("myopac_checked_none");
-
- __can_renew_one = false;
-
- if(checkedDrawn) return;
- checkedDrawn = true;
- if(!checkedRowTemplate)
- checkedRowTemplate = tbody.removeChild($("myopac_checked_row"));
-
- moClearCheckedTable();
-
- hideMe(loading); /* remove all children and start over */
- if(!(checked && (checked.out || checked.overdue))) {
- unHideMe(none);
- return;
- }
-
- var totalAsync = checked.overdue.length + checked.out.length;
- var fetchedCircs = [];
- var collectCircs = function(r) {
- var circ = r.getResultObject();
- circ._od = r.od;
- fetchedCircs.push(circ);
- if(fetchedCircs.length < totalAsync) return;
-
- // sort by due date, oldest to newest
- fetchedCircs = fetchedCircs.sort(
- function(a, b) {
- if(a.due_date() > b.due_date()) return 1;
- return -1;
- }
- )
-
- dojo.forEach(fetchedCircs,
- function(circ) {
- myOPACDrawCheckedItem(circ, tbody);
- }
- );
- }
-
- for( var i = 0; i < checked.overdue.length; i++ ) {
- var req = new Request(FETCH_CIRC_BY_ID, G.user.session, checked.overdue[i]);
- //req.request.tbody = tbody;
- req.request.od = true;
- req.callback(collectCircs);
- req.send();
- }
-
-
- for( var i = 0; i < checked.out.length; i++ ) {
- var req = new Request(FETCH_CIRC_BY_ID, G.user.session, checked.out[i]);
- //req.request.tbody = tbody;
- req.callback(collectCircs);
- req.send();
- }
-
- appendClear($('mo_items_out_count'),
- text(new String( parseInt(checked.overdue.length) + parseInt(checked.out.length) )) );
-
- if( checked.overdue.length > 0 ) {
- addCSSClass($('mo_items_overdue_count'), 'overdue');
- appendClear($('mo_items_overdue_count'),
- text(new String( parseInt(checked.overdue.length) )) );
- }
-
-}
-
-
-//function myOPACDrawCheckedItem(r) {
-function myOPACDrawCheckedItem(circ, tbody) {
-
- //var circ = r.getResultObject();
- //var tbody = r.tbody;
- var row = checkedRowTemplate.cloneNode(true);
- row.id = 'myopac_checked_row_ ' + circ.id();
- row.setAttribute('circid', circ.id());
-
- var due = _trimTime(circ.due_date());
-
- var dlink = $n( row, "myopac_checked_due" );
- var rlink = $n( row, "myopac_checked_renewals" );
- //var rnlink = $n( row, "myopac_checked_renew_link" );
-
- //if( r.od ) due = elem('b', {style:'color:red;font-size:110%'},due);
- if( circ._od ) {
- due = elem('b', null, due);
- addCSSClass(due, 'overdue');
- } else {
- due = text(due);
- }
-
- dlink.appendChild(due);
- rlink.appendChild(text(circ.renewal_remaining()));
- unHideMe(row);
- //rnlink.setAttribute('href', 'javascript:myOPACRenewCirc("'+circ.id()+'");');
- circsCache.push(circ);
-
- // Disable renewals if no renewals left or item already overdue
- if( circ.renewal_remaining() < 1 || (preventRenewOverdue && circ._od)) {
- $n(row, 'selectme').disabled = true;
- if(!__can_renew_one)
- $('mo_renew_button').disabled = true;
- } else {
- __can_renew_one = true;
- $('mo_renew_button').disabled = false;
- $n(row, 'selectme').disabled = false;
- }
-
- tbody.appendChild(row);
-
- var req = new Request(FETCH_MODS_FROM_COPY, circ.target_copy() );
- req.request.alertEvent = false;
- req.request.circ = circ.id();
- req.request.copy = circ.target_copy();
- req.callback(myOPACDrawCheckedTitle);
- req.send();
-}
-
-var __circ_titles = {};
-
-function myOPACDrawCheckedTitle(r) {
- var record = r.getResultObject();
- var circid = r.circ;
-
- if(!record || checkILSEvent(record)) {
- var req = new Request( FETCH_COPY, r.copy );
- req.request.circ = circid
- req.callback(myOPACDrawNonCatalogedItem);
- req.send();
- return;
- }
-
- var row = $('myopac_checked_row_ ' + circid);
- var tlink = $n( row, "myopac_checked_title_link" );
- var alink = $n( row, "myopac_checked_author_link" );
- buildTitleDetailLink(record, tlink);
- buildSearchLink(STYPE_AUTHOR, record.author(), alink);
- __circ_titles[circid] = record.title();
-}
-
-function myOPACDrawNonCatalogedItem(r) {
- var copy = r.getResultObject();
- var circid = r.circ;
-
- var row = $('myopac_checked_row_ ' + circid);
- var tlink = $n( row, "myopac_checked_title_link" );
- var alink = $n( row, "myopac_checked_author_link" );
-
- tlink.parentNode.appendChild(text(copy.dummy_title()));
- alink.parentNode.appendChild(text(copy.dummy_author()));
- __circ_titles[circid] = copy.dummy_title();
-}
-
-
-/*
-function myOPACRenewCirc(circid) {
-
- var circ;
- for( var i = 0; i != circsCache.length; i++ )
- if(circsCache[i].id() == circid)
- circ = circsCache[i];
-
- if(!confirm($('myopac_renew_confirm').innerHTML)) return;
-
- var req = new Request(RENEW_CIRC, G.user.session,
- { patron : G.user.id(), copyid : circ.target_copy(), opac_renewal : 1 } );
- req.request.alertEvent = false;
- req.send(true);
- var res = req.result();
-
- if(checkILSEvent(res) || checkILSEvent(res[0])) {
- alertId('myopac_renew_fail');
- return;
- }
-
- alert($('myopac_renew_success').innerHTML);
- checkedDrawn = false;
- myOPACShowChecked();
-}
-*/
-
-
-
-function myOPACShowHolds() {
- var req = new Request(FETCH_HOLDS, G.user.session, G.user.id());
- req.callback(myOPACDrawHolds);
- req.send();
- $('myopac_holds_actions_none').selected = true;
-}
-
-var holdsTemplateRowOrig;
-var holdsTemplateRow;
-var myopacForceHoldsRedraw = false;
-function myOPACDrawHolds(r) {
-
- var tbody = $("myopac_holds_tbody");
- if(holdsTemplateRow && !myopacForceHoldsRedraw) return;
- myopacForceHoldsRedraw = false;
-
- if(holdsTemplateRowOrig) {
- holdsTemplateRow = holdsTemplateRowOrig;
- removeChildren(tbody);
- } else {
- holdsTemplateRow = tbody.removeChild($("myopac_holds_row"));
- holdsTemplateRowOrig = holdsTemplateRow;
- }
-
- hideMe($('myopac_holds_loading'));
-
- var holds = r.getResultObject();
-
- if(!holds || holds.length < 1) unHideMe($('myopac_holds_none'));
- for( var i = 0; i != holds.length; i++ ) {
-
- var h = holds[i];
- holdCache[h.id()] = h;
-
- var row = holdsTemplateRow.cloneNode(true);
- row.id = "myopac_holds_row_" + h.id();
-
- var form = $n(row, "myopac_holds_formats");
- form.id = "myopac_holds_form_" + h.id();
-
- var orglink = $n(row, "myopac_holds_location");
- orglink.appendChild(text(findOrgUnit(h.pickup_lib()).name()));
-
- tbody.appendChild(row);
-
- $n(row,'myopac_holds_edit_link').setAttribute(
- 'href','javascript:myOPACEditHold("'+ h.id()+'");');
-
- if(isTrue(h.frozen())) {
- hideMe($n(row, 'myopac_hold_unfrozen_true'))
- unHideMe($n(row, 'myopac_hold_unfrozen_false'))
- if(h.thaw_date()) {
- var d = dojo.date.stamp.fromISOString(h.thaw_date());
- $n(row, 'myopac_holds_frozen_until').appendChild(text(dojo.date.locale.format(d, {selector: 'date', fullYear: true})));
- }
- } else {
- unHideMe($n(row, 'myopac_hold_unfrozen_true'))
- hideMe($n(row, 'myopac_hold_unfrozen_false'))
- }
-
- $n(row, 'myopac_holds_selected_chkbx').checked = false;
-
- var exp_date;
- if(h.expire_time()) {
- exp_date = dojo.date.stamp.fromISOString(h.expire_time().replace(/(T\d\d:\d\d:\d\d)([+-]\d\d)(\d)/, "$1$2:$3"));
- $n(row, 'myopac_hold_expire_time').appendChild(
- text(dojo.date.locale.format(exp_date, {selector:'date'})));
- }
-
- unHideMe(row);
-
- var interval = fetchOrgSettingDefault(G.user.home_ou(), 'circ.hold_expire_alert_interval');
- if(interval && exp_date) {
- secs = interval_to_seconds(interval) * 1000;
- var diff = exp_date.getTime() - new Date().getTime();
- if(diff < secs)
- addCSSClass($n(row, 'myopac_hold_expire_time'), 'hold_expire_warning');
- }
-
- myOPACDrawHoldTitle(h);
- myOPACDrawHoldStatus(h);
- }
-}
-
-function myOPACEditHold(holdid) {
- var hold = holdCache[holdid];
-
- holdsDrawEditor(
- {
- editHold : hold,
- onComplete : function(){
- holdsTemplateRow = null;
- myOPACShowHolds();
- }
- }
- );
-}
-
-
-function myOPACDrawHoldStatus(hold) {
- var req = new Request(FETCH_HOLD_STATUS, G.user.session, hold.id() );
- req.callback(myOShowHoldStatus);
- req.request.hold = hold;
- req.send();
-}
-
-var myopacShowHoldEstimate = false;
-function myOShowHoldStatus(r) {
-
- var hold = r.hold;
- var qstats = r.getResultObject();
- holdStatusCache[hold.id()] = qstats;
-
- var row = $("myopac_holds_row_" + r.hold.id());
-
- if(qstats.estimated_wait || myopacShowHoldEstimate) {
- myopacShowHoldEstimate = true;
- if(qstats.estimated_wait)
- $n(row, 'myopac_holds_estimated_wait').appendChild(text(qstats.estimated_wait));
- unHideMe($('myopac_holds_estimated_wait_column'));
- unHideMe($n(row, 'myopac_holds_estimated_wait'));
- }
-
- if( qstats.status == 4 ) {
- unHideMe($n(row, 'hold_status_available'));
- hideMe($n(row, 'myopac_holds_cancel_link'));
- }
-
- if(false) {
- var node = $n(row, 'hold_qstats');
- // XXX best way to display this info + dojo i18n
- node.appendChild(text('hold #' + qstats.queue_position+' of '+qstats.queue_position+' and '+qstats.potential_copies+' item(s)'));
- unHideMe(node);
-
- } else {
- if( qstats.status < 3 )
- unHideMe($n(row, 'hold_status_waiting'));
-
- if( qstats.status == 3 )
- unHideMe($n(row, 'hold_status_transit'));
- }
-}
-
-
-function myOPACDrawHoldTitle(hold) {
- var method;
-
- if( hold.hold_type() == 'T' || hold.hold_type() == 'M' ) {
- if(hold.hold_type() == "M") method = FETCH_MRMODS;
- if(hold.hold_type() == "T") method = FETCH_RMODS;
- var req = new Request(method, hold.target());
- req.callback(myOPACFleshHoldTitle);
- req.request.hold = hold;
- req.request.alertEvent = false;
- req.send();
-
- } else {
- holdFetchObjects(hold,
- function(a) { _myOPACFleshHoldTitle(hold, a);});
- }
-}
-
-function myOPACFleshHoldTitle(r) {
- var rec = r.getResultObject();
- _myOPACFleshHoldTitle(r.hold, {recordObject: rec});
-}
-
-function _myOPACFleshHoldTitle(hold, holdObjects) {
-
- var record = holdObjects.recordObject;
- var volume = holdObjects.volumeObject;
- var copy = holdObjects.copyObject;
-
- var row = $("myopac_holds_row_" + hold.id());
- var title_link = $n(row, "myopac_holds_title_link");
- var author_link = $n(row, "myopac_holds_author_link");
-
- if(!record || checkILSEvent(record) ) {
- addCSSClass(row, 'invalid_hold');
- $n(row, 'myopac_holds_edit_link').setAttribute('href', 'javascript:void(0);');
- $n(row, 'myopac_holds_edit_link').onclick = function(){alertId('invalid_hold');};
- return;
- }
-
- buildTitleDetailLink(record, title_link);
- buildSearchLink(STYPE_AUTHOR, record.author(), author_link);
-
- if( volume ) {
- $n(row, 'volume').appendChild(text(volume.label()));
- unHideMe($n(row, 'vol_copy'));
- if(copy) $n(row, 'copy').appendChild(text(copy.barcode()));
- }
-
- var form = $("myopac_holds_form_" + hold.id());
-
- if(form) {
- var mods_formats = record.types_of_resource();
-
- if( hold.hold_type() == 'M' ) {
- var data = holdsParseMRFormats(hold.holdable_formats());
- mods_formats = data.mods_formats;
- }
-
- for( var i = 0; i < mods_formats.length; i++ ) {
- var img = elem("img");
- setResourcePic(img, mods_formats[i]);
- form.appendChild(img);
- }
- }
-}
-
-var finesShown = false;
-function myOPACShowFines() {
- if(finesShown) return; finesShown = true;
- var req = new Request(FETCH_FINES_SUMMARY, G.user.session, G.user.id() );
- req.callback(_myOPACShowFines);
- req.send();
-}
-
-function _myOPACShowFines(r) {
- hideMe($('myopac_fines_summary_loading'));
- unHideMe($('myopac_fines_summary_row'));
-
- var summary = r.getResultObject();
- var total = "0.00"; /* localization? */
- var paid = "0.00";
- var balance = "0.00";
- if( instanceOf(summary,mous) ) {
-
- total = _finesFormatNumber(summary.total_owed());
- paid = _finesFormatNumber(summary.total_paid());
- balance = _finesFormatNumber(summary.balance_owed());
-
- var req = new Request(FETCH_TRANSACTIONS, G.user.session, G.user.id() );
- req.callback(myOPACShowTransactions);
- req.send();
- }
-
- $('myopac_fines_summary_total').appendChild(text(total));
- $('myopac_fines_summary_paid').appendChild(text(paid));
- $('myopac_fines_summary_balance').appendChild(text(balance));
-}
-
-function _finesFormatNumber(num) {
- if(isNull(num)) num = 0;
- num = num + "";
- if(num.length < 2 || !num.match(/\./)) num += ".00";
- if(num.match(/\./) && num.charAt(num.length-2) == '.') num += "0";
- return num;
-}
-
-//function _trimTime(time) { if(!time) return ""; return time.replace(/\ .*/,""); }
-function _trimTime(time) {
- if(!time) return "";
- time = time.replace(/(T\d\d:\d\d:\d\d)([+-]\d\d)(\d)/, "$1$2:$3");
- var d = dojo.date.stamp.fromISOString(time);
- if(!d) return ""; /* date parse failed */
- //return d.iso8601Format('YMD');
- return dojo.date.locale.format(d, {"formatLength": "medium"});
-}
-
-function _trimSeconds(time) {
- if(!time) return "";
- var d = dojo.date.stamp.fromISOString(time.replace(/(T\d\d:\d\d:\d\d)([+-]\d\d)(\d)/, "$1$2:$3"));
- if(!d) return ""; /* date parse failed */
- return d.iso8601Format('YMDHM',null,true,true);
-}
-
-function myOPACShowTransactions(r) {
-
- if(myopacGenericTransTemplate || myopacCircTransTemplate) return;
-
- var transactions = r.getResultObject();
-
- for( var idx in transactions ) {
-
- var trans = transactions[idx].transaction;
- var record = transactions[idx].record;
- var circ = transactions[idx].circ;
-
- if(trans.xact_type() == 'circulation')
- myOPACShowCircTransaction(trans, record, circ);
-
- else if(trans.xact_type() == 'grocery' )
- myopacShowGenericTransaction( trans );
- }
-}
-
-var myopacGenericTransTemplate;
-function myopacShowGenericTransaction( trans ) {
- var tbody = $('myopac_trans_tbody');
-
- if(!myopacGenericTransTemplate) {
- myopacGenericTransTemplate =
- tbody.removeChild($('myopac_trans_row'));
- removeChildren(tbody);
- }
-
- var row = myopacGenericTransTemplate.cloneNode(true);
-
- $n(row,'myopac_trans_start').appendChild(
- text(_trimSeconds(trans.xact_start())));
-
- $n(row,'myopac_trans_last_payment').appendChild(
- text(_trimSeconds(trans.last_payment_ts())));
-
- $n(row,'myopac_trans_init_amount').appendChild(
- text(_finesFormatNumber(trans.total_owed())));
-
- $n(row,'myopac_trans_total_paid').appendChild(
- text(_finesFormatNumber(trans.total_paid())));
-
- $n(row,'myopac_trans_balance').appendChild(
- text(_finesFormatNumber(trans.balance_owed())));
-
- var req = new Request(FETCH_MONEY_BILLING, G.user.session, trans.id());
- req.send(true);
- var bills = req.result();
- if(bills && bills[0])
- $n(row,'myopac_trans_bill_type').appendChild(
- text(bills[0].billing_type()));
-
- tbody.appendChild(row);
- unHideMe($('myopac_trans_div'));
-}
-
-
-
-/* draws a circulation transaction summary */
-var myopacCircTransTemplate;
-function myOPACShowCircTransaction(trans, record, circ) {
- var tbody = $('myopac_circ_trans_tbody');
-
- if(!myopacCircTransTemplate) {
- myopacCircTransTemplate = tbody.removeChild($('myopac_circ_trans_row'));
- removeChildren(tbody);
- }
-
- var row = myopacCircTransTemplate.cloneNode(true);
-
- if(record) {
- buildTitleDetailLink(record, $n(row,'myopac_circ_trans_title'));
-
- $n(row,'myopac_circ_trans_author').appendChild(text(
- normalize(truncate(record.author(), 65))));
-
- } else {
-
- var req = new Request( FETCH_COPY, circ.target_copy() );
- req.alertEvents = false;
- req.send(true);
- var copy = req.result();
- if( copy ) {
- $n(row,'myopac_circ_trans_title').appendChild(text(copy.dummy_title()));
- $n(row,'myopac_circ_trans_author').appendChild(text(copy.dummy_author()));
- }
- }
-
-
- $n(row,'myopac_circ_trans_start').
- appendChild(text(_trimTime(trans.xact_start())));
- var due = _trimTime(circ.due_date());
- var checkin = _trimTime(circ.stop_fines_time());
-
- $n(row,'myopac_circ_trans_due').appendChild(text(due))
- if(checkin)
- appendClear($n(row,'myopac_circ_trans_finished'), text(checkin));
- if(circ.stop_fines() == 'LOST')
- appendClear($n(row,'myopac_circ_trans_finished'), text(circ.stop_fines()));
- if(circ.stop_fines() == 'CLAIMSRETURNED')
- appendClear($n(row,'myopac_circ_trans_finished'), text(""));
-
-
- $n(row,'myopac_circ_trans_balance').
- appendChild(text(_finesFormatNumber(trans.balance_owed())));
-
- tbody.appendChild(row);
- unHideMe($('myopac_circ_trans_div'));
-}
-
-
-function myOPACSavePrefs() {
- G.user.prefs[PREF_HITS_PER] = getSelectorVal($('prefs_hits_per'));
- G.user.prefs[PREF_DEF_FONT] = getSelectorVal($('prefs_def_font'));
- G.user.prefs[PREF_HOLD_NOTIFY] = getSelectorVal($('prefs_hold_notify'));
- G.user.prefs[PREF_DEF_DEPTH] = getSelectorVal($('prefs_def_range'));
-
- if( $('myopac_pref_home_lib').checked == true )
- G.user.prefs[PREF_DEF_LOCATION] = null;
- else
- G.user.prefs[PREF_DEF_LOCATION] = getSelectorVal($('prefs_def_location'));
-
- if(commitUserPrefs())
- alert($('prefs_update_success').innerHTML);
- else alert($('prefs_update_failure').innerHTML);
-}
-
-
-function myOPACShowDefFont() {
- var font;
- if(G.user.prefs[PREF_DEF_FONT])
- font = G.user.prefs[PREF_DEF_FONT];
- else font = "regular";
- setSelector($('prefs_def_font'), font);
-}
-
-function myOPACShowHoldNotify() {
- var pref = G.user.prefs[PREF_HOLD_NOTIFY];
-
- if(pref) {
- if(pref.match(/email/i) && pref.match(/phone/i)) {
- setSelector($('prefs_hold_notify'), 'phone:email');
- } else if( pref.match(/email/i) ) {
- setSelector($('prefs_hold_notify'), 'email');
- } else if( pref.match(/phone/i) ) {
- setSelector($('prefs_hold_notify'), 'phone');
- }
-
- } else {
- setSelector($('prefs_hold_notify'), 'phone:email');
- }
-}
-
-function myOPACShowPrefs() {
- grabUserPrefs();
- myOPACShowHitsPer();
- myOPACShowDefFont();
- myOPACShowHoldNotify();
- myOPACShowDefLocation();
- hideMe($('myopac_prefs_loading'));
-}
-
-var defSearchLocationDrawn = false;
-var defDepthIndex = 0;
-function myOPACShowDefLocation() {
-
- var selector = $('prefs_def_location');
- var rsel = $('prefs_def_range');
-
- if(!defSearchLocationDrawn) {
-
- defSearchLocationDrawn = true;
-
- var org = G.user.prefs[PREF_DEF_LOCATION];
-
- if(!org) {
- $('myopac_pref_home_lib').checked = true;
- $('prefs_def_location').disabled = true;
- org = G.user.home_ou();
- }
-
- buildOrgSel(selector, globalOrgTree, 0);
-
- globalOrgTypes = globalOrgTypes.sort(
- function(a, b) {
- if( a.depth() < b.depth() ) return -1;
- return 1;
- }
- );
-
- iterate(globalOrgTypes,
- function(t) {
- if( t.depth() <= findOrgDepth(org) ) {
- setSelectorVal(rsel, defDepthIndex++, t.opac_label(), t.depth());
- if( t.depth() == findOrgDepth(org) )
- setSelector(rsel, t.depth());
- }
- }
- );
- }
-
- setSelector(selector, org);
-}
-
-function myOPACShowHitsPer() {
- var hits = 10;
- if(G.user.prefs[PREF_HITS_PER])
- hits = G.user.prefs[PREF_HITS_PER];
- var hitsSel = $('prefs_hits_per');
- setSelector(hitsSel, hits);
-}
-
-var userShown = false;
-function myOPACShowSummary() {
- if(userShown) return; userShown = true;
- var req = new Request(FETCH_FLESHED_USER,G.user.session, G.user.id());
- req.callback(_myOPACSummaryShowUer);
- req.send();
-}
-
-var addrRowTemplate;
-var notesTemplate;
-function _myOPACSummaryShowUer(r) {
-
- var user = r.getResultObject();
- fleshedUser = user;
- if(!user) return;
-
- var expireDate = dojo.date.stamp.fromISOString(user.expire_date());
- if( expireDate < new Date() ) {
- appendClear($('myopac.expired.date'), expireDate.iso8601Format('YMD'));
- unHideMe($('myopac.expired.alert'));
- }
-
- var iv1 = user.ident_value()+'';
- if (iv1.length > 4 && iv1.match(/\d{4}/)) iv1 = iv1.substring(0,4) + '***********';
-
-
- appendClear($('myopac_summary_prefix'),text(user.prefix()));
- appendClear($('myopac_summary_first'),text(user.first_given_name()));
- appendClear($('myopac_summary_middle'),text(user.second_given_name()));
- appendClear($('myopac_summary_dayphone'),text(user.day_phone()));
- appendClear($('myopac_summary_eveningphone'),text(user.evening_phone()));
- appendClear($('myopac_summary_otherphone'),text(user.other_phone()));
- appendClear($('myopac_summary_last'),text(user.family_name()));
- appendClear($('myopac_summary_suffix'),text(user.suffix()));
- appendClear($('myopac_summary_username'),text(user.usrname()));
- appendClear($('myopac_summary_email'),text(user.email()));
- appendClear($('myopac_summary_barcode'),text(user.card().barcode()));
- appendClear($('myopac_summary_ident1'),text(iv1));
- appendClear($('myopac_summary_homelib'),text(findOrgUnit(user.home_ou()).name()));
- appendClear($('myopac_summary_create_date'),text(_trimTime(user.create_date())));
-
- var req = new Request(
- FETCH_USER_NOTES, G.user.session, {pub:1, patronid:G.user.id()});
- req.callback(myopacDrawNotes);
- req.send();
-
-
- var tbody = $('myopac_addr_tbody');
- var template;
-
- if(addrRowTemplate) {
- template = addrRowTemplate;
- } else {
- template = tbody.removeChild($('myopac_addr_row'));
- addrRowTemplate = template;
- }
- removeChildren(tbody);
-
- var addrs = user.addresses();
- for( var a in addrs ) {
- var addr = addrs[a];
- if(!allowPendingAddr && isTrue(addr.pending()))
- continue;
- if(addr.replaces() != null) continue;
- var row = template.cloneNode(true);
- myOPACDrawAddr(row, addr, addrs);
- tbody.appendChild(row);
- }
-}
-
-
-function myopacDrawNotes(r) {
- var notes = r.getResultObject();
- var tbody = $('myopac.notes.tbody');
- if(!notesTemplate)
- notesTemplate = tbody.removeChild($('myopac.notes.tr'));
- removeChildren(tbody);
-
- iterate(notes,
- function(note) {
- unHideMe($('myopac.notes.div'));
- var row = notesTemplate.cloneNode(true);
- $n(row, 'title').appendChild(text(note.title()));
- $n(row, 'value').appendChild(text(note.value()));
- tbody.appendChild(row);
- }
- );
-}
-
-
-
-function myOPACDrawAddr(row, addr, addrs) {
- appendClear($n(row, 'myopac_addr_type'),text(addr.address_type()));
- appendClear($n(row, 'myopac_addr_street'),text(addr.street1()));
- appendClear($n(row, 'myopac_addr_street2'),text(addr.street2()));
- appendClear($n(row, 'myopac_addr_city'),text(addr.city()));
- appendClear($n(row, 'myopac_addr_county'),text(addr.county()));
- appendClear($n(row, 'myopac_addr_state'),text(addr.state()));
- appendClear($n(row, 'myopac_addr_country'),text(addr.country()));
- appendClear($n(row, 'myopac_addr_zip'),text(addr.post_code()));
-
- if(!allowPendingAddr) return;
-
- $n(row, 'myopac_addr_edit_link').onclick = function(){myopacEditAddress(addr)};
- unHideMe($n(row, 'myopac_addr_edit_td'));
-
- /* if we have a replacement address, plop it into the table next to this addr */
- var repl = grep(addrs,
- function(a) {
- return a.replaces() == addr.id();
- }
- );
-
- $n(row, 'myopac_pending_addr_td').id = 'myopac_pending_addr_td_' + addr.id();
-
- if(repl) {
- hideMe($n(row, 'myopac_addr_edit_td')); // hide the edit link
- repl = repl[0];
- myopacSetAddrInputs(row, repl);
- }
-}
-
-function myopacEditAddress(addr) {
- var td = $('myopac_pending_addr_td_' + addr.id());
- var row = td.parentNode;
- myopacSetAddrInputs(row, addr);
-}
-
-function myopacSetAddrInputs(row, addr, prefix) {
- unHideMe($n(row, 'myopac_pending_addr_td'));
- $n(row, 'myopac_pending_addr_type').value = addr.address_type();
- $n(row, 'myopac_pending_addr_street').value = addr.street1();
- $n(row, 'myopac_pending_addr_street2').value = addr.street2();
- $n(row, 'myopac_pending_addr_city').value = addr.city();
- $n(row, 'myopac_pending_addr_county').value = addr.county();
- $n(row, 'myopac_pending_addr_state').value = addr.state();
- $n(row, 'myopac_pending_addr_country').value = addr.country();
- $n(row, 'myopac_pending_addr_zip').value = addr.post_code();
- $n(row, 'myopac_pending_addr_edit_link').onclick = function(){myopacSaveAddress(row, addr)};
- $n(row, 'myopac_pending_addr_del_link').onclick = function(){myopacSaveAddress(row, addr, true)};
-}
-
-// if no pending addr exists, this is called with the original address
-function myopacSaveAddress(row, addr, deleteMe) {
-
- if(addr.replaces() == null) {
- // we are editing a non-pending address. create a pending address to manage that
- var repl = new aua();
- repl.usr(addr.usr());
- repl.address_type(addr.address_type());
- repl.within_city_limits(addr.within_city_limits());
- repl.replaces(addr.id());
- repl.pending('t');
- repl.isnew(true);
- repl.id(null);
- addr = repl;
- }
-
- if(deleteMe) {
- if(addr.id() == null) {
- hideMe($n(row, 'myopac_pending_addr_td'));
- return;
- }
- addr.isdeleted(true);
- } else {
- addr.address_type($n(row, 'myopac_pending_addr_type').value);
- addr.street1($n(row, 'myopac_pending_addr_street').value);
- addr.street2($n(row, 'myopac_pending_addr_street2').value);
- addr.city($n(row, 'myopac_pending_addr_city').value);
- addr.county($n(row, 'myopac_pending_addr_county').value);
- addr.state($n(row, 'myopac_pending_addr_state').value);
- addr.country($n(row, 'myopac_pending_addr_country').value);
- addr.post_code($n(row, 'myopac_pending_addr_zip').value);
- }
-
- var req = new Request(
- 'open-ils.actor:open-ils.actor.user.address.pending.cud',
- G.user.session, addr);
-
- req.callback(
- function(r) {
- var resp = r.getResultObject();
-
- if(addr.isnew()) {
- // new, add to list of addrs
- addr.id(resp);
- fleshedUser.addresses().push(addr);
-
- } else {
- // deleted, remove from list of addrs
- if(addr.isdeleted()) {
- hideMe($n(row, 'myopac_pending_addr_td'));
- var addrs = [];
- for(var i in fleshedUser.addresses()) {
- var a = fleshedUser.addresses()[i];
- if(a.id() != addr.id())
- addrs.push(a);
- }
- fleshedUser.addresses(addrs);
- }
- }
- alertId('myopac_addr_changes_saved');
- }
- );
- req.send();
-};
-
-
-function myOPACUpdateUsername() {
- var username = $('myopac_new_username').value;
- if(username == null || username == "") {
- alert($('myopac_username_error').innerHTML);
- return;
- }
-
- if( username.match(/.*\s.*/) ) {
- alert($('myopac_invalid_username').innerHTML);
- return;
- }
-
- r = fetchOrgSettingDefault(globalOrgTree.id(), 'opac.barcode_regex');
- if(r) REGEX_BARCODE = new RegExp(r);
-
- if(username.match(REGEX_BARCODE)) {
- alert($('myopac_invalid_username').innerHTML);
- return;
- }
-
- /* first see if the requested username is taken */
- var req = new Request(CHECK_USERNAME, G.user.session, username);
- req.send(true);
- var res = req.result();
- /* If the username does not already exist, res will be null;
- * we can move on to updating the username.
- *
- * If the username does exist, then res will be the user ID.
- * G.user.id() gives us the currently authenticated user ID.
- * If res == G.user.id(), we try to update the username anyways.
- */
- if( res !== null && res != G.user.id() ) {
- alertId('myopac_username_dup');
- return;
- }
-
- var req = new Request(UPDATE_USERNAME, G.user.session, username );
- req.send(true);
- if(req.result()) {
-
- var evt;
- var res = req.result();
- if(evt = checkILSEvent(res)) {
- alertILSEvent(res);
- return;
- }
-
- G.user.usrname(username);
- hideMe($('myopac_update_username_row'));
- userShown = false;
- alertId('myopac_username_success');
- myOPACShowSummary();
- return;
- }
-
- alert($('myopac_username_failure').innerHTML);
-}
-
-function myOPACUpdateEmail() {
- var email = $('myopac_new_email').value;
- if(email == null || email == "") {
- alert($('myopac_email_error').innerHTML);
- return;
- }
-
- var req = new Request(UPDATE_EMAIL, G.user.session, email );
- req.send(true);
- if(req.result()) {
- G.user.email(email);
- hideMe($('myopac_update_email_row'));
- userShown = false;
- alertId('myopac_email_success');
- myOPACShowSummary();
- return;
- }
-
- alert($('myopac_email_failure').innerHTML);
-}
-
-
-function myOPACUpdatePassword() {
- var curpassword = $('myopac_current_password').value;
- var password = $('myopac_new_password').value;
- var password2 = $('myopac_new_password2').value;
-
- if( curpassword == null || curpassword == "" ||
- password == null || password == "" ||
- password2 == null || password2 == "" || password != password2 ) {
- alert($('myopac_password_error').innerHTML);
- return;
- }
-
- if(!strongPassword(password, true)) return;
-
- var req = new Request(UPDATE_PASSWORD, G.user.session, password, curpassword );
- req.send(true);
- if(req.result()) {
- hideMe($('myopac_update_password_row'));
- userShown = false;
- alertId('myopac_password_success');
- myOPACShowSummary();
- return;
- }
-
- alert($('myopac_password_failure').innerHTML);
-}
-
-
-
-
-var containerTemplate;
-function myOPACShowBookbags(force) {
-
- var tbody =$('myopac_bookbag_tbody') ;
-
- if(!containerTemplate)
- containerTemplate = tbody.removeChild($('myopac_bookbag_tr'));
- else if(!force) return;
-
- removeChildren(tbody);
-
- var containers = containerFetchAll();
-
- var found = false;
- for( var i in containers ) {
- found = true;
- var cont = containers[i];
- var row = containerTemplate.cloneNode(true);
- row.id = 'myopac_bookbag_row_' + cont.id();
- var link = $n(row, 'myopac_expand_bookbag');
- var dlink = $n(row, 'myopac_container_delete');
- link.appendChild( text(cont.name()) );
- link.setAttribute('href',
- 'javascript:myOPACExpandBookbag("' + cont.id() + '","' + cont.name() + '");');
- myOPACFetchBBItems( cont.id(), row );
- dlink.setAttribute('href', 'javascript:myOPACDeleteBookbag("'+cont.id()+'");');
-
- if( isTrue(cont.pub()) ) {
- unHideMe($n(row, 'myopac_bb_published_yes'));
- var link = $n(row, 'myopac_bb_published_view');
- link.setAttribute('href', buildExtrasLink( 'feed/bookbag/html-full/'+cont.id(), false));
- link.setAttribute('target', '_blank' );
- unHideMe(link);
-
- link = $n(row, 'myopac_bb_published_atom');
- link.setAttribute('href', buildExtrasLink( 'feed/bookbag/rss2-full/'+cont.id(), false));
- link.setAttribute('target', '_blank' );
- unHideMe(link);
-
- link = $n(row, 'myopac_bb_make_unpublished');
- link.setAttribute('href', 'javascript:myOPACMakeBBPublished("'+cont.id()+'", true);');
- unHideMe(link);
-
- var RW = $n(row, 'myopac_bb_exp_refworks');
- if (RW && myopacEnableRefWorks) {
- var here = (findOrgUnit(getLocation())).name();
- var org_name = here.replace(" ", "+");
- var cgi = new CGI();
-
- RW.setAttribute('href',
- myopacRefWorksHost + '/express/expressimport.asp?vendor='
- + org_name
- + '&filter=MARC+Format&database=All+MARC+Formats&encoding=65001&url=http%3A%2F%2F'
- + cgi.server_name + '/opac/extras/feed/bookbag/marctxt-full/'
- + cont.id()
- );
- RW.setAttribute('target', 'RefWorksMain');
- unHideMe($n(row, 'myopac_bb_exp_refworks'));
- }
- } else {
- unHideMe($n(row, 'myopac_bb_published_no'));
- var link = $n(row, 'myopac_bb_make_published');
- link.setAttribute('href', 'javascript:myOPACMakeBBPublished("'+cont.id()+'");');
- unHideMe(link);
- }
-
- tbody.appendChild(row);
- }
-
- if(!found) unHideMe($('myopac_bookbags_none'));
- else unHideMe($('myopac_bookbag_table'));
-}
-
-function myOPACMakeBBPublished(bbid, hideme) {
-
- var bb = fleshedContainers[bbid];
-
- if(hideme) {
- if(!confirm($('myopac_make_unpublished_confirm').innerHTML)) return;
- bb.pub('f');
- } else {
- if(!confirm($('myopac_make_published_confirm').innerHTML)) return;
- bb.pub('t');
- }
-
- var result = containerUpdate(bb);
-
- var code = checkILSEvent(result);
- if(code) { alertILSEvent(result); return; }
-
- alert($('myopac_bb_update_success').innerHTML);
- myOPACShowBookbags(true);
-}
-
-
-
-function myOPACDeleteBookbag(id) {
- if( confirm( $('myopac_delete_bookbag_warn').innerHTML ) ) {
- var result = containerDelete(id);
- var code = checkILSEvent(result);
- if(code) { alertILSEvent(result); return; }
- alert($('myopac_bb_update_success').innerHTML);
- hideMe($('myopac_bookbag_items_table'));
- hideMe($('myopac_bookbag_items_name'));
- hideMe($('myopac_bookbag_no_items'));
- myOPACShowBookbags(true);
- }
-}
-
-function myOPACFetchBBItems( id, row, block ) {
- if(!block) {
- containerFlesh( id, _myOPACSetBBItems, { row: row } );
- } else {
- var cont = containerFlesh(id);
- myOPACSetBBItems( cont, row );
- }
-}
-
-function _myOPACSetBBItems(r) { myOPACSetBBItems( r.getResultObject(), r.args.row ); }
-
-function myOPACSetBBItems( container, row ) {
- fleshedContainers[container.id()] = container;
- var node = $n(row, 'myopac_bookbag_item_count');
- removeChildren(node);
- node.appendChild( text(container.items().length) );
-}
-
-var BBItemsRow;
-function myOPACExpandBookbag( id, name ) {
-
- var tbody = $('myopac_bookbag_items_tbody');
- if(!BBItemsRow) BBItemsRow = tbody.removeChild($('myopac_bookbag_items_row'));
- removeChildren(tbody);
- removeChildren($('myopac_bookbag_items_name'));
-
- $('myopac_bookbag_items_name').appendChild(text(name));
-
- if( fleshedContainers[id] ) {
- var len = fleshedContainers[id].items().length;
-
- if( len == 0 ) {
- unHideMe($('myopac_bookbag_no_items'));
- hideMe($('myopac_bookbag_items_table'));
- return;
- }
-
- hideMe($('myopac_bookbag_no_items'));
- unHideMe($('myopac_bookbag_items_table'));
-
- for( var i = 0; i != len; i++ ) {
- var row = BBItemsRow.cloneNode(true);
- found = true;
-
- var item = fleshedContainers[id].items()[i];
- var tlink = $n(row,'myopac_bookbag_items_title');
- var alink = $n(row,'myopac_bookbag_items_author');
-
- var req = new Request( FETCH_RMODS, item.target_biblio_record_entry() );
- req.request.tlink = tlink;
- req.request.alink = alink;
- req.callback(myOPACShowBBItem);
- req.send();
-
- var clink = $n(row, 'myopac_bookbag_items_remove');
- clink.setAttribute('href', 'javascript:myOPACRemoveBBItem("'+item.id()+'","'+id+'","'+name+'");');
-
- tbody.appendChild(row);
- }
- }
-}
-
-function myOPACRemoveBBItem( id, containerid, container_name ) {
- if(!confirm($('myopac_remove_bb_item_confirm').innerHTML)) return;
- var stat = containerRemoveItem( id );
- if(stat) alert($('myopac_bb_update_success').innerHTML);
- myOPACFetchBBItems( containerid, $('myopac_bookbag_row_' + containerid), true);
- myOPACExpandBookbag( containerid, container_name );
-}
-
-function myOPACShowBBItem(r) {
- var record = r.getResultObject();
- buildTitleDetailLink(record, r.tlink);
- buildSearchLink(STYPE_AUTHOR, record.author(), r.alink);
-}
-
-function myOPACCreateBookbag() {
- var name = $('myopac_bookbag_new_name').value;
- if(!name) return;
-
- var exists = false;
- for( var c in fleshedContainers ) { exists = true; break; }
-
- /* let them know what they are getting into... */
- if(!exists) if(!confirm($('bb_create_warning').innerHTML)) return;
-
- var result = containerCreate( name, $('bb_public_yes').checked );
- var code = checkILSEvent(result);
- if(code) { alertILSEvent(result); return; }
- if(result) alert($('myopac_bb_update_success').innerHTML);
- myOPACShowBookbags(true);
-}
-
-
-/* ---------------------------------------------------------------------- */
-/* Non cat circs */
-/* ---------------------------------------------------------------------- */
-
-var nonCatCircIds;
-var nonCatTypes;
-/* if we have some circs, grab the non-cat types */
-function myOPACDrawNonCatCircs(r) {
- var ids = r.getResultObject();
- if(ids.length == 0) return;
- nonCatCircIds = ids;
- unHideMe($('non_cat_circs_div'));
- var req = new Request(FETCH_NON_CAT_TYPES, G.user.home_ou());
- req.callback(myOPACDrawNonCatCircs2);
- req.send();
-}
-
-
-/* now we have circs and the types.. draw each one */
-var nonCatTbody;
-var nonCatRow;
-function myOPACDrawNonCatCircs2(r) {
- nonCatTypes = r.getResultObject();
- nonCatTbody = $('non_cat_circs_tbody');
- if(!nonCatRow) nonCatRow =
- nonCatTbody.removeChild($('non_cat_circs_row'));
- removeChildren(nonCatTbody);
- for( var i in nonCatCircIds ) {
- var req = new Request(FETCH_NON_CAT_CIRC, G.user.session, nonCatCircIds[i]);
- req.callback(myOPACDrawNonCatCirc);
- req.send();
- }
-}
-
-
-/* draw a single circ */
-function myOPACDrawNonCatCirc(r) {
- var circ = r.getResultObject();
-
-
- var type = grep(nonCatTypes,
- function(i){
- return (i.id() == circ.item_type());
- }
- )[0];
-
-
- var row = nonCatTbody.appendChild(nonCatRow.cloneNode(true));
- appendClear($n(row, 'circ_lib'), text(findOrgUnit(circ.circ_lib()).name()));
- appendClear($n(row, 'item_type'), text(type.name()));
-
- var duration = interval_to_seconds(type.circ_duration());
- duration = parseInt(duration + '000');
-
- var dtf = circ.circ_time();
- var start = dojo.date.stamp.fromISOString(circ.circ_time().replace(/(T\d\d:\d\d:\d\d)([+-]\d\d)(\d)/, "$1$2:$3"));
- var due = new Date( start.getTime() + duration );
- appendClear($n(row, 'circ_time'), text(due.iso8601Format('YMDHM', null, true, true)));
-}
-
-
-
-
-function myopacSelectAllChecked() {
- __myopacSelectChecked(true);
-}
-
-function myopacSelectNoneChecked() {
- __myopacSelectChecked(false);
-}
-
-function __myopacSelectChecked(value) {
- var rows = myopacGetCheckedOutRows();
- for( var i = 0; i < rows.length; i++ ) {
- var row = rows[i];
- var box = $n(row, 'selectme');
- if( box && ! box.disabled )
- box.checked = value;
- }
-}
-
-function myopacGetCheckedOutRows() {
- var rows = [];
- var tbody = $('myopac_checked_tbody');
- var children = tbody.childNodes;
- for( var i = 0; i < children.length; i++ ) {
- var child = children[i];
- if( child.nodeName.match(/^tr$/i) )
- if( $n(child, 'selectme') )
- rows.push(child);
- }
- return rows;
-}
-
-var __renew_circs = [];
-
-/* true if 1 renewal succeeded */
-var __success_count = 0;
-
-/*
- holdBlock - checking for holds before allowing renewals
-
-*/
-function holdBlock(r) {
- var rec = r.getResultObject();
- var circ = r.circ;
-
- //this may be inefficient, but go this route to snag needed title id
- var new_req = new Request( FETCH_BIB_ID_BY_BARCODE, rec.barcode() );
- new_req.send(true);
-
- if (new_req) {
- var record = new_req.result();
-
- if (record){
- //alert(HOLDSU + ' start for ' + circ.id() + ' - ' + rec.barcode());
- /*
- var init_request = new Request( LOGIN_INIT, HOLDSU );
- init_request.send(true);
- var seed = init_request.result();
-
- var args = {
- password : hex_md5(seed + hex_md5(HOLDSP)),
- type : "opac",
- org : getOrigLocation(),
- username : HOLDSU
- };
-
- var auth_request = new Request( LOGIN_COMPLETE, args );
-
- auth_request.request.alertEvent = false;
- auth_request.send(true);
- var auth_result = auth_request.result();
-
- if(!auth_result) {
- alertId('problem with renewing');
- return null;
- }
- var temp_session = auth_result.payload.authtoken;
- */
-
- //if you needed a special session for this, would use the above
- //and pass it in the call, however, this doesn't seem to matter
- //for this call
- /*
- new_req = new Request( "open-ils.circ:open-ils.circ.open_holds.retrieve",
- temp_session, record, 'T', getOrigLocation() );
- */
-
- //make the call with user's credentials
- new_req = new Request( "open-ils.circ:open-ils.circ.open_holds.retrieve",
- G.user.session, record, 'T', getOrigLocation() );
-
- new_req.send(true);
-
- //we would clean up session right away if we had created one
- /*
- var sess_req = new Request(LOGIN_DELETE, temp_session);
- sess_req.send(true);
- try { sess_req.result(); } catch(E){}
- */
-
- if (new_req) {
- record = new_req.result();
- if (record.length > 0) {
- var renewTitle = __circ_titles[circ.id()];
- if (renewTitle) {
- alert('Sorry, someone has requested \"' + renewTitle +
- '\", it can not be renewed, please return this title to the library.');
- }//if renewTitle
- return null;
- } else {
- //alert('renew for ' + circ.id());
- moRenewCirc( circ.target_copy(), G.user.id(), circ );
- }//if record
- }//if new_req
-
- }//if record
- }//if new_req
-
-}//holdBlock
-
-/* renews all selected circulations */
-function myOPACRenewSelected() {
-
- var rows = myopacGetCheckedOutRows();
- if(!confirm($('myopac_renew_confirm').innerHTML)) return;
- __success_count = 0;
-
- for( var i = 0; i < rows.length; i++ ) {
-
- var row = rows[i];
- if( ! $n(row, 'selectme').checked ) continue;
- var circ_id = row.getAttribute('circid');
-
- var circ;
- for( var j = 0; j != circsCache.length; j++ ) {
- if(circsCache[j].id() == circ_id) {
- circ = circsCache[j];
- var cp = circ.target_copy();
- if (cp) {
- var hold_req = new Request(FETCH_FLESHED_COPY,
- circ.target_copy() );
- hold_req.request.circ = circ;
- hold_req.callback(holdBlock);
- hold_req.send();
- }//if cp
- }//if circsCache
- }//for j
- }//for i
-}//myOPACRenewSelected
-
-/* renews a single circulation */
-function moRenewCirc(copy_id, user_id, circ) {
-
- _debug('renewing circ ' + circ.id() + ' with copy ' + copy_id);
- var req = new Request(RENEW_CIRC, G.user.session,
- { patron : user_id,
- copyid : copy_id,
- opac_renewal : 1
- }
- );
-
- req.request.alertEvent = false;
- req.callback(myHandleRenewResponse);
- req.request.circ = circ;
- req.send();
-}
-
-
-
-/* handles the circ renew results */
-function myHandleRenewResponse(r) {
- var res = r.getResultObject();
- var circ = r.circ;
-
- /* remove this circ from the list of circs to renew */
- __renew_circs = grep(__renew_circs, function(i) { return (i.id() != circ.id()); });
-
- _debug("handling renew result for " + circ.id());
-
- if(checkILSEvent(res) || checkILSEvent(res[0]))
- alertIdText('myopac_renew_fail', __circ_titles[circ.id()]);
- else __success_count++;
-
- if(__renew_circs) return; /* more to come */
-
- __renew_circs = [];
-
- if( __success_count > 0 )
- alertIdText('myopac_renew_success', __success_count);
-
- hideMe($('my_renewing'));
- checkedDrawn = false;
- myOPACShowChecked();
-}
-
-/** ---- batch hold processing ------------ */
-
-
-/* myopac_holds_checkbx */
-function myopacSelectAllHolds() {
- var rows = getTableRows($("myopac_holds_tbody"));
- for(var i = 0; i < rows.length; i++) {
- cb = $n(rows[i], 'myopac_holds_selected_chkbx');
- if(cb) cb.checked = true;
- }
-}
-
-function myopacSelectNoneHolds() {
- var rows = getTableRows($("myopac_holds_tbody"));
- for(var i = 0; i < rows.length; i++) {
- cb = $n(rows[i], 'myopac_holds_selected_chkbx');
- if(cb) cb.checked = false;
- }
-}
-
-function myopacSelectedHoldsRows() {
- var r = [];
- var rows = getTableRows($("myopac_holds_tbody"));
- for(var i = 0; i < rows.length; i++) {
- cb = $n(rows[i], 'myopac_holds_selected_chkbx');
- if(cb && cb.checked)
- r.push(rows[i]);
- }
- return r;
-}
-
-var myopacProcessedHolds = 0;
-var myopacHoldsToProcess = 0;
-function myopacDoHoldAction() {
-
- var selectedRows = myopacSelectedHoldsRows();
- action = getSelectorVal($('myopac_holds_actions'));
- $('myopac_holds_actions_none').selected = true;
- if(selectedRows.length == 0) return;
-
- myopacProcessedHolds = 0;
-
- if(!confirmId('myopac.holds.'+action+'.confirm')) return;
- myopacSelectNoneHolds(); /* clear the selection */
-
-
- /* first, let's collect the holds that actually need processing and
- collect the full process count while we're at it */
- var holds = [];
- for(var i = 0; i < selectedRows.length; i++) {
- hold = holdCache[myopacHoldIDFromRow(selectedRows[i])];
- var qstats = holdStatusCache[hold.id()];
- switch(action) {
- case 'cancel':
- holds.push(hold);
- break;
- case 'thaw_date':
- case 'thaw':
- if(isTrue(hold.frozen()))
- holds.push(hold);
- break;
- case 'freeze':
- if(!isTrue(hold.frozen()) && qstats.status < 3)
- holds.push(hold);
- break;
- }
- }
- myopacHoldsToProcess = holds;
- if(myopacHoldsToProcess.length == 0) return;
-
- if(action == 'thaw_date' || action == 'freeze')
- myopacDrawHoldThawDateForm();
- else
- myopacProcessHolds(action);
-}
-
-
-function myopacProcessHolds(action, thawDate) {
-
- myopacShowHoldProcessing();
- /* now we process them */
- for(var i = 0; i < myopacHoldsToProcess.length; i++) {
-
- hold = myopacHoldsToProcess[i];
-
- var req;
- switch(action) {
-
- case 'cancel':
- req = new Request(CANCEL_HOLD, G.user.session, hold.id());
- break;
-
- case 'thaw':
- hold.frozen('f');
- hold.thaw_date(null);
- req = new Request(UPDATE_HOLD, G.user.session, hold);
- break;
-
- case 'thaw_date':
- case 'freeze':
- hold.frozen('t');
- hold.thaw_date(thawDate);
- req = new Request(UPDATE_HOLD, G.user.session, hold);
- break;
- //thawDate = prompt($('myopac.holds.freeze.select_thaw').innerHTML);
-
- }
-
- req.callback(myopacBatchHoldCallback);
- req.send();
- req = null;
- }
-}
-
-function myopacDrawHoldThawDateForm() {
- hideMe($('myopac_holds_main_table'));
- unHideMe($('myopac_holds_thaw_date_form'));
- $('myopac_holds_thaw_date_input').focus();
-}
-
-function myopacApplyThawDate() {
- var dateString = dijit.byId('myopac_holds_thaw_date_input').getValue();
- if(dateString) {
- dateString = dojo.date.stamp.toISOString(dateString);
- if(dateString) {
- dateString = holdsVerifyThawDate(dateString);
- if(!dateString) return;
- } else {
- dateString = null;
- }
- }
- myopacProcessHolds('freeze', dateString);
-}
-
-function myopacHoldIDFromRow(row) {
- return row.id.replace(/.*_(\d+)$/, '$1');
-}
-
-function myopacShowHoldProcessing() {
- unHideMe($('myopac_holds_processing'));
- hideMe($('myopac_holds_main_table'));
-}
-
-function myopacHideHoldProcessing() {
- hideMe($('myopac_holds_processing'));
- unHideMe($('myopac_holds_main_table'));
- hideMe($('myopac_holds_thaw_date_form'));
-}
-
-function myopacBatchHoldCallback(r) {
- if(r) /* force load any exceptions */
- r.getResultObject();
- if(++myopacProcessedHolds >= myopacHoldsToProcess.length) {
- myopacHideHoldProcessing();
- holdCache = {};
- holdStatusCache = {};
- myopacForceHoldsRedraw = true;
- myOPACShowHolds();
- }
-}
-
+++ /dev/null
-/* */
-
-detachAllEvt('common', 'run');
-attachEvt("common", "run", rdetailDraw);
-attachEvt("rdetail", "recordDrawn", rdetailBuildStatusColumns);
-attachEvt("rdetail", "recordDrawn", rdetailBuildInfoRows);
-attachEvt("rdetail", "recordDrawn", rdetailGetPageIds);
-
-/* Per-skin configuration settings */
-var rdetailLocalOnly = true;
-var rdetailShowLocal = true;
-var rdetailShowCopyLocation = true;
-var rdetailGoogleBookPreview = true;
-var rdetailDisplaySerialHoldings = true;
-var rdetailEnableRefWorks = true;
-var rdetailRefWorksHost = 'http://refworks.scholarsportal.info';
-var enableHoldsOnAvailable = false;
-
-var urlCheck = true; //whether to use a url check to mask legacy urls
-var urlExpr = /webvoy|janus|resolver/i; //regular expression
-
-var orderStatus = 9;
-var processStatus = 5;
-var checkStatus = true;
-
-/* assume 1 copy unless we look for more */
-var cpCnt = 1;
-
-/* threshold for paging */
-var rdetailBreakUpLargeSets = true; //flag for paging support
-var pgThreshold = 15; //the number of items to invoke paging
-var pgDisplay = 10; //number of items to display at a time
-
-/* used for call number checks */
-String.prototype.startsWith = function(str)
-{return (this.match("^"+str)==str)}
-
-/* vars vars vars */
-var record = null;
-var cp_statuses = null;
-var recordsCache = [];
-
-var copyRowParent = null;
-var copyRow = null;
-var statusRow = null;
-var numStatuses = null;
-var defaultCN;
-var callnumberCache = {};
-var globalCNCache = {};
-var localTOC;
-var cachedRecords;
-var _statusPositions = {};
-var opac_strings;
-
-var nextContainerIndex;
-
-var nextRecord;
-var prevRecord;
-
-var rdetailPrev = null;
-var rdetailNext = null;
-var rdetailStart = null;
-var rdetailEnd = null;
-
-/*
-this does simple call number mapping for building locations,
-we use call number regular expression for lining up location - array
-can be left blank if not used
-
-objCN(location id, regular expression, location (to be appended to call number),
- string to use for identifying building location from call number location)
-
-for example:
- new objCN(109, '^[A-G]|^H[A-C]', '2nd Floor', 'circulating')
-*/
-/*
-Leddy Mappings - as of Nov. 9, 2010
-
- Books
- A - HC 2nd Floor Main Building
- HD - QE 3rd Floor Main Building
- QH - ZA 4th Floor Main Building
-
- Serials
- A - HC 3rd Floor West Building
- HD - LA 2nd Floor West Building
- LB - QC 1st Floor West Building
- QD - Z Basement Floor West Building
-*/
-var cnMapping = [
- new objCN(109, '^[A-G]|^H[A-C\\d*\\s*]', '- 2nd Floor, Main Bldng', '(circulating)'),
- new objCN(109, '^HD*|^[I-P]|^Q[A-E]', '- 3rd Floor, Main Bldng', '(circulating)'),
- new objCN(109, '^Q[H-Z]|^[R-Y]|^Z[A\\d*\\s*]', '- 4th Floor, Main Bldng', '(circulating)'),
- new objCN(109, '^[A-G]|^H[A-C\\d*\\s*]', '- 3rd Floor, West Bldng', 'Serials'),
- new objCN(109, '^HD*|^[I-J]|^L[A\\d*\\s*]', '- 2nd Floor, West Bldng', 'Serials'),
- new objCN(109, '^L[B-Z]|^[M-P]|^Q[A-C\\d*\\s*]', '- 1st Floor, West Bldng', 'Serials'),
- new objCN(109, '^Q[D-Z]|^[R-Z]', '- Basement Floor, West Bldng', 'Serials')
-
-];
-
-function objCN(locId, cnRegExp, cnLocation, locStr)
-{
- //org id
- this.locId = locId;
- //regexp - what to use to match on call number range
- this.cnRegExp = cnRegExp;
- //the location string to append to the call number
- this.cnLocation = cnLocation;
- //this is the string from the call number location that flags material, e.g. 'circulating', 'monographs'
- this.locStr = locStr;
-}
-
-dojo.require("bibtemplate");
-/* serials are currently the only use of Dojo strings in the OPAC */
-if (rdetailDisplaySerialHoldings) {
- dojo.require("dijit.Menu");
- dojo.require("dijit.form.Button");
- dojo.requireLocalization("openils.opac", "opac");
- opac_strings = dojo.i18n.getLocalization("openils.opac", "opac");
-}
-
-function rdetailReload() {
- var args = {};
- args[PARAM_LOCATION] = getNewSearchLocation();
- args[PARAM_DEPTH] = depthSelGetDepth();
- goTo(buildOPACLink(args));
-}
-
-/* looks to see if we have a next and/or previous record in the
- record cache, if so, set up the nav links */
-function rdetailSetPaging(ids) {
-
- cachedRecords = {};
- cachedRecords.ids = ids;
-
- for( var i = 0; i < cachedRecords.ids.length; i++ ) {
- var rec = cachedRecords.ids[i];
- if( rec == getRid() ) {
- if( i > 0 ) prevRecord = cachedRecords.ids[i-1];
- if( i < cachedRecords.ids.length - 1 )
- nextRecord = cachedRecords.ids[i+1];
- break;
- }
- }
-
- $('np_offset').appendChild(text(i + 1));
- $('np_count').appendChild(text(getHitCount()));
-
- if(prevRecord) {
- unHideMe($('np_table'));
- unHideMe($('np_prev'));
- unHideMe($('np_start'));
- rdetailPrev = function() { _rdetailNav(prevRecord); };
- rdetailStart = function() { _rdetailNav(cachedRecords.ids[0]); };
- }
-
- if(nextRecord) {
- unHideMe($('np_table'));
- unHideMe($('np_next'));
- unHideMe($('np_end'));
- rdetailNext = function() { _rdetailNav(nextRecord); };
- rdetailEnd = function() { _rdetailNav(cachedRecords.ids[cachedRecords.ids.length-1]); };
- }
-
- runEvt('rdetail', 'nextPrevDrawn', i, cachedRecords.ids.length);
-}
-
-
-function _rdetailNav(id, offset) {
- var args = {};
- args[PARAM_RID] = id;
- goTo(buildOPACLink(args));
-}
-
-function rdetailDraw() {
-
- detachAllEvt('common','depthChanged');
- detachAllEvt('common','locationUpdated');
- attachEvt('common','depthChanged', rdetailReload);
- attachEvt('common','locationUpdated', rdetailReload);
- attachEvt('common','holdUpdated', rdetailReload);
- attachEvt('common','holdUpdateCanceled', rdetailReload);
-
- copyRowParent = G.ui.rdetail.cp_info_row.parentNode;
- copyRow = copyRowParent.removeChild(G.ui.rdetail.cp_info_row);
- statusRow = G.ui.rdetail.cp_status.parentNode;
- statusRow.id = '__rdsrow';
-
- G.ui.rdetail.cp_info_local.onclick = rdetailShowLocalCopies;
- G.ui.rdetail.cp_info_all.onclick = rdetailShowAllCopies;
-
- if(getLocation() == globalOrgTree.id())
- hideMe(G.ui.rdetail.cp_info_all);
-
- var req = new Request(FETCH_RMODS, getRid());
- req.callback(_rdetailDraw);
- req.send();
-
- if (rdetailDisplaySerialHoldings) {
- var req = new Request(FETCH_MFHD_SUMMARY, getRid());
- req.callback(_holdingsDraw);
- req.send();
- if (isXUL()) {
- var here = findOrgUnit(getLocation());
- dojo.place("<div id='mfhd_ad_menu></div>", "rdetail_details_table", "after");
- var mfhd_add = new dijit.Menu({style:"float: right;"});
- new dijit.MenuItem({onClick:function(){
- var req = new Request(CREATE_MFHD_RECORD, G.user.session, 1, here.id(), getRid());
- var res = req.send();
- alert(dojo.string.substitute(opac_strings.CREATED_MFHD_RECORD, [here.name()]));
- }, label:opac_strings.CREATE_MFHD}).placeAt(mfhd_add);
- mfhd_add.placeAt(mfhd_ad_menu);
- }
- }
-
- detachAllEvt("result", "idsReceived");
- G.evt.result.hitCountReceived = [];
- G.evt.result.recordReceived = [];
- G.evt.result.copyCountsReceived = [];
- G.evt.result.allRecordsReceived = [];
-}
-
-function rdetailGetPageIds() {
- attachEvt("result", "idsReceived", rdetailSetPaging );
- resultFetchAllRecords = true;
- rresultCollectIds(true);
-}
-
-
-function buildunAPISpan (span, type, id) {
- var cgi = new CGI();
- var d = new Date();
-
- addCSSClass(span,'unapi-id');
-
- span.setAttribute(
- 'title', 'tag:' + cgi.server_name + ',' +
- d.getFullYear() + ':' + type + '/' + id
- );
-}
-
-function rdetailViewMarc(r,id) {
- hideMe($('rdetail_extras_loading'));
- $('rdetail_view_marc_box').innerHTML = r.getResultObject();
-
- var div = elem('div', { "class" : 'hide_me' });
- var span = div.appendChild( elem('abbr') );
-
- buildunAPISpan( span, 'biblio-record_entry', record.doc_id() );
-
- $('rdetail_view_marc_box').insertBefore(span, $('rdetail_view_marc_box').firstChild);
-}
-
-
-function rdetailShowLocalCopies() {
- rdetailShowLocal = true;
- rdetailBuildInfoRows();
- hideMe(G.ui.rdetail.cp_info_local);
- unHideMe(G.ui.rdetail.cp_info_all);
- hideMe(G.ui.rdetail.cp_info_none);
-}
-
-function rdetailShowAllCopies() {
-
- rdetailShowLocal = false;
- rdetailBuildInfoRows();
- hideMe(G.ui.rdetail.cp_info_all);
- unHideMe(G.ui.rdetail.cp_info_local);
- hideMe(G.ui.rdetail.cp_info_none);
-}
-
-function OpenMarcEditWindow(pcrud, rec) {
- /*
- To run in Firefox directly, must set signed.applets.codebase_principal_support
- to true in about:config
- */
- netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
- win = window.open('/xul/server/cat/marcedit.xul'); // XXX version?
- dojo.require('openils.PermaCrud');
-
- win.xulG = {
- "record": {"marc": rec.marc()},
- "save": {
- "label": opac_strings.SAVE_MFHD_LABEL,
- "func": function(xmlString) {
- rec.marc(xmlString);
- rec.ischanged(true);
- pcrud.update(rec);
- }
- }
- };
-}
-
-function loadMarcEditor(recId) {
- var pcrud = new openils.PermaCrud({"authtoken": G.user.session});
- var rec = pcrud.retrieve("sre", recId);
- if (rec) {
- OpenMarcEditWindow(pcrud, rec);
- }
-}
-
-/*
- * This function could be written much more intelligently
- * Limited brain power means that I'm brute-forcing it for now
- */
-function _holdingsDraw(h) {
- holdings = h.getResultObject();
- if (!holdings) { return null; }
-
- dojo.forEach(holdings, _holdingsDrawMFHD);
-
-}
-
-function _holdingsDrawMFHD(holdings, entryNum) {
-
- var here = findOrgUnit(getLocation());
- if (getDepth() > 0 || getDepth === 0 ) {
- while (getDepth() < findOrgDepth(here))
- here = findOrgUnit( here.parent_ou() );
- if (!orgIsMine(findOrgUnit(here), findOrgUnit(holdings.owning_lib()))) {
- return null;
- }
- }
-
- var hh = holdings.holdings();
- var hch = holdings.current_holdings();
- var hs = holdings.supplements();
- var hcs = holdings.current_supplements();
- var hi = holdings.indexes();
- var hci = holdings.current_indexes();
- var ho = holdings.online();
- var hm = holdings.missing();
- var hinc = holdings.incomplete();
- var hloc = holdings.location() || 'MFHD';
-
- if ( hh.length == 0 && hch.length == 0 && hs.length == 0 &&
- hcs.length == 0 && hi.length == 0 && hci.length == 0 &&
- ho.length == 0 && hm.length == 0 && hinc.length == 0
- ) {
-
- if (isXUL()) {
- /*
- * If we have a record, but nothing to show for it, then the
- * record is likely empty or corrupt. This gives cataloguers a
- * chance to add holdings or correct the record
- */
- hh = 'PLACEHOLDER';
- } else {
- return null;
- }
- }
-
- dojo.place("<table style='width: 100%;'><caption id='mfhdHoldingsCaption" + entryNum + "' class='rdetail_header color_1'>" +
- dojo.string.substitute(opac_strings.HOLDINGS_TABLE_CAPTION, [hloc]) +
- "</caption><tbody id='rdetail_holdings_tbody_" + entryNum +
- "'></tbody></table>", "rdetail_details_table", "after"
- );
- if (hh.length > 0) { _holdingsDrawMFHDEntry(entryNum, opac_strings.HOLDINGS, hh); }
- if (hch.length > 0) { _holdingsDrawMFHDEntry(entryNum, opac_strings.CURRENT_HOLDINGS, hch); }
- if (hs.length > 0) { _holdingsDrawMFHDEntry(entryNum, opac_strings.SUPPLEMENTS, hs); }
- if (hcs.length > 0) { _holdingsDrawMFHDEntry(entryNum, opac_strings.CURRENT_SUPPLEMENTS, hcs); }
- if (hi.length > 0) { _holdingsDrawMFHDEntry(entryNum, opac_strings.INDEXES, hi); }
- if (hci.length > 0) { _holdingsDrawMFHDEntry(entryNum, opac_strings.CURRENT_INDEXES, hci); }
- if (ho.length > 0) { _holdingsDrawMFHDEntry(entryNum, opac_strings.ONLINE_VOLUMES, ho); }
- if (hm.length > 0) { _holdingsDrawMFHDEntry(entryNum, opac_strings.MISSING_VOLUMES, hm); }
- if (hinc.length > 0) { _holdingsDrawMFHDEntry(entryNum, opac_strings.INCOMPLETE_VOLUMES, hinc); }
-
- if (isXUL()) {
- dojo.require('openils.Event');
- dojo.require('openils.PermaCrud');
- var mfhd_edit = new dijit.Menu({});
- new dijit.MenuItem({onClick: function(){loadMarcEditor(holdings.id())}, label:opac_strings.EDIT_MFHD_RECORD}).placeAt(mfhd_edit, "first");
- new dijit.MenuItem({onClick:function(){
- var pcrud = new openils.PermaCrud({"authtoken": G.user.session});
- var mfhd_rec = pcrud.retrieve("sre", holdings.id());
- if (mfhd_rec) {
- pcrud.eliminate(mfhd_rec);
- alert(dojo.string.substitute(opac_strings.DELETED_MFHD_RECORD, [holdings.id()]));
- }
- }, label:opac_strings.DELETE_MFHD}).placeAt(mfhd_edit, "last");
- // new dijit.MenuItem({onClick:function(){alert("Edit properties " + holdings.id());}, label:opac_strings.EDIT_PROPERTIES}).placeAt(mfhd_edit, "last");
- var mfhd_mb = new dijit.form.DropDownButton({dropDown: mfhd_edit, label:opac_strings.EDIT_MFHD_MENU, style:"float:right"});
- mfhd_mb.placeAt("mfhdHoldingsCaption" + entryNum, "last");
- mfhd_edit.startup();
- }
-}
-
-function _holdingsDrawMFHDEntry(entryNum, entryName, entry) {
- var flatEntry = entry.toString().replace(/,/g, ', ');
- dojo.place("<tr><td> </td><td nowrap='nowrap' class='rdetail_desc'>" + entryName + "</td><td class='rdetail_item'>" + flatEntry + "</td></tr>", "rdetail_holdings_tbody_" + entryNum, "last");
-}
-
-function _rdetailDraw(r) {
- record = r.getResultObject();
-
- runEvt('rdetail', 'recordRetrieved', record.doc_id());
-
- G.ui.rdetail.title.appendChild(text(record.title()));
- buildSearchLink(STYPE_AUTHOR, record.author(), G.ui.rdetail.author);
- G.ui.rdetail.isbn.appendChild(text(cleanISBN(record.isbn())));
- G.ui.rdetail.edition.appendChild(text(record.edition()));
- G.ui.rdetail.pubdate.appendChild(text(record.pubdate()));
- G.ui.rdetail.publisher.appendChild(text(record.publisher()));
- $('rdetail_physical_desc').appendChild(text(record.physical_description()));
- r = record.types_of_resource();
- if(r) {
- G.ui.rdetail.tor.appendChild(text(r[0]));
- setResourcePic( G.ui.rdetail.tor_pic, r[0]);
- }
- G.ui.rdetail.abstr.appendChild(text(record.synopsis()));
-
- if (enableHoldsOnAvailable) {
- unHideMe($('rdetail_place_hold'));
- } else {
- hideMe($('rdetail_place_hold'));
- rdetailCheckAvailable();
- }
-
- try{
- if(record.isbn()) {
- if(ENABLE_ADDED_CONTENT_ATTRIB_LINKS) {
- unHideMe($('rdetail.jacket_attrib_div'));
- var href = $('rdetail.jacket_attrib_link').getAttribute('href') +cleanISBN(record.isbn());
- $('rdetail.jacket_attrib_link').setAttribute('href', href);
- }
- rdetailCheckForGBPreview();
-
- } else {
- hideMe($("rdetail.jacket_attrib_div"));
- hideMe($("rdetail_img_link"));
- }
- } catch(E) {}
-
-
- // see if the record has any external links
- var links = record.online_loc();
- for( var i = 0; links && links.length > 0 && i < links.length; i = i + 3 ) {
- var href = links[i];
- // avoid matching "HTTP: The Complete Reference"
- //if( href.match(/https?:\/|ftps?:\/|mailto:|http?:/i) && href.match(/ezproxy|law/i )) {
- var test = null;
- if (urlCheck)
- test = href.match(urlExpr);
-
- if( href.match(/https?:\/|ftps?:\/|mailto:|http?:/i) && test == null) {
- unHideMe($('rdetail_online_row'));
- // MODS can contain a display label (used for the text of the link)
- // as well as a note about the URL; many legacy systems conflate the
- // two and generate MARC records that expect the note to be used as
- // the text of the link, with no display label; here's the canonical
- // format:
- //
- // 856 40 $uhttp://localhost$yDisplay label$zPublic note
- //
- // Note that the MARC21slim2MODS XSL concatenates $3 and $y together
- // (as $y was defined later in MARC21's life as the display label)
- var displayLabel = '' + links[i+1];
- var note = '' + links[i+2];
- if(!displayLabel || displayLabel.match(/https?:\/|ftps?:\/|mailto:/i)) {
- if(!note || note.match(/https?:\/|ftps?:\/|mailto:/i)) {
- displayLabel = href;
- } else {
- displayLabel = note;
- }
- }
- // IE in quirks mode doesn't render CSS styling for links where the class attribute
- // comes after the href attribute, apparently; we can use Dojo to ensure the class
- // attribute comes first
- dojo.place('<a class="search_link" href="' + href + '">' + displayLabel + '</a>', dojo.byId('rdetail_online'));
- if (note && note != displayLabel) {
- $('rdetail_online').appendChild(elem('span', {'class':'url_note'}, ' - ' + note));
- }
- $('rdetail_online').appendChild(elem('br'));
- }
- }
-
- // Fill in our unAPI ID, if anyone cares
- var abbrs = document.getElementsByTagName('abbr');
- var span;
- for (var i = 0; i < abbrs.length; i = i + 1) {
- if (abbrs[i].getAttribute('name') == 'unapi') {
- span = abbrs[i];
- break;
- }
- }
- buildunAPISpan( span, 'biblio-record_entry', record.doc_id() );
-
- $('rdetail_place_hold').setAttribute(
- 'href','javascript:holdsDrawEditor({record:"'+record.doc_id()+'",type:"T"});');
-
- var RW = $('rdetail_exp_refworks');
- if (RW && rdetailEnableRefWorks) {
-
- var here = (findOrgUnit(getLocation())).name();
- var org_name = here.replace(" ", "+");
- var cgi = new CGI();
-
- RW.setAttribute(
- 'href',
- rdetailRefWorksHost + '/express/expressimport.asp?vendor='
- + org_name
- + '&filter=MARC+Format&database=All+MARC+Formats&encoding=65001&url=http%3A%2F%2F'
- + cgi.server_name + '/opac/extras/supercat/marctxt/record/'
- + record.doc_id()
- );
-
- RW.setAttribute('target', 'RefWorksMain');
- RW.setAttribute('class', 'classic_link');
-
- unHideMe($('rdetail_exp_refworks_span'));
- }
-
- $('rdetail_img_link').setAttribute('href', buildISBNSrc(cleanISBN(record.isbn()), 'large'));
- G.ui.rdetail.image.setAttribute("src", buildISBNSrc(cleanISBN(record.isbn())));
-
- // Set extras before recordDrawn event to enable bookbags in barcode searches
- rdetailSetExtrasSelector();
-
- runEvt("rdetail", "recordDrawn");
- recordsCache.push(record);
-
-
- var breq = new Request(FETCH_BRE, [getRid()]);
- breq.callback( rdetailCheckDeleted );
- breq.send();
-
- resultBuildCaches( [ record ] );
- resultDrawSubjects();
- resultDrawSeries();
-
- // grab added content
- acCollectData(cleanISBN(record.isbn()), rdetailhandleAC);
-}
-
-function rdetailCheckAvailable() {
- var loc = getLocation();
- var rid = getRid();
- var req = new Request( 'open-ils.search:open-ils.search.biblio.record.copy_count', loc, rid );
- req.callback(rdetailEnableHold);
- req.send();
-}
-
-/*
- * Display the "Place Hold" link if:
- * * the current location holds at least one copy and
- * * none of those copies are available
- */
-function rdetailEnableHold(r) {
- var ccDepths = r.getResultObject();
- if (
- ((ccDepths[(ccDepths.length - 1)].available) > 0) ||
- ((ccDepths[(ccDepths.length - 1)].count) == 0)
- ) {
- hideMe($('rdetail_place_hold'));
- } else {
- unHideMe($('rdetail_place_hold'));
- }
-}
-
-function rdetailCheckDeleted(r) {
- var br = r.getResultObject()[0];
- if( isTrue(br.deleted()) ) {
- hideMe($('rdetail_place_hold'));
- $('rdetail_more_actions_selector').disabled = true;
- unHideMe($('rdetail_deleted_exp'));
- }
-}
-
-function rdetailSetExtrasSelector() {
- if(!grabUser()) return;
- unHideMe($('rdetail_more_actions'));
-
- var req = new Request(
- FETCH_CONTAINERS, G.user.session, G.user.id(), 'biblio', 'bookbag' );
- req.callback(rdetailAddBookbags);
- req.send();
-}
-
-function rdetailAddBookbags(r) {
-
- var containers = r.getResultObject();
- var selector = $('rdetail_more_actions_selector');
- var found = false;
- var index = 3;
- doSelectorActions(selector);
-
- for( var i = 0; i != containers.length; i++ ) {
- found = true;
- var container = containers[i];
- insertSelectorVal( selector, index++, container.name(),
- "container_" + container.id(), rdetailAddToBookbag, 1 );
- }
-
- nextContainerIndex = index;
-}
-
-var _actions = {};
-function rdetailNewBookbag() {
- var name = prompt($('rdetail_bb_new').innerHTML,"");
- if(!name) return;
-
- var id;
- if( id = containerCreate( name ) ) {
- alert($('rdetail_bb_success').innerHTML);
- var selector = $('rdetail_more_actions_selector');
- insertSelectorVal( selector, nextContainerIndex++, name,
- "container_" + id, rdetailAddToBookbag, 1 );
- setSelector( selector, 'start' );
- }
-}
-
-
-function rdetailAddToBookbag() {
- var selector = $('rdetail_more_actions_selector');
- var id = selector.options[selector.selectedIndex].value;
- setSelector( selector, 'start' );
-
- if( containerCreateItem( id.substring(10), record.doc_id() )) {
- alert($('rdetail_bb_item_success').innerHTML);
- }
-}
-
-
-var rdetailMarcFetched = false;
-function rdetailShowExtra(type, args) {
-
- hideMe($('rdetail_copy_info_div'));
- hideMe($('rdetail_reviews_div'));
- hideMe($('rdetail_toc_div'));
- hideMe($('rdetail_anotes_div'));
- hideMe($('rdetail_excerpt_div'));
- hideMe($('rdetail_preview_div'));
- hideMe($('rdetail_marc_div'));
- hideMe($('cn_browse'));
- hideMe($('rdetail_cn_browse_div'));
- hideMe($('rdetail_notes_div'));
-
- removeCSSClass($('rdetail_copy_info_link'), 'rdetail_extras_selected');
- removeCSSClass($('rdetail_viewcn_link'), 'rdetail_extras_selected');
- removeCSSClass($('rdetail_reviews_link'), 'rdetail_extras_selected');
- removeCSSClass($('rdetail_toc_link'), 'rdetail_extras_selected');
- removeCSSClass($('rdetail_excerpt_link'), 'rdetail_extras_selected');
- removeCSSClass($('rdetail_preview_link'), 'rdetail_extras_selected');
- removeCSSClass($('rdetail_anotes_link'), 'rdetail_extras_selected');
- removeCSSClass($('rdetail_annotation_link'), 'rdetail_extras_selected');
- removeCSSClass($('rdetail_viewmarc_link'), 'rdetail_extras_selected');
-
- switch(type) {
-
- case "copyinfo":
- unHideMe($('rdetail_copy_info_div'));
- addCSSClass($('rdetail_copy_info_link'), 'rdetail_extras_selected');
- break;
-
- case "reviews":
- addCSSClass($('rdetail_reviews_link'), 'rdetail_extras_selected');
- unHideMe($('rdetail_reviews_div'));
- break;
-
- case "excerpt":
- addCSSClass($('rdetail_excerpt_link'), 'rdetail_extras_selected');
- unHideMe($('rdetail_excerpt_div'));
- break;
-
- case "preview":
- addCSSClass($('rdetail_preview_link'), 'rdetail_extras_selected');
- unHideMe($('rdetail_preview_div'));
- rdetailDisplayGBPreview();
- break;
-
- case "anotes":
- addCSSClass($('rdetail_anotes_link'), 'rdetail_extras_selected');
- unHideMe($('rdetail_anotes_div'));
- break;
-
- case "toc":
- addCSSClass($('rdetail_toc_link'), 'rdetail_extras_selected');
- unHideMe($('rdetail_toc_div'));
- break;
-
- case "marc":
- addCSSClass($('rdetail_viewmarc_link'), 'rdetail_extras_selected');
- unHideMe($('rdetail_marc_div'));
- if(rdetailMarcFetched) return;
- unHideMe($('rdetail_extras_loading'));
- rdetailMarcFetched = true;
- var req = new Request( FETCH_MARC_HTML, record.doc_id() );
- req.callback(rdetailViewMarc);
- req.send();
- break;
-
- case 'cn':
- addCSSClass($('rdetail_viewcn_link'), 'rdetail_extras_selected');
- unHideMe($('rdetail_cn_browse_div'));
- rdetailShowCNBrowse(defaultCN, getLocation(), null, true);
- break;
-
- }
-}
-
-function rdetailVolumeDetails(args) {
- var row = $(args.rowid);
- var tbody = row.parentNode;
- cpdBuild( tbody, row, record, args.cn, args.org, args.depth, args.copy_location );
- return;
-}
-
-function rdetailBuildCNList() {
-
- var select = $('cn_browse_selector');
- var index = 0;
- var arr = [];
- for( var cn in callnumberCache ) arr.push( cn );
- arr.sort();
-
- if( arr.length == 0 ) {
- hideMe($('rdetail_cn_browse_select_div'));
- return;
- }
-
- for( var i in arr ) {
- var cn = arr[i];
- var opt = new Option(cn);
- select.options[index++] = opt;
- }
- select.onchange = rdetailGatherCN;
-}
-
-function rdetailGatherCN() {
- var cn = getSelectorVal($('cn_browse_selector'));
- rdetailShowCNBrowse( cn, getLocation(), getDepth(), true );
- setSelector( $('cn_browse_selector'), cn );
-}
-
-
-function rdetailShowCNBrowse( cn, loc, depth, fromOnclick ) {
-
- if(!cn) {
- unHideMe($('cn_browse_none'));
- hideMe($('rdetail_cn_browse_select_div'));
- return;
- }
-
- unHideMe($('rdetail_cn_browse_select_div'));
- rdetailBuildCNList();
- setSelector( $('cn_browse_selector'), cn );
- hideMe($('rdetail_copy_info_div'));
- hideMe($('rdetail_reviews_div'));
- hideMe($('rdetail_toc_div'));
- hideMe($('rdetail_marc_div'));
- unHideMe($('rdetail_cn_browse_div'));
- unHideMe($('cn_browse'));
- if( !rdetailLocalOnly && ! fromOnclick ) depth = findOrgDepth(globalOrgTree);
- cnBrowseGo(cn, loc, depth);
-}
-
-function rdetailhandleAC(data) {
-
- if( data.reviews.html ) {
- $('rdetail_review_container').innerHTML = data.reviews.html;
- unHideMe($('rdetail_reviews_link'));
- }
-
- if( data.toc.html ) {
- $('rdetail_toc_div').innerHTML = data.toc.html;
- unHideMe($('rdetail_toc_link'));
- }
-
- if( data.excerpt.html ) {
- $('rdetail_excerpt_div').innerHTML = data.excerpt.html;
- unHideMe($('rdetail_excerpt_link'));
- }
-
- if( data.anotes.html ) {
- $('rdetail_anotes_div').innerHTML = data.anotes.html;
- unHideMe($('rdetail_anotes_link'));
- }
-}
-
-function rdetailShowReviews(r) {
- hideMe($('rdetail_extras_loading'));
- var res = r.getResultObject();
- var par = $('rdetail_reviews_div');
- var template = par.removeChild($('rdetail_review_template'));
- if( res && res.length > 0 ) {
- unHideMe($('rdetail_reviews_link'));
- for( var i = 0; i != res.length; i++ ) {
- var rev = res[i];
- if( rev.text && rev.info ) {
- var node = template.cloneNode(true);
- $n(node, 'review_header').appendChild(text(rev.info));
- $n(node, 'review_text').appendChild(text(rev.text));
- par.appendChild(node);
- }
- }
- }
-}
-
-
-function rdetailShowTOC(r) {
- hideMe($('rdetail_extras_loading'));
- var resp = r.getResultObject();
- if(resp) {
- unHideMe($('rdetail_toc_link'));
- $('rdetail_toc_div').innerHTML = resp;
- }
-}
-
-function rdetailBuildInfoRows() {
- var req;
- var method = FETCH_COPY_COUNTS_SUMMARY;
-
- //we figure out the number of copies
- if (rdetailBreakUpLargeSets)
- cpCnt = sortOutCopies(getLocation(), getRid(), getForm());
-
- if (rdetailShowCopyLocation && cpCnt < pgThreshold)
- method = FETCH_COPY_LOCATION_COUNTS_SUMMARY;
-
- if( rdetailShowLocal )
- req = new Request(method, record.doc_id(), getLocation(), getDepth())
- else
- req = new Request(method, record.doc_id());
-
- if (rdetailBreakUpLargeSets && cpCnt >= pgThreshold) {
- rdetailLocalOnly = true;
- req.request.rec_id = record.doc_id();
- req.request.cpCnt = cpCnt;
- //remove the location options for paged sets
- try {
- /*
- hideMe(G.ui.rdetail.cp_info_local);
- hideMe(G.ui.rdetail.cp_info_all);
- */
- } catch(e) { }
- req.callback(_rdetailBuildInfoPagedRows);
- } else
- req.callback(_rdetailBuildInfoRows);
- req.send();
-}
-
-
-function rdetailCNPrint(orgid, cn) {
- var div = cpdBuildPrintWindow( record, orgid);
- var template = div.removeChild($n(div, 'cnrow'));
- var rowNode = $("cp_info_" + orgid);
- cpdStylePopupWindow(div);
- openWindow(div.innerHTML);
-}
-
-var localCNFound = false;
-var ctr = 0;
-
-function _rdetailBuildInfoPagedRows(r) {
-
- //alert(r.getText());
- if (!r) return;
- /*
- */
- var summary = r.getResultObject();
- if(!summary) return;
-
- summary.sort(callsortfn);
- if (rdetailShowCopyLocation)
- unHideMe( $n( $('rdetail_copy_info_table'), 'rdetail_copylocation_header' ) );
-
- removeChildren(copyRowParent);
-
- var rec_id = r.rec_id;
- //var tot_copies = r.cpCnt;
- var tot_copies = summary.length;
- var cgi = new CGI();
- var parm = cgi.param("cstart");
- if (parm == undefined)
- parm = 0;
- var summaryStart = parseInt(parm);
- parm = cgi.param("csize");
- if (parm == undefined)
- parm = pgDisplay;
- var summarySize = parseInt(parm) + summaryStart;
- if (summarySize > tot_copies)
- summarySize = tot_copies;
- var pgSize = parseInt(parm);
-
- _rdetailRows(null,summaryStart, pgSize, summarySize, tot_copies);
- var found = true;
-
- for( var i = summaryStart; i < summary.length && i < summarySize; i++ ) {
- var arr = summary[i];
- globalCNCache[arr[1]] = 1;
- var thisOrg = findOrgUnit(arr[0]);
- var rowNode = $("cp_info_" + thisOrg.id());
- if(!rowNode) continue;
-
- if(rowNode.getAttribute("used")) {
-
- if( rowNode.nextSibling ) {
- sib = rowNode.nextSibling;
- o ='cp_info_'+thisOrg.id()+'_';
- /* push the new row on as the last row for this org unit */
- while( sib && sib.id.match(o) ) {
- sib = sib.nextSibling;
- }
- if(sib)
- rowNode = copyRowParent.insertBefore(copyRow.cloneNode(true), sib);
- else
- rowNode = copyRowParent.appendChild(copyRow.cloneNode(true));
- } else {
- rowNode = copyRowParent.appendChild(copyRow.cloneNode(true));
- }
-
- var n = findNodeByName( rowNode, config.names.rdetail.lib_cell );
- n.appendChild(text(thisOrg.name()));
- n.setAttribute("style", "padding-left: " + ((findOrgDepth(thisOrg) - 1) * 9) + "px;");
- rowNode.id = "cp_info_" + thisOrg.id() + '_' + (++ctr);
-
- } else {
- rowNode.setAttribute("used", "1");
- }
-
- var cpc_temp = rowNode.removeChild(
- findNodeByName(rowNode, config.names.rdetail.cp_count_cell));
-
- var statuses = arr[2];
- var cl = '';
-
- var recreq = new Request( FETCH_COPIES_FROM_VOLUME, rec_id, arr[1], arr[0]);
- recreq.request.rowNode = rowNode;
- recreq.request.cpc_temp = cpc_temp;
- recreq.request.statuses = statuses;
- recreq.request.arrVal = arr[1];
- recreq.request.thisOrg = thisOrg;
- recreq.callback(_rdetailFL);
- recreq.send();
-
-
- if( i == summary.length - 1 && !defaultCN) defaultCN = arr[1];
- }
-
- if(!found) unHideMe(G.ui.rdetail.cp_info_none);
-}
-
-function _rdetailBuildInfoRows(r) {
-
- if (rdetailShowCopyLocation)
- unHideMe( $n( $('rdetail_copy_info_table'), 'rdetail_copylocation_header' ) );
-
- removeChildren(copyRowParent);
-
- _rdetailRows();
-
- var summary = r.getResultObject();
- if(!summary) return;
- var cgi = new CGI();
- var parm = cgi.param("cstart");
- if (parm == undefined)
- parm = 0;
- var summaryStart = parseInt(parm);
- parm = cgi.param("csize");
- if (parm == undefined)
- parm = 25;
- var summarySize = parseInt(parm);
-
- var found = false;
- //for( var i = 0; i < summary.length; i++ ) {
- for( var i = summaryStart; i < summary.length && i < summarySize; i++ ) {
-
- var arr = summary[i];
- globalCNCache[arr[1]] = 1;
- var thisOrg = findOrgUnit(arr[0]);
- var rowNode = $("cp_info_" + thisOrg.id());
- if(!rowNode) continue;
-
- if(rowNode.getAttribute("used")) {
-
- if( rowNode.nextSibling ) {
- sib = rowNode.nextSibling;
- o ='cp_info_'+thisOrg.id()+'_';
- /* push the new row on as the last row for this org unit */
- while( sib && sib.id.match(o) ) {
- sib = sib.nextSibling;
- }
- if(sib)
- rowNode = copyRowParent.insertBefore(copyRow.cloneNode(true), sib);
- else
- rowNode = copyRowParent.appendChild(copyRow.cloneNode(true));
- } else {
- rowNode = copyRowParent.appendChild(copyRow.cloneNode(true));
- }
-
- var n = findNodeByName( rowNode, config.names.rdetail.lib_cell );
- n.appendChild(text(thisOrg.name()));
- n.setAttribute("style", "padding-left: " + ((findOrgDepth(thisOrg) - 1) * 9) + "px;");
- rowNode.id = "cp_info_" + thisOrg.id() + '_' + (++ctr);
-
- } else {
- rowNode.setAttribute("used", "1");
- }
-
- var cpc_temp = rowNode.removeChild(
- findNodeByName(rowNode, config.names.rdetail.cp_count_cell));
-
- var statuses = arr[2];
- var cl = '';
- if (rdetailShowCopyLocation) {
- cl = arr[2];
- statuses = arr[3];
- }
-
- rdetailApplyStatuses(rowNode, cpc_temp, statuses);
-
- var isLocal = false;
- if( orgIsMine( findOrgUnit(getLocation()), thisOrg ) ) {
- found = true;
- isLocal = true;
- if(!localCNFound) {
- localCNFound = true;
- defaultCN = arr[1];
- }
- }
-
- //if(isLocal) unHideMe(rowNode);
- unHideMe(rowNode);
-
- rdetailSetPath( thisOrg, isLocal );
- rdetailBuildBrowseInfo( rowNode, arr[1], isLocal, thisOrg, cl);
-
- if( i == summary.length - 1 && !defaultCN) defaultCN = arr[1];
- }
-
- if(!found) unHideMe(G.ui.rdetail.cp_info_none);
-}
-
-function _rdetailRows(node, summaryStart, pgSize, summarySize, tot_copies) {
-
- if( rdetailShowLocal && getLocation() != globalOrgTree.id() ) {
- var loc = findOrgUnit(getLocation());
- if( node ) {
- if( !orgIsMine(node, loc) && !orgIsMine(loc,node) ) return;
- } else {
- for( var i = 0; i < globalOrgTree.children().length; i++ ) {
- var org = findOrgUnit(globalOrgTree.children()[i]);
- if( orgIsMine(org, loc) ) {
- node = org;
- break;
- }
- }
- }
- }
-
- if(!node && findOrgType(globalOrgTree.ou_type()).can_have_vols())
- node = globalOrgTree;
-
-
- /* don't show hidden orgs */
-
- if(node) {
-
- if(!isXUL() && !isTrue(node.opac_visible())) return;
-
- var row = copyRow.cloneNode(true);
- row.id = "cp_info_" + node.id();
- //alert(row.id);
-
- var libtd = findNodeByName( row, config.names.rdetail.lib_cell );
- var cntd = findNodeByName( row, config.names.rdetail.cn_cell );
- var cpctd = findNodeByName( row, config.names.rdetail.cp_count_cell );
- var actions = $n(row, 'rdetail_actions_cell');
-
- var p = libtd.getElementsByTagName('a')[0];
- libtd.insertBefore(text(node.name()), p);
-
- libtd.setAttribute("style", "padding-left: " + ((findOrgDepth(node) - 1) * 9) + "px;");
-
- if(!findOrgType(node.ou_type()).can_have_vols()) {
-
- row.removeChild(cntd);
- row.removeChild(cpctd);
- row.removeChild(actions);
- row.setAttribute('novols', '1');
-
- libtd.setAttribute("colspan", numStatuses + 3 );
- libtd.colSpan = numStatuses + 3;
- addCSSClass(row, 'copy_info_region_row');
- if (summaryStart!= undefined && pgSize!=undefined &&
- summarySize != undefined && tot_copies != undefined)
- {
- fillOutLinks(libtd, summaryStart, pgSize, summarySize, tot_copies);
- } //if summaryStart
- }//if
-
- copyRowParent.appendChild(row);
-
- } else { node = globalOrgTree; }
-
- for( var c in node.children() )
- _rdetailRows(node.children()[c], summaryStart, pgSize, summarySize, tot_copies);
-}
-
-function _rdetailCL(r) {
- if (!r) return;
- var cl = r.getResultObject();
- if (cl) {
- //alert(r.arrVal + " - " + cl.location().name());
- rdetailApplyStatuses(r.rowNode, r.cpc_temp, r.statuses);
-
- var isLocal = false;
- if( orgIsMine( findOrgUnit(getLocation()), r.thisOrg ) ) {
- isLocal = true;
- if(!localCNFound) {
- localCNFound = true;
- defaultCN = r.arrVal;
- }
- }
-
- //if(isLocal) unHideMe(rowNode);
- unHideMe(r.rowNode);
-
- rdetailSetPath( r.thisOrg, isLocal);
- rdetailBuildBrowseInfo( r.rowNode, r.arrVal, isLocal, r.thisOrg,
- cl.location().name());
- }//cl
-}
-function _rdetailFL(r) {
- if (!r) return;
- var fl = r.getResultObject();
- if (fl) {
- var cp_request = new Request(FETCH_FLESHED_COPY, fl);
-
- cp_request.request.rowNode = r.rowNode;
- cp_request.request.cpc_temp = r.cpc_temp;
- cp_request.request.statuses = r.statuses;
- cp_request.request.arrVal = r.arrVal;
- cp_request.request.thisOrg = r.thisOrg;
- cp_request.callback(_rdetailCL);
- cp_request.send();
- }//fl
-}
-
-/*
- callsortfn - sorting an array of call numbers
-
- This probably won't work for every instance, but assumes last
- number is a year. Anyway, this is how to get into the
- array values, it could be refined, though a better way
- will be to set up a special opensrf that can apply
- postgres goodness to this.
-*/
-function callsortfn(a,b) {
- var callno1 = a[1];
- var callno2 = b[1];
- var callnum1 = 0;
- var callnum2 = 0;
-
- var marker = callno1.lastIndexOf(' ');
- if (marker != -1)
- callnum1 = parseInt(callno1.substring(marker));
- marker = callno2.lastIndexOf(' ');
- if (marker != -1)
- callnum2 = parseInt(callno2.substring(marker));
-
- //window.status = 'comparing ' + callnum1 + ' to ' + callnum2;
-
- if (callnum1 < callnum2) return -1;
- if (callnum1 > callnum2) return 1;
- return 0;
-}
-
-function fillOutLinks(node, cpstart, cpsize, ssize, pieces) {
- if (node) {
- var theLink = document.location + "";
- var marker = theLink.indexOf("&cstart");
- if (marker > 0)
- theLink = theLink.substring(0,marker);
-
- var summaryStmt = '(' + (cpstart + 1) + ' to ' + ssize + ' of ' + pieces;
- node.appendChild(document.createTextNode(summaryStmt));
- if ((cpstart + 1) > cpsize) {
- node.appendChild(document.createTextNode(' '));
- var pglink = document.createElement("a");
- pglink.appendChild(document.createTextNode('Start'));
- pglink.setAttribute('href',theLink + '&cstart=0' +
- '&csize=' + cpsize);
- pglink.setAttribute('class','classic_link');
- node.appendChild(pglink);
- node.appendChild(document.createTextNode(' '));
- var pglink = document.createElement("a");
- pglink.appendChild(document.createTextNode('<<'));
- pglink.setAttribute('href',theLink + '&cstart=' +
- (cpstart - cpsize) + '&csize=' + cpsize);
- pglink.setAttribute('class','classic_link');
- node.appendChild(pglink);
- node.appendChild(document.createTextNode(' '));
- /*
- */
- }
- if (ssize < pieces) {
- node.appendChild(document.createTextNode(' '));
- var pglink = document.createElement("a");
- pglink.appendChild(document.createTextNode('>>'));
- pglink.setAttribute('href',theLink + '&cstart=' +
- ssize + '&csize=' + cpsize);
- pglink.setAttribute('class','classic_link');
- node.appendChild(pglink);
- node.appendChild(document.createTextNode(' '));
- var pglink = document.createElement("a");
- pglink.appendChild(document.createTextNode('End'));
- pglink.setAttribute('href',theLink + '&cstart=' +
- (pieces - cpsize) + '&csize=' + cpsize);
- pglink.setAttribute('class','classic_link');
- node.appendChild(pglink);
- /*
- */
- }
- node.appendChild(document.createTextNode(')'));
- /*
- */
- }//if node
-}
-
-function sortOutCNmaps(orgId, cn, cl) {
- var cnSuffix = '';
- var re = null;
- var match = null;
-
- for (var i = 0; i < cnMapping.length && cnSuffix.length==0; i++) {
- if (cnMapping[i].locId == orgId) {
- if (cl.indexOf(cnMapping[i].locStr) != -1) {
- re = new RegExp(cnMapping[i].cnRegExp);
- match = re.exec(cn);
- if (match != null)
- cnSuffix = cnMapping[i].cnLocation;
- }//if
- }//if
- }//for
- return (text(cn + ' ' + cnSuffix));
-}//sortOutCNmaps
-
-function rdetailBuildBrowseInfo(row, cn, local, orgNode, cl) {
-
- if(local) {
- var cache = callnumberCache[cn];
- if( cache ) cache.count++;
- else callnumberCache[cn] = { count : 1 };
- }
-
- var depth = getDepth();
- if( !local ) depth = findOrgDepth(globalOrgTree);
-
- $n(row, 'rdetail_callnumber_cell').appendChild(sortOutCNmaps(orgNode.id(),cn, cl));
-
- if (rdetailShowCopyLocation) {
- var cl_cell = $n(row, 'rdetail_copylocation_cell');
- cl_cell.appendChild(text(cl));
- unHideMe(cl_cell);
- }
-
- _debug('setting action clicks for cn ' + cn);
-
- var dHref = 'javascript:rdetailVolumeDetails('+
- '{copy_location : "'+cl.replace(/\"/g, '\\"')+'", rowid : "'+row.id+'", cn :"'+cn.replace(/\"/g, '\\"')+'", depth:"'+depth+'", org:"'+orgNode.id()+'", local: '+local+'});';
-
- var bHref = 'javascript:rdetailShowCNBrowse("' + cn.replace(/\"/g, '\\"') + '", '+orgNode.id()+', "'+depth+'");';
-
- unHideMe( $n(row, 'details') )
- $n(row, 'details').setAttribute('href', dHref);
- unHideMe( $n(row, 'browse') )
- $n(row, 'browse').setAttribute('href', bHref);
-
- if(isXUL()) {
- unHideMe($n(row, 'hold_div'));
- $n(row, 'hold').onclick = function() {
- var req = new Request(FETCH_VOLUME_BY_INFO, cn, record.doc_id(), orgNode.id());
- req.callback(
- function(r) {
- var vol = r.getResultObject();
- holdsDrawEditor({type: 'V', volumeObject : vol});
- }
- );
- req.send();
- };
- } else {
- if (cpCnt <= 1)
- eval(dHref);
- }
-}
-
-// sets the path to org as 'active' and displays the path if it's local
-function rdetailSetPath(org, local) {
- if( findOrgDepth(org) == 0 ) return;
- var row = $("cp_info_" + org.id());
- row.setAttribute("hasinfo", "1");
- unHideMe(row);
- rdetailSetPath(findOrgUnit(org.parent_ou()), local);
-}
-
-//Append all the statuses for a given summary to the
-//copy summary table
-function rdetailApplyStatuses( row, template, statuses ) {
- for( var j in _statusPositions ) {
- var stat = _statusPositions[j];
- var val = statuses[stat.id()];
- if (val && checkStatus) {
- if (j == orderStatus || j == processStatus)
- hideMe($('rdetail_place_hold'));
- }//if
- var nn = template.cloneNode(true);
- if(val) nn.appendChild(text(val));
- else nn.appendChild(text(0));
- row.appendChild(nn);
- }
-}
-
-//Add one td (creating a new column) to the copy summary
-//table for each opac_visible copy status
-function rdetailBuildStatusColumns() {
-
- rdetailGrabCopyStatuses();
- var parent = statusRow;
- var template = parent.removeChild(G.ui.rdetail.cp_status);
-
- var i = 0;
- for( i = 0; i < cp_statuses.length; i++ ) {
-
- var c = cp_statuses[i];
- if( c && isTrue(c.opac_visible()) ) {
- var name = c.name();
- _statusPositions[i] = c;
- var node = template.cloneNode(true);
- var data = findNodeByName( node, config.names.rdetail.cp_status);
-
- data.appendChild(text(name));
- parent.appendChild(node);
- }
- }
-
- numStatuses = 0;
- for(x in _statusPositions) numStatuses++;
-}
-
-function rdetailGrabCopyStatuses() {
- if(cp_statuses) return cp_statuses;
- var req = new Request(FETCH_COPY_STATUSES);
- req.send(true);
- cp_statuses = req.result();
- cp_statuses = cp_statuses.sort(_rdetailSortStatuses);
-}
-
-function _rdetailSortStatuses(a, b) {
- return parseInt(a.id()) - parseInt(b.id());
-}
-
-/**
- * Check for a Google Book preview
- */
-function rdetailCheckForGBPreview() {
- if (!rdetailGoogleBookPreview) return;
- searchForGBPreview( cleanISBN(record.isbn()) );
-}
-
-/**
- *
- * @param {DOM object} query The form element containing the
- * input parameters "isbns"
- */
-function searchForGBPreview( isbn ) {
-
- // Delete any previous Google Booksearch JSON queries.
- var GBPJsonScript = document.getElementById("GBPJsonScript");
- if (GBPJsonScript) {
- GBPJsonScript.parentNode.removeChild(GBPJsonScript);
- }
-
- // Add a script element with the src as the user's Google Booksearch query.
- // JSON output is specified by including the alt=json-in-script argument
- // and the callback function is also specified as a URI argument.
- var GBPScriptElement = document.createElement("script");
-
- GBPScriptElement.setAttribute("id", "GBPJsonScript");
- GBPScriptElement.setAttribute("src",
- "http://books.google.com/books?bibkeys=" +
- isbn + "&jscmd=viewapi&callback=GBPreviewCallback");
- GBPScriptElement.setAttribute("type", "text/javascript");
-
- // make the request to Google booksearch
- document.documentElement.firstChild.appendChild(GBPScriptElement);
-}
-
-/**
- * This function is the call-back function for the JSON scripts which
- * executes a Google book search response.
- *
- * XXX I18N of text needed
- *
- * @param {JSON} booksInfo is the JSON object pulled from the Google books service.
- */
-function GBPreviewCallback(GBPBookInfo) {
- var GBPreviewDiv = document.getElementById("rdetail_preview_div");
- var GBPBook;
-
- for ( i in GBPBookInfo ) {
- GBPBook = GBPBookInfo[i];
- }
-
- if ( !GBPBook ) {
- return;
- }
-
- if ( GBPBook.preview != "noview" ) {
- if ( GBPBook.preview == 'full' ) {
- setText( $('rdetail_preview_link'), $('rdetail_preview_full_text').innerHTML );
- $('rdetail_preview_link_a').title = $('rdetail_preview_title').innerHTML;
- }
-
- // Add a button below the book cover image to load the preview.
- GBPBadge = document.createElement( 'img' );
- GBPBadge.src = 'http://books.google.com/intl/en/googlebooks/images/gbs_preview_button1.gif';
- GBPBadge.title = $('rdetail_preview_badge').innerHTML;
- GBPBadge.style.border = 0;
- GBPBadgelink = document.createElement( 'a' );
- GBPBadgelink.href = 'javascript:rdetailShowExtra("preview");';
- GBPBadgelink.appendChild( GBPBadge );
- $('rdetail_image_cell').appendChild( GBPBadgelink );
- $('rdetail_preview_div').style.height = 600;
-
- /* Display the "Preview" tab in the Extras section */
- unHideMe( $('rdetail_preview_link' ) );
- }
-}
-
-/**
- * This is called when the user clicks on the 'Preview' link. We assume
- * a preview is available from Google if this link was made visible.
- *
- * XXX I18N of Google Book Preview language attribute needed
- */
-function rdetailDisplayGBPreview() {
- unHideMe($('rdetail_extras_loading'));
- GBPreviewPane = $('rdetail_preview_div');
- if ( GBPreviewPane.getAttribute('loaded') == null ||
- GBPreviewPane.getAttribute('loaded') == "false" ) {
- google.load("books", "0", {"callback" : rdetailGBPViewerLoadCallback, "language": "en"} );
- GBPreviewPane.setAttribute('loaded', 'true');
- }
-}
-
-function rdetailGBPViewerLoadCallback() {
- hideMe($('rdetail_extras_loading'));
- var GBPViewer = new google.books.DefaultViewer(document.getElementById('rdetail_preview_div'));
- GBPViewer.load('ISBN:' + cleanISBN(record.isbn()) );
-
-}
+++ /dev/null
-/**
- Customizing MARC record data fields based on Alexander O'Neill's work
- 2009 Guoying Liu
- */
-
-function rdetailShowCustomizedMARCs( ) {
- loadMARCRecord();
-}
-
-var MARCRequest;
-var marctags;
-var firstResultRow;
-
-function loadMARCRecord( ) {
- MARCRequest = null;
-
- // Code for all new browsers
- if (window.XMLHttpRequest)
- MARCRequest = new XMLHttpRequest();
- // Code for IE 5 and 6
- else if ( window.ActiveXObject )
- MARCRequest = new ActiveXObject( "Microsoft.XMLHTTP" );
-
- if ( MARCRequest != null ) {
- MARCRequest.onreadystatechange = marcrec_State_Change;
- MARCRequest.open( "GET", "/opac/extras/supercat/retrieve/marcxml/record/" + record.doc_id(), true );
- MARCRequest.send(null);
- }
-}
-
-function marcrec_State_Change() {
- var hasFirstISSN = false;
-
- // 4 means "loaded"
- if ( MARCRequest.readyState == 4 ) {
- // 200 means "OK"
- if ( MARCRequest.status == 200 ) {
- marctags = document.getElementsByTagName("MARC");
-
- for ( i = 0; i < marctags.length; i++ ) {
- dataField = marctags.item(i).getAttribute('dataField');
- controlField = marctags.item(i).getAttribute('controlField');
- marcItems = getElementsByAttribute( MARCRequest.responseXML, 'controlfield', 'tag', controlField );
-
- if ( marcItems.length > 0 ) {
- // This is a control field, which has no subfields, rather than a data field.
- itemString = getText( marcItems[0] );
- currentField = document.createElement( 'span' );
-
- setText( currentField, itemString );
- marctags[i].parentNode.appendChild( currentField );
- continue;
- }
- marcItems = getElementsByAttribute( MARCRequest.responseXML, 'datafield', 'tag', dataField );
-
- buildSearchString = ( marctags[i].getAttribute( 'searchfield' ) != null ? true : false );
-
- for ( j = 0; j < marcItems.length; j++ ) {
- nextItem = getElementsByAttribute( marcItems[j], 'subfield', 'code', ( marctags[i].getAttribute('subfield') != null ? marctags[i].getAttribute('subfield') : '*' ) );
-
- for ( k = 0; k < nextItem.length; k++ ) {
- itemString = nextItem[k].firstChild.nodeValue;
- currentSubField = document.createElement( (buildSearchString ? 'a' : 'span') );
- setText( currentSubField, itemString );
- marctags[i].parentNode.appendChild( currentSubField );
-
- //show SFX Button if dataField "022" has value;
- if (dataField == "022"){
- if(hasFirstISSN == false){
- rdetailShowSFXButton( itemString );
- hasFirstISSN = true;
- }
- }
-
- if ( buildSearchString ) {
- href = '../xml/rresult.xml?rt=' + marctags[i].getAttribute('searchfield') + '&tp=' + marctags[i].getAttribute('searchfield') + '&t=';
-
- for ( l = 0; l <= k; l++ ) {
- href += nextItem[l].firstChild.nodeValue + '%20'; // it's ok to have a space at the end.
- }
- href += '&l=1&d=0&f=&av=';
- currentSubField.setAttribute('href', href);
- currentSubField.setAttribute('title', 'Perform a search on this subject' );
- }
-
- separatorItem = document.createElement('span');
-
- if ( k < nextItem.length - 1) {
- setText( separatorItem, ( marctags[i].getAttribute('separator') != null ? ' ' + marctags[i].getAttribute('separator') + ' ' : ' ' ) );
- marctags[i].parentNode.appendChild( separatorItem );
- } else {
- if ( marctags[i].getAttribute( 'newline' ) != null ) {
- if ( marctags[i].getAttribute( 'newline' ) == 'no' ){
- setText( separatorItem, ' ' );
- marctags[i].parentNode.appendChild( separatorItem );
- } else {
- marctags[i].parentNode.appendChild( document.createElement('br') );
- }
- } else {
- marctags[i].parentNode.appendChild( document.createElement('br') );
- }
- }
- }//for k
-
- } // for j
- if ( getText(marctags[i].parentNode).replace(/^\s+|\s+$/g, '') == '' ) {
- hideMe(marctags[i].parentNode.parentNode);
- }
- }
- }
- }
-}
-
-function getElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue) {
- var arrElements = oElm.getElementsByTagName(strTagName );
- var arrReturnElements = new Array();
- var oAttributeValue = new XRegExp( "(^|\\s)" + strAttributeValue + "(\\s|$)", "i" );
- var oCurrent;
- var oAttribute;
-
- for ( var i=0; i < arrElements.length; i++ ) {
- oCurrent = arrElements[i];
- oAttribute = oCurrent.getAttribute( strAttributeName );
- if( oAttribute != null && oAttribute.length > 0)
- if( oAttributeValue && oAttributeValue.test( oAttribute ) )
- arrReturnElements.push(oCurrent);
- }
- return arrReturnElements;
-}
-
-function getText( control ) {
- if ( control == null )
- return '';
-
- if (document.all)
- return control.innerText;
- else
- return trimStr(control.textContent);
-}
-
-function setText(control, value) {
- if (document.all)
- control.innerText = value;
- else
- control.textContent = value;
-}
-
-function trimStr( str ) {
- if (str == null)
- return '';
- return str.replace(/^\s+|\s+$/g, '');
-}
+++ /dev/null
-
-var recordsHandled = 0;
-var recordsCache = [];
-var lowHitCount = 4;
-var isbnList = '';
-var googleBooksLink = false;
-var enableHoldsOnAvailable = false;
-var enableExtraSearchesLowHits = true;
-var localProxyPrefix = '';
-var suppressCopyCounts = true;
-var lookUpLimit = 100; //limit for invoking live status info
-var elec_loc = 'software, multimedia'; //res name for url locations
-
-function sortOutCopies(loc_id, rec_id, form_id) {
- var copies = 0;
- var recreq = new Request(FETCH_R_COPY_COUNTS, loc_id, rec_id, form_id);
- recreq.send(true);
- if (recreq) {
- var copy_info = recreq.result();
- for (var i in copy_info) {
- if (loc_id == copy_info[i].org_unit)
- return copy_info[i].available;
- }//for
- }//if
-
- return copies;
-}
-
-/* this was in opac_utils.js, putting here for now */
-function cleanISBN(isbn) {
- if(isbn) {
- isbn = isbn.toString().replace(/^\s+/,"");
- var idx = isbn.indexOf(" ");
- if(idx > -1) { isbn = isbn.substring(0, idx); }
- } else isbn = "";
- return isbn;
-}
-
-
-/* an array of the extra services to which we want to direct people, in order of priority:
-Properties:
- url: will be proxied via localProxyPrefix
- description: will be used in the OPAC display
- termTransform: a function name that transforms Evergreen compiled searches to the target search format
-*/
-var externalSearchServices = [
- {
- "url": "http://books.scholarsportal.info/search.html?searchField=All+Fields&limit=full_text&sortBy=relevance&collection=all&searchTerm=",
- "description": "Search ScholarsPortal ebooks",
- "termTransform": "allKeywords"
- },
- {
- "url": "http://scholar.google.com/scholar?q=",
- "description": "Search Google Scholar",
- "termTransform": "allKeywords"
- }
-];
-
-var resultFetchAllRecords = false;
-var resultCompiledSearch = null;
-
-/* set up the event handlers */
-if( findCurrentPage() == MRESULT || findCurrentPage() == RRESULT ) {
- G.evt.result.hitCountReceived.push(resultSetHitInfo);
-
- //we don't display copy counts for consortium
- //G.evt.result.recordReceived.push(resultDisplayRecord, resultAddCopyCounts);
- G.evt.result.recordReceived.push(resultDisplayRecord);
-
- //we don't display copy counts for consortium
- //G.evt.result.copyCountsReceived.push(resultDisplayCopyCounts);
- G.evt.result.allRecordsReceived.push(resultBuildCaches, resultDrawSubjects,
- resultDrawAuthors, resultDrawSeries, function(){unHideMe($('result_info_2'))},
- fetchGoogleBooksLink);
-
- attachEvt('result','lowHits',resultLowHits);
- attachEvt('result','zeroHits',resultZeroHits);
- attachEvt( "common", "locationUpdated", resultSBSubmit );
- /* do this after we have ID's so the rank for mr pages will be correct */
- attachEvt("result", "preCollectRecords", resultPaginate);
-}
-
-function resultSBSubmit(){searchBarSubmit();}
-
-/* returns the last 'index' postion ocurring in this page */
-function resultFinalPageIndex() {
- if(getHitCount() < (getOffset() + getDisplayCount()))
- return getHitCount() - 1;
- return getOffset() + getDisplayCount() - 1;
-}
-
-
-
-
-/* generic search method */
-function resultCollectSearchIds( type, method, handler ) {
-
- var sort = (getSort() == SORT_TYPE_REL) ? null : getSort();
- var sortdir = (sort) ? ((getSortDir()) ? getSortDir() : SORT_DIR_ASC) : null;
-
- var item_type;
- var item_form;
- var args = {};
-
- if( type ) {
- var form = parseForm(getForm());
- item_type = form.item_type;
- item_form = form.item_form;
-
- } else {
- item_type = (getItemType()) ? getItemType().split(/,/) : null;
- item_form = (getItemForm()) ? getItemForm().split(/,/) : null;
- }
-
- var limit = (resultFetchAllRecords) ? 1000 : getDisplayCount();
-
- if( getOffset() > 0 ) {
- if( getHitCount() > 0 && (getOffset() + getDisplayCount()) > getHitCount() )
- limit = getHitCount() - getOffset();
- }
-
- var lasso = getLasso();
-
- if (lasso) args.org_unit = -lasso;
- else args.org_unit = getLocation();
-
- args.depth = getDepth();
- args.limit = limit;
- args.offset = getOffset();
- args.visibility_limit = 3000;
- args.default_class = getStype();
-
- if(sort) args.sort = sort;
- if(sortdir) args.sort_dir = sortdir;
- if(item_type) args.item_type = item_type;
- if(item_form) args.item_form = item_form;
- if(getAvail()) args.available = 1;
-
-
- if(getAudience()) args.audience = getAudience().split(/,/);
- if(getLitForm()) args.lit_form = getLitForm().split(/,/);
- if(getLanguage()) args.language = getLanguage().split(/,/);
- if(getBibLevel()) args.bib_level = getBibLevel().split(/,/);
- if(getCopyLocs()) args.locations = getCopyLocs().split(/,/);
- if(getPubdBefore()) args.before = getPubdBefore();
- else if(getPubdAfter()) args.after = getPubdAfter();
- else if(getPubdBetween()) args.between = getPubdBetween().split(/,/);
-
- _debug('Search args: ' + js2JSON(args));
- _debug('Raw query: ' + getTerm());
-
- var req = new Request(method, args, getTerm(), 1);
- req.callback(handler);
- req.send();
-}
-
-
-
-
-
-/* set the search result info, number of hits, which results we're
- displaying, links to the next/prev pages, etc. */
-function resultSetHitInfo() {
-
- var lasso = getLasso();
- if (!lasso) {
- /* tell the user where the results are coming from */
- var baseorg = findOrgUnit(getLocation());
- var depth = getDepth();
- var mydepth = findOrgDepth(baseorg);
- if( findOrgDepth(baseorg) != depth ) {
- var tmporg = baseorg;
- while( mydepth > depth ) {
- mydepth--;
- tmporg = findOrgUnit(tmporg.parent_ou());
- }
- unHideMe($('including_results_for'));
- $('including_results_location').appendChild(text(tmporg.name()));
- }
- }
-
-
- try{searchTimer.stop()}catch(e){}
-
- //if( findCurrentPage() == MRESULT ) {
- if( findCurrentPage() == MRESULT ||
-
- (findCurrentPage() == RRESULT &&
- (
- getRtype() == RTYPE_TITLE ||
- getRtype() == RTYPE_AUTHOR ||
- getRtype() == RTYPE_SUBJECT ||
- getRtype() == RTYPE_SERIES ||
- getRtype() == RTYPE_KEYWORD
- )
-
- ) ) {
-
- if(getHitCount() <= lowHitCount && getTerm())
- runEvt('result', 'lowHits');
- }
-
- if(getHitCount() == 0) {
- runEvt('result', 'zeroHits');
- return;
- }
-
-
- var pages = getHitCount() / getDisplayCount();
- if(pages % 1) pages = parseInt(pages) + 1;
-
-
-
- var cpage = (getOffset()/getDisplayCount()) + 1;
-
- G.ui.result.current_page.appendChild(text(cpage));
- G.ui.result.num_pages.appendChild(text(pages + ")")); /* the ) is dumb */
-
- $('current_page2').appendChild(text(cpage));
- $('num_pages2').appendChild(text(pages + ")")); /* the ) is dumb */
-
- /* set the offsets */
- var offsetEnd = getDisplayCount() + getOffset();
- if( getDisplayCount() > (getHitCount() - getOffset()))
- offsetEnd = getHitCount();
-
- G.ui.result.offset_end.appendChild(text(offsetEnd));
- G.ui.result.offset_start.appendChild(text(getOffset() + 1));
-
- $('offset_end2').appendChild(text(offsetEnd));
- $('offset_start2').appendChild(text(getOffset() + 1));
-
- G.ui.result.result_count.appendChild(text(getHitCount()));
- unHideMe(G.ui.result.info);
-
- $('result_count2').appendChild(text(getHitCount()));
- unHideMe($('result_info_div2'));
-}
-
-function resultLowHits() {
- showCanvas();
- unHideMe($('result_low_hits'));
- if(getHitCount() > 0)
- unHideMe($('result_low_hits_msg'));
-
- var words = [];
- for(var key in resultCompiledSearch.searches)
- words.push(resultCompiledSearch.searches[key].term);
-
- var sreq = new Request(CHECK_SPELL, words.join(' '));
- sreq.callback(resultSuggestSpelling);
- sreq.send();
-
- for(var key in resultCompiledSearch.searches) {
- var areq = new Request(FETCH_CROSSREF, key, resultCompiledSearch.searches[key].term);
- areq.callback(resultLowHitXRef);
- areq.send();
- }
-
- if( !(getForm() == null || getForm() == 'all' || getForm() == "") ) {
- var a = {};
- a[PARAM_FORM] = "all";
- $('low_hits_remove_format_link').setAttribute('href',buildOPACLink(a));
- unHideMe($('low_hits_remove_format'));
- }
-
- resultSuggestSearchClass();
-
- if (enableExtraSearchesLowHits) {
- resultSuggestExtraSearches();
- }
-
- if(getTerm()) resultExpandSearch(); /* advanced search */
-}
-
-var lowHitsXRefSet = {};
-var lowHitsXRefLink;
-var lowHitsXRefLinkParent;
-function resultLowHitXRef(r) {
- if(!lowHitsXRefLink){
- lowHitsXRefLinkParent = $('low_hits_xref_link').parentNode;
- lowHitsXRefLink = lowHitsXRefLinkParent.removeChild($('low_hits_xref_link'));
- }
- var res = r.getResultObject();
- var arr = res.from;
- arr.concat(res.also);
- if(arr && arr.length > 0) {
- unHideMe($('low_hits_cross_ref'));
- var word;
- var c = 0;
- while( word = arr.shift() ) {
-
- if (lowHitsXRefSet[word] == 1) continue;
- lowHitsXRefSet[word] = 1;
-
- if(c++ > 20) break;
- var a = {};
- a[PARAM_TERM] = word;
- var template = lowHitsXRefLink.cloneNode(true);
- template.setAttribute('href',buildOPACLink(a));
- template.appendChild(text(word));
- lowHitsXRefLinkParent.appendChild(template);
- lowHitsXRefLinkParent.appendChild(text(' '));
- }
- }
-}
-
-function resultZeroHits() {
- showCanvas();
- unHideMe($('result_low_hits'));
- unHideMe($('result_zero_hits_msg'));
-
- //if(getTerm()) resultExpandSearch(); /* advanced search */
-}
-
-function resultExpandSearch() {
- var top = findOrgDepth(globalOrgTree);
-
- /* We don't want to expand the scope to Everywhere in Conifer, that's just confusing */
- if(getDepth() == top || getDepth() - 1 == top) return;
- unHideMe($('low_hits_expand_range'));
- var par = $('low_hits_expand_link').parentNode;
- var template = par.removeChild($('low_hits_expand_link'));
-
- var bottom = getDepth();
- while( top < bottom ) {
- var a = {};
- a[PARAM_DEPTH] = top;
- var temp = template.cloneNode(true);
- temp.appendChild(text(findOrgTypeFromDepth(top).opac_label()))
- temp.setAttribute('href',buildOPACLink(a));
- par.appendChild(temp);
- top++;
- }
-}
-
-/* Generate links to our extra search services */
-function resultSuggestExtraSearches() {
- dojo.forEach(externalSearchServices, function(esItem) {
- var extraSearchStuff = this[esItem.termTransform].apply(this, [esItem.url]);
- dojo.place("<div style='text-align: center; width: 100%; margin-left: auto; margin-right: auto;'><strong>" +
- esItem.description + "</strong>: <a class='classic_link' href='" +
- extraSearchStuff.searchTerms + "'>" + extraSearchStuff.displayTerms + "</a><div>", "result_low_hits", "child"
- );
- });
-}
-
-/* Transform everything in the Evergreen search to plain old keywords */
-function allKeywords(esUrl) {
- var ebook_search = localProxyPrefix + esUrl;
- var ebook_terms = '';
- for (var key in resultCompiledSearch.searches) {
- ebook_search += resultCompiledSearch.searches[key].term + '+';
- ebook_terms += resultCompiledSearch.searches[key].term + ' ';
- }
- ebook_search = ebook_search.replace(/ /g, '+');
- ebook_search = ebook_search.replace(/\%20/g, '+');
- ebook_search = ebook_search.replace(/\+$/g, '');
- ebook_terms = ebook_terms.replace(/ $/g, '');
- var extraSuggestion = {"displayTerms": ebook_terms, "searchTerms": ebook_search};
- return extraSuggestion;
-}
-
-function resultSuggestSearchClass() {
- var stype = getStype();
- if(stype == STYPE_KEYWORD) return;
- var a = {}; var ref;
- unHideMe($('low_hits_search_type'));
- if(stype != STYPE_TITLE) {
- ref = $('low_hits_title_search');
- unHideMe(ref);
- a[PARAM_STYPE] = STYPE_TITLE;
- ref.setAttribute('href',buildOPACLink(a));
- }
- if(stype != STYPE_AUTHOR) {
- ref = $('low_hits_author_search');
- unHideMe(ref);
- a[PARAM_STYPE] = STYPE_AUTHOR;
- ref.setAttribute('href',buildOPACLink(a));
- }
- if(stype != STYPE_SUBJECT) {
- ref = $('low_hits_subject_search');
- unHideMe(ref);
- a[PARAM_STYPE] = STYPE_SUBJECT;
- ref.setAttribute('href',buildOPACLink(a));
- }
- if(stype != STYPE_KEYWORD) {
- ref = $('low_hits_keyword_search');
- unHideMe(ref);
- a[PARAM_STYPE] = STYPE_KEYWORD;
- ref.setAttribute('href',buildOPACLink(a));
- }
- if(stype != STYPE_SERIES) {
- ref = $('low_hits_series_search');
- unHideMe(ref);
- a[PARAM_STYPE] = STYPE_SERIES;
- ref.setAttribute('href',buildOPACLink(a));
- }
-}
-
-function resultSuggestSpelling(r) {
- var res = r.getResultObject();
- var phrase = getTerm();
- var words = phrase.split(/ /);
-
- var newterm = "";
-
- for( var w = 0; w < words.length; w++ ) {
- var word = words[w];
- var blob = grep(res, function(i){return (i.word == word);});
- if( blob ) blob = blob[0];
- else continue;
- if( blob.word == word ) {
- if( blob.suggestions && blob.suggestions[0] ) {
- newterm += " " + blob.suggestions[0];
- unHideMe($('did_you_mean'));
- } else {
- newterm += " " + word;
- }
- }
- }
-
- var arg = {};
- arg[PARAM_TERM] = newterm;
- $('spell_check_link').setAttribute('href', buildOPACLink(arg));
- $('spell_check_link').appendChild(text(newterm));
-}
-
-
-function resultPaginate() {
- var o = getOffset();
-
- if( !( ((o) + getDisplayCount()) >= getHitCount()) ) {
-
- var args = {};
- args[PARAM_OFFSET] = o + getDisplayCount();
- args[PARAM_SORT] = SORT;
- args[PARAM_SORT_DIR] = SORT_DIR;
- args[PARAM_RLIST] = new CGI().param(PARAM_RLIST);
-
- G.ui.result.next_link.setAttribute("href", buildOPACLink(args));
- addCSSClass(G.ui.result.next_link, config.css.result.nav_active);
-
- $('next_link2').setAttribute("href", buildOPACLink(args));
- addCSSClass($('next_link2'), config.css.result.nav_active);
-
- args[PARAM_OFFSET] = getHitCount() - (getHitCount() % getDisplayCount());
-
- /* when hit count is divisible by display count, we have to adjust */
- if( getHitCount() % getDisplayCount() == 0 )
- args[PARAM_OFFSET] -= getDisplayCount();
-
- /*
- G.ui.result.end_link.setAttribute("href", buildOPACLink(args));
- addCSSClass(G.ui.result.end_link, config.css.result.nav_active);
-
- $('end_link2').setAttribute("href", buildOPACLink(args));
- addCSSClass($('end_link2'), config.css.result.nav_active);
- */
- }
-
- if( o > 0 ) {
-
- var args = {};
- args[PARAM_SORT] = SORT;
- args[PARAM_SORT_DIR] = SORT_DIR;
- args[PARAM_RLIST] = new CGI().param(PARAM_RLIST);
-
- args[PARAM_OFFSET] = o - getDisplayCount();
- G.ui.result.prev_link.setAttribute( "href", buildOPACLink(args));
- addCSSClass(G.ui.result.prev_link, config.css.result.nav_active);
-
- //$('prev_link2').setAttribute( "href", buildOPACLink(args));
- $('prev_link2').setAttribute( "href", buildOPACLink("/"));
- addCSSClass($('prev_link2'), config.css.result.nav_active);
-
- args[PARAM_OFFSET] = 0;
- G.ui.result.home_link.setAttribute( "href", buildOPACLink(args));
- addCSSClass(G.ui.result.home_link, config.css.result.nav_active);
-
- $('search_home_link2').setAttribute( "href", buildOPACLink(args));
- addCSSClass($('search_home_link2'), config.css.result.nav_active);
- }
-
- if(getDisplayCount() < getHitCount()) {
- unHideMe($('start_end_links_span'));
- unHideMe($('start_end_links_span2'));
- }
-
- showCanvas();
- try{searchTimer.stop()}catch(e){}
-}
-
-function buildunAPISpan (span, type, id) {
- var cgi = new CGI();
- var d = new Date();
-
- addCSSClass(span,'unapi-id');
-
- span.setAttribute(
- 'title',
- 'tag:' + cgi.server_name + ',' +
- d.getFullYear() +
- ':' + type + '/' + id
- );
-}
-
-function unhideGoogleBooksLink (data) {
- for ( var i in data ) {
- //if (data[i].preview == 'noview') continue;
-
- var gbspan = $n(document.documentElement, 'googleBooksLink-' + i);
- var gba = $n(gbspan, "googleBooks-link");
-
- gba.setAttribute(
- 'href',
- data[i].info_url
- );
- removeCSSClass( gbspan, 'hide_me' );
- }
-}
-
-/* riff on buildTitleDetailLink from opac_utils */
-function buildResultTitleDetailLink(rec, link, copyCnt) {
- if(!rec) return;
- link.appendChild(text(normalize(truncate(rec.title(), 500))));
- var args = {};
- args.page = RDETAIL;
-
- if (copyCnt > lookUpLimit)
- args.page = RSDETAIL;
-
- args[PARAM_RID] = rec.doc_id();
- // in IE, if the link text contains a '@', it replaces the innerHTML text
- // with the value of the href attribute. Wait, what? Yes. Capture the
- // innerHTML and put it back into place after the href is set
- var linkText = link.innerHTML; // IE
- link.setAttribute("href", buildOPACLink(args));
- link.innerHTML = linkText; // IE
-}
-
-
-
-/* display the record info in the record display table 'pos' is the
- zero based position the record should have in the display table */
-function resultDisplayRecord(rec, pos, is_mr) {
-
- if(rec == null) rec = new mvr(); /* so the page won't die if there was an error */
- recordsHandled++;
- recordsCache.push(rec);
-
- var r = table.rows[pos + 1];
- var currentISBN = cleanISBN(rec.isbn());
- var currentISSN = cleanISBN(rec.isbn());
-
- if (googleBooksLink) {
- var gbspan = $n(r, "googleBooksLink");
- if (currentISBN) {
- gbspan.setAttribute(
- 'name',
- gbspan.getAttribute('name') + '-' + currentISBN
- );
-
- if (isbnList) isbnList += ', ';
- isbnList += currentISBN;
- }
- }
-
-/*
- try {
- var rank = parseFloat(ranks[pos + getOffset()]);
- rank = parseInt( rank * 100 );
- var relspan = $n(r, "relevancy_span");
- relspan.appendChild(text(rank));
- unHideMe(relspan.parentNode);
- } catch(e){ }
-*/
-
- var pic = $n(r, config.names.result.item_jacket);
-
- if (currentISBN.length > 8) {
- pic.setAttribute("src", buildISBNSrc(currentISBN));
- } else {
- pic.setAttribute("src", "/opac/images/blank.png");
- }
-
- var title_link = $n(r, config.names.result.item_title);
- var author_link = $n(r, config.names.result.item_author);
-
- if( is_mr ) {
- var onlyrec = onlyrecord[ getOffset() + pos ];
- if(onlyrec) {
- buildunAPISpan($n(r,'unapi'), 'biblio-record_entry', onlyrec);
-
- var args = {};
- args.page = RDETAIL;
- args[PARAM_OFFSET] = 0;
- args[PARAM_RID] = onlyrec;
- args[PARAM_MRID] = rec.doc_id();
- if (pic!= null)
- pic.parentNode.setAttribute("href", buildOPACLink(args));
- title_link.setAttribute("href", buildOPACLink(args));
- title_link.appendChild(text(normalize(truncate(rec.title(), 65))));
-
- } else {
- buildunAPISpan($n(r,'unapi'), 'metabib-metarecord', rec.doc_id());
-
- buildTitleLink(rec, title_link);
- var args = {};
- args.page = RRESULT;
- args[PARAM_OFFSET] = 0;
- args[PARAM_MRID] = rec.doc_id();
- if (pic != null)
- pic.parentNode.setAttribute("href", buildOPACLink(args));
- }
-
- } else {
- var onlyrec = rec.doc_id();
- buildunAPISpan($n(r,'unapi'), 'biblio-record_entry', onlyrec);
- var copyCnt = sortOutCopies(getLocation(), onlyrec, null);
-
- buildResultTitleDetailLink(rec, title_link, copyCnt);
- var args = {};
- args.page = RDETAIL;
- args[PARAM_OFFSET] = 0;
- args[PARAM_RID] = rec.doc_id();
- if (pic != null)
- pic.parentNode.setAttribute("href", buildOPACLink(args));
-
- //don't bother with holds at this point
- /*
- if (enableHoldsOnAvailable) {
- unHideMe($n(r,'place_hold_span'));
- }
-
- $n(r,'place_hold_link').setAttribute(
- 'href','javascript:holdsDrawEditor({record:"'+rec.doc_id()+'",type:"T"});');
- */
- // Stolen from trunk - (and stolen again from lul :-))
- var here = findOrgUnit(getLocation());
-
- if (copyCnt <= lookUpLimit) {
- dojo.require('openils.BibTemplate');
- var l_cn_list = $n(r,'local_callnumber_list');
-
- dojo.addOnLoad(function () {
- new openils.BibTemplate({
- root : l_cn_list,
- record : '' + onlyrec,
- org_unit : here.shortname()
- }).render();
- unHideMe(l_cn_list);
- });
- } else {
- //there is probably an easier way to deal with IE on this but...
- unHideMe( $n(r, "local_callnumber_list"));
- var callSpot = $n(r, "local_callnumber_list").parentNode;
- var newTd = document.createElement( 'td' )
- //to do: internationalize this
- newTd.appendChild(text("... " + copyCnt + " print items, please see full record for details on print and digital coverage."));
- addCSSClass(newTd,"too_many_copies");
- var newTr = document.createElement( 'tr' )
- newTr.appendChild(newTd);
- callSpot.insertBefore(newTr,
- $n(r, "local_callnumber_list"));
- }//if
- }
-
- buildSearchLink(STYPE_AUTHOR, rec.author(), author_link);
-
- if(! is_mr ) {
-
- $n(r, "result_table_recid_span").appendChild( text( rec.doc_id()) );
- if(!isNull(rec.edition())) {
- unHideMe( $n(r, "result_table_extra_span"));
- $n(r, "result_table_edition_span").appendChild( text( rec.edition()) );
- }
- if(!isNull(rec.pubdate())) {
- unHideMe( $n(r, "result_table_extra_span"));
- unHideMe($n(r, "result_table_pub_span"));
- $n(r, "result_table_pub_span").appendChild( text( rec.pubdate() ));
- }
- if(!isNull(rec.publisher()) ) {
- unHideMe( $n(r, "result_table_extra_span"));
- unHideMe($n(r, "result_table_pub_span"));
- $n(r, "result_table_pub_span").appendChild( text( " " + rec.publisher() ));
- }
-
- if(!isNull(rec.physical_description()) ) {
- unHideMe( $n(r, "result_table_extra_span"));
- var t = " " + rec.physical_description();
- //$n(r, "result_table_phys_span").appendChild( text(t.replace(/:.*/g,'')));
- $n(r, "result_table_phys_span").appendChild( text(t));
- }
- }
-
- resultBuildFormatIcons( r, rec, is_mr );
-
- unHideMe(r);
-
- runEvt("result", "recordDrawn", rec.doc_id(), title_link);
-
- /*
- if(resultPageIsDone()) {
- runEvt('result', 'allRecordsReceived', recordsCache);
- }
- */
-}
-
-function _resultFindRec(id) {
- for( var i = 0; i != recordsCache.length; i++ ) {
- var rec = recordsCache[i];
- if( rec && rec.doc_id() == id )
- return rec;
- }
- return null;
-}
-
-
-function resultBuildFormatIcons( row, rec, is_mr ) {
-
- var ress = rec.types_of_resource();
-
- for( var i in ress ) {
-
- var res = ress[i];
- if(!res) continue;
-
- if (elec_loc.length > 0 && rec.online_loc().length > 0)
- res=elec_loc;
-
- var link = $n(row, res + "_link");
- link.title = res;
- var img = link.getElementsByTagName("img")[0];
- removeCSSClass( img, config.css.dim );
-
- var f = getForm();
- if( f != "all" ) {
- if( f == modsFormatToMARC(res) )
- addCSSClass( img, "dim2_border");
- }
-
- var args = {};
- args[PARAM_OFFSET] = 0;
-
- if(is_mr) {
- args.page = RRESULT;
- args[PARAM_TFORM] = modsFormatToMARC(res);
- args[PARAM_MRID] = rec.doc_id();
-
- } else {
- args.page = RDETAIL
- args[PARAM_RID] = rec.doc_id();
- }
-
- link.setAttribute("href", buildOPACLink(args));
-
- }
-}
-
-function fetchGoogleBooksLink () {
- if (isbnList && googleBooksLink) {
- var scriptElement = document.createElement("script");
- scriptElement.setAttribute("id", "jsonScript");
- scriptElement.setAttribute("src",
- "http://books.google.com/books?bibkeys=" +
- escape(isbnList) + "&jscmd=viewapi&callback=unhideGoogleBooksLink");
- scriptElement.setAttribute("type", "text/javascript");
- // make the request to Google Book Search
- document.documentElement.firstChild.appendChild(scriptElement);
- }
-}
-
-function resultPageIsDone(pos) {
-
- return (recordsHandled == getDisplayCount()
- || recordsHandled + getOffset() == getHitCount());
-}
-
-var resultCCHeaderApplied = false;
-
-/* -------------------------------------------------------------------- */
-/* dynamically add the copy count rows based on the org type 'countsrow'
- is the row into which we will add TD's to hold the copy counts
- This code generates copy count cells with an id of
- 'copy_count_cell_<depth>_<pagePosition>' */
-function resultAddCopyCounts(rec, pagePosition) {
-
- var r = table.rows[pagePosition + 1];
- var countsrow = $n(r, config.names.result.counts_row );
- var ccell = $n(countsrow, config.names.result.count_cell);
-
- var nodes = orgNodeTrail(findOrgUnit(getLocation()));
- var node = nodes[0];
- var type = findOrgType(node.ou_type());
- ccell.id = "copy_count_cell_" + type.depth() + "_" + pagePosition;
- ccell.title = type.opac_label();
- //addCSSClass(ccell, config.css.result.cc_cell_even);
-
- var lastcell = ccell;
- var lastheadcell = null;
-
- var cchead = null;
- var ccheadcell = null;
- if(!resultCCHeaderApplied && !getLasso()) {
- ccrow = $('result_thead_row');
- ccheadcell = ccrow.removeChild($n(ccrow, "result_thead_ccell"));
- var t = ccheadcell.cloneNode(true);
- lastheadcell = t;
- //t.appendChild(text(type.opac_label()));
- t.appendChild(text(" "));
- ccrow.appendChild(t);
- resultCCHeaderApplied = true;
- }
-
- if(nodes[1]) {
-
- var x = 1;
- var d = findOrgDepth(nodes[1]);
- var d2 = findOrgDepth(nodes[nodes.length -1]);
-
- for( var i = d; i <= d2 ; i++ ) {
-
- ccell = ccell.cloneNode(true);
-
- //if((i % 2)) removeCSSClass(ccell, "copy_count_cell_even");
- //else addCSSClass(ccell, "copy_count_cell_even");
-
- var node = nodes[x++];
- var type = findOrgType(node.ou_type());
-
- ccell.id = "copy_count_cell_" + type.depth() + "_" + pagePosition;
- ccell.title = type.opac_label();
- countsrow.insertBefore(ccell, lastcell);
- lastcell = ccell;
-
- if(ccheadcell) {
- var t = ccheadcell.cloneNode(true);
- t.appendChild(text(type.opac_label()));
- ccrow.insertBefore(t, lastheadcell);
- lastheadcell = t;
- }
- }
- }
-
- unHideMe($("search_info_table"));
-}
-
-/* collect copy counts for a record using method 'methodName' */
-function resultCollectCopyCounts(rec, pagePosition, methodName) {
- if(rec == null || rec.doc_id() == null) return;
-
- var loc = getLasso();
- if (loc) loc = -loc;
- else loc= getLocation();
-
- var req = new Request(methodName, loc, rec.doc_id(), getForm() );
- req.request.userdata = [ rec, pagePosition ];
- req.callback(resultHandleCopyCounts);
- req.send();
-}
-
-function resultHandleCopyCounts(r) {
- runEvt('result', 'copyCountsReceived', r.userdata[0], r.userdata[1], r.getResultObject());
-}
-
-
-/* XXX Needs to understand Lasso copy counts... */
-/* display the collected copy counts */
-function resultDisplayCopyCounts(rec, pagePosition, copy_counts) {
- if(copy_counts == null || rec == null || suppressCopyCounts) return;
-
- if (getLasso()) {
- var copy_counts_lasso = {
- transcendant : null,
- count : 0,
- unshadow : 0,
- available : 0,
- depth : -1,
- org_unit : getLasso()
- };
-
- for (var i in copy_counts) {
- copy_counts_lasso.transcendant = copy_counts[i].transcendant;
- copy_counts_lasso.count += parseInt(copy_counts[i].count);
- copy_counts_lasso.unshadow += parseInt(copy_counts[i].unshadow);
- copy_counts_lasso.available += parseInt(copy_counts[i].available);
- }
-
- copy_counts = [ copy_counts_lasso ];
- }
-
- var i = 0;
- var metarecords = (findCurrentPage() == MRESULT);
- while(copy_counts[i] != null) {
- var cell = $("copy_count_cell_" + i +"_" + pagePosition);
- var cts = copy_counts[i];
-
- var availMess = "Available";
- if (cts.count >= cts.available && cts.available > 1)
- availMess = cts.available + " of " + cts.count + " Available";
- if (cts.count > cts.available && cts.available == 0)
- availMess = "Checked Out";
- if (cts.count == 0 && cts.available == 0)
- availMess = "Online";
-
- //cell.appendChild(text(cts.available + " / " + cts.count));
- cell.appendChild(text(availMess));
-
- //don't bother with holds at this point
- /*
- if (!enableHoldsOnAvailable && (i == (copy_counts.length - 1))) {
- var resultTBody = findParentByNodeName(cell, 'TBODY');
- if (cts.available == 0 && cts.count > 0 && !metarecords) {
- dojo.query('[name="place_hold_span"]', resultTBody).removeClass('hide_me');
- } else {
- dojo.query('[name="place_hold_span"]', resultTBody).addClass('hide_me');
- }
- }
- */
-
- if(isXUL()) {
- /* here we style opac-invisible records for xul */
-
- if( cts.depth == 0 ) {
- if(cts.transcendant == null && cts.unshadow == 0) {
- _debug("found an opac-shadowed record: " + rec.doc_id());
- var row = cell.parentNode.parentNode.parentNode.parentNode.parentNode;
- if( cts.count == 0 )
- addCSSClass( row, 'no_copies' );
- else
- addCSSClass( row, 'shadowed' );
- }
- }
- }
- i++;
- }
-}
-
+++ /dev/null
-var records = new Array();
-var table;
-var rowtemplate;
-var rresultLimit = 200;
-
-var rresultIsPaged = false;
-
-function rresultUnload() { removeChildren(table); table = null;}
-
-attachEvt("common", "unload", rresultUnload);
-attachEvt("common", "run", rresultDoSearch);
-attachEvt("result", "idsReceived", rresultCollectRecords);
-attachEvt("result", "recordDrawn", rresultLaunchDrawn);
-
-hideMe($('copyright_block'));
-
-function rresultDoSearch() {
-
- swapCanvas($('loading_alt'));
-
- table = G.ui.result.main_table;
- hideMe(G.ui.result.row_template);
- if( table && table.parentNode ) {
- while( table.parentNode.rows.length <= (getDisplayCount() +1) )
- hideMe(table.appendChild(G.ui.result.row_template.cloneNode(true)));
- }
- rresultCollectIds();
-}
-
-function rresultCollectIds() {
- var ids;
-
- var rtype = getRtype();
- if (rtype.indexOf('|') > -1)
- rtype = rtype.substring(0,rtype.indexOf('|'));
-
- switch(rtype) {
-
- case RTYPE_COOKIE:
- ids = JSON2js(cookieManager.read(COOKIE_RIDS));
- _rresultHandleIds( ids, ids.length );
- break;
-
- case RTYPE_TITLE:
- case RTYPE_AUTHOR:
- case RTYPE_SUBJECT:
- case RTYPE_SERIES:
- case RTYPE_KEYWORD:
- rresultDoRecordSearch();
- break;
-
- case RTYPE_MULTI:
- rresultDoRecordMultiSearch();
- break;
-
- case RTYPE_LIST :
- rresultHandleList();
- break;
-
- case RTYPE_MARC :
- rresultCollectMARCIds();
- break;
-
- case RTYPE_ISBN :
- rresultCollectISBNIds();
- break;
-
- case RTYPE_TCN :
- rresultCollectTCNIds();
- break;
-
- case RTYPE_ISSN :
- rresultCollectISSNIds();
- break;
-
-
- case RTYPE_MRID :
- case null :
- case "" :
- default:
- var form = rresultGetForm();
- var args = { format : form, org : getLocation(), depth : rresultGetDepth() };
-
- var lasso = getLasso();
- if (lasso) args.org = -lasso;
-
- var req = new Request(FETCH_RIDS, getMrid(), args);
- req.callback( rresultHandleRIds );
- req.send();
-
- if( rresultGetDepth() != findOrgDepth(globalOrgTree) ) {
- var link = $('rresult_show_all_link');
- if(link) {
- unHideMe($('rresult_show_all'));
- link.appendChild( text(
- findOrgType(globalOrgTree.ou_type()).opac_label()));
- }
-
- } else {
- if( rresultGetDepth() != getDepth() ) { /* inside a limited display */
- var link = $('rresult_show_here_link');
- if(link) {
- link.appendChild( text(
- findOrgType(findOrgUnit(getLocation()).ou_type()).opac_label()));
- unHideMe($('rresult_show_here'));
- }
- }
- }
- }
-}
-
-function rresultExpandSearch() {
- var args = {};
- args[PARAM_RDEPTH] = findOrgDepth(globalOrgTree);
- goTo(buildOPACLink(args));
-}
-
-function rresultContractSearch() {
- var args = {};
- RDEPTH = null;
- args[PARAM_OFFSET] = 0;
- goTo(buildOPACLink(args));
-}
-
-
-function rresultGetDepth() {
- if( getRdepth() != null) return getRdepth();
- return getDepth();
-}
-
-
-function rresultGetForm() {
- var form;
-
- if(getTform()) /* did the user select a format from the icon list (temporary) */
- form = (getTform() == 'all') ? null : getTform();
- else /* did the use select a format from simple search dropdown */
- form = (getForm() == 'all') ? null : getForm();
-
- if(!form) { /* did the user select a format from the advanced search */
- form = getItemType();
- var f = getItemForm();
-
- if(form) {
- form = form.replace(/,/,'');
- if(f) form += '-' + f;
- } else {
- if(f) form = '-' + f;
- }
- }
-
- return form;
-}
-
-
-function rresultCollectMARCIds() {
-
- var args = {};
- args.searches = JSON2js(getSearches());
- args.limit = 200;
- args.org_unit = globalOrgTree.id();
- args.depth = 0;
-
- rresultIsPaged = true;
- var req = new Request(FETCH_ADV_MARC_MRIDS, args, getDisplayCount(), getOffset());
- req.callback(rresultHandleRIds);
- req.request.noretry = true;
- req.send();
-}
-
-
-function rresultCollectISBNIds() {
- var req = new Request(FETCH_ADV_ISBN_RIDS, getAdvTerm() );
- req.callback(
- function(r) {
- var blob = r.getResultObject();
- _rresultHandleIds(blob.ids, blob.count);
- }
- );
- req.send();
-}
-
-function rresultCollectTCNIds() {
- var req = new Request(FETCH_ADV_TCN_RIDS, getAdvTerm() );
- req.callback(
- function(r) {
- var blob = r.getResultObject();
- _rresultHandleIds(blob.ids, blob.count);
- }
- );
- req.send();
-}
-
-function rresultCollectISSNIds() {
- var req = new Request(FETCH_ADV_ISSN_RIDS, getAdvTerm() );
- req.callback(
- function(r) {
- var blob = r.getResultObject();
- _rresultHandleIds(blob.ids, blob.count);
- }
- );
- req.send();
-}
-
-function rresultHandleList() {
- var ids = new CGI().param(PARAM_RLIST);
- var count;
- if(!dojo.isArray(ids)) {
- count = 1;
- ids = [ids];
- } else {
- count = ids.length;
- }
- if(ids) _rresultHandleIds(ids, count);
-}
-
-var rresultTries = 0;
-function rresultHandleRIds(r) {
- var res = r.getResultObject();
-
- if(!res) res = {count:0,ids:[]};
-
- if( res.count == 0 && rresultTries == 0 && ! r.noretry) {
-
- rresultTries++;
- var form = rresultGetForm();
- var args = { format : form, org : getLocation(), depth : findOrgDepth(globalOrgTree) };
-
- var lasso = getLasso();
- if (lasso) args.org = -lasso;
-
- var req = new Request(FETCH_RIDS, getMrid(), args );
- req.callback( rresultHandleRIds );
- req.send();
- unHideMe($('no_formats'));
- hideMe($('rresult_show_all'));
-
- } else {
-
- _rresultHandleIds(res.ids, res.count);
- }
-}
-
-function _rresultHandleIds(ids, count) {
- //var json = js2JSON({ids:ids,count:count});
- /*
- cookieManager.write(COOKIE_SRIDS, json, '+1d');
- */
-
- HITCOUNT = parseInt(count);
- runEvt('result', 'hitCountReceived');
- runEvt('result', 'idsReceived', ids, getOffset());
-}
-
-/*
-function rresultCollectRecords(ids) {
- runEvt("result", "preCollectRecords");
- var x = 0;
- for( var i = getOffset(); i!= getDisplayCount() + getOffset(); i++ ) {
- if(ids[i] == null) break;
- var req = new Request(FETCH_RMODS, parseInt(ids[i]));
- req.callback(rresultHandleMods);
- req.request.userdata = x++;
- req.send();
- }
-}
-*/
-
-
-function rresultCollectRecords(ids, base) {
- runEvt("result", "preCollectRecords");
- var x = 0;
-
- if (!base) base = 0;
- if( rresultIsPaged ) base = 0;
-
- for( var i = base; i!= getDisplayCount() + base; i++ ) {
- if(ids[i] == null) break;
- var req = new Request(FETCH_RMODS, parseInt(ids[i]));
- req.callback(rresultHandleMods);
- req.request.userdata = x++;
- req.send();
- }
-}
-
-
-function rresultHandleMods(r) {
- var rec = r.getResultObject();
- runEvt('result', 'recordReceived', rec, r.userdata, false);
- resultCollectCopyCounts(rec, r.userdata, FETCH_R_COPY_COUNTS);
- if(resultPageIsDone()) {
- runEvt('result', 'allRecordsReceived', recordsCache);
- unHideMe($('copyright_block'));
- }
-}
-
-function rresultLaunchDrawn(id, node) {
- runEvt("rresult", "recordDrawn", id, node);
-}
-
-
-function rresultDoRecordSearch() {
- rresultIsPaged = true;
- resultCollectSearchIds(true, SEARCH_RS_QUERY, rresultFilterSearchResults );
-}
-
-function rresultDoRecordMultiSearch() {
- rresultIsPaged = true;
- resultCollectSearchIds(false, SEARCH_RS_QUERY, rresultFilterSearchResults );
-}
-
-
-function rresultFilterSearchResults(r) {
- var result = r.getResultObject();
- var ids = [];
- if( result.count > 0 ) {
- for( var i = 0; i != result.ids.length; i++ )
- ids.push(result.ids[i][0]);
- }
-
- resultCompiledSearch = result.compiled_search;
- cookieManager.write(COOKIE_SEARCH, js2JSON(result.compiled_search), -1);
- _rresultHandleIds( ids, result.count );
-}
-
-
-
+++ /dev/null
-var searchBarExpanded = false;
-/* our search selector boxes */
-var _ts, _fs;
-
-
-var isFrontPage = false;
-
-
-G.evt.common.init.push(searchBarInit);
-
-/* if set by the org selector, this will be the location used the
- next time the search is submitted */
-var newSearchLocation;
-var newSearchDepth = null;
-
-
-function searchBarInit() {
-
- _ts = G.ui.searchbar.type_selector;
- _fs = G.ui.searchbar.form_selector;
-
- try{G.ui.searchbar.text.focus();}catch(e){}
- G.ui.searchbar.text.onkeydown =
- function(evt) {if(userPressedEnter(evt)) { searchBarSubmit(); } };
- _ts.onkeydown =
- function(evt) {if(userPressedEnter(evt)) { searchBarSubmit(); } };
- _fs.onkeydown =
- function(evt) {if(userPressedEnter(evt)) { searchBarSubmit(); } };
-
- G.ui.searchbar.submit.onclick = searchBarSubmit;
-
- /* set up the selector objects, etc */
- G.ui.searchbar.text.value = (getTerm() != null) ? getTerm() : "";
- setSelector(_ts, getStype());
- setSelector(_fs, getForm());
-
- /* If searching for journal title, set it to journal title */
- if (getStype() == 'title' && getBibLevel() == 's') {
- dojo.byId('jtitle').selected = true;
- }
-
- depthSelInit();
-
-
- if(!isFrontPage && (findCurrentPage() != MYOPAC)) {
- attachEvt('common','depthChanged', searchBarSubmit);
- }
-
- if( (limit = $('opac.result.limit2avail')) ) {
- if(getAvail()) limit.checked = true;
- if(getSort() && getSortDir())
- setSelector($('opac.result.sort'), getSort()+'.'+getSortDir());
- }
-}
-
-function searchBarSubmit(isFilterSort) {
-
- var text = G.ui.searchbar.text.value;
-
- clearSearchParams();
-
- if(!text || text == "") return;
-
- var d = (newSearchDepth != null) ? newSearchDepth : depthSelGetDepth();
- if(isNaN(d)) d = 0;
-
- var args = {};
-
- if(SHOW_MR_DEFAULT || (isFilterSort && findCurrentPage() == MRESULT)) {
- args.page = MRESULT;
- } else {
- args.page = RRESULT;
- args[PARAM_RTYPE] = _ts.options[_ts.selectedIndex].value;
- }
-
- args[PARAM_STYPE] = _ts.options[_ts.selectedIndex].value;
- args[PARAM_TERM] = text;
- args[PARAM_LOCATION] = depthSelGetNewLoc();
- args[PARAM_DEPTH] = d;
- args[PARAM_FORM] = _fs.options[_fs.selectedIndex].value;
-
- /* Set the bib level to 's' for serials if the magic "Journal title" has ben chosen */
- if (_ts.options[_ts.selectedIndex].id == 'jtitle') {
- args[PARAM_BIBLEVEL] = 's';
- }
-
-
- if($('opac.result.limit2avail')) {
- args[PARAM_AVAIL] = ($('opac.result.limit2avail').checked) ? 1 : '';
- if( (val = getSelectorVal($('opac.result.sort'))) ) {
- args[PARAM_SORT] = val.split('.')[0]
- args[PARAM_SORT_DIR] = val.split('.')[1]
- }
- }
-
- goTo(buildOPACLink(args));
-}
-
-
+++ /dev/null
-/* set up the colors in the sidebar
- Disables/Enables certain components based on various state data */
-
-attachEvt("common", "init", initSideBar);
-attachEvt("common", "init", setSidebarLinks);
-
-attachEvt("common", "unload", sidebarTreesFree );
-
-function prevRResults() {
- return buildOPACLink({ page : RRESULT });
-}
-
-function prevMResults() {
- return buildOPACLink({ page : MRESULT });
-}
-
-function initSideBar() {
- var page = findCurrentPage();
-
- if( page == MRESULT )
- unHideMe($("sidebar_results_wrapper"));
-
- if( page == RRESULT ) {
- unHideMe($("sidebar_results_wrapper"));
- unHideMe(G.ui.sidebar[MRESULT]);
- if( getRtype() == RTYPE_MRID )
- $("sidebar_title_group_results").setAttribute("href", prevMResults());
- else hideMe($("sidebar_title_group_results").parentNode);
- }
-
- if( page == RDETAIL ) {
- unHideMe($("sidebar_results_wrapper"));
-
-
- unHideMe(G.ui.sidebar[MRESULT]);
- if(getRtype())
- $("sidebar_title_results").setAttribute("href", prevRResults());
- unHideMe(G.ui.sidebar[RRESULT]);
-
- if( getRtype() == RTYPE_MRID )
- $("sidebar_title_group_results").setAttribute("href", prevMResults());
- else hideMe($("sidebar_title_group_results").parentNode);
- }
-
- unHideMe(G.ui.sidebar[page]);
- addCSSClass(G.ui.sidebar[page], "sidebar_item_active");
-
- /* if we're logged in, show it and replace the Login link with the Logout link */
- if(grabUser()) {
- G.ui.sidebar.username_dest.appendChild(text(G.user.usrname()));
- unHideMe(G.ui.sidebar.logoutbox);
- unHideMe(G.ui.sidebar.logged_in_as);
- hideMe(G.ui.sidebar.loginbox);
- }
-
- if(G.ui.sidebar.login) G.ui.sidebar.login.onclick = initLogin;
- if(G.ui.sidebar.logout) G.ui.sidebar.logout.onclick = doLogout;
-
- if(isXUL()) hideMe( G.ui.sidebar.logoutbox );
-}
-
-/* sets up the login ui components */
-var loginBoxVisible = false;
-
-function loginDance() {
-
- if(doLogin(true)) {
-
- if(!strongPassword( G.ui.login.password.value ) ) {
-
- cookieManager.write(COOKIE_SES, "");
- hideMe($('login_table'));
- unHideMe($('change_pw_table'));
- $('change_pw_current').focus();
- $('change_pw_button').onclick = changePassword;
- setEnterFunc($('change_pw_2'), changePassword);
-
- } else {
- loggedInOK();
- }
- }
-}
-
-function loggedInOK() {
- showCanvas();
- G.ui.sidebar.username_dest.appendChild(text(G.user.usrname()));
- unHideMe(G.ui.sidebar.logoutbox);
- unHideMe(G.ui.sidebar.logged_in_as);
- hideMe(G.ui.sidebar.loginbox);
- runEvt( 'common', 'loggedIn');
-
- var org = G.user.prefs[PREF_DEF_LOCATION];
- if(!org) org = G.user.home_ou();
-
- var depth = G.user.prefs[PREF_DEF_DEPTH];
- if(! ( depth && depth <= findOrgDepth(org)) )
- depth = findOrgDepth(org);
-
- runEvt( "common", "locationChanged", org, depth);
-}
-
-
-function changePassword() {
-
- var pc = $('change_pw_current').value;
- var p1 = $('change_pw_1').value;
- var p2 = $('change_pw_2').value;
-
- if( p1 != p2 ) {
- alert($('pw_no_match').innerHTML);
- return;
- }
-
- if(!strongPassword(p2, true) ) return;
-
- var req = new Request(UPDATE_PASSWORD, G.user.session, p2, pc );
- req.send(true);
- if(req.result()) {
- alert($('pw_update_successful').innerHTML);
- loggedInOK();
- }
-}
-
-var pwRegexSetting;
-function strongPassword(pass, alrt) {
-
- /* first, let's see if there is a configured regex */
- if(!pwRegexSetting) {
- var regex = fetchOrgSettingDefault(G.user.home_ou(), 'global.password_regex');
- if(regex) {
- if(pass.match(new RegExp(regex))) {
- return true;
- } else {
- if(alrt)
- alert($('pw_not_strong').innerHTML);
- return false;
- }
- }
- }
-
- /* no regex configured, use the default */
-
- var good = false;
-
- do {
-
- if(pass.length < 7) break;
- if(!pass.match(/.*\d+.*/)) break;
- if(!pass.match(/.*[A-Za-z]+.*/)) break;
- good = true;
-
- } while(0);
-
- if(!good && alrt) alert($('pw_not_strong').innerHTML);
- return good;
-}
-
-function initLogin() {
-
- G.ui.login.button.onclick = loginDance;
- G.ui.login.username.onkeydown =
- function(evt) {if(userPressedEnter(evt)) loginDance();};
- G.ui.login.password.onkeydown =
- function(evt) {if(userPressedEnter(evt)) loginDance();};
-
-// if(loginBoxVisible) {
-// showCanvas();
-// } else {
- swapCanvas(G.ui.login.box);
- try{G.ui.login.username.focus();}catch(e){}
-// }
-
-// loginBoxVisible = !loginBoxVisible;
- G.ui.login.cancel.onclick = showCanvas;
- if(findCurrentPage() == MYOPAC)
- G.ui.login.cancel.onclick = goHome;
-}
-
-function setSidebarLinks() {
- //G.ui.sidebar.home_link.setAttribute("href", buildOPACLink({page:HOME}));
- G.ui.sidebar.home_link.setAttribute("href", "/");
- G.ui.sidebar.advanced_link.setAttribute("href", buildOPACLink({page:ADVANCED}));
- G.ui.sidebar.myopac_link.setAttribute("href", buildOPACLink({page:MYOPAC}, false, true));
-}
-
-function sidebarTreesFree() {
- removeChildren($(subjectSidebarTree.rootid));
- removeChildren($(authorSidebarTree.rootid));
- removeChildren($(seriesSidebarTree.rootid));
- subjectSidebarTree = null;
- authorSidebarTree = null;
- seriesSidebarTree = null;
-}
-
-
-
-
-/* --------------------------------------------------------------------------------- */
-/* Code to support GALILEO links for PINES. Fails gracefully
-/* --------------------------------------------------------------------------------- */
-attachEvt('common', 'init', buildEGGalLink);
-function buildEGGalLink() {
-
- /* we're in a lib, nothing to do here */
- if( getOrigLocation() ) return;
- if(!$('eg_gal_link')) return;
-
- //var link = 'http://demo.galib.uga.edu/express?pinesid=';
- var link = 'http://www.galileo.usg.edu/express?pinesid=';
- if(grabUser()) {
- $('eg_gal_link').setAttribute('href', link + G.user.session);
- return;
- }
-
- $('eg_gal_link').setAttribute('href', 'javascript:void(0);');
- $('eg_gal_link').setAttribute('target', '');
- $('eg_gal_link').onclick = function() {
- /* we're not logged in. go ahead and login */
- detachAllEvt('common','locationChanged');
- detachAllEvt('common','loggedIn');
- attachEvt('common','loggedIn', function() { goTo(link + G.user.session); })
- initLogin();
- };
-}
-/* --------------------------------------------------------------------------------- */
-
-
+++ /dev/null
-
-/* captures extraneous info from each record */
-
-var subjectCache = {};
-var authorCache = {};
-var seriesCache = {};
-var hrefList = "";
-
-function resultBuildCaches(records) {
- for( var r in records ) {
- var rec = records[r];
- for( var s in rec.subject() )
- subjectCache[s] == null ? subjectCache[s] = 1 : subjectCache[s]++;
- authorCache[rec.author()] = 1;
- for( var s in rec.series() ) seriesCache[rec.series()[s]] = 1;
- }
-}
-
-function resultSortSubjects(a, b) { return -(a.count - b.count); } /* sort in reverse */
-function resultDrawSubjects() {
-
- var subjs = [];
- for( var s in subjectCache )
- subjs.push( { sub : s, count : subjectCache[s] } );
- subjs.sort(resultSortSubjects);
-
- var ss = [];
- for( var s in subjs ) ss.push(subjs[s].sub);
-
- resultDrawSidebarTrees(
- STYPE_SUBJECT,
- "subjectSidebarTree", ss,
- $("subject_tree_sidebar"),
- $("subject_sidebar_tree_div") );
-}
-
-function resultDrawAuthors() {
- var auths = new Array();
- for( var s in authorCache ) auths.push(s);
-
- resultDrawSidebarTrees(
- STYPE_AUTHOR,
- "authorSidebarTree", auths.sort(),
- $("author_tree_sidebar"),
- $("author_sidebar_tree_div") );
-}
-
-function resultDrawSeries() {
- var sers = new Array();
- for( var s in seriesCache ) sers.push(s);
- resultDrawSidebarTrees(
- STYPE_SERIES,
- "seriesSidebarTree", sers.sort(),
- $("series_tree_sidebar"),
- $("series_sidebar_tree_div") );
-}
-
-var IESux = true;
-
-function resultDrawSidebarTrees( stype, treeName, items, wrapperNode, destNode ) {
- eval("tree = " + treeName);
-
- var xrefCache = [];
- var found = false;
- var x = 0;
- for( var i in items ) {
-
- if(isNull(items[i])) continue;
-
- /* again, IE is a turd */
- if(IE) { if(x++ > 5) break; }
- else { if(x++ > 7) break; }
-
- found = true;
-
- var item = normalize(truncate(items[i], 65));
- var args = {};
- var href = resultQuickLink( items[i], stype );
- if (hrefList.indexOf(href) == -1)
- tree.addNode( stype + "_" + items[i], treeName + 'Root', item, href );
- hrefList+=href;
-
-// if( !IE ) resultFireXRefReq(treeName, stype, items[i]);
-
- var a = {};
- a.type = stype;
- a.term = item;
- xrefCache.push(a);
- }
-
- if(found) {
- unHideMe(wrapperNode);
-// if(IE) resultFireXRefSingle(treeName, xrefCache, stype);
- /* XXX */ // disabled auth lookups for now
-
- if( DO_AUTHORITY_LOOKUPS ) {
- resultFireXRefBatch(treeName, xrefCache, stype);
- }
- }
-}
-
-/* XXX */
-function resultFireXRefBatch(treeName, xrefCache, stype) {
- var query = [];
- for( var i = 0; i != xrefCache.length; i++ ) {
- var topic = xrefCache[i];
- query.push( [ topic.type, topic.term ] );
- }
- //FLAG for UWIN before SVN - art
- return;
- //alert(FETCH_CROSSREF_BATCH + ' - ' + query);
- var req = new Request(FETCH_CROSSREF_BATCH, query);
- var tree;
- eval('tree=' + treeName);
- req.request._tree = tree;
- req.request._stype = stype;
- req.callback(resultRenderXRefTree);
- req.send();
-}
-
-var xrefCacheIndex = {};
-xrefCacheIndex['subject'] = 0;
-xrefCacheIndex['author'] = 0;
-xrefCacheIndex['series'] = 0;
-
-function resultHandleXRefResponse(r) {
- resultFireXRefSingle( r._treename, r._cache, r._stype );
- resultAppendCrossRef(r);
-}
-
-
-function resultFireXRefSingle( treeName, xrefCache, stype ) {
- var i = xrefCacheIndex[stype]++;
- if(xrefCache[i] == null) return;
- var item = xrefCache[i].term;
- var tree;
- eval('tree=' + treeName);
- var req = new Request(FETCH_CROSSREF, stype, item);
- req.request._tree = tree;
- req.request._item = item;
- req.request._stype = stype;
- req.request._cache = xrefCache;
- req.request._treename = treeName;
- req.callback(resultHandleXRefResponse);
- req.send();
-}
-
-function resultFireXRefReq( treeName, stype, item ) {
- var tree;
- eval('tree=' + treeName);
- var req = new Request(FETCH_CROSSREF, stype, item);
- req.request._tree = tree;
- req.request._item = item;
- req.request._stype = stype;
- req.callback(resultAppendCrossRef);
- req.send();
-}
-
-
-function resultQuickLink( term, type ) {
- var args = {};
- if(SHOW_MR_DEFAULT) {
- args.page = MRESULT;
- } else {
- args.page = RRESULT;
- args[PARAM_RTYPE] = type;
- }
- args[PARAM_OFFSET] = 0;
- args[PARAM_TERM] = term;
- args[PARAM_STYPE] = type;
- return buildOPACLink(args);
-}
-
-/* XXX */
-function resultRenderXRefTree(r) {
- var tree = r._tree;
- var res = r.getResultObject();
- var stype = r._stype;
-
- for( var c in res ) {
- var cls = res[c];
- for( var t in cls ) {
- var term = res[c][t];
- var froms = term['from'];
- var alsos = term['also'];
- var total = 0;
-
- for( var i = 0; (total++ < 5 && i < froms.length); i++ ) {
- var string = normalize(truncate(froms[i], 45));
- if($(stype + '_' + froms[i])) continue;
- tree.addNode(stype + '_' + froms[i],
- stype + '_' + t, string, resultQuickLink(froms[i],stype));
- }
- for( var i = 0; (total++ < 10 && i < alsos.length); i++ ) {
- var string = normalize(truncate(alsos[i], 45));
- if($(stype + '_' + alsos[i])) continue;
- tree.addNode(stype + '_' + alsos[i],
- stype + '_' + t, string, resultQuickLink(alsos[i],stype));
- }
- }
- }
-}
-
-
-/* Addes the see-from/see-also entries for this subject item */
-function resultAppendCrossRef(r) {
- var tree = r._tree
- var item = r._item
- var stype = r._stype;
- var result = r.getResultObject();
- if(!result) return;
- var froms = result['from'];
- var alsos = result['also'];
-
- var total = 0;
-
- for( var i = 0; (total++ < 5 && i < froms.length); i++ )
- resultAddXRefItem( tree, item, stype, froms, i );
-
- for( var i = 0; (total++ < 10 && i < alsos.length); i++ )
- resultAddXRefItem( tree, item, stype, alsos, i );
-}
-
-/**
- * Adds a single entry into the see-from/also sidebar tree
- */
-var collectedStrings = [];
-function resultAddXRefItem(tree, rootItem, stype, arr, idx) {
-
- var string = normalize(truncate(arr[idx], 45));
-
- if( string == rootItem ) return;
-
- if( grep( collectedStrings,
- function(a) { return (a == string); }) ) return;
-
- if($(stype + '_' + arr[idx])) return;
-
- tree.addNode(stype + '_' + arr[idx],
- stype + '_' + rootItem, string, resultQuickLink(arr[idx],stype));
-
- collectedStrings.push(string);
-}
-
-
-
-
-
-
+++ /dev/null
-attachEvt('result', 'allRecordsReceived', insertTip);
-
-/*
-var user_tips = [
- 'Click on a folder icon in the sidebar to access related quick searches',
- "If you don't find what you want try expanding your search using the range selector at the right of the search bar"
-];
-*/
-
-function insertTip () {
- try {
- var tip_div = document.getElementById('tips');
- if (tip_div) {
- var tips = tip_div.getElementsByTagName('div')[0].getElementsByTagName('span');
- var index = Math.floor(Math.random() * tips.length);
- tip_div.appendChild( tips[index] );
- removeCSSClass(tip_div, 'hide_me');
- }
- } catch (er) {}
-}
-
+++ /dev/null
-/*\r
- XRegExp 0.6.1\r
- (c) 2007-2008 Steven Levithan\r
- <http://stevenlevithan.com/regex/xregexp/>\r
- MIT License\r
-*/\r
-\r
-/** provides an augmented, cross-browser implementation of regular expressions\r
- including support for additional modifiers and syntax. several convenience\r
- methods and a recursive-construct parser are also included.\r
-*/\r
-\r
-// prevent running twice, which would break references to native globals\r
-if (!window.XRegExp) {\r
-// anonymous function to avoid global variables\r
-(function () {\r
-// copy various native globals for reference. can't use the name ``native``\r
-// because it's a reserved JavaScript keyword.\r
-var real = {\r
- exec: RegExp.prototype.exec,\r
- match: String.prototype.match,\r
- replace: String.prototype.replace,\r
- split: String.prototype.split\r
- },\r
- /* regex syntax parsing with support for all the necessary cross-\r
- browser and context issues (escapings, character classes, etc.) */\r
- lib = {\r
- part: /(?:[^\\([#\s.]+|\\(?!k<[\w$]+>|[pP]{[^}]+})[\S\s]?|\((?=\?(?!#|<[\w$]+>)))+|(\()(?:\?(?:(#)[^)]*\)|<([$\w]+)>))?|\\(?:k<([\w$]+)>|[pP]{([^}]+)})|(\[\^?)|([\S\s])/g,\r
- replaceVar: /(?:[^$]+|\$(?![1-9$&`']|{[$\w]+}))+|\$(?:([1-9]\d*|[$&`'])|{([$\w]+)})/g,\r
- extended: /^(?:\s+|#.*)+/,\r
- quantifier: /^(?:[?*+]|{\d+(?:,\d*)?})/,\r
- classLeft: /&&\[\^?/g,\r
- classRight: /]/g\r
- },\r
- indexOf = function (array, item, from) {\r
- for (var i = from || 0; i < array.length; i++)\r
- if (array[i] === item) return i;\r
- return -1;\r
- },\r
- brokenExecUndef = /()??/.exec("")[1] !== undefined,\r
- plugins = {};\r
-\r
-/*** XRegExp\r
- accepts a pattern and flags, returns a new, extended RegExp object.\r
- differs from a native regex in that additional flags and syntax are\r
- supported and browser inconsistencies are ameliorated.\r
-*/\r
-XRegExp = function (pattern, flags) {\r
- if (pattern instanceof RegExp) {\r
- if (flags !== undefined)\r
- throw TypeError("can't supply flags when constructing one RegExp from another");\r
- return pattern.addFlags(); // new copy\r
- }\r
-\r
- var flags = flags || "",\r
- singleline = flags.indexOf("s") > -1,\r
- extended = flags.indexOf("x") > -1,\r
- hasNamedCapture = false,\r
- captureNames = [],\r
- output = [],\r
- part = lib.part,\r
- match, cc, len, index, regex;\r
-\r
- part.lastIndex = 0; // in case the last XRegExp compilation threw an error (unbalanced character class)\r
-\r
- while (match = real.exec.call(part, pattern)) {\r
- // comment pattern. this check must come before the capturing group check,\r
- // because both match[1] and match[2] will be non-empty.\r
- if (match[2]) {\r
- // keep tokens separated unless the following token is a quantifier\r
- if (!lib.quantifier.test(pattern.slice(part.lastIndex)))\r
- output.push("(?:)");\r
- // capturing group\r
- } else if (match[1]) {\r
- captureNames.push(match[3] || null);\r
- if (match[3])\r
- hasNamedCapture = true;\r
- output.push("(");\r
- // named backreference\r
- } else if (match[4]) {\r
- index = indexOf(captureNames, match[4]);\r
- // keep backreferences separate from subsequent literal numbers\r
- // preserve backreferences to named groups that are undefined at this point as literal strings\r
- output.push(index > -1 ?\r
- "\\" + (index + 1) + (isNaN(pattern.charAt(part.lastIndex)) ? "" : "(?:)") :\r
- match[0]\r
- );\r
- // unicode element (requires plugin)\r
- } else if (match[5]) {\r
- output.push(plugins.unicode ?\r
- plugins.unicode.get(match[5], match[0].charAt(1) === "P") :\r
- match[0]\r
- );\r
- // character class opening delimiter ("[" or "[^")\r
- // (non-native unicode elements are not supported within character classes)\r
- } else if (match[6]) {\r
- if (pattern.charAt(part.lastIndex) === "]") {\r
- // for cross-browser compatibility with ECMA-262 v3 behavior,\r
- // convert [] to (?!) and [^] to [\S\s].\r
- output.push(match[6] === "[" ? "(?!)" : "[\\S\\s]");\r
- part.lastIndex++;\r
- } else {\r
- // parse the character class with support for inner escapes and\r
- // ES4's infinitely nesting intersection syntax ([&&[^&&[]]]).\r
- cc = XRegExp.matchRecursive("&&" + pattern.slice(match.index), lib.classLeft, lib.classRight, "", {escapeChar: "\\"})[0];\r
- output.push(match[6] + cc + "]");\r
- part.lastIndex += cc.length + 1;\r
- }\r
- // dot ("."), pound sign ("#"), or whitespace character\r
- } else if (match[7]) {\r
- if (singleline && match[7] === ".") {\r
- output.push("[\\S\\s]");\r
- } else if (extended && lib.extended.test(match[7])) {\r
- len = real.exec.call(lib.extended, pattern.slice(part.lastIndex - 1))[0].length;\r
- // keep tokens separated unless the following token is a quantifier\r
- if (!lib.quantifier.test(pattern.slice(part.lastIndex - 1 + len)))\r
- output.push("(?:)");\r
- part.lastIndex += len - 1;\r
- } else {\r
- output.push(match[7]);\r
- }\r
- } else {\r
- output.push(match[0]);\r
- }\r
- }\r
-\r
- regex = RegExp(output.join(""), real.replace.call(flags, /[sx]+/g, ""));\r
- regex._x = {\r
- source: pattern,\r
- captureNames: hasNamedCapture ? captureNames : null\r
- };\r
- return regex;\r
-};\r
-\r
-// barebones plugin support for now (intentionally undocumented)\r
-XRegExp.addPlugin = function (name, o) {\r
- plugins[name] = o;\r
-};\r
-\r
-/*** RegExp.prototype.exec\r
- adds named capture support, with values returned as ``result.name``.\r
- also fixes two cross-browser issues, following the ECMA-262 v3 spec:\r
- - captured values for non-participating capturing groups should be returned\r
- as ``undefined``, rather than the empty string.\r
- - the regex's ``lastIndex`` should not be incremented after zero-length\r
- matches.\r
-*/\r
-RegExp.prototype.exec = function (str) {\r
- var match = real.exec.call(this, str),\r
- name, i, r2;\r
- if (match) {\r
- // fix browsers whose exec methods don't consistently return\r
- // undefined for non-participating capturing groups\r
- if (brokenExecUndef && match.length > 1) {\r
- // r2 doesn't need /g or /y, but they shouldn't hurt\r
- r2 = new RegExp("^" + this.source + "$(?!\\s)", this.getNativeFlags());\r
- real.replace.call(match[0], r2, function () {\r
- for (i = 1; i < arguments.length - 2; i++) {\r
- if (arguments[i] === undefined) match[i] = undefined;\r
- }\r
- });\r
- }\r
- // attach named capture properties\r
- if (this._x && this._x.captureNames) {\r
- for (i = 1; i < match.length; i++) {\r
- name = this._x.captureNames[i - 1];\r
- if (name) match[name] = match[i];\r
- }\r
- }\r
- // fix browsers that increment lastIndex after zero-length matches\r
- if (this.global && this.lastIndex > (match.index + match[0].length))\r
- this.lastIndex--;\r
- }\r
- return match;\r
-};\r
-\r
-/*** String.prototype.match\r
- run the altered ``exec`` when called with a non-global regex.\r
-*/\r
-String.prototype.match = function (regex) {\r
- if (!(regex instanceof RegExp))\r
- regex = new XRegExp(regex);\r
- if (regex.global)\r
- return real.match.call(this, regex);\r
- return regex.exec(this); // run the altered exec\r
-};\r
-\r
-/*** String.prototype.replace\r
- add named capture support to replacement strings using the syntax\r
- ``${name}``, and to replacement functions as ``arguments[0].name``.\r
-*/\r
-String.prototype.replace = function (search, replacement) {\r
- var captureNames = (search._x || {}).captureNames;\r
-\r
- // if search is not a regex which uses named capture, use the native replace method\r
- if (!(search instanceof RegExp && captureNames))\r
- return real.replace.apply(this, arguments);\r
-\r
- if (typeof replacement === "function") {\r
- return real.replace.call(this, search, function () {\r
- // change the arguments[0] string primitive to a String object which can store properties\r
- arguments[0] = new String(arguments[0]);\r
- // store named backreferences on arguments[0] before calling replacement\r
- for (var i = 0; i < captureNames.length; i++) {\r
- if (captureNames[i])\r
- arguments[0][captureNames[i]] = arguments[i + 1];\r
- }\r
- return replacement.apply(window, arguments);\r
- });\r
- } else {\r
- return real.replace.call(this, search, function () {\r
- var args = arguments;\r
- return real.replace.call(replacement, lib.replaceVar, function ($0, $1, $2) {\r
- // numbered backreference or special variable\r
- if ($1) {\r
- switch ($1) {\r
- case "$": return "$";\r
- case "&": return args[0];\r
- case "`": return args[args.length - 1].slice(0, args[args.length - 2]);\r
- case "'": return args[args.length - 1].slice(args[args.length - 2] + args[0].length);\r
- // numbered backreference\r
- default:\r
- /* what does "$10" mean?\r
- - backreference 10, if 10 or more capturing groups exist\r
- - backreference 1 followed by "0", if 1-9 capturing groups exist\r
- - otherwise, it's the string "$10"\r
- */\r
- var literalNumbers = "";\r
- $1 = +$1; // type-convert\r
- while ($1 > captureNames.length) {\r
- literalNumbers = real.split.call($1, "").pop() + literalNumbers;\r
- $1 = Math.floor($1 / 10); // drop the last digit\r
- }\r
- return ($1 ? args[$1] : "$") + literalNumbers;\r
- }\r
- // named backreference\r
- } else if ($2) {\r
- /* what does "${name}" mean?\r
- - backreference to named capture "name", if it exists\r
- - otherwise, it's the string "${name}"\r
- */\r
- var index = indexOf(captureNames, $2);\r
- return index > -1 ? args[index + 1] : $0;\r
- } else {\r
- return $0;\r
- }\r
- });\r
- });\r
- }\r
-};\r
-\r
-/*** String.prototype.split\r
- a consistent cross-browser, ECMA-262 v3 compliant split method\r
-*/\r
-String.prototype.split = function (s /* separator */, limit) {\r
- // if separator is not a regex, use the native split method\r
- if (!(s instanceof RegExp))\r
- return real.split.apply(this, arguments);\r
-\r
- var output = [],\r
- origLastIndex = s.lastIndex,\r
- lastLastIndex = 0,\r
- i = 0, match, lastLength;\r
-\r
- /* behavior for limit: if it's...\r
- - undefined: no limit\r
- - NaN or zero: return an empty array\r
- - a positive number: use limit after dropping any decimal\r
- - a negative number: no limit\r
- - other: type-convert, then use the above rules\r
- */\r
- if (limit === undefined || +limit < 0) {\r
- limit = false;\r
- } else {\r
- limit = Math.floor(+limit);\r
- if (!limit)\r
- return [];\r
- }\r
-\r
- if (s.global)\r
- s.lastIndex = 0;\r
- else\r
- s = s.addFlags("g");\r
-\r
- while ((!limit || i++ <= limit) && (match = s.exec(this))) { // run the altered exec!\r
- if (s.lastIndex > lastLastIndex) {\r
- output = output.concat(this.slice(lastLastIndex, match.index));\r
- if (1 < match.length && match.index < this.length)\r
- output = output.concat(match.slice(1));\r
- lastLength = match[0].length; // only needed if s.lastIndex === this.length\r
- lastLastIndex = s.lastIndex;\r
- }\r
- if (!match[0].length)\r
- s.lastIndex++; // avoid an infinite loop\r
- }\r
-\r
- // since this uses test(), output must be generated before restoring lastIndex\r
- output = lastLastIndex === this.length ?\r
- (s.test("") && !lastLength ? output : output.concat("")) :\r
- (limit ? output : output.concat(this.slice(lastLastIndex)));\r
- s.lastIndex = origLastIndex; // only needed if s.global, else we're working with a copy of the regex\r
- return output;\r
-};\r
-})(); // end anonymous function\r
-} // end if(!window.XRegExp)\r
-\r
-// intentionally undocumented\r
-RegExp.prototype.getNativeFlags = function () {\r
- return (this.global ? "g" : "") +\r
- (this.ignoreCase ? "i" : "") +\r
- (this.multiline ? "m" : "") +\r
- (this.extended ? "x" : "") +\r
- (this.sticky ? "y" : "");\r
-};\r
-\r
-/*** RegExp.prototype.addFlags\r
- accepts flags; returns a new XRegExp object generated by recompiling\r
- the regex with the additional flags (may include non-native flags).\r
- the original regex object is not altered.\r
-*/\r
-RegExp.prototype.addFlags = function (flags) {\r
- var regex = new XRegExp(this.source, (flags || "") + this.getNativeFlags());\r
- if (this._x) {\r
- regex._x = {\r
- source: this._x.source,\r
- captureNames: this._x.captureNames ? this._x.captureNames.slice(0) : null\r
- };\r
- }\r
- return regex;\r
-};\r
-\r
-/*** RegExp.prototype.call\r
- accepts a context object and string; returns the result of calling\r
- ``exec`` with the provided string. the context is ignored but is\r
- accepted for congruity with ``Function.prototype.call``.\r
-*/\r
-RegExp.prototype.call = function (context, str) {\r
- return this.exec(str);\r
-};\r
-\r
-/*** RegExp.prototype.apply\r
- accepts a context object and arguments array; returns the result of\r
- calling ``exec`` with the first value in the arguments array. the context\r
- is ignored but is accepted for congruity with ``Function.prototype.apply``.\r
-*/\r
-RegExp.prototype.apply = function (context, args) {\r
- return this.exec(args[0]);\r
-};\r
-\r
-/*** XRegExp.cache\r
- accepts a pattern and flags; returns an XRegExp object. if the pattern\r
- and flag combination has previously been cached, the cached copy is\r
- returned, otherwise the new object is cached.\r
-*/\r
-XRegExp.cache = function (pattern, flags) {\r
- var key = "/" + pattern + "/" + (flags || "");\r
- return XRegExp.cache[key] || (XRegExp.cache[key] = new XRegExp(pattern, flags));\r
-};\r
-\r
-/*** XRegExp.escape\r
- accepts a string; returns the string with regex metacharacters escaped.\r
- the returned string can safely be used within a regex to match a literal\r
- string. escaped characters are [, ], {, }, (, ), -, *, +, ?, ., \, ^, $,\r
- |, #, [comma], and whitespace.\r
-*/\r
-XRegExp.escape = function (str) {\r
- return str.replace(/[-[\]{}()*+?.\\^$|,#\s]/g, "\\$&");\r
-};\r
-\r
-/*** XRegExp.matchRecursive\r
- accepts a string to search, left and right delimiters as regex pattern\r
- strings, optional regex flags (may include non-native s, x, and y flags),\r
- and an options object which allows setting an escape character and changing\r
- the return format from an array of matches to a two-dimensional array of\r
- string parts with extended position data. returns an array of matches\r
- (optionally with extended data), allowing nested instances of left and right\r
- delimiters. use the g flag to return all matches, otherwise only the first\r
- is returned. if delimiters are unbalanced within the subject data, an error\r
- is thrown.\r
-\r
- this function admittedly pushes the boundaries of what can be accomplished\r
- sensibly without a "real" parser. however, by doing so it provides flexible\r
- and powerful recursive parsing capabilities with minimal code weight.\r
-\r
- warning: the ``escapeChar`` option is considered experimental and might be\r
- changed or removed in future versions of XRegExp.\r
-\r
- unsupported features:\r
- - backreferences within delimiter patterns when using ``escapeChar``.\r
- - although providing delimiters as regex objects adds the minor feature of\r
- independent delimiter flags, it introduces other limitations and is only\r
- intended to be done by the ``XRegExp`` constructor (which can't call\r
- itself while building a regex).\r
-*/\r
-XRegExp.matchRecursive = function (str, left, right, flags, options) {\r
- var options = options || {},\r
- escapeChar = options.escapeChar,\r
- vN = options.valueNames,\r
- flags = flags || "",\r
- global = flags.indexOf("g") > -1,\r
- ignoreCase = flags.indexOf("i") > -1,\r
- multiline = flags.indexOf("m") > -1,\r
- sticky = flags.indexOf("y") > -1,\r
- /* sticky mode has its own handling in this function, which means you\r
- can use flag "y" even in browsers which don't support it natively */\r
- flags = flags.replace(/y/g, ""),\r
- left = left instanceof RegExp ? (left.global ? left : left.addFlags("g")) : new XRegExp(left, "g" + flags),\r
- right = right instanceof RegExp ? (right.global ? right : right.addFlags("g")) : new XRegExp(right, "g" + flags),\r
- output = [],\r
- openTokens = 0,\r
- delimStart = 0,\r
- delimEnd = 0,\r
- lastOuterEnd = 0,\r
- outerStart, innerStart, leftMatch, rightMatch, escaped, esc;\r
-\r
- if (escapeChar) {\r
- if (escapeChar.length > 1) throw SyntaxError("can't supply more than one escape character");\r
- if (multiline) throw TypeError("can't supply escape character when using the multiline flag");\r
- escaped = XRegExp.escape(escapeChar);\r
- /* Escape pattern modifiers:\r
- /g - not needed here\r
- /i - included\r
- /m - **unsupported**, throws error\r
- /s - handled by XRegExp when delimiters are provided as strings\r
- /x - handled by XRegExp when delimiters are provided as strings\r
- /y - not needed here; supported by other handling in this function\r
- */\r
- esc = new RegExp(\r
- "^(?:" + escaped + "[\\S\\s]|(?:(?!" + left.source + "|" + right.source + ")[^" + escaped + "])+)+",\r
- ignoreCase ? "i" : ""\r
- );\r
- }\r
-\r
- while (true) {\r
- /* advance the starting search position to the end of the last delimiter match.\r
- a couple special cases are also covered:\r
- - if using an escape character, advance to the next delimiter's starting position,\r
- skipping any escaped characters\r
- - first time through, reset lastIndex in case delimiters were provided as regexes\r
- */\r
- left.lastIndex = right.lastIndex = delimEnd +\r
- (escapeChar ? (esc.exec(str.slice(delimEnd)) || [""])[0].length : 0);\r
-\r
- leftMatch = left.exec(str);\r
- rightMatch = right.exec(str);\r
-\r
- // only keep the result which matched earlier in the string\r
- if (leftMatch && rightMatch) {\r
- if (leftMatch.index <= rightMatch.index)\r
- rightMatch = null;\r
- else leftMatch = null;\r
- }\r
-\r
- /* paths*:\r
- leftMatch | rightMatch | openTokens | result\r
- 1 | 0 | 1 | ...\r
- 1 | 0 | 0 | ...\r
- 0 | 1 | 1 | ...\r
- 0 | 1 | 0 | throw\r
- 0 | 0 | 1 | throw\r
- 0 | 0 | 0 | break\r
- * - does not include the sticky mode special case\r
- - the loop ends after the first completed match if not in global mode\r
- */\r
-\r
- if (leftMatch || rightMatch) {\r
- delimStart = (leftMatch || rightMatch).index;\r
- delimEnd = (leftMatch ? left : right).lastIndex;\r
- } else if (!openTokens) {\r
- break;\r
- }\r
-\r
- if (sticky && !openTokens && delimStart > lastOuterEnd)\r
- break;\r
-\r
- if (leftMatch) {\r
- if (!openTokens++) {\r
- outerStart = delimStart;\r
- innerStart = delimEnd;\r
- }\r
- } else if (rightMatch && openTokens) {\r
- if (!--openTokens) {\r
- if (vN) {\r
- if (vN[0] && outerStart > lastOuterEnd)\r
- output.push([vN[0], str.slice(lastOuterEnd, outerStart), lastOuterEnd, outerStart]);\r
- if (vN[1]) output.push([vN[1], str.slice(outerStart, innerStart), outerStart, innerStart]);\r
- if (vN[2]) output.push([vN[2], str.slice(innerStart, delimStart), innerStart, delimStart]);\r
- if (vN[3]) output.push([vN[3], str.slice(delimStart, delimEnd), delimStart, delimEnd]);\r
- } else {\r
- output.push(str.slice(innerStart, delimStart));\r
- }\r
- lastOuterEnd = delimEnd;\r
- if (!global)\r
- break;\r
- }\r
- } else {\r
- // reset lastIndex in case delimiters were provided as regexes\r
- left.lastIndex = right.lastIndex = 0;\r
- throw Error("subject data contains unbalanced delimiters");\r
- }\r
-\r
- // if the delimiter matched an empty string, advance delimEnd to avoid an infinite loop\r
- if (delimStart === delimEnd)\r
- delimEnd++;\r
- }\r
-\r
- if (global && !sticky && vN && vN[0] && str.length > lastOuterEnd)\r
- output.push([vN[0], str.slice(lastOuterEnd), lastOuterEnd, str.length]);\r
-\r
- // reset lastIndex in case delimiters were provided as regexes\r
- left.lastIndex = right.lastIndex = 0;\r
-\r
- return output;\r
-};\r
-\r
+++ /dev/null
-<!-- ================================================================= \r
- Some generic stuff \r
- ================================================================= -->\r
-<!ENTITY lang.version "remote v1">\r
-<!ENTITY lang.description "English">\r
-<!ENTITY lang.author "PINES">\r
-<!ENTITY common.all "All">\r
-<!ENTITY common.currency "$">\r
-<!ENTITY common.language "Language: ">\r
-<!ENTITY common.name "Name">\r
-<!ENTITY common.none "None">\r
-<!ENTITY common.title "Title">\r
-<!ENTITY common.author "Author">\r
-<!ENTITY common.authors "Authors">\r
-<!ENTITY common.callnumber "Call Number">\r
-<!ENTITY common.edition "Edition">\r
-<!ENTITY common.subject "Subject">\r
-<!ENTITY common.series "Series">\r
-<!ENTITY common.keyword "Keyword">\r
-<!ENTITY common.type "Search Type">\r
-<!ENTITY common.isbn "ISBN">\r
-<!ENTITY common.format "Format">\r
-<!-- Message displayed while search results are loading -->\r
-<!ENTITY common.loading "Loading...">\r
-<!ENTITY common.login "Login">\r
-<!ENTITY common.logout "Log Out">\r
-<!ENTITY common.physical "Physical Description">\r
-<!ENTITY common.pubdate "Publication Date">\r
-<!ENTITY common.publisher "Publisher">\r
-<!ENTITY common.results "Results">\r
-<!ENTITY common.select "Select">\r
-<!ENTITY common.status "Status">\r
-<!ENTITY common.at "at">\r
-<!ENTITY common.of "of">\r
-<!ENTITY common.no "No">\r
-<!ENTITY common.yes "Yes">\r
-<!ENTITY common.cancel "Cancel">\r
-<!ENTITY common.library "Library">\r
-<!ENTITY common.username "Username">\r
-<!ENTITY common.password "Password">\r
-<!ENTITY common.submit "Submit">\r
-<!ENTITY common.close "close">\r
-<!ENTITY common.and "and">\r
-<!ENTITY common.user_not_found "User not found">\r
-<!ENTITY opac.advanced.wizard.title "Advanced Search">\r
-<!ENTITY common.nowSearching "Now searching ">\r
-<!ENTITY common.ofAtLeast " of about ">\r
-<!ENTITY common.relevancy "Match Score: ">\r
-<!ENTITY common.tips "Tips:">\r
-<!ENTITY common.tips.tip1 "Click on a folder icon in the sidebar to access related quick searches">\r
-<!ENTITY common.tips.tip2 "If you don't find what you want try expanding your search using the range selector at the right of the search bar">\r
-<!ENTITY common.org.openAll "Expand All">\r
-<!ENTITY common.org.closeAll "Close All">\r
-<!ENTITY common.org.cancel "Cancel">\r
-<!ENTITY common.org.loading "Loading library selector...">\r
-<!ENTITY common.org.note "Tip:">\r
-<!ENTITY common.org.notetext "Click on a location's name to select it. Click on the folder icons to expand a section.">\r
-<!ENTITY opac.login.login "">\r
-<!ENTITY opac.basic "Basic Catalogue (HTML only)">\r
-<!ENTITY common.password_criteria "The password must be at least 7 characters in length, \r
- contain at least one letter (a-z/A-Z), \r
- and contain at least one number.">\r
-<!ENTITY common.a2z.title "Title: A to Z">\r
-<!ENTITY common.z2a.title "Title: Z to A">\r
-<!ENTITY common.a2z.author "Author: A to Z">\r
-<!ENTITY common.z2a.author "Author: Z to A">\r
-<!ENTITY common.new2old.pubdate "Date: Newest to Oldest">\r
-<!ENTITY common.old2new.pubdate "Date: Oldest to Newest">\r
-\r
-<!ENTITY opac.style.reddish "Reddish">\r
-\r
-<!ENTITY holds.where_am_i "Holds lists are not as simple as\r
- 'first come, first served.' A complex matrix combining\r
- consideration of item ownership, patron home library, and item purchase\r
- date determines priorities for holds; the list is dynamic, changing\r
- with every hold placed. Therefore, any indication of a place in the\r
- holds list would be inaccurate. The holds system is designed to\r
- obtain a requested item in the fastest and most efficient way possible.\r
- Your library will contact you when you hold items become\r
- available.">\r
-\r
-<!ENTITY holds.advanced_options "If you wish to broaden the scope of your hold to include other \r
- versions of this title, select the formats that would be acceptable. \r
- The first available copy will be sent to you.">\r
-<!-- ================================================================= \r
- Events and Permissions \r
- ================================================================= -->\r
-\r
-<!ENTITY ilsevent.0 "Operation Succeeded">\r
-<!ENTITY ilsevent.1000 "Login failed. The username or password entered was incorrect.">\r
-<!ENTITY ilsevent.1001 "Login session has timed out or does not exist">\r
-<!ENTITY ilsevent.1002 "User was not found in the database">\r
-<!ENTITY ilsevent.1200 "The given username already exists in the database">\r
-<!ENTITY ilsevent.5000 "Permission Denied">\r
-<!ENTITY ilsperm.CREATE_HOLD "User is not allowed to create holds for other users at this location">\r
-<!-- ================================================================= \r
- common/pages\r
- ================================================================= -->\r
-\r
-\r
-<!ENTITY common.cn.loading "Loading Callnumber Page...">\r
-<!ENTITY common.cn.browsing "You are now browsing">\r
-<!ENTITY common.cn.previous "<< Previous Page">\r
-<!ENTITY common.cn.shelf "Shelf Browser">\r
-<!ENTITY common.cn.next "Next Page >>">\r
-\r
-<!ENTITY common.textsize.title "Text Size: ">\r
-<!ENTITY common.textsize.regular "Regular">\r
-<!-- Regular / Large -->\r
-<!ENTITY common.textsize.separator "/">\r
-<!ENTITY common.textsize.large "Large">\r
-\r
-<!ENTITY home.js.disabled "JavaScript must be enabled in order for you to use the regular Evergreen Catalogue. \r
-However, it seems JavaScript is either disabled or not supported by your browser. \r
-To use the regular Evergreen Catalogue, enable JavaScript by changing your browser options, then \r
-<a style='color: blue; text-decoration: underline;' href='/'>try again</a>. \r
-<br/><br/>Alternatively, you can use the basic HTML-only catalogue \r
-<a style='color: blue; text-decoration: underline;' href='/opac/extras/slimpac/start.html'>here</a>.">\r
-<!-- ================================================================= \r
- MyOPAC bookbag page\r
- ================================================================= -->\r
-\r
-<!ENTITY myopac.delete.bookbag "This will remove the selected bookbag and all items contained within the bookbag. \r
-Are you sure you wish to continue?">\r
-<!ENTITY myopac.no.bookbags "You have not created any bookbags">\r
-<!ENTITY myopac.bookbags.title "My Bookbags">\r
-<!ENTITY myopac.bookbag.items "# Items">\r
-<!ENTITY myopac.bookbag.shared "Shared">\r
-<!ENTITY myopac.bookbag.toggle "Share / Hide">\r
-<!ENTITY myopac.bookbag.delete "Delete this bookbag?">\r
-<!ENTITY myopac.items "Items">\r
-<!ENTITY myopac.view "(View)">\r
-<!ENTITY myopac.atom.feed "ATOM Feed">\r
-<!ENTITY myopac.bookbag.hide "Hide">\r
-<!ENTITY myopac.delete "Delete">\r
-<!ENTITY myopac.bookbag.create "Create a new Bookbag">\r
-<!ENTITY myopac.bookbag.naming "Enter the name of the new Bookbag: ">\r
-<!ENTITY myopac.bookbag.share "Share this Bookbag">\r
-<!ENTITY myopac.bookbag.no.items "The selected bookbag contains no items...">\r
-<!ENTITY myopac.bookbag.remove "Remove this item?">\r
-<!ENTITY myopac.remove.link "remove">\r
-<!ENTITY myopac.publish.text 'Sharing a Bookbag means that the contents of the Bookbag will be visible to others. \r
-To see the public view of a shared Bookbag, click the "View" link in the \r
-"Shared" column of the Bookbag list at the top of this page.'>\r
-<!ENTITY myopac.item.confirm "Are you sure you wish to remove this bookbag item?">\r
-<!ENTITY myopac.publish.confirm "Sharing this bookbag will allow the contents \r
-of the bookback to be seen by others. Are you sure you wish to share this bookbag?">\r
-<!ENTITY myopac.unpublish.confirm "Are you sure you wish to hide this bookbag?">\r
-<!ENTITY myopac.update.success "The Bookbag was successfully updated.">\r
-<!ENTITY myopac.updated.success "Bookbag successfully updated">\r
-<!ENTITY myopac.create.warning "Warning: Adding items to a bookbag creates a link between you and the\r
-items in the database. The contents of the bookbag are NOT publicly \r
-viewable unless the bookbag is shared. However, if you prefer not to\r
-have any link between your patron record and a particular item or items,\r
-we suggest that you do not place said items in a bookbag or that you \r
-avoid using bookbags all together. Thank you.">\r
-<!ENTITY myopac.describe.bookbags "Bookbags are...">\r
-<!-- ================================================================= \r
- MyOPAC Checked Page \r
- ================================================================= -->\r
-\r
-<!ENTITY myopac.checked.out "Total items out:">\r
-<!ENTITY myopac.checked.overdue "Total items overdue:">\r
-<!ENTITY myopac.checked.renew "Renew Selected Items">\r
-<!ENTITY myopac.checked.renewing "Renewing...">\r
-<!ENTITY myopac.checked.renew.remaining "Renewals Remaining">\r
-<!ENTITY myopac.checked.noitems "You have no items checked out at this time">\r
-<!ENTITY myopac.checked.other.circ "Other Circulations">\r
-<!ENTITY myopac.checked.circ.lib "Circulating Library">\r
-<!ENTITY myopac.checked.item.type "Circulation Type">\r
-<!ENTITY myopac.checked.circ.time "Please return by ...">\r
-<!ENTITY myopac.checked.renew.success "item(s) successfully renewed">\r
-<!ENTITY myopac.checked.renew.confirm "Are you sure you wish to renew the selected item(s)?">\r
-<!ENTITY myopac.checked.renew.fail "The system is unable to renew the selected item at this time. This usually means the item is needed to fulfill a hold. Please see a librarian for further help.">\r
-<!ENTITY myopac.checked.renew.fail2 "Library policy prevents the renewal of this item at this time. Please see a librarian for further details.">\r
-<!-- ================================================================= \r
- MyOPAC Fines Page \r
- ================================================================= -->\r
-\r
-<!ENTITY myopac.fines.title "Summary">\r
-<!ENTITY myopac.fines.owed "Total Owed">\r
-<!ENTITY myopac.fines.paid "Total Paid">\r
-<!ENTITY myopac.fines.balance "Balance Owed">\r
-<!ENTITY myopac.fines.status "Loading...">\r
-<!ENTITY myopac.fines.overdue "Overdue Materials">\r
-<!ENTITY myopac.fines.checkout "Checkout Date">\r
-<!ENTITY myopac.fines.due "Due Date">\r
-<!ENTITY myopac.fines.returned "Date Returned">\r
-<!ENTITY myopac.fines.accruing "(fines accruing)">\r
-<!ENTITY myopac.fines.other "Other Fees">\r
-<!ENTITY myopac.fines.time.start "Transaction Start Time">\r
-<!ENTITY myopac.fines.time.paid "Last Payment Time">\r
-<!ENTITY myopac.fines.owed.initial "Initial Amount Owed">\r
-<!ENTITY myopac.fines.paid.amount "Total Amount Paid">\r
-<!ENTITY myopac.fines.type "Billing Type">\r
-<!-- ================================================================= \r
- MyOPAC Holds Page \r
- ================================================================= -->\r
-\r
-<!ENTITY myopac.holds.formats "Formats">\r
-<!ENTITY myopac.holds.location "Pickup Location">\r
-<!ENTITY myopac.holds.edit "Edit">\r
-<!ENTITY myopac.holds.status.none "You have no items on hold at this time">\r
-<!ENTITY myopac.holds.status.waiting "Waiting for copy">\r
-<!ENTITY myopac.holds.status.intransit "In Transit">\r
-<!ENTITY myopac.holds.status.available "Ready for Pickup">\r
-<!ENTITY myopac.holds.cancel "Cancel">\r
-<!ENTITY myopac.holds.verify "If you wish to cancel the selected hold, click OK, otherwise click Cancel.">\r
-<!ENTITY myopac.holds.freeze_selected "Suspend">\r
-<!ENTITY myopac.holds.thaw_selected "Activate">\r
-<!ENTITY myopac.holds.thaw_date_selected "Set Active Date">\r
-<!ENTITY myopac.holds.cancel_selected "Cancel">\r
-<!ENTITY myopac.holds.processing "Processing holds... This may take a moment.">\r
-<!ENTITY myopac.holds.actions "Actions for selected holds">\r
-<!ENTITY myopac.holds.cancel.confirm "Are you sure you wish to cancel the selected holds?">\r
-<!ENTITY myopac.holds.freeze.confirm 'Are you sure you wish to suspend the selected holds?\r
-If an item has already been selected to fulfill the hold, it will not be suspended'>\r
-<!ENTITY myopac.holds.thaw.confirm 'Are you sure you wish to activate the selected holds?'>\r
-<!ENTITY myopac.holds.thaw_date.confirm 'Are you sure you wish to change the activate date for the selected holds?'>\r
-<!ENTITY myopac.holds.freeze.select_thaw "Select an automatic activation date. If no date is chosen, the holds will remain suspended until they are manually activated.">\r
-\r
-<!ENTITY opac.holds.freeze "Suspend this hold">\r
-<!ENTITY opac.holds.freeze.help "A suspended hold will retain its place in the queue, but will not be fulfilled until it has been activated.">\r
-<!ENTITY opac.holds.freeze.thaw_date "Automatically activate hold on:">\r
-<!ENTITY opac.holds.expire_time "Expiration date">\r
-<!ENTITY myopac.holds.estimated_wait "Estimated Wait (days)">\r
-<!-- ================================================================= \r
- MyOPAC Preferences Page \r
- ================================================================= -->\r
-\r
-<!ENTITY myopac.prefs.title "Preferences">\r
-<!ENTITY myopac.prefs.hits "Search hits per page">\r
-<!ENTITY myopac.prefs.font "Default Font Size">\r
-<!ENTITY myopac.prefs.font.regular "Regular Font">\r
-<!ENTITY myopac.prefs.font.large "Large Font">\r
-<!ENTITY myopac.prefs.holds.notify "Default Hold Notification Method">\r
-<!ENTITY myopac.prefs.holds.both "Use Phone and Email">\r
-<!ENTITY myopac.prefs.holds.phone "Use Phone Only">\r
-<!ENTITY myopac.prefs.holds.email "Use Email Only">\r
-<!ENTITY myopac.prefs.search.location "Default Search Location">\r
-<!ENTITY myopac.prefs.search.home "Always search my home library by default.">\r
-<!ENTITY myopac.prefs.search.range "Default Search Range">\r
-<!ENTITY myopac.prefs.save "Save Preference Changes">\r
-<!ENTITY myopac.prefs.save.success "Preferences successfully updated">\r
-<!ENTITY myopac.prefs.save.failed "Preferences update failed!">\r
-<!ENTITY myopac.prefs.help "This setting defines how you will be notified of holds that are ready to be picked up from the library.\r
-By default, holds will use the notification style you choose here. \r
-However, you will still have the option to change individual holds regardless of this setting.">\r
-<!ENTITY myopac.holds.unfrozen "Active">\r
-<!ENTITY myopac.holds.frozen.until "Activate on...">\r
-<!-- ================================================================= \r
- MyOPAC Summary page\r
- ================================================================= -->\r
-\r
-<!ENTITY myopac.summary.expired "Your account expired on <span id='myopac.expired.date'/>! \r
-Please see a librarian to renew your account.">\r
-<!ENTITY myopac.summary.notes "* Staff Notes *">\r
-<!ENTITY myopac.summary.phone.day "Day Phone">\r
-<!ENTITY myopac.summary.phone.evening "Evening Phone">\r
-<!ENTITY myopac.summary.phone.other "Other Phone">\r
-<!ENTITY myopac.summary.change "Change">\r
-<!ENTITY myopac.summary.username.enter "Enter new username:">\r
-<!ENTITY myopac.summary.password.text "(not shown)">\r
-<!ENTITY myopac.summary.password.current "Enter current password:">\r
-<!ENTITY myopac.summary.password.new "Enter new password:">\r
-<!ENTITY myopac.summary.password.reenter "Re-enter new password:">\r
-<!ENTITY myopac.summary.email "Email Address">\r
-<!ENTITY myopac.summary.email.new "Enter new email address:">\r
-<!ENTITY myopac.summary.id.primary "Primary Identification">\r
-<!ENTITY myopac.summary.barcode "Active Barcode">\r
-<!ENTITY myopac.summary.home "Home Library">\r
-<!ENTITY myopac.summary.genesis "Account Creation Date">\r
-<!ENTITY myopac.summary.addresses "Addresses">\r
-<!ENTITY myopac.summary.addresses.pending "Pending Addresses">\r
-<!ENTITY myopac.summary.address.type "Address Type">\r
-<!ENTITY myopac.summary.address.street "Street">\r
-<!ENTITY myopac.summary.address.city "City">\r
-<!ENTITY myopac.summary.address.county "County">\r
-<!ENTITY myopac.summary.address.state "Province">\r
-<!ENTITY myopac.summary.address.country "Country">\r
-<!ENTITY myopac.summary.address.zip "Postal Code">\r
-<!ENTITY myopac.summary.username.error "Please enter a username">\r
-<!ENTITY myopac.summary.username.dup "The requested username is not available. Please choose a different username.">\r
-<!ENTITY myopac.summary.username.success "Username successfully updated">\r
-<!ENTITY myopac.summary.username.failure "Username update failed">\r
-<!ENTITY myopac.summary.username.invalid "Username cannot contain spaces or have the same format as a barcode">\r
-<!ENTITY myopac.summary.email.error "Please enter a valid email address">\r
-<!ENTITY myopac.summary.email.success "Email address successfully updated">\r
-<!ENTITY myopac.summary.email.failed "Email address update failed">\r
-<!ENTITY myopac.summary.password.error "Passwords are empty or do not match">\r
-<!ENTITY myopac.summary.password.success "Password successfully updated">\r
-<!ENTITY myopac.summary.password.failure "Password update failed">\r
-<!-- ================================================================= \r
- Advanced Search Page \r
- ================================================================= -->\r
-\r
-<!ENTITY opac.advanced.wizard.contains "Selected field contains the following words">\r
-<!ENTITY opac.advanced.wizard.nocontains "Selected field does <u>not</u> contain the following words">\r
-<!ENTITY opac.advanced.wizard.exact "Selected field contains the <u>exact</u> phrase">\r
-<!ENTITY opac.advanced.refined.title "Refined Advanced Search">\r
-<!ENTITY opac.advanced.refined.title_contains "Title contains the following words">\r
-<!ENTITY opac.advanced.refined.author_contains "Author contains the following words">\r
-<!ENTITY opac.advanced.refined.subject_contains "Subject contains the following words">\r
-<!ENTITY opac.advanced.refined.series_contains "Series contains the following words">\r
-<!ENTITY opac.advanced.refined.contains "Contains">\r
-<!ENTITY opac.advanced.refined.nocontains "Does not contain">\r
-<!ENTITY opac.advanced.refined.exact "Matches Exactly">\r
-<!ENTITY opac.advanced.marc.warning "For Librarians">\r
-<!ENTITY opac.advanced.marc.title "MARC Expert Search">\r
-<!ENTITY opac.advanced.marc.tag "MARC Tag">\r
-<!ENTITY opac.advanced.marc.ind1 "Indicator 1">\r
-<!ENTITY opac.advanced.marc.ind2 "Indicator 2">\r
-<!ENTITY opac.advanced.marc.subfield "Subfield">\r
-<!ENTITY opac.advanced.marc.value "Value">\r
-<!ENTITY opac.advanced.marc.addrow "Add a new row">\r
-<!ENTITY opac.advanced.quick.title "Quick Search">\r
-<!ENTITY opac.advanced.quick.isbn "ISBN">\r
-<!ENTITY opac.advanced.quick.issn "ISSN">\r
-<!ENTITY opac.advanced.quick.lccn "LCCN">\r
-<!-- title control number -->\r
-<!ENTITY opac.advanced.quick.tcn "TCN">\r
-<!ENTITY opac.advanced.quick.barcode "Item Barcode">\r
-<!ENTITY opac.advanced.quick.cn "Call Number">\r
-<!ENTITY opac.advanced.copy_loc_filter "Shelving Location">\r
-<!-- ==========================================================\r
- MARC expert search\r
- ========================================================== -->\r
-\r
-<!ENTITY search.marc "MARC Expert Search">\r
-<!ENTITY search.marc.tag "Tag:">\r
-<!ENTITY search.marc.subfield "Subfield:">\r
-<!ENTITY search.marc.value "Value:">\r
-<!ENTITY search.marc.add.row "Add Row">\r
-<!-- ==========================================================\r
- Status bar\r
- ========================================================== -->\r
-\r
-\r
-<!ENTITY status.results "Including results for">\r
-<!-- ==========================================================\r
- Tips\r
- ========================================================== -->\r
-\r
-\r
-<!ENTITY tips.label "Tip:">\r
-<!-- ================================================================= \r
- More generic stuff \r
- ================================================================= -->\r
-\r
-<!ENTITY opac.session_expiring "Your login session will timeout in 1 minute unless there is activity.">\r
-<!ENTITY opac.session_expired "Your login session has expired">\r
-<!ENTITY navigate.home "Start over">\r
-<!ENTITY navigate.home.title "Go to the catalogue home page">\r
-<!ENTITY opac.navigate.advanced "Advanced Search">\r
-<!ENTITY opac.navigate.advanced.title "Go to the Advanced Search Page">\r
-<!ENTITY navigate.myopac "My Account">\r
-<!ENTITY opac.navigate.myopac "My Account">\r
-<!ENTITY navigate.myopac.title "Go to My OPAC">\r
-<!ENTITY navigate.login "Log in">\r
-<!ENTITY navigate.login.title "Log in for personalized features">\r
-<!ENTITY navigate.logout "Log out">\r
-<!ENTITY navigate.logout.title "Log out">\r
-<!ENTITY opac.navigate.selectNewOrg "Choose a different library">\r
-<!ENTITY opac.navigate.selectOrg "Choose a library to search">\r
-<!ENTITY navigate.loggedinas "You are logged in as ">\r
-<!ENTITY navigate.loggedinas.title "Logged in as...">\r
-<!ENTITY navigate.titleGroupResults "My Search Results">\r
-<!ENTITY navigate.titleResults "My Title Results">\r
-<!ENTITY navigate.title.details "My Title Details">\r
-<!ENTITY navigate.record.details "Record Details">\r
-<!-- ================================================================= \r
- Footer\r
- ================================================================= -->\r
-\r
-<!ENTITY footer.basic "Basic Catalogue (HTML only)">\r
-<!ENTITY footer.find.library "Find a Library Near Me">\r
-<!ENTITY footer.find.url "http://www.georgialibraries.org/lib/directories/pineslibdir.html">\r
-<!ENTITY footer.help.url "http://open-ils.org/dokuwiki/doku.php?id=evergreen-user:opac_help">\r
-<!ENTITY footer.help "Help">\r
-<!ENTITY footer.library.url "http://www.georgialibraries.org/public/pines.html">\r
-<!ENTITY footer.library.about "About PINES">\r
-<!ENTITY footer.union.url "http://www.galileo.usg.edu/">\r
-<!ENTITY footer.union "GALILEO">\r
-<!ENTITY footer.copyright "Copyright © 2006-2008 Georgia Public Library Service">\r
-<!-- Introduces the logo for the project -->\r
-<!ENTITY footer.logo "Powered by">\r
-<!-- ================================================================= \r
- My OPAC\r
- ================================================================= -->\r
-\r
-<!ENTITY myopac.account "Account Summary">\r
-<!ENTITY myopac.checkouts "Items Checked Out">\r
-<!ENTITY myopac.holds "Items on Hold">\r
-<!ENTITY myopac.fines "Fines">\r
-<!ENTITY myopac.preferences "Account Preferences">\r
-<!ENTITY myopac.bookbags "My Bookbags">\r
-<!-- ================================================================= \r
- Sidebar \r
- ================================================================= -->\r
-\r
-<!ENTITY sidebar.relevantSubjects.headerLabel "Relevant Subjects">\r
-<!ENTITY sidebar.relevantAuthors.headerLabel "Relevant Authors">\r
-<!ENTITY sidebar.relevantSeries.headerLabel "Relevant Series">\r
-<!ENTITY sidebar.relevantReviews.headerLabel "Reviews">\r
-<!ENTITY sidebar.quick.search "Quick Search">\r
-<!ENTITY sidebar.copy.not.found "No copy with the requested barcode was found">\r
-<!-- ================================================================= \r
- Search formats\r
- ================================================================= -->\r
-\r
-<!ENTITY opac.search.books "Books">\r
-<!ENTITY opac.search.allFormats "All Formats">\r
-<!ENTITY opac.search.largePrint "Large Print Books">\r
-<!ENTITY opac.search.audioBooks "Audiobooks">\r
-<!ENTITY opac.search.videoRecordings "Video Recordings">\r
-<!ENTITY opac.search.music "Music">\r
-<!ENTITY opac.search.electronic "Electronic Resources">\r
-<!ENTITY opac.search.nowSearching "Now Searching">\r
-<!-- ================================================================= \r
- Page Titles\r
- ================================================================= -->\r
-\r
-\r
-<!ENTITY opac.title.home "Evergreen Home">\r
-<!ENTITY opac.title.mresult "Evergreen Title Groups">\r
-<!ENTITY opac.title.rresult "Evergreen Titles">\r
-<!ENTITY opac.title.myopac "Evergreen My Account">\r
-<!ENTITY opac.title.rdetail "Evergreen Title Details">\r
-<!ENTITY opac.title.advanced "Evergreen Advanced Search">\r
-<!ENTITY opac.title.reqitems "Evergreen Request Items">\r
-<!ENTITY opac.title.cnbrowse "Evergreen Call Number Browse">\r
-\r
-\r
-<!ENTITY opac.holds.forMe "Place this hold for myself">\r
-<!ENTITY opac.holds.xulRecipient "Enter recipient barcode">\r
-<!ENTITY opac.holds.recipient "Recipient">\r
-<!ENTITY opac.holds.placeHold "Place Hold">\r
-<!ENTITY opac.holds.contactPhone "Contact telephone number">\r
-<!ENTITY opac.holds.contactEmail "Contact email address">\r
-<!ENTITY opac.holds.pickupLocation "Pickup location">\r
-<!ENTITY opac.holds.success "Hold was successfully placed">\r
-<!ENTITY opac.holds.failure "Hold was not successfully placed">\r
-<!-- ================================================================= \r
- Advanced\r
- ================================================================= -->\r
-<!ENTITY advanced.search.title "Search Input">\r
-<!ENTITY advanced.add.row "Add Search Row">\r
-<!ENTITY advanced.search.submit "Submit Search">\r
-<!ENTITY advanced.search.reset "Reset Form">\r
-<!ENTITY advanced.search.filters "Search Filters">\r
-<!ENTITY advanced.item.form "Item Form">\r
-<!ENTITY advanced.item.type "Item Type">\r
-<!ENTITY advanced.link "Advanced">\r
-<!ENTITY advanced.basic.link "Basic">\r
-<!ENTITY advanced.literary.form "Literary Form">\r
-<!ENTITY advanced.non.fiction "Non Fiction">\r
-<!ENTITY advanced.fiction "Fiction">\r
-<!ENTITY advanced.language "Language">\r
-<!ENTITY advanced.audience "Audience">\r
-<!ENTITY advanced.adult "Adult">\r
-<!ENTITY advanced.juvenile "Juvenile">\r
-<!ENTITY advanced.general "General">\r
-<!ENTITY advanced.sort.criteria "Sort Criteria">\r
-<!ENTITY advanced.search.library "Search Library">\r
-<!ENTITY advanced.relevance "Relevance">\r
-<!ENTITY advanced.pubdate "Publication date">\r
-<!ENTITY advanced.sort.asc "Ascending / A to Z">\r
-<!ENTITY advanced.sort.desc "Descending / Z to A">\r
-<!ENTITY advanced.frbrize "Group Formats and Editions">\r
-<!ENTITY advanced.go "Go">\r
-<!ENTITY advanced.biblevel "Bib Level">\r
-<!ENTITY advanced.filter.pubyear "Publication Year">\r
-<!ENTITY advanced.filter.pubyear.equals "Is">\r
-<!ENTITY advanced.filter.pubyear.before "Before">\r
-<!ENTITY advanced.filter.pubyear.after "After">\r
-<!ENTITY advanced.filter.pubyear.between "Between">\r
-<!-- ================================================================= \r
- Rdetail\r
- ================================================================= -->\r
-\r
-<!ENTITY rdetail.print "print these details">\r
-<!ENTITY rdetail.cn.barcode "Barcode">\r
-<!ENTITY rdetail.cn.location "Location">\r
-<!ENTITY rdetail.cn.hold.age "Age Hold Protection">\r
-<!ENTITY rdetail.cn.genesis "Create Date">\r
-<!ENTITY rdetail.cn.holdable "Holdable">\r
-<!ENTITY rdetail.cn.due "Due Date">\r
-<!ENTITY rdetail.cn.more "more info...">\r
-<!ENTITY rdetail.cn.less "less info">\r
-<!ENTITY rdetail.cn.hold "place hold">\r
-<!ENTITY rdetail.cn.disabled "- Disabled -">\r
-<!ENTITY rdetail.cn.note "Copy Note">\r
-<!ENTITY rdetail.cn.category "Copy Category">\r
-<!ENTITY rdetail.cn.print "Print Page">\r
-<!ENTITY rdetail.page.results "First record">\r
-<!-- Result # &common.of; # -->\r
-<!ENTITY rdetail.result "Result">\r
-<!ENTITY rdetail.start "Start">\r
-<!ENTITY rdetail.page.previous "Previous record">\r
-<!ENTITY rdetail.page.next "Next record">\r
-<!ENTITY rdetail.page.last "Last record">\r
-<!ENTITY rdetail.end "End">\r
-<!ENTITY rdetail.more "Bookbags...">\r
-<!ENTITY rdetail.bookbag.add "Add to bookbag">\r
-<!ENTITY rdetail.bookbag.create "Create a new bookbag">\r
-<!ENTITY rdetail.record.deleted "This record has been deleted from the database.\r
-We recommend that you remove this title from any bookbags it may have been added to.">\r
-<!ENTITY rdetail.none "(none)">\r
-<!ENTITY rdetail.bookbag.add.success "Item successfully added to bookbag">\r
-<!ENTITY rdetail.bookbag.name "Enter the name of the new bookbag">\r
-<!ENTITY rdetail.bookbag.create.success "Bookbag successfully created">\r
-<!ENTITY rdetail.detailMain.headerLabel "Record Summary">\r
-<!ENTITY rdetail.detailMain.subjects "Subjects">\r
-<!ENTITY rdetail.detailMain.abstract "Abstract">\r
-<!ENTITY rdetail.detailMain.viewMarc "View MARC">\r
-<!ENTITY rdetail.detailMain.hideMarc "Return to title details">\r
-<!ENTITY rdetail.author.search "Perform an author search">\r
-<!ENTITY rdetail.copyInfo.headerLabel "Copy Information">\r
-<!ENTITY rdetail.copyInfo.library "Library">\r
-<!ENTITY rdetail.copyInfo.callnumber "Callnumber">\r
-<!ENTITY rdetail.copyInfo.copylocation "Copy Location">\r
-<!ENTITY rdetail.copyInfo.local "View Copy Information for this location only">\r
-<!ENTITY rdetail.copyInfo.all "View copy information for all libraries">\r
-<!ENTITY rdetail.copyInfo.actions "Actions">\r
-<!ENTITY rdetail.copyInfo.print "Print Call Numbers for this library">\r
-<!ENTITY rdetail.copyInfo.details "Copy Details">\r
-<!ENTITY rdetail.copyInfo.browse "Browse Call Numbers">\r
-<!ENTITY rdetail.copyInfo.hold "Place Hold">\r
-<!ENTITY rdetail.extras.summary "Copy Summary">\r
-<!ENTITY rdetail.extras.browser "Shelf Browser">\r
-<!ENTITY rdetail.extras.reviews "Reviews">\r
-<!ENTITY rdetail.extras.toc "Table of Contents">\r
-<!ENTITY rdetail.extras.excerpt "Excerpt">\r
-<!ENTITY rdetail.extras.preview "Preview">\r
-<!ENTITY rdetail.extras.author.notes "Author Notes">\r
-<!ENTITY rdetail.extras.annotation "Annotation">\r
-<!ENTITY rdetail.extras.marc "MARC Record">\r
-<!ENTITY rdetail.extras.call.null "There are no call numbers for this item at this location.">\r
-<!ENTITY rdetail.extras.call.local "Local Call Numbers:">\r
-<!ENTITY rdetail.extras.preview.fulltext "Full text">\r
-<!ENTITY rdetail.extras.preview.title "See the full text of this book.">\r
-<!ENTITY rdetail.extras.preview.badge "Show a preview of this book from Google Book Search">\r
-<!ENTITY rdetail.loading "Loading copy infomation...">\r
-<!ENTITY rdetail.noneAvailable " * There are no copies in this location">\r
-<!ENTITY rdetail.summary.online "Online Resources">\r
-\r
-<!ENTITY result.sort_by "Sort Results by Relevance">\r
-<!ENTITY result.sort_by.title "Sort Results by Title">\r
-<!ENTITY result.sort_by.author "Sort Results by Author">\r
-<!ENTITY result.sort_by.pubdate "Sort Results by Publication Date">\r
-\r
-<!ENTITY result.limit2avail "Limit to Available">\r
-<!ENTITY result.info.copies "Available copies / Total copies">\r
-<!ENTITY result.info.no.items "No items with the selected format were found in this location.">\r
-<!ENTITY result.info.format.items "Listed below are all items in the catalogue with the chosen format.">\r
-<!ENTITY result.info.show "Show records for">\r
-\r
-<!ENTITY result.lowhits.few "Few hits were returned for your search.">\r
-<!ENTITY result.lowhits.zero "Zero hits were returned for your search.">\r
-<!ENTITY result.lowhits.did.you.mean "Maybe you meant:">\r
-<!ENTITY result.lowhits.formats "You will find more hits when searching all item formats:">\r
-<!ENTITY result.lowhits.formats.search "Search again with all formats?">\r
-<!ENTITY result.lowhits.related "You may also like to try these related searches:">\r
-<!ENTITY result.lowhits.expand "You may also wish to expand your search range to:">\r
-<!ENTITY result.lowhits.class "You can try searching the same terms by:">\r
-<!ENTITY result.lowhits.title "title">\r
-<!ENTITY result.lowhits.author "author">\r
-<!ENTITY result.lowhits.subject "subject">\r
-<!ENTITY result.lowhits.series "series">\r
-<!ENTITY result.lowhits.keyword "keyword">\r
-\r
-<!ENTITY result.table.keyword "View titles for this record">\r
-<!ENTITY result.table.author "Perform an Author Search">\r
-<!ENTITY result.googleBooks.browse "Browse in Google Books Search">\r
-\r
-<!ENTITY common.call.number.label "Call Number:">\r
-<!ENTITY common.isbn.label "ISBN:">\r
-<!ENTITY common.issn.label "ISSN:">\r
-<!ENTITY common.copy.barcode.label "Copy Barcode:">\r
-<!ENTITY common.hold.place "Place hold for my account">\r
-<!ENTITY common.hold.check "Checking for possibility of hold fulfillment...">\r
-<!ENTITY common.hold.create "Create / Edit a Hold">\r
-<!ENTITY common.hold.update "Update Hold">\r
-<!ENTITY common.hold.type.label "Hold Type:">\r
-<!ENTITY common.hold.volume "Volume Hold">\r
-<!ENTITY common.hold.copy "Copy Hold">\r
-<!ENTITY common.hold.advanced "Advanced Hold Options">\r
-<!ENTITY common.hold.delivery "Please select a physical location where your hold can be delivered.">\r
-<!ENTITY common.hold.exists "A hold already exists on the requested item.">\r
-<!ENTITY common.hold.exists.override "A hold already exists on the requested\r
-item. Would you like to create the hold anyway?">\r
-<!ENTITY common.hold.barred 'PATRON BARRED. Please see any notes in the\r
-"Staff Notes" section of your "My Account" page or contact your local library.'>\r
-<!ENTITY common.hold.item.invalid "This hold is no longer valid. It's likely that the\r
-target for the hold was deleted from the system. Please cancel this hold and\r
-place a new one.">\r
-<!ENTITY common.hold.patron.invalid "The patron barcode entered as the hold recipient is invalid.">\r
-<!-- Was (??), perhaps change to a button or icon? -->\r
-<!ENTITY common.help "(Help)">\r
-<!ENTITY common.phone.format.help "The phone number does not have the correct format. The expected format is XXX-YYY-ZZZZ">\r
-<!ENTITY common.hold.failed "No items were found that could fulfill the requested holds.\r
-It's possible that choosing a different format will result in a successful hold.\r
-It is also possible that you have exceeded the number of allowable holds.\r
-For further information, please consult your local librarian.">\r
-<!ENTITY common.control.click "(control-click to select multiple formats)">\r
-<!ENTITY common.format.alternatives "Acceptable Alternative Formats:">\r
-<!ENTITY common.phone.format "(XXX-YYY-ZZZZ)">\r
-<!ENTITY common.phone.enable "Enable phone notifications for this hold?">\r
-<!ENTITY common.email.enable "Enable email notifications for this hold?">\r
-<!ENTITY common.email.none "(Patron has no configured email address)">\r
-<!ENTITY common.email.set "(See <a class='classic_link' id='holds.no_email.my_account'>My Account</a> for setting your email address)">\r
-<!ENTITY common.keywords.label "Keywords:">\r
-<!ENTITY common.physical.label "Physical Description:">\r
-<!ENTITY common.series.label "Series:">\r
-<!ENTITY common.subject.label "Subject:">\r
-<!ENTITY common.title.label "Title:">\r
-<!ENTITY common.author.label "Author:">\r
-<!ENTITY common.format.label "Format:">\r
-<!ENTITY library.select "Find results in">\r
-<!ENTITY library.select.label "Choose a different library...">\r
-<!ENTITY library.select.help "Choose a library to search">\r
-<!ENTITY login.username "Username">\r
-<!ENTITY login.password.change "Change Password">\r
-<!ENTITY login.first.time "This appears to be the first time you have logged in.\r
-You will need to change your password.">\r
-<!ENTITY login.password.current.enter "Enter your current password">\r
-<!ENTITY login.password.new.enter "Enter the new password">\r
-<!ENTITY login.password.new.reenter "Re-type the new password for verification">\r
-<!ENTITY login.password.update "Update Password">\r
-<!ENTITY login.password.nomatch "Passwords do not match">\r
-<!ENTITY login.password.success "Password successfully updated">\r
-<!ENTITY login.password.strength "The password provided is not strong enough.">\r
-<!ENTITY login.barcode.inactive "The barcode used to login is marked as inactive. Please contact your local library.">\r
-<!ENTITY login.account.inactive "This account has been deactivated. Please contact your local library.">\r
-<!ENTITY login.failed "Login failed. The username or password provided was not valid.\r
-Ensure Caps-Lock is off and try again or contact your local library.">\r
-<!ENTITY button.go "Go!">\r
-<!-- ================================================================= \r
- Slimpac Simple Search\r
- ================================================================= -->\r
-\r
-<!ENTITY slimpac.language.select "Select language">\r
-\r
-<!ENTITY slimpac.start.title "Simple Search">\r
-<!ENTITY slimpac.start.nowSearching "Now searching: ">\r
-<!ENTITY slimpac.start.dynamic "Dynamic Catalogue">\r
-<!-- ================================================================= \r
- Slimpac Advanced Search\r
- ================================================================= -->\r
-\r
-<!ENTITY slimpac.advanced.language "Item Language">\r
-<!ENTITY slimpac.advanced.create_date "Record Creation Date">\r
-<!ENTITY slimpac.advanced.edit_date "Record Edit Date">\r
-\r
-<!ENTITY opac.image_provided "Image provided by">\r
-<!ENTITY vendor.name "Amazon">\r
-<!ENTITY vendor.base_link "http://amazon.com/dp/">\r
-<!-- ================================================================= \r
- Selfcheck\r
- ================================================================= -->\r
-\r
-<!ENTITY selfck.staff_login_label "Staff login">\r
-<!ENTITY selfck.staff_login "Library barcode or username">\r
-<!ENTITY selfck.staff_pw "Password">\r
-<!ENTITY selfck.submit "Submit">\r
-<!ENTITY selfck.clear "Clear">\r
-<!ENTITY selfck.patron_barcode_label "Please scan your library barcode">\r
-<!ENTITY selfck.item_barcode_label "Please scan an item to checkout or renew:">\r
-<!ENTITY selfck.barcode "Barcode">\r
-<!ENTITY selfck.title "Title">\r
-<!ENTITY selfck.author "Author">\r
-<!ENTITY selfck.due_date "Due Date">\r
-<!ENTITY selfck.remaining "Renewals Remaining">\r
-<!ENTITY selfck.cotype "Type">\r
-<!ENTITY selfck.cotype_co "Checkout">\r
-<!ENTITY selfck.cotype_rn "Renewal">\r
-<!ENTITY selfck.done "Done">\r
-<!ENTITY selfck.welcome "Welcome">\r
-<!ENTITY selfck.printing "Printing Receipt...">\r
-<!-- event messages -->\r
-\r
-<!ENTITY selfck.event.co_success "Check out succeeded">\r
-<!ENTITY selfck.event.co_unknown "An unknown event has occurred">\r
-<!ENTITY selfck.event.dupe_barcode "This item has already been checked out during this session">\r
-<!ENTITY selfck.event.patron_not_found "The patron barcode was not found">\r
-<!ENTITY selfck.event.item_noncat "The requested item is not in the catalogue">\r
-<!ENTITY selfck.event.item_nocirc "The requested item is not allowed to circulate">\r
-<!ENTITY selfck.event.already_out "The requested item is already checked out to another patron">\r
-<!ENTITY selfck.items_out "You checked out the following items">\r
-<!ENTITY selfck.org_hours "Hours of Operation">\r
-<!ENTITY selfck.org_phone "Library Phone Number">\r
-<!ENTITY selfck.day0 "Monday">\r
-<!ENTITY selfck.day1 "Tuesday">\r
-<!ENTITY selfck.day2 "Wednesday">\r
-<!ENTITY selfck.day3 "Thursday">\r
-<!ENTITY selfck.day4 "Friday">\r
-<!ENTITY selfck.day5 "Saturday">\r
-<!ENTITY selfck.day6 "Sunday">\r
-\r
+++ /dev/null
-<!-- Entities for detailed item page -->\r
-<!ENTITY common.alternate.title "Alternate title">\r
-<!ENTITY common.corporate.author "Corporate author">\r
-<!ENTITY common.meeting.name "Meeting name">\r
-<!ENTITY common.issn "ISSN">\r
-<!ENTITY common.subjects "Subjects">\r
-<!ENTITY common.general.note "General note">\r
-<!ENTITY common.contents.note "Contents note">\r
-<!ENTITY common.usage.restrictions "Usage restrictions">\r
-<!ENTITY common.performer.note "Performer note">\r
-<!ENTITY common.additional.authors "Additional authors">\r
-<!ENTITY common.preceding.entry "Preceding entry">\r
-<!ENTITY common.succeeding.entry "Succeeding entry">\r
-\r
-<!ENTITY rdetail.extras.preview "Preview">\r
-<!ENTITY rdetail.extras.performer.notes "Performer or Participant Notes">\r
-\r
-<!-- custom UWin login links -->\r
-<!ENTITY uwin.myopac.loginhelp.question "">\r
-<!ENTITY uwin.myopac.loginhelp.url "http://www.uwindsor.ca/units/leddy/leddy.nsf/LoggingIntoTheLibraryCatalogue!OpenForm">\r
-<!ENTITY uwin.myopac.loginhelp.url_text "Login help">\r
-\r
-<!-- custom UWin askON links -->\r
-<!ENTITY uwin.askON "AskON: online research help">\r
-<!ENTITY uwin.askON.title "Get live research help">\r
-<!ENTITY uwin.askON.div.id "askON_link_div">\r
-<!ENTITY uwin.askON.link.id "askON_link">\r
-<!ENTITY uwin.askON.url "http://infoservices.uwindsor.ca/askON/">\r
-\r
-<!-- custom UWin footer links -->\r
-<!ENTITY uwin.footer.databases "Find Journal Articles and Research Tools">\r
-<!ENTITY uwin.footer.databases.url "http://www.uwindsor.ca/units/leddy/leddy.nsf/JournalArticlesAndResearchToolsBySubject!OpenForm">\r
-<!ENTITY uwin.footer.help "Help">\r
-<!ENTITY uwin.footer.help.url "http://www.uwindsor.ca/units/leddy/leddy.nsf/SearchingTheCatalogue!OpenForm">\r
-<!ENTITY uwin.footer.home.leddy "Leddy Library">\r
-<!ENTITY uwin.footer.home.leddy.url "http://www.uwindsor.ca/library">\r
-<!ENTITY uwin.footer.home.law "Law Library">\r
-<!ENTITY uwin.footer.home.law.url "http://www.uwindsor.ca/units/law/PaulMartin.nsf">\r
-<!ENTITY uwin.footer.journals "Browse Journals">\r
-<!ENTITY uwin.footer.journals.url "http://sfx.scholarsportal.info/windsor/az">\r
+++ /dev/null
-\r
-<!--\r
-Language otions for languages that exist in the catalog.\r
-This file should be updated on occasion.\r
-\r
-develooper=# select code,value from config.language_map m \r
- join metabib.rec_descriptor r on (r.item_lang = m.code) group by 1,2;\r
--->\r
-\r
-<option value='eng'>English</option>\r
-<option value='fre'>French</option>\r
-<option value='spa'>Spanish</option>\r
-<option value='ger'>German</option>\r
-<option value='ita'>Italian</option>\r
-<option value='chi'>Chinese</option>\r
-<option value='jpn'>Japanese</option>\r
-<option value='kor'>Korean</option>\r
-<option value='dut'>Dutch</option>\r
-<option value='gre'>Greek, Modern (1453- )</option>\r
-<option value='lat'>Latin</option>\r
-<option value='vie'>Vietnamese</option>\r
-<option value='rus'>Russian</option>\r
-<option value='nor'>Norwegian</option>\r
-<option value='wel'>Welsh</option>\r
-<option value='pau'>Palauan</option>\r
-<option value='swe'>Swedish</option>\r
-<option value='nav'>Navajo</option>\r
-<option value='und'>Undetermined</option>\r
+++ /dev/null
-<!--
-<tr id='adv_global_trow' type='input'>
--->
-<tr id='<!--#echo var="adv_global_row_id"-->' type='input'>
- <td align='center' width='100%' nowrap='nowrap'>
-
- <!-- select the search class -->
- <select name='type' style='margin-right: 7px;'>
- <option value='keyword' selected='selected'>&common.keyword;</option>
- <option value='title'>&common.title;</option>
- <option value='author'>&common.author;</option>
- <option value='subject'>&common.subject;</option>
- <option value='series'>&common.series;</option>
- </select>
-
- <!-- select how to treat the text -->
- <select name='contains' style='margin-right: 7px;'>
- <option value='contains'>&opac.advanced.refined.contains;</option>
- <option value='nocontains'>&opac.advanced.refined.nocontains;</option>
- <option value='exact'>&opac.advanced.refined.exact;</option>
- </select>
-
- <!-- search term -->
- <input type='text' size='18' name='term' style='margin-right: 3px;' />
-
- <!-- Remove this row -->
- <button
- onclick='
- var row = this.parentNode.parentNode;
- var tbody = row.parentNode;
- if( tbody.getElementsByTagName("tr").length > 2 )
- row.parentNode.removeChild(row);'>X</button>
-
- </td>
-</tr>
-
+++ /dev/null
-<table id='adv_global_search' class='data_grid data_grid_center' width='100%'>
-
- <style>
- #adv_global_search select { width: 13em; }
- #adv_global_input_table select { width: 7em; }
- .adv_adv_link { font-size: 8pt; color: red; }
- </style>
-
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/adv_global.js'> </script>
-
- <tr style='border-bottom: none;'>
-
- <!-- Contains the user-addable(?) rows to define search class, containment and text -->
- <td valign='top' width='65%' style='border-bottom: none;'>
- <table width='100%' id='adv_global_input_table'>
-
- <thead>
- <tr><td colspan='2' align='center'>&advanced.search.title;</td></tr>
- </thead>
- <tbody id='adv_global_tbody'>
-
- <script language='javascript' type='text/javascript'>
- config.ids.common.now_searching = 'now_searching_location';
- </script>
-
- <!--#set var="adv_global_row_id" value="adv_global_trow"-->
- <!--#include virtual="adv_global_row.xml"-->
-
- <!--#set var="adv_global_row_id" value=""-->
- <!--#include virtual="adv_global_row.xml"-->
- <!--#include virtual="adv_global_row.xml"-->
-
- <!-- add a new row -->
- <tr id='adv_global_addrow'>
- <td align='center'>
- <button onclick='clearSearchBoxes();'>&advanced.search.reset;</button>
- <span style='padding-left: 10px;'> </span>
- <button id='myopac_new_global_row' onclick='advAddGblRow();'>&advanced.add.row;</button>
- <span style='padding-left: 10px;'> </span>
- <button onclick='advSubmitGlobal();'>&advanced.search.submit;</button>
- </td>
- </tr>
-
- </tbody>
- </table>
- </td>
-
-
- <td rowspan='2'>
-
- <table width='100%'>
- <thead>
- <tr><td colspan='2' align='center'>&advanced.search.filters;</td></tr>
- </thead>
- <tbody>
-
- <tr>
- <td align='right'>
- <span>&advanced.item.form;</span>
- </td>
- <td align='left'>
- <select multiple='multiple' size='3' id='adv_global_item_form'>
- </select>
- </td>
- </tr>
-
- <tr>
- <td align='right'>
- <span>&advanced.item.type;</span>
- <a id='adv_global_item_type_link_adv' class='classic_link adv_adv_link'
- href='javascript:void(0);' onclick='
- hideMe($("adv_global_item_type_basic"));
- unHideMe($("adv_global_item_type"));
- hideMe(this);
- unHideMe($("adv_global_item_type_link_basic"));
- '>&advanced.link;</a>
-
- <a id='adv_global_item_type_link_basic' class='hide_me classic_link adv_adv_link'
- href='javascript:void(0);' onclick='
- unHideMe($("adv_global_item_type_basic"));
- hideMe($("adv_global_item_type"));
- unHideMe($("adv_global_item_type_link_adv"));
- hideMe(this);
- '>&advanced.basic.link;</a>
- </td>
-
- <td align='left'>
- <select multiple='multiple' size='3' id='adv_global_item_type' class='hide_me'>
- </select>
- <select multiple='multiple' size='3' id='adv_global_item_type_basic'>
- <option value='at'>&opac.search.books;</option>
- <option value='i'>&opac.search.audioBooks;</option>
- <option value='g'>&opac.search.videoRecordings;</option>
- <option value='j'>&opac.search.music;</option>
- <option value='m'>&opac.search.electronic;</option>
- </select>
- </td>
- </tr>
-
- <tr>
- <td align='right'>
- <span>&advanced.literary.form;</span>
- <a id='adv_global_lit_form_link_adv' class='classic_link adv_adv_link'
- href='javascript:void(0);' onclick='
- hideMe($("adv_global_lit_form_basic"));
- unHideMe($("adv_global_lit_form"));
- hideMe(this);
- unHideMe($("adv_global_lit_form_link_basic"));
- '>&advanced.link;</a>
-
- <a id='adv_global_lit_form_link_basic' class='hide_me classic_link adv_adv_link'
- href='javascript:void(0);' onclick='
- unHideMe($("adv_global_lit_form_basic"));
- hideMe($("adv_global_lit_form"));
- unHideMe($("adv_global_lit_form_link_adv"));
- hideMe(this);
- '>&advanced.basic.link;</a>
- </td>
- <td align='left'>
- <select multiple='multiple' size='3' id='adv_global_lit_form' class='hide_me'>
- </select>
- <select multiple='multiple' size='3' id='adv_global_lit_form_basic'>
- <option value='0 '>&advanced.non.fiction;</option>
- <option value='1'>&advanced.fiction;</option>
- </select>
- </td>
- </tr>
-
-
- <!-- Language selector -->
- <tr>
- <td align='right'>
- <span>&advanced.language;</span>
- </td>
-
- <td align='left'>
- <select multiple='multiple' size='3' id='adv_global_lang'>
- <!--#include virtual="../../../../../common/xml/item_lang_options.xml"-->
- </select>
- </td>
- </tr>
-
- <!-- Audience selector -->
- <tr>
- <td align='right'>
- <span>&advanced.audience;</span>
-
- <a id='adv_global_audience_link_adv' class='classic_link adv_adv_link'
- href='javascript:void(0);' onclick='
- hideMe($("adv_global_audience_basic"));
- unHideMe($("adv_global_audience"));
- hideMe(this);
- unHideMe($("adv_global_audience_link_basic"));
- '>&advanced.link;</a>
-
- <a id='adv_global_audience_link_basic' class='hide_me classic_link adv_adv_link'
- href='javascript:void(0);' onclick='
- unHideMe($("adv_global_audience_basic"));
- hideMe($("adv_global_audience"));
- unHideMe($("adv_global_audience_link_adv"));
- hideMe(this);'>&advanced.basic.link;</a>
- </td>
-
- <td align='left'>
- <select multiple='multiple' size='3' id='adv_global_audience' class='hide_me'>
- </select>
- <select multiple='multiple' size='3' id='adv_global_audience_basic'>
- <option value='e '>&advanced.adult;</option>
- <option value='abcdj'>&advanced.juvenile;</option>
- <option value='fg '>&advanced.general;</option>
- </select>
- </td>
- </tr>
-
- <tr>
- <td align='right'>
- <span>&advanced.biblevel;</span>
- </td>
- <td align='left'>
- <select multiple='multiple' size='3' id='adv_global_bib_level'>
- </select>
- </td>
- </tr>
-
- <tr>
- <td align='right'>
- <span>&advanced.filter.pubyear;</span>
- </td>
- <td align='left'>
- <select id='adv_global_pub_date_type' onchange='
- if($("adv_global_pub_date_type").selectedIndex == 3)
- unHideMe($("adv_global_pub_date_2_span"));
- else
- hideMe($("adv_global_pub_date_2_span"));'>
- <option value='equals' selected='selected'>&advanced.filter.pubyear.equals;</option>
- <option value='before'>&advanced.filter.pubyear.before;</option>
- <option value='after'>&advanced.filter.pubyear.after;</option>
- <option value='between'>&advanced.filter.pubyear.between;</option>
- </select>
- <div style='margin-top:5px;'>
- <input id='adv_global_pub_date_1' type='text' size='4' maxlength='4'/>
- <span id='adv_global_pub_date_2_span' class='hide_me'>
- &common.and; <input id='adv_global_pub_date_2' type='text' size='4' maxlength='4'/>
- </span>
- </div>
- </td>
- </tr>
-
-
- <!-- copy location selector -->
- <tr id='adv_copy_location_filter_row' class='hide_me'>
- <td align='right'>&opac.advanced.copy_loc_filter;</td>
- <td align='left' id='adv_copy_location_filter_td'>
- <select size='3' id='adv_copy_location_filter_select' multiple='multiple'>
- </select>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
-
- <tr style='border-top: none;'>
- <td align='center' valign='top' style='border-top: none;'>
-
- <table style='border: none; width: 100%;'>
- <tr>
- <td align='center' width='100%'>
- <table class='' width='100%'>
-
- <thead>
- <tr>
- <td align='center' width='50%'>&advanced.sort.criteria;</td>
- <td align='center'>&advanced.search.library;</td>
- </tr>
- </thead>
-
- <tbody>
- <tr>
-
- <script language='javascript' type='text/javascript'>
- function __setsortsel() {
- var sel = $('adv_global_sort_by')
- if(sel.selectedIndex == 0) {
- $("adv_global_sort_dir").disabled = true;
- $("adv_global_sort_dir").selectedIndex = 0;
- } else $("adv_global_sort_dir").disabled = false;
- }
- </script>
-
- <td align=''>
- <select id='adv_global_sort_by' onchange='__setsortsel();'>
- <option value='rel'>&advanced.relevance;</option>
- <option value='title'>&common.title;</option>
- <option value='author'>&common.author;</option>
- <option value='pubdate'>&advanced.pubdate;</option>
- </select>
- </td>
-
-
- <td align='center' width='100%' nowrap='nowrap'>
- <b id='now_searching_location'> </b>
- </td>
-
- </tr>
-
- <tr>
-
- <td>
- <select id='adv_global_sort_dir' disabled='disabled'>
- <option value='asc'>&advanced.sort.asc;</option>
- <option value='desc'>&advanced.sort.desc;</option>
- </select>
- </td>
-
- <!-- force the enable/disable sort dir code to run -->
- <script language='javascript' type='text/javascript'>__setsortsel();</script>
-
- <td align='center'>
- <!--#include virtual="../common/libselect.xml"-->
- </td>
-
- </tr>
- <tr>
- <td align='center'>
- <span>&advanced.frbrize;</span>
- <input id='adv_group_titles' type='checkbox' />
- </td>
- <td align='center'>
- <span>&result.limit2avail;</span>
- <input type='checkbox' id='opac.result.limit2avail'/>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- </table>
- </td>
-
- </tr>
-
- <tr class='border_4_2'>
- <td colspan='2'><input type='submit' onclick='advSubmitGlobal();' value='&advanced.search.submit;'></input></td>
- </tr>
-
-</table>
-
-
+++ /dev/null
-<!--
-XXX Deprecate me
--->
-
-<table class='data_grid' width='100%'>
- <thead>
- <tr>
- <td colspan='6'>&opac.advanced.marc.title;</td>
- </tr>
- </thead>
- <tbody id='advanced.marc.tbody'>
- <tr id='advanced.marc.template'>
- <td>
- <span>&opac.advanced.marc.tag;: </span>
- <input name='advanced.marc.tag' maxlength='3' size='3' />
- </td>
- <td>
- <span>&opac.advanced.marc.subfield;: </span>
- <input name='advanced.marc.subfield' maxlength='1' size='1' />
- </td>
- <td>
- <span>&opac.advanced.marc.value;: </span>
- <input name='advanced.marc.value' size='36' />
- </td>
-
- <td>
- <input type='submit' value='X' onclick='
- var row = this.parentNode.parentNode;
- var tbody = row.parentNode;
- if(tbody.getElementsByTagName("tr").length > 2)
- tbody.removeChild(row);
- ' />
- </td>
- </tr>
- <tr id='advanced.marc.submit.row'>
- <td colspan='4' align='center'>
-
- <input name='advanced.marc.addrow' type='submit' onclick='advAddMARC();'
- value='&opac.advanced.marc.addrow;' />
-
- <input style='margin-left: 10px;'
- onclick='advMARCRun();' type='submit' value='&common.submit;' />
- </td>
- </tr>
- </tbody>
-</table>
+++ /dev/null
-<!--
-XXX Deprecate me
--->
-
-<table class='data_grid' width='95%'>
- <thead>
- <tr>
- <td colspan='6'>&opac.advanced.quick.title;</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>
- <span style='padding-right: 0px;'>&common.call.number.label;</span>
- <input id='opac.advanced.quick.cn' style='margin: 2px;' type='text' size='12' />
- <input type='submit' onclick='advCNRun();' value='&advanced.go;' />
- </td>
- <td>
- <span style='padding-right: 0px;'>&common.isbn.label;</span>
- <input id='opac.advanced.quick.isbn' style='margin: 2px;' type='text' size='13' maxlength='13' />
- <input type='submit' onclick='advISBNRun();' value='&advanced.go;' />
- </td>
- <td>
- <span style='padding-right: 0px;'>&common.issn.label;</span>
- <input id='opac.advanced.quick.issn' style='margin: 2px;' type='text' size='9' maxlength='9' />
- <input type='submit' onclick='advISSNRun();' value='&advanced.go;' />
- </td>
- </tr>
- </tbody>
-</table>
+++ /dev/null
-<body class="tundra">
- <table width='100%'>
- <tbody>
- <tr>
- <td id='main_left_cell'>
- <!--#include virtual="common/logo.xml"-->
- <!--#include virtual="common/sidebar.xml"-->
- </td>
- <td id='main_right_cell'>
- <div id='content' class=''>
-
- <!--#if expr="$OILS_PAGE!='advanced.xml'"-->
- <!--#include virtual="common/searchbar.xml"-->
- <!--#include virtual="common/statusbar.xml"-->
- <!--#endif-->
-
- <!--#include virtual="common/fonts.xml"-->
-
- <!--#include virtual="common/altcanvas.xml"-->
- <!--#include virtual="common/ilsevents.xml"-->
- <!--#include virtual="page_${OILS_PAGE}"-->
- </div>
- <br/>
- <!--#include virtual="common/tips.xml"-->
- </td>
- </tr>
- </tbody>
- </table>
- <!--#include virtual='footer.xml'-->
-</body>
+++ /dev/null
-
-<!-- These are the UI components that may be needed on any given page. The must be
- set to class += 'hide_me' by default -->
-
-<div id='not_the_canvas' xmlns:xi="http://www.w3.org/2001/XInclude">
-
- <!-- the login page -->
- <!--#if expr="$FRONT_PAGE!='true'"-->
- <!--#include virtual="login.xml"-->
- <!--#endif-->
-
- <!-- The org tree -->
- <!--#include virtual="orgtree.xml"-->
-
- <!-- ============================================================================= -->
- <!-- Register the alternate canvases -->
- <script language='javascript' type='text/javascript'>
- config.ids.altcanvas.org_tree = config.ids.common.org_container;
- config.ids.altcanvas.holds = 'holds_box';
- config.ids.altcanvas.check_holds = 'check_holds_box';
- config.ids.altcanvas.xulholds = 'xulholds_box';
- config.ids.altcanvas.loading = 'loading_alt';
- //config.ids.altcanvas.cnbrowse = 'cn_browse';
- </script>
-
- <!--#if expr="$FRONT_PAGE!='true'"-->
- <!--#include virtual="holds.xml"-->
- <!-- #include virtual="cn_browse.xml"-->
- <!--#endif-->
-
- <div id='loading_alt' class='hide_me canvas' style='margin-top: 6px;'>
- <div style='margin-top: 30px; margin-bottom: 30px; text-align: center; font-weight: 700;' class='color_3'>
- <img src='../../../../images/progressbar_green.gif' style='margin: 5px; height: 32px; width: 32px;' />
- </div>
- </div>
-
-</div>
+++ /dev/null
-<div id='cn_browse' class='hide_me cn_browser'
- style='width: 95%; text-align: center; padding: 15px;'>
- <div id='cn_browse_loading' class='cn_browse_loading hide_me'>&common.cn.loading;</div>
- <div id='cn_browse_div'>
-
-
- <div style='width: 90%; text-align: center; margin: 10px;' class='color_4'>
- <span>&common.cn.browsing;</span><b style='margin-left: 6px;' id='cn_browse_where'> </b>
- </div>
- <table class='data_grid bookshelf' width='100%'>
- <thead>
- <tr>
- <td><a id='cn_browse_next' class='classic_link'
- href='javascript:cnBrowsePrev();'><b>&common.cn.previous;</b></a></td>
- <td colspan='1' align='center'>&common.cn.shelf;</td>
- <td><a id='cn_browse_prev' class='classic_link'
- href='javascript:cnBrowseNext();'><b>&common.cn.next;</b></a></td>
- </tr>
- </thead>
- <tbody id='cn_tbody'>
- <tr id='cn_browse_row'>
- <td id='cn_browse_td' class='cn_browse_item' width='25%' valign='top'>
- <a><img height='60' width='50'
- class='cn_browse_info' name='cn_browse_pic' border='0' /></a>
- <div style='font-weight: bold;' class='cn_browse_info' name='cn_browse_cn'> </div>
- <div class='cn_browse_info'><a name='cn_browse_title' class='classic_link'> </a></div>
- <div class='cn_browse_info'><a name='cn_browse_author' class='classic_link'> </a></div>
- <div class='cn_browse_info' name='cn_browse_lib'> </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
-</div>
+++ /dev/null
-<!-- CSS shared across pages goes here -->
-
-<link type='text/css' rel='stylesheet' href="<!--#echo var='OILS_SKIN_BASE'-->/uwin/css/layout.css"/>
-
-<!-- Our font CSS's -->
-<link type='text/css' rel='stylesheet' href='<!--#echo var="OILS_CSS_BASE"-->/mediumfont.css' />
-
-<!-- Our colors -->
-<link type='text/css' rel="stylesheet" href="<!--#echo var='OILS_THEME_BASE'-->/uwin/css/colors.css" />
-
-<!-- An alternate stylesheet -->
-<link type='text/css' rel="alternate stylesheet" title='&opac.style.reddish;' href="<!--#echo var='OILS_THEME_BASE'-->/reddish/css/colors.css" />
-
-<!-- OpenSearch auto discovery -->
-<link type="application/opensearchdescription+xml"
- rel='search' title="University of Windsor Library Catalogue"
- href="http://<!--#echo var='SERVER_NAME'-->/opac/extras/opensearch/1.1/WINDSYS/WINDSYS/osd.xml" />
-
-<!-- enable Dojo date picker -->
-<style type="text/css">
- @import '/js/dojo/dojo/resources/dojo.css';
- @import '/js/dojo/dijit/themes/tundra/tundra.css';
- @import '/js/dojo/dijit/themes/tundra/tundra_rtl.css';
-</style>
+++ /dev/null
-<div id='fonts_div'>
-
- <div id='text_size_div' style='position:absolute; top: 2px; right: 6px;'>
- <span style='vertical-align: top;'>&common.textsize.title;</span>
- <span style='vertical-align: top;'><a href="javascript:void(0);" onclick="setFontSize('regular');"> &common.textsize.regular; </a></span>
- <span style='vertical-align: top;'> &common.textsize.separator; </span>
- <span style='vertical-align: top;'><a href="javascript:void(0);" onclick="setFontSize('large');"> &common.textsize.large; </a></span>
- <span style='vertical-align: top;'> <span style="font-weight:bold;">|</span> </span>
- <span style='vertical-align: top;'>&common.language;</span>
- <span id='translation_switch' dojoType="dijit.form.FilteringSelect" store="openils.I18N.localeStore"
- searchAttr="label" required="false" jsId='opacLocaleSelector'>
- <script>
- dojo.addOnLoad(function() {
- opacLocaleSelector.setValue(locale);
- dojo.connect(opacLocaleSelector, 'onChange',
- function () {
- location.href = location.href.replace(/opac\/[^\/]+\/skin/, 'opac/' + this.getValue() + '/skin');
- }
- );
- });
- </script>
- </span>
- </div>
-
-</div>
+++ /dev/null
-<select id='<!--#echo var="FORM_SEL_ID"-->' >
- <option value=''>&opac.search.allFormats;</option>
- <option value='at'>&opac.search.books;</option>
- <option value='at-d'>&opac.search.largePrint;</option>
- <option value='i'>&opac.search.audioBooks;</option>
- <option value='g'>&opac.search.videoRecordings;</option>
- <option value='j'>&opac.search.music;</option>
- <option value='m'>&opac.search.electronic;</option>
-</select>
-
+++ /dev/null
-<script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/common/js/DP_DateExtensions.js'></script>
-<div>
- <div id='xulholds_box' class='hide_me canvas' style='margin-top: 6px;'>
- <center>
- <table class='data_grid' style='margin-top: 20px;'>
- <tbody>
- <tr>
- <td>&opac.holds.xulRecipient;:</td>
- <td><input type='text' id='xul_recipient_barcode' /></td>
- <td><input type='submit' value='&common.submit;' id='xul_recipient_barcode_submit' /></td>
- <td><input type='submit' value='&common.cancel;' onclick='showCanvas();' /></td>
- <td><input type='submit' value='&common.hold.place;' id='xul_recipient_me' /></td>
- </tr>
- </tbody>
- </table>
- </center>
- </div>
-
- <div id='check_holds_box' class='hide_me canvas'
- style='margin-top: 6px; width: 100%; text-align: center'>
- <br/><br/><br/>
- <b>&common.hold.check;</b>
- </div>
-
- <div id='holds_box' class='hide_me canvas' style='margin-top: 6px;'>
-
- <br/>
- <table width='90%'>
- <tbody>
- <tr>
- <td class='holds_cell color_1'
- align='center' colspan='2'>&common.hold.create;</td>
- </tr>
- <tr>
- <td class='holds_cell'>&opac.holds.recipient;:</td>
- <td class='holds_cell' id='holds_recipient'> </td>
- </tr>
- <tr>
- <td class='holds_cell'>&common.title.label;</td>
- <td class='holds_cell' id='holds_title'> </td>
- </tr>
- <tr>
- <td class='holds_cell'>&common.author;</td>
- <td class='holds_cell' id='holds_author'> </td>
- </tr>
- <tr>
- <td class='holds_cell'>&common.format;</td>
- <td class='holds_cell' id='holds_format'> </td>
- </tr>
- <tr id='hold_physical_desc_row'>
- <td class='holds_cell'>&common.physical.label;</td>
- <td class='holds_cell' id='holds_physical_desc'> </td>
- </tr>
-
- <tr class='hide_me' id='holds_cn_row'>
- <td class='holds_cell'>&common.call.number.label;</td>
- <td class='holds_cell'><b id='holds_cn'/> </td>
- </tr>
-
- <tr class='hide_me' id='holds_copy_row'>
- <td class='holds_cell'>&common.copy.barcode.label;</td>
- <td class='holds_cell'><b id='holds_copy'/> </td>
- </tr>
-
- <tr class='hide_me' id='holds_type_row'>
- <td class='holds_cell'>&common.hold.type.label;</td>
- <td class='holds_cell hide_me' id='holds_is_cn'><b>&common.hold.volume;</b></td>
- <td class='holds_cell hide_me' id='holds_is_copy'><b>&common.hold.copy;</b></td>
- </tr>
-
- <tr>
- <td class='holds_cell'>&opac.holds.contactPhone;:</td>
- <td class='holds_cell'>
- <input id='holds_phone' size='13' maxlength='12'/>
- <span style='margin-left: 4px; font-size: 7pt;'>&common.phone.format;</span>
- </td>
- </tr>
- <tr>
- <td class='holds_cell'>&common.phone.enable;</td>
- <td class='holds_cell'>
- <input type='checkbox' id='holds_enable_phone' checked='checked'
- onchange='
- if (this.checked) $("holds_phone").disabled=false;
- else $("holds_phone").disabled = true;'/>
- </td>
- </tr>
-
- <tr>
- <td class='holds_cell'>&opac.holds.contactEmail;:</td>
- <td class='holds_cell' id='holds_email'>
- <span class='hide_me' id='holds.no_email'>
- &common.email.none;<br/>
- &common.email.set;
- </span>
- <span class='hide_me' id='holds.no_email.xul'>
- &common.email.none;
- </span>
-
- </td>
- </tr>
- <tr>
- <td class='holds_cell'>&common.email.enable;</td>
- <td class='holds_cell'>
- <input type='checkbox' id='holds_enable_email' checked='checked'/>
- </td>
- </tr>
- <!--
- <tr id='holds_depth_selector_row' class='hide_me'>
- <td class='holds_cell'>Hold Range</td>
- <td class='holds_cell'>
- <select id='holds_depth_selector'></select>
- </td>
- </tr>
- -->
- <tr>
- <td class='holds_cell'>&opac.holds.pickupLocation;</td>
- <td class='holds_cell'>
- <select id='holds_org_selector'> </select>
- </td>
- </tr>
-
- <tr>
- <td class='holds_cell'>&opac.holds.expire_time;</td>
- <td class='holds_cell'>
- <input dojoType="dijit.form.DateTextBox" size='10' maxlength='10' id='holds_expire_time' />
- </td>
- </tr>
-
- <tr>
- <td class='holds_cell'>
- &opac.holds.freeze;
- <a class='classic_link' href='javascript:alert("&opac.holds.freeze.help;");'>&common.help;</a>
- </td>
- <td class='holds_cell'>
- <input type='checkbox' id='holds_frozen_chkbox'
- onchange='
- if($("holds_frozen_chkbox").checked)
- unHideMe($("hold_frozen_thaw_row"));
- else
- hideMe($("hold_frozen_thaw_row"));
- ' />
- </td>
- </tr>
-
- <tr id='hold_frozen_thaw_row' class='hide_me'>
- <td class='holds_cell'>
- <script language='javascript' type='text/javascript'> if($('holds_frozen_chkbox').checked) unHideMe($("hold_frozen_thaw_row"));</script>
- &opac.holds.freeze.thaw_date;
- </td>
- <td class='holds_cell'>
- <input dojoType="dijit.form.DateTextBox" size='10' maxlength='10' id='holds_frozen_thaw_input' />
- </td>
- </tr>
-
- <tr id='holds_alt_formats_row_extras' class='hide_me'>
- <td colspan='2' align='center'>
- <div style='padding: 8px;'>
- <a class='classic_link' href='javascript:void(0);' style='padding: 5px;'
- onclick='unHideMe($("holds_alt_formats_row"));'>&common.hold.advanced;</a>
- </div>
- </td>
- </tr>
-
- <tr id='holds_alt_formats_row' class='hide_me'>
-
- <td class='holds_cell'>
- <div style='margin-bottom: 5px;'>
- <span>&common.format.alternatives; </span>
- <span> <a class='classic_link' style='color:red;' href='javascript:void(0);'
- onclick='alert($("holds_explain_adv").innerHTML)'>&common.help;</a></span>
- </div>
- <div>&common.control.click;</div>
- </td>
-
- <td class='holds_cell'>
- <select id='hold_alt_form_selector' multiple='multiple' style='width: 14em;'>
- <option value='at' class='hide_me'>&opac.search.books;</option>
- <option value='at-d' class='hide_me'>&opac.search.largePrint;</option>
- <option value='i' class='hide_me'>&opac.search.audioBooks;</option>
- <option value='g' class='hide_me'>&opac.search.videoRecordings;</option>
- <option value='j' class='hide_me'>&opac.search.music;</option>
- </select>
- </td>
- </tr>
-
- <tr>
- <td class='holds_cell' align='center' colspan='2'>
- <button id='holds_submit'>&opac.holds.placeHold;</button>
- <button class='hide_me' id='holds_update'>&common.hold.update;</button>
- <span style='padding: 20px;'> </span>
- <button id='holds_cancel'>&common.cancel;</button>
- </td>
- </tr>
- </tbody>
- </table>
-
- <div class='hide_me' id='holds_success'>&opac.holds.success;</div>
- <div class='hide_me' id='holds_failure'>&opac.holds.failure;</div>
- <span class='hide_me' id='holds_bad_phone'>
- &common.phone.format.help;
- </span>
-
- <span class='hide_me' id='hold_not_allowed'>
- &common.hold.failed;
- </span>
-
- </div>
-
- <span class='hide_me' id='format_words'>
- <span name='at'>&opac.search.books;</span>
- <span name='at-d'>&opac.search.largePrint;</span>
- <span name='i'>&opac.search.audioBooks;</span>
- <span name='g'>&opac.search.videoRecordings;</span>
- <span name='j'>&opac.search.music;</span>
- <span name='m'>&opac.search.electronic;</span>
- </span>
-
- <span class='hide_me' id='holds_explain_adv'>&holds.advanced_options;</span>
-
- <span class='hide_me' id='holds_pick_good_org'>&common.hold.delivery;</span>
-
- <span class='hide_me' id='hold_dup_exists'>&common.hold.exists;</span>
-
- <span class='hide_me' id='hold_dup_exists_override'>&common.hold.exists.override;</span>
-
- <span id='hold_failed_patron_barred' class='hide_me'>&common.hold.barred;</span>
-
- <span id='invalid_hold' class='hide_me'>&common.hold.item.invalid;</span>
-
- <span id='holds_invalid_recipient' class='hide_me'>&common.hold.patron.invalid;</span>
-
-</div>
+++ /dev/null
-<span class='hide_me'>
- <span id='ilsevent.1000'>&ilsevent.1000;</span>
- <span id='ilsevent.1001'>&ilsevent.1001;</span>
- <span id='ilsevent.1002'>&ilsevent.1002;</span>
- <span id='ilsevent.1200'>&ilsevent.1200;</span>
- <span id='ilsevent.5000'>&ilsevent.5000;</span>
- <span id='ilsperm.CREATE_HOLD'>&ilsperm.CREATE_HOLD;</span>
-
- <!-- Local OPAC Specific strings/events -->
- <span id='auth_session_expiring'>&opac.session_expiring;</span>
- <span id='auth_session_expired'>&opac.session_expired;</span>
- <span id='user_not_found'>&common.user_not_found;</span>
-</span>
-
+++ /dev/null
- <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/utils.js' type='text/javascript'></script>
- <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/config.js' type='text/javascript'></script>
- <script language='javascript' type='text/javascript'> SHOW_MR_DEFAULT = false; </script>
- <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/CGI.js' type='text/javascript'></script>
- <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/Cookies.js' type='text/javascript'></script>
- <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/md5.js' type='text/javascript'></script>
-
- <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/slimtree.js' type='text/javascript'></script>
-
- <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/JSON_v1.js' type='text/javascript'></script>
- <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/fmcore.js' type='text/javascript'></script>
- <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/fmgen.js' type='text/javascript'></script>
- <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/opac_utils.js' type='text/javascript'></script>
- <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/<!--#echo var="locale"-->/OrgTree.js' type='text/javascript'></script>
- <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/OrgLasso.js' type='text/javascript'></script>
- <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/org_utils.js' type='text/javascript'></script>
- <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/RemoteRequest.js' type='text/javascript'></script>
- <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/init.js' type='text/javascript'></script>
- <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/added_content.js' type='text/javascript'></script>
- <script src='https://www.google.com/jsapi' type='text/javascript' language='javascript'></script>
-
- <!-- Some global js -->
- <script language='javascript' type='text/javascript'>
-
- config.css.color_1 = "color_1";
- config.css.color_2 = "color_2";
- config.css.color_3 = "color_3";
-
-
- <!-- set up some global JS config variables, read from the Apache config -->
- var OILS_OPAC_IMAGES_HOST = null;
- <!--#if expr="$OILS_OPAC_IMAGES_HOST"-->
- OILS_OPAC_IMAGES_HOST = '<!--#echo var="OILS_OPAC_IMAGES_HOST"-->extras/ac/jacket/';
- <!--#endif -->
- var OILS_OPAC_STATIC_PROTOCOL = null;
- <!--#if expr="$OILS_OPAC_STATIC_PROTOCOL"-->
- OILS_OPAC_STATIC_PROTOCOL = '<!--#echo var="OILS_OPAC_STATIC_PROTOCOL"-->';
- <!--#endif -->
-
- <!-- builds the "Now searching: <org_unit>" text on the home page -->
- function home_init() {
- getId("home_adv_search_link").setAttribute("href", buildOPACLink({page:ADVANCED}));
- getId("home_myopac_link").setAttribute("href", buildOPACLink({page:MYOPAC}, false, true));
- }
- </script>
-
- <!-- enable Dojo date picker -->
- <script language='javascript' type="text/javascript">
-
- var djConfig = {parseOnLoad: true, isDebug: false}, lang, bidi;
-
- var locale = location.href.replace( /.+opac\/([^\/]+)\/skin.+/, '$1' );
- if (!locale) locale = '<!--#echo var="locale"-->';
-
- djConfig.locale = locale.toLowerCase();
-
- </script>
-
- <script type="text/javascript" src='/js/dojo/dojo/dojo.js'></script>
- <script type="text/javascript" src='/js/dojo/dojo/openils_dojo.js'></script>
- <script type="text/javascript" src='/js/dojo/opensrf/opensrf.js'></script>
-
- <script language="javascript" type="text/javascript">
- dojo.addOnLoad(init);
- dojo.require("dijit._Calendar");
- dojo.require("dijit.form.DateTextBox");
- dojo.require("dijit.form.FilteringSelect");
- dojo.require("dojo.date.locale");
- dojo.require("dojo.date.stamp");
- dojo.require("dojo.parser");
- dojo.require("openils.I18N");
- </script>
+++ /dev/null
-<span>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/depth_selector.js'></script>
- <span class='hide_me' id='depth_selector_span'>
- <!--#if expr="$SHOW_DEPTHSEL_TEXT='true'"-->
- <span>&library.select; </span>
- <!--#endif-->
- <select id='depth_selector' class='libselect'>
- <option value='new'>&library.select.label;</option>
- </select>
- </span>
- <span class='hide_me' id='lib_selector_span'>
- <a id='lib_selector_link' class='classic_link' href='javascript:void(0)'>&library.select.help;</a>
- </span>
-</span>
-
+++ /dev/null
-
-<div id='login_box' class='hide_me canvas' style='margin-top: 6px;'>
-
- <script language='javascript' type='text/javascript'>
- config.ids.login = {};
- config.css.login = {};
- config.ids.login.box = "login_box";
- config.ids.login.tbody = "login_tbody";
- config.ids.login.username = "login_username";
- config.ids.login.password = "login_password";
- config.ids.login.button = "login_button";
- config.ids.login.cancel = "login_cancel_button";
- config.ids.altcanvas.login = config.ids.login.box;
- </script>
- <script type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/password_reset.js'></script>
-
- <br/>
-
- <div class='login_text color_1' style='padding: 4px; text-align: center;'>
- <span>&opac.login.login;</span>
- </div>
-
- <br/>
-
- <table id='login_table' class='data_grid' style='margin-left: 20px;' width='95%'>
- <tbody id='login_tbody'>
- <tr>
- <td><span class='login_text'>&login.username;</span></td>
- <td>
- <span class='login_text'>
- <input id='login_username' type='text' size='16' />
- </span>
- </td>
- </tr>
- <tr>
- <td>
- <span class='login_text'>&common.password;</span>
- </td>
- <td>
- <span class='login_text'>
- <input id='login_password' type='password' size='16' />
- </span>
- </td>
- </tr>
- <tr><td><br/></td><td/></tr>
- <tr class='color_1'>
- <td colspan='2' align='center'>
- <span class='login_text' style='margin-right: 20px;'>
- <input type='submit' value='&common.login;' id='login_button'/>
- </span>
- <span class='login_text' style='margin-left: 20px;'>
- <input type='submit' id='login_cancel_button' value='&common.cancel;'/>
- </span>
- </td>
- </tr>
- </tbody>
- </table>
-
- <table id='change_pw_table' class='data_grid hide_me' style='margin-left: 20px;' width='95%'>
- <thead>
- <tr><td colspan='2' align='center'><b>&login.password;</b></td></tr>
- </thead>
- <tbody>
-
- <tr>
- <td colspan='2' style='padding:10px;'>
- &login.first.time;
- &common.password_criteria;
- </td>
- </tr>
-
- <tr>
- <td>&login.password.current.enter;</td>
- <td><input type='password' id='change_pw_current'/></td>
- </tr>
-
- <tr>
- <td>&login.password.new.enter;</td>
- <td><input type='password' id='change_pw_1'/></td>
- </tr>
- <tr>
- <td>&login.password.new.reenter;</td>
- <td><input type='password' id='change_pw_2'/></td>
- </tr>
- <tr><td><br/></td><td/></tr>
- <tr class='color_1'>
- <td colspan='2' align='center'>
- <span class='login_text' style='margin-right: 20px;'>
- <input type='submit' value='&login.password.update;' id='change_pw_button'/>
- </span>
- </td>
- </tr>
- </tbody>
- </table>
-
- <span id='pw_no_match' class='hide_me'>&login.password.nomatch;</span>
- <span id='pw_update_successful' class='hide_me'>&login.password.success;</span>
-
- <span id='pw_not_strong' class='hide_me'>
- &login.password.strength;
- &common.password_criteria;
- </span>
-
- <span id='patron_card_inactive_alert' class='hide_me'>&login.barcode.inactive;</span>
-
- <span id='patron_inactive_alert' class='hide_me'>&login.account.inactive;</span>
-
- <span id='patron_login_failed' class='hide_me'>&login.failed;</span>
-
-</div>
-
-
+++ /dev/null
-<div id='logo_div'>
- <script language='javascript' type='text/javascript'>config.ids.common.top_logo = "top_left_logo";</script>
- <img style='margin-right: 4px;' src='<!--#echo var="OILS_BASE"-->/images/uwin_logo_small.png' id='top_left_logo' border='0' class='logo' />
-</div>
+++ /dev/null
-
-<!-- the org tree -->
-<div id='org_container' class='hide_me canvas'>
-
- <div id='org_link_container' class='color_1'>
- <span class='org_link'>
- <a onclick='orgTreeSelector.expandAll();'
- href='javascript:void(0);'>&common.org.openAll;</a>
- </span>
- <span class='org_link'>
- <a onclick='orgTreeSelector.closeAll();'
- href='javascript:void(0);'>&common.org.closeAll;</a>
- </span>
- <span class='org_link'>
- <a onclick='showCanvas();' href='javascript:void(0);'>&common.org.cancel;</a>
- </span>
- </div>
-
- <div id='org_loading_div'><br/><span>&common.org.loading;</span></div>
- <br/>
- <div id='org_selector_tip' class='tips hide_me'><b>&common.org.note;</b>
- <span>&common.org.notetext;</span>
- </div>
- <br/>
- <div id='org_tree' class='org_tree'> </div>
- <br/>
-</div>
+++ /dev/null
-
-<!-- Searchbar for doing metarecord searches -->
-
-<div id='searchbar'>
-
- <!-- load my js -->
- <script language='javascript' type='text/javascript'>
- config.ids.searchbar = {};
- config.css.searchbar = {};
- config.ids.searchbar.text = 'search_box';
- config.ids.searchbar.submit = 'search_submit';
- config.ids.searchbar.type_selector = 'search_type_selector';
- config.ids.searchbar.depth_selector = 'depth_selector';
- config.ids.searchbar.form_selector = 'form_selector';
- config.ids.searchbar.extra_row = 'searchbar_extra';
- config.ids.searchbar.main_row = 'searchbar_main_row';
- config.ids.searchbar.table = 'searchbar_table';
- config.ids.searchbar.location_tag = 'search_location_tag_link';
- config.ids.searchbar.lib_sel_span = 'lib_selector_span';
- config.ids.searchbar.lib_sel_link = 'lib_selector_link';
- config.ids.searchbar.depth_sel_span = 'depth_selector_span';
- </script>
-
-
- <table class='color_1 color_border1' width='100%' style='border-collapse: collapse;'>
- <tbody>
- <tr>
-
- <td nowrap='nowrap' align='center' class='search_box_container color_2'>
-
- <input id='search_box' type='text' />
- <span style='padding-left: 6px;'>
- <input type='button' style='width: 40px;' id='search_submit' value='&button.go;' />
- </span>
- </td>
-
- <td nowrap='nowrap' style='padding: 3px;' align='right' >
-
- <span style='padding-right:9px;'>
- <!--
- <span>&common.type;: </span>
- -->
- <!--#include virtual="stypes_selector.xml"-->
- </span>
-
- <span style='padding-right:9px;'>
- <!--#set var='FORM_SEL_ID' value='form_selector'-->
- <!--#include virtual="format_selector.xml"-->
- </span>
-
- <!--#include virtual="libselect.xml"-->
-
- </td>
- </tr>
- </tbody>
- </table>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/search_bar.js'></script>
-</div>
-
-
-
-
-
-
+++ /dev/null
-
-<!-- Navigation bar -->
-
-<div id="sidebar_div" class="sidebar_div" xmlns:xi="http://www.w3.org/2001/XInclude">
-
- <div class='sidebar_chunk'>
-
- <div title="&navigate.home.title;"
- id='home_link_div' class="side_bar_item ">
- <a id='home_link' href='index.xml'>&navigate.home;</a>
- </div>
-
- <div title="&opac.navigate.advanced.title;"
- id='advanced_link_div' class="side_bar_item ">
- <a id='advanced_link' href='advanced.xml'>&opac.navigate.advanced;</a>
- </div>
-
- <div title="&navigate.myopac.title;"
- id='myopac_link_div' class="side_bar_item ">
- <a id='myopac_link' href='myopac/myopac.xml'>&navigate.myopac;</a>
- </div>
-
- <div title="&navigate.login.title;"
- id='login_link_div' class="side_bar_item ">
- <a id='login_link' href='javascript:void(0);'>&navigate.login;</a>
- </div>
-
- <div title="&navigate.logout.title;"
- id='logout_link_div' class="side_bar_item hide_me ">
- <a id='logout_link' href='javascript:void(0);'>&navigate.logout;</a>
- </div>
-
-
- <!-- Informational sidebar components -->
-
- <div id='logged_in_as_div' title="&navigate.loggedinas.title;" class="side_bar_item hide_me">
- <span>&navigate.loggedinas;<b id='username_dest'> </b></span>
- </div>
-
- <div id='sidebar_results_wrapper' class='hide_me border_1'>
- <div title="&navigate.titleGroupResults;"
- id='mresult_link_div' class="side_bar_item hide_me">
- <a id='sidebar_title_group_results'>&navigate.titleGroupResults;</a>
- </div>
-
- <div title="&navigate.titleResults;"
- id='result_link_div' class="side_bar_item hide_me">
- <a id='sidebar_title_results'>&navigate.titleResults;</a>
- </div>
-
- <div title="&navigate.record.details;"
- id='rdetail_link_div' class="side_bar_item hide_me">
- <span>&navigate.title.details;</span>
- </div>
- </div>
- </div>
-
- <div id='subject_tree_sidebar' class='sidebar_chunk hide_me' style='margin-top: 12px;'>
- <div id='subject_sidebar_tree_div'> </div>
- <script language='javascript' type='text/javascript'>
- removeChildren($('subject_sidebar_tree_div'));
- var subjectSidebarTree = new SlimTree(
- document.getElementById('subject_sidebar_tree_div'),
- 'subjectSidebarTree', '../../../../images/slimtree/related.jpg');
- subjectSidebarTree.addNode( 'subjectSidebarTreeRoot', -1,
- "&sidebar.relevantSubjects.headerLabel;",
- 'javascript:subjectSidebarTree.toggle(' +
- '"subjectSidebarTreeRoot");');
- </script>
- </div>
-
- <div id='author_tree_sidebar' class='sidebar_chunk hide_me'>
- <hr/>
- <div id='author_sidebar_tree_div'> </div>
- <script language='javascript' type='text/javascript'>
- removeChildren($('author_sidebar_tree_div'));
- var authorSidebarTree = new SlimTree(
- document.getElementById('author_sidebar_tree_div'),
- 'authorSidebarTree','../../../../images/slimtree/people.jpg');
- authorSidebarTree.addNode( 'authorSidebarTreeRoot', -1,
- "&sidebar.relevantAuthors.headerLabel;",
- 'javascript:authorSidebarTree.toggle(' +
- '"authorSidebarTreeRoot");');
- </script>
- </div>
-
- <div id='series_tree_sidebar' class='sidebar_chunk hide_me'>
- <hr/>
- <div id='series_sidebar_tree_div'> </div>
- <script language='javascript' type='text/javascript'>
- removeChildren($('series_sidebar_tree_div'));
- var seriesSidebarTree = new SlimTree(
- document.getElementById('series_sidebar_tree_div'),
- 'seriesSidebarTree',
- '../../../../images/slimtree/houses.jpg');
- seriesSidebarTree.addNode( 'seriesSidebarTreeRoot', -1,
- "&sidebar.relevantSeries.headerLabel;",
- 'javascript:seriesSidebarTree.toggle(' +
- '"seriesSidebarTreeRoot");');
- </script>
- </div>
-
- <div id='adv_quick_search_sidebar' class='sidebar_chunk hide_me'
- style='text-align:center; margin-top: 20px;'>
- <hr/>
- <div id='adv_quick_search'>
- <div class='adv_quick_search color_4'><b>&sidebar.quick.search;</b></div>
- <div style='margin-top: 8px;'>
- <table><tbody><tr>
- <td>
- <select id='adv_quick_type' style='width: 6em;'>
- <option value='isbn'>&opac.advanced.quick.isbn;</option>
- <option value='issn'>&opac.advanced.quick.issn;</option>
- <option id='adv_quick_type_cn' value='cn'>&opac.advanced.quick.cn;</option>
- <option value='lccn'>&opac.advanced.quick.lccn;</option>
- <option value='tcn'>&opac.advanced.quick.tcn;</option>
- <option id='adv_quick_type_cn' value='barcode'>&opac.advanced.quick.barcode;</option>
- </select>
- </td><td>
- <input type='text' id='adv_quick_text' size='16' />
- </td>
- </tr></tbody></table>
- </div>
- <script language='javascript' type='text/javascript'><![CDATA[
- dojo.addOnLoad(function() {
- if (isXUL()) {
- dojo.query('#adv_quick_type_barcode').attr('selected', 'selected');
- } else {
- dojo.query('#adv_quick_type_cn').attr('selected', 'selected');
- }
- });
- ]]>
- </script>
-
- <span class='hide_me' id='myopac.copy.not.found'>&sidebar.copy.not.found;</span>
- <div style='margin-top: 8px;' class='adv_quick_search_submit'>
- <a id='adv_quick_submit' href='javascript:advGenericSearch();' class='classic_link'>&common.submit;</a>
- </div>
- </div>
- </div>
-
- <div id='adv_marc_search_sidebar' class='sidebar_chunk hide_me'
- style='text-align:center; margin-top: 20px;'>
- <hr/>
- <div class='adv_quick_search color_4'><b>&search.marc;</b></div>
- <table style='margin: 3px; width: 100%;' id='adv_sdbar_table' class='border_4_3'>
- <tbody>
- <tr>
- <td>&search.marc.tag;</td>
- <td><input name='advanced.marc.tag' maxlength='3' size='3' /></td>
- <td>&search.marc.subfield;</td>
- <td><input name='advanced.marc.subfield' maxlength='1' size='1' /></td>
- </tr>
- <tr>
- <td>&search.marc.value;</td>
- <td colspan='3'><input name='advanced.marc.value' size='18' /></td>
- </tr>
- <tr name='crow' class='hide_me'>
- <td colspan='4' align='center'>
- <a href='javascript:void(0);' class='classic_link'
- onclick='
- var div = $("adv_marc_search_sidebar");
- if( div.getElementsByTagName("table").length > 1 )
- div.removeChild(this.parentNode.parentNode.parentNode.parentNode);'>&common.close;</a>
- </td>
- </tr>
-
- </tbody>
- </table>
- <div id='adv_marc_submit' class='adv_quick_search_submit'>
- <a style='margin-right: 4px;' class='classic_link' href='javascript:advAddMARC();'>&search.marc.add.row;</a>
- <a style='margin-left: 4px;' class='classic_link' href='javascript:advMARCRun();'>&common.submit;</a>
- </div>
- </div>
-
-
-
-
- <!-- ============================================================================= -->
- <!-- Our javascript -->
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/sidebar.js'></script>
-
- <script language='javascript' type='text/javascript'>
- config.ids.sidebar = {};
- config.css.sidebar = {};
- config.names.sidebar = {};
- config.css.sidebar.item = {};
- config.ids.sidebar.home = 'home_link_div';
- config.ids.sidebar.advanced = 'advanced_link_div';
- config.ids.sidebar.myopac = 'myopac_link_div';
- config.ids.sidebar.prefs = 'prefs_link_div';
- config.ids.sidebar.mresult = 'mresult_link_div';
- config.ids.sidebar.rresult = 'result_link_div';
- config.ids.sidebar.rdetail = "rdetail_link_div";
- config.ids.sidebar.login = 'login_link';
- config.ids.sidebar.logout = 'logout_link';
- config.ids.sidebar.logoutbox = 'logout_link_div';
- config.ids.sidebar.loginbox = 'login_link_div';
- config.ids.sidebar.logged_in_as = 'logged_in_as_div';
- config.ids.sidebar.username_dest = 'username_dest';
- config.ids.sidebar.subject = 'subject_sidebar';
- config.ids.sidebar.subject_item = 'subject_item';
- config.ids.sidebar.author = 'author_sidebar';
- config.ids.sidebar.author_item = 'author_item';
- config.ids.sidebar.series = 'series_sidebar';
- config.ids.sidebar.series_item = 'series_item';
-
- config.ids.sidebar.home_link = 'home_link'
- config.ids.sidebar.advanced_link = 'advanced_link'
- config.ids.sidebar.myopac_link = 'myopac_link'
-
- config.names.sidebar.subject_item = 'subject_item';
- config.names.sidebar.author_item = 'author_item';
- config.names.sidebar.series_item = 'series_item';
-
- config.css.encircled = 'encircled';
- </script>
-
-</div>
-
+++ /dev/null
-
-<div id='statusbar' style='margin-bottom: 6px; margin-top: 6px;'>
-
- <table width='100%'>
- <tbody>
- <tr>
- <td align='left'>
- <b>
- <span style='padding: 1px; ' id='now_searching_location'> </span>
- </b>
- <i id='including_results_for' class='hide_me'>
- <span>&status.results;</span> <b id='including_results_location'> </b>
- </i>
- </td>
- <td align='right'>
- <!--#if expr="$OILS_PAGE='rresult.xml' || $OILS_PAGE='mresult.xml'"-->
- <!--#include virtual="../result/filtersort.xml" -->
- <!--#endif -->
- </td>
- </tr>
- </tbody>
- </table>
-
- <script language='javascript' type='text/javascript'>
- config.ids.common.now_searching = 'now_searching_location';
- </script>
-
-</div>
+++ /dev/null
-<select id='search_type_selector'>
- <option value='keyword' selected='selected'>&common.keyword;</option>
- <option value='title'>&common.title;</option>
- <option value='title' id='jtitle'>&common.journal.title;</option>
- <option value='author'>&common.author;</option>
- <option value='subject'>&common.subject;</option>
- <option value='series'>&common.series;</option>
-</select>
-
+++ /dev/null
-
-<div id='tips' class='tips hide_me'>
- <div class='hide_me'>
- <span>&common.tips.tip1;</span>
- <span>&common.tips.tip2;</span>
- </div>
- <span style="font-weight: bold;">&tips.label; </span>
-</div>
+++ /dev/null
-<div id='copyright_block'>\r
- <div id='footer_links'>\r
- <span class='footer_link'>\r
- <a target='_blank' class='classic_link'\r
- href='http://windsor.concat.ca/opac/en-CA/extras/slimpac/start.html'>Basic Catalogue (HTML only)</a>\r
- </span>\r
- <span> | </span> \r
- <span class='footer_link'>\r
- <a target='_blank' class='classic_link'\r
- href='&uwin.footer.home.leddy.url;'>&uwin.footer.home.leddy;</a>\r
- </span>\r
- <span> | </span>\r
- <span class='footer_link'>\r
- <a target='_blank' class='classic_link'\r
- href='&uwin.footer.home.law.url;'>&uwin.footer.home.law;</a>\r
- </span>\r
- <span> | </span>\r
- <span class='footer_link'>\r
- <a target='_blank' class='classic_link'\r
- href='&uwin.footer.help.url;'>&uwin.footer.help;</a>\r
- </span>\r
- <span> | </span>\r
- <span class='footer_link'>\r
- <a target='_blank' class='classic_link'\r
- href='&uwin.footer.journals.url;'>&uwin.footer.journals;</a>\r
- </span> \r
- <span> | </span>\r
- <span class='footer_link'>\r
- <a target='_blank' class='classic_link'\r
- href='&uwin.footer.databases.url;'>&uwin.footer.databases;</a>\r
- </span> \r
- </div>\r
- <div id='copyright_text'>\r
- <span>&footer.copyright;</span>\r
- </div>\r
- <div id='footer_logo'>&footer.logo;\r
- <a href='http://open-ils.org'><img style='border:none; vertical-align:middle;' \r
- src='../../../../images/eg_tiny_logo.jpg'/></a>/A service of\r
- <a href='http://projectconifer.ca'><img style='border:none; vertical-align:middle;' src='../local/images/conifer_tiny_logo.jpg'/></a>\r
- </div>\r
-</div>\r
+++ /dev/null
-<head>
- <!-- Set the page title -->
-
- <!--#include virtual="common/css_common.xml"-->
-
- <title>&<!--#echo var="OILS_TITLE"-->;</title>
- <link rel="unapi-server" type="application/xml" title="unAPI" href="http://<!--#echo var='HTTP_HOST'-->/opac/extras/unapi"/>
-
- <!--#if expr="$slimpac!='true'"-->
- <!--#include virtual="common/js_common.xml"-->
- <!--#endif-->
-
-</head>
+++ /dev/null
-
-<div id='canvas_main' class='home_search canvas'
- style='-moz-border-radius: 6px; padding: 6px; margin-top: 65px;'
- xmlns="http://www.w3.org/1999/xhtml" xmlns:xi="http://www.w3.org/2001/XInclude">
-
- <!-- load my js -->
- <script language='javascript' type='text/javascript'
- src="<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/depth_selector.js"> </script>
- <script language='javascript' type='text/javascript'
- src="<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/search_bar.js"> </script>
-
- <script language='javascript' type='text/javascript'>
- config.ids.searchbar = {};
- config.css.searchbar = {};
- config.ids.searchbar.text = 'search_box';
- config.ids.searchbar.submit = 'search_submit';
- config.ids.searchbar.type_selector = 'search_type_selector';
- config.ids.searchbar.depth_selector = 'depth_selector';
- config.ids.searchbar.form_selector = 'form_selector';
- config.ids.searchbar.extra_row = 'searchbar_extra';
- config.ids.searchbar.main_row = 'searchbar_main_row';
- config.ids.searchbar.table = 'searchbar_table';
- config.ids.searchbar.location_tag = 'search_location_tag_link';
- config.ids.searchbar.lib_sel_span = 'lib_selector_span';
- config.ids.searchbar.lib_sel_link = 'lib_selector_link';
- config.ids.searchbar.depth_sel_span = 'depth_selector_span';
- </script>
-
-
- <div style='width: 100%; text-align: center'>
- <img src='<!--#echo var="OILS_BASE"-->/images/uwin_logo.png' />
- </div>
-
- <style>.rowpad { height: 20px; }</style>
-
- <table id='frontsearch_table' height='100%' width='100%'
- style='margin-top: 10px; border-collapse: collapse;'>
-
- <tbody>
-
- <tr class='color_3'>
-
- <script language='javascript' type='text/javascript'>
- config.ids.common.now_searching = 'now_searching_location';
- </script>
-
- <td style='padding: 6px;' class='border_5' align='center'>
- <span>&opac.search.nowSearching;</span>
- <span style='padding: 1px;' id='now_searching_location'> </span>
- </td>
- </tr>
-
-
- <tr class='rowpad'><td></td></tr>
-
- <tr>
- <td nowrap='nowrap' align='center' class='color_1 border_5'>
- <input id='search_box' style='width: 300px;' type='text' />
- <span style='padding-left: 6px;'>
- <input type='button' style='width: 40px;' id='search_submit' value='Go!' />
- </span>
- </td>
- </tr>
-
- <tr class='rowpad'><td></td></tr>
-
- <tr class='color_3 border_5'>
-
- <td nowrap='nowrap' align='center' style='padding: 4px;'>
-
- <span style='padding-right:40px;'>
- <!--#include virtual="../common/stypes_selector.xml"-->
- </span>
-
- <span>
- <!--
- <span>&common.format;: </span>
- -->
- <!--#set var='FORM_SEL_ID' value='form_selector'-->
- <!--#include virtual="../common/format_selector.xml"-->
- </span>
-
- </td>
- </tr>
-
- <tr class='rowpad'><td></td></tr>
-
- <tr class='color_1 border_5'>
- <td align='center' style='padding: 4px; padding-bottom: 6px;'>
- <span style='padding-right: 15px;'>
- <a id='home_adv_search_link' href='javascript:void(0);'>&opac.navigate.advanced;</a></span>
- <span>
- <span class='hide_me' id='depth_selector_span'>
- <select id='depth_selector' >
- <option value='new'>&opac.navigate.selectNewOrg;...</option>
- </select>
- </span>
- <span class='hide_me' id='lib_selector_span'>
- <a id='lib_selector_link' href='javascript:void(0)'>&opac.navigate.selectOrg;</a>
- </span>
- </span>
- <span style='padding-left: 15px;'>
- <a id='home_myopac_link' href='javascript:void(0);'>&opac.navigate.myopac;</a>
- </span>
- </td>
- </tr>
-
- <!-- locale picker -->
- <tr><td align='center' valign='bottom' style='padding-top:10px;'>
- <span style='vertical-align: top;'>&common.language;</span>
- <span dojoType="dijit.form.FilteringSelect" store="openils.I18N.localeStore"
- searchAttr="label" required="false" jsId='opacLocaleSelector'>
- <script>
- dojo.addOnLoad(function() {
- opacLocaleSelector.setValue(locale);
- dojo.connect(opacLocaleSelector, 'onChange',
- function () {
- location.href = location.href.replace(/opac\/[^\/]+\/skin/, 'opac/' + this.getValue() + '/skin');
- }
- );
- });
- </script>
- </span>
- </td></tr>
-
- </tbody>
- </table>
-
-</div>
-
-
-
-
-
-
+++ /dev/null
-<body class="tundra">
-
- <noscript>
- <style type="text/css">#toptable { display: none; }</style>
- <p style="font-size: 1.3em; padding: 3em; text-align: center;">
- &home.js.disabled;
- </p>
- </noscript>
-
- <table id='toptable' width='100%' style='border-collapse: collapse;'>
- <tbody>
- <tr>
- <td width='10%'> </td>
- <td width='80%'>
- <div id='canvas'>
- <!--#include virtual="../common/altcanvas.xml"-->
- <!--#include virtual="homesearch.xml"-->
- </div>
- </td>
- <td width='10%'> </td>
- </tr>
- </tbody>
- </table>
- <script language='javascript' type='text/javascript'>isFrontPage = true;</script>
- <script language="javascript" type='text/javascript'>
- dojo.addOnLoad(home_init);
- try {
- document.getElementById('toptable').style.display = 'table';
- } catch(e) {
- try {
- document.getElementById('toptable').style.display = '';
- } catch(ee) {}
- }
- </script>
- <!--#include virtual='../footer.xml'-->
-</body>
-
-
+++ /dev/null
-
-<xsl:stylesheet version="1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
- <xsl:output method="html" indent="yes" encoding="utf-8"/>
- <xsl:template match="/">
- <xsl:copy-of select='/*[local-name()="html"]'/>
- </xsl:template>
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- Loads the environment -->
-<!--#include virtual="setenv.xml"-->
-
-<!DOCTYPE html PUBLIC
- "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [
- <!--#include virtual="/opac/locale/${locale}/opac.dtd"-->
- <!--#include virtual="/opac/locale/${locale}/opac_conifer.dtd"-->
-]>
-
-
-<html xmlns='http://www.w3.org/1999/xhtml'>
- <!--#include virtual="header.xml"-->
- <!--#if expr="$OILS_PAGE='index.xml'"-->
- <!--#include virtual="home/index_body.xml"-->
- <!--#else-->
- <!--#include virtual="body.xml"-->
- <!--#endif-->
-</html>
-
+++ /dev/null
-
-<div id='myopac_bookbag_div' class='hide_me' xmlns:xi="http://www.w3.org/2001/XInclude" >
-
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/container.js'> </script>
-
- <div id='myopac_delete_bookbag_warn' class='hide_me'>
- &myopac.delete.bookbag;
- </div>
-
- <div style='text-align: center; font-weight: bold;'
- class='hide_me' id='myopac_bookbags_none'>&myopac.no.bookbags;</div>
-
- <div style='width: 99%; text-align: center; margin-bottom: 10px;'>
- <b>&myopac.bookbags.title;</b>
- <!--
- <a class='classic_link' style='margin-left: 5px; font-size: 8pt;'
- href='javascript:alert($("myopac_bb_what_are").innerHTML);'>(What are Bookbags?)</a>
- -->
- </div>
-
- <table width='100%' class='data_grid data_grid_center hide_me' id='myopac_bookbag_table'>
- <thead>
- <tr><td>&common.name;</td><td>&myopac.bookbag.items;</td><td>&myopac.bookbag.shared;</td><td>&myopac.bookbag.toggle;</td><td>&myopac.bookbag.delete;</td></tr>
- </thead>
- <tbody id='myopac_bookbag_tbody'>
- <tr id='myopac_bookbag_tr'>
- <td>
- <a href='javascript:void(0);' class='classic_link' name='myopac_expand_bookbag'> </a>
- </td>
- <td><span name='myopac_bookbag_item_count'> </span> <span> &myopac.items;</span></td>
- <td>
- <span name='myopac_bb_published_no' class='hide_me'>&common.no;</span>
- <span name='myopac_bb_published_yes' class='hide_me'>&common.yes;</span>
- <a name='myopac_bb_published_view' class='classic_link hide_me'>&myopac.view;</a>
- <a name='myopac_bb_published_atom' class='unadorned_link hide_me'>
- <img border="0" src="/opac/images/small-rss.png" title="&myopac.atom.feed;" alt="&myopac.atom.feed;"/>
- </a>
- <br/><a name='myopac_bb_exp_refworks' class='classic_link hide_me'>&myopac.bookbag.refworks;</a>
- </td>
-
- <td>
- <a name='myopac_bb_make_unpublished' class='classic_link hide_me'>&myopac.bookbag.hide;</a>
- <a name='myopac_bb_make_published' class='classic_link hide_me'>&myopac.bookbag.share;</a>
- </td>
-
- <td>
- <a class='classic_link' href='javascript:void(0);' name='myopac_container_delete'>&myopac.delete;</a>
- </td>
- </tr>
- </tbody>
- </table>
-
- <table width='100%' class='data_grid data_grid_center' style='margin-top: 10px;'>
- <thead>
- <tr><td>&myopac.bookbag.create;</td></tr>
- </thead>
- <tbody>
- <tr>
- <td>
- <span style='padding-right: 5px;'>&myopac.bookbag.naming;</span>
- <input id='myopac_bookbag_new_name' type='text' />
- </td>
- </tr>
- <tr>
- <td>
- <span style='padding: 5px;'>&myopac.bookbag.share;</span>
- <a class='classic_link' href='javascript:alert($("bb_publish_text").innerHTML);'><b>&common.help;</b></a>
- <span>&common.yes;</span> <input type='radio' name='bb_public' id='bb_public_yes'/>
- <span>&common.no;</span> <input type='radio' name='bb_public' id='bb_public_no' checked='checked'/>
- <input style='padding-left: 10px;' onclick='myOPACCreateBookbag();'
- type='submit' value='&common.submit;' />
- </td>
- </tr>
- </tbody>
- </table>
-
- <!--
- <div style='overflow: auto; max-height: 200px;' class='hide_me'>
- -->
- <div style='width: 99%; text-align: center'> <b id='myopac_bookbag_items_name'> </b></div>
-
- <div class='hide_me' style='width: 100%; text-align: center; font-weight: 700; margin-top: 10px;'
- id='myopac_bookbag_no_items'>&myopac.bookbag.no.items;</div>
-
- <table width='100%' class='hide_me data_grid data_grid_center' id='myopac_bookbag_items_table'>
- <thead>
- <tr> <td>&common.title;</td> <td>&common.authors;</td> <td>&myopac.bookbag.remove;</td> </tr>
- </thead>
- <tbody id='myopac_bookbag_items_tbody'>
- <tr id='myopac_bookbag_items_row'>
- <td> <a name='myopac_bookbag_items_title' class='classic_link'> </a> </td>
- <!--
- <td> <a name='myopac_bookbag_items_author' class='classic_link'> </a> </td>
- -->
- <td name='myopac_bookbag_items_author'> </td>
- <td><a name='myopac_bookbag_items_remove' class='classic_link'>&myopac.remove.link;</a></td>
- </tr>
- </tbody>
- </table>
- <!--</div>-->
-
- <span id='bb_publish_text' class='hide_me'>
- &myopac.publish.text;
- </span>
-
- <span id='myopac_remove_bb_item_confirm' class='hide_me'>
- &myopac.item.confirm;
- </span>
-
- <span id='myopac_make_published_confirm' class='hide_me'>
- &myopac.publish.confirm;
- </span>
-
- <span id='myopac_make_unpublished_confirm' class='hide_me'>
- &myopac.unpublish.confirm;
- </span>
-
- <span id='myopac_bb_update_success' class='hide_me'>
- &myopac.update.success;
- </span>
-
- <span id='bb_create_warning' class='hide_me'>
- &myopac.create.warning;
- </span>
-
- <span id='myopac_bb_what_are' class='hide_me'>
- &myopac.describe.bookbags;
- </span>
-
- <span class='hide_me' id='bb_update_success'>
- &myopac.updated.success;
- </span>
-
-</div>
-
-
+++ /dev/null
-
-<div id='myopac_checked_div' xmlns:xi="http://www.w3.org/2001/XInclude" >
-
- <!--
- <script language='javascript' type='text/javascript' src='<!||#echo var="OILS_JS_BASE"||>/Date.W3CDTF.js'/>
- -->
-
- <table width='100%'><tbody>
- <tr>
- <td aligh='left' class='data_grid'>
- <!--
- Total items out: <b id='mo_items_out_count' style='padding-right: 20px;'>0</b>
- -->
- &myopac.checked.out; <b id='mo_items_out_count' style='padding: 5px;'>0</b> /
- &myopac.checked.overdue; <b id='mo_items_overdue_count' style='padding: 5px;'>0</b>
- </td>
- <td align='right'>
- <button onclick='myOPACRenewSelected();' id='mo_renew_button' disabled='disabled'>&myopac.checked.renew;</button>
- </td>
- </tr>
- <tr id='my_renewing' class='hide_me'><td align='center'><b>&myopac.checked.renewing;</b></td></tr>
- </tbody></table>
-
- <table width='100%' class='light_border data_grid'>
-
- <thead class='color_3'>
- <tr>
- <td width='45%'>&common.title;</td>
- <td width='20%'>&common.author;</td>
- <td width='10%' nowrap='nowrap' align='center'>&myopac.fines.due;</td>
- <td width='10%' nowrap='nowrap' align='center'>&myopac.checked.renew.remaining;</td>
- <td width='15%'>&common.select;
- (<a id='myopac_select_all_checked' onclick='myopacSelectAllChecked();'
- class='classic_link' href='javascript:void(0);'>&common.all;</a>/<a id='myopac_select_none_checked'
- onclick='myopacSelectNoneChecked();' class='classic_link' href='javascript:void(0);'>&common.none;</a>)
- </td>
- </tr>
- </thead>
-
-
- <tbody id='myopac_checked_tbody'>
-
- <tr id='myopac_checked_none' class='hide_me'>
- <td colspan='10' align='center'><b>&myopac.checked.noitems;</b></td>
- </tr>
-
-
- <tr id='myopac_checked_loading'><td>&common.loading;</td></tr>
-
- <tr id='myopac_checked_row' class='light_border hide_me'>
-
- <td name='myopac_checked_title' class='light_border'>
- <a href='javascript:void(0);' name='myopac_checked_title_link'> </a>
- </td>
-
- <td name='myopac_checked_author' class='light_border'>
- <a href='javascript:void(0);' name='myopac_checked_author_link'> </a>
- </td>
-
- <td align='center' name='myopac_checked_due' class='light_border'> </td>
- <td align='center' name='myopac_checked_renewals' class='light_border'> </td>
-
- <!--
- <td align='center' name='myopac_checked_renew' class='light_border'>
- <a style='text-decoration:underline;' href='javascript:void(0);'
- name='myopac_checked_renew_link' class='class_link'>Renew</a>
- </td>
- -->
-
- <td align='center'><input type='checkbox' name='selectme'/></td>
-
- </tr>
- </tbody>
- </table>
-
- <div id='non_cat_circs_div' class='hide_me'>
- <br/>
- <div style='text-align: center'><b>&myopac.common.other.circ;</b></div>
- <table class='data_grid' width='100%'>
- <thead>
- <tr>
- <td>&myopac.checked.circ.lib;</td>
- <td>&myopac.checked.item.type;</td>
- <td>&myopac.checked.circ.time;</td>
- </tr>
- </thead>
- <tbody id='non_cat_circs_tbody'>
- <tr id='non_cat_circs_row'>
- <td name='circ_lib'/>
- <td name='item_type'/>
- <td name='circ_time'/>
- </tr>
- </tbody>
- </table>
- </div>
-
- <div id='myopac_renew_success' class='hide_me'>&myopac.checked.renew.success;</div>
-
- <span class='hide_me' id='myopac_renew_confirm'>&myopac.checked.renew.confirm;</span>
-
- <span class='hide_me' id='myopac_renew_fail'>&myopac.checked.renew.fail;</span>
-
- <span class='hide_me' id='myopac_renew_fail2'>&myopac.checked.renew.fail2;</span>
-
-</div>
-
-
+++ /dev/null
-
-<div id='myopac_fines_div' xmlns:xi="http://www.w3.org/2001/XInclude" >
-
- <table width='100%' class='data_grid data_grid_center'>
-
- <thead class='color_3'>
- <tr><td colspan='3' style='padding: 6px'><b>&myopac.fines.title;</b></td></tr>
- <tr>
- <td width='33%'>&myopac.fines.owed;</td>
- <td width='33%'>&myopac.fines.paid;</td>
- <td width='33%'>&myopac.fines.balance;</td>
- </tr>
- </thead>
-
- <tbody id='myopac_fines_summary_tbody'>
- <tr id='myopac_fines_summary_loading'><td>&myopac.fines.status;</td></tr>
- <tr id='myopac_fines_summary_row' class='hide_me'>
- <td id='myopac_fines_summary_total' >&common.currency;</td>
- <td id='myopac_fines_summary_paid' >&common.currency;</td>
- <td id='myopac_fines_summary_balance' style='color:red;font-weight: bold;'>&common.currency;</td>
- </tr>
- </tbody>
- </table>
-
- <!--
- <div id='accrue_explanation' class='hide_me'>
- <span>Transactions whose balances are marked with a</span>
- <span style='color:red; font-weight: bold'>*</span>
- <span>will continue to accrue fines until the checked out item is returned.</span>
- </div>
- -->
-
-
- <!-- Table for circulation transactions only -->
- <div id='myopac_circ_trans_div' class='hide_me'>
- <br/><hr/><br/>
- <table width='100%' class='data_grid data_grid_center' id='myopac_circ_trans_table'>
- <thead>
- <tr><td colspan='10' style='padding: 6px'><b>&myopac.fines.overdue;</b></td></tr>
- <tr>
- <td>&common.title;</td>
- <td>&common.author;</td>
- <td>&myopac.fines.checkout;</td>
- <td>&myopac.fines.due;</td>
- <td>&myopac.fines.returned;</td>
- <td>&myopac.fines.balance;</td>
- </tr>
- </thead>
- <tbody id='myopac_circ_trans_tbody'>
- <tr id='myopac_circ_trans_row'>
- <td><a class='classic_link' name='myopac_circ_trans_title'> </a></td>
- <td name='myopac_circ_trans_author'> </td>
- <td name='myopac_circ_trans_start'> </td>
- <td name='myopac_circ_trans_due'> </td>
- <td name='myopac_circ_trans_finished'><span style='color:red;'>&myopac.fines.accruing;</span></td>
- <td>
- <span style='color: red; font-weight: bold;'
- name='myopac_circ_trans_balance'>&common.currency;</span>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
-
- <!-- Table for all non-circulation transactions -->
- <div id='myopac_trans_div' class='hide_me'>
- <br/><hr/><br/>
- <table width='100%' class='data_grid data_grid_center' id='myopac_trans_table'>
- <thead>
- <tr><td colspan='8' style='padding: 6px'><b>&myopac.fines.other;</b></td></tr>
- <tr>
- <td width='12%'>&myopac.fines.time.start;</td>
- <td width='12%'>&myopac.fines.time.paid;</td>
- <td width='12%'>&myopac.fines.owed.initial;</td>
- <td width='12%'>&myopac.fines.paid.amount;</td>
- <td width='12%'>&myopac.fines.balance;</td>
- <td width='12%'>&myopac.fines.type;</td>
- </tr>
- </thead>
-
- <tbody id='myopac_trans_tbody'>
- <tr id='myopac_trans_row'>
- <td name='myopac_trans_start'> </td>
- <td name='myopac_trans_last_payment'> </td>
- <td name='myopac_trans_init_amount'>&common.currency;</td>
- <td name='myopac_trans_total_paid'>&common.currency;</td>
- <td style='color:red; font-weight: bold;'>
- <span name='myopac_trans_balance_recur' class='hide_me'> * </span>
- <span name='myopac_trans_balance'>&common.currency;</span>
- </td>
- <td name='myopac_trans_bill_type'> </td>
- </tr>
- </tbody>
- </table>
- </div>
-
- <br/>
-
-</div>
-
-
+++ /dev/null
-
-<div id='myopac_holds_div' xmlns:xi="http://www.w3.org/2001/XInclude" >
-
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/holds.js'> </script>
-
- <table width='100%'>
- <tbody><tr><td width='100%' align='right'>
- <select id='myopac_holds_actions' onchange='myopacDoHoldAction();'>
- <option id='myopac_holds_actions_none' value=''>-- &myopac.holds.actions; --</option>
- <option value='freeze'>&myopac.holds.freeze_selected;</option>
- <option value='thaw'>&myopac.holds.thaw_selected;</option>
- <option value='thaw_date'>&myopac.holds.thaw_date_selected;</option>
- <option value='cancel'>&myopac.holds.cancel_selected;</option>
- </select>
- </td></tr></tbody>
- <script language='javascript' type='text/javascript'>$('myopac_holds_actions_none').selected = true;</script>
- </table>
-
- <span id='myopac.holds.cancel.confirm' class='hide_me'>&myopac.holds.cancel.confirm;</span>
- <span id='myopac.holds.freeze.confirm' class='hide_me'>&myopac.holds.freeze.confirm;</span>
- <span id='myopac.holds.thaw.confirm' class='hide_me'>&myopac.holds.thaw.confirm;</span>
- <span id='myopac.holds.thaw_date.confirm' class='hide_me'>&myopac.holds.thaw_date.confirm;</span>
- <span id='myopac.holds.freeze.select_thaw' class='hide_me'>&myopac.holds.freeze.select_thaw;</span>
-
- <table width='100%' id='myopac_holds_processing' class='hide_me'>
- <tr><td>&myopac.holds.processing;</td></tr>
- </table>
-
- <div id='myopac_holds_thaw_date_form' class='hide_me'>
- <div id='myopac_holds_freeze_select_thaw'>&myopac.holds.freeze.select_thaw;</div>
- <p>
- <input dojoType="dijit.form.DateTextBox" size='10' maxlength='10' type='text' id='myopac_holds_thaw_date_input' />
- </p>
- <p>
- <button onclick='myopacApplyThawDate();'>&common.submit;</button>
- </p>
- </div>
-
- <table width='100%' class='light_border data_grid data_grid_center' id='myopac_holds_main_table'>
-
- <thead class='color_3'>
- <tr>
- <td width=''>&common.title;</td>
- <td width=''>&common.author;</td>
- <td>&myopac.holds.formats;</td>
- <td>&myopac.holds.location;</td>
- <td>&common.status;</td>
- <td class='hide_me' id='myopac_holds_estimated_wait_column'>&myopac.holds.estimated_wait;</td>
- <td>&myopac.holds.unfrozen;</td>
- <td>&myopac.holds.frozen.until;</td>
- <td>&opac.holds.expire_time;</td>
- <td width=''>&common.select;
- (<a id='myopac_select_all_holds' onclick='myopacSelectAllHolds();'
- class='classic_link' href='javascript:void(0);'>&common.all;</a>/<a id='myopac_select_none_holds'
- onclick='myopacSelectNoneHolds();' class='classic_link' href='javascript:void(0);'>&common.none;</a>)
- </td>
-
- <td>&myopac.holds.edit;</td>
- </tr>
- </thead>
-
- <tbody id='myopac_holds_tbody'>
-
- <tr id='myopac_holds_none' class='hide_me'>
- <td colspan='10'><b>&myopac.holds.status.none;</b></td>
- </tr>
- <tr id='myopac_holds_loading'><td>&myopac.loading;</td></tr>
-
- <tr id='myopac_holds_row' class='hide_me'>
-
- <td name='myopac_holds_title'>
- <a href='javascript:void(0);' name='myopac_holds_title_link'> </a>
- <div name='vol_copy' style='border: 1px solid #808080; width:98%; margin-top: 2px;' class='hide_me'>
- <div style='font-size: 90%' name='volume'/>
- <div style='font-size: 90%' name='copy'/>
- </div>
- </td>
-
- <td name='myopac_holds_author'>
- <a href='javascript:void(0);' name='myopac_holds_author_link'> </a>
- </td>
-
- <td name='myopac_holds_formats'> </td>
-
- <td name='myopac_holds_location'></td>
- <td>
- <span class='hide_me' name='hold_status_waiting'>&myopac.holds.status.waiting;</span>
- <span class='hide_me' name='hold_status_transit'>&myopac.holds.status.intransit;</span>
- <span class='hide_me' name='hold_status_available'><b style='color:red'>&myopac.holds.status.available;</b></span>
- <span class='hide_me' name='hold_qstats'></span>
- </td>
- <td class='hide_me' name='myopac_holds_estimated_wait'/>
-
- <td>
- <!-- These characaters do not display in Internet Exploror, *sigh*
- <span name='myopac_hold_unfrozen_false' class='x_mark'>✗</span>
- <span name='myopac_hold_unfrozen_true' class='hide_me check_mark'>✓</span>
- -->
- <span name='myopac_hold_unfrozen_false' class='x_mark'>&common.no;</span>
- <span name='myopac_hold_unfrozen_true' class='hide_me check_mark'>&common.yes;</span>
- </td>
-
-
- <td name='myopac_holds_frozen_until'></td>
- <td name='myopac_hold_expire_time'></td>
- <td><input type='checkbox' name='myopac_holds_selected_chkbx'/></td>
-
- <td name='myopac_holds_cancel' style='border-left: 3px solid #E0E0E0; border-right: 3px solid #E0E0E0;'>
- <a href='javascript:void(0);'
- name='myopac_holds_edit_link' class='classic_link'>&myopac.holds.edit;</a>
- </td>
- </tr>
- </tbody>
- </table>
-
- <span class='hide_me' id='myopac_holds_cancel_verify'>
- &myopac.holds.verify;
- </span>
-
-</div>
-
-
+++ /dev/null
-
-<div id='myopac_prefs_div' xmlns:xi="http://www.w3.org/2001/XInclude" >
-
- <table width='100%' class='data_grid'>
-
- <thead>
- <tr>
- <td colspan='2' align='center'>
- <b>&myopac.prefs.title;</b>
- </td>
- </tr>
- </thead>
-
- <tbody id='myopac_prefs_tbody'>
- <tr id='myopac_prefs_loading'><td colspan='3'><b>&myopac.loading;</b></td></tr>
- <tr id='myopac_prefs_row'>
- <td width='50%'>&myopac.prefs.hits;</td>
- <td>
- <select id='prefs_hits_per'>
- <option value='5'>5</option>
- <option value='8'>8</option>
- <option value='10'>10</option>
- <option value='15'>15</option>
- <option value='20'>20</option>
- <option value='25'>25</option>
- <option value='50'>50</option>
- </select>
- </td>
- </tr>
-
- <!-- FONT size preference -->
- <tr>
- <td>&myopac.prefs.font;</td>
- <td>
- <select id='prefs_def_font'>
- <option value='regular'>&myopac.prefs.font.regular;</option>
- <option value='large'>&myopac.prefs.font.large;</option>
- </select>
- </td>
- </tr>
-
- <!-- default hold notification type -->
- <tr>
- <td>
- <span>&myopac.prefs.holds.notify;</span>
- <a class='classic_link' href='javascript:void(0);'
- onclick='alert($("myopac_pref_hold_notify_alert").textContent);' >&common.help;</a>
- </td>
- <td>
- <select id='prefs_hold_notify'>
- <option value='phone:email' selected='selected'>&myopac.prefs.holds.both;</option>
- <option value='phone'>&myopac.prefs.holds.phone;</option>
- <option value='email'>&myopac.prefs.holds.email;</option>
- </select>
- </td>
- </tr>
-
-
- <tr id='prefs_def_location_row'>
- <td>&myopac.prefs.search.location;</td>
- <td>
- <div style='margin-bottom: 5px;'>
- <input type='checkbox' id='myopac_pref_home_lib'
- onclick='
- if( this.checked ) $("prefs_def_location").disabled = true;
- else $("prefs_def_location").disabled = false;
- ' /> &myopac.prefs.search.home;
- </div>
- <select id='prefs_def_location'>
- </select>
- </td>
- </tr>
-
- <tr id='prefs_def_range_row'>
- <td>&myopac.prefs.search.range;</td>
- <td>
- <select id='prefs_def_range'>
- </select>
- </td>
- </tr>
-
-
-
- <!-- Save the preferences -->
- <tr><td colspan='2'><br/></td></tr>
-
- <tr>
- <td align='center' class='color_3' colspan='2'>
- <button onclick='myOPACSavePrefs();'
- id='myopac_prefs_submit'>&myopac.prefs.save;</button>
- </td>
- </tr>
-
- </tbody>
- </table>
-
- <div class='hide_me' id='prefs_update_success'>&myopac.prefs.save.success;</div>
- <div class='hide_me' id='prefs_update_failure'>&myopac.prefs.save.failed;</div>
- <span class='hide_me' id='myopac_pref_hold_notify_alert'>
- &myopac.prefs.help;
- </span>
-
-</div>
-
-
+++ /dev/null
-
-<div id='myopac_summary_div' xmlns:xi="http://www.w3.org/2001/XInclude" >
-
-
- <div id='myopac.expired.alert' class='hide_me' style='margin-bottom: 20px;'>
- <table class='data_grid' width='100%'>
- <tbody>
- <tr>
- <td width='100%' style='color:red;'>
- &myopac.summary.expired;
- </td>
- </tr>
- </tbody>
- </table>
- </div>
-
- <div id='myopac.notes.div' class='hide_me'>
- <table class='data_grid' width='100%'>
- <thead>
- <tr>
- <td colspan='2'><b> &myopac.summary.notes;</b></td>
- </tr>
- </thead>
- <tbody id='myopac.notes.tbody'>
- <tr id='myopac.notes.tr'>
- <td>
- <b name='title'/> : <span name='value'/>
- </td>
- </tr>
- </tbody>
- </table>
- <br/>
- </div>
-
- <table width='70%' class='light_border myopac_summary_table'>
- <tbody id='myopac_summary_tbody'>
- <tr>
- <td width='30%' class='color_4 light_border'>&common.name;</td>
- <td class='light_border'>
- <span id='myopac_summary_prefix' style='padding-right: 5px;'> </span>
- <span id='myopac_summary_first' style='padding-right: 5px;'> </span>
- <span id='myopac_summary_middle' style='padding-right: 5px;'> </span>
- <span id='myopac_summary_last' style='padding-right: 5px;'> </span>
- <span id='myopac_summary_suffix'> </span>
- </td>
- </tr>
-
- <tr>
- <td class='color_4 light_border'>&myopac.summary.phone.day;</td>
- <td class='light_border' id='myopac_summary_dayphone'> </td>
- </tr>
- <tr>
- <td class='color_4 light_border'>&myopac.summary.phone.evening;</td>
- <td class='light_border' id='myopac_summary_eveningphone'> </td>
- </tr>
- <tr>
- <td class='color_4 light_border'>&myopac.summary.phone.other;</td>
- <td class='light_border' id='myopac_summary_otherphone'> </td>
- </tr>
- <tr>
- <td class='color_4 light_border'>&common.username;</td>
- <td class='light_border' id='myopac_summary_username'> </td>
- <td class='light_border'><a href='javascript:void(0);'
- onclick='unHideMe($("myopac_update_username_row"));$("myopac_new_username").focus();'
- id='myopac_summary_username_change' style='text-decoration: underline;'>&myopac.summary.change;</a></td>
- </tr>
-
- <tr id='myopac_update_username_row' class='hide_me'>
- <td class='myopac_update_cell' colspan='3'>
- <span class='myopac_update_span'>&myopac.summary.username.enter; </span>
- <input type='text' size='24' id='myopac_new_username'
- onkeydown='if(userPressedEnter(event)) myOPACUpdateUsername();' />
- <span class='myopac_update_span'>
- <button onclick='myOPACUpdateUsername();'>&common.submit;</button>
- </span>
- <span class='myopac_update_span'>
- <button onclick='hideMe($("myopac_update_username_row"));'>&common.cancel;</button>
- </span>
- </td>
- </tr>
-
-
- <tr>
- <td class='color_4 light_border'>&common.password;</td>
- <td class='light_border' id='myopac_summary_password'>&myopac.summary.password.text;</td>
- <td class='light_border'><a href='javascript:void(0);'
- onclick='unHideMe($("myopac_update_password_row"));$("myopac_current_password").focus();'
- id='myopac_summary_password_change' style='text-decoration: underline;'>&myopac.summary.change;</a></td>
- </tr>
-
- <tr id='myopac_update_password_row' class='hide_me'>
- <td class='myopac_update_cell' colspan='3'>
-
- <table><tbody>
- <tr>
- <td><span class='myopac_update_span'>&myopac.summary.password.current; </span></td>
- <td><input type='password' size='24' id='myopac_current_password'
- onkeydown='if(userPressedEnter(event)) myOPACUpdatePassword();' /></td>
- </tr>
- <tr>
- <td><span class='myopac_update_span'>&myopac.summary.password.new; </span></td>
- <td><input type='password' size='24' id='myopac_new_password'
- onkeydown='if(userPressedEnter(event)) myOPACUpdatePassword();' /></td>
- </tr>
- <tr>
- <td><span class='myopac_update_span'>&myopac.summary.password.reenter; </span></td>
- <td><input type='password' size='24' id='myopac_new_password2'
- onkeydown='if(userPressedEnter(event)) myOPACUpdatePassword();' /></td>
- </tr>
- </tbody></table>
-
- <span class='myopac_update_span'>
- <button onclick='myOPACUpdatePassword();'>&common.submit;</button>
- </span>
- <span class='myopac_update_span'>
- <button onclick='hideMe($("myopac_update_password_row"));'>&common.cancel;</button>
- </span>
- </td>
- </tr>
-
- <tr>
- <td class='color_4 light_border'>&myopac.summary.email;</td>
- <td class='light_border' id='myopac_summary_email'> </td>
- <td class='light_border'><a href='javascript:void(0);'
- onclick='unHideMe($("myopac_update_email_row"));$("myopac_new_email").focus();'
- id='myopac_summary_email_change' style='text-decoration: underline;'>&myopac.summary.change;</a></td>
- </tr>
-
- <tr id='myopac_update_email_row' class='hide_me'>
- <td class='myopac_update_cell' colspan='3'>
- <span class='myopac_update_span'>&myopac.summary.email.new; </span>
- <input type='text' size='24' id='myopac_new_email'
- onkeydown='if(userPressedEnter(event)) myOPACUpdateEmail();' />
- <span class='myopac_update_span'>
- <button onclick='myOPACUpdateEmail();'>&common.submit;</button>
- </span>
- <span class='myopac_update_span'>
- <button onclick='hideMe($("myopac_update_email_row"));'>&common.cancel;</button>
- </span>
- </td>
- </tr>
-
- <tr>
- <td class='color_4 light_border'>&myopac.summary.id.primary;</td>
- <td class='light_border' id='myopac_summary_ident1'> </td>
- </tr>
- <!--
- <tr>
- <td class='color_4 light_border'>Secondary Identification</td>
- <td class='light_border' id='myopac_summary_ident2'> </td>
- </tr>
- -->
- <tr>
- <td class='color_4 light_border'>&myopac.summary.barcode;</td>
- <td class='light_border' id='myopac_summary_barcode'> </td>
- </tr>
- <tr>
- <td class='color_4 light_border'>&myopac.summary.home;</td>
- <td class='light_border' id='myopac_summary_homelib'> </td>
- </tr>
- <tr>
- <td class='color_4 light_border'>&myopac.summary.genesis;</td>
- <td class='light_border' id='myopac_summary_create_date'> </td>
- </tr>
-
- </tbody>
- </table>
-
-
- <br/><hr/><br/>
-
- <table width='100%' class='light_border data_grid'>
- <thead>
- <tr>
- <td>&myopac.summary.addresses;</td>
- <td id='myopac_pending_addr_td' class='hide_me'>&myopac.summary.addresses.pending;</td>
- </tr>
- </thead>
- <tbody id='myopac_addr_tbody'>
- <tr id='myopac_addr_row' class='light_border'>
- <td>
- <table>
- <tr>
- <td>&myopac.summary.address.type;</td>
- <td name='myopac_addr_type'> </td>
- </tr>
- <tr>
- <td>&myopac.summary.address.street;</td>
- <td name='myopac_addr_street'> </td>
- </tr>
- <tr>
- <td>&myopac.summary.address.street;</td>
- <td name='myopac_addr_street2'> </td>
- </tr>
- <tr>
- <td>&myopac.summary.address.city;</td>
- <td name='myopac_addr_city'> </td>
- </tr>
- <tr>
- <td>&myopac.summary.address.county;</td>
- <td name='myopac_addr_county'> </td>
- </tr>
- <tr>
- <td>&myopac.summary.address.state;</td>
- <td name='myopac_addr_state'> </td>
- </tr>
- <tr>
- <td>&myopac.summary.address.country;</td>
- <td name='myopac_addr_country'> </td>
- </tr>
- <tr>
- <td>&myopac.summary.address.zip;</td>
- <td name='myopac_addr_zip'> </td>
- </tr>
- <tr>
- <td name='myopac_addr_edit_td' colspan='2' class='hide_me'>
- <a class='classic_link' name='myopac_addr_edit_link' href='javascript:void(0);'>Edit Address</a>
- </td>
- </tr>
- </table>
- </td>
- <td class='hide_me' name='myopac_pending_addr_td'>
- <table>
- <tr>
- <td>&myopac.summary.address.type;</td>
- <td><input name='myopac_pending_addr_type'/> </td>
- </tr>
- <tr>
- <td>&myopac.summary.address.street;</td>
- <td><input name='myopac_pending_addr_street'/> </td>
- </tr>
- <tr>
- <td>&myopac.summary.address.street;</td>
- <td><input name='myopac_pending_addr_street2'/> </td>
- </tr>
- <tr>
- <td>&myopac.summary.address.city;</td>
- <td><input name='myopac_pending_addr_city'/> </td>
- </tr>
- <tr>
- <td>&myopac.summary.address.county;</td>
- <td><input name='myopac_pending_addr_county'/> </td>
- </tr>
- <tr>
- <td>&myopac.summary.address.state;</td>
- <td><input name='myopac_pending_addr_state'/> </td>
- </tr>
- <tr>
- <td>&myopac.summary.address.country;</td>
- <td><input name='myopac_pending_addr_country'/> </td>
- </tr>
- <tr>
- <td>&myopac.summary.address.zip;</td>
- <td><input name='myopac_pending_addr_zip'/> </td>
- </tr>
- <tr>
- <td name='myopac_addr_edit_td' colspan='2'>
- <a class='classic_link' name='myopac_pending_addr_edit_link' href='javascript:void(0);'>Save Changes</a>
- <a style='padding-left:10px;' class='classic_link' name='myopac_pending_addr_del_link' href='javascript:void(0);'>Discard Pending Address</a>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </tbody>
- </table>
-
- <div class='hide_me' id='myopac_username_error'>&myopac.summary.username.error;</div>
- <div class='hide_me' id='myopac_username_dup'>
- &myopac.summary.username.dup;
- </div>
- <div class='hide_me' id='myopac_username_success'>&myopac.summary.username.success;</div>
- <div class='hide_me' id='myopac_username_failure'>&myopac.summary.username.failure;</div>
-
- <div class='hide_me' id='myopac_email_error'>&myopac.summary.email.error;</div>
- <div class='hide_me' id='myopac_email_success'>&myopac.summary.email.success;</div>
- <div class='hide_me' id='myopac_email_failure'>&myopac.summary.email.failed;</div>
-
- <div class='hide_me' id='myopac_password_error'>&myopac.summary.password.error;</div>
- <div class='hide_me' id='myopac_password_success'>&myopac.summary.password.success;</div>
- <div class='hide_me' id='myopac_password_failure'>&myopac.summary.password.failure;</div>
- <span class='hide_me' id='myopac_invalid_username'>&myopac.summary.username.invalid;</span>
- <span class='hide_me' id='myopac_addr_changes_saved'>Address Saved</span>
-</div>
-
-
+++ /dev/null
-<div id='canvas_main' class='canvas' style='margin-top: 20px;'>
-
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/advanced.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/result_common.js'></script>
-
- <style type='text/css'>
- .advanced_div { text-align: center; margin: 8px; margin-left: 2px; width: 95%; padding: 5px; }
- </style>
-
- <div class='advanced_div'>
- <!--#include virtual="advanced/advanced_global.xml"-->
- </div>
-</div>
-
-
+++ /dev/null
-<div id='canvas_main' class='canvas' style='margin-top: 20px;'>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/cn_browse.js'></script>
- <!--#include virtual="common/cn_browse.xml"-->
-</div>
-
-
+++ /dev/null
-<div>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/sidebar_extras.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/mresult.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/result_common.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/tips.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/holds.js'></script>
- <!--#include virtual="result/result_common.xml"-->
-</div>
-
+++ /dev/null
-<div id='canvas_main' class='canvas hide_me'>
-
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/myopac.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/common/js/DP_DateExtensions.js'></script>
-
- <script language='javascript' type='text/javascript'> config.ids.altcanvas.myopac_reload = 'myopac_reloading'; </script>
- <div id='myopac_reloading' class='hide_me canvas'> &common.loading; </div>
-
- <script language='javascript' type='text/javascript'>
- config.ids.myopac = {};
- config.css.myopac = {};
- config.names.myopac = {};
- </script>
-
- <br/>
- <table style='width: 98%; text-align: center;'>
- <tbody>
- <tr id='myopac_nav_row'>
-
- <td class='myopac_link border_6' id='myopac_summary_td' >
- <a href='javascript:void(0);'
- onclick='myOPACChangePage("summary");'>&myopac.account;</a>
- </td>
-
- <td class='myopac_link border_6' id='myopac_checked_td' >
- <a href='javascript:void(0);'
- onclick='myOPACChangePage("checked");'>&myopac.checkouts;</a>
- </td>
-
- <td class='myopac_link border_6' id='myopac_holds_td' >
- <a href='javascript:void(0);'
- onclick='myOPACChangePage("holds");'>&myopac.holds;</a>
- </td>
-
- <td class='myopac_link border_6' id='myopac_fines_td' >
- <a href='javascript:void(0);'
- onclick='myOPACChangePage("fines");'>&myopac.fines;</a>
- </td>
-
- <td class='myopac_link border_6' id='myopac_prefs_td' >
- <a href='javascript:void(0);'
- onclick='myOPACChangePage("prefs");'>&myopac.preferences;</a>
- </td>
-
- <td class='myopac_link border_6' id='myopac_bookbag_td' nowrap='nowrap'>
- <a href='javascript:void(0);'
- onclick='myOPACChangePage("bookbag");'>&myopac.bookbags;</a>
-
- </td>
-
- </tr>
- </tbody>
- </table>
-
- <br/>
-
- <div id='myopac_main_div'>
- <!--#include virtual="myopac/myopac_summary.xml"-->
- <!--#include virtual="myopac/myopac_checked.xml"-->
- <!--#include virtual="myopac/myopac_holds.xml"-->
- <!--#include virtual="myopac/myopac_fines.xml"-->
- <!--#include virtual="myopac/myopac_prefs.xml"-->
- <!--#include virtual="myopac/myopac_bookbags.xml"-->
- </div>
-
-</div>
-
-
+++ /dev/null
-<div id='canvas_main' class='canvas'>
-
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/sidebar_extras.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/result_common.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/rresult.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/rdetail.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/holds.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/cn_browse.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/container.js'></script>
-
- <script language='javascript' type='text/javascript'>
- config.ids.rdetail = {};
- config.ids.rdetail.view_marc = "rdetail_view_marc";
- </script>
-
- <table width='100%' id='np_table' class='hide_me' style='margin-top: 3px;'>
- <tbody>
- <tr class='color_4' style='height: 1em;'>
- <td style='vertical-align: top;'>
-
- <span>
- &rdetail.result; <span id='np_offset'> </span>
- <span> &common.of; </span>
- <span id='np_count'> </span>
- </span>
-
- <span style='padding-left: 40px;' >
- <a class='np_nav_link classic_link hide_me' id='np_start'
- href='javascript:rdetailStart();' title="&rdetail.page.results;">&rdetail.start;</a>
- <a class='np_nav_link classic_link hide_me' id='np_prev'
- href='javascript:rdetailPrev();' title='&rdetail.page.previous;'><< &rdetail.page.previous;</a>
- <span> </span>
- <a class='np_nav_link classic_link hide_me' id='np_next'
- href='javascript:rdetailNext();' title='&rdetail.page.next;'>&rdetail.page.next; >></a>
- <a class='np_nav_link classic_link hide_me' id='np_end'
- href='javascript:rdetailEnd();' title="&rdetail.page.last;">&rdetail.end;</a>
- </span>
-
- </td>
- </tr>
- </tbody>
- </table>
-
- <table style='' class='rdetail_header color_1' width='100%'>
- <tbody>
-
- <tr>
- <td width='33%' align='left'>
- <span>&rdetail.detailMain.headerLabel;</span>
- </td>
-
- <td align='right' style='padding-right: 7px;' width='33%'>
- <span id='rdetail_exp_refworks_span' class='hide_me' style='padding-right: 7px;'>
- <a id='rdetail_exp_refworks'>&opac.holds.exportRefWorks;</a>
- </span>
- <span style='padding-right: 7px;'>
- <a id='rdetail_place_hold' class='classic_link'>&opac.holds.placeHold;</a>
- </span>
- <span style='padding-right: 7px;' class='hide_me' id='rdetail_more_actions'>
- <select id='rdetail_more_actions_selector' style='max-width: 11em;'>
- <option value='start'>&rdetail.more;</option>
- <option disabled='disabled'>--------------</option>
- <option disabled='disabled'>&rdetail.bookbag.add;</option>
- <option disabled='disabled'>--------------</option>
- <option value='new_bookbag' onclick='rdetailNewBookbag();'>&rdetail.bookbag.create;</option>
- </select>
- </span>
-
- </td>
- </tr>
- </tbody>
- </table>
-
- <div style='font-weight: bold; padding: 5px; margin: 5px; width: 100%;'
- class='hide_me color_4' id='rdetail_deleted_exp'>
- &rdetail.record.deleted;
- </div>
-
- <!--#include virtual="rdetail/rdetail_summary.xml"-->
- <br/><br/>
- <!--#include virtual="rdetail/rdetail_extras.xml"-->
-
- <div class='hide_me' id='rdetail_bb_none'>&rdetail.none;</div>
- <div class='hide_me' id='rdetail_bb_item_success'>&rdetail.bookbag.add.success;</div>
- <div class='hide_me' id='rdetail_bb_new'>&rdetail.bookbag.name;</div>
- <div class='hide_me' id='rdetail_bb_success'>&rdetail.bookbag.create.success;</div>
-
-</div>
+++ /dev/null
-<div>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/sidebar_extras.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/rresult.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/result_common.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/tips.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/holds.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/bibtemplate.js'></script>
- <!--#include virtual="result/result_common.xml"-->
-</div>
-
+++ /dev/null
-<div id='canvas_main' class='canvas'>
-
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/sidebar_extras.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/result_common.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/rresult.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/rdetail.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/holds.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/cn_browse.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/container.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/bibtemplate.js'></script>
-
- <script language='javascript' type='text/javascript'>
- config.ids.rdetail = {};
- config.ids.rdetail.view_marc = "rdetail_view_marc";
- </script>
-
- <table width='100%' id='np_table' class='hide_me' style='margin-top: 3px;'>
- <tbody>
- <tr class='color_4' style='height: 1em;'>
- <td style='vertical-align: top;'>
-
- <span>
- &rdetail.result; <span id='np_offset'> </span>
- <span> &common.of; </span>
- <span id='np_count'> </span>
- </span>
-
- <span style='padding-left: 40px;' >
- <a class='np_nav_link classic_link hide_me' id='np_start'
- href='javascript:rdetailStart();' title="&rdetail.page.results;">&rdetail.start;</a>
- <a class='np_nav_link classic_link hide_me' id='np_prev'
- href='javascript:rdetailPrev();' title='&rdetail.page.previous;'><< &rdetail.page.previous;</a>
- <span> </span>
- <a class='np_nav_link classic_link hide_me' id='np_next'
- href='javascript:rdetailNext();' title='&rdetail.page.next;'>&rdetail.page.next; >></a>
- <a class='np_nav_link classic_link hide_me' id='np_end'
- href='javascript:rdetailEnd();' title="&rdetail.page.last;">&rdetail.end;</a>
- </span>
-
- </td>
- </tr>
- </tbody>
- </table>
-
- <table style='' class='rdetail_header color_1' width='100%'>
- <tbody>
-
- <tr>
- <td width='33%' align='left'>
- <span>&rdetail.detailMain.headerLabel;</span>
- </td>
-
- <td align='right' style='padding-right: 7px;' width='33%'>
- <span id='rdetail_exp_refworks_span' class='hide_me' style='padding-right: 7px;'>
- <a id='rdetail_exp_refworks'>&opac.holds.exportRefWorks;</a>
- </span>
- <span style='padding-right: 7px;'>
- <a id='rdetail_place_hold' class='classic_link'>&opac.holds.placeHold;</a>
- </span>
- <span style='padding-right: 7px;' class='hide_me' id='rdetail_more_actions'>
- <select id='rdetail_more_actions_selector' style='max-width: 11em;'>
- <option value='start'>&rdetail.more;</option>
- <option disabled='disabled'>--------------</option>
- <option disabled='disabled'>&rdetail.bookbag.add;</option>
- <option disabled='disabled'>--------------</option>
- <option value='new_bookbag' onclick='rdetailNewBookbag();'>&rdetail.bookbag.create;</option>
- </select>
- </span>
-
- </td>
- </tr>
- </tbody>
- </table>
-
- <div style='font-weight: bold; padding: 5px; margin: 5px; width: 100%;'
- class='hide_me color_4' id='rdetail_deleted_exp'>
- &rdetail.record.deleted;
- </div>
-
- <!--#include virtual="rdetail/rdetail_subset_summary.xml"-->
- <!--#include virtual="rdetail/rdetail_extras.xml"-->
-
- <div class='hide_me' id='rdetail_bb_none'>&rdetail.none;</div>
- <div class='hide_me' id='rdetail_bb_item_success'>&rdetail.bookbag.add.success;</div>
- <div class='hide_me' id='rdetail_bb_new'>&rdetail.bookbag.name;</div>
- <div class='hide_me' id='rdetail_bb_success'>&rdetail.bookbag.create.success;</div>
-
-</div>
+++ /dev/null
-
-<!-- record details alternate canvases -->
-<div class=''>
-
- <!--
- <script language='javascript' type='text/javascript'>
- config.ids.rdetail.view_marc_div = 'view_marc_div';
- config.ids.altcanvas.view_marc_div = config.ids.rdetail.view_marc_div;
- config.ids.rdetail.hide_marc = "rdetail_hide_marc";
- config.ids.rdetail.view_marc_box = "rdetail_view_marc_box";
- </script>
-
- <div class='hide_me canvas' id='view_marc_div'>
- <div>
- <table width='100%'><tbody><tr>
- <td class='color_1' align='left' style='padding-left: 7px;text-decoration: underline;'>
- <a href="javascript:void(0);" id='rdetail_hide_marc'>&rdetail.detailMain.hideMarc;</a>
- </td>
- </tr></tbody></table>
- </div>
- <br/>
- <div id='rdetail_view_marc_box'> </div>
- <br/><br/>
- </div>
- -->
-
-</div>
-
+++ /dev/null
-<table class='hide_me'>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/copy_details.js'></script>
- <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/common/js/Date.W3CDTF.js'></script>
- <tbody>
- <tr style='border: 3px solid #E0E0E0;' id='rdetail_volume_details_row' templateRow='1'>
- <td colspan='10'>
- <div style='text-align: center; margin-top: 6px; margin-bottom: 6px'>
-
- <a name='print' href='javascript:void(0);' class='classic_link'>&rdetail.print;</a>
- <table class='data_grid data_grid_center' style='width: 100%'>
- <thead>
- <tr>
- <td width='33%'>&rdetail.cn.barcode;</td>
- <td>&common.status;</td>
- <td>&rdetail.cn.location;</td>
- <td name='age_protect_label' class='hide_me'>&rdetail.cn.hold.age;</td>
- <td name='create_date_label' class='hide_me'>&rdetail.cn.genesis;</td>
- <td name='holdable_label' class='hide_me'>&rdetail.cn.holdable;</td>
- <td name='due_date_label' class='hide_me'>&rdetail.cn.due;</td>
- </tr>
- </thead>
- <tbody name='copies_tbody' class='copy_details_table' width='100%'>
-
- <tr name='copies_row'>
-
- <td>
- <span name='barcode'> </span>
- <a class='hide_me classic_link copy_more_info' name='details_link'>&rdetail.cn.more;</a>
- <a class='hide_me classic_link copy_more_info' name='less_details_link'>&rdetail.cn.less;</a>
- <a class='hide_me classic_link copy_more_info' name='copy_hold_link'
- href='javascript:void(0);'>&rdetail.cn.hold;</a>
- <a class='hide_me classic_link copy_more_info' name='copy_reserve_link'
- href='javascript:void(0);'>&rdetail.cn.reserve;</a>
- </td>
-
- <td name='status'> </td>
- <td name='location'> </td>
- <td name='age_protect_value' class='hide_me'>&rdetail.cn.disabled;</td>
- <td name='create_date_value' class='hide_me'> </td>
-
- <td name='copy_holdable_td' class='hide_me'>
- <span name='copy_is_holdable'> </span>
- </td>
-
- <td name='copy_due_date_td' class='hide_me'>
- <span name='copy_due_date'> </span>
- </td>
-
- </tr>
-
- <tr name='copy_extras_row' class='hide_me'>
- <td colspan='10'>
- <table width='100%' class='data_grid'>
- <tbody name='extras_tbody'>
- <tr name='extras_row' class='hide_me'>
- <td name='type' width='20%'>
- <span name='note' class='hide_me'><b>&rdetail.cn.note;</b></span>
- <span name='cat' class='hide_me'><b>&rdetail.cn.category;</b></span>
- </td>
- <td>
- <span name='key'> </span> : <span name='value'> </span>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
-
- </tbody>
- </table>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-
-<span class='hide_me' id='rdetail.yes'>&common.yes;</span>
-<span class='hide_me' id='rdetail.no'>&common.no;</span>
-
-
-<div id='rdetail_print_details' class='hide_me'>
- <div style='text-align: center; padding: 20px; width: 100%'>
- <div style='width:100%; border: 2px solid #E0F0E0; margin-bottom: 20px;'>
- <input type='submit' value='&rdetail.cn.print;' onclick='window.print();'> </input>
- </div>
- <div name='body'>
- <table>
- <tbody name='tbody'>
- <tr><td>&common.library;</td><td colspan='2' name='lib'></td></tr>
- <tr><td>&common.title;</td><td colspan='2' name='title'></td></tr>
- <tr><td>&common.author;</td><td colspan='2' name='author'></td></tr>
- <tr><td>&common.edition;</td><td colspan='2' name='edition'></td></tr>
- <tr><td>&common.pubdate;</td><td colspan='2' name='pubdate'></td></tr>
- <tr><td>&common.publisher;</td><td colspan='2' name='publisher'></td></tr>
- <tr><td>&common.physical;</td><td colspan='2' name='phys'></td></tr>
- <tr>
- <td colspan='3' style='background: #E0F0E0;'> </td>
- </tr>
- <tr name='cnrow'><td><b>&common.callnumber;</b></td><td><b colspan='2' name='cn'></b></td></tr>
- </tbody>
- </table>
- </div>
- </div>
-</div>
-
+++ /dev/null
-
-<!-- This holds information for copies attached to this record -->
-<div id='rdetail_copy_info_div' class='rdetail_extras_div'>
-
- <div style='width: 100%; text-align: center; padding-bottom: 5px;'>
- <span>
- <a href='javascript:void(0);' id='copy_info_local_link'
- class='rdetail_copy_nav_link hide_me classic_link'><b>&rdetail.copyInfo.local;</b></a>
- </span>
- <span width=''>
- <a href='javascript:void(0);' id='copy_info_all_link'
- class='rdetail_copy_nav_link classic_link'><b>&rdetail.copyInfo.all;</b></a>
- </span>
- </div>
-
- <table id='rdetail_copy_info_table' class='data_grid'>
- <thead>
-
- <tr>
- <td class='rdetail_copy_info_header_cell'>&rdetail.copyInfo.library;</td>
- <td class='rdetail_copy_info_header_cell'>&rdetail.copyInfo.callnumber;</td>
- <td name='rdetail_copylocation_header' class='rdetail_copy_info_header_cell hide_me'>&rdetail.copyInfo.copylocation;</td>
- <td class='rdetail_copy_info_header_cell'>&rdetail.copyInfo.actions;</td>
- <td nowrap='nowrap' class='rdetail_copy_info_header_cell' id='rdetail_copy_info_status'>
- <div name='rdetail_status_cell'> </div>
- </td>
- </tr>
-
- </thead>
- <tbody id='rdetail_copy_info_tbody'>
- <tr id='rdetail_copy_info_row' class='hide_me'>
- <td name='rdetail_library_cell'>
- <a name='lib_print_link' class='hide_me classic_link' style='font-size: 8pt; padding-left: 20px;'>
- &rdetail.copyInfo.print;
- </a>
- </td>
- <td name='rdetail_callnumber_cell'> </td>
- <td class="hide_me" name='rdetail_copylocation_cell'> </td>
- <td name='rdetail_actions_cell'>
- <div style='padding-bottom: 1px;'>
- <a style='font-size: 8pt;'
- name='details' class='hide_me classic_link'>&rdetail.copyInfo.details;</a>
- </div>
- <div style='margin-top: 2px;'>
- <a name='browse' style='font-size: 8pt;'
- class='hide_me classic_link'>&rdetail.copyInfo.browse;</a>
- </div>
- <div style='margin-top: 2px;' name='hold_div' class='hide_me'>
- <a name='hold' style='font-size: 8pt;' href='javascript:void(0);'
- class='classic_link'>&rdetail.copyInfo.hold;</a>
- </div>
- </td>
- <td nowrap='nowrap' class='rdetail_copy_count_cell vertical'
- name='rdetail_copy_count_cell'> </td>
- </tr>
-
- <tr id='rdetail_copy_info_loading'><td>&rdetail.loading;</td></tr>
-
- </tbody>
- </table>
-
- <!--
- <table class='hide_me'>
- <tbody>
- <tr style='border: 3px solid #E0E0E0;' id='rdetail_volume_details_row'><td colspan='10'></td></tr>
- </tbody>
- </table>
- -->
-
- <br/><br/>
-
- <div id='rdetail_copy_info_none' class='hide_me'>&rdetail.noneAvailable;</div>
-
- <script language='javascript' type='text/javascript'>
- config.ids.rdetail.cp_status = "rdetail_copy_info_status";
- config.ids.rdetail.cp_info_row = "rdetail_copy_info_row";
- config.ids.rdetail.cp_info_loading = "rdetail_copy_info_loading";
- config.ids.rdetail.cp_info_local = "copy_info_local_link";
- config.ids.rdetail.cp_info_all = "copy_info_all_link";
- config.ids.rdetail.cp_info_none = "rdetail_copy_info_none";
- config.names.rdetail.lib_cell = "rdetail_library_cell";
- config.names.rdetail.cn_cell = "rdetail_callnumber_cell";
- config.names.rdetail.cp_count_cell = "rdetail_copy_count_cell";
- config.names.rdetail.cp_status = 'rdetail_status_cell';
- </script>
-
-</div> <!-- copy info -->
-
-
+++ /dev/null
-
-<abbr name="unapi" class="unapi-id" title='tag:<!--#echo var="HTTP_HOST"-->,<!--#echo var="OILS_TIME_YEAR"-->:biblio-record_entry/<!--#echo var="OILS_OPAC_RID"-->'></abbr>
-<!-- This holds the record summary information -->
-<div>
- <!-- Hack to give IE somewhere to put these things; should just rip out from rdetail.js -->
- <span class='hide_me' id='rdetail_title'></span>
- <span class='hide_me' id='rdetail_isbn'></span>
- <span class='hide_me' id='rdetail_publisher'></span>
- <span class='hide_me' id='rdetail_abstract'></span>
- <span class='hide_me' id='rdetail_edition'></span>
- <table id='rdetail_details_table'>
- <tbody id='rdetail_details_tbody'>
-
- <tr>
- <td id='rdetail_image_cell' rowspan='40'>
- <a id='rdetail_img_link'>
- <img style='border: none;' id='rdetail_image'
- onerror='
- hideMe($("rdetail.jacket_attrib_div"));
- hideMe($("rdetail_img_link"));'/>
- </a>
- <!-- vendor attribution link -->
- <div class='jacket_attrib hide_me' id='rdetail.jacket_attrib_div'>
- <div>&opac.image_provided;</div>
- <div><a target='_blank' href='&vendor.base_link;'
- class='classic_link' id='rdetail.jacket_attrib_link'>&vendor.name;</a></div>
- </div>
- </td>
- <td nowrap='nowrap' class='rdetail_desc'>&common.title;</td>
- <td type='opac/slot-data' query='datafield[tag=245]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- var rdetail_bib_title = dojox.data.dom.textContent(item);
- var title_node = dojo.query('head title');
- dojo.addOnLoad(function() {dojo.place('<title>' + rdetail_bib_title + '</title>', title_node[0], 'replace');});
- return '<span>' + rdetail_bib_title + '</span><br/>';
- ]]></script>
- </td>
- </tr>
-
- <tr class='hide_me' id='tag246'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.alternate.title;</td>
- <td type='opac/slot-data' query='datafield[tag=246] subfield[code=a]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag246').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.author;</td>
- <td class='rdetail_item'>
- <a title='&rdetail.author.search;' id='rdetail_author'> </a>
- </td>
- </tr>
- <tr class='hide_me' id='tag100'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.author;</td>
- <td type='opac/slot-data' query='datafield[tag=100]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag100').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag110'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.corporate.author;</td>
- <td type='opac/slot-data' query='datafield[tag=110]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag110').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag111'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.meeting.name;</td>
- <td type='opac/slot-data' query='datafield[tag=111]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag111').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag020'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.isbn;</td>
- <td type='opac/slot-data' query='datafield[tag=020]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag020').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
-
- </tr>
- <tr class='hide_me' id='tag022'>
- <td nowrap='nowrap' class='rdetail_desc' id='issn_title'>&common.issn;</td>
- <td type='opac/slot-data' query='datafield[tag=022]' class='rdetail_ite' id='rdetail_issn'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag022').removeClass('hide_me');
- var issn_raw = dojo.trim(dojox.data.dom.textContent(item));
-
- // textContent returns multiple subfields concatenated with linefeeds,
- // so our regex needs to match against linefeeds. "." does not match
- // linefeeds, so get \s into the mix
- var issn = issn_raw.replace(/^(\s|.)*?(\d{4}).(\d{3,4}[xX]?)(\s|.)*/, "$2-$3");
-
- var ses = new OpenSRF.ClientSession('open-ils.resolver');
- var req = ses.request('open-ils.resolver.resolve_holdings.raw', 'issn', issn, 'http://sfx.scholarsportal.info/windsor');
- req.oncomplete = function(r) {
- var msg;
- dojo.forEach(r.recv().content(), function(entry) {
- var resolverInfo = entry.public_name + "_" + entry.target_coverage;
- //uwin has a lot of duplicates for some reason
- if (url_list.indexOf(resolverInfo) == -1) {
- if (first_issn) {
- dojo.query('#rdetail_sfx *').orphan();
- first_issn = false;
- }
-
- dojo.place('<div style="width: 100%">'
- + ' <a class="search_link" href="' + entry.target_url
- + '">' + entry.public_name + '</a> - '
- + entry.target_coverage
- + (entry.target_embargo ? (' / ' + entry.target_embargo) : '')
- + '</div>', 'rdetail_sfx');
- dojo.query('#rdetail_sfx_row').removeClass('hide_me');
- url_list += resolverInfo;
- }//if url_list
- });
- }
- req.send();
-
- return '<span>' + issn + '</span><br/>';
- ]]></script>
- </td>
-
- </tr>
-
- <tr class='hide_me' id='tag250'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.edition;</td>
- <td type='opac/slot-data' query='datafield[tag=250]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag250').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
-
- <tr class='hide_me'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.pubdate;</td>
- <td class='rdetail_item' id='rdetail_pubdate'> </td>
- </tr>
-
- <tr class='hide_me' id='tag260'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.publisher;</td>
- <td type='opac/slot-data' query='datafield[tag=260]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag260').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
-
-
- <tr>
- <td nowrap='nowrap' class='rdetail_desc'>&common.physical;</td>
- <td class='rdetail_item' id='rdetail_physical_desc'> </td>
- </tr>
-
- <tr>
- <td nowrap='nowrap' class='rdetail_desc'>&common.format;</td>
- <td class='rdetail_item'>
- <img id='rdetail_tor_pic' class='tor_pic' />
- <span id='rdetail_tor' style='padding-left: 5px;'> </span>
- </td>
- </tr>
-
- <tr class='hide_me' id='tag520'>
- <td nowrap='nowrap' class='rdetail_desc'>&rdetail.detailMain.abstract;</td>
- <td type='opac/slot-data' query='datafield[tag=520]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag520').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
-
- </tr>
-
- <!-- *** Example of how to use the openils.BibTemplate infrastructure to augment the stock
- *** summary screen with complex information, such as new search links on subjects. -->
- <tr class='hide_me' id='tag600'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.600;</td>
- <td type='opac/slot-data' query='datafield[tag^=600]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag600', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag610'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.610;</td>
- <td type='opac/slot-data' query='datafield[tag^=610]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag610', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag611'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.611;</td>
- <td type='opac/slot-data' query='datafield[tag^=611]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag611', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag630'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.630;</td>
- <td type='opac/slot-data' query='datafield[tag^=630]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag630', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag648'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.648;</td>
- <td type='opac/slot-data' query='datafield[tag^=648]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag648', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag650'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subjects;</td>
- <td type='opac/slot-data' query='datafield[tag^=650]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag650', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag651'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.651;</td>
- <td type='opac/slot-data' query='datafield[tag^=651]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag651', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag653'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.653;</td>
- <td type='opac/slot-data' query='datafield[tag^=653]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag653', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag654'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.654;</td>
- <td type='opac/slot-data' query='datafield[tag^=654]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag654', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag655'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.655;</td>
- <td type='opac/slot-data' query='datafield[tag^=655]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag655', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag656'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.656;</td>
- <td type='opac/slot-data' query='datafield[tag^=656]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag656', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag657'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.657;</td>
- <td type='opac/slot-data' query='datafield[tag^=657]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag657', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag658'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.658;</td>
- <td type='opac/slot-data' query='datafield[tag^=658]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag658', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag662'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.662;</td>
- <td type='opac/slot-data' query='datafield[tag^=662]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag662', item);
- ]]></script>
- </td>
- </tr>
-
- <tr class='hide_me' id='tag500'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.general.note;</td>
- <td type='opac/slot-data' query='datafield[tag=500]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag500').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag505'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.contents.note;</td>
- <td type='opac/slot-data' query='datafield[tag=505]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag505').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag506'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.usage.restrictions;</td>
- <td type='opac/slot-data' query='datafield[tag=506] subfield[code=a]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag506').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span> ';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag511'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.performer.note;</td>
- <td type='opac/slot-data' query='datafield[tag=511]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag511').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag700'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.additional.authors;</td>
- <td type='opac/slot-data' query='datafield[tag=700]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag700').removeClass('hide_me');
- var text = '';
- var list = dojo.query( 'subfield:not([code=4])', item );
- for (var i =0; i < list.length; i++) {
- text += dojox.data.dom.textContent(list[i]) + ' ';
- }
- return '<span>' + text + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag780'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.preceding.entry;</td>
- <td type='opac/slot-data' query='datafield[tag=780]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag780').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag785'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.succeeding.entry;</td>
- <td type='opac/slot-data' query='datafield[tag=785]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag785').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr id='rdetail_sfx_row' class="hide_me">
- <td nowrap='nowrap' class='rdetail_desc'>
- <div class='sfx_image'>
- <img align='left' src='../local/images/sfxinfo.gif' alt=''/>
- </div>
- SFX E-Journals</td>
- <!-- *** Example of how to use the openils.BibTemplate infrastructure to augment the stock
- *** summary screen with complex information, such as location-specific URIs (856$9). -->
- <td class='rdetail_item result_table_sfx_cell resolver_item' id='rdetail_sfx'>
- </td>
- </tr>
- <tr class='hide_me' id='rdetail_online_row'>
- <!-- *** Example of how to use the openils.BibTemplate infrastructure to augment the stock
- *** summary screen with complex information, such as location-specific URIs (856$9). -->
- <td nowrap='nowrap' class='rdetail_desc'>&rdetail.summary.online;</td>
- <td class='rdetail_item' id='rdetail_online' type='opac/slot-data' query='volumes volume uris uri'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('*:not([type^=opac])', 'rdetail_online').orphan();
- var uri = new Object;
- uri.href = item.getAttribute('href');
- uri.label = item.getAttribute('label');
- uri.use = item.getAttribute('use_restriction');
- if (uri.href == uri.label) {
- if (uri.use && uri.use != uri.label) {
- uri.label = uri.use;
- uri.use = null;
- }
- }
- var link = '<a class="search_link" href="' + uri.href + '">' + uri.label + '</a>';
- if (uri.use) {
- link += ' (' + uri.use + ')';
- }
- return '<span>' + link + '</span><br/>';
- ]]></script>
- </td>
- </tr>
-
- </tbody>
- </table>
-
- <script language='javascript' type='text/javascript'><![CDATA[
-
- config.ids.rdetail.details_body = 'rdetail_details_body';
- config.ids.rdetail.title = 'rdetail_title';
- config.ids.rdetail.author = 'rdetail_author';
- config.ids.rdetail.isbn = 'rdetail_isbn';
- config.ids.rdetail.edition = 'rdetail_edition';
- config.ids.rdetail.pubdate = 'rdetail_pubdate';
- config.ids.rdetail.publisher = 'rdetail_publisher';
- config.ids.rdetail.tor = 'rdetail_tor';
- config.ids.rdetail.abstr = 'rdetail_abstract';
- config.ids.rdetail.image = 'rdetail_image';
- config.ids.rdetail.tor_pic = 'rdetail_tor_pic';
-
- /* Only clear the resources box once */
- var first_issn = true;
- var url_list = "";
-
- function subjectMe(tag, item) {
- dojo.query(tag).removeClass('hide_me');
- var cgi = new CGI();
- var other_params = [ 'd', 'l', 'r', 'av', 's', 'sd' ];
- var total = '';
- var output = [];
- var list = dojo.query( 'subfield:not([code=2])', item );
- var main_subject = '';
- for (var i =0; i < list.length; i++) {
- var current = "";
- total += dojox.data.dom.textContent(list[i]) + ' ';
- if (i > 0)
- current +='>> ';
- current += '<span><a class="search_link" href="rresult.xml?rt=subject&tp=subject&t=' + total;
- for (var p in other_params) {
- if (cgi.param(other_params[p]))
- current += '&' + other_params[p] + '=' + cgi.param(other_params[p]);
- }
- if (i > 0) {
- current += '">' + main_subject + dojox.data.dom.textContent(list[i]) + '</a>'
- } else {
- current += '">' + dojox.data.dom.textContent(list[i]) + '</a>'
- }
-
- main_subject += dojox.data.dom.textContent(list[i]) + ' -- ';
- current += '</span><br/>';
- output.push(current);
- }
-
- return output.join(' ');
- }
-
- dojo.addOnLoad( function () {
- var here = findOrgUnit(getLocation());
- if (getDepth() > 0 || getDepth === 0 ) {
- while (getDepth() < findOrgDepth(here))
- here = findOrgUnit( here.parent_ou() );
- }
-
- new bibtemplate({ record : new CGI().param('r'), org_unit : here.shortname() }).render();
- });
- ]]></script>
-
-</div> <!-- details_body -->
-
+++ /dev/null
-
-<abbr name="unapi" class="unapi-id" title='tag:<!--#echo var="HTTP_HOST"-->,<!--#echo var="OILS_TIME_YEAR"-->:biblio-record_entry/<!--#echo var="OILS_OPAC_RID"-->'></abbr>
-<!-- This holds the record summary information -->
-<div>
- <!-- Hack to give IE somewhere to put these things; should just rip out from rdetail.js -->
- <span class='hide_me' id='rdetail_title'></span>
- <span class='hide_me' id='rdetail_isbn'></span>
- <span class='hide_me' id='rdetail_publisher'></span>
- <span class='hide_me' id='rdetail_abstract'></span>
- <span class='hide_me' id='rdetail_edition'></span>
- <table id='rdetail_details_table'>
- <tbody id='rdetail_details_tbody'>
-
- <tr>
- <td id='rdetail_image_cell' rowspan='40'>
- <a id='rdetail_img_link'>
- <img style='border: none;' id='rdetail_image'
- onerror='
- hideMe($("rdetail.jacket_attrib_div"));
- hideMe($("rdetail_img_link"));'/>
- </a>
- <!-- vendor attribution link -->
- <div class='jacket_attrib hide_me' id='rdetail.jacket_attrib_div'>
- <div>&opac.image_provided;</div>
- <div><a target='_blank' href='&vendor.base_link;'
- class='classic_link' id='rdetail.jacket_attrib_link'>&vendor.name;</a></div>
- </div>
- </td>
- <td nowrap='nowrap' class='rdetail_desc'>&common.title;</td>
- <td type='opac/slot-data' query='datafield[tag=245]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- var rdetail_bib_title = dojox.data.dom.textContent(item);
- var title_node = dojo.query('head title');
- dojo.addOnLoad(function() {dojo.place('<title>' + rdetail_bib_title + '</title>', title_node[0], 'replace');});
- return '<span>' + rdetail_bib_title + '</span><br/>';
- ]]></script>
- </td>
- </tr>
-
- <tr class='hide_me' id='tag246'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.alternate.title;</td>
- <td type='opac/slot-data' query='datafield[tag=246] subfield[code=a]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag246').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.author;</td>
- <td class='rdetail_item'>
- <a title='&rdetail.author.search;' id='rdetail_author'> </a>
- </td>
- </tr>
- <tr class='hide_me' id='tag100'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.author;</td>
- <td type='opac/slot-data' query='datafield[tag=100]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag100').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag110'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.corporate.author;</td>
- <td type='opac/slot-data' query='datafield[tag=110]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag110').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag111'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.meeting.name;</td>
- <td type='opac/slot-data' query='datafield[tag=111]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag111').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag020'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.isbn;</td>
- <td type='opac/slot-data' query='datafield[tag=020]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag020').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
-
- </tr>
- <tr class='hide_me' id='tag022'>
- <td nowrap='nowrap' class='rdetail_desc' id='issn_title'>&common.issn;</td>
- <td type='opac/slot-data' query='datafield[tag=022]' class='rdetail_ite' id='rdetail_issn'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag022').removeClass('hide_me');
- var issn_raw = dojo.trim(dojox.data.dom.textContent(item));
-
- // textContent returns multiple subfields concatenated with linefeeds,
- // so our regex needs to match against linefeeds. "." does not match
- // linefeeds, so get \s into the mix
- var issn = issn_raw.replace(/^(\s|.)*?(\d{4}).(\d{3,4}[xX]?)(\s|.)*/, "$2-$3");
-
- var ses = new OpenSRF.ClientSession('open-ils.resolver');
- var req = ses.request('open-ils.resolver.resolve_holdings.raw', 'issn', issn, 'http://sfx.scholarsportal.info/windsor');
- req.oncomplete = function(r) {
- var msg;
- dojo.forEach(r.recv().content(), function(entry) {
- var resolverInfo = entry.public_name + "_" + entry.target_coverage;
- //uwin has a lot of duplicates for some reason
- if (url_list.indexOf(resolverInfo) == -1) {
- if (first_issn) {
- dojo.query('#rdetail_sfx *').orphan();
- first_issn = false;
- }
-
- dojo.place('<div style="width: 100%">'
- + ' <a class="search_link" href="' + entry.target_url
- + '">' + entry.public_name + '</a> - '
- + entry.target_coverage
- + (entry.target_embargo ? (' / ' + entry.target_embargo) : '')
- + '</div>', 'rdetail_sfx');
- dojo.query('#rdetail_sfx_row').removeClass('hide_me');
- url_list += resolverInfo;
- }//if url_list
- });
- }
- req.send();
-
- return '<span>' + issn + '</span><br/>';
- ]]></script>
- </td>
-
- </tr>
-
- <tr class='hide_me' id='tag250'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.edition;</td>
- <td type='opac/slot-data' query='datafield[tag=250]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag250').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
-
- <tr class='hide_me'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.pubdate;</td>
- <td class='rdetail_item' id='rdetail_pubdate'> </td>
- </tr>
-
- <tr class='hide_me' id='tag260'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.publisher;</td>
- <td type='opac/slot-data' query='datafield[tag=260]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag260').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
-
-
- <tr>
- <td nowrap='nowrap' class='rdetail_desc'>&common.physical;</td>
- <td class='rdetail_item' id='rdetail_physical_desc'> </td>
- </tr>
-
- <tr>
- <td nowrap='nowrap' class='rdetail_desc'>&common.format;</td>
- <td class='rdetail_item'>
- <img id='rdetail_tor_pic' class='tor_pic' />
- <span id='rdetail_tor' style='padding-left: 5px;'> </span>
- </td>
- </tr>
-
- <tr class='hide_me' id='tag520'>
- <td nowrap='nowrap' class='rdetail_desc'>&rdetail.detailMain.abstract;</td>
- <td type='opac/slot-data' query='datafield[tag=520]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag520').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
-
- </tr>
-
- <!-- *** Example of how to use the openils.BibTemplate infrastructure to augment the stock
- *** summary screen with complex information, such as new search links on subjects. -->
- <tr class='hide_me' id='tag600'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.600;</td>
- <td type='opac/slot-data' query='datafield[tag^=600]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag600', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag610'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.610;</td>
- <td type='opac/slot-data' query='datafield[tag^=610]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag610', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag611'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.611;</td>
- <td type='opac/slot-data' query='datafield[tag^=611]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag611', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag630'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.630;</td>
- <td type='opac/slot-data' query='datafield[tag^=630]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag630', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag648'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.648;</td>
- <td type='opac/slot-data' query='datafield[tag^=648]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag648', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag650'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subjects;</td>
- <td type='opac/slot-data' query='datafield[tag^=650]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag650', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag651'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.651;</td>
- <td type='opac/slot-data' query='datafield[tag^=651]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag651', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag653'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.653;</td>
- <td type='opac/slot-data' query='datafield[tag^=653]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag653', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag654'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.654;</td>
- <td type='opac/slot-data' query='datafield[tag^=654]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag654', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag655'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.655;</td>
- <td type='opac/slot-data' query='datafield[tag^=655]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag655', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag656'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.656;</td>
- <td type='opac/slot-data' query='datafield[tag^=656]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag656', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag657'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.657;</td>
- <td type='opac/slot-data' query='datafield[tag^=657]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag657', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag658'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.658;</td>
- <td type='opac/slot-data' query='datafield[tag^=658]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag658', item);
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag662'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.subject.662;</td>
- <td type='opac/slot-data' query='datafield[tag^=662]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- return subjectMe('#tag662', item);
- ]]></script>
- </td>
- </tr>
-
- <tr class='hide_me' id='tag500'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.general.note;</td>
- <td type='opac/slot-data' query='datafield[tag=500]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag500').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag505'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.contents.note;</td>
- <td type='opac/slot-data' query='datafield[tag=505]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag505').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag506'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.usage.restrictions;</td>
- <td type='opac/slot-data' query='datafield[tag=506] subfield[code=a]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag506').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span> ';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag511'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.performer.note;</td>
- <td type='opac/slot-data' query='datafield[tag=511]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag511').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag700'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.additional.authors;</td>
- <td type='opac/slot-data' query='datafield[tag=700]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag700').removeClass('hide_me');
- var text = '';
- var list = dojo.query( 'subfield:not([code=4])', item );
- for (var i =0; i < list.length; i++) {
- text += dojox.data.dom.textContent(list[i]) + ' ';
- }
- return '<span>' + text + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag780'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.preceding.entry;</td>
- <td type='opac/slot-data' query='datafield[tag=780]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag780').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr class='hide_me' id='tag785'>
- <td nowrap='nowrap' class='rdetail_desc'>&common.succeeding.entry;</td>
- <td type='opac/slot-data' query='datafield[tag=785]' class='rdetail_item'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('#tag785').removeClass('hide_me');
- return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
- ]]></script>
- </td>
- </tr>
- <tr id='rdetail_sfx_row' class="hide_me">
- <td nowrap='nowrap' class='rdetail_desc'>
- <div class='sfx_image'>
- <img align='left' src='../local/images/sfxinfo.gif' alt=''/>
- </div>
- SFX E-Journals</td>
- <!-- *** Example of how to use the openils.BibTemplate infrastructure to augment the stock
- *** summary screen with complex information, such as location-specific URIs (856$9). -->
- <td class='rdetail_item result_table_sfx_cell resolver_item' id='rdetail_sfx'>
- </td>
- </tr>
- <tr class='hide_me' id='rdetail_online_row'>
- <!-- *** Example of how to use the openils.BibTemplate infrastructure to augment the stock
- *** summary screen with complex information, such as location-specific URIs (856$9). -->
- <td nowrap='nowrap' class='rdetail_desc'>&rdetail.summary.online;</td>
- <td class='rdetail_item' id='rdetail_online' type='opac/slot-data' query='volumes volume uris uri'>
- <script type='opac/slot-format'><![CDATA[
- dojo.query('*:not([type^=opac])', 'rdetail_online').orphan();
- var uri = new Object;
- uri.href = item.getAttribute('href');
- uri.label = item.getAttribute('label');
- uri.use = item.getAttribute('use_restriction');
- if (uri.href == uri.label) {
- if (uri.use && uri.use != uri.label) {
- uri.label = uri.use;
- uri.use = null;
- }
- }
- var link = '<a class="search_link" href="' + uri.href + '">' + uri.label + '</a>';
- if (uri.use) {
- link += ' (' + uri.use + ')';
- }
- return '<span>' + link + '</span><br/>';
- ]]></script>
- </td>
- </tr>
-
- </tbody>
- </table>
-
- <script language='javascript' type='text/javascript'><![CDATA[
-
- config.ids.rdetail.details_body = 'rdetail_details_body';
- config.ids.rdetail.title = 'rdetail_title';
- config.ids.rdetail.author = 'rdetail_author';
- config.ids.rdetail.isbn = 'rdetail_isbn';
- config.ids.rdetail.edition = 'rdetail_edition';
- config.ids.rdetail.pubdate = 'rdetail_pubdate';
- config.ids.rdetail.publisher = 'rdetail_publisher';
- config.ids.rdetail.tor = 'rdetail_tor';
- config.ids.rdetail.abstr = 'rdetail_abstract';
- config.ids.rdetail.image = 'rdetail_image';
- config.ids.rdetail.tor_pic = 'rdetail_tor_pic';
-
- /* Only clear the resources box once */
- var first_issn = true;
- var url_list = "";
-
- function subjectMe(tag, item) {
- dojo.query(tag).removeClass('hide_me');
- var cgi = new CGI();
- var other_params = [ 'd', 'l', 'r', 'av', 's', 'sd' ];
- var total = '';
- var output = [];
- var list = dojo.query( 'subfield:not([code=2])', item );
- var main_subject = '';
- for (var i =0; i < list.length; i++) {
- var current = "";
- total += dojox.data.dom.textContent(list[i]) + ' ';
- if (i > 0)
- current +='>> ';
- current += '<span><a class="search_link" href="rresult.xml?rt=subject&tp=subject&t=' + total;
- for (var p in other_params) {
- if (cgi.param(other_params[p]))
- current += '&' + other_params[p] + '=' + cgi.param(other_params[p]);
- }
- if (i > 0) {
- current += '">' + main_subject + dojox.data.dom.textContent(list[i]) + '</a>'
- } else {
- current += '">' + dojox.data.dom.textContent(list[i]) + '</a>'
- }
-
- main_subject += dojox.data.dom.textContent(list[i]) + ' -- ';
- current += '</span><br/>';
- output.push(current);
- }
-
- return output.join(' ');
- }
-
- dojo.addOnLoad( function () {
- var here = findOrgUnit(getLocation());
- if (getDepth() > 0 || getDepth === 0 ) {
- while (getDepth() < findOrgDepth(here))
- here = findOrgUnit( here.parent_ou() );
- }
-
- dojo.require('openils.BibTemplate');
- new openils.BibTemplate({ record : new CGI().param('r'), org_unit : here.shortname() }).render();
- });
- ]]></script>
-
-</div> <!-- details_body -->
-
+++ /dev/null
-<span>
- &result.limit2avail;<input type='checkbox' id='opac.result.limit2avail' onclick='searchBarSubmit(true);'/>
- <select id='opac.result.sort' onchange='searchBarSubmit(true);'>
- <option selected='selected' value=''>&result.sort_by;</option>
- <optgroup label='&result.sort_by.title;'>
- <option id='opac.result.title.a2z' label='&common.a2z.titla;' value='title.asc'>&common.a2z.title;</option>
- <option id='opac.result.title.z2a' label='&common.z2a.titla;' value='title.desc'>&common.z2a.title;</option>
- </optgroup>
- <optgroup label='&result.sort_by.author;'>
- <option id='opac.result.author.a2z' label='&common.a2z.author;' value='author.asc'>&common.a2z.author;</option>
- <option id='opac.result.author.z2a' label='&common.z2a.author;' value='author.desc'>&common.z2a.author;</option>
- </optgroup>
- <optgroup label='&result.sort_by.pubdate;'>
- <option id='opac.result.pubdate.new2old' label='&common.new2old.pubdate;'
- value='pubdate.desc'>&common.new2old.pubdate;</option>
- <option id='opac.result.pubdate.old2new' label='&common.old2new.pubdate;'
- value='pubdate.asc'>&common.old2new.pubdate;</option>
- </optgroup>
- </select>
-</span>
+++ /dev/null
-
-<div id='canvas_main' class='canvas' xmlns:xi="http://www.w3.org/2001/XInclude" >
-
- <script language='javascript' type='text/javascript'>
- config.ids.result = {};
- config.css.result = {};
- config.names.result = {};
- config.ids.result.offset_start = "offset_start";
- config.ids.result.offset_end = "offset_end";
- config.ids.result.result_count = "result_count";
- config.ids.result.next_link = 'next_link';
- config.ids.result.prev_link = 'prev_link';
- config.ids.result.home_link = 'search_home_link';
- config.ids.result.end_link = 'end_link';
- config.ids.result.main_table = 'result_table';
- config.ids.result.row_template = 'result_table_template';
- config.ids.result.num_pages = 'num_pages';
- config.ids.result.current_page = 'current_page';
- config.css.result.nav_active = "nav_link_active";
- config.ids.result.top_div = "result_table_div";
- config.ids.result.nav_links = "search_nav_links";
- config.ids.result.info = "result_info_div";
- config.css.result.cc_cell_even = "copy_count_cell_even";
- config.names.result.item_jacket = "item_jacket";
- config.names.result.item_title = "item_title";
- config.names.result.item_author = "item_author";
- config.names.result.counts_row = "counts_row";
- config.names.result.count_cell = "copy_count_cell";
- </script>
-
- <!--#include virtual="result_table.xml"-->
- <!--#include virtual="result_lowhits.xml"-->
-
-</div>
-
-
+++ /dev/null
-<table style='width: 100%;'>
- <tbody>
-
- <tr class='color_4' style='height: 1em;'>
-
- <td style='vertical-align: top;' id='next_prev_links'>
-
- <span class='hide_me' id='result_info_div' style='font-size: 9pt;'>
- <span> &common.results; </span>
- <span id='offset_start'></span>
- <!-- IE runs everything together so we force a character -->
- <span style='font-size: 2pt; visibility: hidden;'>-</span>
- <span>-</span>
- <span style='font-size: 2pt; visibility: hidden;'>-</span>
- <span id='offset_end'></span>
- <span style='font-size: 2pt; visibility: hidden;'>-</span>
- <span>&common.ofAtLeast;</span>
- <span id='result_count'> </span>
- <span style='padding-left: 6px;'> (page </span>
- <span id='current_page'></span>
- <span style='font-size: 2pt; visibility: hidden;'>-</span>
- <span>&common.of;</span>
- <span style='font-size: 2pt; visibility: hidden;'>-</span>
- <span id='num_pages'> </span>
- </span>
-
- <span id='start_end_links_span' class='hide_me'
- style='padding-left: 40px;' >
- <a class='search_link' id='search_home_link'
- title="&rdetail.page.results;" style='padding-left: 1em;'>&rdetail.start;</a><a class='search_link'
- id='prev_link' title='&rdetail.page.previous;' style='padding-left: 1em;'>&common.cn.previous;</a>
-
- <span class='search_page_nav_link' id='page_numbers'> </span>
-
- <a class='search_link' id='next_link'
- title='&rdetail.page.next;' style='padding-left: 1em;'>&common.cn.next;</a>
- <!--
- <a class='search_page_nav_link'
- id='end_link' title="&rdetail.page.last;">&rdetail.end;</a>
- -->
- </span>
-
- </td>
-
- <td colspan='5'
- style='padding-bottom: 4px; text-align:center; vertical-align: top; border-bottom: 1px solid #E0E0E0;'>
- <span id='search_info_table' class='hide_me' style='font-size: 8pt;'>
- <b>&result.info.copies; </b>
- </span>
- </td>
- </tr>
-
- <tr style='height: 2em;' id='result_thead_row'>
- <td>
- <div class='hide_me' id='no_formats' style='padding: 4px;'>
- <b>
- <span style='color:red;'>*</span>
- &result.info.no.items;
- <div>&result.info.format.items;</div>
- </b>
- </div>
-
- <div class='hide_me' id='rresult_show_all' style='padding: 4px;'>
- <a href='javascript:rresultExpandSearch();' id='rresult_show_all_link'
- class='classic_link'>&result.info.show; </a>
- </div>
-
- <div class='hide_me' id='rresult_show_here' style='padding: 4px;'>
- <a href='javascript:rresultContractSearch();' id='rresult_show_here_link'
- class='classic_link'>&result.info.show; </a>
- </div>
-
- </td>
- <td rowspan='2' style='font-size: 8pt; padding-top: 4px;' class='copy_count_cell'
- width='12%' align='center' name='result_thead_ccell'> </td>
- </tr>
-
- </tbody>
-</table>
-
+++ /dev/null
-
-<div id='result_low_hits' class='hide_me'>
-
- <br/><br/><br/>
-
- <div style='text-align: center; padding-bottom: 8px;'>
- <div id='result_low_hits_msg' class='hide_me'>&result.lowhits.few;</div>
- <div id='result_zero_hits_msg' class='hide_me'>&result.lowhits.zero;</div>
- </div>
-
- <!-- spell checker -->
- <div id='did_you_mean' class='lowhits_div hide_me'>
- <span>&result.lowhits.did.you.mean; </span>
- <a class='classic_link' id='spell_check_link'> </a>
- </div>
-
- <div id='low_hits_remove_format' class='lowhits_div hide_me'>
- <span>&result.lowhits.formats; </span>
- <a id='low_hits_remove_format_link' class='classic_link'>&result.lowhits.formats.search;</a>
- </div>
-
- <div id='low_hits_cross_ref' class='lowhits_div hide_me'>
- <span>&result.lowhits.related;</span>
- <div style='padding: 5px;'>
- <a id='low_hits_xref_link' class='classic_link' style='padding-right: 5px;'> </a>
- </div>
- </div>
-
- <div id='low_hits_expand_range' class='lowhits_div hide_me'>
- <span>&result.lowhits.expand; </span>
- <a id='low_hits_expand_link' class='classic_link' style='padding-right: 5px;'> </a>
- </div>
-
- <div id='low_hits_search_type' class='lowhits_div hide_me'>
- <span>&result.lowhits.class;</span>
- <a id='low_hits_title_search' class='hide_me classic_link'
- style='padding-right: 5px;'>&result.lowhits.title;</a>
- <a id='low_hits_author_search' class='hide_me classic_link'
- style='padding-right: 5px;'>&result.lowhits.author;</a>
- <a id='low_hits_subject_search' class='hide_me classic_link'
- style='padding-right: 5px;'>&result.lowhits.subject;</a>
- <a id='low_hits_series_search' class='hide_me classic_link'
- style='padding-right: 5px;'>&result.lowhits.series;</a>
- <a id='low_hits_keyword_search' class='hide_me classic_link'
- style='padding-right: 5px;'>&result.lowhits.keyword;</a>
- </div>
-
-</div>
-
+++ /dev/null
-<!-- Search results are spit into this table -->
-
-<div id='result_table_div' xmlns:xi="http://www.w3.org/2001/XInclude">
-
- <table id='res_table'>
-
- <!-- for some reason, this is the only way i can force the cell widths -->
- <thead id='result_thead'>
- <tr>
- <td class='result_table_pic_header'></td>
- <td> </td>
- </tr>
- </thead>
-
- <tbody id='result_table'>
- <tr>
-
- <td class='result_table_row'>
- <!--#include virtual="result_info.xml"-->
- </td>
- </tr>
-
- <!-- Template for displaying a search result. This row template is cloned and inserted
- for each result returned -->
-
- <tr id='result_table_template' class='hide_me'>
-
- <!-- Jacket image goes here -->
-
- <td class='result_table_row' align='left'>
- <table class='result_table_subtable'>
- <tbody align='left' class='result_table_subtbody'>
-
- <tr style='height: 1em' name='counts_row'>
-
- <td rowspan='6' class='result_table_pic_header'>
- <a><img name='item_jacket' class='result_table_pic'/></a>
- </td>
-
- <td align='left' class='result_table_title_cell' name='result_table_title_cell'>
- <!-- Title goes here -->
- <a title="&result.table.keyword;" name='item_title' class='search_link'>
- <!-- Title goes here -->
- </a>
- </td>
-
- <!-- Copy this td for each copy count appended -->
- <td rowspan='5' nowrap='nowrap' name="copy_count_cell" class='copy_count_cell'>
- </td>
-
- </tr>
-
- <tr style='height: 1em' >
- <td class='result_table_author_cell'>
- <a title="&result.table.author;" name='item_author' class='search_link'>
- <!-- Author goes here -->
- </a>
- <div>
- <span name='result_table_extra_span' class='hide_me'>
- <span name='result_table_pub_box' style='padding-left: 10px;'>
- <span name='result_table_edition_span' style='padding-left: 10px;'></span> |
- <span name='result_table_pub_span'> </span> |
- <span name='result_table_phys_span'> </span>
- </span>
- </span>
- </div>
- </td>
- </tr>
-
- <!--
- there is probably a more elegant way to achieve this but what
- happens here is that the record id is used to place resolver
- info in the correct place in the results list - the id is
- placed here from the js layer
- -->
- <tr id='result_table_recid' class='hide_me'>
- <td class='sfx_display'>
- <span class='sfx_image'>
- <img src='../local/images/sfxinfo.gif' alt=''/>
- <i>SFX E-Journals</i>
- </span>
- <span id='result_table_recid_span' name='result_table_recid_span' class='recid'>
- </span>
- </td>
- <td class='sfx_right'></td>
- </tr>
-
- <tr name="local_callnumber_list" class="result_table_title_cell">
- <td>&result.localCallNumbers;
- <!--
- we snag the record id from the 901 field, and then use it
- for lining up the resolver content
- -->
- <span
- type='opac/slot-data' query='datafield[tag=901] subfield[code=a]' class='hide_me'>
- <span class='hide_me' debug='true' type='opac/slot-format'><![CDATA[
- curr_title_id = dojo.trim(dojox.data.dom.textContent(item));
- ]]></span>
- </span>
- <!--
- this is very close to the layout in rdetail, we need to find the
- record id in order to place the resolver info in the right spot
- -->
- <span
- type='opac/slot-data' query='datafield[tag=022]' class='hide_me'>
- <span class='hide_me' debug='true' type='opac/slot-format'><![CDATA[
- var this_title_id = curr_title_id;
- var list = dojo.query( 'subfield:[code=a]', item );
- var issn = '';
- for (var i =0; i < list.length; i++) {
- issn = dojox.data.dom.textContent(list[i]) + '';
- issn = issn.replace(/^(\s|.)*?(\d{4}).(\d{3,4}[xX]?)(\s|.)*/, "$2-$3");
- if (issn.length > 0) {
- try {
- var ses = new OpenSRF.ClientSession('open-ils.resolver');
- var req = ses.request('open-ils.resolver.resolve_holdings.raw',
- 'issn', issn, 'http://sfx.scholarsportal.info/windsor');
- if (url_list[this_title_id] == undefined)
- url_list[this_title_id] = "";
- req.oncomplete = function(r) {
- var resolverInfo = "";
- dojo.forEach(r.recv().content(), function(entry) {
- resolverInfo = entry.public_name + "_" + entry.target_coverage;
- var testDup = url_list[this_title_id] + "";
-
- if (testDup.indexOf(resolverInfo) == -1) {
- var resolverNode = null;
- dojo.query('.recid').forEach(function(recinfo) {
- if (parseFloat(dojo.trim(dojox.data.dom.textContent(recinfo))) ==
- parseFloat(this_title_id))
- {
- resolverNode = recinfo;
- }
- });
- url_list[this_title_id] += resolverInfo;
- var output = null;
- if (resolverNode != null) {
- var parent = resolverNode.parentNode;
- if (parent)
- parent = parent.parentNode;
- if (parent)
- dojo.removeClass(parent,'hide_me');
- output = dojo.create('span',null,resolverNode,"last");
- dojo.addClass(output,"result_table_sfx_cell");
- dojo.create('br', null, output);
- var title_text = dojo.doc.createTextNode(" ");
- output.appendChild(title_text);
- title_list += this_title_id;
- var link = dojo.create('a', {"class":"search_link", "href": entry.target_url});
- var link_text = dojo.doc.createTextNode( entry.public_name);
- link.appendChild(link_text);
- output.appendChild(link);
- var coverage_text = dojo.doc.createTextNode(' - ' + entry.target_coverage
- + (entry.target_embargo ? (' / ' + entry.target_embargo) : ''));
- output.appendChild(coverage_text);
- }
- }
- });
- };
- req.send();
- } catch (err) {}
- }
- }
- return '<span> ' + issn + '</span><br/>';
- ]]></span>
- </span>
- <!-- Prevent records with dozens of items attached from filling the screen -->
- <span type='opac/slot-data+marcxml-full' query='volumes'>
- <span class='hide_me' debug='true' type='opac/slot-format'><![CDATA[
- var output = dojo.create('span');
-
- var item_cnt = 0;
- var max_items = 4;
-
- dojo.query('volume', item).forEach(function(vol) {
- if (item_cnt >= max_items) {
- return output.innerHTML;
- }
- dojo.query('copy', vol).forEach(function (cp) {
- if (cp.getAttribute('deleted') == 't') {
- return;
- }
- var loc_id;
- var vol_appended = false;
- dojo.query('location', cp).forEach(function (location) {
- loc_id = parseInt(location.getAttribute('ident'));
- if (loc_id != 8 && loc_id != 20) {
- if (!vol_appended) {
- dojo.create('span',{ className: 'live_location_cell',
- innerHTML: vol.getAttribute('label')},
- output);
- vol_appended = true;
- }
- dojo.create('span', { className: 'live_separator_cell',
- "innerHTML": ' - '},
- output);
- dojo.create('span', { className: 'live_location_cell',
- "innerHTML": dojox.xml.parser.textContent(location)},
- output);
- }
- });
- if (loc_id == 8 || loc_id == 20) {
- return;
- }
- dojo.query('status', cp).forEach(function (status) {
- var pfx = dojo.doc.createTextNode(' (');
- output.appendChild(pfx);
- dojo.create('span', { className: 'live_status_cell',
- "innerHTML": dojox.xml.parser.textContent(status) }, output);
- var qfx = dojo.doc.createTextNode(')');
- output.appendChild(qfx);
- });
- dojo.create('br', null, output);
-
- item_cnt++;
- if (item_cnt >= max_items) {
- output.appendChild(dojo.doc.createTextNode('... more print items listed in full record'));
- dojo.create('br', null, output);
- }
- });
- });
-
- return output.innerHTML;
- ]]></span>
- </span>
-
- <!-- Be lenient in what we accept -->
- <span type='opac/slot-data+marcxml-full' query='volumes volume uris uri'>
- <span class='hide_me' type='opac/slot-format'><![CDATA[
- var output = dojo.create('span');
- var uri = new Object;
- uri.href = item.getAttribute('href');
- /* url check for legacy (and mostly broken) urls */
- var test = null;
- var href = uri.href + "";
- if (urlCheck)
- test = href.match(urlExpr);
- if (test != null)
- return "";
- uri.label = item.getAttribute('label');
- uri.use = item.getAttribute('use_restriction');
- if (uri.href == uri.label) {
- if (uri.use && uri.use != uri.label) {
- uri.label = uri.use;
- uri.use = null;
- }
- }
- var link = dojo.create('a', {"class":"search_link", "href": uri.href});
- var link_text = dojo.doc.createTextNode(uri.label);
- link.appendChild(link_text);
- output.appendChild(link);
-
- if (uri.use) {
- var use_text = dojo.doc.createTextNode(' (' + uri.use + ')');
- output.appendChild(use_text);
- }
- dojo.create('br', null, output);
- return output.innerHTML;
- ]]></span>
- </span>
-
- </td>
- </tr>
-
-
- <tr style='height:1em;' >
- <td name='result_table_format_cell' class='result_table_format_cell'>
-
- <a name='text_link' class='search_link'>
- <img src='../../../../images/tor/text.jpg' class='dim tor_pic' />
- </a>
-
- <a name='sound recording-nonmusical_link' class='search_link'>
- <img src='../../../../images/tor/sound recording-nonmusical.jpg' class='dim tor_pic' />
- </a>
-
- <a name='moving image_link' class='search_link'>
- <img src='../../../../images/tor/moving image.jpg' class='dim tor_pic' />
- </a>
-
- <a name='software, multimedia_link' class='search_link'>
- <img src='../../../../images/tor/software, multimedia.jpg' class='dim tor_pic' />
- </a>
-
- <a name='sound recording-musical_link' class='search_link'>
- <img src='../../../../images/tor/sound recording-musical.jpg' class='dim tor_pic' />
- </a>
-
- <a name='cartographic_link' class='search_link'>
- <img src='../../../../images/tor/cartographic.jpg' class='dim tor_pic' />
- </a>
-
- <a name='mixed material_link' class='search_link'>
- <img src='../../../../images/tor/mixed material.jpg' class='dim tor_pic' />
- </a>
-
- <a name='notated music_link' class='search_link'>
- <img src='../../../../images/tor/notated music.jpg' class='dim tor_pic' />
- </a>
-
- <a name='sound recording_link' class='search_link'>
- <img src='../../../../images/tor/sound recording.jpg' class='dim tor_pic' />
- </a>
-
- <a name='still image_link' class='search_link'>
- <img src='../../../../images/tor/still images.jpg' class='dim tor_pic' />
- </a>
-
- <a name='three dimensional object_link' class='search_link'>
- <img src='../../../../images/tor/three dimensional object.jpg' class='dim tor_pic' />
- </a>
-
- <span class='hide_me'
- style='color: #9999FF; padding-left: 10px; font-size: 7pt; font-weight: 300;'>
-
- <span>&common.relevancy; </span><span name='relevancy_span'> </span>
- </span>
-
- <span class='hide_me' name='place_hold_span'>
- <a style='padding-left: 8px;' href='javascript:void(0);'
- class='classic_link' name='place_hold_link'>&opac.holds.placeHold;</a>
- </span>
-
- <!-- Empty span used for creating unAPI links -->
- <abbr style='padding-left: 8px;' name="unapi" class="unapi-id">
- <!-- unAPI URI goes here -->
- </abbr>
-
- <!-- Empty span used for creating Google Book Search-->
- <span name="googleBooksLink" class="hide_me">
- <a style='padding-left: 8px;' class='classic_link' name="googleBooks-link">&result.googleBooks.browse;</a>
- </span>
-
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- </tbody>
- </table>
-
- <!-- ====================== -->
- <table style='width: 100%; margin-top: 12px;' id='result_info_2' class='hide_me'>
- <tbody>
- <tr class='color_4' style='height: 1em;'>
- <td style='vertical-align: top;' id='next_prev_links2'>
- <span class='hide_me' id='result_info_div2' style='font-size: 9pt;'>
- <span> &common.results; </span>
- <b id='offset_start2'> </b>
- <!-- IE runs everything together so we force a character -->
- <span style='font-size: 2pt; visibility: hidden;'>-</span>
- <span> - </span>
- <span style='font-size: 2pt; visibility: hidden;'>-</span>
- <b id='offset_end2'> </b>
- <span style='font-size: 2pt; visibility: hidden;'>-</span>
- <span> &common.ofAtLeast; </span>
- <b id='result_count2'> </b>
- <span style='padding-left: 6px;'> (page </span>
- <span id='current_page2'> </span>
- <span style='font-size: 2pt; visibility: hidden;'>-</span>
- <span> &common.of; </span>
- <span style='font-size: 2pt; visibility: hidden;'>-</span>
- <span id='num_pages2'> </span>
- </span>
- <span id='start_end_links_span2' class='hide_me'
- style='padding-left: 40px;' >
- <a class='search_link' id='search_home_link2'
- title="&rdetail.page.results;" style='padding-left: 1em;'>&rdetail.start;</a><a class='search_link'
- id='prev_link2' title='&rdetail.page.previous;' style='padding-left: 1em;'>&common.cn.previous;</a>
-
- <span class='search_link' id='page_numbers2'> </span>
- <a class='search_link' id='next_link2'
- title='&rdetail.page.next;' style='padding-left: 1em;'>&common.cn.next;</a>
- <!--
- <a class='search_page_nav_link'
- id='end_link2' title="&rdetail.page.last;">&rdetail.end;</a>
- -->
- </span>
- </td>
-
- <td colspan='5'
- style='padding-bottom: 4px; text-align:center; vertical-align: top; border-bottom: 1px solid #E0E0E0;'>
- <!--
- <span id='search_info_table2' style='font-size: 8pt;'>
- <b>Available copies / Total copies </b>
- </span>
- -->
- </td>
- </tr>
- </tbody>
- </table>
-
- <!-- ====================== -->
-
- <script language='javascript' type='text/javascript'>
- config.names.result.format_cell = 'result_table_format_cell';
- config.names.result.format_link = 'resource_link'
- config.names.result.format_pic = 'format_pic'
- var url_list = new Array();
- var title_list = "";
- var curr_title_id = "";
- /* whether to use a url check to mask legacy urls */
- var urlCheck = true;
- /* regular expression */
- var urlExpr = "/webvoy|janus|resolver/i";
-
- </script>
-
-</div>
+++ /dev/null
-<!-- Sets our environment variables for convenience and determining which page we're on -->
-
-<!--#set var='OILS_PAGE' value="$DOCUMENT_NAME"-->
-
-<!--#if expr="$DOCUMENT_NAME='index.xml'"-->
- <!--#set var='OILS_TITLE' value='opac.title.home'-->
- <!--#set var='FRONT_PAGE' value='true'-->
-
-<!--#elif expr="$DOCUMENT_NAME='mresult.xml'"-->
- <!--#set var='OILS_TITLE' value='opac.title.mresult'-->
-
-
-<!--#elif expr="$DOCUMENT_NAME='rresult.xml'"-->
- <!--#set var='OILS_TITLE' value='opac.title.rresult'-->
-
-<!--#elif expr="$DOCUMENT_NAME='rdetail.xml'"-->
- <!--#set var='OILS_TITLE' value='opac.title.rdetail'-->
-
-<!--#elif expr="$DOCUMENT_NAME='rsdetail.xml'"-->
- <!--#set var='OILS_TITLE' value='opac.title.rsdetail'-->
-
-<!--#elif expr="$DOCUMENT_NAME='myopac.xml'"-->
- <!--#set var='OILS_TITLE' value='opac.title.myopac'-->
-
-<!--#elif expr="$DOCUMENT_NAME='advanced.xml'"-->
- <!--#set var='OILS_TITLE' value='opac.title.advanced'-->
-
-<!--#elif expr="$DOCUMENT_NAME='reqitems.xml'"-->
- <!--#set var='OILS_TITLE' value='opac.title.reqitems'-->
-
-<!--#elif expr="$DOCUMENT_NAME='cnbrowse.xml'"-->
- <!--#set var='OILS_TITLE' value='opac.title.cnbrowse'-->
-
-<!--#endif-->
-
-<!--#if expr="$HTTPS"-->
- <!--#set var="OILS_PROTOCOL" value="https"-->
- <!--#if expr="$OILS_OPAC_BYPASS_STATIC_FOR_HTTPS=='yes'"-->
- <!--#set var="OILS_OPAC_CSS_HOST" value=""-->
- <!--#set var="OILS_OPAC_JS_HOST" value=""-->
- <!--#endif-->
-<!--#else-->
- <!--#set var="OILS_PROTOCOL" value="http"-->
-<!--#endif-->
-
-<!--#if expr="$OILS_OPAC_STATIC_PROTOCOL"-->
-
-<!--#else-->
- <!--#set var="OILS_OPAC_STATIC_PROTOCOL" value="$OILS_PROTOCOL"-->
-<!--#endif-->
-
-<!--#set var="OILS_BASE" value="${OILS_PROTOCOL}://${SERVER_NAME}/${OILS_OPAC_BASE}"-->
-<!--#set var="OILS_XML_BASE" value="${OILS_BASE}/common/xml"-->
-
-
-<!-- Javascript host -->
-<!--#if expr="$OILS_OPAC_JS_HOST"-->
- <!--#set var="OILS_OPAC_JS_HOST" value="${OILS_OPAC_STATIC_PROTOCOL}://${OILS_OPAC_JS_HOST}"-->
-<!--#else -->
- <!--#set var="OILS_OPAC_JS_HOST" value="$OILS_BASE"-->
-<!--#endif -->
-<!--#set var="OILS_JS_BASE" value="${OILS_OPAC_JS_HOST}/common/js"-->
-
-
-<!--#if expr="$OILS_OPAC_CSS_HOST"-->
- <!--#set var="OILS_OPAC_CSS_HOST" value="${OILS_OPAC_STATIC_PROTOCOL}://${OILS_OPAC_CSS_HOST}"-->
-<!--#else -->
- <!--#set var="OILS_OPAC_CSS_HOST" value="$OILS_BASE"-->
-<!--#endif -->
-<!--#set var="OILS_THEME_BASE" value="${OILS_OPAC_CSS_HOST}/theme"-->
-<!--#set var="OILS_SKIN_BASE" value="${OILS_OPAC_CSS_HOST}/skin"-->
-<!--#set var="OILS_CSS_BASE" value="${OILS_OPAC_CSS_HOST}/common/css"-->
-
-
-<!--#if expr="!$locale || $locale=''"-->
- <!--#set var="locale" value="en-US"-->
-<!--#endif-->