function ValidateAll()
{
	// check name (required)
	if(CheckName(document.forms[0].txtusername.value) == false) return false;
	// check email (required)
	if(CheckEmail(document.forms[0].txtemail.value) == false) return false;
	// check game title (required)
	result = IsItPresent(document.forms[0].txttitle.value,'game title',1);
	if(!result) return false;
	// check url and review - at least one is required
	url = IsItPresent(document.forms[0].txturl.value);
	review = IsItPresent(document.forms[0].txtreview.value);
	if(!url && !review) {
		alert('You must submit either a game URL or a review (or both).');
		document.forms[0].txtusername.focus();
		return false;
	}
	// before returning, save the user's info in cookies
	var today = new Date();
	// expires in 1 hour....
	var expiry = new Date(today.getTime() + 1 * 60 * 60 * 1000);
	SetJBCookie('username',document.forms[0].txtusername.value,expiry,'/','','');
	SetJBCookie('email',document.forms[0].txtemail.value,expiry,'/','','');
	
	return true;
}

function StripSpacesFromEnds(s)
{
	// developed by willmaster.com
	while((s.indexOf(' ',0) == 0) && (s.length > 1))
	{
		s = s.substring(1,s.length);
	}
	while((s.lastIndexOf(' ') == (s.length - 1) && (s.length > 1)))
	{
		s = s.substring(0,(s.length - 1));
	}
	if((s.indexOf(' ',0) == 0) && (s.length == 1)) s = '';
	return s;
}

function IsItPresent(s,explanation,force)
{
	// developed by willmaster.com
	s = StripSpacesFromEnds(s);
	if(s.length) return s;
	if(force) {
		alert('Please enter ' + explanation + '.');
		document.forms[0].txtusername.focus();
	}
	return '';
}

function CheckName(s_name)
{
	// developed by willmaster.com
	s_name = IsItPresent(s_name,'your name',1);
	if(! s_name) return false;
	var i = s_name.indexOf('  ',0);
	while(i > -1)
	{
		s_name = s_name.substring(0,(i + 1)) +
			s_name.substring((i + 2),s_name.length);
		i = s_name.indexOf('  ',0);
	}
	s_name = s_name.toLowerCase();
	var s = new String(s_name.substring(0,1));
	s = s.toUpperCase();
	s_name = s + s_name.substring(1,s_name.length);
	i = s_name.indexOf(' ',0);
	if(i == (s_name.length - 1)) i = -1;
	var ts = new String("");
	var j = 0;
	while(i > -1)
	{
		i++;
		j = i + 1;
		s = s_name.substring(i,j);
		s = s.toUpperCase();
		ts = '';
		if(i > 0) ts = s_name.substring(0,i);
		s_name = ts + s + s_name.substring(j,s_name.length);
		i = s_name.indexOf(' ',j);
		if(i == (s_name.length - 1)) i = -1;
	}
	document.forms[0].txtusername.value = s_name;
	return true;
}

function CheckEmail(s_email)
{
	// developed by willmaster.com
	s_email = IsItPresent(s_email,'your email address',1);
	if(! s_email) return false;
	var i = s_email.indexOf(' ',0);
	while(i > -1)
	{
		s_email = s_email.substring(0,i) +
			s_email.substring((i + 1),s_email.length);
		i = s_email.indexOf(' ',0);
	}
	document.forms[0].txtemail.value = s_email;
	if((s_email.length < 6) ||
	   (s_email.indexOf('@',0) < 1) ||
	   (s_email.lastIndexOf('@') != s_email.indexOf('@',0)) ||
	   (s_email.lastIndexOf('@') > (s_email.length - 5)) ||
	   (s_email.lastIndexOf('.') > (s_email.length - 3)) ||
	   (s_email.lastIndexOf('.') < (s_email.length - 4)) ||
	   (s_email.indexOf('..',0) > -1) ||
	   (s_email.indexOf('@.',0) > -1) ||
	   (s_email.indexOf('.@',0) > -1) ||
	   (s_email.indexOf(',',0) > -1))
	{
		alert('The email address "' + s_email + '" is not valid.');
		return false;
	}
	return true;
}
