var etMenu = {
	/* TWEAKABLES */
	menuId:"vertebrae",
	dropdownClassName:"bubble",
	timeout:100,
	/* INIT VARS */
	close_t:null,
	curMenuItem:null,
	initd:false,
	/* */
	init: function () {
		if(!etMenu.initd && document.getElementById && document.getElementById(etMenu.menuId)){
			var container = document.getElementById(etMenu.menuId);
			var as = container.getElementsByTagName('a');
			for(j in as){
				if (as[j] && as[j].nodeType && as[j].nodeType == 1 && as[j].parentNode.parentNode.id == etMenu.menuId){
					var keyId = as[j].id ? as[j].id : "etMenuDropdown_"+j;
					as[j].id = keyId;
					var divs = as[j].parentNode.getElementsByTagName('div');
					var menuDiv = false;
					for(i in divs){
						if (divs[i] && divs[i].className && divs[i].className == etMenu.dropdownClassName){
								menuDiv = divs[i];
						}
					}
					if(menuDiv){
						menuDiv.id = keyId+"_d";
						document.getElementById(keyId+"_d").style.display = "none"
						if(menuDiv.addEventListener){
							as[j].addEventListener('mouseover', function(){etMenu.show(this.id);},false);
							as[j].addEventListener('mouseout', function(){etMenu.startCloseTimer();},false);
							menuDiv.addEventListener('mouseover', function(){etMenu.cancelCloseTimer();},false);
							menuDiv.addEventListener('mouseout', function(){etMenu.startCloseTimer();},false);
						} else {
							as[j].onmouseover = new Function('etMenu.show(this.id);');
							as[j].onmouseout = etMenu.startCloseTimer;
							menuDiv.onmouseover = etMenu.cancelCloseTimer;
							menuDiv.onmouseout = etMenu.startCloseTimer;
						}
						var arrow = document.createElement('div');
						var topCorners =  document.createElement('div');
						var bottomCorners = document.createElement('div');
						arrow.className = "arrow";
						topCorners.className = "top corners";
						bottomCorners.className = "bottom corners";
						menuDiv.appendChild(arrow);
						menuDiv.appendChild(topCorners);
						menuDiv.appendChild(bottomCorners);
					}
				}
			}
		etMenu.initd = true;
		}
	},
	//these functions rewritten from concept as above.
	show: function(id){
		if (id){
			etMenu.cancelCloseTimer();
			etMenu.hide('current');
			etMenu.curMenuItem = id;
			document.getElementById(id).className = "hovered";
			document.getElementById(id+"_d").style.display = "block";
			document.getElementById('vertebrae_instructions').style.display = "none";
		}
	},
	hide: function(id){
		if (id == "current"){
			id = etMenu.curMenuItem;
		}
		if (id){
			document.getElementById(id).className = "";
			document.getElementById(id+"_d").style.display = "none";
			document.getElementById('vertebrae_instructions').style.display = "block";
			etMenu.curMenuItem = null;
		}
	},
	startCloseTimer: function(){
		etMenu.close_t = window.setTimeout("etMenu.hide('current')", etMenu.timeout);
	},
	cancelCloseTimer: function(){
		if(etMenu.close_t) {
			window.clearTimeout(etMenu.close_t);
			etMenu.close_t = null;
		}
	}
}

var slide = {
	/* Tweakables */
	id: "coda", /*wrapper id containing only <img>s */
	/* inits */
	initd: false,
	currentlyVisible: 0,
	panels: 0,
	/* go */
	init: function(){
		if (!slide.initd){
			if(document.getElementById && document.getElementById(slide.id)){
				var container = document.getElementById(slide.id);
				animate.jump(slide.id, {ind:0})
				var divs = container.getElementsByTagName('div');
				for(z in divs){
					if (divs[z].style && divs[z].className == 'panel'){
						slide.panels++;
					}
				}
				slide.initd = true;
				if (location.hash && location.hash.replace(/[^\d]*/, '') && !slide.initd2){
					slide.jumpto(Number(location.hash.replace(/[^\d]*/, '')));
				}

			}
		}
	},
	jumpto: function(n){
		slide.init();
		n = slide.nextprev(n);
		if(slide.currentlyVisible != n){
			location.hash = '#'+n;
			document.getElementById("s_"+slide.currentlyVisible).className = "";
			document.getElementById("s_"+n).className = "selected";
			try {document.getElementById("flash_movie_"+n).sendEvent("STOP");} catch (e){/*drop*/}
			try {document.getElementById("flash_movie_"+n).getElementsByTagName('object')[0].sendEvent("STOP");} catch (e){/*drop*/}
			slide.currentlyVisible = n;
			animate.slide(slide.id, {ind:n});
		}
	},
	nextprev: function(n){
		var ret = n;
		var cur = Number(slide.currentlyVisible);
		switch(n){
			case 'next':
				ret = cur == slide.panels - 1 ? 0 : cur + 1;
			break;
			case 'prev':
				ret = cur == 0 ? slide.panels - 1 : cur - 1;
			break;
		}
		return ret;
	}
}

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 {
		return false;
	}
	return true;
};

function attachEventListener(target, eventType, functionRef, capture) {
    if (typeof target.addEventListener != "undefined") {
        target.addEventListener(eventType, functionRef, capture);
    } else if (typeof target.attachEvent != "undefined") {
        target.attachEvent("on" + eventType, functionRef);
    } else {
        return false;
    }
    return true;
};

addLoadListener(etMenu.init);
etMenu.init();
addLoadListener(slide.init);
slide.init();
