function initHelpers() {
  if (!document.getElementsByTagName) return;

  // Find any div.quote elements, and style their p children
  var quoteDivs = getElementsByClassName(document, 'div', 'quote');
  for (var i = 0; i < quoteDivs.length; i++) {
    var myParas = quoteDivs[i].getElementsByTagName('p');
    if (myParas.length == 2) {
      myParas[0].className = 'quote-p1';
      myParas[1].className = 'quote-p2';
      quoteDivs[i].className = 'quote-div';
    }
  }

  // Find any popup links
  var as, popfun;
  as = document.getElementsByTagName('a');
  for (var i = 0; i < as.length; i++) {
    if (as[i].target && as[i].target == 'popup') {
      var width = as[i].getAttribute('popwidth') ? as[i].getAttribute('popwidth') : 600;
      var height = as[i].getAttribute('popheight') ? as[i].getAttribute('popheight') : 450;
      var left = (screen.width - width) / 3;
      var top = (screen.height - height) / 3;
      var windowAttributes = 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top + ',scrollbars=yes,location=no,toolbar=no, resizable=yes';

      popfun = function() {
        var theWindow = window.open(this.href, this.target, windowAttributes);
        theWindow.focus();
        return false;
      }

      as[i].onclick = popfun;
    }
  }
  window.name = 'main';

  // Find any blue boxes
  var blueDivs = getElementsByClassName(document, 'div', 'blue');
  for (var i = 0; i < blueDivs.length; i++) {
    if (blueDivs[i].getElementsByTagName('a').length == 1) {
      blueDivs[i].className = 'blue superhover';
      blueDivs[i].onclick = function() {
        window.location = this.getElementsByTagName('a')[0].getAttribute('href');
      }
    }
  }

  // Find any blue lists
  var blueLists = getElementsByClassName(document, 'ul', 'blue');
  for (var j = 0; j < blueLists.length; j++) {
    var listItems = blueLists[j].getElementsByTagName('li');
    for (var i = 0; i < listItems.length; i++) {
      if (listItems[i].getElementsByTagName('a').length == 1) {
        listItems[i].className = 'superhover';
        listItems[i].onclick = function() {
          window.location = this.getElementsByTagName('a')[0].getAttribute('href');
        }
      }
    }
  }

  // See if we are on the Contact Us page
  
}

addEvent(window, 'load', initHelpers, true);


// Switchify //

var sw = {
  init: function(togglers, elements, action, highlightClass, introElement, defaultNumber) {
    sw.togglers = togglers;
    sw.elements = elements;
    sw.highlightClass = highlightClass;
    sw.introElement = introElement;

    if (sw.togglers.length > sw.elements.length) {
      alert('Switchify mismatch! There are ' + sw.togglers.length + ' togglers and ' + sw.elements.length + ' elements.');
    }

    for (var i = 0; i < sw.togglers.length; i++) {
      sw.change(i, false);
      addEvent(sw.togglers[i], action, sw.update, true);
    }

    if (defaultNumber > 0) sw.change(defaultNumber - 1, true);
  },

  update: function(e) {
    if (sw.introElement) sw.introElement.className = 'hide';
    var targ = getTarget(e);
    for (var i = 0; i < sw.togglers.length; i++) {
      sw.change(i, (sw.togglers[i] == targ));
    }
  },

  change: function(index, show) {
    if (show) {
      sw.elements[index].className = 'show';
      if (sw.highlightClass) sw.togglers[index].className = sw.highlightClass;
    } else {
      sw.elements[index].className = 'hide';
      if (sw.highlightClass) sw.togglers[index].className = '';
    }
  }
};

// Utility functions - mostly pinched from elsewhere // 

function addEvent(elm, evType, fn, useCapture) {
  if (elm.addEventListener) {
    elm.addEventListener(evType, fn, useCapture);
    return true;
  } else if (elm.attachEvent) {
    var r = elm.attachEvent('on' + evType, fn);
    return r;
  }
}

function getTarget(e) {
  var targ;
  if (!e) var e = window.event;
  if (e.target) targ = e.target;
  else if (e.srcElement) targ = e.srcElement;
  if (targ.nodeType == 3) // defeat Safari bug
    targ = targ.parentNode;
  return targ;
}

function $() {
  var elements = new Array();
  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);
    if (arguments.length == 1)
      return element;
    elements.push(element);
  }
  return elements;
}

function getElementsByClassName(oElm, strTagName, strClassName) {
  var arrElements = (strTagName == '*' && oElm.all) ? oElm.all : oElm.getElementsByTagName(strTagName);
  var arrReturnElements = new Array();
  strClassName = strClassName.replace(/\-/g, '\\-');
  var oRegExp = new RegExp('(^|\\s)' + strClassName + '(\\s|$)');
  var oElement;
  for (var i = 0; i < arrElements.length; i++) {
    oElement = arrElements[i];
    if (oRegExp.test(oElement.className)) {
      arrReturnElements.push(oElement);
    }
  }
  return (arrReturnElements)
}