// JavaScript Document
var form = "";
var submitted = false;
var error = false;
var error_message = "";

//checks forms for issues
function check_form(form_name) 
{
  if (submitted == true)
  {
    alert("This form has already been submitted. Please press Ok and wait for this process to be completed.");
    return false;
  }
   error = false;
   form = form_name;

    check_validate();

  if (error == true)
  {
    alert(error_message);
    return false;
  }
  else
  {
    submitted = true;
    return true;
  }
}

//replaces things in a string
function replaceAll(s, fromStr, toStr)
{
    var new_s = s;
    for (i = 0; i < 100 && new_s.indexOf (fromStr) != -1; i++)
    {
        new_s = new_s.replace (fromStr, toStr);
    }
    return new_s;
}

//checks for empty fields
function check_empty(field_name,message)
{
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden"))
  {

    var field_value = form.elements[field_name].value;
    
    var k
    k=replaceAll(field_value," ", "")
    
    if ((field_value == '') || (k=='') )
    {
     error_message = error_message + "* " + message + "\n";
      error = true;
    }
  }
}

//checks for valid email
function check_email(field_name,message)
{
	emailStr=form.elements[field_name].value;

	if (form.elements[field_name].value=="")
	{
	   error_message = error_message + "* " + message + "\n";
		error=true;
	}
	else
	{
		var checkTLD=1;
		var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
		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)
		{
			error_message = error_message + "* " + "Email address seems incorrect (check @ and .'s)" + "\n";
			error=true;
			return false;

		}
		var user=matchArray[1];
		var domain=matchArray[2];
		for (i=0; i<user.length; i++)
		{
			if (user.charCodeAt(i)>127)
			{
				error_message = error_message + "* " + "The emailid contains invalid characters." + "\n";
				error=true;
			}
		}
		for (i=0; i<domain.length; i++)
		{
			if (domain.charCodeAt(i)>127)
			{
				error_message = error_message + "* " + "The domain name contains invalid characters." + "\n";
				error=true;
			}
		}
		if (user.match(userPat)==null)
		{
			error_message = error_message + "* " + "The emailid doesn't seem to be valid." + "\n";
			error=true;
		}
		var IPArray=domain.match(ipDomainPat);
		if (IPArray!=null)
		{
			for (var i=1;i<=4;i++)
			{
				if (IPArray[i]>255)
				{
					error_message = error_message + "* " + "Destination IP address is invalid!" + "\n";
					error=true;
				}
			}
		}
		var atomPat=new RegExp("^" + atom + "$");
		var domArr=domain.split(".");
		var len=domArr.length;
		for (i=0;i<len;i++)
		{
			if (domArr[i].search(atomPat)==-1)
			{
				error_message = error_message + "* " + "The domain name does not seem to be valid." + "\n";
				error=true;
			}
		}
		
		if (len<2)
		{
			error_message = error_message + "* " + "This emailid is missing a hostname!" + "\n";
			error=true;
		}
	}
}


