/*
	InsertMail Javascript
	version 2.1
	Richard Naud
	07/31/2006
	
	This script is free. Simply keep this notice with the code.
	
	To use, paste this code between the <head></head> tags of the page.
		<script language="javascript" type="text/javascript" src="InsertMail.js"></script>
	
	
	Insert this code, with your parameters, where an email is to be rendered
		<script language="javascript" type="text/javascript">
		<!--
			insertMail("myaddress", "mysite.com", "send email", "Hello", "Hi Richard", "cssLinkClass")
		-->
		</script>
	
	Above code will render this html code:
		<a href="mailto:myaddress@mysite.com?subject=Hello&body=Hi Richard" class="cssLinkClass">send email</a>
	
	Minimal use requires this syntax:
		<script language="javascript" type="text/javascript">
		<!--
			insertMail("myemail", "mysite.com", null, null, null, null)
		-->
		</script>
*/

function insertMail(mailAddress, domainName, clickText, mailSubject, mailBody, cssClass)
{
	var whiteSpaces 	= new RegExp("^[ \t\r\n\f]*$");
	var containSpaces 	= new RegExp("[ \t\r\n\f]");
	var isDomainName	= new RegExp("^(([a-zA-Z][a-zA-Z0-9\-]+[\.])+[a-zA-Z]{2,})$");
	// regexp ^([a-z][a-z0-9\-]+(\.|\-*\.))+[a-z]{2,6}$ is supposed to work but doesn't... ?

	if(mailAddress == null)
	{
		alert("The required mailAddress parameter is invalid, it is null!");
		return;
	}
	else if(mailAddress.match(containSpaces))
	{
		alert("The required mailAddress parameter is invalid, it contains white spaces!");
		return;
	}
	
	if(domainName == null)
	{
		alert("The required domainName parameter is invalid, it is null!");
		return;
	}
	else if(!(domainName.match(isDomainName)))
	{
		alert("The required domainName parameter is invalid, not a proper domain name!");
		return;
	}
	
	if(clickText == null)
	{
		clickText = mailAddress + "@" + domainName;
	}
	else if(clickText.match(whiteSpaces))
	{
		clickText = mailAddress + "@" + domainName;
	}
	
	if((mailSubject != null) && (mailSubject.match(whiteSpaces)))
	{
		mailSubject = null;
	}
	
	if((mailBody != null) && (mailBody.match(whiteSpaces)))
	{
		mailBody = null;
	}
	
	if((cssClass != null) && (cssClass.match(whiteSpaces)))
	{
		cssClass = null;
	}
	
	document.write("<" + "A href=\"mailto:");
	document.write(mailAddress + "@" + domainName);
	
	if(mailSubject != null)
	{
		document.write("?subject=" + mailSubject);
	}
	
	if(mailBody != null)
	{
		if(mailSubject != null)
		{
			document.write("&body=" + mailBody);
		}
		else
		{
			document.write("?body=" + mailBody);
		}
	}
	
	if(cssClass != null)
	{
		document.write("\" class=\"" + cssClass);
	}
	
	document.write("\" title=\"" +  mailAddress + "@" + domainName + "\">" + clickText + "</A>");
	
	return true;
}