function emailCheck (emailStr) {
 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) {
 alert("Email address seems incorrect (check @ and .'s)");
 return false;
 }
 var user=matchArray[1];
 var domain=matchArray[2];

// Start by checking that only basic ASCII characters are in the strings (0-127).

 for (i=0; i<user.length; i++) {
 if (user.charCodeAt(i)>127) {
 alert("This email username contains invalid characters.");
 return false;
 }
 }
 for (i=0; i<domain.length; i++) {
 if (domain.charCodeAt(i)>127) {
 alert("This email domain name contains invalid characters.");
 return false;
 }
 }

 // See if "user" is valid

 if (user.match(userPat)==null) {

 // user is not valid

 alert("The email username doesn't seem to be valid.");
 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!");
 return false;
 }
 }
 return true;
 }

 // Domain is symbolic name. Check if it's valid.

 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) {
 alert("The email domain name does not seem to be valid.");
 return false;
 }
 }

 if (checkTLD && domArr[domArr.length-1].length!=2 &&
 domArr[domArr.length-1].search(knownDomsPat)==-1) {
 alert("The address must end in a well-known domain or two letter " + "country.");
 return false;
 }

 // Make sure there's a host name preceding the domain.

 if (len<2) {
 alert("This address is missing a hostname!");
 return false;
 }

 // If we've gotten this far, everything's valid!
 return true;
}

//---------------------------------------------------------------------
// trim string
function trim(s) {
 return s.replace(/^[ ]*(.*?)[ ]*$/,"$1")
}

//---------------------------------------------------------------------
// subit on click
function on_submit() {
 var form = this.document.lform;

 // check the first name field
 form.inputFirstName.value = trim(form.inputFirstName.value);
 if (form.inputFirstName.value.length==0) {
 alert('Please, fill up First name');
 form.inputFirstName.focus();
 return 0;
 }

 // check the last name field
 form.inputLastName.value = trim(form.inputLastName.value);
 if (form.inputLastName.value.length==0) {
 alert('Please, fill up Last name');
 form.inputLastName.focus();
 return 0;
 }

 // check the email field
 form.inputEmail.value = trim(form.inputEmail.value);
 if (form.inputEmail.value.length==0) {
 alert('Please, fill up Email');
 form.inputEmail.focus();
 return 0;
 }

 // email field sytax check
 if (!emailCheck(form.inputEmail.value)) {
 form.inputEmail.focus();
 return 0;
 }

 // check the telephone field
 form.inputTelephone.value = trim(form.inputTelephone.value);
 if (form.inputTelephone.value.length==0) {
 alert('Please, fill up Telephone');
 form.inputTelephone.focus();
 return 0;
 }

 // check the company field
 form.inputCompany.value = trim(form.inputCompany.value);
 if (form.inputCompany.value.length==0) {
 alert('Please, fill up Company');
 form.inputCompany.focus();
 return 0;
 }

 // check the company url field
 form.inputCompanyURL.value = trim(form.inputCompanyURL.value);
 if (form.inputCompanyURL.value.length==0) {
 alert('Please, fill up Company URL');
 form.inputCompanyURL.focus();
 return 0;
 }

 form.action = 'demo_send.php';
 form.target = '_self';
 form.submit();

}