/* Form Validating Functions */

function validateForm(frm) {
	var theform = document.getElementById(frm);
	var reason = "";
	if (frm == "pcip") {
		reason += checkEmpty(theform.Title);
		reason += checkEmpty(theform.Author);
		reason += checkEmpty(theform.Publishing_City);
		reason += checkEmpty(theform.Publisher);
		reason += checkEmpty(theform.Copyright);
		reason += checkEmpty(theform.Published_Date);
		reason += checkRadio(theform.Index);
		reason += checkRadio(theform.Bibliography);
		reason += checkRadio(theform.References);
		reason += checkChars(theform.Name);
		reason += checkEmpty(theform.Company);
		reason += checkEmpty(theform.Address);
		reason += checkEmpty(theform.City);
		reason += checkEmpty(theform.State);
		reason += checkEmpty(theform.Zip_Code);
		reason += checkEmpty(theform.Phone);
		reason += checkEmail(theform.Email);
	} else {
		reason += checkChars(theform.Name);
		reason += checkEmail(theform.Email);
		reason += checkNews(theform.courier,theform.pcipnews);
	};
	if (reason != "") {
		alert(reason);
		return false;
	} else {
		return true;
	};
}

function checkChars(fld) {
	var error = "";
	var badChars = /[^a-zA-Z',\s\.]/;
	if (fld.value == "") {
		error = "The required " + fld.name + " field is empty.\n\n";
	} else if (badChars.test(fld.value)) {
		error = "There are prohibited text characters in the " + fld.name + " field.\n\n";
	} else {
		error = "";
	};
	return error;
}

function trim(s) {
	return s.replace(/^\s+|\s+$/, '');
}

function checkEmail(fld) {
	var error = "";
	var trfld = trim(fld.value);
	var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
	var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ; 
	if (fld.value == "") {
		error = "The required Email field is empty.\n\n";
	} else if (!emailFilter.test(trfld)) {
		error = "Please enter a valid Email address.\n\n";
	} else if (fld.value.match(illegalChars)) {
		error = "The Email address contains illegal characters.\n\n";
	} else {
		error = "";
	};
	return error;
}

function checkEmpty(fld) {
	var error = "";
	if (fld.value.length == 0) {
		error = "The required " + fld.name + " field is empty.\n\n";
	};
	return error;
}

function checkRadio(fld) {
	var error = "";
	var chosen = -1;
	for (var r = fld.length - 1; r > -1; r--) {
		if (fld[r].checked) {
			chosen = r;
			r = -1;
		};
	};
	if (chosen == -1) {
		error = "Please indicate the presence of " + fld[0].name + " content.\n\n";
	};
	return error;
}

function checkNews(a,b) {
	var error = "";
	var alpha = a;
	var beta = b;
	if ((alpha.checked == false) && (beta.checked == false)) {
		error = "Please select a Newsletter.\n\n";
	};
	return error;
}
