function gotoAnchor(link, isObj) {
   var linkHref = typeof link == "object" ? link.href : link;
   if (linkHref) {
      var anchorName = (linkHref.substring(linkHref.indexOf("#") + 1));
      var anchor = document.getElementById(anchorName);
      if (anchor) {
         anchor.onclick = accordion.process(anchor.parentNode);
      }
   }
}

// modified from http://www.leigeber.com/2008/04/lightweight-javascript-and-css-accordion/
var accordion = function() {
	var array = [];
	var speed = 2;
	var timer = 50;
	return{
		init:function(t, c) {
			var s,ds,l,i,y;
			s = document.getElementById(t);
			if (null != s) {
				ds = s.getElementsByTagName('div');
				l = ds.length;
				i = y = 0;
				for (i = 0; i < l; i++) {
					var d,did;
					d = ds[i];
					did = d.id;
					if (did.indexOf("header") != -1) {
						y++;
						d.onclick = new Function("accordion.process(this)");
					} else if (did.indexOf("content") != -1) {
						array.push(did.replace('content-', ''));
						d.maxh = d.offsetHeight;
						if (c != y) {
							d.style.height = '0px';
							d.style.display = 'none'
						}
						else {
							d.style.display = 'block'
						}
					}
				}
			}
		},
		process:function(d) {
			var cl,i;
			cl = array.length;
			i = 0;
			for (i; i < cl; i++) {
				var s,h,c,cd;
				s = array[i];
				h = document.getElementById('header-' + s);
				if (h.className.length > 0) {
					h.className = h.className.replace("opened", "closed");
				} else {
					h.className = "closed";
				}
				c = 'content-' + s;
				cd = document.getElementById(c);
				clearInterval(cd.timer);
				if (h == d && cd.style.display == 'none') {
					cd.style.display = 'block';
					this.islide(c, 1);
				} else if (cd.style.display == 'block') {
					this.islide(c, -1)
				}
			}

			if (d.className.length > 0) {
				d.className = h.className.replace("closed", "opened");
			} else {
				d.className = "opened";
			}
		},
		islide:function(i, d) {
			var c,m;
			c = document.getElementById(i);
			m = c.maxh;
			c.direction = d;
			c.timer = setInterval("accordion.slide('" + i + "')", timer)
		},
		slide:function(i) {
			var c,m,h,dist;
			c = document.getElementById(i);
			m = c.maxh;
			h = c.offsetHeight;
			dist = (c.direction == 1) ? Math.round((m - h) / speed) : Math.round(h / speed);
			if (dist <= 1) {
				dist = 1
			}
			c.style.height = h + (dist * c.direction) + 'px';
			c.style.opacity = h / c.maxh;
			c.style.filter = 'alpha(opacity=' + (h * 100 / c.maxh) + ')';
			if (h < 2 && c.direction != 1) {
				c.style.display = 'none';
				clearInterval(c.timer);
			} else if (h > (m - 2) && c.direction == 1) {
				clearInterval(c.timer)
			}
		}
	};
}();