var chars_emaill="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_!#$%&'*+/=?^`{|}~";
var chars_emailr="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.";
var chars_an="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_";
var chars_n="1234567890";

function form_val()
{ var h="";
  var nameFld=trim(document.game_details.nameFld.value);
	var age=trim(document.game_details.age.value);
	var email=trim(document.game_details.email.value);
	var xbl_gamertag=trim(document.game_details.xbl_gamertag.value);
  if(nameFld==""){h+="Please enter your name.\n";}
	if(age==""){h+="Please enter a valid age.\n";}
	else
	{ for(i=0;i<age.length;i++)
	  { if(chars_n.indexOf(age.charAt(i))==-1){h+="Please enter a valid age.\n";break;}	
	  }
	}
	if(!val_email(email)){h+="Please enter a valid email address.\n";}
	if(xbl_gamertag==""){h+="Please enter your XBL Gamertag.\n";}
	
	if(h!="")
	{ alert(h);
	  return false;
	}
	else
	{ return true;
	}
}

function val_email(ea)
{ ea=ea.split("@");
  if(ea.length!=2){return false;}
	if((ea[0].length==0)||(ea[1].length==0)){return false;}
  for(i=0;i<ea[0].length;i++){if(chars_emaill.indexOf(ea[0].charAt(i))==-1){return false;}}// left of @ sign
	for(i=0;i<ea[1].length;i++){if(chars_emailr.indexOf(ea[1].charAt(i))==-1){return false;}}// right of @ sign
  if((ea[1].indexOf('.')==-1)||(ea[1].lastIndexOf('.')==(ea[1].length-1))){return false;}
	return true;
}

function trim(t) // js version of PHP trim - only for spaces, \t, \n \r
{ var et=new Array(" ","\t","\n","\r");
  for(var i=0;i<et.length;i++)
	{ while(t.charAt(0)==et[i])
	  { t=t.substring(1);
		}
		while(t.charAt(t.length-1)==et[i])
		{ t=t.substring(0,t.length-1);
		}		
	}
	return t;
}