1// ------------------------------------------------------------------------------------------ 2// Copyright AspDotNetStorefront.com, 1995-2010. All Rights Reserved. 3// http://www.aspdotnetstorefront.com 4// For details on this license please visit the product homepage at the URL above. 5// THE ABOVE NOTICE MUST REMAIN INTACT. 6// ------------------------------------------------------------------------------------------ 7function Trim(TRIM_VALUE){ 8if(TRIM_VALUE.length < 1){ 9return""; 10} 11TRIM_VALUE = RTrim(TRIM_VALUE); 12TRIM_VALUE = LTrim(TRIM_VALUE); 13if(TRIM_VALUE==""){ 14return ""; 15} 16else{ 17return TRIM_VALUE; 18} 19} 20 21function RTrim(VALUE){ 22var w_space = String.fromCharCode(32); 23var v_length = VALUE.length; 24var strTemp = ""; 25if(v_length < 0){ 26return""; 27} 28var iTemp = v_length -1; 29 30while(iTemp > -1){ 31if(VALUE.charAt(iTemp) == w_space){ 32} 33else{ 34strTemp = VALUE.substring(0,iTemp +1); 35break; 36} 37iTemp = iTemp-1; 38 39} 40return strTemp; 41 42} 43 44function LTrim(VALUE){ 45var w_space = String.fromCharCode(32); 46if(v_length < 1){ 47return""; 48} 49var v_length = VALUE.length; 50var strTemp = ""; 51 52var iTemp = 0; 53 54while(iTemp < v_length){ 55if(VALUE.charAt(iTemp) == w_space){ 56} 57else{ 58strTemp = VALUE.substring(iTemp,v_length); 59break; 60} 61iTemp = iTemp + 1; 62} 63return strTemp; 64} 65 66 67 68var digits = "0123456789"; 69var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz" 70var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 71var whitespace = " \t\n\r"; 72 73var decimalPointDelimiter = "." 74 75var phoneNumberDelimiters = "()- "; 76 77var validUSPhoneChars = digits + phoneNumberDelimiters; 78 79var validWorldPhoneChars = digits + phoneNumberDelimiters + "+"; 80 81var SSNDelimiters = "- "; 82 83var validSSNChars = digits + SSNDelimiters; 84 85var digitsInSocialSecurityNumber = 9; 86 87var digitsInUSPhoneNumber = 10; 88 89var ZIPCodeDelimiters = "-"; 90 91var ZIPCodeDelimeter = "-" 92 93var validZIPCodeChars = digits + ZIPCodeDelimiters 94 95var digitsInZIPCode1 = 5 96var digitsInZIPCode2 = 9 97 98var creditCardDelimiters = " " 99 100function isOkBag (s, bag) 101 102{ var i; 103 var returnString = ""; 104 105 for (i = 0; i < s.length; i++) 106 { 107 var c = s.charAt(i); 108 if (bag.indexOf(c) == -1) return false; 109 } 110 return true; 111} 112 113function isEmpty(s) 114{ return ((s == null) || (s.length == 0)) 115} 116 117function isWhiteSpace (s) 118{ var i; 119 120 if (isEmpty(s)) return true; 121 122 for (i = 0; i < s.length; i++) 123 { 124 var c = s.charAt(i); 125 126 if (whitespace.indexOf(c) == -1) return false; 127 } 128 129 return true; 130} 131 132function stripCharsInBag (s, bag) 133 134{ var i; 135 var returnString = ""; 136 137 for (i = 0; i < s.length; i++) 138 { 139 var c = s.charAt(i); 140 if (bag.indexOf(c) == -1) returnString += c; 141 } 142 143 return returnString; 144} 145 146function stripCharsNotInBag (s, bag) 147 148{ var i; 149 var returnString = ""; 150 151 for (i = 0; i < s.length; i++) 152 { 153 var c = s.charAt(i); 154 if (bag.indexOf(c) != -1) returnString += c; 155 } 156 157 return returnString; 158} 159 160function stripWhitespace (s) 161 162{ return stripCharsInBag (s, whitespace) 163} 164 165function charInString (c, s) 166{ for (i = 0; i < s.length; i++) 167 { if (s.charAt(i) == c) return true; 168 } 169 return false 170} 171 172function stripInitialWhitespace (s) 173 174{ var i = 0; 175 176 while ((i < s.length) && charInString (s.charAt(i), whitespace)) 177 i++; 178 179 return s.substring (i, s.length); 180} 181 182function isLetter (c) 183{ return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) ) 184} 185 186function isDigit (c) 187{ return ((c >= "0") && (c <= "9")) 188} 189 190function isLetterOrDigit (c) 191{ return (isLetter(c) || isDigit(c)) 192} 193 194 195 196function isInteger (s) 197 198{ var i; 199 200 if (isEmpty(s)) 201 if (isInteger.arguments.length == 1) return defaultEmptyOK; 202 else return (isInteger.arguments[1] == true); 203 204 205 for (i = 0; i < s.length; i++) 206 { 207 var c = s.charAt(i); 208 209 if (!isDigit(c)) return false; 210 } 211 212 return true; 213} 214 215function isSignedInteger (s) 216 217{ if (isEmpty(s)) 218 if (isSignedInteger.arguments.length == 1) return defaultEmptyOK; 219 else return (isSignedInteger.arguments[1] == true); 220 221 else { 222 var startPos = 0; 223 var secondArg = defaultEmptyOK; 224 225 if (isSignedInteger.arguments.length > 1) 226 secondArg = isSignedInteger.arguments[1]; 227 228 if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") ) 229 startPos = 1; 230 return (isInteger(s.substring(startPos, s.length), secondArg)) 231 } 232} 233 234function isPositiveInteger (s) 235{ var secondArg = defaultEmptyOK; 236 237 if (isPositiveInteger.arguments.length > 1) 238 secondArg = isPositiveInteger.arguments[1]; 239 240 return (isSignedInteger(s, secondArg) 241 && ( (isEmpty(s) && secondArg) || (parseInt (s) > 0) ) ); 242} 243 244function isNonnegativeInteger (s) 245{ var secondArg = defaultEmptyOK; 246 247 if (isNonnegativeInteger.arguments.length > 1) 248 secondArg = isNonnegativeInteger.arguments[1]; 249 250 return (isSignedInteger(s, secondArg) 251 && ( (isEmpty(s) && secondArg) || (parseInt (s) >= 0) ) ); 252} 253 254 255function isNegativeInteger (s) 256{ var secondArg = defaultEmptyOK; 257 258 if (isNegativeInteger.arguments.length > 1) 259 secondArg = isNegativeInteger.arguments[1]; 260 261 return (isSignedInteger(s, secondArg) 262 && ( (isEmpty(s) && secondArg) || (parseInt (s) < 0) ) ); 263} 264 265 266function isNonpositiveInteger (s) 267{ var secondArg = defaultEmptyOK; 268 269 if (isNonpositiveInteger.arguments.length > 1)
270 secondArg = isNonpositiveInteger.arguments[1]; 271 272 return (isSignedInteger(s, secondArg) 273 && ( (isEmpty(s) && secondArg) || (parseInt (s) <= 0) ) ); 274} 275 276 277function isFloat (s) 278 279{ var i; 280 var seenDecimalPoint = false; 281 282 if (isEmpty(s)) 283 if (isFloat.arguments.length == 1) return defaultEmptyOK; 284 else return (isFloat.arguments[1] == true); 285 286 if (s == decimalPointDelimiter) return false; 287 288 289 for (i = 0; i < s.length; i++) 290 { 291 var c = s.charAt(i); 292 293 if ((c == decimalPointDelimiter) && !seenDecimalPoint) seenDecimalPoint = true; 294 else if (!isDigit(c)) return false; 295 } 296 297 return true; 298} 299 300 301function isSignedFloat (s) 302 303{ if (isEmpty(s)) 304 if (isSignedFloat.arguments.length == 1) return defaultEmptyOK; 305 else return (isSignedFloat.arguments[1] == true); 306 307 else { 308 var startPos = 0; 309 var secondArg = defaultEmptyOK; 310 311 if (isSignedFloat.arguments.length > 1) 312 secondArg = isSignedFloat.arguments[1]; 313 314 if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") ) 315 startPos = 1; 316 return (isFloat(s.substring(startPos, s.length), secondArg)) 317 } 318} 319 320 321function isAlphabetic (s) 322 323{ var i; 324 325 if (isEmpty(s)) 326 if (isAlphabetic.arguments.length == 1) return defaultEmptyOK; 327 else return (isAlphabetic.arguments[1] == true); 328 329 for (i = 0; i < s.length; i++) 330 { 331 var c = s.charAt(i); 332 333 if (!isLetter(c)) 334 return false; 335 } 336 337 return true; 338} 339 340function isAlphanumeric (s) 341 342{ var i; 343 344 if (isEmpty(s)) 345 if (isAlphanumeric.arguments.length == 1) return defaultEmptyOK; 346 else return (isAlphanumeric.arguments[1] == true); 347 348 for (i = 0; i < s.length; i++) 349 { 350 var c = s.charAt(i); 351 352 if (! (isLetter(c) || isDigit(c) ) ) 353 return false; 354 } 355 356 return true; 357} 358 359function reformat (s) 360 361{ var arg; 362 var sPos = 0; 363 var resultString = ""; 364 365 for (var i = 1; i < reformat.arguments.length; i++) { 366 arg = reformat.arguments[i]; 367 if (i % 2 == 1) resultString += arg; 368 else { 369 resultString += s.substring(sPos, sPos + arg); 370 sPos += arg; 371 } 372 } 373 return resultString; 374} 375 376function reformatZIPCode (ZIPString) 377{ if (ZIPString.length == 5) return ZIPString; 378 else return (reformat (ZIPString, "", 5, "-", 4)); 379} 380 381function reformatUSPhone (USPhone) 382{ return (reformat (USPhone, "(", 3, ") ", 3, "-", 4)) 383} 384 385function reformatSSN (SSN) 386{ return (reformat (SSN, "", 3, "-", 2, "-", 4)) 387} 388 389function isLeapYear(argYear) { 390 return ((argYear % 4 == 0) && (argYear % 100 != 0)) || (argYear % 400 == 0) 391} 392 393function daysInMonth(argMonth, argYear) { 394 switch (Number(argMonth)) { 395 case 1: // Jan 396 case 3: // Mar 397 case 5: // May 398 case 7: // Jul 399 case 8: // Aug 400 case 10: // Oct 401 case 12: // Dec 402 return 31; 403 break; 404 405 case 4: // Apr 406 case 6: // Jun 407 case 9: // Sep 408 case 11: // Nov 409 return 30; 410 break; 411 412 case 2: // Feb 413 if (isLeapYear(argYear)) 414 return 29 415 else 416 return 28 417 break; 418 419 default: 420 return 0; 421 } 422} 423 424function getDateSeparator(argDate) { 425 if ((argDate.indexOf('-') > 0) && (argDate.indexOf('/') > 0)) 426 return ' ' 427 428 if (argDate.indexOf('-') > 0) 429 return '-' 430 else 431 if (argDate.indexOf('/') > 0) 432 return '/' 433 else 434 return ' ' 435} 436 437function getYear(argDate) { 438 var dateSep = getDateSeparator(argDate) 439 440 if (dateSep == ' ') 441 return 0 442 443 if(argDate.split(dateSep).length == 3) 444 return argDate.split(dateSep)[2] 445 else 446 return 0 447} 448 449function getMonth(argDate) { 450 var dateSep = getDateSeparator(argDate) 451 452 if (dateSep == ' ') 453 return 0 454 455 if(argDate.split(dateSep).length == 3) 456 return argDate.split(dateSep)[0] 457 else 458 return 0 459} 460 461function getDay(argDate) { 462 var dateSep = getDateSeparator(argDate) 463 464 if (dateSep == ' ') 465 return 0 466 467 if(argDate.split(dateSep).length == 3) 468 return argDate.split(dateSep)[1] 469 else 470 return 0 471} 472 473function isProperDay(argDay, argMonth, argYear) { 474 if ((isWhiteSpace(argDay)) || (argDay == 0)) 475 return false 476 477 if ((argDay > 0) && (argDay < daysInMonth(argMonth, argYear) + 1)) 478 return true 479 else 480 return false 481} 482 483function isProperMonth(argMonth) { 484 if ((isWhiteSpace(argMonth)) || (argMonth == 0)) 485 return false 486 487 if ((argMonth > 0) && (argMonth < 13)) 488 return true 489 else
490 return false 491} 492 493function isProperYear(argYear) { 494 if ((isWhiteSpace(argYear)) || (argYear.toString().length > 4) || (argYear.toString().length == 3)) 495 return false 496 497 switch (argYear.toString().length) { 498 case 1: 499 if (argYear >=0 && argYear < 10) 500 return true 501 else 502 return false 503 504 case 2: 505 if (argYear >=0 && argYear < 100) 506 return true 507 else 508 return false 509 510 case 4: 511 if (((argYear >=1900) || (argYear >=2000)) && ((argYear < 3000) || (argYear < 2000))) 512 return true 513 else 514 return false 515 516 default: 517 return false 518 } 519} 520 521function isProperDate(argDate) { 522 var tmpDay = getDay(argDate) 523 var tmpMon = getMonth(argDate) 524 var tmpYear = getYear(argDate) 525 526 return isProperDay(tmpDay, tmpMon, tmpYear) && isProperMonth(tmpMon) && isProperYear(tmpYear) 527} 528 529function charOccurences(argString, argChar) { 530 var intCt = 0 531 532 for(var intI=0; intI < argString.length; intI++) 533 if (argString.charAt(intI) == argChar) 534 intCt++ 535 536 return intCt 537} 538 539function isProperEmail(argEmail) { 540 if (charOccurences(argEmail, '@') + charOccurences(argEmail, '.') < 2) 541 return false 542 543 var atPos = argEmail.indexOf('@') 544 var dotPos = argEmail.indexOf('.') 545 546 if((atPos == 0) || (atPos == (argEmail.length - 1))) 547 return false 548 549 if((dotPos == 0) || (dotPos == (argEmail.length - 1))) 550 return false 551 552 var checkTLD=1; 553 554 var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/; 555 556 var emailPat=/^(.+)@(.+)$/; 557 558 var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]"; 559 560 561 var validChars="\[^\\s" + specialChars + "\]"; 562 563 564 var quotedUser="(\"[^\"]*\")"; 565 566 567 var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/; 568 569 570 var atom=validChars + '+'; 571 572 var word="(" + atom + "|" + quotedUser + ")"; 573 574 var userPat=new RegExp("^" + word + "(\\." + word + ")*$"); 575 576 577 var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$"); 578 579 580 581 var matchArray=argEmail.match(emailPat); 582 583 if (matchArray==null) 584 { 585 return false; 586 } 587 var user=matchArray[1]; 588 var domain=matchArray[2]; 589 590 for (i=0; i<user.length; i++) 591 { 592 if (user.charCodeAt(i)>127) 593 { 594 return false; 595 } 596 } 597 for (i=0; i<domain.length; i++) 598 { 599 if (domain.charCodeAt(i)>127) 600 { 601 return false; 602 } 603 } 604 605 if (user.match(userPat)==null) 606 { 607 return false; 608 } 609 610 var IPArray=domain.match(ipDomainPat); 611 if (IPArray!=null) 612 { 613 for (var i=1;i<=4;i++) 614 { 615 if (IPArray[i]>255) 616 { 617 return false; 618 } 619 } 620 return true; 621 } 622 623 624 var atomPat=new RegExp("^" + atom + "$"); 625 var domArr=domain.split("."); 626 var len=domArr.length; 627 for (i=0;i<len;i++) 628 { 629 if (domArr[i].search(atomPat)==-1) 630 { 631 return false; 632 } 633 } 634 635 if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) 636 { 637 return false; 638 } 639 640 if (len<2) 641 { 642 return false; 643 } 644 645 return true; 646} 647 648function isProperNumber(argNumber) { 649 var numberValue = Number(argNumber) 650 651 if (isNaN(numberValue)) 652 return false 653 else 654 return !isWhiteSpace(argNumber) 655} 656 657function isProperAlphabetic(argString) { 658 var alphabets = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ" 659 660 for(var intI=0; intI<argString.length; intI++) 661 if (alphabets.indexOf(argString.charAt(intI)) == -1) 662 return false 663 664 return true 665} 666 667function objectValue(argFrm, argElem) { 668 var intI 669 var objElem = null 670 671 for (intI=0; intI<argFrm.length; intI++) 672 if (argFrm[intI].name == argElem) 673 objElem = argFrm[intI] 674 675 switch (objElem.type) { 676 case 'text': 677 case 'hidden': 678 case 'password': 679 return objElem.value 680 break; 681 682 case 'select-one': 683 if (objElem.length == 0) 684 return '' 685 else 686 return objElem.options[objElem.selectedIndex].value 687 break; 688 689 case 'radio': 690 for (intI=0; intI<argFrm.length; intI++) 691 if (argFrm[intI].name == argElem) 692 if (argFrm[intI].checked) 693 return argFrm[intI].value 694 695 return '' 696 break; 697 } 698} 699 700function objectFocus(argFrm, argElem) { 701 var intI 702 var objElem = null 703 for (intI=0; intI<argFrm.length; intI++) 704 if (argFrm[intI].name == argElem) 705 objElem = argFrm[intI] 706 objElem.focus(); 707} 708 709function isProperZip(argZip) { 710 if ((argZip.length == 5) || (argZip.length == 9)) 711 return isProperNumber(argZip) 712 713 if (argZip.length == 10) 714 return (isProperNumber(argZip.substr(0, 5)) && isProperNumber(argZip.substr(6, 4)) & (argZip.charAt(5) == '-')) 715} 716 717function isProperUSPhone (argPhone) 718{ 719 var argPhone2 = stripCharsNotInBag(argPhone,"0123456789") 720 return (isOkBag(argPhone,"01234567890 -().") && isInteger(argPhone2) && argPhone2.length==digitsInUSPhoneNumber) 721} 722 723function isProperUSSSN(argSSN) { 724 var argSSN2 = stripCharsNotInBag(argSSN,"0123456789") 725 return (isOkBag(argSSN,"01234567890-") && isInteger(argSSN2) && argSSN2.length==11) 726} 727 728function actionFields(argActions) { 729 this.email = (argActions.indexOf('[email]') > -1) 730 this.required = (argActions.indexOf('[req]') > -1) 731 this.checkDate = (argActions.indexOf('[date]') > -1) 732 this.checkZip = (argActions.indexOf('[zip]') > -1) 733 this.checkNumber = (argActions.indexOf('[number]') > -1) 734 this.checkAlphabetic= (argActions.indexOf('[alpha]') > -1) 735 this.checkUSPhone = (argActions.indexOf('[usphone]') > -1) 736 this.checkUSSSN = (argActions.indexOf('[usssn]') > -1) 737 738 if (argActions.indexOf('[len=') > -1) { 739 this.checkLength = true 740 741 var lenToCheck = '' 742 var bolCont = true 743 744 for (var intI=(argActions.indexOf('[len=') + 5);((intI < argActions.length) && bolCont); intI++) 745 if (argActions.charAt(intI) != ']') 746 lenToCheck += argActions.charAt(intI) 747 else 748 bolCont = false 749 this.lengthToCheck = lenToCheck 750 } 751 else 752 this.checkLength = false 753 754 if (argActions.indexOf('[blankalert=') > -1) { 755 this.blankAlert = true 756 757 var alertString = '' 758 var bolCont = true 759 760 for (var intI=(argActions.indexOf('[blankalert=') + 12);((intI < argActions.length) && bolCont); intI++) 761 if (argActions.charAt(intI) != ']') 762 alertString += argActions.charAt(intI) 763 else 764 bolCont = false 765 this.blankAlertMessage = alertString 766 } 767 else 768 this.blankAlert = false 769 770 if (argActions.indexOf('[invalidalert=') > -1) { 771 this.invalidAlert = true 772 773 var alertString = '' 774 var bolCont = true 775 776 for (var intI=(argActions.indexOf('[invalidalert=') + 14);((intI < argActions.length) && bolCont); intI++) 777 if (argActions.charAt(intI) != ']') 778 alertString += argActions.charAt(intI) 779 else 780 bolCont = false 781 this.invalidAlertMessage = alertString 782 } 783 else 784 this.invalidAlert = false 785 786 if (argActions.indexOf('[equals=') > -1) { 787 this.shouldEqual = true 788 789 var equalsString = '' 790 var bolCont = true 791 792 for (var intI=(argActions.indexOf('[equals=') + 8);((intI < argActions.length) && bolCont); intI++) 793 if (argActions.charAt(intI) != ']') 794 equalsString += argActions.charAt(intI) 795 else 796 bolCont = false 797 this.shouldEqualString = equalsString 798 } 799 else 800 this.shouldEqual = false 801 802} 803 804 805function validateForm(argForm) 806 { 807 var frmElements = argForm.elements 808 var elemName 809 var elemObj 810 811 submitonce(argForm); 812 813 for (var intI=0; intI < frmElements.length; intI++) {// * 814 elemObj = frmElements[intI] 815 elemName = elemObj.name 816 817 if ((elemObj.type == 'hidden') && (elemName.length > 5)) 818 if (elemName.substr(elemName.length - 5).toLowerCase() == '_vldt') {// ** 819 var objAction = new actionFields(objectValue(frmElements, elemName)) 820 var actElem = elemName.substr(0, elemName.length - 5) 821 822 if (objAction.required) { 823 if (isWhiteSpace(objectValue(frmElements, actElem))) {// *** 824 alert (objAction.blankAlert?objAction.blankAlertMessage:actElem + ' cannot be left blank') 825 objectFocus(frmElements, actElem); 826 submitenabled(argForm); 827 return false 828 } // *** 829 } 830 831 if ((objectValue(frmElements, actElem) > '') && (!isWhiteSpace(objectValue(frmElements, actElem)))){// *** 832 if (objAction.checkDate) 833 if (!isProperDate(objectValue(frmElements, actElem))) {// **** 834 alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have an invali
834d date') 835 objectFocus(frmElements, actElem); 836 submitenabled(argForm); 837 return false 838 } // **** 839 840 if (objAction.checkNumber) 841 if (!isProperNumber(objectValue(frmElements, actElem))) {// **** 842 alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have an invalid number') 843 objectFocus(frmElements, actElem); 844 submitenabled(argForm); 845 return false 846 } // **** 847 848 if (objAction.checkZip) 849 if (!isProperZip(objectValue(frmElements, actElem))) {// **** 850 alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have an invalid zipcode') 851 objectFocus(frmElements, actElem); 852 submitenabled(argForm); 853 return false 854 } // **** 855 856 if (objAction.checkAlphabetic) 857 if (!isProperAlphabetic(objectValue(frmElements, actElem))) {// **** 858 alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have invalid characters') 859 objectFocus(frmElements, actElem); 860 submitenabled(argForm); 861 return false 862 } // **** 863 864 if (objAction.checkUSPhone) 865 if (!isProperUSPhone(objectValue(frmElements, actElem))) {// **** 866 alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have invalid characters') 867 objectFocus(frmElements, actElem); 868 submitenabled(argForm); 869 return false 870 } // **** 871 872 if (objAction.checkUSSSN) 873 if (!isProperUSSSN(objectValue(frmElements, actElem))) {// **** 874 alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have invalid characters') 875 objectFocus(frmElements, actElem); 876 submitenabled(argForm); 877 return false 878 } // **** 879 880 if (objAction.email) 881 if (!isProperEmail(objectValue(frmElements, actElem))) {// **** 882 alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have invalid characters') 883 objectFocus(frmElements, actElem); 884 submitenabled(argForm); 885 return false 886 } // **** 887 888 if (objAction.checkLength) 889 if (objectValue(frmElements, actElem).length < objAction.lengthToCheck) {// **** 890 alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' must be at least ' + objAction.lengthToCheck + ' characters long') 891 objectFocus(frmElements, actElem); 892 submitenabled(argForm); 893 return false 894 } // **** 895 } // *** 896 } // ** 897 } // * 898 899 return true 900} 901 902 903function submitenabled(theform) 904 { 905 if (document.all||document.getElementById) 906 { 907 for (i=0;i<theform.length;i++) 908 { 909 var tempobj=theform.elements[i]; 910 if(tempobj.type.toLowerCase()=="submit" || tempobj.type.toLowerCase()=="reset") 911 tempobj.disabled=false; 912 } 913 } 914 } 915 916 917function submitonce(theform) 918 { 919 if (document.all||document.getElementById) 920 { 921 for (i=0;i<theform.length;i++) 922 { 923 var tempobj=theform.elements[i]; 924 if(tempobj.type.toLowerCase()=="submit" || tempobj.type.toLowerCase()=="reset") 925 tempobj.disabled=true; 926 } 927 } 928 } 929 930 931 932function observeWindowLoad(handler) { 933 if (window.addEventListener) { 934 window.addEventListener('load',handler,false); 935 } 936 else if (document.addEventListener) { 937 document.addEventListener('load',handler,false); 938 } 939 else if (window.attachEvent) { 940 window.attachEvent('onload',handler); 941 } 942 else { 943 if (typeof window.onload=='function') { 944 var oldload=window.onload; 945 window.onload = function(){ 946 oldload(); 947 handler(); 948 } 949 } 950 else { window.onload=init; } 951 } 952}
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.