<script language="javascript">
<!--
function new_freecap()
{
	// loads new freeCap image
	if(document.getElementById)
	{
		// extract image name from image source (i.e. cut off ?randomness)
		thesrc = document.getElementById("freecap").src;
		thesrc = thesrc.substring(0,thesrc.lastIndexOf(".")+4);
		// add ?(random) to prevent browser/isp caching
		document.getElementById("freecap").src = thesrc+"?"+Math.round(Math.random()*100000);
	} else {
		alert("Sorry, cannot autoreload freeCap image\nSubmit the form and a new freeCap will be loaded");
	}
}
//-->
</script>
function emailEmpty(emailStr)
{
	if (!emailStr == '')
	 {
		 emailCheck (emailStr)
	 }
	 else
	 {
		 return false
	 }
}

// Deep Email Validation
function emailCheck (emailStr) 
    {
        var emailPat=/^(.+)@(.+)$/
        var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
        var validChars="\[^\\s" + specialChars + "\]"
        var quotedUser="(\"[^\"]*\")"
        var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
        var atom=validChars + '+'
        var word="(" + atom + "|" + quotedUser + ")"
        var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
        var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
        var matchArray=emailStr.match(emailPat)
        
        if (matchArray==null)
            {
                alert("The email address you provided is not valid! \n \n Check if you provided '@' & '.' symbol.")
                return false
            }
        var user=matchArray[1]
        var domain=matchArray[2]
        
        if (user.match(userPat)==null) 
            {
                alert("The email address you provided is not valid! \n \n It's username seems invalid.")
                return false
            }
            
        var IPArray=domain.match(ipDomainPat)
        if (IPArray!=null) 
            {
                // this is an IP address
                for (var i=1;i<=4;i++) 
                    {
                        if (IPArray[i]>255) 
                            {
                                alert("Destination IP address is invalid!")
                                return false
                            }
                    }
                return true
            }
            
        var domainArray=domain.match(domainPat)
        
        if (domainArray==null) 
            {
                alert("The email address you provided is not valid! \n \n It's domain name seems invalid.")
                return false
            }
            
        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>3) 
            {
                alert("The email address you provided is not valid! \n \n The address must end in a three-letter domain, or two letter country.")
                return false
            }
        if (len<2) 
            {
                var errStr="The email address you provided is not valid! \n \n This address is missing a hostname!"
                alert(errStr)
            return false
            }
        return true;
    }
