// from http://neural.cs.nthu.edu.tw/jang/sandbox/javascript/examples/chkemail.asp

// NB: need to have 'window.focus()' in source file as a local script?
function target_opener(mylink, change_focus, close_only, close_me)
{
  if (!(window.focus && window.opener))
    return true;

  if (change_focus)
    window.opener.focus();

  if (!close_only)
    window.opener.location.href=mylink.href;

  if (close_me)
    window.close();

  return false;
}

////////////////////////////////////////////////////////////////////////////////
//
// Useful functions for checking various types of form fields
//
////////////////////////////////////////////////////////////////////////////////
function validate_prompt(ctrl, prompt_str)
{
  alert(prompt_str);
  ctrl.focus();

  return;
}
function is_empty(field, value, desc)
{
  var test_results=true;

  if (value=='')
  {
    message="Please input some information for: " + desc;
    validate_prompt(field, message);
    test_results=false;
  }

  return (test_results);
}

function check_username(field, value)
{
  var test_results=true;

  if (value=='')
  {
    message="Please input a non-blank username!";
    validate_prompt(field, message);
    test_results=false;
  }

  return (test_results);
}
function check_name(field)
{
  var test_results=true;

  name_value=field.value;

    // check at least for non-blank value
  if (name_value=='')
  {
    message="Please input your name and try again!";
    validate_prompt(field, message);
    test_results=false;
  }

  return (test_results);
}

function check_password(field, value)
{
  var test_results=true;

  if (value=='')
  {
    message="Please input a non-blank password!";
    validate_prompt(field, message);
    test_results=false;
  }

  return (test_results);
}
function check_passwords(field, value1, value2)
{
  var test_results=true;
  var filter=/^.{6}/;

    // check that a non-blank password has been entered
    // >>> make sure, in fact, that this is greater than 6 characters
  if (value1=='')
  {
    message="Please input a non-blank password and try again!";
    validate_prompt(field, message);
    test_results=false;
  }

    // check that password values are equal
  else if (value1!=value2)
  {
    message="Password values are not the same!";
    validate_prompt(field, message);
    test_results=false;
  }

    // check that password has at least 6 characters
  else if (!filter.test(value1))
  {
    message="Please have at least 6 characters in your password!";
    validate_prompt(field, message);
    test_results=false;
  }

  return (test_results);
}
function check_email(field, value)
{
  var test_results=true;
  var filter=/^.+@.+\..{2,3}$/;

  if (filter.test(value))
  {
    test_results=true;
  }
  else
  {
    message="Please input a valid email address where you can be contacted!\r\nYou can choose to protect it.";
    validate_prompt(field, message);
    test_results=false;
  }

  return (test_results);
}

function check_radio(field, fields, desc)
{
  var test_results=false;
  for (i=0; i<fields; i++)
  {
    test_results |= field[i].checked;
  }

  if (test_results == false)
  {
    message = "Please choose " + desc;;
    alert(message);
  }

  return (test_results);
}

function check_credit_card(form, button, field)
{
  if (form.payment[field].checked == true)
  {
    if (!check_radio(form.card_type, 2, "your credit card type") || // >>> do not hard code!!!
        !is_empty   (form.card_name,   form.card_name.value,   "your credit card name") ||
        !is_empty   (form.card_no,     form.card_no.value,     "your credit card number") ||
        !is_empty   (form.card_expiry, form.card_expiry.value, "your credit card expiry date")
       )
    return false;
  }

  return true;
}



