// JavaScript Document
//--------------------------------------------------------------------------------------------------
var allNavItems = Array();
var allViewedPages= Array();
var level1toggles = Array();
var popuptoggles = Array();
var currentNavItem = -1;
var pname = GetPageName();
var currentModule = GetModuleNumber(pname);
var currentLesson = GetLessonNumber(pname);
var openLesson = currentLesson;

//--------------------------------------------------------------------------------------------------
function SetActiveLesson() {
	OpenLesson(currentLesson);
}
function OpenLesson(lessonNumber) {
	var el = document.getElementById('lesson' + lessonNumber);
	if (el) {
		toggler = el.parentNode;
		if (!toggler.open) {
			toggler.open = true;
			toggler.toggle();
		}
	}
}
function CloseLesson(lessonNumber) {
	var el = document.getElementById('lesson' + lessonNumber);
	if (el)	{
		toggler = el.parentNode;
		if (toggler.open) {
			toggler.open = false;
			toggler.toggle();
		}	
	}
}
//--------------------------------------------------------------------------------------------------
function SetToggles() {
	 //height effect
	
	// set height toggles of left navigation
	var level1List = getElementsByClassName(document, "ul", "leftnavlevel1");
	var subLists = level1List[0].getElementsByTagName("ul");
	
	for (var i=0; i<subLists.length; i++) {
	
		//subLists[i].style.height = 0;	
		level1toggles[i] = new fx.Height(subLists[i]);
		subLists[i].parentNode.level1toggleIndex = i;
		
	 	subLists[i].parentNode.toggle = function() {
			level1toggles[this.level1toggleIndex].toggle();
	 	}
		
		subLists[i].parentNode.onclick = function() {
			(this.open) ? this.open = false : this.open = true;
			this.toggle();
			CloseLesson(openLesson);
			openLesson = this.childNodes[2].id.substring(6,7);			
		}
	}
	// set opacity toggles of popup pages
	popUps = getElementsByClassName(document, "div", "popUpContainer");
	for (var i=0; i<popUps.length; i++ ) {
		popUps[i].effect = new fx.Opacity(popUps[i]);
	}
	popUps = getElementsByClassName(document, "div", "popUpContainerNarrow");
	for (var i=0; i<popUps.length; i++ ) {
		popUps[i].effect = new fx.Opacity(popUps[i]);
	}	
	popUps = getElementsByClassName(document, "div", "rollUpContainer");
	for (var i=0; i<popUps.length; i++ ) {
		popUps[i].effect = new fx.Height(popUps[i]);
		popUps[i].style.visibility = 'visible';
	}
	popUps = getElementsByClassName(document, "div", "rollUpContainerLong");
	for (var i=0; i<popUps.length; i++ ) {
		popUps[i].effect = new fx.Height(popUps[i]);
		popUps[i].style.visibility = 'visible';
	}		
	var popUpCloseButtons = getElementsByClassName(document, "img", "closeBtn");
	for (var i=0; i<popUpCloseButtons.length; i++) {
		popUpCloseButtons[i].onclick=function() {
			this.parentNode.parentNode.effect.toggle();
			var txtToHide = document.getElementById('mainContentHidden');
			if (txtToHide) {
				toMakeVisible = txtToHide;
				setTimeout('MakeVisible();', 500);
			}
			if (this.parentNode.parentNode.hideScrollBar) {
				// if popup was given fixed height, then must ensure scrollbar disappears (for Mac Firefox)
				var popUp = getElementsByClassName(this.parentNode.parentNode, 'div', 'popUp')[0];
				popUp.style.overflow= 'visible';
				popUp.style.overflowX= 'hidden';
				popUp.style.overflowY= 'hidden';
			}
		}
	}	
	
}	
function MakeVisible() {
	toMakeVisible.style.visibility = 'visible';
}
function PopUpToggle(objID) {
	var obj = document.getElementById('objID');
	if (obj)
	obj.effect.toggle();
}
//--------------------------------------------------------------------------------------------------
function ShowPopUp(fromElement, elID, height) {
	fromElement.style.color = '#999999';
	var el = document.getElementById(elID);
	
	if (el) {	
		el.effect.toggle();
		if (height) {
			// then popup should have a fixed height
			var popUp = getElementsByClassName(el, 'div', 'popUp')[0];
			popUp.style.height = height;
			popUp.style.overflow= 'scroll';
			popUp.style.overflowX= 'hidden';
			el.hideScrollBar = true;
		}
	}
	var txtToHide = document.getElementById('mainContentHidden');
	if (txtToHide) {
		txtToHide.style.visibility = 'hidden';
	}
}
function ShowNextPopup(obj) {

}
function ShowPrevPopup(obj) {

}
function ShowPopDown(elID, height) {
	//alert('showing' + elID);
	var el = document.getElementById(elID);
	if (el) {
		if (height)
			el.style.top = height;
		el.effect.toggle();
		
		var txtToHide = document.getElementById('mainContentHidden');
		if (txtToHide)
			txtToHide.style.visibility = 'hidden';		
	}
}
function HidePopDown(elID) {
	//alert('showing' + elID);
	var el = document.getElementById(elID);
	if (el) {
			el.effect.clearTimer();
			el.style.height = 0;
			
			var txtToHide = document.getElementById('mainContentHidden');
			if (txtToHide)
				txtToHide.style.visibility = 'visible';			
	}
}
function Minimize(el) {
	el.style.height = 0;
}
//--------------------------------------------------------------------------------------------------
// navigation functions
function GetNextPage() {
	for (var i = 0; i<allNavItems.length; i++) {
		if (allNavItems[i] == pname) {
			break;
		}
	}
	if (i < allNavItems.length-1) {
		i++;
		var nextPage = allNavItems[i] + '.html';
		document.location = nextPage;
	}
	else {
		// link to the next module
		moduleNumber = GetModuleNumber(pname);
		if (moduleNumber < 5) { // if not last module
			switch(parseInt(moduleNumber)) {
				case 1: 
					nextPage = 'm02_01_01.html';
					break;
				case 2:
					nextPage = 'm03_01_01.html';
					break;
				case 3:
					nextPage = 'm04_01_01.html';
					break;
				case 4:
					nextPage = 'm05_01_01.html';
					break;
			}
			document.location = nextPage;
		}
	}
}
function GetPrevPage() {
	for (var i = allNavItems.length-1; i > -1; i--) {
		if (allNavItems[i] == pname) {
			break;
		}
	}
	if (i > 0) { 
		i--;
		var prevPage = allNavItems[i] + '.html';
		document.location = prevPage;
	}
	else {
	// link to the previous module
		moduleNumber = GetModuleNumber(pname);
		if (moduleNumber > 1) { // if not last module
			switch(parseInt(moduleNumber)) {
				case 2:
					prevPage = 'm01_01_02.html';
					break;
				case 3:
					prevPage = 'm02_05_01.html';
					break;
				case 4:
					prevPage = 'm03_06_01.html';
					break;
				case 5:
					prevPage = 'm04_09_01.html';
					break;
			}
			document.location = prevPage;
		}	
	}	
}
//--------------------------------------------------------------------------------------------------
function GetPageName () {
	loc = new String(window.document.location);
	pname = loc.substring(loc.lastIndexOf('/')+1, loc.lastIndexOf('.html'));
	return pname;
}
function GetModuleNumber(pname) {
	mnum = pname.substring(2,3)
	return mnum;
}
function GetLessonNumber(pname) {
	lnum = pname.substring(5,6);
	return lnum;
}
//--------------------------------------------------------------------------------------------------
function SetNavigation() {

	if (pname == 'm01_01_01')
		document.getElementById('back').style.display = 'none';
	if (pname == 'm05_01_02')
		document.getElementById('next').style.display = 'none';
	
	currentModule = pname.substr(0,3); 
	var navItems = document.getElementsByTagName('li');
	
	for (var i=0; i<navItems.length; i++) {
	
		var parent = navItems[i].parentNode;
		switch(parent.className) {

			case 'leftnavlevel1':
			
				anchorID = navItems[i].getElementsByTagName('A')[0].id;
				sublist = navItems[i].getElementsByTagName('UL')[0];
				
				if (!sublist) {
					allNavItems.push(anchorID);
					if (pname == anchorID) {
						navItems[i].className = 'currentlevel1';
					}
				}
				break;

			case 'leftnavlevel2': case 'currentlevel1':
				anchorID = navItems[i].getElementsByTagName('A')[0].id;
				parent.style.display = 'block';
				if (anchorID) 
					allNavItems.push(anchorID);
						
				if (anchorID == pname) {
					currentNavItem = allNavItems.length - 1;
					navItems[i].parentNode.parentNode.className = 'currentlevel1';
					navItems[i].className = 'currentlevel2';	
				}				
				break;
		
			default:
				break;
		}
	} // end for
} // end function SetNavigation


// set top navigation buttons

if (document.images) {
    button_1up       = new Image();
    button_1up.src   = "../images/btn_1_up.gif" ;
    button_1down     = new Image() ;
    button_1down.src = "../images/btn_1_over.gif" ;
	button_1click     = new Image() ;
    button_1click.src = "../images/btn_1_on.gif" ;
	
	button_2up       = new Image();
    button_2up.src   = "../images/btn_2_up.gif" ;
    button_2down     = new Image() ;
    button_2down.src = "../images/btn_2_over.gif" ;
	button_2click     = new Image() ;
    button_2click.src = "../images/btn_2_on.gif" ;
	
	button_3up       = new Image();
    button_3up.src   = "../images/btn_3_up.gif" ;
    button_3down     = new Image() ;
    button_3down.src = "../images/btn_3_over.gif" ;
	button_3click    = new Image() ;
    button_3click.src = "../images/btn_3_on.gif" ;
	
	button_4up       = new Image();
    button_4up.src   = "../images/btn_4_up.gif" ;
    button_4down     = new Image() ;
    button_4down.src = "../images/btn_4_over.gif" ;
	button_4click     = new Image() ;
    button_4click.src = "../images/btn_4_on.gif" ;
	
	button_5up       = new Image();
    button_5up.src   = "../images/btn_5_up.gif" ;
    button_5down     = new Image() ;
    button_5down.src = "../images/btn_5_over.gif" ;
	button_5click     = new Image() ;
    button_5click.src = "../images/btn_5_on.gif" ;
}
function buttondown( buttonname )
{
    if (document.images) {
      document[ buttonname ].src = eval( buttonname + "down.src" );
    }
}
function buttonup ( buttonname )
{
    if (document.images) {
      document[ buttonname ].src = eval( buttonname + "up.src" );
    }
}
function buttonclick( buttonname )
{
    if (document.images) {
      document[ buttonname ].src = eval( buttonname + "click.src" );
    }
}
