var getObj;
if (document.getElementById) {
    getObj = function(name) {return document.getElementById(name);}; //W3C
}
else if (document.all) {
    getObj = function(name) {return document.all[name];}; // IE 4
}
else if (document.layers) {
    getObj = function(name) {return document.layers[name];}; // NN4
}


// FUNCTION TO RUN ACTUAL VALIDATION CODE TO VALIDATE form
function formValidation(frm) {
	var err = new Object();
	
	//  first name
	if(trimWhiteSpace(frm.first_name.value) == "") {
		err.first_name = "Please enter your first name";
	}
	
	//last name
	if(trimWhiteSpace(frm.last_name.value) == "") {
		err.last_name = "Please enter your last name";
	}
	
	// email
	if(trimWhiteSpace(frm.email.value) == ""){
		err.email = "Please enter your email address";
	}
	else if (!isValidEmailStrict(trimWhiteSpace(frm.email.value))){
		err.email = "Please enter a valid email address";
	}
	
	// company
	if(trimWhiteSpace(frm.company.value) == ""){
		err.company = "Please enter your company";
	}
	
	//newsletter checked
	
	var newsletterSelected = false;
	
	for (var i = 0; i < frm.elements.length; i++) {
		if (frm.elements[i].type == 'checkbox' && frm.elements[i].checked == true)
			newsletterSelected = true;
	}
	
	if (!newsletterSelected)
		err.newsletter = "Please select a newsletter";
		
	return err;
}

// FUNCTION TO CALL form VALIDATION FUNCTION AND DISPLAY APPROPRIATE ERROR MESSAGES
function formErrorHandling(frm) {
	
	// set up error object
	var objErr = new Object();
	
	objErr = formValidation(getObj('frmENews'));
	
	// determine if error object contains any properties
	var i = 0;
	for (var key in objErr) {
		i = i + 1;
	}
	
	// errors detected - used javascript to display messages where appropriate
	if (i > 0) {

		// errGeneral
		getObj("errGeneral").innerHTML = "Please correct the errors below:";
		getObj("errGeneral").className = "errors";
		
		// first name
		if (objErr.first_name) {
			getObj("errFirstName").innerHTML = objErr.first_name;
			getObj("labelFirstName").className = "required error";
		}
		else {
			getObj("errFirstName").innerHTML = "";
			getObj("labelFirstName").className = "required";
		}
			
		// last name
		if (objErr.last_name) {
			getObj("errLastName").innerHTML = objErr.last_name;
			getObj("labelLastName").className = "required error";
		}
		else {
			getObj("errLastName").innerHTML = "";
			getObj("labelLastName").className = "required";
		}
			
		// email
		if (objErr.email) {
			getObj("errEmail").innerHTML = objErr.email;
			getObj("labelEmail").className = "required error";
		}
		else {
			getObj("errEmail").innerHTML = "";
			getObj("labelEmail").className = "required";
		}
		
		// company
		if(objErr.company) {
			getObj("errCompany").innerHTML = objErr.company;
			getObj("labelCompany").className = "required error";
		}
		else {
			getObj("errCompany").innerHTML = "";
			getObj("labelCompany").className = "required";
		}
		
		// newsletter
		if (objErr.newsletter) {
			getObj("errNewsletter").innerHTML = objErr.newsletter;
			getObj("labelNewsletter").className = "required error";
		}
		else {
			getObj("errNewsletter").innerHTML = "";
			getObj("labelNewsletter").className = "required";
		}
		
		return false;
	}
	
	// no errors detected - submit form for server side validation
	else {
		getObj("errGeneral").className = "";
		getObj("errGeneral").innerHTML = "";
		
		getObj("errFirstName").innerHTML = "";
		getObj("labelFirstName").className = "required";
		
		getObj("errLastName").innerHTML = "";
		getObj("labelLastName").className = "required";
		
		getObj("errEmail").innerHTML = "";
		getObj("labelEmail").className = "required";
		
		getObj("errCompany").innerHTML = "";
		getObj("labelCompany").className = "required";
		
		getObj("errNewsletter").innerHTML = "";
		getObj("labelNewsletter").className = "required";
		
		return true;
	}
}