1function disable_submit(form, disable){ 2 var objs = form.getElementsByTagName("INPUT"); 3 if (objs) { 4 for (var i=0; i<objs.length; i++) { 5 if (objs[i].type == "submit") 6 objs[i].disabled = disable; 7 } 8 } 9 set_csrf_loaded(); 10 11 setTimeout(() => { 12 const customCaptcha = document.querySelector("#custom_captcha"); 13 if (customCaptcha && !customCaptcha.innerHTML.trim()) { 14 create_CustomCaptcha(); 15 } 16 }, 50); 17} 18 19function check_required_fields(form, fields, email_fields, error_color, msg_input_required, msg_input_email, msg_required, msg_email) { 20 var old_errors = form.getElementsByClassName("wd_form_field_error"); 21 for (k=old_errors.length-1; k>=0; --k){ 22 var err = old_errors[k]; 23 err.parentNode.removeChild(err); 24 } 25 26 if (form.skip_required_field_check) 27 return true; 28 29 var error_required = false; 30 var error_email = false; 31 var error_focus = false; 32 33 for (i=0; i<fields.length; i++){ 34 var fieldname = fields[i]; 35 var objs = document.getElementsByName(fieldname); 36 if (!objs) 37 continue; 38 39 var is_email = false; 40 for (j = 0; !is_email && j < email_fields.length; j++) 41 is_email = (email_fields[j] == fields[i]); 42 43 var required = true; 44 var ok = is_email; 45 var formObjs = new Array(); 46 for (j = 0; j < objs.length; j++){ 47 var inputObj = objs[j]; 48 49 if (typeof inputObj.form == "undefined" || inputObj.form != form) 50 continue; 51 52 formObjs.push(inputObj); 53 54 inputObj.removeAttribute("aria-invalid"); 55 56 var obj = inputObj; 57 var parent = obj.parentNode; 58 while (required && parent && parent != form) { 59 var attrib = parent.attributes.wd_ignore_required; 60 if (attrib && attrib.nodeValue == 1) 61 required = false; 62 63 obj = parent; 64 parent = obj.parentNode; 65 } 66 67 if (required) { 68 var type = inputObj.type; 69 70 switch (type){ 71 case "text": 72 case "textarea": 73 case "password": 74 case "file": 75 if (is_email){ 76 str = inputObj.value; 77 at = str.indexOf("@"); 78 dot = str.indexOf("."); 79 strl = str.length; 80 if (at < 1 || at > strl-4 || dot < 0 || dot > strl-2) ok = false; 81 } else { 82 if (inputObj.value != "") ok = true; 83 } 84 break; 85 86 case "select-multiple": 87 case "select-one": 88 if (inputObj.selectedIndex > 0 || (inputObj.options[inputObj.selectedIndex].value != "" && inputObj.options[inputObj.selectedIndex].value != "0")) ok = true; 89 break; 90 91 case "checkbox": 92 case "radio": 93 if (inputObj.checked) ok = true; 94 break; 95 96 default: 97 ok = true; 98 break; 99 } 100 } 101 } 102 103 var border_color = ""; 104 var border_width = "0px"; 105 if (required && !ok && formObjs.length > 0){ 106 if (is_email) 107 error_email = true; 108 else 109 error_required = true; 110 border_color = error_color; 111 border_width = "2px"; 112 } 113 114 for (j = 0; j < formObjs.length; j++){ 115 var obj = formObjs[j]; 116 obj.style.borderColor = border_color; 117 var parent = obj.parentNode; 118 if (parent.tagName == "DIV" && parent.className == "wd_input_border"){ 119 parent.style.borderColor = border_color; 120 parent.style.borderWidth = border_width; 121 } 122 if (!ok) { 123 if (!error_focus) 124 error_focus = obj; 125 126 var msg = is_email ? msg_input_email : msg_input_required; 127 while (parent && parent != form) { 128 if (parent.tagName == "DIV" && parent.className == "wd_form_field_input") { 129 attrib = document.createAttribute("aria-invalid"); 130 attrib.nodeValue = "true"; 131 inputObj.attributes.setNamedItem(attrib); 132 133 if (msg) { 134 var err = document.createElement("DIV"); 135 err.className = "wd_form_field_error"; 136 attrib = document.createAttribute("role"); 137 attrib.nodeValue = "alert"; 138 err.attributes.setNamedItem(attrib); 139 if (inputObj.id) { 140 var err_id = inputObj.id+"_wd_error"; 141 err.id = err_id; 142 attrib = document.createAttribute("aria-describedby"); 143 attrib.nodeValue = err_id; 144 inputObj.attributes.setNamedItem(attrib); 145 } 146 var errmsg = document.createTextNode(msg); 147 err.appendChild(errmsg); 148 parent.insertBefore(err, obj); 149 } 150 break; 151 } 152 obj = parent; 153 parent = obj.parentNode; 154 } 155 } 156 } 157 } 158 159 errormsg = ""; 160 if (error_required && msg_required){ errormsg += msg_required+"\n"; } 161 if (error_email && msg_email){ errormsg += msg_email+"\n"; } 162 if (errormsg != ""){ 163 if (error_focus) 164 error_focus.focus(); 165 alert (errormsg); 166 return false;
167 } 168 169 return true; 170}
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.