window.onload = initForm;

var aTextFields = new Array();
var aReqFields = new Array();
var aErrMsgs = new Array();
var arraysFilled = false;

function initForm(){
	var aAllTags = document.getElementsByTagName('*');
	if(arraysFilled == false){
		for(var i in aAllTags){
			if(aAllTags[i].className == 'reqd'){
				aReqFields.push(aAllTags[i].id);
				aErrMsgs.push(aAllTags[i].alt);
			}
		if(aAllTags[i].type == 'text' || aAllTags[i].type == 'textarea'){
				aTextFields.push(aAllTags[i].id);		
			}
		}
	arraysFilled = true;
	}
	
	for(var k in aTextFields){
	document.getElementById(aTextFields[k]).className = 'textField';
	document.getElementById(aTextFields[k]).onfocus = toggleStyle;
	document.getElementById(aTextFields[k]).onblur = toggleStyle;	
	}
	document.getElementById('fullName').focus();
}

function toggleStyle(){
	var thisField = document.getElementById(this.id);
	if(thisField.className == 'textField'){
		thisField.className = 'textFocus';	
	}else{
		thisField.className = 'textField';	
	}
}

function formCheck(formobj){
	var alertMsg = 'Submission Error:\n';
	
	var l_Msg = alertMsg.length;

	for(var i in aReqFields){
		var obj = formobj.elements[aReqFields[i]];
		
		if(obj){
			switch(obj.type){
				case 'select-one':
					if(obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
						alertMsg += '- ' + aErrMsgs[i] + '\n';
					}
					break;
				case 'text':
				case 'textarea':
					if(obj.value == '' || obj.value == null){
						alertMsg += '- ' + aErrMsgs[i] + '\n';
						//alert(alertMsg);
						obj.className = 'invalid';
						obj.value = aErrMsgs[i];
						break;
					}
		if(obj.id == 'email'){
			var isValid = validateEmail(obj.id);
			if(isValid != true){
				alertMsg += '- ' + isValid + '\n';
				obj.className = 'invalid';
			}
		}
			}
		}
	}
	
	if (alertMsg.length == l_Msg){
		return true;
	}else{
		alert(alertMsg);
		return false;
	}
}

function validateEmail(fieldId){
var email = document.getElementById('email');
var emailError;

	//var invalidChars = ' /:,;';
//	for(var i=0; i<invalidChars.length; i++){
//		var badChar = invalidChars.charAt(i);
//		if(email.value.indexOf(badChar) > -1){
//		emailError = 'You have entered an invalid character: '+ badChar;
//		return emailError;
//		}
//	}	
	
	var atPos = email.value.indexOf('@',1)
	if(atPos == -1){
		emailError = 'Your email address must contain a single @';
		return emailError;
	}
	
	if(email.value.indexOf('@',atPos+1) != -1){
		emailError ='Your email address must contain a single @';
		return emailError;
	}

	var periodPos = email.value.indexOf('.',atPos);
	if(periodPos == -1){
		emailError = 'Your email address must contain a period after the @ symbol';
		return emailError;
	}
	return true;
}
