diff --git a/themes/blueprint/js/preview.js b/themes/blueprint/js/preview.js index 5d7b6816f6e2fb959042a9b83f3d4aa453212c0e..14a804b7a3ad3064970dc2a00e056e4c0c9fc7a2 100644 --- a/themes/blueprint/js/preview.js +++ b/themes/blueprint/js/preview.js @@ -1,4 +1,7 @@ $(document).ready(function() { + if (!Array.prototype.indexOf) { + setIndexOf(); + } getBookPreviews(); }); @@ -117,4 +120,42 @@ function processBookInfo(booksInfo, previewClass) { } } } +} +/** + * Array.indexOf is not universally supported + * We need to set it for users who don't have it. + * + * developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf + */ +function setIndexOf() { + Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) { + "use strict"; + if (this == null) { + throw new TypeError(); + } + var t = Object(this); + var len = t.length >>> 0; + if (len === 0) { + return -1; + } + var n = 0; + if (arguments.length > 1) { + n = Number(arguments[1]); + if (n != n) { // shortcut for verifying if it's NaN + n = 0; + } else if (n != 0 && n != Infinity && n != -Infinity) { + n = (n > 0 || -1) * Math.floor(Math.abs(n)); + } + } + if (n >= len) { + return -1; + } + var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0); + for (; k < len; k++) { + if (k in t && t[k] === searchElement) { + return k; + } + } + return -1; + } } \ No newline at end of file