var correct_id;
var over_id;
var browser="";
//var browser_is_firefox=false;
//var browser_is_iexplorer=false;
//var browser_is_opera=false;
//var browser_is_safari=false;
var image="";
var initial_image="";
var picture_id;
var opacity=100;
var timer;
var time=4;
var link_element=null;
var address="javascript:;";
var mouseX=0;
var mouseY=0;
var glossary_element=new Array();
var word="";
var description="";
var linkElement=null;
var delay=null;

if(navigator.userAgent.indexOf("Firefox")!=-1)document.onmousemove=getMouseXY;

function glossaryElement(word,description){
	this.word=word
	this.description=description
}

function addElement(word,description){
	glossary_element[glossary_element.length]=new glossaryElement(word,description);
}

function onMenu(element){
	id=element.id
	showMenu(id)
}

function showMenu(id){
	adjustIds(id)
	document.getElementById(over_id).style.visibility="visible"
	document.getElementById(correct_id).style.visibility="visible"
}

function offMenu(element){
	id=element.id
	hideMenu(id)
}

function hideMenu(id){
	adjustIds(id)
	document.getElementById(over_id).style.visibility="hidden"
	if(correct_id) document.getElementById(correct_id).style.visibility="hidden"
}
	
function adjustIds(id) {
	correct_id=id
	if(id.indexOf("_")!=-1){
		correct_id=id.substring(0,id.indexOf("_"))
	}
	over_id=correct_id+"_over"
	correct_id+="_menu"
}

function highlightItem(element){
	element.style.backgroundColor='#D6DBDF'
	element.style.color='#0066CC'
	element.style.borderColor='#5898D9'
}
	
function normalItem(element) {
	element.style.backgroundColor='transparent'
	element.style.color='#000000'
	element.style.borderColor='#F7F9FB'
}

function toLink(element_link){
	window.location=element_link
}

function swapImage(element){
	initial_image=element.src
	picture_id=element.id
	image=initial_image.substring(0,initial_image.indexOf(".png"))+"%20over.png"
	document.getElementById(picture_id).src=image
}

function restoreImage(){
	document.getElementById(picture_id).src=initial_image;
}


function showTips(element) {
	linkElement=element;
	getMouseXY(null);
	delay=setTimeout('displayTips()',500);
}


function cancel() {
	clearTimeout(delay);
}


function displayTips() {
	element=linkElement;
	var message="";
	var linkword=element.innerHTML;
	if(linkword.indexOf("(MIDI)")!=-1)linkword="MIDI";
	for(var n=0;n<glossary_element.length;n++) {
		if(glossary_element[n].word.toLowerCase().indexOf(linkword.toLowerCase())!=-1) {
			message=glossary_element[n].description;
			break;
		}
	}
	if(link_element!=null&&link_element!=element)time=5;
	link_element=element;
	address=element.href;
	var tipBox=document.getElementById('tipBox')
	tipBox.style.visibility='visible';
	reshowTips(tipBox);
	var x=mouseX+15;
	if(x>643)x=643;
	tipBox.style.left=x+"px";
	tipBox.style.top=mouseY+15+"px";
	var clickString="click to find out more";
	if(message.indexOf(clickString)!=-1) {
		var index=message.indexOf(clickString);
		var temp=message.substring(0,index-3);
		clickString=message.substring(index).replace(".","");
		message=temp;
	}
	else clickString="click to find out more";
	var clickText=".. <span id='highlight'>"+clickString+"</span>.";
	if(address!="javascript:;")tipBox.style.cursor="pointer";
	else {
		tipBox.style.cursor="default";
		clickText="";
	}
	var adjust="<div class='tipTop'></div><div id='tips'><div id='tipTopBox'><div id='tipTitle'>"+linkword+"</div><div id='tipDots'>&bull;&nbsp;&bull;&nbsp;&bull;&nbsp;&bull;&nbsp;&bull;&nbsp;&nbsp;</div><div id='tipExit'>closing</div></div>"+message+clickText;
	message=adjust+"</div><div class='tipBot'></div>";
	tipBox.innerHTML=message;
	startHide();
}


function reshowTips(tipBox) {
	if(tipBox.style.visibility=='visible') {
//		if(timer)clearTimeout(timer);
		if(timer)clearInterval(timer);
		if(document.getElementById('tipExit')) {
			var contents="";
			for(var n=0;n<time;n++)contents+="&bull;&nbsp;";
			contents+="&nbsp;";
			document.getElementById('tipDots').innerHTML=contents;
			document.getElementById('tipExit').innerHTML="holding";
			if(document.getElementById('highlight')) {
				document.getElementById('tipTitle').style.color="#FF3333";
				document.getElementById('highlight').style.color="#FF3333";
			}
		}
	}
}


function Link() {
	if(address!="javascript:;")window.location=address;
}


function startHide() {
	if(timer)clearInterval(timer);
	var contents="";
	for(var n=0;n<time;n++)contents+="&bull;&nbsp;";
	contents+="&nbsp;";
	document.getElementById('tipDots').innerHTML=contents;
	document.getElementById('tipExit').innerHTML="closing";
	document.getElementById('tipTitle').style.color="#295969";
	if(document.getElementById('highlight'))document.getElementById('highlight').style.color="#295969";
	timer=setInterval('checkTime()',1000);
}


function checkTime() {
	var contents="";
	if(time>0) {
		time--;
		for(var n=0;n<time;n++)contents+="&bull;&nbsp;";
	}
	else {
		clearInterval(timer);
		hideTips();
		time=4;
	}
	contents+="&nbsp;";
	document.getElementById('tipDots').innerHTML=contents;
	document.getElementById('tipExit').innerHTML="closing";
}


function hideTips() {
	document.getElementById('tipBox').style.visibility="hidden";
	address=null;
}


function getMouseXY(e) { 
  if(!e)e=window.event; // works on IE, but not NS (we rely on NS passing us the event)
  if(e) { 
    if(e.pageX) { // this doesn't work on IE6!! (works on FF,Moz,Opera7)
      mouseX=e.pageX;
      mouseY=e.pageY;
    }
    else if(e.clientX) { // works on IE6,FF,Moz,Opera7
			if(document.body.scrollTop) {
				mouseX=e.clientX+document.body.scrollLeft;
				mouseY=e.clientY+document.body.scrollTop;
			}
			else if(document.documentElement) {
				mouseX=e.clientX+document.documentElement.scrollLeft;
				mouseY=e.clientY+document.documentElement.scrollTop;
			}
    }  
  }
}


function loaded() {
	document.getElementById('blink').innerHTML='[Note: All of the Flash audio buttons are now ready to play.]';
	document.getElementById('blink').style.textDecoration='none';
}