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 trim(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}
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){
var bracket=3
strPhone=trim(strPhone)
if(strPhone.indexOf("+")>1) return false
if(strPhone.indexOf("-")!=-1)bracket=bracket+1
if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
var brchr=strPhone.indexOf("(")
if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function checkEmail(address) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   if(reg.test(address) == false)
   {
	   return false;
   }
}

var validateForm = function(objForm)
{
    var c = new ajaxCaptca();
	var message = 'The following fields must be corrected:';
	var field = '';
	if(objForm.name.value == '' || objForm.name.value == null)
	{
		message += '\n- Name: is required'
		field = 'name';
	}
	if(objForm.phoneNumber.value == '' || objForm.phoneNumber.value == null)
	{
		message += '\n- Phone Number: is required'
		if(field == '')
		{
			field = 'phoneNumber';
		}
	}
	else
	{
		if(checkInternationalPhone(objForm.phoneNumber.value)==false)
		{
			message += '\n- Phone Number: not a valid format'
			if(field == '')
			{
				field = 'phoneNumber';
			}
		}
	}
	if(objForm.email.value == '' || objForm.email.value == null)
	{
		message += '\n- Email: is required'
		if(field == '')
		{
			field = 'email';
		}
	}
	else
	{
		if(checkEmail(objForm.email.value)==false)
		{
			message += '\n- Email: not a valid format'
			if(field == '')
			{
				field = 'email';
			}
		}
	}
	if(objForm.preferredMethod.value == 1)
	{
		if(objForm.time.value == '' || objForm.time.value == null)
		{
			message += '\n- Best Time of Day Call: is required'
			if(field == '')
			{
				field = 'time';
			}
		}
	}
	else if (objForm.preferredMethod.value == 0)
	{
		message += '\n- Preferred Method of Contact: is required'
		if(field == '')
		{
			field = 'preferredMethod';
		}
	}
	if (objForm.referral.value == '')
	{
		message += '\n- How Did You Hear About Us: is required'
		if(field == '')
		{
			field = 'referral';
		}
	}
	if (objForm.comment.value == '' || objForm.comment.value == null)
	{
		message += '\n- Question/Comment: is required'
		if(field == '')
		{
			field = 'comment';
		}
	}
    if(c.isNotMatch(objForm.captcha_check.value,objForm.captcha.value))
    {
        message += '\n- The text entered doesn\'t match text in image!';
        ColdFusion.navigate('includes/captcha.cfm','divCaptcha');
        if(field == '')
        {
        	field = 'captcha'
        }
    }
	if(message != 'The following fields must be corrected:')
	{
		alert(message);
		objForm[field].focus();
		return false;
	}
	else
	{
		return true;
	}
}

var methodSelected = function(selectedValue)
{
	if(selectedValue == 1)
	{
		document.getElementById('timeToCall').style.display = '';
	}
	else if(selectedValue == 2)
	{
		document.getElementById('timeToCall').style.display = 'none';
	}
	else
	{
		document.getElementById('timeToCall').style.display = 'none';
	}
}
