var today = new Date();
var expires = new Date(today.getTime() + (56 * 86400000));
var AudioEnabled = false
var CurrentTopic = 1
var LastMajorTopic = 0

try
{
	var startAtBookmark = 1*document.location.hash.substr(1)
	if (startAtBookmark==0)
		startAtBookmark=1
}
catch (e)
{
	var startAtBookmark = 1
}

var AudioBackgroundColors = new Array ("", "FFFF67", "FFFF67", "FFFFFF", "000000", "000000", "2244A8")
var AudioForegroundColors = new Array ("", "000000", "003497", "004588", "FFFFFF", "FFFF67", "F3F57E")


function SetCookie (sName, sValue)
{
	document.cookie = sName + "=" + escape(sValue) + "; expires=" + expires.toGMTString()
}

function InitAudioOptions ()
{
	AudioEnabled =  (GetCookie ('playaudio') == "true")
	window.setTimeout ("DisplayAudioSetting ()", 10)
	FindLastMajorTopic ()
}

function TurnSoundOn (turnOn)
{
	AudioEnabled = turnOn
	DisplayAudioSetting ()
	SetCookie ('playaudio', turnOn)
}

function DisplayAudioSetting ()
{
	var On_Button = document.getElementById ("Sound_ON")
	var Off_Button = document.getElementById ("Sound_OFF")
	if (AudioEnabled)
	{
		On_Button.style.fontWeight = "bold"
		Off_Button.style.fontWeight = "normal"
		window.setTimeout ("StartAudio ()", 10)
	}
	else
	{
		stopPlaying ()
		On_Button.style.fontWeight = "normal"
		Off_Button.style.fontWeight = "bold"
	}
}

function SetAudioColor ()
{
	for (var i=0;i<flashObjectList.length;i++)
		flashObjectList[i].setColors(AudioBackgroundColors[styleOptions[0]],AudioForegroundColors[styleOptions[0]]);
}

function AudioColor ()
{
	return "bgcolor=" + AudioBackgroundColors[styleOptions[0]] + "&frontcolor=" + AudioForegroundColors[styleOptions[0]]
}

function StartAudio ()
{
	try
	{
		if (AudioEnabled)
			if ((!isNaN(startAtBookmark))&&(startAtBookmark>0))
				if ((AudioBookmarks!=null)&&(!isNaN(AudioBookmarks[startAtBookmark]))&&(AudioBookmarks[startAtBookmark]>0))
					Play (flashObjectList [AudioBookmarks[startAtBookmark]-1].id)
	}
	catch (e)
	{
	}
}




if (navigator.userAgent.indexOf("MSIE")!=-1){
	var flashObjectList = document.getElementsByTagName("OBJECT"); 
} else {
	var flashObjectList = document.getElementsByTagName("EMBED"); 
}

function SetVolume(p) {
	for(var i=0;i<flashObjectList.length;i++){   
		flashObjectList[i].updateVolume(p);
	}
}

function stopPlaying(){
	for(var i=0;i<flashObjectList.length;i++){   
		flashObjectList[i].stopPlaying();
	}
}

function Play(id){
	stopPlaying();
	for(var i=0;i<flashObjectList.length;i++){   
		if (flashObjectList[i].id==id){
			flashObjectList[i].playAudio();
		}
	}
}

function ApplySettings(){
	var bg = document.getElementById("bgcolor").value;
	var front = document.getElementById("frontcolor").value;
	for(var i=0;i<flashObjectList.length;i++){   
		flashObjectList[i].setColors(bg,front);
	}
}

function Highlight (obj)
{
	obj.className = "OutlineLinkSelected"
	obj2 = obj.parentNode.parentNode
	obj2.className = "OutlineSectionHighlight"
}
function Dehighlight (obj)
{
	obj.className = "OutlineLink"
	obj2 = obj.parentNode.parentNode
	obj2.className = "OutlineSection"
}



function NavigateLink (e)
{
 	if (window.event)
		e = window.event;  
	var evtSrc = e.srcElement? e.srcElement : e.target; 
	var obj = evtSrc
	while ((obj.tagName != "BODY") && (obj.tagName != "A"))
		obj = obj.parentNode
	if (obj.tagName == "A")
	{
		var n = obj.hash.substr(1)
		if (n == "top")
		{
			CurrentTopic = 1
		}
		if (!isNaN(n))
		{
			CurrentTopic = n
			if (AudioBookmarks != null)
			{
				var n = 1*obj.hash.substr(1)
				CurrentTopic = n
				stopPlaying()
				if ((!isNaN(AudioBookmarks[n]))&&(AudioBookmarks[n]>0))
				{
					if (AudioEnabled)
						Play (flashObjectList [AudioBookmarks[n]-1].id)
				}
			}
		}
	}
}

function KeypressHandler (e)
{
 	if (window.event)
		e = window.event;  
	var evtSrc = e.srcElement? e.srcElement : e.target; 
	if (evtSrc.tagName == "INPUT")
		return

	switch (e.keyCode)
	{
		case 38: //up arrow - go to top
			CurrentTopic = 0
			document.location = "#top"
			stopPlaying()
			if ((!isNaN(AudioBookmarks[1]))&&(AudioBookmarks[1]>0))
			{
				if (AudioEnabled)
					Play (flashObjectList [AudioBookmarks[1]-1].id)
			}
			break

		case 40: //down arrow - go to next section(or audio)
			if (NextAudioTopic ())
			{
				document.location = "#" + CurrentTopic
				stopPlaying()
				if ((!isNaN(AudioBookmarks[CurrentTopic]))&&(AudioBookmarks[CurrentTopic]>0))
				{
					if (AudioEnabled)
						Play (flashObjectList [AudioBookmarks[CurrentTopic]-1].id)
				}
			}
			break

		case 37: // left arrow - go to previous topic
			if (CurrentTopic>1)
				document.location = "#" + (--CurrentTopic)
			else
			{
				CurrentTopic = 0
				document.location = "#top"
			}
			stopPlaying()
			if ((!isNaN(AudioBookmarks[CurrentTopic]))&&(AudioBookmarks[CurrentTopic]>0))
			{
				if (AudioEnabled)
					Play (flashObjectList [AudioBookmarks[CurrentTopic]-1].id)
			}
			break

		case 39: // right arrow - go to next topic
			if (CurrentTopic<(MajorSections.length-1))
			{
				document.location = "#" + (++CurrentTopic)
				stopPlaying()
				if ((!isNaN(AudioBookmarks[CurrentTopic]))&&(AudioBookmarks[CurrentTopic]>0))
				{
					if (AudioEnabled)
						Play (flashObjectList [AudioBookmarks[CurrentTopic]-1].id)
				}
			}
			break

		case 13: // return - to to topic menu
			document.location = "?topics.html"
			break

		default:

	}
}

function FindLastMajorTopic ()
{
	var i = MajorSections.length-1
	while ((0<=i)&&(MajorSections[i]==0))
		i--
	LastMajorTopic = i
}

function NextMajorTopic ()
{
	if (CurrentTopic>=MajorSections.length)
		return false
	var i = CurrentTopic
	i++
	while ((i<MajorSections.length)&&(MajorSections[i]==0))
		i++
	if (i<MajorSections.length)
	{
		CurrentTopic = i
		return true
	}
	return false
}

function NextAudioTopic ()
{
	if (CurrentTopic>=AudioBookmarks.length)
		if (CurrentTopic>=LastMajorTopic)
		return false
	var i = CurrentTopic
	i++
	while ((i<AudioBookmarks.length)&&(AudioBookmarks[i]==0))
		i++
	if (i<AudioBookmarks.length)
	{
		CurrentTopic = i
		return true
	}
	else
	{
		//** no more audio, go to last major topic (resources)
		if (i<=LastMajorTopic)
		{
			CurrentTopic = LastMajorTopic
			return true
		}
	}
	return false
}

