//modified from http://www.robertnyman.com/index.php?p=256
document.getElementsByClassName = function (className, tag) {
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	//var elm = elm || document;
	elm = this;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}


/**
 *	from http://www.ditchnet.org/wp/2005/04/02/6/
 *	@access static
 *	@param HTMLElement target
 *	@param string type
 *	@param Function callback
 *	@param boolean captures
 */
//myAddEventListener = function (target,type,callback,captures) {
myAddEventListener = function (o) {
	var target = o.target;
	var type = o.type;
	var callback = o.callback;
	var captures = o.captures;
	if (target.addEventListener) {
		// EOMB
		target.addEventListener(type,callback,captures);
	} else if (target.attachEvent) {
		// IE
		target.attachEvent('on'+type,callback,captures);
	} else {
		// IE 5 Mac and some others
		target['on'+type] = callback;
	}
}

//all answer panes
var sets = null;

getFaqImage = function (set) {
  return set.getElementsByTagName('img')[0];
}

getFaqAns = function (set) {
  return set.getElementsByTagName('div')[0];
}

changeSet = function (set, cmd) {
  var img = getFaqImage(set);
  var ans = getFaqAns(set);
  switch (cmd) {
    case 'expand':
	  img.src = img.src.replace('plus', 'minus');
	  ans.style.display = 'block';
	  break;
    case 'collapse':
      img.src = img.src.replace('minus', 'plus');
	  ans.style.display = 'none';
	  break;
  }
}


toggleFaq = function (n) {
  var set = document.getElementById('q' + n);
  if (!set) return;
  
  //if not defined before, define it now
  if (!sets) sets  = document.getElementsByClassName('qset', 'div');
  
  var img = getFaqImage(set);
  var isCollapsed = /plus/.test(img.src);
  if (isCollapsed) {
	changeSet(set, 'expand');
  } else {
	changeSet(set, 'collapse');
  }
  
  //collapse all others
  for (var i=0; i<sets.length; i++) {
    if (sets[i] != set) { //not current  ans
	  changeSet(sets[i], 'collapse');
	}
  }
}


collapseAllFaq = function () {
  //if not defined before, define it now
  if (!sets) sets  = document.getElementsByClassName('qset', 'div');

  for (var i=0; i<sets.length; i++) {
	  changeSet(sets[i], 'collapse');
  }

}

myAddEventListener(
	{ 'target':window,
	  'type':'load',
	  'callback':collapseAllFaq,
	  'captures':false});