// Adds a Listener to your functions

function addLoadListener(fn)
{
  if (typeof window.addEventListener != 'undefined')
  {
    window.addEventListener('load', fn, false);
  }
  else if (typeof document.addEventListener != 'undefined')
  {
    document.addEventListener('load', fn, false);
  }
  else if (typeof window.attachEvent != 'undefined')
  {
    window.attachEvent('onload', fn);
  }
  else
  {
    var oldfn = window.onload;
    if (typeof window.onload != 'function')
    {
      window.onload = fn;
    }
    else
    {
      window.onload = function()
      {
        oldfn();
        fn();
      };
    }
  }
}

// Add Example Function to main Listener function
addLoadListener(makeAllInactive);
addLoadListener(makeActive);

var activeAccordion;

// Turns off all tabs - needed as the first tab will be set to active for non-javascript browsers.
function makeAllInactive() {
	var contentGroup = getElementsByClassName(document, 'div', 'accordion_content');
	//var accordionMarkers = getElementsByClassName(document, 'img', 'accordion_marker');
	for (i = 0; i < contentGroup.length; i++) {
		contentGroup[i].style.display = "none";
		// Use for animation
		//contentGroup[i].style.height = "0px";
		//accordionMarkers[i].setAttribute('src', 'images/arrow_right.gif');
	}
}

// Adds a listener to each menu item.
function makeActive() {
	var menuGroup = getElementsByClassName(document, 'a', 'accordion_link');
	for (i = 0; i < menuGroup.length; i++) {
		menuGroup[i].onclick = function() {
			makeAllInactive();
			if (activeAccordion != this.id) {
				var activeURL = document.getElementById(this.id);
				document.getElementById(this.id + '_content').style.display = "block";
				// Use for animation
				//document.getElementById(this.id + '_content').style.height = "auto";
				//document.getElementById(this.id + '_marker').setAttribute('src', 'images/arrow_down.gif');
				activeAccordion = this.id;
			} else {
				activeAccordion = '';
			}
			scroll(0,0);
			return false;
		};
	}
	
	var collapseGroup = getElementsByClassName(document, 'a', 'collapse_link');
	for (i = 0; i < collapseGroup.length; i++) {
		collapseGroup[i].onclick = function() {
			makeAllInactive();
			activeAccordion = '';
			scroll(0,0);
			return false;
		};
	}
}

/*
    Written by Jonathan Snook, http://www.snook.ca/jonathan
    Add-ons by Robert Nyman, http://www.robertnyman.com
*/
function getElementsByClassName(oElm, strTagName, strClassName) {
	var arrElements = (strTagName == "*" && document.all)? document.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)
}

// Push and Splice support for IE 5
Array.prototype.push = function() {
	for (var i = 0; i < arguments.length; i++) {
		this[this.length] = arguments[i];
	}
	return arguments[i - 1];
};

Array.prototype.splice = function(a, b) {
	var tmp = [];
	for (var i = a + b; i < this.length; i++) {
		tmp[tmp.length] = this[i];
	}
	var rem = [];
	for (i = a; i < a + b; i++) {
		rem[rem.length] = this[i];
	}
	this.length = a;
	for (i = 2; i < arguments.length; i++) {
		this[this.length] = arguments[i];
	}
	for (i = 0; i < tmp.length; i++) {
		this[this.length] = tmp[i];
	}
	return rem;
};

