function validate_form(frmFields,frmAlerts,frm){
	var count;
	var frmFields = frmFields.split(",");
	var frmAlerts = frmAlerts.split(",");
	
	reWhiteSpace = new RegExp(/^\s+$/);
	
	for(count = 0; count < frmFields.length; count++){
		if((document.getElementById(frm).elements[frmFields[count]].value == "") || reWhiteSpace.test(document.getElementById(frm).elements[frmFields[count]].value)){
			alert("Please " + frmAlerts[count]);
			document.getElementById(frm).elements[frmFields[count]].focus();
			return false;
		}
	}
	
	

}

/////////////////////////////////////////////////////////////////////////////

function validate_form_email(frmFields,frmAlerts,frm,email_val,wphone){
	var count;
	var frmFields = frmFields.split(",");
	var frmAlerts = frmAlerts.split(",");
	
	reWhiteSpace = new RegExp(/^\s+$/);
   
	
	
	for(count = 0; count < frmFields.length; count++){
		if((document.getElementById(frm).elements[frmFields[count]].value == "") || reWhiteSpace.test(document.getElementById(frm).elements[frmFields[count]].value)){
			alert("Please " + frmAlerts[count]);
			document.getElementById(frm).elements[frmFields[count]].focus();
			return false;
		}
	}
	
	//if(isNaN(wphone))
	//{
	//	alert("Please Insert Numeric Phone No");
	//	
	//	return false;
	//}
	return (!the_mail(email_val));
		

}

function check()
{
	if(isNaN(document.frm_register.work_phone.value))
	{
	alert("Please Insert Numeric No");
		return false;
	}
	return true;
}


////////////////////////////////////////////////////////////////////////////


function the_mail(control_value)
{
		var emailStr = control_value;
		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 ");
			//eval("document."+form_name+"."+control_name).focus();
			return true;
		}
		var user=matchArray[1]
		var domain=matchArray[2]
		if (user.match(userPat)==null)
		{
			alert("The Email address doesn't seem to be valid.");
			//eval("document."+form_name+"."+control_name).focus();
			return true;
		}
		var IPArray=domain.match(ipDomainPat)
		if (IPArray!=null) 
		{
			for (var i=1;i<=4;i++) 
			{
				if (IPArray[i]>255) 
				{
					alert("Destination IP address is invalid!");
					//eval("document."+form_name+"."+control_name).focus();
					return true;
				}
			}
				 
		}
		var domainArray=domain.match(domainPat)
		if (domainArray==null) 
		{
			alert("The domain name doesn't seem to be valid.");
			//eval("document."+form_name+"."+control_name).focus();
			return true;
		}
		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) 
		{
			alert("The address must end in a three-letter domain, or two letter country.");
			//eval("document."+form_name+"."+control_name).focus();
			return true;
		}
		if (len<2) 
		{
			alert("This address is missing a hostname!");
			//eval("document."+form_name+"."+control_name).focus();
			return true;
		}
		return false;
	
}

////////////// Phone number validation ///////////////////////

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}
