function isEmail(email) {
	var invalidChars, badChar, atPos, periodPos;

	invalidChars = " /:,;";

	if (email == "") {            // cannot be empty
		return false;
	}
	for (i=0; i<invalidChars.length; i++) {  // does it contain any invalid characters?
		badChar = invalidChars.charAt(i);
		if (email.indexOf(badChar,0) > -1) {
			return false;
		}
	}
	atPos = email.indexOf("@",1)      // there must be one "@" symbol
	if (atPos == -1) {
		return false;
	}
	if (email.indexOf("@",atPos+1) != -1) {  // and only one "@" symbol
		return false;
	}
	periodPos = email.indexOf(".",atPos)
	if (periodPos == -1) {          // and at least one "." after the "@"
		return false;
	}
	if (periodPos+3 > email.length)  {    // must be at least 2 characters after the "."
		return false;
	}
	return true;
}

function reqFields(elements, emails, msgFillReq, reqLabels, msgValidEmail)
{
    var s = "";
    var q = 0;
    var aelements = elements.split(",");
    for(var i=0; i < aelements.length; i++){
	for(var ie=0; ie < document.forms[0].elements.length; ie++){
		var element = aelements[i].replace(" ", "");
		if(document.forms[0].elements[ie].name.indexOf(element) >= 0 
			&& document.forms[0].elements[ie].value == ""){
			alert(msgFillReq + reqLabels);
			return false;
		}
	}
    }

    var aemails = emails.split(",");
    for(var i=0; i < aemails.length; i++){
	var email = aemails[i].replace(" ", "");
	for(var ie=0; ie < document.forms[0].elements.length; ie++){
		if(document.forms[0].elements[ie].name.indexOf(email) >= 0 
			&& !isEmail(document.forms[0].elements[ie].value)){
			alert(msgValidEmail);
			return false;
		}
	}
    }

    return true;
}

