// FUNCTION TO VALIDATE EMAIL ADDRESS 
////=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

//This function is used to check wether the email address entered by the user is valid
function checkEmail(form) {
emailStr = form.Email.value

//The following pattern is used to check if the entered e-mail address fits the user@domain format.  It also is used //to separate the username from the domain.
var emailPat=/^(.+)@(.+)$/

//The following string represents the pattern for matching all special characters.  We don't want to allow special //characters in the address. These characters include ( ) < > @ , ; : \ " . [ ]    */
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"

//The following string represents the range of characters allowed in a username or domainname.  It really states //which chars aren't allowed. 
var validChars="\[^\\s" + specialChars + "\]"

//The following pattern applies if the "user" is a quoted string (in which case, there are no rules about which //characters are allowed and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com is a legal e-mail //address. 
var quotedUser="(\"[^\"]*\")"

//The following pattern applies for domains that are IP addresses, rather than symbolic names.  E.g. //joe@[123.124.233.4] is a legal e-mail address. NOTE: The square brackets are required. */
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/

//The following string represents an atom (basically a series of non-special characters.) 
var atom=validChars + '+'

//The following string represents one word in the typical username. For example, in john.doe@somewhere.com, john //and doe are words. Basically, a word is either an atom or quoted string. 
var word="(" + atom + "|" + quotedUser + ")"

// The following pattern describes the structure of the user
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")

//The following pattern describes the structure of a normal symbolic domain, as opposed to ipDomainPat, shown //above. 
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

//Finally, let's start trying to figure out if the supplied address is valid. 
//Begin with the coarse pattern to simply break up user@domain into different pieces that are easy to analyze. 
var matchArray=emailStr.match(emailPat)
if (matchArray==null) {

//Too many/few @'s or something; basically, this address doesn't even fit the general mould of a valid e-mail address. 
alert("Invalid email address. (check @ and .'s)")
form.Email.focus()
form.Email.select()
return false
}
var user=matchArray[1]
var domain=matchArray[2]

// See if "user" is valid 
if (user.match(userPat)==null) {
    // user is not valid
    alert("Invalid user name.")
    form.Email.focus()
    form.Email.select()
    return false
}

//If the e-mail address is at an IP address (as opposed to a symbolic host name) make sure the IP address is valid. 
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.")
                     form.Email.focus()
	        form.Email.select()	        
		return false
	    }
    }
    return true;
}

// Domain is symbolic name
var domainArray=domain.match(domainPat)
if (domainArray==null) {
	alert("Invalid domain name.")
             form.Email.focus()
             form.Email.select()	        
    return false
}

//Domain name seems valid, but now make sure that it ends in a three-letter word (like com, edu, gov) or a //two-letter word,representing country (uk, nl), and that there's a hostname preceding the domain or country. 
//Now we need to break up the domain to get a count of how many atoms it consists of. 
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) {
   // the address must end in a two letter or three letter word.
   alert("The address must end in a three-letter domain, or two letter country.")
             form.Email.focus()
 	 form.Email.select()	        
   return false
}

// Make sure there's a host name preceding the domain.
if (len<2) {
   var errStr="This address is missing a hostname."
   alert(errStr)
            form.Email.focus()
            form.Email.select()	        
   return false
}

// If we're checking the lower limit of the feedback field with minimum requirement of atleast 5 field, & everything's valid!
return true;
}


// END FUNCTION TO VALIDATE EMAIL ADDRESS 
////=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

function checkFeedback(form) {
var min=3;
if (form.txtFeedback.value.length < min) {
    alert("Feedback field cannot be less than 3 characters");
    form.txtFeedback.focus()
    form.txtFeedback.select()
    return false;
   }
else return true;
}

////=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//END FUNCTION TO VALIDATE EMAIL ADDRESS

//ORGANIZATION in  form

function checkOrgn(form)
{

   if (form.company.value == "")
  {
    alert("Please enter \"Organization Name\" field.");
    form.company.focus();
    return (false);
  }

  if (form.company.value.length > 100)
  {
    alert("Please enter at most 150 characters in the \"Organization Name\" field.");
    form.company.focus();
    return (false);
  }

  return (true);
}

 ////=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//END ORGANIZATION in request form


//SCO/SCF in  form

function checkSco(form)
{

   if (form.sco.value == "")
  {
    alert("Please enter \"SCO\\SCF\\HNO\\Booth\" field.");
    form.sco.focus();
    return (false);
  }

  if (form.sco.value.length > 50)
  {
    alert("Please enter at most 150 characters in the \"SCO\SCF\HNO\Booth\" field.");
    form.sco.focus();
    return (false);
  }

  return (true);
}

 ////=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//END SCO/SCF in request form



function CheckMsg(form) {


	if (form.comments.value.length == 0 )
	{
		alert("Comments: Cannot be blank");
		form.comments.focus();
		return (false);

	}


	var reserved = ".com www url http mailto https .html";

	temp = reserved.split(' ');
	templen = temp.length;
	templen = templen - 1;

			for (i=0; i <= templen  ; i++ )  {

				cmnts = form.comments.value;
				AtPos = cmnts.indexOf(temp[i])
				StopPos = cmnts.lastIndexOf("")
	 
				if (AtPos == -1 || StopPos == -1) {
				} else  {
					alert("Comments: Cannot accept website or email address");
					form.comments.focus();
					return (false);
					break;
				}

			}
  return (true);
}

function checkName(form) {
	if (form.from_name.value.length == 0 )
	{
		alert("Name field cannot be blank");
		form.from_name.focus();
		return (false);

	}
return true
}

function checkSubject(form) {
	if (form.like_to.selectedIndex == 0 )
	{
		alert("Select the field from \"I would like ...\"");
		form.like_to.focus();
		return (false);

	}
return true
}