Copying this change from the IA cluster:

Author: tracey <tracey@a2fc6409-3009-4933-8622-f303ca26f794>
Date:   Sun Apr 13 02:15:10 2014 +0000

    if extra CGI arg "fail=soon.jpg" is passed in, pass it on to datanode, so instead of text 404 failing, fail with std "coming soon" style JPG (esp. for items w/o image stacks and/or w/o covers and /services/get-item-image.php)
Copying these changes from the IA cluster:

commit 8d4c44750445dd15d01a0e972de50aebe3e18771
Author: rkumar <rkumar@a2fc6409-3009-4933-8622-f303ca26f794>
Date:   Fri May 23 22:11:05 2014 +0000

    BookReaderImages.inc.php: use RFC5987 encoding in the Content-disposition
    header. Otherwise, Chrome fails to show images with spaces in the filename.

commit 176071c6a6a19c4f58669121564693dea153cd1f
Author: rkumar <rkumar@a2fc6409-3009-4933-8622-f303ca26f794>
Date:   Fri May 23 22:10:55 2014 +0000

    BookReaderImages.inc.php: clean trailing whitespace

commit 167517ee042e00e7fd61b291bd56c50342a4c999
Author: hank <hank@a2fc6409-3009-4933-8622-f303ca26f794>
Date:   Mon May 12 22:47:44 2014 +0000

    unzip does shell-type wildcard expansion on *, ?, [...] in filenames; escape those chars (and the backslash itself, if already present)
Copying this change from the IA cluster:

commit 5b168d887b5304b5cab0f1b4f24b28cd2ad420ee
Author: tracey <tracey@a2fc6409-3009-4933-8622-f303ca26f794>
Date:   Sun Apr 13 02:14:29 2014 +0000

    if extra CGI arg "fail=soon.jpg" is passed in, instead of text 404 failing, fail with std "coming soon" style JPG (esp. for items w/o image stacks and/or w/o covers and /services/get-item-image.php)
Copying these changes from the IA cluster:

commit b604d12d4c177507529b29c0662ad3d10660e107
Author: rkumar <rkumar@a2fc6409-3009-4933-8622-f303ca26f794>
Date:   Wed Mar 26 18:41:07 2014 +0000

    BookReader: $useOLAuth was being used before initialized.

commit 7455e829d968e723b8976ee1777406d22693d228
Author: rkumar <rkumar@a2fc6409-3009-4933-8622-f303ca26f794>
Date:   Mon Mar 24 22:57:02 2014 +0000

    BookReader: fix issues with proper escaping of javascript strings
    [WEBDEV-16, with sam]

commit 72d102631a53441f31a2ea5e433256296e788d1b
Author: hank <hank@a2fc6409-3009-4933-8622-f303ca26f794>
Date:   Fri Mar 7 23:30:25 2014 +0000

    fix typo (missing $) and check that array element exists before using it

commit 4716f9883fa6ad8b7906b98d906e6433a08213f3
Author: anand <anand@a2fc6409-3009-4933-8622-f303ca26f794>
Date:   Mon Feb 24 04:38:37 2014 +0000

    s/Checking loan status with Open Library/Checking loan status/

    Made it general so that it makes sense even when borrowing books from
    archive.org.

commit d05a82ae0160a8ad78dcd3af21907b8bf8c39126
Author: anand <anand@a2fc6409-3009-4933-8622-f303ca26f794>
Date:   Mon Feb 24 04:38:10 2014 +0000

    Hack to display "Return book" button in bookreader for IA loans.

    The bookreader is designed to call openlibrary API and constructs the
    "Return book" button using the response. Now that we have lending
    available on archive.org, it becomes tricky to make the "Return book"
    button go to archive.org instead of openlibrary.org.

    To solve this, the ol-auth-url cookie is used to identify if the loan is
    archive.org, and if so, a new implementation of getOpenLibraryRecord
    function is provided, which adds the "return book" button appropriately.
    In the original case the getOpenLibraryRecord function makes a call to
    OL API and calls the given callback function with the response from the
    API.
send an analytics event when the user turns a page, per Sam.
Add theme support to BookReader, in preparation for upcoming archive.org redesign.
Update BookReader Demo for theme support.