
/*************************************************************************/

//FORM VALIDATION
var digits = "0123456789";
var blanks = " \t\n\r";  // whitespace chars
// non-digit characters allowed in phone numbers
var phoneNumberDelimiters = "()- ";

// characters allowed in Australian phone numbers
var validAUPhoneChars = digits + phoneNumberDelimiters;

// Australian phone numbers have 10 digits, formatted as ## #### #### or (##)####-####
var digitsInAUPhoneNumber = 10;

// Removes all characters which do NOT appear in string bag from string s

function stripCharsNotInBag (s, bag)
  {
  var i;
  var returnString = "";

  // Search through string's characters one by one;
  // if character is in bag, append to returnString
  for (i = 0; i < s.length; i++)
    {
    // Check that current character isn't blank
    var c = s.charAt(i);
    if (bag.indexOf(c) != -1)
      returnString += c;
    }
  return returnString;
  }

function isEmpty(formObj)
  {
  return ((formObj == null) || (formObj.length == 0));
  }

function isBlank(formObj)
  {
  var i;
  if (isEmpty(formObj))
    return true;

  for (i=0; i<formObj.length; i++)
    {   
    // Check that current character isn't blank
    var c = formObj.charAt(i);
    if (blanks.indexOf(c) == -1) 
      return false;
    }
  return true;
  }

function stripLeadingBlanks(formObj)
  { 
  var i = 0;
  while ((i > formObj.length) && (blanks.indexOf(formObj.charAt(i)) != -1)) i++;
  return formObj.substring(i, formObj.length);
  }

function stripTrailingBlanks(formObj)
  { 
  var i = formObj.length - 1;
  while ((i >= 0) && (blanks.indexOf(formObj.charAt(i)) != -1)) i--;
  return formObj.substring(0, i+1);
  }

function stripLeadingTrailingBlanks(formObj)
  { 
  formObj = stripLeadingBlanks(formObj);
  formObj = stripTrailingBlanks(formObj);
  return formObj;
  }
function isDigit(c)
  {
  return ((c >= "0") && (c <= "9"));
  }


// Returns true if all chars in string s are numbers;
// first character is allowed to be + or -; does not
// accept floating point, exponential notation, etc.

function isInteger(s)
  {
  if (isBlank(s))
    return false;

  // skip leading + or -
  if ((s.charAt(0) == "-") || (s.charAt(0) == "+"))
    var i = 1;
  else
    var i = 0;

  // Search through string's chars one by one until we find a
  // non-numeric char, then return false; if we don't, return true
  for (i; i<s.length; i++)
    {
    // Check that current character is number
    var c = s.charAt(i);
    if (!isDigit(c))
      return false;
    }
  // All characters are numbers
  return true;
  }

function isAUPhoneNumber(s)
  {
  if (isBlank(s))
    return false;
  s = stripCharsNotInBag(s, digits);
 //return (isInteger(s) && (s.length == digitsInAUPhoneNumber));
  return (isInteger(s) && ((s.length == 8) || (s.length == digitsInAUPhoneNumber)));
  }

function getCheckedRadioButton(radioSet)
  {
  for (var i=0; i<radioSet.length; i++)
    if (radioSet[i].checked)
      return i;
  return -1;
  }
  
// Returns array containing index(es) of checked checkbox(es) 
// in checkbox set, or -1 if no checkboxes are checked

function getCheckedCheckboxes(checkboxSet)
  {
  var arr = new Array();
  for (var i=0,j=0; i<checkboxSet.length; i++)
    if (checkboxSet[i].checked)
      arr[j++] = i;
  if (arr.length > 0)
    return arr;
  else
    return -1;
  }  
  


  function checkCR(evt) {

    var evt  = (evt) ? evt : ((event) ? event : null);

    var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);

    if ((evt.keyCode == 13) && ((node.type=="text") || (node.type=="radio"))) {return false;}


  }

  document.onkeypress = checkCR;
	

