1var validation_details = new Array(); 2 3var addValidationByName = function(field_name, form_id, validation_list, only_validate_when_active) 4{ 5 var val_obj = new validationInfo(null, field_name, form_id, validation_list, only_validate_when_active); 6 if(val_obj.field_name != null && val_obj.field_name.length > 0) 7 { 8 validation_details.push(val_obj); 9 } 10} 11 12function addValidation(field_id, validation_list, only_validate_when_active) 13{ 14 var val_obj = new validationInfo(field_id, null, null, validation_list, only_validate_when_active); 15 if(val_obj.field_id != null && val_obj.field_id.length > 0) 16 { 17 validation_details.push(val_obj); 18 } 19} 20 21function initFormValidation() 22{ 23// alert(validation_details.length); 24 for(var i = 0; i < validation_details.length; i++) 25 { 26// alert(validation_details[i].form_id + '-' + validation_details[i].field_name); 27 new fieldValidation(validation_details[i].field_id, validation_details[i].field_name, validation_details[i].form_id, validation_details[i].validation_list, validation_details[i].only_validate_when_active); 28 } 29 validation_details = new Array(); 30} 31// This is a variation of the addEvent script written by Dean Edwards (dean.edwards.name). 32if (!events) 33{ 34 var events = 35 { 36 nEventID: 1, 37 38 add: function(ndElement, sType, fnHandler) 39 { 40 if (!fnHandler.$$nEventID) fnHandler.$$nEventID = this.nEventID++; 41 if (ndElement.objEvents === undefined) ndElement.objEvents = {}; 42 43 var aHandlers = ndElement.objEvents[sType]; 44 if (!aHandlers) 45 { 46 aHandlers = ndElement.objEvents[sType] = {}; 47 if (ndElement['on' + sType]) aHandlers[0] = ndElement['on' + sType]; 48 } 49 50 aHandlers[fnHandler.$$nEventID] = fnHandler; 51 ndElement['on' + sType] = this.handle; 52 53 return true; 54 }, 55 56 handle: function(e) 57 { 58 e = e || events.fix(event); 59 60 var bReturn = true, aHandlers = this.objEvents[e.type]; 61 for (var nIndex in aHandlers) 62 { 63 this.$$handle = aHandlers[nIndex]; 64 if (this.$$handle(e) === false) bReturn = false; 65 } 66 67 return bReturn; 68 }, 69 70 fix: function(e) 71 { 72 e.preventDefault = this.fix.preventDefault; 73 e.stopPropagation = this.fix.stopPropagation; 74 75 return e; 76 } 77 }; 78 79 events.fix.preventDefault = function() 80 { 81 this.returnValue = false; 82 83 return true; 84 } 85 86 events.fix.stopPropagation = function() 87 { 88 this.cancelBubble = true; 89 90 return true; 91 } 92} 93events.add(window, 'load', initFormValidation); 94/*addLoadEvent(initFormValidation);*/ 95function validationInfo(field_id, field_name, form_id, validation_list, only_validate_when_active) 96{ 97 this.field_id = field_id; 98 this.field_name = field_name; 99 this.form_id = form_id; 100 this.validation_list = validation_list; 101 if(only_validate_when_active == null) 102 { 103 this.only_validate_when_active = false; 104 } 105 else 106 { 107 this.only_validate_when_active = only_validate_when_active; 108 } 109} 110function validateForm(form) 111{ 112 var success = true; 113 var focusElement = ""; 114 var element = null; 115 116 for(var i = form.elements.length - 1; i > -1; i--) 117 { 118 if(form.elements[i].validate) 119 { 120 if(!form.elements[i].validate.validate()) 121 { 122 element = form.elements[i]; 123 success = false; 124 } 125 } 126 } 127 if(element != null && element.type != "hidden") 128 { 129 element.focus(); 130 } 131 return success; 132} 133/*** Build up the field validation object ***/ 134function fieldValidation(field_id, field_name, form_id, validation_list, only_validate_when_active) 135{ 136 // <!--- Set the basic details of the form field ---> 137 this.field_id = field_id; 138 this.field_name = field_name; 139 this.form_id = form_id; 140 this.validation = validation_list.split(","); 141 this.only_validate_when_active = only_validate_when_active; 142 this.validate = validate; 143 this.getValue = getValue; 144 this.isDisabled = isDisabled; 145 146 // <!--- Set the fields related objects ---> 147 if(this.field_id != null) 148 { 149 var field_obj = document.getElementById(this.field_id); 150 151 } 152 else if(field_name != null && form_id != null) 153 { 154 var form_elements = document.getElementById(form_id).elements; 155 if(form_elements.length != null) 156 { 157 for(var i = 0; i < form_elements.length; i++) 158 { 159 if(form_elements[i].name == field_name) 160 { 161 field_obj = form_elements[i]; 162 break; 163 } 164 } 165 } 166 } 167 168 if(field_obj != null) 169 { 170 if(field_obj.tagName == "INPUT" && (field_obj.type == "radio" || field_obj.type == "checkbox")) 171 { 172 this.related_fields_name = field_obj.name; 173 } 174 else 175 { 176 this.related_fields_name = ""; 177 } 178 this.parent_node = field_obj.parentNode; 179 var sibling_spans = this.parent_node.getElementsByTagName("span"); 180 this.invalid_span = null; 181 // <!--- Try and find the span for the fields error messages ---> 182 for(var i = 0; i < sibling_spans.length; i++) 183 { 184 if(sibling_spans[i].className == " invalid_field") 185 { 186 this.invalid_span = sibling_spans[i]; 187 } 188 } 189 // <!--- Create the span for inserting error messages into if it doesnt exist---> 190 if(this.invalid_span == null) 191 { 192 this.invalid_span = document.createElement("span");
193 // <!--- this.invalid_span.name = "invalid"; ---> 194 this.invalid_span.className = " invalid_field"; 195 this.parent_node.appendChild(this.invalid_span); 196 } 197 field_obj.validate = this; 198 } 199} 200function isDisabled() 201{ 202 if(this.field_id != null) 203 { 204 return document.getElementById(this.field_id).disabled; 205 } 206 else if(this.field_name != null) 207 { 208 fields = document.getElementsByName(this.field_name); 209 for(var i = 0; i < fields.length; i++) 210 { 211 if(fields[i].form != null && fields[i].form.id == this.form_id) 212 { 213 return fields[i].disabled; 214 } 215 } 216 } 217 return true; 218} 219// <!--- Get the current value entered\selected from the form field ---> 220function getValue() 221{ 222 value = ""; 223 if(this.field_id != null) 224 { 225 var field_obj = document.getElementById(this.field_id); 226 } 227 else if(this.field_name != null && this.form_id !== null) 228 { 229 var elements = document.getElementById(this.form_id).elements; 230 for(var i = 0; i < elements.length; i++) 231 { 232 if(elements[i].name == this.field_name) 233 { 234 var field_obj = elements[i]; 235 break; 236 } 237 } 238 }else{ 239 return ""; 240 } 241 switch(field_obj.tagName) 242 { 243 case "INPUT": 244 if(field_obj.type == "radio" || field_obj.type == "checkbox") 245 { 246 if(field_obj.checked) 247 { 248 value = field_obj.value; 249 } 250 else if(this.related_fields_name.length > 0) 251 { 252 var related_fields = document.getElementsByName(this.related_fields_name); 253 for(var i = 0; i < related_fields.length; i++) 254 { 255 if(related_fields[i].checked) 256 { 257 value = related_fields[i].value; 258 break; 259 } 260 } 261 } 262 } 263 else 264 { 265 value = field_obj.value; 266 } 267 break; 268 case "SELECT": 269 if(field_obj.selectedIndex != -1) 270 { 271 value = field_obj.options[field_obj.selectedIndex].value; 272 } 273 break; 274 case "TEXTAREA": 275 value = field_obj.value; 276 break; 277 default: 278 } 279 return value; 280} 281 282function validate() 283{ 284 var messages = new Array(); 285 286 if((this.only_validate_when_active && !this.isDisabled()) || !this.only_validate_when_active) 287 { 288 var value = this.getValue(); 289 for(var i = 0; i < this.validation.length; i++) 290 { 291 switch(this.validation[i]) 292 { 293 case "required": 294 if(value.length < 1) 295 { 296 messages.push("Not Supplied"); 297 } 298 break; 299 case "max_length": 300 if(!isNaN(this.validation[i + 1])) 301 { 302 i += 1; 303 if(value.length > parseInt(this.validation[i])) 304 { 305 messages.push("Cannot be longer than " + this.validation[i] + " characters"); 306 } 307 } 308 break; 309 case "min_length": 310 if(!isNaN(this.validation[i + 1])) 311 { 312 i += 1; 313 if(value.length < parseInt(this.validation[i])) 314 { 315 messages.push("Cannot be shorter than " + this.validation[i] + " characters"); 316 } 317 } 318 break; 319 case "length": 320 if(!isNaN(this.validation[i + 1])) 321 { 322 i += 1; 323 if(value.length != parseInt(this.validation[i])) 324 { 325 messages.push("Must be " + this.validation[i] + " characters"); 326 } 327 } 328 break; 329 case "is_date": 330 var date_pattern = new RegExp("^[0-9]{2}/[0-9]{2}/[0-9]{4}$"); 331 if(!value.match(date_pattern) && value.length > 0) 332 { 333 messages.push("Not valid date"); 334 } 335 break; 336 case "not_equal": 337 i += 1; 338 if(value == this.validation[i]) 339 { 340 messages.push("Cannot equal '" + this.validation[i] + "'"); 341 } 342 break; 343 case "greater_or_equal": 344 if(!isNaN(this.validation[i + 1])) 345 { 346 i += 1; 347 if(value < parseFloat(this.validation[i])) 348 { 349 messages.push("Cannot be less than '" + this.validation[i] + "'"); 350 } 351 } 352 break; 353 case "less_or_equal": 354 if(!isNaN(this.validation[i + 1])) 355 { 356 i += 1; 357 if(value > parseFloat(this.validation[i])) 358 { 359 messages.push("Cannot be greater than '" + this.validation[i] + "'"); 360 } 361 } 362 break; 363 case "is_email": 364 var email_pattern = new RegExp("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4})$"); 365 if(!value.match(email_pattern) && value.length > 0) 366 { 367 messages.push("Not a valid email"); 368 } 369 break; 370 case "is_year": 371 var year_pattern = new RegExp("^[0-9]{4}$"); 372 if(!value.match(year_pattern) && value.length > 0) 373 { 374 messages.push("Not a valid year"); 375 } 376 break; 377 case "is_whole_number": 378 if((isNaN(value) || parseFloat(value) - parseInt(value, 10) != 0) && value.length > 0) 379 { 380 messages.push("Not a whole number"); 381 } 382 break; 383 case "is_number": 384 if(isNaN(value) && value.length > 0) 385 { 386 messages.push("Not a valid number"); 387 } 388 break; 389 case "is_phone": 390 var phone_pattern = new RegExp(/^(\+[0-9]+)?(\([0-9]+\))?[0-9]{7,11}$/); 391 if(!value.match(phone_pattern) && value.length > 0) 392 { 393 messages.push("Not a valid phone number"); 394 } 395 break; 396 case "pwd_validate": 397 if(value!=password2.value) 398 { 399 messages.push("Password does not match"); 400 } 401 default: 402 } 403 } 404 } 405 this.parent_node.className = this.parent_node.className.replace("invalid_field", ""); 406 this.invalid_span.innerHTML = ""; 407 if(messages.length > 0) 408 { 409 this.parent_node.className = this.parent_node.className + " invalid_field"; 410 var innerHTML = ""; 411 for(var i = 0; i < messages.length; i++) 412 { 413 innerHTML = innerHTML + messages[i]; 414 if(i < messages.length - 1) 415 { 416 innerHTML = innerHTML + "<br />"; 417 } 418 } 419 this.invalid_span.innerHTML = innerHTML; 420 return false; 421 } 422 return true; 423}
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.