function trim(str)
{
  return str.replace(/^\s+|\s+$/g, '')
}
 
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("Invalid e-mail address.");
	    return false;
	 }
var user=matchArray[1];
var domain=matchArray[2];
var digits1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_.+" ;
var temp
	for (var i=0;i<user.length;i++)
	{
	  temp=user.substring(i,i+1)
	      if (digits1.indexOf(temp)==-1)
		{
		  alert("Invalid e-mail address.");
		  return false;
      		}
        }

	for (i=0; i<user.length; i++) 
	{
		if (user.charCodeAt(i)>127)
		 {
		   alert("Invalid e-mail address.");
		   return false;
  		 }
	}
	for (i=0; i<domain.length; i++)
        {
		if (domain.charCodeAt(i)>127) 
		{
		   alert("Invalid e-mail address.");
		   return false;
   		}
	}


 	if (user.match(userPat)==null)
	 {
	   alert("Invalid e-mail address.");
	   return false;
	 }
var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null)
	 {
		for (var i=1;i<=4;i++)
		 {
			if (IPArray[i]>255)
			 {
			   alert("Invalid e-mail address.");
			   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;
var tdomain=domArr[0];

//fuction to validate domain name

var digits1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_" ;
var temp

	for (var i=0;i<tdomain.length;i++)
	{
	temp=tdomain.substring(i,i+1)
		if (digits1.indexOf(temp)==-1)
			{
			  alert("Invalid e-mail address.");
			  return false
      			}
  	}

	for (i=0;i<len;i++)
	 {
		if (domArr[i].search(atomPat)==-1)
		 {
		   alert("Invalid e-mail address.");
		    return false;
        	 }
	 }


	if (checkTLD && domArr[domArr.length-1].length!=2 && 		domArr[domArr.length-1].search(knownDomsPat)==-1)
	 {
	  alert("Invalid e-mail address.");
	  return false;
	 }

	if (len<2)
         {
	  alert("Invalid e-mail address.");
	  return false;
	 }
return true;
}

function validateQC()
{	
	if (trim(document.callmeback.name.value )=="")
	{
		alert("Name cannot be empty.")
		document.callmeback.name.value="";
		document.callmeback.name.focus();
		return false
	}
var digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"+" ";
var temp
	for (var i=0;i<document.callmeback.name.value.length;i++)
	{
	temp=document.callmeback.name.value.substring(i,i+1)
		if (digits.indexOf(temp)==-1)
			{
			  alert("Please enter only  Alphabetic Characters");
			  document.callmeback.name.focus();
			  document.callmeback.name.select();
			  return false
     			 }
	}


	if (!trim(document.callmeback.name.value )=="")
	{
		var n=document.callmeback.name.value;
			if(n.length<3)
				{
				alert("Name should have atleast 3 characters");
				return false;
				}

	}

var len=document.callmeback.email.value.length;
var i=0;
	while ((i < len) && (document.callmeback.email.value.charAt(i) != "@"))
	{ 
		i++
	}

	if ((i >= len) || (document.callmeback.email.value.charAt(i) != "@")) 
	{	
		document.callmeback.email.focus();
		alert("Please enter a valid E-mail address")
		return false;	
	}	
	var i=0;
	while ((i < len) && (document.callmeback.email.value.charAt(i) != "."))
	{ 
		i++
	}
	if ((i >= len) || (document.callmeback.email.value.charAt(i) != ".")) 
	{	
		document.callmeback.email.focus();
		alert("Please enter a valid E-mail address")
		return false;	
	}	
	
       if (!emailCheck(document.callmeback.email.value))
  	{
   	 document.callmeback.email.focus();
         document.callmeback.email.select();
    	 return false;
        }
		
	if (!trim(document.callmeback.email.value )=="")
	{
		var n=document.callmeback.email.value;
			if(n.length<8)
				{
				alert("Please enter a valid E-mail address");
				return false;
				}

	}

	if (!trim(document.callmeback.phonenum.value )=="")
	{
		   if(isNaN(document.callmeback.phonenum.value))
			{
			  alert("Please enter a valid phone number");
		          return false;
			}
		else
		{
			
			var s=document.callmeback.phonenum.value;
				if(s.length>16 || s.length<5)
					{
					alert("Please enter a valid phone number");
					return false;
					}

	        }
	}
	
return true;

}
