| Lines 1-88
          
      
      
        Link Here | 
        
          | 1 | /* global enquire readCookie updateBasket delCookie __ */ | 1 | /* global enquire readCookie updateBasket delCookie __ */ | 
          
            
              | 2 | (function( w ){ | 2 | (function (w) { | 
        
          | 3 |     // if the class is already set, the font has already been loaded | 3 |     // if the class is already set, the font has already been loaded | 
          
            
              | 4 |     if( w.document.documentElement.className.indexOf( "fonts-loaded" ) > -1 ){ | 4 |     if (w.document.documentElement.className.indexOf("fonts-loaded") > -1) { | 
        
          | 5 |         return; | 5 |         return; | 
        
          | 6 |     } | 6 |     } | 
          
            
              | 7 |     var PrimaryFont = new w.FontFaceObserver( "NotoSans", { | 7 |     var PrimaryFont = new w.FontFaceObserver("NotoSans", { | 
            
              | 8 |         weight: 400 | 8 |         weight: 400, | 
        
          | 9 |     }); | 9 |     }); | 
        
          | 10 |  | 10 |  | 
          
            
              | 11 |     PrimaryFont.load(null, 5000).then(function(){ | 11 |     PrimaryFont.load(null, 5000).then( | 
            
              | 12 |         w.document.documentElement.className += " fonts-loaded"; | 12 |         function () { | 
            
              | 13 |     }, function(){ | 13 |             w.document.documentElement.className += " fonts-loaded"; | 
            
              | 14 |         console.log("Failed"); | 14 |         }, | 
            
              | 15 |     }); | 15 |         function () { | 
            
              | 16 | }( this )); | 16 |             // Could not load web font | 
            
              |  |  | 17 |         } | 
            
              | 18 |     ); | 
            
              | 19 | })(this); | 
        
          | 17 |  | 20 |  | 
        
          | 18 | // http://stackoverflow.com/questions/1038746/equivalent-of-string-format-in-jquery/5341855#5341855 | 21 | // http://stackoverflow.com/questions/1038746/equivalent-of-string-format-in-jquery/5341855#5341855 | 
          
            
              | 19 | String.prototype.format = function() { return formatstr(this, arguments) } | 22 | String.prototype.format = function () { | 
            
              |  |  | 23 |     return formatstr(this, arguments); | 
            
              | 24 | }; | 
        
          | 20 | function formatstr(str, col) { | 25 | function formatstr(str, col) { | 
          
            
              | 21 |     col = typeof col === 'object' ? col : Array.prototype.slice.call(arguments, 1); | 26 |     col = | 
            
              |  |  | 27 |         typeof col === "object" | 
            
              | 28 |             ? col | 
            
              | 29 |             : Array.prototype.slice.call(arguments, 1); | 
        
          | 22 |     var idx = 0; | 30 |     var idx = 0; | 
        
          | 23 |     return str.replace(/%%|%s|%(\d+)\$s/g, function (m, n) { | 31 |     return str.replace(/%%|%s|%(\d+)\$s/g, function (m, n) { | 
          
            
              | 24 |         if (m == "%%") { return "%"; } | 32 |         if (m == "%%") { | 
            
              | 25 |         if (m == "%s") { return col[idx++]; } | 33 |             return "%"; | 
            
              |  |  | 34 |         } | 
            
              | 35 |         if (m == "%s") { | 
            
              | 36 |             return col[idx++]; | 
            
              | 37 |         } | 
        
          | 26 |         return col[n]; | 38 |         return col[n]; | 
        
          | 27 |     }); | 39 |     }); | 
          
            
              | 28 | }; | 40 | } | 
        
          | 29 |  | 41 |  | 
        
          | 30 | var HtmlCharsToEscape = { | 42 | var HtmlCharsToEscape = { | 
          
            
              | 31 |     '&': '&', | 43 |     "&": "&", | 
            
              | 32 |     '<': '<', | 44 |     "<": "<", | 
            
              | 33 |     '>': '>' | 45 |     ">": ">", | 
        
          | 34 | }; | 46 | }; | 
          
            
              | 35 | String.prototype.escapeHtml = function() { | 47 | String.prototype.escapeHtml = function () { | 
            
              | 36 |     return this.replace(/[&<>]/g, function(c) { | 48 |     return this.replace(/[&<>]/g, function (c) { | 
        
          | 37 |         return HtmlCharsToEscape[c] || c; | 49 |         return HtmlCharsToEscape[c] || c; | 
        
          | 38 |     }); | 50 |     }); | 
        
          | 39 | }; | 51 | }; | 
          
            
              | 40 | function escape_str(s){ | 52 | function escape_str(s) { | 
        
          | 41 |     return s != null ? s.escapeHtml() : ""; | 53 |     return s != null ? s.escapeHtml() : ""; | 
        
          | 42 | } | 54 | } | 
        
          | 43 |  | 55 |  | 
        
          | 44 | function confirmDelete(message) { | 56 | function confirmDelete(message) { | 
          
            
              | 45 |     return (confirm(message) ? true : false); | 57 |     return confirm(message) ? true : false; | 
        
          | 46 | } | 58 | } | 
        
          | 47 |  | 59 |  | 
        
          | 48 | function Dopop(link) { | 60 | function Dopop(link) { | 
          
            
              | 49 |     newin=window.open(link,'popup','width=660,height=450,toolbar=false,scrollbars=yes,resizable=yes'); | 61 |     newin = window.open( | 
            
              |  |  | 62 |         link, | 
            
              | 63 |         "popup", | 
            
              | 64 |         "width=660,height=450,toolbar=false,scrollbars=yes,resizable=yes" | 
            
              | 65 |     ); | 
        
          | 50 | } | 66 | } | 
        
          | 51 |  | 67 |  | 
          
            
              | 52 | jQuery.fn.preventDoubleFormSubmit = function() { | 68 | jQuery.fn.preventDoubleFormSubmit = function () { | 
            
              | 53 |     jQuery(this).submit(function() { | 69 |     jQuery(this).submit(function () { | 
            
              | 54 |         if (this.beenSubmitted) | 70 |         if (this.beenSubmitted) return false; | 
            
              | 55 |             return false; | 71 |         else this.beenSubmitted = true; | 
            
              | 56 |         else |  |  | 
            
              | 57 |             this.beenSubmitted = true; | 
        
          | 58 |     }); | 72 |     }); | 
        
          | 59 | }; | 73 | }; | 
        
          | 60 |  | 74 |  | 
          
            
              | 61 | function prefixOf (s, tok) { | 75 | function prefixOf(s, tok) { | 
        
          | 62 |     var index = s.indexOf(tok); | 76 |     var index = s.indexOf(tok); | 
        
          | 63 |     return s.substring(0, index); | 77 |     return s.substring(0, index); | 
        
          | 64 | } | 78 | } | 
          
            
              | 65 | function suffixOf (s, tok) { | 79 | function suffixOf(s, tok) { | 
        
          | 66 |     var index = s.indexOf(tok); | 80 |     var index = s.indexOf(tok); | 
        
          | 67 |     return s.substring(index + 1); | 81 |     return s.substring(index + 1); | 
        
          | 68 | } | 82 | } | 
        
          | 69 |  | 83 |  | 
          
            
              | 70 | $("body").on("keypress", ".noEnterSubmit", function(e){ | 84 | $("body").on("keypress", ".noEnterSubmit", function (e) { | 
        
          | 71 |     return checkEnter(e); | 85 |     return checkEnter(e); | 
        
          | 72 | }); | 86 | }); | 
        
          | 73 |  | 87 |  | 
        
          | 74 | // http://jennifermadden.com/javascript/stringEnterKeyDetector.html | 88 | // http://jennifermadden.com/javascript/stringEnterKeyDetector.html | 
          
            
              | 75 | function checkEnter(e){ //e is event object passed from function invocation | 89 | function checkEnter(e) { | 
            
              |  |  | 90 |     //e is event object passed from function invocation | 
        
          | 76 |     var characterCode; // literal character code will be stored in this variable | 91 |     var characterCode; // literal character code will be stored in this variable | 
          
            
              | 77 |     if(e && e.which){ //if which property of event object is supported (NN4) | 92 |     if (e && e.which) { | 
            
              |  |  | 93 |         //if which property of event object is supported (NN4) | 
        
          | 78 |         characterCode = e.which; //character code is contained in NN4's which property | 94 |         characterCode = e.which; //character code is contained in NN4's which property | 
        
          | 79 |     } else { | 95 |     } else { | 
        
          | 80 |         characterCode = e.keyCode; //character code is contained in IE's keyCode property | 96 |         characterCode = e.keyCode; //character code is contained in IE's keyCode property | 
        
          | 81 |     } | 97 |     } | 
          
            
              | 82 |     if( characterCode == 13 //if generated character code is equal to ascii 13 (if enter key) | 98 |     if ( | 
            
              | 83 |         && e.target.nodeName == "INPUT" | 99 |         characterCode == 13 && //if generated character code is equal to ascii 13 (if enter key) | 
            
              | 84 |         && e.target.type != "submit" // Allow enter to submit using the submit button | 100 |         e.target.nodeName == "INPUT" && | 
            
              | 85 |     ){ | 101 |         e.target.type != "submit" // Allow enter to submit using the submit button | 
            
              |  |  | 102 |     ) { | 
        
          | 86 |         return false; | 103 |         return false; | 
        
          | 87 |     } else { | 104 |     } else { | 
        
          | 88 |         return true; | 105 |         return true; | 
  
    | Lines 91-99
          function checkEnter(e){ //e is event object passed from function invocation
      
      
        Link Here | 
        
          | 91 |  | 108 |  | 
        
          | 92 | // Adapted from https://gist.github.com/jnormore/7418776 | 109 | // Adapted from https://gist.github.com/jnormore/7418776 | 
        
          | 93 | function confirmModal(message, title, yes_label, no_label, callback) { | 110 | function confirmModal(message, title, yes_label, no_label, callback) { | 
          
            
              | 94 |     $("#bootstrap-confirm-box-modal").data('confirm-yes', false); | 111 |     $("#bootstrap-confirm-box-modal").data("confirm-yes", false); | 
            
              | 95 |     if($("#bootstrap-confirm-box-modal").length == 0) { | 112 |     if ($("#bootstrap-confirm-box-modal").length == 0) { | 
            
              | 96 |         $("body").append('<div id="bootstrap-confirm-box-modal" tabindex="-1" role="dialog" aria-hidden="true" class="modal">\ | 113 |         $("body").append( | 
            
              |  |  | 114 |             '<div id="bootstrap-confirm-box-modal" tabindex="-1" role="dialog" aria-hidden="true" class="modal">\ | 
        
          | 97 |             <div class="modal-dialog">\ | 115 |             <div class="modal-dialog">\ | 
        
          | 98 |                 <div class="modal-content">\ | 116 |                 <div class="modal-content">\ | 
        
          | 99 |                     <div class="modal-header" style="min-height:40px;">\ | 117 |                     <div class="modal-header" style="min-height:40px;">\ | 
  
    | Lines 109-139
          function confirmModal(message, title, yes_label, no_label, callback) {
      
      
        Link Here | 
        
          | 109 |                     </div>\ | 127 |                     </div>\ | 
        
          | 110 |                 </div>\ | 128 |                 </div>\ | 
        
          | 111 |             </div>\ | 129 |             </div>\ | 
          
            
              | 112 |         </div>'); | 130 |         </div>' | 
            
              | 113 |         $("#bootstrap-confirm-box-modal-submit").on('click', function () { | 131 |         ); | 
            
              | 114 |             $("#bootstrap-confirm-box-modal").data('confirm-yes', true); | 132 |         $("#bootstrap-confirm-box-modal-submit").on("click", function () { | 
            
              | 115 |             $("#bootstrap-confirm-box-modal").modal('hide'); | 133 |             $("#bootstrap-confirm-box-modal").data("confirm-yes", true); | 
            
              |  |  | 134 |             $("#bootstrap-confirm-box-modal").modal("hide"); | 
        
          | 116 |             return false; | 135 |             return false; | 
        
          | 117 |         }); | 136 |         }); | 
          
            
              | 118 |         $("#bootstrap-confirm-box-modal").on('hide.bs.modal', function () { | 137 |         $("#bootstrap-confirm-box-modal").on("hide.bs.modal", function () { | 
            
              | 119 |             if(callback) callback($("#bootstrap-confirm-box-modal").data('confirm-yes')); | 138 |             if (callback) | 
            
              |  |  | 139 |                 callback($("#bootstrap-confirm-box-modal").data("confirm-yes")); | 
        
          | 120 |         }); | 140 |         }); | 
        
          | 121 |     } | 141 |     } | 
        
          | 122 |  | 142 |  | 
          
            
              | 123 |     $("#bootstrap-confirm-box-modal .modal-header h4").text( title || "" ); | 143 |     $("#bootstrap-confirm-box-modal .modal-header h4").text(title || ""); | 
            
              | 124 |     if( message && message != "" ){ | 144 |     if (message && message != "") { | 
            
              | 125 |         $("#bootstrap-confirm-box-modal .modal-body").html( message || "" ); | 145 |         $("#bootstrap-confirm-box-modal .modal-body").html(message || ""); | 
        
          | 126 |     } else { | 146 |     } else { | 
        
          | 127 |         $("#bootstrap-confirm-box-modal .modal-body").remove(); | 147 |         $("#bootstrap-confirm-box-modal .modal-body").remove(); | 
        
          | 128 |     } | 148 |     } | 
          
            
              | 129 |     $("#bootstrap-confirm-box-modal-submit").text( yes_label || 'Confirm' ); | 149 |     $("#bootstrap-confirm-box-modal-submit").text(yes_label || "Confirm"); | 
            
              | 130 |     $("#bootstrap-confirm-box-modal-cancel").text( no_label || 'Cancel' ); | 150 |     $("#bootstrap-confirm-box-modal-cancel").text(no_label || "Cancel"); | 
            
              | 131 |     $("#bootstrap-confirm-box-modal").modal('show'); | 151 |     $("#bootstrap-confirm-box-modal").modal("show"); | 
        
          | 132 | } | 152 | } | 
        
          | 133 |  | 153 |  | 
            
              | 134 |  |  |  | 
        
          | 135 | // Function to check errors from AJAX requests | 154 | // Function to check errors from AJAX requests | 
          
            
              | 136 | const checkError = function(response) { | 155 | const checkError = function (response) { | 
        
          | 137 |     if (response.status >= 200 && response.status <= 299) { | 156 |     if (response.status >= 200 && response.status <= 299) { | 
        
          | 138 |         return response.json(); | 157 |         return response.json(); | 
        
          | 139 |     } else { | 158 |     } else { | 
  
    | Lines 144-235
          const checkError = function(response) {
      
      
        Link Here | 
        
          | 144 | }; | 163 | }; | 
        
          | 145 |  | 164 |  | 
        
          | 146 | //Add jQuery :focusable selector | 165 | //Add jQuery :focusable selector | 
          
            
              | 147 | (function($) { | 166 | (function ($) { | 
        
          | 148 |     function visible(element) { | 167 |     function visible(element) { | 
          
            
              | 149 |         return $.expr.filters.visible(element) && !$(element).parents().addBack().filter(function() { | 168 |         return ( | 
            
              | 150 |             return $.css(this, 'visibility') === 'hidden'; | 169 |             $.expr.filters.visible(element) && | 
            
              | 151 |         }).length; | 170 |             !$(element) | 
            
              |  |  | 171 |                 .parents() | 
            
              | 172 |                 .addBack() | 
            
              | 173 |                 .filter(function () { | 
            
              | 174 |                     return $.css(this, "visibility") === "hidden"; | 
            
              | 175 |                 }).length | 
            
              | 176 |         ); | 
        
          | 152 |     } | 177 |     } | 
        
          | 153 |  | 178 |  | 
        
          | 154 |     function focusable(element, isTabIndexNotNaN) { | 179 |     function focusable(element, isTabIndexNotNaN) { | 
          
            
              | 155 |         var map, mapName, img, nodeName = element.nodeName.toLowerCase(); | 180 |         var map, | 
            
              | 156 |         if ('area' === nodeName) { | 181 |             mapName, | 
            
              |  |  | 182 |             img, | 
            
              | 183 |             nodeName = element.nodeName.toLowerCase(); | 
            
              | 184 |         if ("area" === nodeName) { | 
        
          | 157 |             map = element.parentNode; | 185 |             map = element.parentNode; | 
        
          | 158 |             mapName = map.name; | 186 |             mapName = map.name; | 
          
            
              | 159 |             if (!element.href || !mapName || map.nodeName.toLowerCase() !== 'map') { | 187 |             if ( | 
            
              |  |  | 188 |                 !element.href || | 
            
              | 189 |                 !mapName || | 
            
              | 190 |                 map.nodeName.toLowerCase() !== "map" | 
            
              | 191 |             ) { | 
        
          | 160 |                 return false; | 192 |                 return false; | 
        
          | 161 |             } | 193 |             } | 
          
            
              | 162 |             img = $('img[usemap=#' + mapName + ']')[0]; | 194 |             img = $("img[usemap=#" + mapName + "]")[0]; | 
        
          | 163 |             return !!img && visible(img); | 195 |             return !!img && visible(img); | 
        
          | 164 |         } | 196 |         } | 
          
            
              | 165 |         return (/input|select|textarea|button|object/.test(nodeName) ? | 197 |         return ( | 
            
              | 166 |                 !element.disabled : | 198 |             (/input|select|textarea|button|object/.test(nodeName) | 
            
              | 167 |                 'a' === nodeName ? | 199 |                 ? !element.disabled | 
            
              | 168 |                 element.href || isTabIndexNotNaN : | 200 |                 : "a" === nodeName | 
            
              | 169 |                 isTabIndexNotNaN) && | 201 |                 ? element.href || isTabIndexNotNaN | 
            
              |  |  | 202 |                 : isTabIndexNotNaN) && | 
        
          | 170 |             // the element and all of its ancestors must be visible | 203 |             // the element and all of its ancestors must be visible | 
          
            
              | 171 |             visible(element); | 204 |             visible(element) | 
            
              |  |  | 205 |         ); | 
        
          | 172 |     } | 206 |     } | 
        
          | 173 |  | 207 |  | 
          
            
              | 174 |     $.extend($.expr[':'], { | 208 |     $.extend($.expr[":"], { | 
            
              | 175 |         focusable: function(element) { | 209 |         focusable: function (element) { | 
            
              | 176 |             return focusable(element, !isNaN($.attr(element, 'tabindex'))); | 210 |             return focusable(element, !isNaN($.attr(element, "tabindex"))); | 
            
              | 177 |         } | 211 |         }, | 
        
          | 178 |     }); | 212 |     }); | 
        
          | 179 | })(jQuery); | 213 | })(jQuery); | 
        
          | 180 |  | 214 |  | 
          
            
              | 181 | enquire.register("screen and (max-width:608px)", { | 215 | if (typeof enquire == "object") { | 
            
              | 182 |     match : function() { | 216 |     enquire.register("screen and (max-width:608px)", { | 
            
              | 183 |         if($("body.scrollto").length > 0){ | 217 |         match: function () { | 
            
              | 184 |             window.scrollTo( 0, $(".maincontent").offset().top ); | 218 |             if ($("body.scrollto").length > 0) { | 
            
              | 185 |         } | 219 |                 window.scrollTo(0, $(".maincontent").offset().top); | 
            
              | 186 |     } | 220 |             } | 
            
              | 187 | }); | 221 |         }, | 
            
              |  |  | 222 |     }); | 
        
          | 188 |  | 223 |  | 
          
            
              | 189 | enquire.register("screen and (min-width:992px)", { | 224 |     enquire.register("screen and (min-width:992px)", { | 
            
              | 190 |     match : function() { | 225 |         match: function () { | 
            
              | 191 |         facetMenu( "show" ); | 226 |             facetMenu("show"); | 
            
              | 192 |     }, | 227 |         }, | 
            
              | 193 |     unmatch : function() { | 228 |         unmatch: function () { | 
            
              | 194 |         facetMenu( "hide" ); | 229 |             facetMenu("hide"); | 
            
              | 195 |     } | 230 |         }, | 
            
              | 196 | }); | 231 |     }); | 
            
              |  |  | 232 | } | 
        
          | 197 |  | 233 |  | 
          
            
              | 198 | function facetMenu( action ){ | 234 | function facetMenu(action) { | 
            
              | 199 |     if( action == "show" ){ | 235 |     if (action == "show") { | 
            
              | 200 |         $(".menu-collapse-toggle").off("click", facetHandler ); | 236 |         $(".menu-collapse-toggle").off("click", facetHandler); | 
        
          | 201 |         $(".menu-collapse").show(); | 237 |         $(".menu-collapse").show(); | 
        
          | 202 |     } else { | 238 |     } else { | 
          
            
              | 203 |         $(".menu-collapse-toggle").on("click", facetHandler ).removeClass("menu-open"); | 239 |         $(".menu-collapse-toggle") | 
            
              |  |  | 240 |             .on("click", facetHandler) | 
            
              | 241 |             .removeClass("menu-open"); | 
        
          | 204 |         $(".menu-collapse").hide(); | 242 |         $(".menu-collapse").hide(); | 
        
          | 205 |     } | 243 |     } | 
        
          | 206 | } | 244 | } | 
        
          | 207 |  | 245 |  | 
          
            
              | 208 | var facetHandler = function(e){ | 246 | var facetHandler = function (e) { | 
        
          | 209 |     e.preventDefault(); | 247 |     e.preventDefault(); | 
        
          | 210 |     $(this).toggleClass("menu-open"); | 248 |     $(this).toggleClass("menu-open"); | 
        
          | 211 |     $(".menu-collapse").toggle(); | 249 |     $(".menu-collapse").toggle(); | 
        
          | 212 | }; | 250 | }; | 
        
          | 213 |  | 251 |  | 
          
            
              | 214 | $(document).ready(function(){ | 252 | $(document).ready(function () { | 
        
          | 215 |     $("html").removeClass("no-js").addClass("js"); | 253 |     $("html").removeClass("no-js").addClass("js"); | 
          
            
              | 216 |     $(".close").click(function(){ | 254 |     $(".close").click(function () { | 
        
          | 217 |         window.close(); | 255 |         window.close(); | 
        
          | 218 |     }); | 256 |     }); | 
        
          | 219 |     $(".focus").focus(); | 257 |     $(".focus").focus(); | 
        
          | 220 |     $(".js-show").show(); | 258 |     $(".js-show").show(); | 
        
          | 221 |     $(".js-hide").hide(); | 259 |     $(".js-hide").hide(); | 
        
          | 222 |  | 260 |  | 
          
            
              | 223 |     if( $(window).width() < 991 ){ | 261 |     if ($(window).width() < 991) { | 
        
          | 224 |         facetMenu("hide"); | 262 |         facetMenu("hide"); | 
        
          | 225 |     } | 263 |     } | 
        
          | 226 |  | 264 |  | 
        
          | 227 |     // clear the basket when user logs out | 265 |     // clear the basket when user logs out | 
          
            
              | 228 |     $("#logout").click(function(){ | 266 |     $("#logout").click(function () { | 
        
          | 229 |         var nameCookie = "bib_list"; | 267 |         var nameCookie = "bib_list"; | 
        
          | 230 |         var valCookie = readCookie(nameCookie); | 268 |         var valCookie = readCookie(nameCookie); | 
          
            
              | 231 |         if (valCookie) { // basket has contents | 269 |         if (valCookie) { | 
            
              | 232 |             updateBasket(0,null); | 270 |             // basket has contents | 
            
              |  |  | 271 |             updateBasket(0, null); | 
        
          | 233 |             delCookie(nameCookie); | 272 |             delCookie(nameCookie); | 
        
          | 234 |             return true; | 273 |             return true; | 
        
          | 235 |         } else { | 274 |         } else { | 
  
    | Lines 237-287
          $(document).ready(function(){
      
      
        Link Here | 
        
          | 237 |         } | 276 |         } | 
        
          | 238 |     }); | 277 |     }); | 
        
          | 239 |  | 278 |  | 
          
            
              | 240 |     $(".loginModal-trigger").on("click",function(e){ | 279 |     $(".loginModal-trigger").on("click", function (e) { | 
        
          | 241 |         e.preventDefault(); | 280 |         e.preventDefault(); | 
        
          | 242 |         var button = $(this); | 281 |         var button = $(this); | 
          
            
              | 243 |         var context = button.data('return'); | 282 |         var context = button.data("return"); | 
            
              | 244 |         if ( context ) { | 283 |         if (context) { | 
        
          | 245 |             let return_url = window.location.pathname; | 284 |             let return_url = window.location.pathname; | 
        
          | 246 |             let params = window.location.search; | 285 |             let params = window.location.search; | 
          
            
              | 247 |             var tab = button.data('tab'); | 286 |             var tab = button.data("tab"); | 
            
              | 248 |             if ( tab ) { | 287 |             if (tab) { | 
            
              | 249 |                 params = params ? params + '&tab=' + tab : '?tab=' + tab; | 288 |                 params = params ? params + "&tab=" + tab : "?tab=" + tab; | 
        
          | 250 |             } | 289 |             } | 
        
          | 251 |             return_url += params; | 290 |             return_url += params; | 
          
            
              | 252 |             $('#modalAuth').append('<input type="hidden" name="return" value="'+return_url+'" />'); | 291 |             $("#modalAuth").append( | 
            
              |  |  | 292 |                 '<input type="hidden" name="return" value="' + | 
            
              | 293 |                     return_url + | 
            
              | 294 |                     '" />' | 
            
              | 295 |             ); | 
        
          | 253 |         } | 296 |         } | 
        
          | 254 |         $("#loginModal").modal("show"); | 297 |         $("#loginModal").modal("show"); | 
        
          | 255 |     }); | 298 |     }); | 
          
            
              | 256 |     $("#loginModal").on("shown.bs.modal", function(){ | 299 |     $("#loginModal").on("shown.bs.modal", function () { | 
        
          | 257 |         $("#muserid").focus(); | 300 |         $("#muserid").focus(); | 
        
          | 258 |     }); | 301 |     }); | 
        
          | 259 |  | 302 |  | 
          
            
              | 260 |     $("#scrolltocontent").click(function() { | 303 |     $("#scrolltocontent").click(function () { | 
        
          | 261 |         var content = $(".maincontent"); | 304 |         var content = $(".maincontent"); | 
        
          | 262 |         if (content.length > 0) { | 305 |         if (content.length > 0) { | 
          
            
              | 263 |             $('html,body').animate({ | 306 |             $("html,body").animate( | 
            
              | 264 |                 scrollTop: content.first().offset().top | 307 |                 { | 
            
              | 265 |             }, | 308 |                     scrollTop: content.first().offset().top, | 
            
              | 266 |             'slow'); | 309 |                 }, | 
            
              | 267 |             content.first().find(':focusable').eq(0).focus(); | 310 |                 "slow" | 
            
              |  |  | 311 |             ); | 
            
              | 312 |             content.first().find(":focusable").eq(0).focus(); | 
        
          | 268 |         } | 313 |         } | 
        
          | 269 |     }); | 314 |     }); | 
        
          | 270 |  | 315 |  | 
          
            
              | 271 |     $('[data-toggle="tooltip"]').tooltip(); | 316 |     if (typeof bootstrap == "object") { | 
            
              |  |  | 317 |         $('[data-toggle="tooltip"]').tooltip(); | 
            
              | 318 |     } | 
        
          | 272 |  | 319 |  | 
        
          | 273 |     /* Scroll back to top button */ | 320 |     /* Scroll back to top button */ | 
          
            
              | 274 |     $("body").append('<button id="backtotop" class="btn btn-primary" aria-label="' + __("Back to top") + '"><i class="fa fa-arrow-up" aria-hidden="true" title="' + __("Scroll to the top of the page") + '"></i></button>'); | 321 |     $("body").append( | 
            
              |  |  | 322 |         '<button id="backtotop" class="btn btn-primary" aria-label="' + | 
            
              | 323 |             __("Back to top") + | 
            
              | 324 |             '"><i class="fa fa-arrow-up" aria-hidden="true" title="' + | 
            
              | 325 |             __("Scroll to the top of the page") + | 
            
              | 326 |             '"></i></button>' | 
            
              | 327 |     ); | 
        
          | 275 |     $("#backtotop").hide(); | 328 |     $("#backtotop").hide(); | 
          
            
              | 276 |     $(window).on("scroll", function(){ | 329 |     $(window).on("scroll", function () { | 
            
              | 277 |         if ( $(window).scrollTop() < 300 ) { | 330 |         if ($(window).scrollTop() < 300) { | 
        
          | 278 |             $("#backtotop").fadeOut(); | 331 |             $("#backtotop").fadeOut(); | 
        
          | 279 |         } else { | 332 |         } else { | 
        
          | 280 |             $("#backtotop").fadeIn(); | 333 |             $("#backtotop").fadeIn(); | 
        
          | 281 |         } | 334 |         } | 
        
          | 282 |     }); | 335 |     }); | 
          
            
              | 283 |     $("#backtotop").on("click", function(e) { | 336 |     $("#backtotop").on("click", function (e) { | 
        
          | 284 |         e.preventDefault(); | 337 |         e.preventDefault(); | 
          
            
              | 285 |         $("html,body").animate({scrollTop: 0}, "slow"); | 338 |         $("html,body").animate({ scrollTop: 0 }, "slow"); | 
        
          | 286 |     }); | 339 |     }); | 
        
          | 287 | }); | 340 | }); | 
            
              | 288 | -  |  |  |