var contact_strings = new Array();

if (language == "en") {
	contact_strings["email"] = "You forgot to insert your email address";
	contact_strings["name"] = "You forgot to insert your name";
	contact_strings["message"] = "You forgot to insert a message";
	contact_strings["friend"] = "Your forgot to add a friend's email address";
	contact_strings["email_invalid"] = "Your email format is invalid, please correct it.";
	contact_strings["username_invalid"] = "The username part of your email address is invalid, please correct it.";
	contact_strings["ip_invalid"] = "Your IP address is invalid, please correct it.";
	contact_strings["domain_invalid"] = "Your domain name contains invalid characters, please correct it.";
	contact_strings["extension_invalid"] = "The extension of your domain should be bigger than 2 letters and smaller than 10.";
	contact_strings["format_invalid"] = "Your email format is invalid, please correct it.";
}
else if (language == "fr") {
	contact_strings["email"] = "Vous avez oublié d'insérer votre addresse email";
	contact_strings["name"] = "Vous avez oublié d'insérer votre nom";
	contact_strings["message"] = "Vous avez oublié d'insérer un message";
	contact_strings["friend"] = "Vous avez oublié d'ajouter l'addresse email d'un ami";
	contact_strings["email_invalid"] = "Le format de votre addresse email est invalide, veuillez le corriger s'il vous plaît";
	contact_strings["username_invalid"] = "Le format de l'usager dans votre addresse email est invalide, veuillez le corriger s'il vous plaît";
	contact_strings["ip_invalid"] = "Votre addresse IP est invalide, veuillez la corriger s'il vous plaît";
	contact_strings["domain_invalid"] = "Le format de votre nom de domaine dans votre addresse email est invalide, veuillez le corriger s'il vous plaît";
	contact_strings["extension_invalid"] = "L'extension de votre addresse email est invalide, elle doit être égale ou plus grande que 2 caractères ou égale ou plus petite que 10 caractères.";
	contact_strings["format_invalid"] = "Le format de votre addresse email est invalide, veuillez le corriger s'il vous plaît";
}

function validate(theform) {
	var email = theform.email.value;
	var thename = theform.thename.value;
	var message = theform.message.value;
	
	theform.antibot.value = "passedJStest";
	
	if (email == "") {
		alert(contact_strings["email"]);
		theform.email.focus();
		return false;
	}
	else if (thename == "") {
		alert(contact_strings["name"]);
		theform.thename.focus();
		return false;
	}
	else if (message=="") {
		alert(contact_strings["message"]);
		theform.message.focus();
		return false;
	}
	
	spammer_speak = new RegExp("traffic|google|ranking|optimization|campaign|leads|online| seo |white hat", "i");
	if (message.match(spammer_speak)) {
		alert("No unsolicited commercial emails allowed");
		return false;
	}
	
	if (verifyEmail(email)) return true;
}

function validate_send_friend(theform) {

	var name = theform.name.value;
	var email = theform.email.value;
	var email_friend1 = theform.email_friend1.value;
	var email_friend2 = theform.email_friend2.value;
	var email_friend3 = theform.email_friend3.value;
	var email_friend4 = theform.email_friend4.value;
	var email_friend5 = theform.email_friend5.value;
	
	theform.antibot.value = "passedJStest";
	
	if (name == "") {
		alert(contact_strings["name"]);
		theform.name.focus();
		return false;
	}
	else if (email== "") {
		alert(contact_strings["email"]);
		theform.email.focus();
		return false;
	}
	else if ((email_friend1 == "") && (email_friend2 == "") && (email_friend3 == "") && (email_friend4 == "") && (email_friend5 == "")) {
		alert(contact_strings["friend"]);
		theform.email_friend1.focus();
		return false;
	}
	
	else return true;
}


function verifyEmail (the_email) {

	// VARIABLES
	
	var emailPattern=/^(.+)@(.+)$/ //format user @ domain
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]" //special chars
	var validChars="\[^\\s" + specialChars + "\]" //global validity
	var quotedUser="(\"[^\"]*\")" //in case of quotes used "joe sushi"@yahoo.com
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/ //case of IP domain joe@[123.123.123.10]
	var atom=validChars + '+' //atom
	var word="(" + atom + "|" + quotedUser + ")" //valid words
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$") // structure of the user
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$") // structure of domain
	
	// ANALYSIS
	
	//basic user @ domain
	var matchArray=the_email.match(emailPattern);
	if (matchArray==null) {
	  alert(contact_strings["email_invalid"]);
	  return false;
	}
	
	//assign user & domain
	var user=matchArray[1];
	var domain=matchArray[2];
	
	// user
	if (user.match(userPat)==null) {
		alert(contact_strings["username_invalid"]);
		return false;
	}
	
	// if domain is IP, validate it
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
		  if (IPArray[i]>255) {
			  alert(contact_strings["ip_invalid"]);
		return false;
		  }
		}
		return true;
	}
	
	// if domain is a word
	var domainArray=domain.match(domainPat);
	if (domainArray==null) {
	  alert(contact_strings["domain_invalid"]);
		return false;
	}
	
	//assign domain parts and check for valid extension
	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;
	if (domArr[domArr.length-1].length<2 || 
		domArr[domArr.length-1].length>10) {
	   alert(contact_strings["extension_invalid"]);
	   return false;
	}
	
	// Make sure there's a host name preceding the domain.
	if (len<2) {
	   var errStr= contact_strings["format_invalid"];
	   alert(errStr);
	   return false;
	}
	
	return true;
}

