// 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 checkemail(strMail)
{
	var str=strMail;
	var filter=/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$/i;
	if (filter.test(str))
		testresults=true
	else
		testresults=false
	return (testresults)
}
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){
	var s = stripCharsInBag(strPhone, validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function isNumeric(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
}

function formatPhone(Phone)
{
	var PhoneStrip = "";
	var PhoneLength = Phone.length;
	var Chr;

	for (j = 0; j < PhoneLength; j++)
	{
		Chr = Phone.charAt(j);
		if(isNumeric(Chr))
		{
			PhoneStrip = PhoneStrip + Chr;
		}
	}

	if (PhoneStrip.length == 10)
	{
		return "(" + PhoneStrip.substring(0,3) + ") " + PhoneStrip.substring(3,6) + "-" + PhoneStrip.substring(6);
	}

	return "";
}

function validate(frm) {
	if (frm.entry.value == "")
	{
		alert("Please complete the sentence to tell us why you love winemaking.");
		frm.entry.select();
		frm.entry.focus();
		return false;
	} 
	if (frm.first_name.value == "")
	{
		alert("Please enter your first name.");
		frm.first_name.select();
		frm.first_name.focus();
		return false;
	}
	if (frm.last_name.value == "")
	{
		alert("Please enter your last name.");
		frm.last_name.select();
		frm.last_name.focus();
		return false;
	}
    if (frm.age.value == "" || !isNumeric(frm.age.value))
    {
		alert("Please enter a valid age.");
		frm.age.select();
		frm.age.focus();
		return false;
	}
	if (frm.phone_number.value == "")
	{
		alert("Please enter your phone number.");
		frm.phone_number.select();
		frm.phone_number.focus();
		return false;
	}	
    if (!(checkemail(frm.email_address.value)))
	{		
		alert("Please enter a valid email address.");
		frm.email_address.select();
		frm.email_address.focus();
		return false;	
	} 

    if (frm.address.value == "")
    {
		alert("Please enter your address.");
		frm.address.select();
		frm.address.focus();
		return false;
	}
    if (frm.city.value == "")
    {
		alert("Please enter your city.");
		frm.city.select();
		frm.city.focus();
		return false;
	}
    if (frm.province.value == "")
    {
		alert("Please enter your province.");
		frm.province.select();
		frm.province.focus();
		return false;
	}
    if (frm.postal_code.value == "")
    {
		alert("Please enter your postal code.");
		frm.postal_code.select();
		frm.postal_code.focus();
		return false;
	}

	return true;
}
