| Line 0
          
      
      
        Link Here | 
            
              |  |  | 1 | [% INCLUDE 'doc-head-open.inc' %] | 
            
              | 2 | [% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog › OverDrive search for '[% q | html %]' | 
            
              | 3 | [% INCLUDE 'doc-head-close.inc' %] | 
            
              | 4 | <script type="text/javascript" src="[% themelang %]/js/overdrive.js"></script> | 
            
              | 5 | <script type="text/javascript"> | 
            
              | 6 | var querystring = "[% q |replace( "'", "\'" ) |replace( '\n', '\\n' ) |replace( '\r', '\\r' ) |html %]"; | 
            
              | 7 | var results_per_page = [% OPACnumSearchResults %]; | 
            
              | 8 |  | 
            
              | 9 | function fetch_availability( prod, $tr ) { | 
            
              | 10 |     var $availability_summary = $( '<span class="results_summary"></span>' ); | 
            
              | 11 |     $tr.find( '.info' ).append( $availability_summary ); | 
            
              | 12 |     $availability_summary.html( '<span class="label">Availability: </span> Loading...' ); | 
            
              | 13 |  | 
            
              | 14 |     KOHA.OverDrive.Get( | 
            
              | 15 |         prod.links.availability.href, | 
            
              | 16 |         {}, | 
            
              | 17 |         function ( data ) { | 
            
              | 18 |             if ( data.error ) return; | 
            
              | 19 |  | 
            
              | 20 |             $availability_summary.html( '<span class="label">Copies available: </span><span class="available"><strong>' +  data.copiesAvailable + '</strong> out of ' + data.copiesOwned + '</span>' ); | 
            
              | 21 |  | 
            
              | 22 |             if ( data.numberOfHolds ) { | 
            
              | 23 |                 $availability_summary.find( '.available' ).append( ', waiting holds: <strong>' + data.numberOfHolds + '</strong>' ); | 
            
              | 24 |             } | 
            
              | 25 |  | 
            
              | 26 |             $tr.find( '.info' ).append( '<span class="results_summary actions"><span class="label">Actions: </span><a href="http://' + prod.contentDetails[0].href + '" ' + ( data.copiesAvailable ? ' class="addtocart">Check out' : ' class="hold">Place hold' ) + '</a></span>' ); | 
            
              | 27 |         } | 
            
              | 28 |     ); | 
            
              | 29 | } | 
            
              | 30 |  | 
            
              | 31 | function search( offset ) { | 
            
              | 32 |     $( '#overdrive-status' ).html( 'Searching OverDrive... <img class="throbber" src="/opac-tmpl/lib/jquery/plugins/themes/classic/throbber.gif" /></span>' ); | 
            
              | 33 |  | 
            
              | 34 |     KOHA.OverDrive.Search( "[% OverDriveLibraryID %]", querystring, results_per_page, offset, function( data ) { | 
            
              | 35 |         if ( data.error ) { | 
            
              | 36 |             $( '#overdrive-status' ).html( '<strong class="unavailable">Error searching OverDrive collection.</strong>' ); | 
            
              | 37 |             return; | 
            
              | 38 |         } | 
            
              | 39 |  | 
            
              | 40 |         if ( !data.totalItems ) { | 
            
              | 41 |             $( '#overdrive-status' ).html( '<strong>No results found in the library\'s OverDrive collection.</strong>' ); | 
            
              | 42 |             return; | 
            
              | 43 |         } | 
            
              | 44 |  | 
            
              | 45 |         $( '#results tbody' ).empty(); | 
            
              | 46 |  | 
            
              | 47 |         $( '#overdrive-status' ).html( '<strong>Found ' + data.totalItems + ' results in the library\'s OverDrive collection.</strong>' ); | 
            
              | 48 |  | 
            
              | 49 |         for ( var i = 0; data.products[i]; i++ ) { | 
            
              | 50 |             var prod = data.products[i]; | 
            
              | 51 |             var results = []; | 
            
              | 52 |  | 
            
              | 53 |             results.push( '<tr>' ); | 
            
              | 54 |  | 
            
              | 55 |             results.push( '<td class="info"><a class="title" href="http://', prod.contentDetails[0].href, '">' ); | 
            
              | 56 |             results.push( prod.title ); | 
            
              | 57 |             if ( prod.subtitle ) results.push( ', ', prod.subtitle ); | 
            
              | 58 |             results.push( '</a>' ); | 
            
              | 59 |             results.push( '<p>by ', prod.primaryCreator.name, '</p>' ); | 
            
              | 60 |             results.push( '<span class="results_summary"><span class="label">Type: </span>', prod.mediaType, '</span>' ); | 
            
              | 61 |             if ( prod.starRating ) results.push( '<span class="results_summary"><span class="label">Average rating: <img src="[% themelang %]/../images/Star', Math.round( parseInt( prod.starRating )), '.gif" title="" style="max-height: 15px; vertical-align: bottom"/></span>' ); | 
            
              | 62 |             results.push( '</td>' ); | 
            
              | 63 |  | 
            
              | 64 |             results.push( '<td>' ); | 
            
              | 65 |             if ( prod.images.thumbnail ) { | 
            
              | 66 |                 results.push( '<a href="http://', prod.contentDetails[0].href, '">' ); | 
            
              | 67 |                 results.push( '<img class="thumbnail" src="', prod.images.thumbnail.href, '" />' ); | 
            
              | 68 |                 results.push( '</a>' ); | 
            
              | 69 |             } | 
            
              | 70 |             results.push( '</td>' ); | 
            
              | 71 |  | 
            
              | 72 |             results.push( '</tr>' ); | 
            
              | 73 |             var $tr = $( results.join( '' )); | 
            
              | 74 |             $( '#results tbody' ).append( $tr ); | 
            
              | 75 |  | 
            
              | 76 |             fetch_availability( prod, $tr ); | 
            
              | 77 |         } | 
            
              | 78 |  | 
            
              | 79 |         $( '#results tr:odd' ).addClass( 'highlight' ); | 
            
              | 80 |  | 
            
              | 81 |         var pages = []; | 
            
              | 82 |         var cur_page = offset / results_per_page; | 
            
              | 83 |         var max_page = Math.floor( data.totalItems / results_per_page ); | 
            
              | 84 |  | 
            
              | 85 |         if ( cur_page != 0 ) { | 
            
              | 86 |             pages.push( '<a class="nav" href="#" data-offset="' + (offset - results_per_page) + '"><< Previous</a>' ); | 
            
              | 87 |         } | 
            
              | 88 |  | 
            
              | 89 |         for ( var page = Math.max( 0, cur_page - 9 ); page <= Math.min( max_page, cur_page + 9 ); page++ ) { | 
            
              | 90 |             if ( page == cur_page ) { | 
            
              | 91 |                 pages.push( ' <span class="current">' + ( page + 1 ) + '</span>' ); | 
            
              | 92 |             } else { | 
            
              | 93 |                 pages.push( ' <a class="nav" href="#" data-offset="' + ( page * results_per_page ) + '">' + ( page + 1 ) + '</a>' ); | 
            
              | 94 |             } | 
            
              | 95 |         } | 
            
              | 96 |  | 
            
              | 97 |         if ( cur_page < max_page ) { | 
            
              | 98 |             pages.push( ' <a class="nav" href="#" data-offset="' + (offset + results_per_page) + '">Next >></a>' ); | 
            
              | 99 |         } | 
            
              | 100 |  | 
            
              | 101 |         if ( pages.length > 1 ) $( '#top-pages, #bottom-pages' ).find( '.pages' ).html( pages.join( '' ) ); | 
            
              | 102 |     } ); | 
            
              | 103 | } | 
            
              | 104 |  | 
            
              | 105 | $( document ).ready( function() { | 
            
              | 106 |     $( '#breadcrumbs p' ) | 
            
              | 107 |         .append( ' ' ) | 
            
              | 108 |         .append( '<span id="overdrive-status"></span>' ); | 
            
              | 109 |  | 
            
              | 110 |     $( document ).on( 'click', 'a.nav', function() { | 
            
              | 111 |         search( $( this ).data( 'offset' ) ); | 
            
              | 112 |         return false; | 
            
              | 113 |     }); | 
            
              | 114 |  | 
            
              | 115 |     search( 0 ); | 
            
              | 116 | } ); | 
            
              | 117 | </script> | 
            
              | 118 | <style> | 
            
              | 119 | .actions a.addtocart { | 
            
              | 120 |     display: inline; | 
            
              | 121 | } | 
            
              | 122 | </style> | 
            
              | 123 | </head> | 
            
              | 124 | <body> | 
            
              | 125 | [% IF ( OpacNav ) %] | 
            
              | 126 | <div id="doc3" class="yui-t1"> | 
            
              | 127 | [% ELSE %] | 
            
              | 128 | <div id="doc3" class="yui-t7"> | 
            
              | 129 | [% END %] | 
            
              | 130 |    <div id="bd"> | 
            
              | 131 | [% INCLUDE 'masthead.inc' %] | 
            
              | 132 |  | 
            
              | 133 | 	<h1>OverDrive search for '[% q | html %]'</h1> | 
            
              | 134 |     <div id="breadcrumbs"> | 
            
              | 135 |         <p></p> | 
            
              | 136 |     </div> | 
            
              | 137 |  | 
            
              | 138 | 	<div id="yui-main"><div class="yui-b searchresults"> | 
            
              | 139 |         <div id="top-pages"> | 
            
              | 140 |             <div class="pages"> | 
            
              | 141 |             </div> | 
            
              | 142 |         </div> | 
            
              | 143 |         <table id="results"> | 
            
              | 144 |             <tbody> | 
            
              | 145 |             </tbody> | 
            
              | 146 |         </table> | 
            
              | 147 |         <div id="bottom-pages"> | 
            
              | 148 |             <div class="pages"> | 
            
              | 149 |             </div> | 
            
              | 150 |         </div> | 
            
              | 151 |      </div></div> | 
            
              | 152 |  | 
            
              | 153 | [% IF ( OpacNav ) %] | 
            
              | 154 | <div class="yui-b"><div id="opacnav" class="container"> | 
            
              | 155 | [% INCLUDE 'navigation.inc' %] | 
            
              | 156 | </div></div> | 
            
              | 157 | [% END %] | 
            
              | 158 |  | 
            
              | 159 |  | 
            
              | 160 | </div> | 
            
              | 161 | [% INCLUDE 'opac-bottom.inc' %] |