

//FORM VALIDATION///////////////////////////////////////////////////////////////////////////////////////

// "t-" = TEXTBOX OR TEXTAREA
// "r-" = RADIO BUTTONS
// "s-" = SELECT BOX (DROP-DOWN MENU)
// "#-" = SOCIAL SECURITY NUMBER
// "n-" = NUMBER in TEXTBOX
// "d-" = DATE
// "z-" = ZIP CODE
// "e-" = EMAIL
// "p-" = PHONE OR FAX



var validateCounter
var myElement

function validate(swap){
myform=swap
mySwitch=true
counter=0
formTemp=""

for(validateCounter=0;validateCounter<myform.length;validateCounter++){
	if(myform.elements[validateCounter].name.charAt(1)=="-"){
		myElement=myform.elements[validateCounter].name
		if(myElement.charAt(0)=="t"){emptyField()}
		else if(myElement.charAt(0)=="r"){validateRadio()}
		else if(myElement.charAt(0)=="s"){validateSelect()}
		else if(myElement.charAt(0)=="#"){validateSocSec()}
		else if(myElement.charAt(0)=="n"){validateNumber()}
		else if(myElement.charAt(0)=="d"){validateDate()}
		else if(myElement.charAt(0)=="z"){validateZip()}
		else if(myElement.charAt(0)=="e"){validateEmail()}
		else if(myElement.charAt(0)=="p"){validatePhone()}
		}
	if(!mySwitch){break}
	}
if(mySwitch){myform.submit()}
}



//VALIDATE THERE'S SOMETHING IN TEXTFIELD//////////////////////////////////////////////////////////////

function emptyField(){
mySwitch=false
for(var a=0;a<myform.elements[validateCounter].value.length;a++){
	if(myform.elements[validateCounter].value.charAt(a)!=" "){
		mySwitch=true
		}
	}
if(!mySwitch || myform.elements[validateCounter].value==""){
	if(formBytes[myElement]!=null){
		alert(formBytes[myElement])
		}
	else{alert("Please fill in this field as it is required.")}
	myform.elements[validateCounter].value=""
	myform.elements[validateCounter].focus()
	}
else{mySwitch=true}
}






//SELECT / DROPDOWN MENUS///////////////////////////////////////////////////////////////////////////////

function validateSelect(){
if(myform.elements[validateCounter].selectedIndex==0){
	if(formBytes[myElement]!=null){
		alert(formBytes[myElement])
		}
	else{alert("Please make a selection from this dropdown menu as it is required.")}
	myform.elements[validateCounter].focus()
	mySwitch=false
	}
}






//RADIO BUTTONS//////////////////////////////////////////////////////////////////////////////////////

function validateRadio(){
for(var a=0;a<myform.length;a++){
	if(myform.elements[a].name==myElement){
		counter++
		}
	}
	
mySwitch=false

for(var a=validateCounter+counter;validateCounter<a;validateCounter++){
	if(myform.elements[validateCounter].checked){
		mySwitch=true
		}
	}
	
if(mySwitch==false){
	if(formBytes[myElement]!=null){
		alert(formBytes[myElement])
		myform.elements[validateCounter-counter].focus()
		}
	else{alert("Please select one of the following options as it is required.")}
	myform.elements[validateCounter-counter].focus()
	}
else{mySwitch=true}
validateCounter=validateCounter-1
counter=0
}














//VALIDATE NUMBER////////////////////////////////////////////////////////////////////////////////////////////

function validateNumber(){
emptyField()
if(mySwitch && isNaN(myform.elements[validateCounter].value)){
	alert("Please fill this field in using ONLY valid numerals.")
	myform.elements[validateCounter].value=""
	myform.elements[validateCounter].focus()
	mySwitch=false
	}
}



//VALIDATE SPECIFIC CHARACTERS///////////////////////////////////////////////////////////////////

function charCheck(swap){
formTemp=myform.elements[validateCounter].value
for(var i=0;i<formTemp.length;i++){
	if(formTemp.charAt(i)==swap){
		return true
		}
	}
}


//COUNT THE CHARACTERS////////////////////////////////////////////////////////////////////////////////

function charCount(swap){
if(myform.elements[validateCounter].value.length!=swap){
	return true
	}
}














//EMAIL//////////////////////////////////////////////////////////////////////////////////////////////

function validateEmail(){
emptyField()
if(!charCheck("@") && mySwitch){
	alert("Certain characters required for a valid email address are missing in this field.")
	myform.elements[validateCounter].focus()
	mySwitch=false
	}
else if(!charCheck(".") && mySwitch){
	alert("Certain characters required for a valid email address are missing in this field.")
	myform.elements[validateCounter].focus()
	mySwitch=false
	}
}


//PHONE//////////////////////////////////////////////////////////////////////////////////////////

function validatePhone(){
validateNumber()
if(mySwitch && charCount(10)){
	alert("Ten (10) numerals are required for this field.")
	myform.elements[validateCounter].focus()
	myform.elements[validateCounter].value=""
	mySwitch=false
	}
}


//ZIP//////////////////////////////////////////////////////////////////////////////////////////////////

function validateZip(){
validateNumber()
if(mySwitch && charCount(5)){
	alert("Five (5) numerals are required for this field.")
	myform.elements[validateCounter].focus()
	myform.elements[validateCounter].value=""
	mySwitch=false
	}
}


//SOCIAL SECURITY NUMBERS//////////////////////////////////////////////////////////////////////////////

function validateSocSec(){
validateNumber()
if(mySwitch && charCount(9)){
	alert("Nine (9) numerals are required for this field.")
	myform.elements[validateCounter].focus()
	myform.elements[validateCounter].value=""
	mySwitch=false
	}
}








//DATE////////////////////////////////////////////////////////////////////////////////////////////////

function validateDate(){
validateNumber()
if(mySwitch && charCount(6)){
	alert("Six (6) numerals are required for this field.")
	myform.elements[validateCounter].focus()
	myform.elements[validateCounter].value=""
	mySwitch=false
	}
else if(mySwitch){
	var testDate=myform.elements[validateCounter].value
	var date1=parseInt(testDate.substr(0,2),10)
	var date2=parseInt(testDate.substr(2,2),10)
	var date3=parseInt(testDate.substr(4,2),10)
	
	var thirty
	var thirtyone
	var february
	if(date1==1 || date1==3 || date1==5 || date1==7 || date1==8 || date1==10 || date1==12){thirtyone=true}
	if(date1==4 || date1==6 || date1==9 || date1==11){thirty=true}
	if(date1==2){february=true}
	
	if(date1>12){
		alert("The first 2 digits of this Date MUST be between 01 - 12.")
		myform.elements[validateCounter].focus()
		mySwitch=false
		}
	else if(thirtyone && date2>31){
		date1=testDate.substr(0,2)
		alert("Because the month you've entered (" + date1 + ") has only 31 days, the 3rd and 4th digits of this Date MUST be between 01 - 31.")
		myform.elements[validateCounter].focus()
		mySwitch=false
		}
	else if(thirty && date2>30){
		date1=testDate.substr(0,2)
		alert("Because the month you've entered (" + date1 + ") has only 30 days, the 3rd and 4th digits of this Date MUST be between 01 - 30.")
		myform.elements[validateCounter].focus()
		mySwitch=false
		}
	else if(february){
		date1=testDate.substr(0,2)
		date3=testDate.substr(4,2)
		var remainderFloat=(parseFloat(date3,10)) + 1000
		var remainderInt=(parseInt(date3,10)) + 1000
		remainderFloat=remainderFloat/4
		remainderInt=parseInt(remainderInt/4,10)
		var leapyear=true
		if(remainderFloat>remainderInt){leapyear=false}		
		
		if(date2>28){	
			if(leapyear==false){
				alert("Because of the month (" + date1 + ") and the year (" + date3 + ") you've entered, the 3rd and 4th digits of this Date MUST be between 01 - 28.")
				myform.elements[validateCounter].focus()
				mySwitch=false
				}
			else if(date2>29){
				alert("Because of the month (" + date1 + ") and the year (" + date3 + ") you've entered, the 3rd and 4th digits of this Date MUST be between 01 - 29.")
				myform.elements[validateCounter].focus()
				mySwitch=false
				}
			}			
		}
	}
}








