function Validation(){
 this.validate = validate;
 this.checkAddress = checkAddress;
 this.toHTMLEntities = toHTMLEntities;
 this.tmailAddressInfo = tmailAddressInfo;
 this.addressSyntaxValid = addressSyntaxValid;
}

function validate(f){
 if(!addressSyntaxValid(f.from.value)){
  alert(this.tmailAddressInfo());
  f.from.focus();
  return false;
 }else if(f.subject.value.length < 3 || f.subject.value.indexOf("?") > -1){
  alert("Please enter the subject of your message! Use no question mark in a subject line.");
  f.subject.focus();
  return false;
 }else if(f.message.value.length > 1024 || f.message.value.length < 11){
  alert("Please enter a message of not more than 1024 characters!\n\nCurrently your message contains " + f.message.value.length + " characters.");
  f.message.focus();
  return false;
 }else{
 f.from.value = this.toHTMLEntities(f.from.value);
 return true;
 }
}

function checkAddress(d){
 var f = d.getElementById("tmailform");
 if(!addressSyntaxValid(f.from.value)){
  alert(this.tmailAddressInfo());
  f.from.focus();
  return;
 }else
  return;
}

function toHTMLEntities(s){
 s = s.replace(/</g,"&lt;");
 s = s.replace(/>/g,"&gt;");
	return s;
}

function tmailAddressInfo(){
 return "Please enter a valid name and t-mail address! The syntax of a t-mail address is:\n\n[Sender name] [Space] [\"Less than\" sign] [User name] [Bullet entity] [Time slice stamp] [Bullet entity] [Domain name] [Dot] [Domain extension] [\"Greater than\" sign]\n";
}

function addressSyntaxValid(address){
 if(address.length < 13 || address.indexOf("@") > -1 || address.indexOf("&bull;") == -1 || address.indexOf(" <") == -1 || address.indexOf(".") == -1)
  return false;
 else
  return true;
}
