var regJustText = /^([a-zA-Z\s.,']+)$/ //Checks for words only on one line of text 
var regTextAndNumbers = /^([a-zA-Z0-9\s.,']+)$/ //Checks for words and Numbers only on one line of text
var regTextAndCommonSymbols = /^([a-zA-Z0-9\s#,./$!'?]+)$/ //Checks for words and Numbers only on one line of text
var regThreeNumbers = /([0-9][0-9][0-9])$/ //Checks for 3 numbers
var regFourNumbers = /([0-9][0-9][0-9][0-9])$/ //Checks for just 4 numbers
var regFiveNumbers = /([0-9][0-9][0-9][0-9][0-9])$/ //Checks for just 5 numbers
var regAnyNumbers = /[0-9]+$/ //Checks for one or more numbers only
var regEmail = /^([\w]+)(.[\w]+)*@([\w]+)(.[\w]{2,3}){1,2}$/ //Checks for correct email format
var regURL =  /^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([\w]+)(.[\w]+){1,2}$/ //Checks for the correct URL format


function getRequiredFields(){
	for(i=0; i< document.forms['frmContact'].elements.length; i++){
		if (document.forms['frmContact'].elements[i].value != ""){
			if (document.forms['frmContact'].elements[i].name == "txtFirstName"){
				if (regTextAndNumbers.test(document.forms['frmContact'].elements['txtFirstName'].value) != true){
					alert("Please enter only text and numbers in this field.")
					document.forms['frmContact'].elements['txtFirstName'].focus()
					document.forms['frmContact'].elements['txtFirstName'].select()
					return false
				}
			}else{
				if (document.forms['frmContact'].elements[i].name == "txtEmail"){
					if (regEmail.test(document.forms['frmContact'].elements['txtEmail'].value) != true){
						alert("Please form a valid Email in this field.")
						document.forms['frmContact'].elements['txtEmail'].focus()
						document.forms['frmContact'].elements['txtEmail'].select()
						return false
					}
				}else{
					if (document.forms['frmContact'].elements[i].name == "txtLastName"){
						if (regTextAndNumbers.test(document.forms['frmContact'].elements['txtLastName'].value) != true){
							alert("Please enter only text and numbers in this field.")
							document.forms['frmContact'].elements['txtLastName'].focus()
							document.forms['frmContact'].elements['txtLastName'].select()
							return false
						}
					}else{
						if (document.forms['frmContact'].elements[i].name == "txtPersonTitle"){
							if (regTextAndNumbers.test(document.forms['frmContact'].elements['txtPersonTitle'].value) != true){
								alert("Please enter only text and numbers in this field.")
								document.forms['frmContact'].elements['txtPersonTitle'].focus()
								document.forms['frmContact'].elements['txtPersonTitle'].select()
								return false
							}
						}else{
							if (document.forms['frmContact'].elements[i].name == "txtCompanyName"){
								if (regTextAndNumbers.test(document.forms['frmContact'].elements['txtCompanyName'].value) != true){
									alert("Please enter only text and numbers in this field.")
									document.forms['frmContact'].elements['txtCompanyName'].focus()
									document.forms['frmContact'].elements['txtCompanyName'].select()
									return false
								}
							}else{
								if (document.forms['frmContact'].elements[i].name == "txtPhoneArea"){
									if (regThreeNumbers.test(document.forms['frmContact'].elements['txtPhoneArea'].value) != true){
										alert("Please enter three numbers in this field.")
										document.forms['frmContact'].elements['txtPhoneArea'].focus()
										document.forms['frmContact'].elements['txtPhoneArea'].select()
										return false
									}
								}else{
									if (document.forms['frmContact'].elements[i].name == "txtPhonePrefix"){
										if (regThreeNumbers.test(document.forms['frmContact'].elements['txtPhonePrefix'].value) != true){
											alert("Please enter three numbers in this field.")
											document.forms['frmContact'].elements['txtPhonePrefix'].focus()
											document.forms['frmContact'].elements['txtPhonePrefix'].select()
											return false
										}
									}else{
										if (document.forms['frmContact'].elements[i].name == "txtPhoneNumber"){
											if (regFourNumbers.test(document.forms['frmContact'].elements['txtPhoneNumber'].value) != true){
												alert("Please enter four numbers in this field.")
												document.forms['frmContact'].elements['txtPhoneNumber'].focus()
												document.forms['frmContact'].elements['txtPhoneNumber'].select()
												return false
											}
										}else{
											if (document.forms['frmContact'].elements[i].name == "txtPhoneExtension"){
												if (regAnyNumbers.test(document.forms['frmContact'].elements['txtPhoneExtension'].value) != true){
													alert("Please use only numbers for this field.")
													document.forms['frmContact'].elements['txtPhoneExtension'].focus()
													document.forms['frmContact'].elements['txtPhoneExtension'].select()
													return false
												}
											}else{
												if (document.forms['frmContact'].elements[i].name == "txtFaxArea"){
													if (regThreeNumbers.test(document.forms['frmContact'].elements['txtFaxArea'].value) != true){
														alert("Please enter three numbers in this field.")
														document.forms['frmContact'].elements['txtFaxArea'].focus()
														document.forms['frmContact'].elements['txtFaxArea'].select()
														return false
													}
												}else{
													if (document.forms['frmContact'].elements[i].name == "txtFaxPrefix"){
														if (regThreeNumbers.test(document.forms['frmContact'].elements['txtFaxPrefix'].value) != true){
															alert("Please enter three numbers in this field.")
															document.forms['frmContact'].elements['txtFaxPrefix'].focus()
															document.forms['frmContact'].elements['txtFaxPrefix'].select()
															return false
														}
													}else{
														if (document.forms['frmContact'].elements[i].name == "txtFaxNumber"){
															if (regFourNumbers.test(document.forms['frmContact'].elements['txtFaxNumber'].value) != true){
																alert("Please enter four numbers in this field.")
																document.forms['frmContact'].elements['txtFaxNumber'].focus()
																document.forms['frmContact'].elements['txtFaxNumber'].select()
																return false
															}
														}else{
															if (document.forms['frmContact'].elements[i].name == "txtFaxExtension"){
																if (regAnyNumbers.test(document.forms['frmContact'].elements['txtFaxExtension'].value) != true){
																	alert("Please use only numbers for this field.")
																	document.forms['frmContact'].elements['txtFaxExtension'].focus()
																	document.forms['frmContact'].elements['txtFaxExtension'].select()
																	return false
																}
															}else{
																if (document.forms['frmContact'].elements[i].name == "txtURL"){
																	if (regURL.test(document.forms['frmContact'].elements['txtURL'].value) != true){
																		alert("Please form a valid URL in this field using the following format: (http://www.myURL.com).")
																		document.forms['frmContact'].elements['txtURL'].focus()
																		document.forms['frmContact'].elements['txtURL'].select()
																		return false
																	}
																}else{
																	if (document.forms['frmContact'].elements[i].name == "txtCountry"){
																		if (regTextAndNumbers.test(document.forms['frmContact'].elements['txtCountry'].value) != true){
																			alert("Please enter only text and numbers in this field.")
																			document.forms['frmContact'].elements['txtCountry'].focus()
																			document.forms['frmContact'].elements['txtCountry'].select()
																			return false
																		}
																	}else{
																		if (document.forms['frmContact'].elements[i].name == "txtAddress1"){
																			if (regTextAndCommonSymbols.test(document.forms['frmContact'].elements['txtAddress1'].value) != true){
																				alert("Please use only letters, numbers, spaces, and the allowed special characters (#,./$!'?) in this field.")
																				document.forms['frmContact'].elements['txtAddress1'].focus()
																				document.forms['frmContact'].elements['txtAddress1'].select()
																				return false
																			}
																		}else{
																			if (document.forms['frmContact'].elements[i].name == "txtAddress2"){
																				if (regTextAndCommonSymbols.test(document.forms['frmContact'].elements['txtAddress2'].value) != true){
																					alert("Please use only letters, numbers, spaces, and the allowed special characters (#,./$!'?) in this field.")
																					document.forms['frmContact'].elements['txtAddress2'].focus()
																					document.forms['frmContact'].elements['txtAddress2'].select()
																					return false
																				}
																			}else{
																				if (document.forms['frmContact'].elements[i].name == "txtCity"){
																					if (regTextAndNumbers.test(document.forms['frmContact'].elements['txtCity'].value) != true){
																						alert("Please enter only text and numbers in this field.")
																						document.forms['frmContact'].elements['txtCity'].focus()
																						document.forms['frmContact'].elements['txtCity'].select()
																						return false
																					}
																				}else{
																					if (document.forms['frmContact'].elements[i].name == "txtZip"){
																						if (regFiveNumbers.test(document.forms['frmContact'].elements['txtZip'].value) != true){
																							alert("Please enter only five numbers in this field.")
																							document.forms['frmContact'].elements['txtZip'].focus()
																							document.forms['frmContact'].elements['txtZip'].select()
																							return false
																						}
																					}else{
																						if (document.forms['frmContact'].elements[i].name == "txtZipExtra"){
																							if (regAnyNumbers.test(document.forms['frmContact'].elements['txtZipExtra'].value) != true){
																								alert("Please enter only numbers in this field.")
																								document.forms['frmContact'].elements['txtZipExtra'].focus()
																								document.forms['frmContact'].elements['txtZipExtra'].select()
																								return false
																							}
																						}else{
																							if (document.forms['frmContact'].elements[i].name == "txtSubject"){
																								if (regTextAndCommonSymbols.test(document.forms['frmContact'].elements['txtSubject'].value) != true){
																									alert("Please use only letters, numbers, spaces, and the allowed special characters (#,./$!'?) in this field.")
																									document.forms['frmContact'].elements['txtSubject'].focus()
																									document.forms['frmContact'].elements['txtSubject'].select()
																									return false
																								}
																							}else{
																								if (document.forms['frmContact'].elements[i].name == "txtComments"){
																									if (regTextAndCommonSymbols.test(document.forms['frmContact'].elements['txtComments'].value) != true){
																										alert("Please use only letters, numbers, spaces, and the allowed special characters (#,./$!'?) in this field.")
																										document.forms['frmContact'].elements['txtComments'].focus()
																										document.forms['frmContact'].elements['txtComments'].select()
																										return false
																									}
																								}else{
																									if ((document.forms['frmContact'].elements[i].name.slice(0,11)) == "txtInterest"){
																										if (regTextAndCommonSymbols.test(document.forms['frmContact'].elements[i].value) != true){
																											alert("Please use only letters, numbers, spaces, and the allowed special characters (#,./$!'?) in this field.")
																											document.forms['frmContact'].elements[i].focus()
																											document.forms['frmContact'].elements[i].select()
																											return false
																										}
																									}else{
																										if ((document.forms['frmContact'].elements[i].name.slice(0,15)) == "txtAreaInterest"){
																											if (regTextAndCommonSymbols.test(document.forms['frmContact'].elements[i].value) != true){
																												alert("Please use only letters, numbers, spaces, and the allowed special characters (#,./$!'?) in this field.")
																												document.forms['frmContact'].elements[i].focus()
																												document.forms['frmContact'].elements[i].select()
																												return false
																											}
																										}
																									}
																								}																								
																							}																							
																						}																					
																					}																						
																				}																						
																			}																			
																		}																					
																	}																			
																}															
															}
														}
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}			
			}
		}
	}	
	var reqString = document.getElementById('required').value
	//check the end of the string for a pipe and remove it
	//this will keep the split from thinking that there's an empty field at the end of the string.  
	var pipeRemoved = reqString.replace(/\|$/,"")
	var reqfields=pipeRemoved.split('|')
	var field
	var thisCheckList = ""
	var lastCheckList = ""
	var thisTextBox = ""
	var fieldChecked = "True"
	var returnVar = "True"
	var countFields = 0
	for (field in reqfields){
		var f=reqfields[field]
		if (f != null){
		  //Extract the checkboxes
		  var checkForCheckBoxes = f.split('##')
			if (checkForCheckBoxes.length == 1) {			
				thisTextBox = checkForCheckBoxes[0]
				var thisField = document.forms['frmContact'].elements[''+f+''].value
				if (document.forms['frmContact'].elements[''+f+''].id != "txtZipExtra"){
				    if (document.forms['frmContact'].elements[''+f+''].id != "txtPhoneExtension"){
				        if (document.forms['frmContact'].elements[''+f+''].id != "txtFaxExtension"){
				            if (thisField == ""){
					            alert("Please complete all fields marked with an asterisk.")
					            return false
				            }
				            if (thisField == "unselected"){
					            alert("Please complete all fields marked with an asterisk.")
					            return false
				            }
				            if (thisField == "Unselected"){
					            alert("Please complete all fields marked with an asterisk.")
					            return false
					        }
				        }
				    }
		        }
			}
		  else{
		  	// call for the checkbox's group name
		  	thisCheckList = checkForCheckBoxes[0]
		  	// if the checkbox is from the same checklist
				if (lastCheckList == thisCheckList){
					//alert("Last=This")
					// and if we haven't already figured out that this checklist is valid
					if (fieldChecked != "True"){
						//  then check to see if the checkbox is checked
						if (document.forms['frmContact'].elements[''+checkForCheckBoxes[1]+''].checked == true){
				    	fieldChecked = "True"
				    }	
					}
			  // but if the checkbox is from a new checklist
			  }else{
			  	//alert("Last!=This")
			  	// first, we need to test and see if it is the very first checklist
			  	if (lastCheckList == ""){
			  		// if it is, then we need to re-initialize to "False"
			  		fieldChecked = "False"
			  	}else{
			  		//  if it is not, then we first need to test to see if the last list has been proved false or true, and return false if it is not
			  		if (fieldChecked == "False"){		  			
							alert("Please select at least one checkbox from the required checkbox field(s).")
			  			return false
			  		}		  	
			  	}
			  	//otherwise, we keep testing for checked elements
				  if (document.forms['frmContact'].elements[''+checkForCheckBoxes[1]+''].checked == true){
						fieldChecked = "True"
				  }else{
				  	fieldChecked = "False"
				  }	   
				}
				// now set the last checklist to this checklist
				lastCheckList = thisCheckList
			}
			if (countFields == reqfields.length-1){
				if (fieldChecked == "False"){
					alert("Please select at least one checkbox from the required checkbox field(s).")
					return false   
				}			
			}		
			countFields += 1
		}
	}
	return true
}



function matchEmail(me){}
function matchText(me){}
function matchTextAndNumbers(me){}
function matchThreeNumbers(me){}
function matchFourNumbers(me){}
function matchFiveNumbers(me){}
function matchNumbers(me){}
function matchURL(me){}
function matchTextAndCommonSymbols(me){}
