PageSourceSearch

https://www.ernieball.com/assets/js/validate.js,q1788382966.pagespeed.jm.u9nnUD9OBd.js

js ernieball.com collected 2026-09-24 09:09:43 UTC 4,591 bytes, 1 lines download raw bytes

1$.fn.numberInput=function(maxLength,callback){var input=$(this);input.keydown(function(e){if($.inArray(e.keyCode,[46,8,9,27,13,91,189])!==-1||(e.keyCode==65&&e.ctrlKey===true)||(e.keyCode>=35&&e.keyCode<=39)){return;}if((e.shiftKey||(e.keyCode<48||e.keyCode>57))&&(e.keyCode<96||e.keyCode>105)){e.preventDefault();}}).keyup(function(e){var strStripped=input.val().replace(/[^0-9]/gi,'');var strLength=strStripped.length;if((strLength==maxLength||e.keyCode==13)){input.blur();typingTimer=setTimeout(function(){callback(input);},1000);}}).focusout(function(){var strStripped=input.val().replace(/[^0-9]/gi,'');var strLength=strStripped.length;if(strLength!=maxLength){callback(input);}});};$.fn.validate=function(callback){var input=$(this);var htmlTimes='<i class="fa fa-times"></i>';var htmlCheck='<i class="fa fa-check"></i>';var emailRegex=/^[a-zA-Z0-9_-]+([.][a-zA-Z0-9_-]+)*[@][a-zA-Z0-9_-]+([.][a-zA-Z0-9_-]+)*[.][a-zA-Z]{2,4}$/;var userRegex=/^[a-zA-Z0-9_-]{2,16}$/;var passRegex=/^(?=.*\d)(?=.*[a-zA-Z]).{6,16}$/;var currentValue='';var currentState=false;var setState=function(result,reason){currentState=result;var parent=input.parent();var label=input.siblings('.control-label');var helper=input.siblings('.form-control-feedback');var reader=input.siblings('.sr-only');var labelDefault=label.attr('data-default');if(label.data('invalid')==null){var invalid=' invalid.';}else{var invalid=label.data('invalid');}if(label.data('valid')==null){var valid=' valid!';}else{var valid=label.data('valid');}var format=label.data('format');label.fadeOut('fast',function(){if(reason==='invalid'){label.html(labelDefault+' '+invalid);}else if(reason==='dupe'){label.html(labelDefault+' already in use.');}else if(reason==='nomatch'){label.html(labelDefault+' does not match.');}else if(reason==='match'){label.html(labelDefault+' matches!');}else if(reason==='noemail'){label.html(labelDefault+' not registered.');}else if(reason==='support'){label.html(labelDefault+' '+format);}else{label.html(labelDefault+' '+valid);}label.fadeIn('fast');});parent.removeClass('has-error has-success').addClass(result?'has-success':'has-error');helper.html(result?htmlCheck:htmlTimes);reader.text(result?'(input accepted)':'(input has error)');if(callback){callback(result);}};var check=function(submit){var value=input.val();if(value!==currentValue||(submit&&currentState===false)){currentValue=value;var type=input.data('type');if(input.data('check')&&input.data('action')){var post={};post['action']=input.data('action');post['data']=value;var url='/api/'+input.data('check')+'.json';$.post(url,post,function(result){console.log(result);if(result.response===true){setState(true,'');}else if(result.response===false){setState(false,'invalid');}else{setState(false,result.response);}});}else if(input.data('match')){var match=$(input.data('match')).val();if(value===match&&value!==''){setState(true,'match');return;}else{setState(false,'nomatch');}}else if(input.data('regex')){var regex=new RegExp(input.data('regex'));if(regex.test(value)==true){setState(true,'');return;}else{setState(false,'invalid');}}else if(type==='email'){if(emailRegex.test(value)==true){setState(true,'');return;}else{setState(false,'invalid');}}else if(type==='username'){if(userRegex.test(value)==true){setState(true,'');return;}else{setState(false,'invalid');}}else if(type==='password'){if(passRegex.test(value)==true){setState(true,'');}else{setState(false,'invalid');}}else if(type==='password'){if(passRegex.test(value)==true){setState(true,'');}else{setState(false,'invalid');}}else if(type==='select'){if(input.is(':selected')){setState(true,'');}else{setState(false,'invalid');}}else if(input.attr('type')==='checkbox'){if(input.is(":checked")){setState(true,'');}else{setState(false,'invalid');}}else if(input.hasClass('radio-group')){var checked=false;$('#'+input.attr('id')+' input[type=radio]').each(function(){if($(this).is(':checked')){checked=true;}});if(checked===true){setState(true,'');}else{setState(false,'invalid');}}else if(type==='file'){var file=$('input[data-type]').val();
1if(file.length==0){setState(false,'invalid');}else{$x=file.split('.');var ext=["txt","doc","docx","pdf"];if($.inArray($x[1],ext)>-1){setState(true,'');}else{setState(false,'support');}}}else{if(value!==''&&value!==null){setState(true,'');}else{setState(false,'invalid');}}}};var trigger=function(){input.focusout(function(){check();});if(input.data('match')){$(input.data('match')).focusout(function(){if(input.val()!==''){currentState=false;check(true);}});}};input.closest('form').submit(function(e){check(true);});trigger();};

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.