//////////////////////////////////////////////////////
// Name: glossary.js
// Requires: the sarissa js files, generic_mouse.js
//////////////////////////////////////////////////////

var path_to_glossary = "includes/glossary.xml";

glossaryXmlDoc = Sarissa.getDomDocument();
glossaryXmlDoc.async = false;
glossaryXmlDoc.load(path_to_glossary);

function getTerm(term, item, ev)
{
	//Getting mouse position
	var mouseOffset = getMouseOffset(item, ev);
	var mousePos = mouseCoords(ev);
	
	//Extracting term from the xml
	var glossary_term = glossaryXmlDoc.selectNodes("glossary/term[@id='"+term+"']/name");
	var definition 	  = glossaryXmlDoc.selectNodes("glossary/term[@id='"+term+"']/definition");

	var random_num= Math.floor(Math.random()*500);

	var glossary_box = document.createElement('DIV');
	glossary_box.className = 'glossary';
	glossary_box.id = 'glossary' + random_num;
	glossary_box.style.display = 'none';
	glossary_box.style.position = 'absolute';
	glossary_box.style.top = mousePos.y - mouseOffset.y - 200 + "px";
	glossary_box.style.left = mousePos.x - 300 + "px";


		
	
	var glossary_header = document.createElement('DIV');
	glossary_header.className = 'glossary_header';
	glossary_header.id = 'glossary_header' + random_num;
	glossary_header.innerHTML = '<div class="glossary_close" onclick="document.getElementById(\'glossary' + random_num+ '\').style.display = \'none\';">&nbsp;&nbsp;</div>';

	var glossary_text = document.createElement('DIV');
	glossary_text.id = 'glossary_text' + random_num;
	glossary_text.className = 'glossary_text';
	if(glossary_term.length > 0){
		glossary_text.innerHTML = 	"<strong style='color: #660000;'>" + 
									Sarissa.getText(glossary_term[0], 0) + 
									":</strong><br /> " + 
									Sarissa.getText(definition[0], 0);
	}
	else{
		glossary_text.innerHTML = "Term Not Found";	
	}




	glossary_box.appendChild(glossary_header);
	glossary_box.appendChild(glossary_text);
	document.getElementById('container').appendChild(glossary_box);


	makeDraggable(document.getElementById('glossary_header' + random_num),document.getElementById('glossary' + random_num));
	

	document.getElementById('glossary' + random_num).style.display = 'block';

	
	
}

function showWholeGlossary(item, event)
{
	//load xml document
	var xmlDoc 		= Sarissa.getDomDocument();
	xmlDoc.async 	= false;
	xmlDoc.load("includes/glossary.xml");
		
	//load xsl document
	var xslDoc 		= Sarissa.getDomDocument();
	xslDoc.async 	= false;
	xslDoc.load("includes/glossary.xsl");
	
	var processor = new XSLTProcessor();
	processor.importStylesheet(xslDoc);

 	// Transform
	var glossary = processor.transformToDocument(xmlDoc);
	
	


	
	var mouseOffset = getMouseOffset(item, event);
	var mousePos 	= mouseCoords(event);
	
	
	if(!document.getElementById('whole_glossary'))
	{
		var whole_glossary = document.createElement('DIV');
		whole_glossary.id = 'whole_glossary';
		whole_glossary.style.position = 'absolute';
		whole_glossary.style.top = '50px';
		whole_glossary.style.left = '50px';
		whole_glossary.innerHTML = 	'<div id="whole_glossary_header">' +
									'<div id="whole_glossary_close" onclick="document.getElementById(\'whole_glossary\').style.display = \'none\';">&nbsp;&nbsp;</div>' +
									'</div>' +
									'<div id="whole_glossary_text">'+ Sarissa.unescape(new XMLSerializer().serializeToString(glossary)) +'</div>';
		document.getElementById('container').appendChild(whole_glossary);
		makeDraggable(document.getElementById('whole_glossary_header'),document.getElementById('whole_glossary'));
	}
	else
	{
		document.getElementById('whole_glossary').style.display = 'block';	
	}
	
	
	//	document.getElementById('whole_glossary').style.position 	= 'absolute';
	//document.getElementById('whole_glossary').style.top 		= mousePos.y - mouseOffset.y + "px";
	//document.getElementById('whole_glossary').style.left		= mousePos.x + "px";
	//	document.getElementById('whole_glossary').style.top 		= "50px";
	//document.getElementById('whole_glossary').style.left		= "50px";
	//document.getElementById('whole_glossary_text').innerHTML 	= new XMLSerializer().serializeToString(glossary);
	//document.getElementById('whole_glossary').style.display 	= 'block';
}

function showLegal() {
	if(!document.getElementById('legal_statement'))
	{
		var legal_statement = document.createElement('DIV');
		legal_statement.id = 'legal_statement';
		legal_statement.style.position = 'absolute';
		legal_statement.style.top = '550px';
		legal_statement.style.left = '150px';
		legal_statement.innerHTML = 	'<div id="legal_statement_header">' +
									'<div id="legal_statement_close" onclick="document.getElementById(\'legal_statement\').style.display = \'none\';">&nbsp;&nbsp;</div>' +
									'</div>' +
									'<div id="legal_statement_text">'+ 'Training for Bank Directors is an introduction to many topics that bank directors may find useful in carrying out their bank oversight responsibilities. The information presented is intended to apply to a broad variety of banks and is therefore general in nature. It should not be considered the exclusive means of analyzing specific issues that may arise at a bank nor should it be considered exhaustive of the methods of addressing problems. Further, the approaches offered to address specific banking issues should not be construed as supervisory policy or a recommendation that a bank adopt a particular approach to address those issues.' +'</div>';
		document.getElementById('container').appendChild(legal_statement);
		makeDraggable(document.getElementById('legal_statement_header'),document.getElementById('legal_statement'));
	}
	else
	{
		document.getElementById('legal_statement').style.display = 'block';	
	}
}


