
/**
 * JSON template for storing how we check various page elements.
 */
var inputFields = {
/*
  "formname" : {

    "elementsuffix" : {

      "type" : "text",
      "description" : "Element Description",
      "confirm" : false,
      "empty" : false

    }
*/
};

/**
 * Check input fields.
 */
function checkInput(prefix,form) {

  var errorMsg = "";
  var returnValue = true;

  for (var x in inputFields[form]) {

    var thisElement = document.getElementById(prefix + "_" + x);

    // check to see if we have a confirm field
    if (inputFields[form][x].confirm) {

      var thisElementConfirm = document.getElementById(prefix + "_confirm_" + x);

      if (thisElement.value != thisElementConfirm.value) {

        errorMsg = errorMsg + "The values entered for " + inputFields[form][x].description + " do not match.\n";

        returnValue = false;

      }

    }

    // check to make sure it's not empty
    if (!inputFields[form][x].empty && thisElement.value == "") {

      errorMsg = errorMsg + "You must enter a value for " + inputFields[form][x].description + "\n";

      returnValue = false;

    } else {

      // do any special processing
      switch (inputFields[form][x].type) {

        case "email":

          if (!validEmail(thisElement.value)) {

            returnValue = false;

          }

          break;

        case "password":

          if (thisElement.value.length < 6) {

            errorMsg = errorMsg + "Your password must be at least 6 characters long.\n";

            returnValue = false;

          }

          break;

        default:

          break;

      }

    }

  }

  // display any errors that we've accumulated
  if (errorMsg != "") {

    alert(errorMsg);

  }

  return returnValue;

}

/**
 * Check to see if an email address is valid (stolen code).
 */
function validEmail(eAddr) {

  var result = false;
  var ndxAt = ndxDot =  0;

  var ndxAt = eAddr.indexOf("@");
  var ndxDot = eAddr.indexOf(".");
  var ndxDot2 = eAddr.lastIndexOf(".");

  if ((ndxDot < 0) || (ndxAt < 0)) {

    alert("Your email address lacks a '.' or '@'.\n\nThe valid format is 'you@domain.suffix.'");

  } else if ( (ndxDot2 - 3) <= ndxAt) {

    alert("You may be missing your domain name.\n\nThe format is 'you@dom.suf'");

  } else {

    result = true;

  }

  return result;

}

/**
 * The AJAX object.
 */
var http_request = false;

/**
 * Create the global AJAX object if necessary.
 */
function newAjaxCall() {

  http_request = false;

  if (window.XMLHttpRequest) {
    http_request = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    http_request = new ActiveXObject("Microsoft.XMLHTTP");
  }

}

/**
 * Make an AJAX call.
 */
/*
function submitRequest() {

  newAjaxCall();
  http_request.onreadystatechange = handleResponse;
  http_request.open("GET", "someurl", true);
  http_request.send(null);

}
*/

/**
 * Handle an AJAX response.
 */
/*
function handleResponse() {

  // only do something if the request is complete
  if (http_request.readyState == 4) {

    // check for HTTP status code 200
    if (http_request.status == 200) {

      if (http_request.responseText == "error") {

        alert("Error: Could not complete request.");

      } else {

        // do stuff

      }

    }

  }

}
*/

/**
 * Opens a centered window.
 */
function centeredWindow(url,name,width,height,scrollbars,resizeable) {

  var xPos = (screen.availWidth / 2) - (width / 2);
  var yPos = (screen.availHeight / 2) - (height / 2);

  var options = "width=" + width + ",height=" + height + ",resizeable=" + resizeable +",scrollbars=" + scrollbars + ",left=" + xPos + ",top=" + yPos;

  window.open(url,name,options);

}

/**
 * Open the Privacy Policy.
 */
function openPrivacyWindow() {

  centeredWindow("legal.php?action=privacy","legalWindow",600,400,1,1);

}

/**
 * Open the Terms of Use.
 */
function openTermsWindow() {

  centeredWindow("legal.php?action=legal","legalWindow",600,400,1,1);

}

var current = "";

function showInstructions() {

  // if something is showing, hide it
  if (current != "") {
    hideInstructions();
  }

  var chosenId = document.getElementById("selectPage").options[document.getElementById("selectPage").selectedIndex].value;

  var chosenObject = document.getElementById(chosenId);

  if (chosenObject) {

    chosenObject.style.display = "block";

    current = chosenId;

  }

}

function hideInstructions() {

  var currentObject = document.getElementById(current);

  if (currentObject) {

    currentObject.style.display = "none";

    current = "";

  }

}