illegalChar1	= new Array("*","/","\\","|","~","(",")","<",">","?",":",";","!","@","#","$","%","^","&","=","_","+",",","{","}","[","]")
illegalChar2	= new Array("*","\\","|","~","(",")","<",">","?",";","!","$","%","^","=","+","{","}","[","]","/")
vowelsArray		= new Array("a","e","i","o","u","y")
lettersArray	= new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z")
numbersArray	= new Array("1","2","3","4","5","6","7","8","9","0")
statesArray		= new Array("AL","AK","AZ","AR","CA","CO","CT","DE","DC","FL","GA","HI","ID","IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","RI","SC","SD","TN","TX","UT","VT","VA","WA","WV","WI","WY")


// THIS FUNCTION REQUIRES ARGUMENTS PASSED IN THE FOLLOWING MANNER -- onSubmit="setUpValidation('fieldname|datatype|required,fieldname2|datatype2|required2');return document.MM_returnValue"
// fieldname(required) - id tag on the form field
// datatype(required) - one of the following datatypes defined in this function -- name,address,city,state,zip,email,file,general,radio,checkbox
// required(required) - determines if the form field needs to be populated -- "R" for required or "NR" for fields that can be empty
function swapStep2RegDisplay(srcID,R_image){
	document.getElementById(srcID).src = "/images/<%=gGetLanguage%>/" + R_image + ".gif"
}

function setUpValidation(formElements){
	//SET or RESET myERR VARIABLE WITH EACH SUBMIT
	var myErr;
	myErr = true;
	//SET UP NECESSARY ARRAYS
	grabElements = formElements.split(",");
	grabLength = grabElements.length-1;
	var elementsArray = new Array(grabLength)

	for(i=0;i<=grabLength;i++){
		elementsArray[i] = grabElements[i].split("|")
		r_spaces_holder = new String(document.getElementById(elementsArray[i][0]).value)
		//SET FORM ELEMENTS CORRESPONDING TEXT
		elementsArray[i][elementsArray[i].length] = elementsArray[i][0] + "_Text";
		//alert(elementsArray[i][0] + " -- " + elementsArray[i][1] + " -- " + elementsArray[i][2] + " -- " + elementsArray[i][3] + " -- " + elementsArray[i][4])
	}
	
	loopBound = elementsArray.length-1;
	
	//SET ALL TEXT ASSOCIATION'S CLASSNAME TO THE ORIGINAL STYLE
	for(i=0;i<=loopBound;i++){
		if (elementsArray[i][3] == "img"){
			tempImage = elementsArray[i][4].replace("_Text","")
			if(elementsArray[i][1] == "radio"){
				checkRadio = document.getElementsByName(elementsArray[i][0])
				checkRadio_Length = checkRadio.length-1
				for(x=0;x<=checkRadio_Length;x++){
					radio_F_Text = elementsArray[i][4] + "_" + x
					document.getElementById(radio_F_Text).src = "/images/<%=gGetLanguage%>/Form_" + radio_F_Text + ".gif"
					//alert(document.getElementById(radio_F_Text).src)
				}
			}else{
				document.getElementById(elementsArray[i][4]).src = "/images/<%=gGetLanguage%>/Form_" + tempImage + ".gif"
			}
		}else if (elementsArray[i][3] == "txt"){
			//If the radio buttons have text associated with each, the txt id is: name_Text_0, name_Text_1, etc.
			//If all radios share one text object, use the alternate line below and name the text: name_Text_0
			if(elementsArray[i][1] == "radio"){
				checkRadio = document.getElementsByName(elementsArray[i][0])
				checkRadio_Length = checkRadio.length-1
				for(x=0;x<=checkRadio_Length;x++){
					//Normal Line for individual text
					//radio_F_Text = elementsArray[i][4] + "_" + x
					//Alternate Line for shared text
					radio_F_Text = elementsArray[i][4]
					document.getElementById(radio_F_Text).className = "Text"
					//alert(radio_F_Text)
				}
			}else{
				document.getElementById(elementsArray[i][4]).className = "Text"
			}
		}
	}
	
	for(x=0;x<=loopBound;x++){
		F_Field = document.getElementById(elementsArray[x][0]).value
		F_Type = elementsArray[x][1]
		F_Required = elementsArray[x][2]
		F_ReturnType = elementsArray[x][3]
		F_Text = document.getElementById(elementsArray[x][4])
		F_Image = elementsArray[x][4].replace("_Text","")
		
		// REMOVE ALL EXTRA WHITE SPACE -- SPACES CANNOT BE REMOVED FROM A FILE PATH, HENCE THE IF STATEMENT
		if (F_Type != "file"){
			while (F_Field.indexOf(" ")!=-1){F_Field=F_Field.replace(" ","")}
			//alert(F_Field)
		}
		
		if(F_Type == "name"){
			if(F_Required == "R" && F_Field != ""){
				checkIllegal1(F_Field, F_Text, F_ReturnType, F_Image)
				checkVowels(F_Field, F_Text, F_ReturnType, F_Image)
				checkNumbers(F_Field, F_Text, 'NOT_IN', F_ReturnType, F_Image)
			}else if (F_Required == "R" && F_Field == ""){
				if (F_ReturnType == "img"){
					myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
				}else if (F_ReturnType == "txt"){
					myErr = false;F_Text.className = "inputRequired"
				}
			}
		}else if(F_Type == "address"){
			if(F_Required == "R" && F_Field != ""){
				checkIllegal2(F_Field, F_Text, F_ReturnType, F_Image)
				checkNumbers(F_Field, F_Text,'IS_IN', F_ReturnType, F_Image)
				checkLetters(F_Field, F_Text,'IS_IN', F_ReturnType, F_Image)
			}else if (F_Required == "R" && F_Field == ""){
				if (F_ReturnType == "img"){
					myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
				}else if (F_ReturnType == "txt"){
					myErr = false;F_Text.className = "inputRequired"
				}
			}
		}else if(F_Type == "city"){
			if(F_Required == "R" && F_Field != ""){
				checkIllegal1(F_Field, F_Text, F_ReturnType, F_Image)
				checkVowels(F_Field, F_Text, F_ReturnType, F_Image)
				checkNumbers(F_Field, F_Text,'NOT_IN', F_ReturnType, F_Image)
			}else if (F_Required == "R" && F_Field == ""){
				if (F_ReturnType == "img"){
					myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
				}else if (F_ReturnType == "txt"){
					myErr = false;F_Text.className = "inputRequired"
				}
			}
		}else if(F_Type == "state"){
			if(F_Required == "R" && F_Field != ""){
				checkState(F_Field,F_Text, F_ReturnType, F_Image)
			}else if (F_Required == "R" && F_Field == ""){
				if (F_ReturnType == "img"){
					myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
				}else if (F_ReturnType == "txt"){
					myErr = false;F_Text.className = "inputRequired"
				}
			}
		}else if(F_Type == "zip"){
			if(F_Required == "R" && F_Field != ""){
				checkIllegal1(F_Field, F_Text, F_ReturnType, F_Image)
				if (F_Field.length != 5){
					if (F_Field.length != 9){
						if(F_Field.length != 6 && F_Field != ""){
							if (F_ReturnType == "img"){
								myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
							}else if (F_ReturnType == "txt"){
								myErr = false;F_Text.className = "inputRequired"
							}
						}else if (F_Field != ""){
							CZ = new Array()
							CZ[0] = F_Field.substr(0,1)
							CZ[1] = F_Field.substr(1,1)
							CZ[2] = F_Field.substr(2,1)
							CZ[3] = F_Field.substr(3,1)
							CZ[4] = F_Field.substr(4,1)
							CZ[5] = F_Field.substr(5,1)
							for(i=0;i<=5;i++){
								if(i==0 || i==2 || i==4){
									if(!isNaN(CZ[i])){
										if (F_ReturnType == "img"){
											myErr = false;radio_F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
										}else if (F_ReturnType == "txt"){
											myErr = false;radio_F_Text.className = "inputRequired"
										}
									}
								}else if(i==1 || i==3 || i==5){
									if(isNaN(CZ[i])){
										if (F_ReturnType == "img"){
											myErr = false;radio_F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
										}else if (F_ReturnType == "txt"){
											myErr = false;radio_F_Text.className = "inputRequired"
										}
									}
								}
							}
						}
					}else{
						checkLetters(F_Field, F_Text,'NOT_IN', F_ReturnType, F_Image)
					}
				}else{
						checkLetters(F_Field, F_Text,'NOT_IN', F_ReturnType, F_Image)
				}
			}else if (F_Required == "R" && F_Field == ""){
				if (F_ReturnType == "img"){
					myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
				}else if (F_ReturnType == "txt"){
					myErr = false;F_Text.className = "inputRequired"
				}
			}
		}else if(F_Type == "email"){
			if(F_Required == "R" && F_Field != ""){
				checkIllegal2(F_Field, F_Text, F_ReturnType, F_Image)
				myAt = 0
				while (F_Field.indexOf("@")!=-1){F_Field=F_Field.replace("@","");myAt+=1}
				if (myAt>=2 || myAt == 0){
					if (F_ReturnType == "img"){
						myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
					}else if (F_ReturnType == "txt"){
						myErr = false;F_Text.className = "inputRequired"
					}
				}
				if(F_Field.indexOf("#")!= -1){
					if (F_ReturnType == "img"){
						myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
					}else if (F_ReturnType == "txt"){
						myErr = false;F_Text.className = "inputRequired"
					}
				}
				emailLength = F_Field.length
				myNum = emailLength-4
				checkDot = F_Field.substr(myNum,2)
				if(F_Field != "" && checkDot.indexOf(".") == -1){
					if (F_ReturnType == "img"){
						myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
					}else if (F_ReturnType == "txt"){
						myErr = false;F_Text.className = "inputRequired"
					}
				}
				if (F_Field == ""){
					if (F_ReturnType == "img"){
						myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
					}else if (F_ReturnType == "txt"){
						myErr = false;F_Text.className = "inputRequired"
					}
				}
			}else if (F_Required == "R" && F_Field == ""){
				if (F_ReturnType == "img"){
					myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
				}else if (F_ReturnType == "txt"){
					myErr = false;F_Text.className = "inputRequired"
				}
			}
		}else if(F_Type == "phone"){	
			if(F_Required == "R" && F_Field != ""){
				if (F_Field.indexOf("(")!=-1){F_Field=F_Field.replace("(","")}
				if (F_Field.indexOf(")")!=-1){F_Field=F_Field.replace(")","")}
				while (F_Field.indexOf("-")!=-1){F_Field=F_Field.replace("-","")}
				while (F_Field.indexOf(".")!=-1){F_Field=F_Field.replace(".","")}
				while (F_Field.indexOf(" ")!=-1){F_Field=F_Field.replace(" ","")}
				checkLetters(F_Field, F_Text,'NOT_IN', F_ReturnType, F_Image)
				if (F_Field != "" && F_Field.length != 10){
					if (F_ReturnType == "img"){
						myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
					}else if (F_ReturnType == "txt"){
						myErr = false;F_Text.className = "inputRequired"
					}
				}
			}else if (F_Required == "R" && F_Field == ""){
				if (F_ReturnType == "img"){
					myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
				}else if (F_ReturnType == "txt"){
					myErr = false;F_Text.className = "inputRequired"
				}
			}
		}else if(F_Type == "file"){
			if(F_Required == "R" && F_Field != ""){
				//CHECKS HIDDEN FIELD CALLED 'validFile' TO SEE IF 'checkFileType()' ACCEPTED THE FILE TYPE -- YOU STILL PASS THE FUNCTION THE FILE NAME, NOT THE HIDDEN FIELD NAME
				if (document.getElementById("validFile").value != "valid"){
					if (F_ReturnType == "img"){
						myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
					}else if (F_ReturnType == "txt"){
						myErr = false;F_Text.className = "inputRequired"
					}
				}
			}else if (F_Required == "R" && F_Field == ""){
				if (F_ReturnType == "img"){
					myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
				}else if (F_ReturnType == "txt"){
					myErr = false;F_Text.className = "inputRequired"
				}
			}
		}else if(F_Type == "general"){
			if(F_Required == "R" && F_Field == ""){
				if (F_ReturnType == "img"){
					myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
				}else if (F_ReturnType == "txt"){
					myErr = false;F_Text.className = "inputRequired"
				}
			}
		}else if(F_Type == "radio"){
			checkRadio = document.getElementsByName(elementsArray[x][0])
			checkRadio_Length = checkRadio.length-1
			l_IsChecked = false
			for(i=0;i<=checkRadio_Length;i++){
				if(F_Required == "R" && checkRadio[i].checked){
					l_IsChecked = true
				}
			}
			if (!l_IsChecked){
				for(i=0;i<=checkRadio_Length;i++){
					//If the radio buttons have text associated with each, the txt id is: name_Text_0, name_Text_1, etc.
					//If all radios share one text object, use the alternate line below and name the text: name_Text_0
					
					//Normal Line for individual text
						//radio_F_Text = elementsArray[x][4] + "_" + i
					//Alternate Line for shared text
					radio_F_Text = elementsArray[x][4]

					//Normal Line for individual img
						//radio_F_Image = elementsArray[x][4].replace("_Text","") + "_" + i
					//Alternate Line for shared img
					radio_F_Image = elementsArray[x][4].replace("_Text","")
					
					
					if (F_ReturnType == "img"){
						myErr = false;document.getElementById(radio_F_Text).src = "/images/<%=gGetLanguage%>/R_Form_" + radio_F_Image + ".gif"
					}else if (F_ReturnType == "txt"){
						myErr = false;document.getElementById(radio_F_Text).className = "inputRequired"
					}
				}
			}
		}else if(F_Type == "checkbox"){
			checkCheckBox = document.getElementById(elementsArray[x][0])
			if(F_Required == "R" && !checkCheckBox.checked){
				if (F_ReturnType == "img"){
					myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
				}else if (F_ReturnType == "txt"){
					myErr = false;F_Text.className = "inputRequired"
				}
			}
		}else{
		}
	}
	if (myErr == false){document.MM_returnValue = false;alert("A problem was encountered with the information you have provided.\nPlease make sure all red field names are filled out correctly.")}
	if (myErr == true){document.MM_returnValue = true}
}

function checkState(F_Field,F_Text,F_ReturnType,F_Image){
	//alert("Illegal 1")
	myState = false
	for (i=0;i<statesArray.length;i++){
		if (F_Field == (statesArray[i])){myState = true}
	}
	if (myState == false){
		if (F_ReturnType == "img"){
			myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
		}else if (F_ReturnType == "txt"){
			myErr = false;F_Text.className = "inputRequired"
		}
	}
}	

function checkIllegal1(F_Field,F_Text,F_ReturnType,F_Image){
	//alert("Illegal 1")
	myIllegal1 = false
	for (i=0;i<illegalChar1.length;i++){
		if (F_Field.indexOf(illegalChar1[i]) != -1){myIllegal1 = true}
	}
	if (myIllegal1 == true){
		if (F_ReturnType == "img"){
			myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
		}else if (F_ReturnType == "txt"){
			myErr = false;F_Text.className = "inputRequired"
		}
	}
}	

function checkIllegal2(F_Field,F_Text,F_ReturnType,F_Image){
	//alert("Illegal 2")
	myIllegal2 = false
	for (i=0;i<illegalChar2.length;i++){
		if (F_Field.indexOf(illegalChar2[i]) != -1){myIllegal2 = true}
	}
	if (myIllegal2 == true){
		if (F_ReturnType == "img"){
			myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
		}else if (F_ReturnType == "txt"){
			myErr = false;F_Text.className = "inputRequired"
		}
	}
}	

function checkVowels(F_Field,F_Text,F_ReturnType,F_Image){
	//alert("Check Vowels")
	F_Field = F_Field.toLowerCase()
	myVowels = 0
	for (i=0;i<vowelsArray.length;i++){if (F_Field.indexOf(vowelsArray[i]) != -1){myVowels=myVowels+1}}
	if (myVowels == 0){
		if (F_ReturnType == "img"){
			myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
		}else if (F_ReturnType == "txt"){
			myErr = false;F_Text.className = "inputRequired"
		}
	}
}

function checkNumbers(F_Field,F_Text, which,F_ReturnType,F_Image){
	//alert("Check Numbers")
	count_numbers = 0
	if(which == "IS_IN"){
		for (i=0;i<numbersArray.length;i++){if (F_Field != "" && F_Field.indexOf(numbersArray[i]) != -1){count_numbers = count_numbers + 1;break;}}
		if (count_numbers == 0){
			if (F_ReturnType == "img"){
				myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
			}else if (F_ReturnType == "txt"){
				myErr = false;F_Text.className = "inputRequired"
			}
		}
	}else if (which == "NOT_IN"){
		for (i=0;i<numbersArray.length;i++){if (F_Field != "" && F_Field.indexOf(numbersArray[i]) != -1){count_numbers = count_numbers + 1;break;}}
		if (count_numbers != 0){
			if (F_ReturnType == "img"){
				myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
			}else if (F_ReturnType == "txt"){
				myErr = false;F_Text.className = "inputRequired"
			}
		}
	}
}

function checkLetters(F_Field,F_Text,which,F_ReturnType,F_Image){
	//alert("Check Letters")
	F_Field = F_Field.toLowerCase()
	count_letters = 0
	if(which == "IS_IN"){
		for (i=0;i<lettersArray.length;i++){if (F_Field != "" && F_Field.indexOf(lettersArray[i]) != -1){count_letters = count_letters + 1;break;}}
		if (count_letters == 0){
			if (F_ReturnType == "img"){
				myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
			}else if (F_ReturnType == "txt"){
				myErr = false;F_Text.className = "inputRequired"
			}
		}
	}else if (which == "NOT_IN"){
		for (i=0;i<lettersArray.length;i++){if (F_Field != "" && F_Field.indexOf(lettersArray[i]) != -1){count_letters = count_letters + 1;break;}}
		if (count_letters != 0){
			if (F_ReturnType == "img"){
				myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
			}else if (F_ReturnType == "txt"){
				myErr = false;F_Text.className = "inputRequired"
			}
		}
	}
}

function checkFileType(F_Field, F_Text,F_ReturnType,F_Image) {
	document.getElementById(F_Text).className = "style1"
	lCheckFile = document.getElementById(F_Field).value
	if (lCheckFile == ""){
		document.getElementById("validFile").value = "invalid";
		if (F_ReturnType == "img"){
			myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
		}else if (F_ReturnType == "txt"){
			myErr = false;F_Text.className = "inputRequired"
		}
	}
	lCheckFile_length = lCheckFile.length
	lCheckFile_dotPos = lCheckFile.charAt(lCheckFile_length-4)
	if (lCheckFile_dotPos != ".") {
		document.getElementById("validFile").value = "invalid";
		if (F_ReturnType == "img"){
			myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
		}else if (F_ReturnType == "txt"){
			myErr = false;F_Text.className = "inputRequired"
		}
		alert("Resume's must be Microsoft Word files only.")
	}
	lCheckFile_Extension = new String(lCheckFile.charAt(lCheckFile_length-3) + lCheckFile.charAt(lCheckFile_length-2) + lCheckFile.charAt(lCheckFile_length-1))
	lCheckFile_Extension.toLowerCase()
	if (lCheckFile_Extension != "doc") {
		document.getElementById("validFile").value = "invalid";
		if (F_ReturnType == "img"){
			myErr = false;F_Text.src = "/images/<%=gGetLanguage%>/R_Form_" + F_Image + ".gif"
		}else if (F_ReturnType == "txt"){
			myErr = false;F_Text.className = "inputRequired"
		}
		alert("Resume's must be Microsoft Word files only.")
	}else{
		document.getElementById("validFile").value = "valid";
	}
}