// Copyright 2003-2010 Richard W. Adams

var autostart;
var nextPage;
var pageMidiFile;
var playCalled = false;
var prevPage;
var root;

//------------------------------------------------
function arrows(position) {
// PURPOSE	Draw navigational arrows to home, previous & next pages
// ENTRY	Init() has been called

	var className = "navigation";
	if (position != null) {
		className += ' ' + position;
	}
	write('<p class="' + className + '"><a href="' + prevPage + '" onMouseOver="return stat(\'Go to previous page\')" onMouseOut="return erase()"><img src="' + root + '/img/a/ar-left.gif" title=" Back " width="30" height="30"></a> ');
	write('<a href="' + root + 'index.htm#lk" onMouseOver="return stat(\'Go to Cyber Hymnal home page\')" onMouseOut="return erase()"><img src="' + root + 'img/a/ar-toc.gif" title=" Home " width="30" height="30" /></a> ');
	write('<a href="' + nextPage + '" onMouseOver="return stat(\'Go to next page\')" onMouseOut="return erase()"><img src="' + root + '/img/a/ar-right.gif" title=" Next " width="30" height="30"></a></p>');
}
//------------------------------------------------ 
function bio(text, file) { 
// PURPOSE		Draw link to a biography page 
// ENTRY		Init() has been called 
// ARGUMENTS	text  Link text to display 
//				file  Biography file page (without extension, which must be .htm) 

	if (argsOk(arguments.callee, true, false)) 	{
		write('<a href="' + root + 'bio/' + file + '.htm" target="_blank" ');
		write('onMouseOver="return stat(\'See biography (opens new window/tab)\')" ');
		write('onMouseOut="return erase()">' + text + '</a>');
	}
} 
//------------------------------------------------
function doUnload() {
	closeCitation();
	closeChild();
	return true;
}
//------------------------------------------------
function end() {
// PURPOSE Draw end of the page
// ENTRY	Init() has been called
	arrows();
	write('<p class="footer" title="When this page last changed">' + document.lastModified + '</p>');
}
//------------------------------------------------
function fir(
	quote, 		// Scripture quote
	verse,		// Chapter & verse
	alternate	// Alternate title (optional)
){
	window.onunload = function(){doUnload();}
	play();
	setDefaultLanguage();
	arrows("top");
	
	var title = document.getElementsByTagName("title").item(0).text;
	var array = title.split('(');
	var text = array[0].toUpperCase();	// Don't capitalize anything in parentheses
	if (array.length > 1) {
		text += '(' + array[1];
	}
	var header = document.createElement("h1");
	header.appendChild(document.createTextNode(text));
	document.body.appendChild(header);
	if (alternate != null) {
		write("<h2>" + alternate + "</h2>");
	}
	write('<marquee>&ldquo;' + quote + '&rdquo; ' + verse + '</marquee><hr />')
}
//----------------------------------------------------
function getAutostartCookie() {
	var cookieValue = "true";
	var prefix = AUTOSTART_COOKIE + "=";
	var cookieStartIndex = document.cookie.indexOf(prefix);
	if (cookieStartIndex != -1) {
		var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
		if (cookieEndIndex == -1) {
			cookieEndIndex = document.cookie.length;
		}
		cookieValue = unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
	}
	return cookieValue;
}
//------------------------------------------------
function init(level, midi, prev, next)
// PURPOSE		Page initialization
// ARGUMENTS	level = Number of levels below site root
//				midi = MIDI file name (without extension, which must be .mid)
//				prev = Previous page's URL (without extension, which must be .htm)
//				next = Next page's URL (without extension, which must be .htm)
{
	if (argsOk(arguments.callee, true, false)) {
		if (window != top) {
			top.location.href = location.href;
		}
	  	root = "";
	  	for (i = 0; i < level; ++i) {
		  	root += "../"
		}
		pageMidiFile = root + "mid/" + midi + ".mid";
		prevPage = prev + ".htm";
		nextPage = next + ".htm";
		write('<link href="' + root + 'sty/tch-hymn.css" rel="stylesheet" type="text/css" />');
		autostart = getAutostartCookie();
		if (autostart == "true") {
			write('<bgsound src="' + pageMidiFile + '" loop="infinite">');
		}
		delay = location.search.toString();
		if (delay != "") {
			delay = delay.substring(1, delay.length);
			write('<meta http-equiv="refresh" content="' + delay + ';url=' + nextPage + '?' + delay + '">');
		}
	}
}
//------------------------------------------------
function lmp(pdf) { music(null, pdf); }
//------------------------------------------------
function music() {
	try {
		var midi, nwc, pdf, men;
		switch (arguments.length) {
			case 2 :
				midi = pageMidiFile;
				nwc  = arguments[0];
				pdf  = arguments[1];
				break;
			case 3 :
				midi = root + "mid/" + arguments[0]+ ".mid";
				nwc  = arguments[1];
				pdf  = arguments[2];
				break;
			case 4 :
				midi = root + "mid/" + arguments[0]+ ".mid";
				nwc  = arguments[1];
				pdf  = arguments[2];
				men  = arguments[3];
				break;
			default :
				throw ("Bad music argument count: " + arguments.length);
		}
		var output = '<span class="musicLinks"> (';
		output += '<a href="' + midi + '" onmouseover="return stat(\'Open MIDI file\')" onMouseOut="return erase()">MI&shy;DI</a>';
		if (nwc != null) {
			output += ', <a href="' + root + 'nwc/' + nwc + '.nwc"' + ' onmouseover="return stat(\'See sheet music (Noteworthy Composer format)\')" onmouseout="return erase()">NWC</a>';
		}
		if (pdf != null) {		
			output += ', <a href="' + root + 'pdf/' + pdf + '.pdf"' + ' onmouseover="return stat(\'See sheet music (Adobe PDF format)\')" onmouseout="return erase()" target="_blank">PDF</a>';
		}
		if (men != null) {		
			output += ', <a href="' + root + 'pdf/' + men + '.pdf"' + ' onmouseover="return stat(\'Music for male voices (Adobe PDF format)\')" onmouseout="return erase()" target="_blank">men</a>';
		}
		output += ')</span>';
		write(output);
	}
	catch (error) {
		alert(error);
	}
}
//------------------------------------------------
// PURPOSE	Insert embedded MIDI object for browsers that need it, & insert autoplay HTML when appropriate.
// ENTRY	Init() has been called
function play() {
	if (playCalled) {
		error("Play() called multiple times");
	} else {
		playCalled = true;
		if (navigator.appName == "Netscape" && autostart == "true") {
 			write('<embed src="' + pageMidiFile + '" autostart="true" height="18" loop="true" repeat="true">');
 		}
 		if (location.search.toString() != "") {
 			write('<p class="autoplay">AUTOPLAY</p>');
 		}
	}
}
//------------------------------------------------
function xlt(name, link, language, initLower)
/*
PURPOSE		Show translator
ARGUMENTS	name		Translator's name
			link		Biography page (optional)
			language	The language from which translated
			initLower	True = First letter should be lower case. Optional; default = true
*/
{
	write(initLower == false ? 'T' : 't');
	write('rans&shy;lat&shy;ed ');
	if (language == null) {
		write('into ');
	} else {
		write('from ' + language + ' to ');
	}
	write('Eng&shy;lish by ');
	if (link == null) {
		write(name);
	} else {
		write('<script type="text/javascript">bio("' + name + '","' + link + '")</script>');
	}
}
//------------------------------------------------
