1/** 2 * DISCLAIMER 3 * 4 * Do not edit or add to this file if you wish to upgrade PrestaShop to newer 5 * versions in the future. If you wish to customize PrestaShop for your 6 * needs please refer to http://www.prestashop.com for more information. 7 * We offer the best and most useful modules PrestaShop and modifications for your online store. 8 * 9 * @author knowband.com <[email protected]> 10 * @copyright 2017 Knowband 11 * @license see file: LICENSE.txt 12 * @category PrestaShop Module 13 * 14 * 15*/ 16 17var velovalidation = { 18 language: {}, 19 script_regex: /(<script[\s\S]*?>[\s\S]*?<\/script>)|(<script[\s\S]*?>)|([\s\S]*?<\/script>)/i, 20 style_regex: /(<style[\s\S]*?>[\s\S]*?<\/style>)|(<style[\s\S]*?>)|([\s\S]*?<\/style>)/i, 21 iframe_regex: /(<iframe[\s\S]*?>[\s\S]*?<\/iframe>)|(<iframe[\s\S]*?>)|([\s\S]*?<\/iframe>)/i, 22 specail_chars: "*|,\":<>[]{}`\';()@&$#%", 23 checkTags: function (ele) { 24 var val = ele.val().trim(); 25 var return_val = true; 26 if (this.script_regex.test(val)) { 27 return_val = velovalidation.error('script'); 28 } else if (this.style_regex.test(val)) { 29 return_val = velovalidation.error('style'); 30 } else if (this.iframe_regex.test(val)) { 31 return_val = velovalidation.error('iframe'); 32 } 33 return return_val; 34 }, 35 checkFirstname: function (ele) { 36 var val = ele.val().trim(); 37 var return_val = true; 38 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 32; 39 var minchar = typeof minchar !== 'undefined' ? minchar : 1; 40 if (val != '') { 41 var tag_check = velovalidation.checkTags(ele); 42 if (tag_check != true) { 43 return tag_check; 44 } 45 if (val.length <= maxchar) { 46 if (val.length < minchar) { 47 return_val = velovalidation.error('minchar_fname').replace(/#/g, minchar); 48 } 49 } else { 50 return_val = velovalidation.error('maxchar_fname').replace(/#/g, maxchar); 51 } 52 } 53 return return_val; 54 }, 55 checkMidname: function (ele) { 56 var val = ele.val().trim(); 57 var return_val = true; 58 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 32; 59 var minchar = typeof minchar !== 'undefined' ? minchar : 1; 60 if (val != '') { 61 var tag_check = velovalidation.checkTags(ele); 62 if (tag_check != true) { 63 return tag_check; 64 } 65 if (val.length <= maxchar) { 66 if (val.length < minchar) { 67 return_val = velovalidation.error('minchar_mname').replace(/#/g, minchar); 68 } 69 } else { 70 return_val = velovalidation.error('maxchar_mname').replace(/#/g, maxchar); 71 } 72 } 73 return return_val; 74 }, 75 checkLastname: function (ele) { 76 var val = ele.val().trim(); 77 var return_val = true; 78 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 32; 79 var minchar = typeof minchar !== 'undefined' ? minchar : 1; 80 if (val != '') { 81 var tag_check = velovalidation.checkTags(ele); 82 if (tag_check != true) { 83 return tag_check; 84 } 85 if (val.length <= maxchar) { 86 if (val.length < minchar) { 87 return_val = velovalidation.error('minchar_lname').replace(/#/g, minchar); 88 } 89 } else { 90 return_val = velovalidation.error('maxchar_lname').replace(/#/g, maxchar); 91 } 92 } 93 return return_val; 94 }, 95 checkPassword: function (ele) { 96 var val = ele.val().trim(); 97 var return_val = true; 98 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 40; 99 var minchar = typeof minchar !== 'undefined' ? minchar : 6; 100 if (val != '') { 101 var tag_check = velovalidation.checkTags(ele); 102 if (tag_check != true) { 103 return tag_check; 104 } 105 if (val.length <= maxchar) { 106 if (val.length < minchar) { 107 return_val = velovalidation.error('minchar_pass').replace(/#/g, minchar); 108 } else { 109 110 if (!val.match(".*[A-Z].*")) 111 return velovalidation.error('capital_alphabets_pass'); 112 113 if (!val.match(".*[a-z].*")) 114 return velovalidation.error('small_alphabets_pass'); 115 116 if (!val.match(".*\\d.*")) 117 return velovalidation.error('digit_pass'); 118 119 var splChars = "*|,\":<>[]{}`\';()@&$#%"; 120 var splChars_exist = false; 121 for (var i = 0; i < val.length; i++) { 122 if (splChars.indexOf(val.charAt(i)) != -1) { 123 splChars_exist = true; 124 break; 125 } 126 } 127 if (!splChars_exist) { 128 return velovalidation.error('specialchar_pass'); 129 } 130 } 131 } else { 132 return_val = velovalidation.error('maxchar_pass').replace(/#/g, maxchar); 133 } 134 135 } 136 return return_val; 137 }, 138 checkMandatory: function (ele, maxchar, minchar) { 139 var val = ele.val().trim(); 140 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 255; 141 var minchar = typeof minchar !== 'undefined' ? minchar : 0; 142 var return_val = true; 143 if (val == '') { 144 return_val = velovalidation.error('empty_field'); 145 } else if (val.length > maxchar) { 146 return_val = velovalidation.error('maxchar_field').replace(/#/g, maxchar); 147 } else if (val.length < minchar) { 148 return_val = velovalidation.error('minchar_field').replace(/#/g, minchar); 149 } else { 150 var tag_check = velovalidation.checkTags(ele); 151 if (tag_check != true) { 152 return tag_check; 153 } 154 } 155 return return_val; 156 }, 157 checkMandatoryOnly: function (ele) { 158 var val = ele.val().trim(); 159 var return_val = true; 160 if (val == '') { 161 return_val = velovalidation.error('empty_field'); 162 } 163 return return_val; 164 }, 165 checkAmount: function (ele) { 166 var val = ele.val().trim(); 167 var return_val = true; 168 if (val != '') { 169 if (!val.match(/^-?\d*(\.\d+)?$/)) { 170 return_val = velovalidation.error('valid_amount'); 171 } else if (!val.match(/^-?\d*(\.\d{1,2})?$/)){ 172 return_val = velovalidation.error('valid_decimal'); 173 } else if (val < 0) { 174 return_val = velovalidation.error('positive_amount'); 175 } 176 } 177 return return_val; 178 }, 179 checkPercentage: function (ele) { 180 var val = ele.val().trim(); 181 var return_val = true; 182 if (val != '') { 183 if (!val.match(/^-?\d*(\.\d+)?$/)) { 184 return_val = velovalidation.error('valid_percentage'); 185 } else if (val < 0 || val > 100) { 186 return_val = velovalidation.error('between_percentage'); 187 } 188 } 189 return return_val; 190 }, 191 isNumeric: function (ele, positive) { 192 var val = ele.val().trim(); 193 positive = typeof positive !== 'undefined' ? positive : true; 194 var return_val = true; 195 if (!(/^-?\d*?\d+$/.test(val))) { 196 return_val = velovalidation.error('number_field'); 197 } 198 if (positive && return_val == true) { 199 if (val < 0) { 200 return_val = velovalidation.error('number_pos'); 201 } 202 } 203 return return_val; 204 }, 205 isBetween: function (ele, min, max) { 206 var val = ele.val().trim(); 207 var return_val = true; 208 if (val != '') { 209 if (val >= min && val <= max) { 210 return return_val; 211 } else { 212 return_val = velovalidation.error('validate_range').replace(/#/g, min).replace(/##/g, max); 213 } 214 } 215 return return_val; 216 }, 217 checkEmail: function (ele) { 218 var val = ele.val().trim(); 219 var return_val = true; 220 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 96; 221 var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; 222 if (val != '') { 223 if (val.length > maxchar) { 224 return_val = velovalidation.error('max_email').replace(/#/g, maxchar); 225 } else if (!regex.test(val)) { 226 return_val = velovalidation.error('validate_email'); 227 } 228 } 229 return return_val; 230 }, 231 checkCountry: function (ele) { 232 var val = ele.val().trim(); 233 var return_val = true; 234 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 64; 235 var minchar = typeof minchar !== 'undefined' ? minchar : 3; 236 if (val != '') { 237 var tag_check = velovalidation.checkTags(ele); 238 if (tag_check != true) { 239 return tag_check; 240 } 241 if (val.length <= maxchar) { 242 if (val.length < minchar) { 243 return_val = velovalidation.error('minchar_country').replace(/#/g, minchar); 244 } 245 } else { 246 return_val = velovalidation.error('maxchar_country').replace(/#/g, maxchar); 247 } 248 } 249 return return_val; 250 }, 251 checkState: function (ele) { 252 var val = ele.val().trim(); 253 var return_val = true; 254 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 64; 255 var minchar = typeof minchar !== 'undefined' ? minchar : 3; 256 if (val != '') { 257 var tag_check = velovalidation.checkTags(ele); 258 if (tag_check != true) { 259 return tag_check; 260 } 261 if (val.length <= maxchar) { 262 if (val.length < minchar) { 263 return_val = velovalidation.error('minchar_state').replace(/#/g, minchar); 264 } 265 } else { 266 return_val = velovalidation.error('maxchar_state').replace(/#/g, maxchar); 267 } 268 } 269 return return_val; 270 }, 271 checkCity: function (ele) { 272 var val = ele.val().trim(); 273 var return_val = true; 274 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 64; 275 var minchar = typeof minchar !== 'undefined' ? minchar : 3; 276 if (val != '') { 277 var tag_check = velovalidation.checkTags(ele); 278 if (tag_check != true) { 279 return tag_check; 280 } 281 if (val.length <= maxchar) { 282 if (val.length < minchar) { 283 return_val = velovalidation.error('minchar_city').replace(/#/g, minchar); 284 } 285 } else { 286 return_val = velovalidation.error('maxchar_city').replace(/#/g, maxchar); 287 } 288 } 289 return return_val; 290 }, 291 checkProductName: function (ele) { 292 var val = ele.val().trim(); 293 var return_val = true; 294 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 255; 295 var minchar = typeof minchar !== 'undefined' ? minchar : 3; 296 if (val != '') { 297 var tag_check = velovalidation.checkTags(ele); 298 if (tag_check != true) { 299 return tag_check; 300 } 301 if (val.length <= maxchar) { 302 if (val.length < minchar) { 303 return_val = velovalidation.error('minchar_proname').replace(/#/g, minchar); 304 } 305 } else { 306 return_val = velovalidation.error('maxchar_proname').replace(/#/g, maxchar); 307 } 308 } 309 return return_val; 310 }, 311 checkCategoryName: function (ele) { 312 var val = ele.val().trim(); 313 var return_val = true; 314 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 255; 315 var minchar = typeof minchar !== 'undefined' ? minchar : 3; 316 if (val != '') { 317 var tag_check = velovalidation.checkTags(ele); 318 if (tag_check != true) { 319 return tag_check; 320 } 321 if (val.length <= maxchar) { 322 if (val.length < minchar) { 323 return_val = velovalidation.error('minchar_catname').replace(/#/g, minchar); 324 } 325 } else { 326 return_val = velovalidation.error('maxchar_catname').replace(/#/g, maxchar); 327 } 328 } 329 return return_val; 330 }, 331 checkZip: function (ele) { 332 var val = ele.val().trim(); 333 var return_val = true; 334 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 10; 335 var minchar = typeof minchar !== 'undefined' ? minchar : 4; 336 if (val != '') { 337 var tag_check = velovalidation.checkTags(ele); 338 if (tag_check != true) { 339 return tag_check; 340 } 341 if (val.length <= maxchar) { 342 if (val.length < minchar) { 343 return_val = velovalidation.error('minchar_zip').replace(/#/g, minchar); 344 } 345 } else { 346 return_val = velovalidation.error('maxchar_zip').replace(/#/g, maxchar); 347 } 348 var splChars = "*|,\":<>[]{}`\';()@&$#%"; 349 for (var i = 0; i < val.length; i++) { 350 if (splChars.indexOf(val.charAt(i)) != -1) { 351 return_val = velovalidation.error('specialchar_zip'); 352 break; 353 } 354 } 355 } 356 return return_val; 357 }, 358 checkUsername: function (ele) { 359 var val = ele.val().trim(); 360 var return_val = true; 361 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 100; 362 var minchar = typeof minchar !== 'undefined' ? minchar : 3; 363 if (val != '') { 364 var tag_check = velovalidation.checkTags(ele); 365 if (tag_check != true) { 366 return tag_check; 367 } 368 if (val.length <= maxchar) { 369 if (val.length < minchar) { 370 return_val = velovalidation.error('minchar_username').replace(/#/g, minchar); 371 } 372 } else { 373 return_val = velovalidation.error('maxchar_username').replace(/#/g, maxchar); 374 } 375 } 376 return return_val; 377 }, 378 checkDateddmmyy: function (ele) { 379 var dateformat = /^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$/; 380 var return_val = true; 381 var val = ele.val().trim(); 382 if (val != '') { 383 if (val.match(dateformat)) 384 { 385 var opera1 = val.split('/'); 386 var opera2 = val.split('-'); 387 lopera1 = opera1.length; 388 lopera2 = opera2.length; 389 if (lopera1 > 1) 390 { 391 var pdate = val.split('/'); 392 } 393 else if (lopera2 > 1) 394 { 395 var pdate = val.split('-'); 396 } 397 var dd = parseInt(pdate[0]); 398 var mm = parseInt(pdate[1]); 399 var yy = parseInt(pdate[2]); 400 var ListofDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; 401 if (mm == 1 || mm > 2) 402 { 403 if (dd > ListofDays[mm - 1]) 404 { 405 return_val = velovalidation.error('invalid_date'); 406 } 407 } 408 if (mm == 2) 409 { 410 var lyear = false; 411 if ((!(yy % 4) && yy % 100) || !(yy % 400)) 412 { 413 lyear = true; 414 } 415
415 if ((lyear == false) && (dd >= 29)) 416 { 417 return_val = velovalidation.error('invalid_date'); 418 } 419 if ((lyear == true) && (dd > 29)) 420 { 421 return_val = velovalidation.error('invalid_date'); 422 } 423 } 424 } 425 else 426 { 427 return_val = velovalidation.error('invalid_date'); 428 } 429 } else { 430 return_val = velovalidation.error('invalid_date'); 431 } 432 return return_val; 433 }, 434 checkDatemmddyy: function (ele) { 435 var dateformat = /^(0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])[\/\-]\d{4}$/; 436 var return_val = true; 437 var val = ele.val().trim(); 438 if (val != '') { 439 if (val.match(dateformat)) { 440 var opera1 = val.split('/'); 441 var opera2 = val.split('-'); 442 lopera1 = opera1.length; 443 lopera2 = opera2.length; 444 // Extract the string into month, date and year 445 if (lopera1 > 1) 446 { 447 var pdate = val.split('/'); 448 } 449 else if (lopera2 > 1) 450 { 451 var pdate = val.split('-'); 452 } 453 var mm = parseInt(pdate[0]); 454 var dd = parseInt(pdate[1]); 455 var yy = parseInt(pdate[2]); 456 // Create list of days of a month [assume there is no leap year by default] 457 var ListofDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; 458 if (mm == 1 || mm > 2) 459 { 460 if (dd > ListofDays[mm - 1]) 461 { 462 return_val = velovalidation.error('invalid_date'); 463 } 464 } 465 if (mm == 2) 466 { 467 var lyear = false; 468 if ((!(yy % 4) && yy % 100) || !(yy % 400)) 469 { 470 lyear = true; 471 } 472 if ((lyear == false) && (dd >= 29)) 473 { 474 return_val = velovalidation.error('invalid_date'); 475 } 476 if ((lyear == true) && (dd > 29)) 477 { 478 return_val = velovalidation.error('invalid_date'); 479 } 480 } 481 } 482 else 483 { 484 return_val = velovalidation.error('invalid_date'); 485 } 486 } else { 487 return_val = velovalidation.error('invalid_date'); 488 } 489 return return_val; 490 }, 491 checkSKU: function (ele) { 492 var val = ele.val().trim(); 493 var return_val = true; 494 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 64; 495 if (val != '') { 496 var tag_check = velovalidation.checkTags(ele); 497 if (tag_check != true) { 498 return tag_check; 499 } 500 if (val.length <= maxchar) { 501 var splChars = "*|,\":<>[]{}`\';()@&$#%"; 502 for (var i = 0; i < val.length; i++) { 503 if (splChars.indexOf(val.charAt(i)) != -1) { 504 return_val = velovalidation.error('specialchar_sku'); 505 break; 506 } 507 } 508 } else { 509 return_val = velovalidation.error('maxchar_sku').replace(/#/g, maxchar); 510 } 511 } 512 513 return return_val; 514 }, 515 checkPhoneNumber: function (ele) { 516 var val = ele.val().trim(); 517 var return_val = true; 518 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 32; 519 var regex = /^[0-9()-]+$/; 520 if (val != '') { 521 var tag_check = velovalidation.checkTags(ele); 522 if (tag_check != true) { 523 return tag_check; 524 } 525 if (val.length <= maxchar) { 526 if (!regex.test(val)) { 527 return_val = velovalidation.error('invalid_phone'); 528 } 529 } else { 530 return_val = velovalidation.error('maxchar_phone').replace(/#/g, maxchar); 531 } 532 } 533 534 return return_val; 535 }, 536 checkAddress: function (ele) { 537 var val = ele.val().trim(); 538 var return_val = true; 539 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 128; 540 var minchar = typeof minchar !== 'undefined' ? minchar : 1; 541 if (val != '') { 542 var tag_check = velovalidation.checkTags(ele); 543 if (tag_check != true) { 544 return tag_check; 545 } 546 if (val.length <= maxchar) { 547 if (val.length < minchar) { 548 return_val = velovalidation.error('minchar_address').replace(/#/g, minchar); 549 } 550 } else { 551 return_val = velovalidation.error('maxchar_address').replace(/#/g, maxchar); 552 } 553 } 554 555 return return_val; 556 }, 557 checkCompany: function (ele) { 558 var val = ele.val().trim(); 559 var return_val = true; 560 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 32; 561 if (val != '') { 562 var tag_check = velovalidation.checkTags(ele); 563 if (tag_check != true) { 564 return tag_check; 565 } 566 if (val.length <= maxchar) { 567 } else { 568 return_val = velovalidation.error('maxchar_company').replace(/#/g, maxchar); 569 } 570 } 571 572 return return_val; 573 }, 574 checkBrandName: function (ele) { 575 var val = ele.val().trim(); 576 var return_val = true; 577 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 64; 578 if (val != '') { 579 var tag_check = velovalidation.checkTags(ele); 580 if (tag_check != true) { 581 return tag_check; 582 } 583 if (val.length <= maxchar) { 584 } else { 585 return_val = velovalidation.error('maxchar_brand').replace(/#/g, maxchar); 586 } 587 } 588 return return_val; 589 }, 590 checkCarrierName: function (ele) { 591 var val = ele.val().trim(); 592 var return_val = true; 593 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 255; 594 if (val != '') { 595 var tag_check = velovalidation.checkTags(ele); 596 if (tag_check != true) { 597 return tag_check; 598 } 599 if (val.length <= maxchar) { 600 } else { 601 return_val = velovalidation.error('maxchar_shipment').replace(/#/g, maxchar); 602 } 603 } 604 return return_val; 605 }, 606 checkIP: function (ele) { 607 var val = ele.val().trim(); 608 var return_val = true; 609 var testip = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; 610 if (val != '') { 611 if (!val.match(testip)) { 612 return_val = velovalidation.error('invalid_ip'); 613 } 614 } 615 return return_val; 616 }, 617 checkUrl: function (ele) { 618 var val = ele.val().trim(); 619 var return_val = true; 620 var myRegExp = /^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/i; 621 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 255; 622 if (val != '') { 623 var tag_check = velovalidation.checkTags(ele); 624 if (tag_check != true) { 625 return tag_check; 626 } 627 if (val.length <= maxchar) {
628 if (!myRegExp.test(val)) { 629 return_val = velovalidation.error('invalid_url'); 630 } 631 } else { 632 return_val = velovalidation.error('max_url').replace(/#/g, maxchar); 633 } 634 } 635 return return_val; 636 }, 637 checkSize: function (ele) { 638 var val = ele.val().trim(); 639 var return_val = true; 640 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 10; 641 if (val != '') { 642 var tag_check = velovalidation.checkTags(ele); 643 if (tag_check != true) { 644 return tag_check; 645 } 646 if (val.length <= maxchar) { 647 var splChars = "*|,\":<>[]{}`\';()@&$#%"; 648 for (var i = 0; i < val.length; i++) { 649 if (splChars.indexOf(val.charAt(i)) != -1) { 650 return_val = velovalidation.error('specialchar_size'); 651 break; 652 } 653 } 654 } else { 655 return_val = velovalidation.error('maxchar_size').replace(/#/g, maxchar); 656 } 657 } 658 return return_val; 659 }, 660 checkUPC: function (ele) { 661 var val = ele.val().trim(); 662 var return_val = true; 663 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 12; 664 if (val != '') { 665 var tag_check = velovalidation.checkTags(ele); 666 if (tag_check != true) { 667 return tag_check; 668 } 669 if (val.length <= maxchar) { 670 var splChars = "*|,\":<>[]{}`\';()@&$#%"; 671 for (var i = 0; i < val.length; i++) { 672 if (splChars.indexOf(val.charAt(i)) != -1) { 673 return_val = velovalidation.error('specialchar_upc'); 674 break; 675 } 676 } 677 } else { 678 return_val = velovalidation.error('maxchar_upc').replace(/#/g, maxchar); 679 } 680 } 681 return return_val; 682 }, 683 checkEAN: function (ele) { 684 var val = ele.val().trim(); 685 var return_val = true; 686 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 14; 687 if (val != '') { 688 var tag_check = velovalidation.checkTags(ele); 689 if (tag_check != true) { 690 return tag_check; 691 } 692 if (val.length <= maxchar) { 693 var splChars = "*|,\":<>[]{}`\';()@&$#%"; 694 for (var i = 0; i < val.length; i++) { 695 if (splChars.indexOf(val.charAt(i)) != -1) { 696 return_val = velovalidation.error('specialchar_ean'); 697 break; 698 } 699 } 700 } else { 701 return_val = velovalidation.error('maxchar_ean').replace(/#/g, maxchar); 702 } 703 } 704 return return_val; 705 }, 706 checkBarcode: function (ele) { 707 var val = ele.val().trim(); 708 var return_val = true; 709 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 255; 710 if (val != '') { 711 var tag_check = velovalidation.checkTags(ele); 712 if (tag_check != true) { 713 return tag_check; 714 } 715 if (val.length <= maxchar) { 716 var splChars = "*|,\":<>[]{}`\';()@&$#%"; 717 for (var i = 0; i < val.length; i++) { 718 if (splChars.indexOf(val.charAt(i)) != -1) { 719 return_val = velovalidation.error('specialchar_bar'); 720 break; 721 } 722 } 723 } else { 724 return_val = velovalidation.error('maxchar_bar').replace(/#/g, maxchar); 725 } 726 } 727 return return_val; 728 }, 729 isColor: function (ele) { 730 var val = ele.val().trim(); 731 var firstchar = val.charAt(0);
732 var return_val = true; 733 if (val != '') { 734 val = val.substr(1); 735 var maxchar = typeof maxchar !== 'undefined' ? maxchar : 7; 736 if(firstchar != '#'){ 737 return velovalidation.error('invalid_color'); 738 } 739 var tag_check = velovalidation.checkTags(ele); 740 if (tag_check != true) { 741 return tag_check; 742 } 743 var myRegExp = /(^[0-9A-F]{6}$)|(^[0-9A-F]{3}$)/i; 744 if (!myRegExp.test(val)) { 745 return_val = velovalidation.error('invalid_color'); 746 } 747 } 748 return return_val; 749 }, 750 isSpecialChar: function (ele) { 751 var val = ele.val().trim(); 752 var return_val = true; 753 var splChars = "*|,\":<>[]{}`\';()@&$#%"; 754 for (var i = 0; i < val.length; i++) { 755 if (splChars.indexOf(val.charAt(i)) != -1) { 756 return_val = velovalidation.error('specialchar'); 757 break; 758 } 759 } 760 return return_val; 761 }, 762 checkImage: function (ele, setsize, checkby) { 763 var val = ele.val().trim(); 764 var return_val = true; 765 /* default size 2 MB */
766 setsize = typeof setsize !== 'undefined' ? setsize : 2097152; 767 checkby = typeof checkby !== 'undefined' ? checkby : 'kb'; 768 var show = ''; 769 var maxval = 0; 770 switch (checkby) { 771 case 'b': 772 show = 'bytes'; 773 maxval = setsize; 774 break; 775 case 'kb': 776 show = 'KB'; 777 maxval = setsize / 1024; 778 break; 779 780 case 'mb': 781 show = 'MB'; 782 maxval = setsize / (1024 * 1024); 783 break; 784 default: 785 show = 'KB'; 786 maxval = setsize / 1024; 787 } 788 789 if (ele.prop("files")[0].size > setsize) { 790 return_val = velovalidation.error('image_size').replace(/#/g, maxval + ' ' + show); 791 } 792 var Extension = val.substring(val.lastIndexOf('.') + 1).toLowerCase(); 793 if (Extension == "jpeg" || Extension == "JPEG" || Extension == "png" || Extension == "jpg" || Extension == "gif") { 794 } else { 795 return_val = velovalidation.error('not_image'); 796 } 797 return return_val; 798 }, 799 checkAllIP: function (ele, separator) { 800 var val = ele.val().trim(); 801 var return_val = true; 802 if (val != '') { 803 separator = typeof separator !== 'undefined' ? separator : ','; 804 var result = val.split(separator); 805 var error = false; 806 $.each(result, function (key, value) { 807 var testip = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; 808 if (!value.match(testip)) { 809 error = true; 810 } 811 }); 812 if (error) { 813 return_val = velovalidation.error('invalid_ip'); 814 } 815 } 816 return return_val; 817 }, 818 checkCommaSeparateValue: function(ele,separator){ 819 var val = ele.val().trim(); 820 var return_val = true; 821 if (val != '') { 822 separator = typeof separator !== 'undefined' ? separator : ','; 823 var result = val.split(separator); 824 var error = false; 825 $.each(result, function (key, value) { 826 if (value == "") { 827 error = true; 828 } 829 }); 830 if (error) { 831 return_val = velovalidation.error('invalid_separator').replace(/#/g,separator); 832 } 833 } 834 return return_val; 835 }, 836 checkHtmlTags: function (ele) { 837 var val = ele.val().trim(); 838 var return_val = true; 839 if (val != '') { 840 if(val.match(/([\<])([^\>]{1,})*([\>])/i)){ 841 return_val = velovalidation.error('html_tags'); 842 } 843 } 844 return return_val; 845 }, 846 error: function (key) { 847 var error_arr = { 848 empty_fname: 'Please enter First name.', 849 maxchar_fname: 'First name cannot be greater than # characters.', 850 minchar_fname: 'First name cannot be less than # characters.', 851 empty_mname: 'Please enter middle name.', 852 maxchar_mname: 'Middle name cannot be greater than # characters.', 853 minchar_mname: 'Middle name cannot be less than # characters.', 854 only_alphabet: 'Only alphabets are allowed.', 855 empty_lname: 'Please enter Last name.', 856 maxchar_lname: 'Last name cannot be greater than # characters.', 857 minchar_lname: 'Last name cannot be less than # characters.', 858 alphanumeric: 'Field should be alphanumeric.', 859 empty_pass: 'Please enter Password.', 860 maxchar_pass: 'Password cannot be greater than # characters.', 861 minchar_pass: 'Password cannot be less than # characters.', 862 specialchar_pass: 'Password should contain atleast 1 special character.', 863 alphabets_pass: 'Password should contain alphabets.',
864 capital_alphabets_pass: 'Password should contain atleast 1 capital letter.', 865 small_alphabets_pass: 'Password should contain atleast 1 small letter.', 866 digit_pass: 'Password should contain atleast 1 digit.', 867 empty_field: 'Field cannot be empty.', 868 number_field: 'You can enter only numbers.', 869 positive_number: 'Number should be greater than 0.', 870 maxchar_field: 'Field cannot be greater than # characters.', 871 minchar_field: 'Field cannot be less than # character(s).', 872 empty_email: 'Please enter Email.', 873 validate_email: 'Please enter a valid Email.', 874 empty_country: 'Please enter country name.', 875 maxchar_country: 'Country cannot be greater than # characters.', 876 minchar_country: 'Country cannot be less than # characters.', 877 empty_city: 'Please enter city name.', 878 maxchar_city: 'City cannot be greater than # characters.', 879 minchar_city: 'City cannot be less than # characters.', 880 empty_state: 'Please enter state name.', 881 maxchar_state: 'State cannot be greater than # characters.', 882 minchar_state: 'State cannot be less than # characters.', 883 empty_proname: 'Please enter product name.', 884 maxchar_proname: 'Product cannot be greater than # characters.', 885 minchar_proname: 'Product cannot be less than # characters.', 886 empty_catname: 'Please enter category name.', 887 maxchar_catname: 'Category cannot be greater than # characters.', 888 minchar_catname: 'Category cannot be less than # characters.', 889 empty_zip: 'Please enter zip code.', 890 maxchar_zip: 'Zip cannot be greater than # characters.', 891 minchar_zip: 'Zip cannot be less than # characters.', 892 empty_username: 'Please enter Username.', 893 maxchar_username: 'Username cannot be greater than # characters.', 894 minchar_username: 'Username cannot be less than # characters.', 895 invalid_date: 'Invalid date format.', 896 maxchar_sku: 'SKU cannot be greater than # characters.', 897 minchar_sku: 'SKU cannot be less than # characters.', 898 invalid_sku: 'Invalid SKU format.', 899 empty_sku: 'Please enter SKU.', 900 validate_range: 'Number is not in the valid range. It should be betwen # and ##', 901 empty_address: 'Please enter address.', 902 minchar_address: 'Address cannot be less than # characters.', 903 maxchar_address: 'Address cannot be greater than # characters.', 904 empty_company: 'Please enter company name.', 905 minchar_company: 'Company name cannot be less than # characters.', 906 maxchar_company: 'Company name cannot be greater than # characters.', 907 invalid_phone: 'Phone number is invalid.', 908 empty_phone: 'Please enter phone number.', 909 minchar_phone: 'Phone number cannot be less than # characters.', 910 maxchar_phone: 'Phone number cannot be greater than # characters.', 911 empty_brand: 'Please enter brand name.', 912 maxchar_brand: 'Brand name cannot be greater than # characters.', 913 minchar_brand: 'Brand name cannot be less than # characters.', 914 empty_shipment: 'Please enter Shimpment.', 915 maxchar_shipment: 'Shipment cannot be greater than # characters.', 916 minchar_shipment: 'Shipment cannot be less than # characters.', 917 invalid_ip: 'Invalid IP format.', 918 invalid_url: 'Invalid URL format.', 919 empty_url: 'Please enter URL.', 920 valid_amount: 'Field should be numeric.', 921 valid_decimal: 'Field can have only upto two decimal values.', 922 max_email: 'Email cannot be greater than # characters.', 923 specialchar_zip: 'Zip should not have special characters.', 924 specialchar_sku: 'SKU should not have special characters.', 925 max_url: 'URL cannot be greater than # characters.', 926 valid_percentage: 'Percentage should be in number.', 927 between_percentage: 'Percentage should be between 0 and 100.', 928 maxchar_size: 'Size cannot be greater than # characters.', 929 specialchar_size: 'Size should not have special characters.', 930 specialchar_upc: 'UPC should not have special characters.', 931 maxchar_upc: 'UPC cannot be greater than # characters.', 932 specialchar_ean: 'EAN should not have special characters.', 933 maxchar_ean: 'EAN cannot be greater than # characters.', 934 specialchar_bar: 'Barcode should not have special characters.', 935 maxchar_bar: 'Barcode cannot be greater than # characters.', 936 positive_amount: 'Field should be positive.', 937 maxchar_color: 'Color could not be greater than # characters.',
938 invalid_color: 'Color is not valid.', 939 specialchar: 'Special characters are not allowed.', 940 script: 'Script tags are not allowed.', 941 style: 'Style tags are not allowed.', 942 iframe: 'Iframe tags are not allowed.', 943 not_image: 'Uploaded file is not an image', 944 image_size: 'Uploaded file size must be less than #.', 945 html_tags: 'Field should not contain HTML tags.', 946 number_pos: 'You can enter only positive numbers.', 947 invalid_separator:'Invalid comma (#) separated values.' 948 }; 949 if (typeof this.language[key] === "undefined") { 950 return error_arr[key]; 951 } else { 952 return this.language[key]; 953 } 954 }, 955 setErrorLanguage: function (language_object) { 956 if (typeof language_object === "object") { 957 this.language = (language_object); 958 } else { 959 throw "Object was not passed in function setErrorLanguage()"; 960 } 961 } 962 963}
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.