// JavaScript Document
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 = 6;

function validEmail(email)
{
   invalidChars = " /:,;"

   if (email == "")
      return false

   for (i=0; i<invalidChars.length; i++)
   {
      badChar = invalidChars.charAt(i)

      if (email.indexOf(badChar,0)>-1)
         return false
   }

   atPos = email.indexOf("@",1)

   if (atPos == -1)
      return false

   if (email.indexOf("@",atPos+1) != -1)
      return false

   periodPos = email.indexOf(".",atPos)

   if (periodPos == -1)
      return false

   if (periodPos+3 > email.length)
      return false

   return true
}

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;
        if ((c < "0") || (c > "9") || (c != "+")) 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);
}

function submitIt (joinForm)
{
   if (!validEmail(joinForm.email.value))
   {
      alert("Invalid format. Please enter your email address again.")
      return false
   }

   if (joinForm.fName.value == "")
   {
      alert("Please enter your firstname.")
	  return false
   }

   if (joinForm.sName.value == "")
   {
      alert("Please enter your surname.")
	  return false
   }

   if (joinForm.company.value == "")
   {
      alert("Please enter a company or organization.")
	  return false
   }

   if (joinForm.bPhone.value =="")
   {
      alert ("Please enter a business phone number.")
      return false
   }

/*
   if (joinForm.bPhone.value != "" )
   {
      if (checkInternationalPhone(joinForm.bPhone.value)==false)
      {
         alert("Please enter a valid business phone number.")
         joinForm.bPhone.value=""
         joinForm.bPhone.focus()
         return false
      }
   }


   if (joinForm.fax.value != "" )
   {
      if (checkInternationalPhone(joinForm.fax.value)==false)
      {
         alert("Please enter a valid fax number.")
         joinForm.fax.value=""
         joinForm.fax.focus()
         return false
      }
   }

   if (joinForm.cPhone.value != "" )
   {
      if (checkInternationalPhone(joinForm.cPhone.value)==false)
      {
         alert("Please enter a valid cell phone number.")
         joinForm.cPhone.value=""
         joinForm.cPhone.focus()
         return false
      }
   }

   if (joinForm.hPhone.value != "" )
   {
      if (checkInternationalPhone(joinForm.hPhone.value)==false)
      {
         alert("Please enter a valid home phone number.")
         joinForm.hPhone.value=""
         joinForm.hPhone.focus()
         return false
      }
   }
*/

   languageChoice = joinForm.language.selectedIndex
   if (joinForm.language.options[languageChoice].value == "")
   {
      alert ("You must select your preferred language.")
      return false
   }

   if (joinForm.address.value == "")
   {
      alert ("Please enter an address.")
      return false
   }

   if (joinForm.suburb.value == "")
   {
      alert ("Please enter a suburb or city.")
      return false
   }

   if (joinForm.strState.value == "")
   {
      alert ("Please enter a state or province.")
      return false
   }

   if (joinForm.country.value == "")
   {
      alert ("Please type in a country.")
      return false
   }
   
   if (joinForm.postcode.value == "")
   {
      alert ("Please enter a valid postcode or zip.")
      return false
   }
    
   return true
}
