function goBack(where) {
  document.forms['wizardForm'].pageName.value = where;
  document.forms['wizardForm'].submit();
}

function doSelectSet()
{
	var checkName = false;
	var newName = '';
	if (document.forms['wizardForm'].NEW_FORM_INFORMATION_SET.checked)
	{
		if (document.forms['wizardForm'].NEW_INFORMATION_SET_NAME.value.length == 0)
		{
			alert ('Please enter a name for the new set');
			document.forms['wizardForm'].NEW_INFORMATION_SET_NAME.focus();
			return;
		}
		else
		{
			checkName = true;
			newName = document.forms['wizardForm'].NEW_INFORMATION_SET_NAME.value;
		}
	}
	for (var x = 0; x < document.forms['wizardForm'].FORM_INFORMATION_SET.length; x++)
	{
		if (checkName && document.forms['wizardForm'].FORM_INFORMATION_SET[x].value == newName)
		{
			alert ('Please enter a name that has not already been used.');
			document.forms['wizardForm'].NEW_INFORMATION_SET_NAME.focus();
			return;
		}
		else if (document.forms['wizardForm'].FORM_INFORMATION_SET[x].checked)
		{
			document.forms['wizardForm'].submit();
			return;
		}
	}
	if (checkName)
		document.forms['wizardForm'].submit();
	else
		alert ('Please select a set');
}

function doRenameSet (setName)
{
	var newName = prompt ("Enter the new name for the " + setName + " information");
	if (newName != null)
	{
		if (newName.length == 0)
		{
			alert ('Please enter the new name when renaming ' + setName + '.');
			return;
		}

		for (var x = 0; x < document.forms['wizardForm'].FORM_INFORMATION_SET.length; x++)
		{
			if (document.forms['wizardForm'].FORM_INFORMATION_SET[x].value == newName)
			{
				alert ('Please enter a name that has not already been used.');
				return;
			}
		}
		
		document.forms['wizardForm'].RENAME_FORM_INFORMATION.value = setName;
		document.forms['wizardForm'].RENAME_INFORMATION_TO.value = newName;
		document.forms['wizardForm'].action = location.href;
		document.forms['wizardForm'].submit();
	}
}

function doDeleteSet (setName)
{
	if (confirm ("Are you sure you want to delete " + setName + " information?"))
	{
		document.forms['wizardForm'].DELETE_FORM_INFORMATION.value = setName;
		document.forms['wizardForm'].action = location.href;
		document.forms['wizardForm'].submit();
	}
}

var preventNext = false;
function goNext () {
  if (!arguments[0] || !arguments[0].length) {
    if (!preventNext && validateForm(document.forms['wizardForm']))
    {
      preventNext = true;
      document.forms['wizardForm'].submit();
    }
  } else {

  }
}

var preventRegister = false;
function sendToRegistration()
{
	if (preventRegister == false)
	{
		preventRegister = true;
		document.forms['wizardForm'].action = '/forms/Register_New_User';
		document.forms['wizardForm'].submit();
	}
}

var preventFinish = false;
function doFinishRegistration()
{
	if (!preventFinish)
	{
		if (document.forms['wizardForm'].email.value != document.forms['wizardForm'].email2.value ||
				document.forms['wizardForm'].email.value == '')
		  alert ('Please check that you have entered the same email address twice.');
		else
		{
			preventFinish = true;
			document.forms['wizardForm'].submit();
		}
	}
}

var notRequired = '';
function validateForm(inForm) {
  var radio = false;
  var hasRadio = false;
  var check = false;
  var hasCheck = false;
  for(x=0;x<inForm.length;x++) {
    var element = inForm.elements[x];
    if (element.type.substr(0,6) == 'select' || element.className.indexOf("notRequired") != -1 || element.type == 'button' || element.type == 'cancel' || element.type == 'submit')
      continue;
    if (element.type != 'radio' && element.type != 'checkbox' && element.type != 'hidden') {
      if (element.value == '' && notRequired.indexOf(','+element.name) > -1)
        continue;
      if (element.value == '' && notRequired.indexOf(','+element.name) == -1) {
        alert('Enter a value for '+element.name);
        element.focus(); 
        element.className = 'error';
        return false;
      }
      var title = element.title;
      var length = title.substr(0,title.indexOf(' '));
      title = title.substr(title.indexOf(' ',title.indexOf(' ')+1)+1);
      if (title.indexOf(',') > -1) {
        var type = title.substr(0,title.indexOf(','));
        var form = title.substr(title.indexOf(',')+14);
      } else {
        var type = title;
        var form = '';
      }
      var value = element.value;
      if (value.length > length) {
        alert(element.name+' is too long! Must be less than '+(length-(-1)));
        element.focus();
        element.className = 'error';
        return false;
      }
      valueNo0 = value;
      while (valueNo0.charAt (0) == '0')
        valueNo0 = valueNo0.substring (1);
      if (valueNo0 == "" && value != "")
        valueNo0 = "0";
      if (type == 'number' && (("" + parseInt(value, 10)) != valueNo0)) {
        alert(element.name+' has to be a number!');
        element.focus();
        element.className = 'error';
        return false;
      }
      var badForm = false;
      if (form != '') {
        if (form.length != value.length)
          badForm = true;
        else {
          for (y=0;y<form.length;y++) {
            nf = form.charCodeAt(y);
            nv = value.charCodeAt(y);
            if (nf > 47 && nf < 58) {
              if (nv < 48 || nv > 57)
                badForm = true;
            } else if (nf > 64 && nf < 91) {
              if (nv < 65 || nv > 90)
                badForm = true;
            } else if (nf > 96 && nf < 123) {
              if (nv < 97 || nv > 122)
                badForm = true;
            } else if (nf != nv)
                badForm = true;
          }
        }
        if (badForm) {
          alert(element.name+' has to be in the form '+form+'!');
          element.focus();
          element.className = 'error';
          return false;
        }
      }
    }
    if (element.type == "radio") {
      hasRadio = true;
      if (element.checked)
        radio = true;
      else {
        if (radio == false)
          radio = element;
      }
    }
    if (element.type == 'checkbox') {
      hasCheck = true;
      if (element.checked)
        check = true;
      else {
        if (check == false)
          check = element;
      }
    }
  }
  if (hasRadio && radio != true) {
    alert('Please Select an Option!');
    radio.focus();
    radio.className = 'error';
    return false;
  }
  if (hasCheck && check != true) {
    alert('Please Check an Option!')
    check.focus();
    check.className = 'error';
    return false;
  }

  if (window.onNext)
  {
    return onNext();
  }

  return true;
}