1jQuery(document).ready(function ($) { 2 3 4 5 $.validator.methods.date = function (value, element) { 6 //This is not ideal but Chrome passes dates through in ISO1901 format regardless of locale 7 //and despite displaying in the specified format. 8 9 return this.optional(element) 10 || Globalize.parseDate(value, "dd/MM/yyyy", "en-GB") 11 || Globalize.parseDate(value, "yyyy-mm-dd") 12 || Globalize.parseDate(value, "dd/MM/yyyy HH:mm", "en-GB"); 13 }; 14 15 $.validator.setDefaults({ 16 ignore: [], 17 errorClass: 'is-invalid', 18 messages: { 19 required: "Required" 20 }, 21 highlight: function (element) { 22 $(element).addClass('is-invalid'); 23 $(element).removeClass('is-valid'); 24 $(element).closest('.form-group').addClass('has-danger').addClass('is-focused'); 25 }, 26 unhighlight: function (element) { 27 $(element).removeClass('is-invalid'); 28 $(element).addClass('is-valid'); 29 $(element).closest('.form-group').removeClass('has-danger').removeClass('is-focused'); 30 }, 31 errorElement: 'span', 32 errorPlacement: function (error, element) { 33 if (element.parent('.input-group').length) { 34 error.insertAfter(element.parent()); 35 } else { 36 error.insertAfter(element); 37 } 38 } 39 }); 40 41 42 43 AOS.init({ 44 delay: 100, // values from 0 to 3000, with step 50ms 45 duration: 800, // values from 0 to 3000, with step 50ms 46 47 }); 48 49 50}); 51 52//add simple support for background images: 53document.addEventListener('lazybeforeunveil', function (e) { 54 var bg = e.target.getAttribute('data-bg'); 55 if (bg) { 56 57 e.target.style.backgroundImage = 'url(' + bg + ')'; 58 } 59}); 60 61function setupTelephoneField() { 62 63 const inputs = document.querySelectorAll(".mobile"); 64 65 const errorMap = [ 66 "Invalid number", 67 "Invalid country code", 68 "Too short", 69 "Too long", 70 "Invalid number" 71 ]; 72 73 inputs.forEach(function (input) { 74 75 // create instance per input 76 var iti = window.intlTelInput(input, { 77 preferredCountries: ["gb", "us", "ie", "il", "cn"], 78 nationalMode: false, 79 initialCountry: "gb", 80 separateDialCode: true, 81 strictMode: true, 82 utilsScript: "/scripts/plugins/intlTel/js/utils.js?17", 83 }); 84 85 // store instance on input 86 input._iti = iti; 87 88 input.addEventListener("change", function () { 89 90 var iti = this._iti; // ð correct instance 91 92 var isValid = iti.isValidNumber(); 93 var countryData = iti.getSelectedCountryData(); 94 var intlNumber = iti.getNumber(); 95 96 var container = $(this).closest(".form-group"); 97 98 if (isValid) { 99 container.find(".mobile-code").val(countryData.dialCode); 100 container.find(".mobile-number").val(intlNumber); 101 102 console.log(intlNumber); 103 } 104 else { 105 var errorCode = iti.getValidationError(); 106 107 if (errorCode == -99) { 108 alert("Your mobile number is not valid: " + intlNumber); 109 } 110 else { 111 alert(errorMap[errorCode] + ": " + intlNumber); 112 } 113 } 114 }); 115 }); 116} 117 118var isMobile = false; //initiate as false 119// device detection 120if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) 121 || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
121sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0, 4))) { 122 isMobile = true; 123} 124 125$(document).ready(function () { 126 127 128if (window.location.href.indexOf('search') > -1 || window.location.href.indexOf('payment') > -1) { 129 130 $.idleTimeout('#idletimeout', '#idletimeout a', { 131 idleAfter: 1800, 132 pollingInterval: 600, 133 warningLength: 120, 134 keepAliveURL: '/ao/surface/site/keepalive', 135 serverResponseEquals: 'OK', 136 onTimeout: function () { 137 $(this).slideUp(); 138 window.location = "/timeout"; 139 }, 140 onIdle: function () { 141 $(this).slideDown(); // show the warning bar 142 }, 143 onCountdown: function (counter) { 144 $(this).find("span").html(counter); // update the counter 145 }, 146 onResume: function () { 147 $(this).slideUp(); // hide the warning bar 148 } 149 }); 150 } 151 152 $(document).on("click", ".modal .print", function (e) { 153 154 var mode = 'iframe'; //popup 155 var close = mode == "popup"; 156 var options = { mode: mode, popClose: close }; 157 $(".modal .modal-body").printArea(options); 158 }); 159 160 $('#modal1').on('hidden.bs.modal', function (e) { 161 162 $("#modal1").modal('dispose'); 163 }) 164}); 165 166function loadModal(title, url, params, size, static, element) { 167 168 var loadingHtml = '<h5>Loading...</h5><div class=progress><div class="progress-bar progress-bar-striped active" style="width: 100%"></div></div>'; 169 170 var modal = $("#modal1"); 171 if (element != null) 172 modal = element; 173 174 var modalDialog = $(modal).find(".modal-dialog"); 175 var modalTitle = $(modal).find(".modal-title"); 176 var modalBody = $(modal).find(".modal-body"); 177 178 modalDialog.removeClass('modal-sm modal-lg modal-xl').addClass(size != null ? 'modal-' + size : ""); 179 180 modalTitle.html(title); 181 modalBody.html(loadingHtml); 182 183 $.post(url, params).done(function (data) { 184 modalBody.html(data); 185 }).fail(function (xhr, status, error) { 186 // error handling 187 var msg = 188 '<div class="alert alert-danger">' + 189 '<strong>XHR Fail: </strong>URL [ ' + error + '] load fail.' + 190 '</div>'; 191 192 modalBody.html(msg); 193 }); 194 195 if (static) { 196 modal.modal({ 197 backdrop: 'static' 198 }); 199 } else { 200 201 modal.modal({ 202 backdrop: 'true' 203 }); 204 } 205 206 modal.modal("show"); 207} 208
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.