function trim(str)
{
   return str.replace(/^\s*|\s*$/g,"");
}
function validRequired(formField,fieldLabel)
{
	var result = true;
	var v;
	v = formField.value;	
	
	if ((trim(v) == ""))
	{
		alert('Please enter a value for the "' + fieldLabel +'" field.');
		formField.focus();
		result = false;
	}
	return result;
}
function allChar(str)
{
	return ValidCharSet(str,"+0123456789");
}
function ValidCharSet(str,charset)
{
	var result = true;
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}
	return result;
}
function email(str)
 {   
 	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	var org=str.substring(ldot,ldot+4)	
	if (str.indexOf(at)==-1){
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false
	}

	 if (str.indexOf(at,(lat+1))!=-1){
		return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
		return false
	 }
	
	 if (str.indexOf(" ")!=-1){
		return false
	 }
	 if (org.length < 3){
		return false
	 }		
	 return true					

}
function validate(Flag)
{
	if (!validRequired(document.form1.txtfirst,'First name'))
	{ 
		Flag = 0;
		return false; 
	} 
	if (!validRequired(document.form1.txtlast,'Last name'))
	{ 
		Flag = 0;
		return false; 
	} 
	if (!validRequired(document.form1.txtcompany,'Company'))
	{ 
		Flag = 0;
		return false; 
	}
	
		if (!validRequired(document.form1.txtCountry,'Country'))
	{ 
		Flag = 0;
		return false; 
	} 
	if (!validRequired(document.form1.txtcity,'City'))
	{ 
		Flag = 0;
		return false; 
	} 
		if (!validRequired(document.form1.txtCountryCode,'Country Code'))
	{ 
		Flag = 0;
		return false; 
	} 
	
		if (!validRequired(document.form1.txtCityCode,'City Code'))
	{ 
		Flag = 0;
		return false; 
	} 
	
	if (!validRequired(document.form1.txtphone,'Phone'))
	{ 
		Flag = 0;
		return false; 
	} 
	if (!allChar(document.form1.txtphone.value) )
	{
		alert("Phone field accepts value 0-9 and +");
		Flag = 0;
		document.form1.txtphone.focus();
		return false; 
	}
	if (document.form1.txtext.value != "")
	{
		if (!allChar(document.form1.txtext.value) )
		{
			alert("Ext. field accepts value 0-9 and +");
			Flag = 0;
			document.form1.txtext.focus();
			return false; 
		}
	}
	if (!validRequired(document.form1.txtemail,'Email'))
	{ 
		Flag = 0;
		return false; 
	} 
	if (!email(document.form1.txtemail.value))
	{ 
		alert("Invalid email format");
		document.form1.txtemail.focus();
		Flag = 0;
		return false; 
	} 
	if (Flag == 1)
	{
		document.form1.action='send_contact.php'; 
		document.form1.submit();
	}
}
function checkKeycode() 
{
	var keycode;
	if (window.event) 
		keycode = window.event.keyCode;
	if(keycode == 13)
	{
		validate(1);
	}
}
