function ValidateForm(form)
{
	if (!CheckRequired(form.SubmittedBy, 'Name is required'))
		{ return (false);}
	if (!CheckRequired(form.Email, 'Email is required'))
		{ return (false);}
	if (!CheckEmail(form.Email, 'Email is not valid'))
		{ return (false);}
	if (!CheckRequired(form.City, 'City is required'))
		{ return (false);}
	if (!CheckSelect(form.State, 'State is required'))
		{ return (false);}
	if (!CheckRequired(form.Title, 'Title is required'))
		{ return (false);}
	if (!CheckRequired(form.Description, 'Description is required'))
		{ return (false);}

	return true;
}
function CheckRequired(field, message)
{
	if (field.value.length == 0 || field.value =='<P>&nbsp;</P>')
	 {
		alert(message);
		if (field.style.visibility != 'hidden') {
			field.focus();
		}

		return (false);
	 }

	return true;
}
function CheckSelect(field, message){
	for (i=0; i < field.length; i++){
		if (field.options[i].selected)
			if (!field.options[field.selectedIndex].value == "")
				return true;
	}
	alert(message);
	field.focus();
	return false;	
}

function CheckEmail(field, message) {
  if (!isEmail(field.value)){
		alert(message);
		field.focus();
		return false;
	}
	return true;
}
function isEmail(str) {
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported){
		if ((str.indexOf(".") == 0) || (str.indexOf("@") == 0)){
			return false;
		} else {
			return true;
		}
	}
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  if (!r1.test(str) && r2.test(str)){
		return true;
	} else {
		return false;
	}
}