imageProgress = new Image(); imageProgress.src = "/images/progress.gif"; //Prepopulate certain fields if(typeof vRequiredFields != 'undefined') { RequiredFieldsArray = vRequiredFields.split(','); for(i = 0;i < RequiredFieldsArray.length;i+=3){ switch(RequiredFieldsArray[i]){ case 'firstname': if(displayItem('firstname') != '') document.forms[vFormName].elements[RequiredFieldsArray[i]].value = displayItem('firstname'); break; case 'lastname': if(displayItem('lastname') != '') document.forms[vFormName].elements[RequiredFieldsArray[i]].value = displayItem('lastname'); break; case 'email': if(displayItem('email') != '') document.forms[vFormName].elements[RequiredFieldsArray[i]].value = displayItem('email'); break; case 'address1': if(displayItem('address1') != '') document.forms[vFormName].elements[RequiredFieldsArray[i]].value = displayItem('address1'); break; case 'address2': if(displayItem('address2') != '') document.forms[vFormName].elements[RequiredFieldsArray[i]].value = displayItem('address2'); break; case 'city': if(displayItem('city') != '') document.forms[vFormName].elements[RequiredFieldsArray[i]].value = displayItem('city'); break; case 'state': if(displayItem('state') != '') document.forms[vFormName].elements[RequiredFieldsArray[i]].value = displayItem('state'); break; case 'zip': if(displayItem('zip') != '') document.forms[vFormName].elements[RequiredFieldsArray[i]].value = displayItem('zip'); break; case 'phone': if(displayItem('phone') != '') document.forms[vFormName].elements[RequiredFieldsArray[i]].value = displayItem('phone'); break; case 'phone2': if(displayItem('phone2') != '') document.forms[vFormName].elements[RequiredFieldsArray[i]].value = displayItem('phone2'); break; case 'dobmonth': if(displayItem('dobmonth') != '') document.forms[vFormName].elements[RequiredFieldsArray[i]].value = displayItem('dobmonth'); break; case 'dobday': if(displayItem('dobday') != '') document.forms[vFormName].elements[RequiredFieldsArray[i]].value = displayItem('dobday'); break; case 'dobyear': if(displayItem('dobyear') != '') document.forms[vFormName].elements[RequiredFieldsArray[i]].value = displayItem('dobyear'); break; case 'gender': if(displayItem('gender') != '') document.forms[vFormName].elements[RequiredFieldsArray[i]].value = displayItem('gender'); break; case 'gradmonth': if(displayItem('gradmonth') != '') document.forms[vFormName].elements[RequiredFieldsArray[i]].value = displayItem('gradmonth'); break; case 'gradyear': if(displayItem('gradyear') != '') document.forms[vFormName].elements[RequiredFieldsArray[i]].value = displayItem('gradyear'); break; case 'gpa': if(displayItem('gpa') != '') document.forms[vFormName].elements[RequiredFieldsArray[i]].value = displayItem('gpa'); break; } } } vBadPhoneArray = Array("0000000","1111111","2222222","3333333","4444444","5555555","6666666","7777777","8888888","9999999","1212121","1231234","1234567"); vLongStatesArray = Array("Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","District Of Columbia","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Carolina","North Dakota","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming"); vStatesCorrArray = Array(3,2,7,5,8,9,10,12,11,13,15,17,19,20,21,18,22,23,24,27,26,25,29,30,33,31,34,37,41,38,39,40,42,35,36,43,44,45,46,49,50,51,52,53,54,57,55,58,60,59,61); vStatesArray = Array("AA","AE","AK","AL","AP","AR","AS","AZ","CA","CO","CT","DC","DE","FL","FM","GA","GU","HI","IA","ID","IL","IN","KS","KY","LA","MA","MD","ME","MH","MI","MN","MO","MP","MS","MT","NC","ND","NE","NH","NJ","NM","NV","NY","OH","OK","OR","PA","PR","PW","RI","SC","SD","TN","TX","UT","VA","VI","VT","WA","WI","WV","WY"); vZipsArray = Array ("00000","005NY","006PR","007PR","008VI","009PR","010MA","011MA","012MA","013MA","014MA","015MA","016MA","017MA","018MA","019MA","020MA","021MA","022MA","023MA","024MA","025MA","026MA","027MA","028RI","029RI","030NH","031NH","032NH","033NH","034NH","035NH","036NH","037NH","038NH","039ME","040ME","041ME","042ME","043ME","044ME","045ME","046ME","047ME","048ME","049ME","050VT","051VT","052VT","053VT","054VT","055MA","056VT","057VT","058VT","059VT","060CT","061CT","062CT","063CT","063NY","064CT","065CT","066CT","067CT","068CT","069CT","070NJ","071NJ","072NJ","073NJ","074NJ","075NJ","076NJ","077NJ","078NJ","079NJ","080NJ","081NJ","082NJ","083NJ","084NJ","085NJ","086NJ","087NJ","088NJ","089NJ","090AE","091AE","092AE","093AE","094AE","095AE","096AE","097AE","098AE","100NY","101NY","102NY","103NY","104NY","105NY","106NY","107NY","108NY","109NY","110NY","111NY","112NY","113NY","114NY","115NY","116NY","117NY","118NY","119NY","120NY","121NY","122NY","123NY","124NY","125NY","126NY","127NY","128NY","129NY","130NY","131NY","132NY","133NY","134NY","135NY","136NY","137NY","138NY","139NY","140NY","141NY","142NY","143NY","144NY","145NY","146NY","147NY","148NY","149NY","150PA","151PA","152PA","153PA","154PA","155PA","156PA","157PA","158PA","159PA","160PA","161PA","162PA","163PA","164PA","165PA","166PA","167PA","168PA","169PA","170PA","171PA","172PA","173PA","174PA","175PA","176PA","177PA","178PA","179PA","180PA","181PA","182PA","183PA","184PA","185PA","186PA","187PA","188PA","189PA","190PA","191PA","192PA","193PA","194PA","195PA","196PA","197DE","198DE","199DE","200DC","201VA","202DC","203DC","204DC","205DC","206MD","207MD","208MD","209MD","210MD","211MD","212MD","214MD","215MD","216MD","217MD","218MD","219MD","220VA","221VA","222VA","223VA","224VA","225VA","226VA","227VA","228VA","229VA","230VA","231VA","232VA","233VA","234VA","235VA","236VA","237VA","238VA","239VA","240VA","241VA","242VA","243VA","244VA","245VA","246VA","247WV","248WV","249WV","250WV","251WV","252WV","253WV","254WV","255WV","256WV","257WV","258WV","259WV","260WV","261WV","262WV","263WV","264WV","265WV","266WV","267WV","268WV","270NC","271NC","272NC","273NC","274NC","275NC","276NC","277NC","278NC","279NC","280NC","281NC","282NC","283NC","284NC","285NC","286NC","287NC","288NC","289NC","290SC","291SC","292SC","293SC","294SC","295SC","296SC","297SC","298SC","299SC","300GA","301GA","302GA","303GA","304GA","305GA","306GA","307GA","308GA","309GA","310GA","311GA","312GA","313GA","314GA","315GA","316GA","317GA","318GA","319GA","320FL","321FL","322FL","323FL","324FL","325FL","326FL","327FL","328FL","329FL","330FL","331FL","332FL","333FL","334FL","335FL","336FL","337FL","338FL","339FL","340AA","341FL","342FL","344FL","346FL","347FL","349FL","350AL","351AL","352AL","354AL","355AL","356AL","357AL","358AL","359AL","360AL","361AL","362AL","363AL","364AL","365AL","366AL","367AL","368AL","369AL","370TN","371TN","372TN","373TN","374TN","375TN","376TN","377TN","378TN","379TN","380TN","381TN","382TN","383TN","384TN","385TN","386MS","387MS","388MS","389MS","390MS","391MS","392MS","393MS","394MS","395MS","396MS","397MS","398GA","399GA","400KY","401KY","402KY","403KY","404KY","405KY","406KY","407KY","408KY","409KY","410KY","411KY","412KY","413KY","414KY","415KY","416KY","417KY","418KY","419KY","420KY","421KY","422KY","423KY","424KY","425KY","426KY","427KY","430OH","431OH","432OH","433OH","434OH","435OH","436OH","437OH","438OH","439OH","440OH","441OH","442OH","443OH","444OH","445OH","446OH","447OH","448OH","449OH","450OH","451OH","452OH","453OH","454OH","455OH","456OH","457OH","458OH","459OH","460IN","461IN","462IN","463IN","464IN","465IN","466IN","467IN","468IN","469IN","470IN","471IN","472IN","473IN","474IN","475IN","476IN","477IN","478IN","479IN","480MI","481MI","482MI","483MI","484MI","485MI","486MI","487MI","488MI","489MI","490MI","491MI","492MI","493MI","494MI","495MI","496MI","497MI","498MI","499MI","500IA","501IA","502IA","503IA","504IA","505IA","506IA","507IA","508IA","509IA","510IA","511IA","512IA","513IA","514IA","515IA","516IA","520IA","521IA","522IA","523IA","524IA","525IA","526IA","527IA","528IA","530WI","531WI","532WI","534WI","535WI","537WI","538WI","539WI","540WI","541WI","542WI","543WI","544WI","545WI","546WI","547WI","548WI","549WI","550MN","551MN","553MN","554MN","555MN","556MN","557MN","558MN","559MN","560MN","561MN","562MN","563MN","564MN","565MN","566MN","567MN","569DC","570SD","571SD","572SD","573SD","574SD","575SD","576SD","577SD","580ND","581ND","582ND","583ND","584ND","585ND","586ND","587ND","588ND","590MT","591MT","592MT","593MT","594MT","595MT","596MT","597MT","598MT","599MT","600IL","601IL","602IL","603IL","604IL","605IL","606IL","607IL","608IL","609IL","610IL","611IL","612IL","613IL","614IL","615IL","616IL","617IL","618IL","619IL","620IL","622IL","623IL","624IL","625IL","626IL","627IL","628IL","629IL","630MO","631MO","633MO","634MO","635MO","636MO","637MO","638MO","639MO","640MO","641MO","644MO","645MO","646MO","647MO","648MO","649MO","650MO","651MO","652MO","653MO","654MO","655MO","656MO","657MO","658MO","660KS","661KS","662KS","664KS","665KS","666KS","667KS","668KS","669KS","670KS","671KS","672KS","673KS","674KS","675KS","676KS","677KS","678KS","679KS","680NE","681NE","683NE","684NE","685NE","686NE","687NE","688NE","689NE","690NE","691NE","692NE","693NE","700LA","701LA","703LA","704LA","705LA","706LA","707LA","708LA","710LA","711LA","712LA","713LA","714LA","716AR","717AR","718AR","719AR","720AR","721AR","722AR","723AR","724AR","725AR","726AR","727AR","728AR","729AR","730OK","731OK","733TX","734OK","735OK","736OK","737OK","738OK","739OK","740OK","741OK","743OK","744OK","745OK","746OK","747OK","748OK","749OK","750TX","751TX","752TX","753TX","754TX","755TX","756TX","757TX","758TX","759TX","760TX","761TX","762TX","763TX","764TX","765TX","766TX","767TX","768TX","769TX","770TX","772TX","773TX","774TX","775TX","776TX","777TX","778TX","779TX","780TX","781TX","782TX","783TX","784TX","785TX","786TX","787TX","788TX","789TX","790TX","791TX","792TX","793TX","794TX","795TX","796TX","797TX","798TX","799TX","800CO","801CO","802CO","803CO","804CO","805CO","806CO","807CO","808CO","809CO","810CO","811CO","812CO","813CO","814CO","815CO","816CO","820WY","821WY","822WY","823WY","824WY","825WY","826WY","827WY","828WY","829WY","830WY","831WY","832ID","833ID","834ID","834WY","835ID","836ID","837ID","838ID","840UT","841UT","842UT","843UT","844UT","845UT","846UT","847UT","850AZ","851AZ","852AZ","853AZ","855AZ","856AZ","857AZ","859AZ","860AZ","863AZ","864AZ","865AZ","870NM","871NM","873NM","874NM","875NM","877NM","878NM","879NM","880NM","881NM","882NM","883NM","884NM","885TX","889NV","890NV","891NV","893NV","894NV","895NV","897NV","898NV","900CA","901CA","902CA","903CA","904CA","905CA","906CA","907CA","908CA","910CA","911CA","912CA","913CA","914CA","915CA","916CA","917CA","918CA","919CA","920CA","921CA","922CA","923CA","924CA","925CA","926CA","927CA","928CA","930CA","931CA","932CA","933CA","934CA","935CA","936CA","937CA","938CA","939CA","940CA","941CA","942CA","943CA","944CA","945CA","946CA","947CA","948CA","949CA","950CA","951CA","952CA","953CA","954CA","955CA","956CA","957CA","958CA","959CA","960CA","961CA","962AP","963AP","964AP","965AP","966AP","967AS","967HI","968HI","969FM","969GU","969MH","969MP","969PW","970OR","971OR","972OR","973OR","974OR","975OR","976OR","977OR","978OR","979OR","980WA","981WA","982WA","983WA","984WA","985WA","986WA","988WA","989WA","990WA","991WA","992WA","993WA","994WA","995AK","996AK","997AK","998AK","99999","999AK"); vAreacodesArray = Array("201","202","203","204","205","206","207","208","209","210","212","213","214","215","216","217","218","219","224","225","228","229","231","234","239","240","248","250","251","252","253","254","256","260","262","267","269","270","276","281","289","301","302","303","304","305","306","307","308","309","310","312","313","314","315","316","317","318","319","320","321","323","325","330","331","334","336","337","339","340","347","351","352","360","361","386","401","402","403","404","405","406","407","408","409","410","412","413","414","415","416","417","418","419","423","424","425","430","432","434","435","440","443","450","469","478","479","480","484","501","502","503","504","505","506","507","508","509","510","512","513","514","515","516","517","518","519","520","530","540","541","551","559","561","562","563","567","570","571","573","574","575","580","585","586","601","602","603","604","605","606","607","608","609","610","612","613","614","615","616","617","618","619","620","623","626","630","631","636","641","646","647","650","651","660","661","662","671","678","682","684","701","702","703","704","705","706","707","708","709","712","713","714","715","716","717","718","719","720","724","727","731","732","734","740","754","757","760","763","765","769","770","772","773","774","775","778","779","780","781","785","786","787","800","801","802","803","804","805","806","807","808","810","812","813","814","815","816","817","818","819","828","830","831","832","843","845","847","848","850","856","857","858","859","860","862","863","864","865","866","867","870","877","878","888","901","902","903","904","905","906","907","908","909","910","912","913","914","915","916","917","918","919","920","925","928","931","936","937","939","940","941","947","949","951","952","954","956","970","971","972","973","978","979","980","985","989","999"); var formSubmitted = false; function Validator(){ thisform = document.forms[vFormName]; Email = ''; if(typeof(vState) == "undefined" || vState == '') { State = ''; } else { State = thisform.elements[vState].value; } if(State == '' && State.length > 2){ State = thisform.elements[vState][thisform.elements[vState].selectedIndex].text; } pos = BinarySearch(vLongStatesArray,State); if(pos != -1){ State = vStatesArray[vStatesCorrArray[pos]]; } /*** General Validations ***/ valid1 = 1; firstInvalid = ''; str1 = "\n\nThe following are required fields:\n"; /*** Special Validations ***/ valid2 = 1; str2 = "\n\nThe following are special validations:\n"; RequiredFieldsArray = vRequiredFields.split(','); for(i = 0;i < RequiredFieldsArray.length;i+=3){ fieldname = RequiredFieldsArray[i]; displayname = RequiredFieldsArray[i + 1]; fieldtype = RequiredFieldsArray[i + 2]; switch(fieldtype){ /*** NAME ***/ case 'name': thisform.elements[fieldname].value = trim(thisform.elements[fieldname].value); if(thisform.elements[fieldname].value.length < 2){ valid1 = 0; str1 += "\n* " + displayname; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } }else{ thisform.elements[fieldname].className = 'field'; } break; /*** PHONE NOT REQUIRED***/ case 'phoneNR': rExp = /[^0-9]+/gi; thisform.elements[fieldname].value = thisform.elements[fieldname].value.replace(rExp,""); rExp = /^[0-1]+/; thisform.elements[fieldname].value = thisform.elements[fieldname].value.replace(rExp,""); thisform.elements[fieldname].value = trim(thisform.elements[fieldname].value); if(thisform.elements[fieldname].value.length == 0){ //if empty, do not validate thisform.elements[fieldname].className = 'field'; } else { if(thisform.elements[fieldname].value.length < 10){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " is too short."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } if(thisform.elements[fieldname].value.length > 10){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " is too long."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } Phone1 = thisform.elements[fieldname].value.substr(0,3); Phone2 = thisform.elements[fieldname].value.substr(3,3); Phone3 = thisform.elements[fieldname].value.substr(6,4); if ( BinarySearch(vBadPhoneArray,Phone2 + Phone3) > -1 ) { valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " number is incorrect."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } if(BinarySearch(vStatesArray,State) > -1){ if(BinarySearch(vAreacodesArray,Phone1) == -1){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " must have correct area code."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } for(j = 5;j < 6;j++){ if(Phone2 == ('' + j + j + j)){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " number is incorrect."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } } } if(localPass){ thisform.elements[fieldname].className = 'field'; } } break; /*** PHONE ***/ case 'phone': thisform.elements[fieldname].value = trim(thisform.elements[fieldname].value); localPass = 1; rExp = /[^0-9]+/gi; thisform.elements[fieldname].value = thisform.elements[fieldname].value.replace(rExp,""); rExp = /^[0-1]+/; thisform.elements[fieldname].value = thisform.elements[fieldname].value.replace(rExp,""); if(thisform.elements[fieldname].value.length < 10){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " is too short."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } if(thisform.elements[fieldname].value.length > 10){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " is too long."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } Phone1 = thisform.elements[fieldname].value.substr(0,3); Phone2 = thisform.elements[fieldname].value.substr(3,3); Phone3 = thisform.elements[fieldname].value.substr(6,4); if ( BinarySearch(vBadPhoneArray,Phone2 + Phone3) > -1 ) { valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " number is incorrect."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } if(BinarySearch(vStatesArray,State) > -1){ if(BinarySearch(vAreacodesArray,Phone1) == -1){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " must have correct area code."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } for(j = 5;j < 6;j++){ if(Phone2 == ('' + j + j + j)){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " number is incorrect."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } } } if(localPass){ thisform.elements[fieldname].className = 'field'; } break; /*** AREA CODE ***/ case 'areacode': thisform.elements[fieldname].value = trim(thisform.elements[fieldname].value); localPass = 1; rExp = /[^0-9]+/gi; thisform.elements[fieldname].value = thisform.elements[fieldname].value.replace(rExp,""); rExp = /^[0-1]+/; thisform.elements[fieldname].value = thisform.elements[fieldname].value.replace(rExp,""); if(thisform.elements[fieldname].value.length < 3){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " is too short."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } if(thisform.elements[fieldname].value.length > 3){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " is too long."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } Phone1 = thisform.elements[fieldname].value; if(BinarySearch(vStatesArray,State) > -1){ if(BinarySearch(vAreacodesArray,Phone1) == -1){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " must have correct area code."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } } if(localPass){ thisform.elements[fieldname].className = 'field'; } break; /*** AREA CODE NOT REQUIRED***/ case 'areacodeNR': thisform.elements[fieldname].value = trim(thisform.elements[fieldname].value); localPass = 1; rExp = /[^0-9]+/gi; thisform.elements[fieldname].value = thisform.elements[fieldname].value.replace(rExp,""); rExp = /^[0-1]+/; thisform.elements[fieldname].value = thisform.elements[fieldname].value.replace(rExp,""); if(thisform.elements[fieldname].value.length == 0){ thisform.elements[fieldname].className = 'field'; } else { if(thisform.elements[fieldname].value.length < 3){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " is too short."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } if(thisform.elements[fieldname].value.length > 3){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " is too long."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } Phone1 = thisform.elements[fieldname].value; if(BinarySearch(vStatesArray,State) > -1){ if(BinarySearch(vAreacodesArray,Phone1) == -1){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " must have correct area code."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } } if(localPass){ thisform.elements[fieldname].className = 'field'; } } break; /*** PHONE 7 digits (no area code) ***/ case 'phone7': thisform.elements[fieldname].value = trim(thisform.elements[fieldname].value); localPass = 1; rExp = /[^0-9]+/gi; thisform.elements[fieldname].value = thisform.elements[fieldname].value.replace(rExp,""); rExp = /^[0-1]+/; thisform.elements[fieldname].value = thisform.elements[fieldname].value.replace(rExp,""); if(thisform.elements[fieldname].value.length < 7){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " is too short."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } if(thisform.elements[fieldname].value.length > 7){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " is too long."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } Phone2 = thisform.elements[fieldname].value.substr(0,3); Phone3 = thisform.elements[fieldname].value.substr(3,4); if ( BinarySearch(vBadPhoneArray,Phone2 + Phone3) > -1 ) { valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " number is incorrect."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } for(j = 5;j < 6;j++){ if(Phone2 == ('' + j + j + j)){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " number is incorrect."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } } if(localPass){ thisform.elements[fieldname].className = 'field'; } break; /*** PHONE 7 digits NOT REQUIRED(no area code) ***/ case 'phone7NR': thisform.elements[fieldname].value = trim(thisform.elements[fieldname].value); localPass = 1; rExp = /[^0-9]+/gi; thisform.elements[fieldname].value = thisform.elements[fieldname].value.replace(rExp,""); rExp = /^[0-1]+/; thisform.elements[fieldname].value = thisform.elements[fieldname].value.replace(rExp,""); if(thisform.elements[fieldname].value.length == 0){ thisform.elements[fieldname].className = 'field'; } else { if(thisform.elements[fieldname].value.length < 7){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " is too short."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } if(thisform.elements[fieldname].value.length > 7){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " is too long."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } if(thisform.elements[fieldname].value.length == 7){ thisform.elements[fieldname].className = 'field'; } } break; /*** International Phone ***/ case 'phoneINT': rExp = /[^0-9]+/gi; thisform.elements[fieldname].value = thisform.elements[fieldname].value.replace(rExp,""); rExp = /^[0-1]+/; thisform.elements[fieldname].value = thisform.elements[fieldname].value.replace(rExp,""); if(thisform.elements[fieldname].value.length < 3){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " is too short."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } else { thisform.elements[fieldname].className = 'field'; } break; /*** International Phone (not required) ***/ case 'phoneINTNR': rExp = /[^0-9]+/gi; thisform.elements[fieldname].value = thisform.elements[fieldname].value.replace(rExp,""); rExp = /^[0-1]+/; thisform.elements[fieldname].value = thisform.elements[fieldname].value.replace(rExp,""); if(thisform.elements[fieldname].value.length == 0){ thisform.elements[fieldname].className = 'field'; } else { if(thisform.elements[fieldname].value.length < 3){ valid2 = 0; localPass = 0; str2 += "\n* " + displayname + " is too short."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } else { thisform.elements[fieldname].className = 'field'; } } break; /*** ZIP ***/ case 'zip': rExp = /[^A-Za-z0-9]+/gi; thisform.elements[fieldname].value = thisform.elements[fieldname].value.replace(rExp,""); thisform.elements[fieldname].value = trim(thisform.elements[fieldname].value); localPass = 1; if(thisform.elements[fieldname].value.length < 5){ valid2 = 0; localPass = 0; str2 += "\n* Not a valid zip."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } Zip = thisform.elements[fieldname].value.substr(0,3); if(BinarySearch(vStatesArray,State) > -1){ if(BinarySearch(vZipsArray,Zip+State) == -1){ valid2 = 0; localPass = 0; str2 += "\n* State-zip combo is not valid."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } } if(localPass){ thisform.elements[fieldname].className = 'field'; } break; /*** EMAIL ***/ case 'email': thisform.elements[fieldname].value = trim(thisform.elements[fieldname].value); reg = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/; // valid if(!reg.test(thisform.elements[fieldname].value)){ valid2 = 0; str2 += "\n* Email is not valid."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } }else{ thisform.elements[fieldname].className = 'field'; } Email = thisform.elements[fieldname].value; break; /*** EMAIL CONFIRM ***/ case 'emailconfirm': thisform.elements[fieldname].value = trim(thisform.elements[fieldname].value); if(thisform.elements[fieldname].value != Email){ valid2 = 0; str2 += "\n* Emails do not match."; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } }else{ thisform.elements[fieldname].className = 'field'; } Email = thisform.elements[fieldname].value; break; /*** TEXT ***/ case 'text': thisform.elements[fieldname].value = trim(thisform.elements[fieldname].value); if(thisform.elements[fieldname].value == ''){ valid1 = 0; str1 += "\n* " + displayname; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } }else{ thisform.elements[fieldname].className = 'field'; } break; /*** SELECT ***/ case 'select': if(thisform.elements[fieldname].length == 0) { valid1 = 0; str1 += "\n* " + displayname; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } else if(thisform.elements[fieldname].selectedIndex <= 0){ valid1 = 0; str1 += "\n* " + displayname; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } } else{ thisform.elements[fieldname].className = 'field'; } break; /*** RADIO ***/ case 'radio': checked = 0; for(j = 0;j < thisform.elements[fieldname].length;j++){ if(thisform.elements[fieldname][j].checked){ checked = 1; } } if(!checked){ valid1 = 0; str1 += "\n* " + displayname; for(j = 0;j < thisform.elements[fieldname].length;j++){ thisform.elements[fieldname][j].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = ''; } } }else{ for(j = 0;j < thisform.elements[fieldname].length;j++){ thisform.elements[fieldname][j].className = 'field'; } } break; /*** CHECKBOX ***/ case 'checkbox': if(!thisform.elements[fieldname].checked){ valid1 = 0; str1 += "\n* " + displayname; thisform.elements[fieldname].className = 'field-error'; if(firstInvalid == ''){ firstInvalid = fieldname; } }else{ thisform.elements[fieldname].className = 'field'; } break; /*** CHECKBOXMULTI ***/ case 'checkboxmulti': fieldArray = fieldname.split('|'); checked = false; for(j = 0;j < fieldArray.length;j++){ checked |= thisform.elements[fieldArray[j]].checked; } if(!checked){ valid1 = 0; str1 += "\n* " + displayname; if(firstInvalid == ''){ firstInvalid = fieldArray[0]; } } break; } } if(typeof(vDependentFields) != "undefined"){ for(i = 0;i < vDependentFields.length;i+=3){ selectedItems = vDependentFields[i].split(','); selectedBool = false; requiredItems = vDependentFields[i + 1].split(','); requiredBool = false; for(j = 1;j < selectedItems.length;j++){ if(thisform.elements[selectedItems[0]].value == selectedItems[j]){ selectedBool = true; } } for(j = 1;j < requiredItems.length;j++){ if(thisform.elements[requiredItems[0]].value == requiredItems[j]){ requiredBool = true; }else if(thisform.elements[requiredItems[0]].value != "" && requiredItems[j] == "ANYTHING"){ requiredBool = true; } } if(selectedBool && !requiredBool){ valid2 = 0; str2 += "\n* " + vDependentFields[i + 2]; if(firstInvalid == ''){ firstInvalid = requiredItems[0]; } } } } str = "VALIDATION ERROR"; if(!valid1){ str += str1; } if(!valid2){ str += str2; } if(!valid1 || !valid2){ alert(str); if(firstInvalid != ''){ if( thisform.elements[firstInvalid].type != 'hidden' ) { thisform.elements[firstInvalid].focus(); } } return false; }else{ if(!validateCampus()){ return false; } if(!formSubmitted){ inProgress(); formSubmitted = true; return true; }else{ window.status = 'Form Submitting...'; return false; } } return false; } function inProgress() { var groupList = document.getElementsByTagName('input'); for(i = 0; i < groupList.length; i++){ if(groupList[i].type == 'image' || groupList[i].type == 'submit') { groupList[i].src = imageProgress.src; } } } function BinarySearch(ArrayToSearch, SearchFor){ first = 0; last = ArrayToSearch.length - 1; mid = Math.floor((first + last) / 2); while((first <= last) && (ArrayToSearch[mid] != SearchFor.toUpperCase())){ if(SearchFor.toUpperCase() < ArrayToSearch[mid]){ last = mid - 1; }else if(SearchFor.toLowerCase() > ArrayToSearch[mid]){ first = mid + 1; } mid = Math.floor((first + last)/2); } if(ArrayToSearch[mid] == SearchFor.toUpperCase()){ return mid; }else{ return -1; } } function PageQuery(q) { if(q.length > 1) this.q = q.substring(1, q.length); else this.q = null; this.keyValuePairs = new Array(); if(q) { for(var i=0; i < this.q.split("&").length; i++) { this.keyValuePairs[i] = this.q.split("&")[i]; } } this.getKeyValuePairs = function() { return this.keyValuePairs; } this.getValue = function(s) { for(var j=0; j < this.keyValuePairs.length; j++) { if(this.keyValuePairs[j].split("=")[0] == s) return this.keyValuePairs[j].split("=")[1]; } return false; } this.getParameters = function() { var a = new Array(this.getLength()); for(var j=0; j < this.keyValuePairs.length; j++) { a[j] = this.keyValuePairs[j].split("=")[0]; } return a; } this.getLength = function() { return this.keyValuePairs.length; } } function queryString(key){ var page = new PageQuery(window.location.search); return unescape(page.getValue(key)); } function displayItem(key){ if(queryString(key)=='false'){ return ''; }else{ return queryString(key); } } function trim(str){ return str.replace(/^\s*|\s*$/g,""); } var ajaxObject = false; var ajaxFunc = false; function ajaxRequest(url, parameters, callback) { ajaxFunc = callback; ajaxObject = false; if (window.XMLHttpRequest) { ajaxObject = new XMLHttpRequest(); if (ajaxObject.overrideMimeType) { ajaxObject.overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { try { ajaxObject = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { ajaxObject = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!ajaxObject) { alert('Cannot create XMLHTTP instance'); return false; } ajaxObject.onreadystatechange = ajaxCallback; ajaxObject.open('GET', url + '?' + parameters, true); ajaxObject.send(null); } function ajaxCallback() { if (ajaxObject.readyState == 4) { if (ajaxObject.status == 200) { ajaxFunc(ajaxObject.responseText); } } }