function CValidateForm()
{ var m_arrIllegalUSAreaCodes = new Array( 211, 311, 411, 456, 500, 511, 555, 600, 611, 700, 711, 811, 900, 911, 976, 999 ); this.m_arrIllegalUSAreaCodes = m_arrIllegalUSAreaCodes; var m_arrLegalUSAreaCodes = { 201 : "NJ", 202 : "DC", 203 : "CT", 204 : "MB", 205 : "AL", 206 : "WA", 207 : "ME", 208 : "ID", 209 : "CA", 210 : "TX", 212 : "NY", 213 : "CA", 214 : "TX", 215 : "PA", 216 : "OH", 217 : "IL", 218 : "MN", 219 : "IN", 224 : "IL", 225 : "LA", 226 : "ON", 228 : "MS", 229 : "GA", 231 : "MI", 234 : "OH", 236 : "VA", 239 : "FL", 240 : "MD", 242 : "Bahamas", 246 : "Barbados", 248 : "MI", 250 : "BC", 251 : "AL", 252 : "NC", 253 : "WA", 254 : "TX", 256 : "AL", 260 : "IN", 262 : "WI", 264 : "Anguilla", 267 : "PA", 268 : "Antigua and Barbuda", 269 : "MI", 270 : "KY", 276 : "VA", 278 : "MI", 281 : "TX", 283 : "OH", 284 : "British Virgin Islands", 289 : "ON", 301 : "MD", 302 : "DE", 303 : "CO", 304 : "WV", 305 : "FL", 306 : "SK", 307 : "WY", 308 : "NE", 309 : "IL", 310 : "CA", 312 : "IL", 313 : "MI", 314 : "MO", 315 : "NY", 316 : "KS", 317 : "IN", 318 : "LA", 319 : "IA", 320 : "MN", 321 : "FL", 323 : "CA", 325 : "TX", 330 : "OH", 331 : "IL", 334 : "AL", 336 : "NC", 337 : "LA", 339 : "MA", 340 : "US Virgin Islands", 341 : "CA", 345 : "Cayman Islands", 347 : "NY", 351 : "MA", 352 : "FL", 360 : "WA", 361 : "CA", 380 : "OH", 385 : "UT", 386 : "FL", 401 : "RI", 402 : "NE", 403 : "AB", 404 : "GA", 405 : "OK", 406 : "MT", 407 : "FL", 408 : "CA", 409 : "TX", 410 : "MD", 412 : "PA", 413 : "MA", 414 : "WI", 415 : "CA", 416 : "ON", 417 : "MO", 418 : "RI", 419 : "OH", 423 : "TN", 424 : "CA", 425 : "WA", 430 : "TX", 434 : "VA", 435 : "UT", 438 : "QC", 440 : "OH", 441 : "Bermuda", 442 : "CA", 443 : "MD", 450 : "QC", 464 : "IL", 469 : "TX", 470 : "GA", 473 : "Grenada", 475 : "CT", 478 : "GA", 479 : "AR", 480 : "AZ", 484 : "PA", 501 : "AR", 502 : "KY", 503 : "OR", 504 : "LA", 505 : "NM", 506 : "NB", 507 : "MN", 508 : "MA", 509 : "WA", 510 : "CA", 512 : "TX", 513 : "OH", 514 : "QC", 515 : "IA", 516 : "NY", 517 : "MI", 518 : "NY", 519 : "ON", 520 : "AZ", 530 : "CA", 540 : "VA", 541 : "OR", 551 : "NJ", 557 : "MO", 559 : "CA", 561 : "FL", 562 : "CA", 563 : "IA", 564 : "WA", 567 : "OH", 570 : "PA", 571 : "VA", 573 : "MO", 574 : "IN", 580 : "OK", 585 : "NY", 586 : "MI", 601 : "MS", 602 : "AZ", 603 : "NH", 604 : "BC", 605 : "SD", 606 : "KY", 607 : "NY", 608 : "WI", 609 : "NJ", 610 : "PA", 612 : "MN", 613 : "ON", 614 : "OH", 615 : "TN", 616 : "MI", 617 : "MA", 618 : "IL", 619 : "CA", 620 : "KS", 623 : "AZ", 626 : "CA", 627 : "CA", 628 : "CA", 630 : "IL", 631 : "NY", 636 : "MO", 641 : "IA", 646 : "NY", 647 : "ON", 649 : "Turks & Caicos Islands", 650 : "CA", 651 : "MN", 660 : "MO", 661 : "CA", 662 : "MS", 664 : "Montserrat", 669 : "CA", 670 : "MP", 671 : "GU", 678 : "GA", 679 : "MI", 682 : "TX", 684 : "American Samoa", 689 : "FL", 701 : "ND", 702 : "NV", 703 : "VA", 704 : "NC", 705 : "ON", 706 : "GA", 707 : "CA", 708 : "IL", 709 : "NL", 710 : "US Government", 712 : "IA", 713 : "TX", 714 : "CA", 715 : "WI", 716 : "NY", 717 : "PA", 718 : "NY", 719 : "CO", 720 : "CO", 724 : "PA", 727 : "FL", 731 : "TN", 732 : "NJ", 734 : "MI", 737 : "TX", 740 : "OH", 747 : "CA", 754 : "FL", 757 : "VA", 758 : "St. Lucia", 760 : "CA", 762 : "GA", 763 : "MN", 764 : "CA", 765 : "IN", 767 : "Dominica", 769 : "MS", 770 : "GA", 772 : "FL", 773 : "IL", 774 : "MA", 775 : "NV", 778 : "BC", 780 : "AB", 781 : "MA", 784 : "St. Vincent & Grenadines", 785 : "KS", 786 : "FL", 787 : "PR", 800 : "US/Canada toll free", 801 : "UT", 802 : "VT", 803 : "SC", 804 : "VA", 805 : "CA", 806 : "TX", 807 : "ON", 808 : "HI", 809 : "Dominican Republic", 810 : "MI", 812 : "IN", 813 : "FL", 814 : "PA", 815 : "IL", 816 : "MO", 817 : "TX", 818 : "CA", 819 : "QC", 822 : "US/Canada toll free", 828 : "NC", 829 : "Dominican Republic", 830 : "TX", 831 : "CA", 832 : "TX", 833 : "US/Canada toll free", 835 : "PA", 843 : "SC", 844 : "US/Canada toll free", 845 : "NY", 847 : "IL", 848 : "NJ", 850 : "FL", 855 : "US/Canada toll free", 856 : "NJ", 857 : "MA", 858 : "CA", 859 : "KY", 860 : "CT", 862 : "NJ", 863 : "FL", 864 : "SC", 865 : "TN", 866 : "US/Canada toll free", 867 : "YT", 868 : "Trinidad and Tobago", 869 : "St. Kitts & Nevis", 870 : "AR", 872 : "IL", 876 : "Jamaica", 877 : "US/Canada toll free", 880 : "Paid Toll-free Service", 881 : "Paid Toll-free Service", 882 : "Paid Toll-free Service", 888 : "US/Canada toll free", 898 : "VoIP service", 901 : "TN", 902 : "NS", 903 : "TX", 904 : "FL", 905 : "ON", 906 : "MI", 907 : "AK", 908 : "NJ", 909 : "CA", 910 : "NC", 912 : "GA", 913 : "KS", 914 : "KY", 915 : "TX", 916 : "CA", 917 : "NY", 918 : "OK", 919 : "NC", 920 : "WI", 925 : "CA", 928 : "AZ", 931 : "TN", 935 : "CA", 936 : "TX", 937 : "OH", 939 : "PR", 940 : "TX", 941 : "FL", 947 : "MI", 949 : "CA", 951 : "CA", 952 : "MN", 954 : "FL", 956 : "TX", 957 : "NM", 959 : "CT", 969 : "MD", 970 : "CO", 971 : "OR", 972 : "TX", 973 : "NJ", 975 : "MO", 978 : "MA", 979 : "TX", 980 : "NC", 984 : "NC", 985 : "LA", 989 : "MI"
}; var m_arrIllegalUSLocalNumberHi = new Array( 555 ); this.m_arrIllegalUSLocalNumberHi = m_arrIllegalUSLocalNumberHi; var m_arrIllegalUSPhoneNumbers = new Array(); this.m_arrIllegalUSPhoneNumbers = m_arrIllegalUSPhoneNumbers; var m_arrIllegalDomainNames = new Array(); this.m_arrIllegalDomainNames = m_arrIllegalDomainNames; function addIllegalUSPhoneNumbers()
{ for(var i = 0; i < arguments.length; i++)
{ addIllegalUSPhoneNumber(arguments[i]);}
}
this.addIllegalUSPhoneNumbers = addIllegalUSPhoneNumbers; function addIllegalDomainNames()
{ for(var i = 0; i < arguments.length; i++)
{ addIllegalDomainName(arguments[i]);}
}
this.addIllegalDomainNames = addIllegalDomainNames; function addIllegalUSPhoneNumber(a_szUSPhoneNumber)
{ var oFakeInputElement = new Object(); oFakeInputElement.value = a_szUSPhoneNumber; if( isUSPhoneNumberFormatValid(oFakeInputElement) )
{ var oNewPhoneNumber = new Object(); oNewPhoneNumber.usAreaCode = getUSAreaCode(oFakeInputElement); oNewPhoneNumber.usLocalNumberHi = getUSLocalNumberHi(oFakeInputElement); oNewPhoneNumber.usLocalNumberLow = getUSLocalNumberLow(oFakeInputElement); m_arrIllegalUSPhoneNumbers.push(oNewPhoneNumber);}
}
this.addIllegalUSPhoneNumber = addIllegalUSPhoneNumber; function addIllegalDomainName(a_szDomainName)
{ if(a_szDomainName)
{ m_arrIllegalDomainNames.push(a_szDomainName.toLowerCase());}
}
this.addIllegalDomainName = addIllegalDomainName; function isHttpURLValid(a_oInput)
{ var szValue = getValueFromElement(a_oInput); if(0 == szValue.toLowerCase().search(/^(http:[/][/])?((([a-z0-9][a-z0-9-]*[a-z0-9][.])*([a-z][a-z0-9-]*[a-z0-9][.])+[a-z]{2,4}[/]?)|([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}[/]?))$/) )
{ return true;}
return false;}
this.isHttpURLValid = isHttpURLValid; function isEmailValid(a_oInput)
{ var szValue = getValueFromElement(a_oInput); if(0 == szValue.toLowerCase().search(/^[a-z0-9]+[a-z0-9._-]*@((([a-z0-9][a-z0-9-]*[a-z0-9][.])*([a-z][a-z0-9-]*[a-z0-9][.])+[a-z]{2,4})|(([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})))$/) )
{ return true;}
return false;}
this.isEmailValid = isEmailValid; function isFullHttpURLValid(a_oInput)
{ return null;}
this.isFullHttpURLValid = isFullHttpURLValid; function isNameValid(a_oInput)
{ var szValue = getValueFromElement(a_oInput); if(0 == szValue.search(/^(([a-zA-Z]+[,.]?)(\s*))+(([a-zA-Z]+[-][a-zA-Z]+)?)$/) )
{ return true;}
return false;}
this.isNameValid = isNameValid; function isUSPhoneNumberFormatValid(a_oInput)
{ var szValue = getValueFromElement(a_oInput); szValue = szValue.toLowerCase().replace(/\s/g,''); if(0 == szValue.search(/^(1[-.]?)?([\(]?\d{3}[\)]?)([-.]?\d{3}[-.]?\d{4})(x\d{1,5})?$/) )
{ return true;}
return false;}
this.isUSPhoneNumberFormatValid = isUSPhoneNumberFormatValid; function isEmailAddressDomainNameLegal(a_oInput)
{ return isHttpURLDomainNameLegal(a_oInput);}
this.isEmailAddressDomainNameLegal = isEmailAddressDomainNameLegal; function isHttpURLDomainNameLegal(a_oInput)
{ var szHttpURLDomainName = getHttpURLDomainName(a_oInput); if(szHttpURLDomainName)
{ szHttpURLDomainName = szHttpURLDomainName.toLowerCase(); for(var i = 0; i < m_arrIllegalDomainNames.length; i++)
{ if(szHttpURLDomainName == m_arrIllegalDomainNames[i])
{ return false;}
}
return true;}
return false;}
this.isHttpURLDomainNameLegal = isHttpURLDomainNameLegal; function isUSPhoneNumberLegal(a_oInput)
{ var szUSAreaCode = getUSAreaCode(a_oInput); var szUSAreaCodeRegion = getUSAreaCodeRegion(a_oInput); var szUSLocalNumberHi = getUSLocalNumberHi(a_oInput); var szUSLocalNumberLow = getUSLocalNumberLow(a_oInput); var szUSPhoneExt = getUSPhoneExt(a_oInput); if(isDef(szUSAreaCode,szUSLocalNumberHi,szUSLocalNumberLow,szUSPhoneExt) )
{ for(var i = 0; i < m_arrIllegalUSAreaCodes.length; i++)
{ if(szUSAreaCode == m_arrIllegalUSAreaCodes[i])
{ return false;}
}
for(var i = 0; i < m_arrIllegalUSLocalNumberHi.length; i++)
{ if(szUSLocalNumberHi == m_arrIllegalUSLocalNumberHi[i])
{ return false;}
}
for(var i = 0; i < m_arrIllegalUSPhoneNumbers.length; i++)
{ if( (szUSAreaCode == m_arrIllegalUSPhoneNumbers[i].usAreaCode ) &&
(szUSLocalNumberHi == m_arrIllegalUSPhoneNumbers[i].usLocalNumberHi ) &&
(szUSLocalNumberLow == m_arrIllegalUSPhoneNumbers[i].usLocalNumberLow)
)
{ return false;}
}
return true;}
return false;}
this.isUSPhoneNumberLegal = isUSPhoneNumberLegal; function isDimention(a_oInput, a_ioptMinCount, a_ioptMaxCount)
{ var szValue = getValueFromElement(a_oInput); var iMinCount = (null==a_ioptMinCount)?0:a_ioptMinCount; var iMaxCount = (null==a_ioptMaxCount)?1024:a_ioptMaxCount; if( (szValue.length >= iMinCount) && (szValue.length <= iMaxCount) )
{ return true;}
return false;}
this.isDimention = isDimention; function getUSAreaCodeRegion(a_oInput)
{ var szValue = getValueFromElement(a_oInput); var szUSAreaCode = getUSAreaCode(a_oInput); var szUSAreaCodeRegion = ''; if(szValue && szUSAreaCode)
{ szUSAreaCodeRegion = m_arrLegalUSAreaCodes[szUSAreaCode]; if(null == szUSAreaCodeRegion)
{ szUSAreaCodeRegion = '';}
}
return szUSAreaCodeRegion;}
this.getUSAreaCodeRegion = getUSAreaCodeRegion; function getHttpURLFullHost(a_oInput)
{ var szValue = getValueFromElement(a_oInput); var szFullHost = szValue.toLowerCase().match(/((([a-z0-9][a-z0-9-]*[a-z0-9][.])*([a-z][a-z0-9-]*[a-z0-9][.])+[a-z]{2,4}[/]?)|([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}[/]?))$/); if(szFullHost)
{ if( szFullHost[0].length > 0 )
{ szFullHost = szFullHost[0];}
szFullHost = szFullHost.toString(); szFullHost = trimRight(szFullHost, '/');}
return szFullHost;}
this.getHttpURLFullHost = getHttpURLFullHost
function getEmailAddressHost(a_oInput)
{ return getHttpURLHost(a_oInput);}
this.getEmailAddressHost = getEmailAddressHost; function isHostValid(a_oInput)
{ var szValue = getValueFromElement(a_oInput); var szDomainName = szValue.toLowerCase().match(/^((http:[/][/]www.)|(www.))?((([a-z][a-z0-9-]*[a-z0-9][.])[a-z]{2,4}([.][a-z]{2,4})?[/]?)|([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}[/]?))$/) ; if(szDomainName)
{ if(szDomainName[0].length > 1)
{ szDomainName = szDomainName[0];}
if(null == trimRight(szDomainName,'/'))
{ return false;}
else
{ return true;}
}
return null;}
this.isHostValid = isHostValid; function getHttpURLHost(a_oInput)
{ var szValue = getValueFromElement(a_oInput); var szDomainName = szValue.toLowerCase().match(/((([a-z][a-z0-9-]*[a-z0-9][.])[a-z]{2,4}[/]?)|([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}[/]?))$/) ; if(szDomainName)
{ if(szDomainName[0].length > 1)
{ szDomainName = szDomainName[0];}
return trimRight(szDomainName,'/');}
return null;}
this.getHttpURLHost = getHttpURLHost; function getUSPhoneExt(a_oInput)
{ var szValue = getValueFromElement(a_oInput); szValue = szValue.toLowerCase().replace(/\s/g,''); szValue = szValue.replace(/[-.\(\)]/g, ''); var szUSPhoneExt = szValue.split('x',2)[1]; if(szUSPhoneExt)
{ return szUSPhoneExt;}
return '';}
this.getUSPhoneExt = getUSPhoneExt; function getUSLocalNumberHi(a_oInput)
{ var szValue = getValueFromElement(a_oInput); szValue = szValue.toLowerCase().replace(/\s/g,''); szValue = szValue.replace(/[-.\(\)]/g, ''); var szUSLocalNumberHi = szValue.split('x',2)[0]; if(10 == szUSLocalNumberHi.length)
{ return szUSLocalNumberHi.substring(3,6);}
else
{ return szUSLocalNumberHi.substring(4,7);}
}
this.getUSLocalNumberHi = getUSLocalNumberHi; function getUSLocalNumberLow(a_oInput)
{ var szValue = getValueFromElement(a_oInput); szValue = szValue.toLowerCase().replace(/\s/g,''); szValue = szValue.replace(/[-.\(\)]/g, ''); var szUSLocalNumberHi = szValue.split('x',2)[0]; if(10 == szUSLocalNumberHi.length)
{ return szUSLocalNumberHi.substring(6,10);}
else
{ return szUSLocalNumberHi.substring(7,11);}
}
this.getUSLocalNumberLow = getUSLocalNumberLow; function getUSAreaCode(a_oInput)
{ var szValue = getValueFromElement(a_oInput); szValue = szValue.toLowerCase().replace(/\s/g,''); var szAreaCode = szValue.match(/^(1[-.]?)?([\(]?\d{3}[\)]?)/); if(szAreaCode)
{ if(szAreaCode[0].length >= 3)
{ szAreaCode = szAreaCode[0];}
else
{ szAreaCode = szAreaCode.toString();}
szAreaCode = szAreaCode.replace(/[-.\(\)]/g, ''); if(4 == szAreaCode.length)
{ szAreaCode = szAreaCode.substring(1,4);}
return szAreaCode;}
return null;}
this.getUSAreaCode = getUSAreaCode; function getHttpTopLevelDomainName(a_oInput)
{ var szValue = getValueFromElement(a_oInput); var szTopLevelDomainName = szValue.match(/[a-zA-Z]{2,4}[/]?$/); if(szTopLevelDomainName)
{ if(szTopLevelDomainName[0].length > 1)
{ szTopLevelDomainName = szTopLevelDomainName[0];}
szTopLevelDomainName = szTopLevelDomainName.toString(); szTopLevelDomainName = trimRight(szTopLevelDomainName,'/');}
return szTopLevelDomainName;}
function getEmailAddressDomainName(a_oInput)
{ return getHttpURLDomainName(a_oInput);}
function getEmailAddressUserName(a_oInput)
{ var szValue = getValueFromElement(a_oInput); var szUserName = szValue.match(/^[a-zA-Z0-9]+[a-zA-Z0-9._-]*@/); if(szUserName)
{ szUserName = trimRight(szUserName,'@');}
return szUserName;}
function getHttpURLDomainName(a_oInput)
{ var szHost = getHttpURLHost(a_oInput); if(szHost)
{ var szArray = szHost.split('.'); if(szArray && (szArray[0].length > 1))
{ return szArray[0].toString();}
return szArray.toString();}
return null;}
function getValueFromElement(a_oInput)
{ if(!a_oInput) return ''; if(null == a_oInput.value) return ''; var szValue = a_oInput.value; if(szValue)
{ szValue = trim(szValue); return szValue;}
return '';}
}
