// adapted from http://www.w3.org/Talks/Tools/Slidy/slidy.js
function getStepNumber(url) {
  var i = url.indexOf("#");

  // check if anchor is entire page
  if (i < 0)
    return 1;  // yes

  var anchor = unescape(url.substr(i+1));
  var num = parseInt(anchor);
  if (isNaN(num) || num < 1)
    return 1;
  return num;
}
function stepNavHighlight(num) {
  var stepNav = document.getElementById('step-nav');
  if (!stepNav.style.display)
    stepNav.style.display = 'block';
  var steps = stepNav.getElementsByTagName('li');
  if (num > steps.length)
    num = 1;
  for (var i=0; i<steps.length; i++) {
    var step = steps[i];
    if (i+3 <= num) {
      step.className = 'done';
    } else {
      step.className = '';
    }
    if (i+2 == num)
      step.className = 'last-done';
    if (i+1 == num)
      step.className = 'current-step';
  }
}
function formStepHighlight(num) {
  var theForm = document.forms.apply;
  var steps = theForm.getElementsByTagName('fieldset');
  if (num > steps.length)
    num = 1;
  for (var i=0; i<steps.length; i++) {
    var step = steps[i];
    if (i+1 == num) {
      step.className = '';
    } else {
      step.className = 'not-current';
    }
  }
}
function sideStepHighlight(num) {
  var sidebar = document.getElementById('secondary-content');
  var steps = sidebar.getElementsByTagName('h4');
  if (num > steps.length)
    num = 1;
  for (var i=0; i<steps.length; i++) {
    var step = steps[i];
    if (i+1 == num) {
      step.firstChild.className = 'current-step';
      //alert(step.firstChild);
    } else {
      step.firstChild.className = '';
    }
  }
}
function goToStep(num) {
  window.scroll(0,0);
  stepNavHighlight(num);
  formStepHighlight(num);
  sideStepHighlight(num);
}
var numCheck = 0;
function checkStep() {
  var num = getStepNumber(location.href);
  if (num != numCheck) {
    numCheck = num;
    goToStep(num);
  }
}
function proceedAndRetreatShow() {
  var formPs = document.forms.apply.getElementsByTagName('p');
  for (var i=0; i<formPs.length; i++) {
    var formP = formPs[i];
    formP.className = formP.className.replace(/hidden/, '');
  }
}
// duplicated here because hiddenElements now start out showing --
// better graceful degradation
function display(clickElement, hiddenElement) {
  if (hiddenElement.style.display == 'none') {
    hiddenElement.style.display = 'block';
    clickElement.className = 'dropdown_header_clicked';
  } else {
    hiddenElement.style.display = 'none';
    clickElement.className = 'dropdown_header';
  }
}
function displayOnClick(clickElement, hiddenElement, expandOnLoad, loadAhah) {
  if (clickElement != null) {
    clickElement.onclick = function() {
      display(clickElement, hiddenElement);
      if (typeof loadAhah != 'undefined') {
        var hiddenElementId = hiddenElement.id;
        var url = loadAhah + hiddenElementId;
        ahah(url, hiddenElementId);
      }
    };
    if (!expandOnLoad) {  // changed from script.js
      display(clickElement, hiddenElement);
    }
  }
}
function dropdownExpander(sectionID) {
  var section = document.getElementById(sectionID);
  var sectionH5List = section.getElementsByTagName('h5');
  var sectionUlList = section.getElementsByTagName('ul');
  for (var i=0; i < sectionH5List.length; i++) {
    displayOnClick(sectionH5List[i], sectionUlList[i]);
  }
}
function dropdownHeaders(sectionID, expandOnLoad, loadAhah) {
  var section = document.getElementById(sectionID);
  var sectionH3List = section.getElementsByTagName('h3');
  var sectionDivList = section.getElementsByTagName('div');
  var loadAhah = loadAhah;
  for (var i=0; i < sectionH3List.length; i++) {
    displayOnClick(sectionH3List[i], sectionDivList[i], expandOnLoad, loadAhah);
  }
}
function confirmSubmit() {
  var agree = confirm("Are you sure you wish to submit the application?  You may wish to preview and print a copy for your records first.");
  if (agree)
    return true;
  else
    return false;
}

//adds class="current" to current Resources link
function makeCurrent() {
	var urlPath = window.location.pathname;
	var resourceList = document.getElementById("resources");
	var resourceLinks = resourceList.getElementsByTagName("a");
	for (var i = 0; i < resourceLinks.length; i++) {
	  var resourceLink = resourceLinks[i];
	  if (resourceLink.pathname == urlPath) {
	      resourceLink.className = "current";
	  }
	}
}

// outputs the value of the form as a parameter string
function formValue(formObj) {
  var paramStr; // parameter string
  var elems;    // elements in form
  var elem;     // single element
  paramStr = "?";
  elems = formObj.elements;
  for (i=0; i<elems.length; i++) {
    elem = elems[i];
    if ((elem.type) &&
        // if text or textarea with a value
        ((elem.type.search(/text/) == 0 && elem.value) || 
        // if checkbox or radio that's checked
        ((elem.type == "checkbox" || elem.type == "radio") && elem.checked))) {
      paramStr += elem.name + "=" + encodeURIComponent(elem.value) + "&";
    }
    if (elem.tagName == "SELECT") {
      paramStr += elem.name + "=" + 
        encodeURIComponent(elem.options[elem.selectedIndex].value) + "&";
    }
  }
  return paramStr;
}
