/* javascript code for collapsable and scrollable menus */
var TopMenuObjArray = new Array();
var MenuObjArray = new Array();
var currentMenu;
var activeMenu;
var scrollobject;
var outerDiv = "topmenu";
var innerDiv = "menu";
var activeCellColor = "#666666";
var inactiveCellColor = "#333333";
var speed = 0;
var scrollspeed = 50;
var loop, timer;
var activeMenuIndex = -1;
var opened_course_menu = '';
var opened_other_menus = new Array();
function lib_bwcheck(){ //Browsercheck (needed)
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent
	this.dom=document.getElementById?1:0
	this.opera5=this.agent.indexOf("Opera 5")>-1
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")>-1
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
	return this
}
var bw=new lib_bwcheck()
var scrolltextLoaded = false
function LoadMenuObjects(obj)
{
	NumMenus = this.document.getElementById?this.document.getElementById(obj):this.document.all?this.document.all[obj]:this.document.layers?eval('this.document.'+obj):0;	
	for (i=0; i<NumMenus.value; i++)
	{
		TopMenuObjArray[i] = new makeMenuObj(outerDiv + i,'',i);
		MenuObjArray[i] = new makeMenuObj(innerDiv + i,outerDiv + i,i);
		MenuObjArray[i].scrollmoveIt(0,0);
	}
	scrolltextLoaded = true
}
var px = bw.ns4||window.opera?"":"px";
function makeMenuObj(obj,nest,index)
{
	nest=(!nest) ? "":'document.'+nest+'.'
	this.evnt = document.getElementById?document.getElementById(obj):document.all?document.all[obj]:document.layers?eval(nest+'document.'+obj):0;	
	this.css = this.evnt.style?this.evnt.style:this.evnt;										
	this.ref=document.layers?this.evnt.document:document;
	this.scrollHeight=bw.ns4?this.css.document.height:this.evnt.offsetHeight
	this.clipHeight=bw.ns4?this.css.clip.height:this.evnt.offsetHeight
	this.up=goUp;
	this.down=goDown;
	this.scrollmoveIt=scrollmoveIt; 
    this.scrollx=0; 
    this.scrolly=0;
	this.x=this.css.left||this.evnt.offsetLeft;
	this.y=this.css.top||this.evnt.offsetTop;
	this.hideIt=hideIt;
	this.showIt=showIt;
	this.movey=movey
	this.moveIt=moveIt;
	this.moveby=moveby;
	this.bgImg=bgImg;
	this.obj = obj + "Object";
	eval(this.obj + "=this"); 
	this.clipTo=clipTo;
	this.expandTo = expandTo;
	this.collapseTo = collapseTo;
	this.getWidth = getWidth;
	this.name=obj;
	this.index=index;
	this.displayStatus = 0; 
	this.currentMenuSize = 0;
	this.expand = false;
	this.collapse = false;
	return this
}
function showIt()
{
	this.css.visibility="visible";
	this.displayStatus=1;
}
function hideIt()
{
	this.css.visibility="hidden";
	this.displayStatus=0
}
function movey(y)
{
	this.y=y;
	this.css.top=this.y
}	
function scrollmoveIt(x,y){
	this.scrollx = x
	this.scrolly = y
	this.css.left = this.scrollx+px
	this.css.top = this.scrolly+px
}
function moveIt(x,y)
{
	this.x=x;
	this.y=y;
	this.css.left=this.x;
	this.css.top=this.y
}
function moveby(x,y)
{
	this.x=this.x+x;
	this.y=this.y+y;
	this.css.left=this.x;
	this.css.top=this.y
}
function bgImg(img)
{
	if(document.getElementById)
		document.getElementById(this.id+"_img").src = img
	else if(document.layers)
		this.ref.layers[0].document.images[0].src = img
	else
		document.images[this.id+"_img"].src = img
}
function clipTo(t,r,b,l,w)
{
	if(document.layers)
	{
		this.css.clip.top=t;
		this.css.clip.right=r
		this.css.clip.bottom=b;
		this.css.clip.left=l
	}
	else
	{
		this.css.clip="rect("+t+"px,"+r+"px,"+b+"px,"+l+"px)";
		if(w)
		{
			this.css.pixelWidth=this.css.width=r;
			this.css.pixelHeight=this.css.height=b
		}
	}
}

function getWidth()
{
	return this.css.width||this.evnt.offsetWidth;
	//this.h=this.css.top||this.evnt.offsetTop;
}


function expandTo(size)
{
    if(size < 270)
	{
	    t_size = size + 10;
		this.currentMenuSize = t_size;
		this.clipTo(0,t_size,t_size,0);
		if (this.expand) setTimeout(this.obj + ".expandTo(t_size)",speed);
	}
	else
	{
		this.expand = false;
		this.displayStatus = 1;  //menu fully expanded
	}
}

function collapseTo(size)
{
	if(size > 0)
	{
		t_size = size - 10;
		this.currentMenuSize = t_size;
		this.clipTo(0,t_size,t_size,0);
		if (this.collapse) setTimeout(this.obj + ".collapseTo(t_size)",speed);
	}
	else
	{
		this.collapse = false;
		this.hideIt();
	}
}

function goDown(move){
	if (this.scrolly>-this.scrollHeight+currentMenu.clipHeight){
		this.scrollmoveIt(0,this.scrolly-move)
			if (loop) setTimeout(this.obj+".down("+move+")",scrollspeed)
	}
}

function goUp(move){
	if (this.scrolly<0){
		this.scrollmoveIt(0,this.scrolly-move)
		if (loop) setTimeout(this.obj+".up("+move+")",scrollspeed)
	}
}


function scroll(obj,scrollspeed)
{
	scrollobject = MenuObjArray[obj];
	
	if (scrolltextLoaded){
		loop = true;
		if (scrollspeed>0) scrollobject.down(scrollspeed)
		else scrollobject.up(scrollspeed)
	}
}


function noScroll(obj){
	loop = false
	if (timer) clearTimeout(timer)
}

function MenuAction(obj,nest)
{
	if(activeMenuIndex != -1 && currentMenu.name != outerDiv + obj)
	{
		currentMenu.clipTo(0,0,0,0);
		currentMenu.currentMenuSize = 0;
		currentMenu.hideIt();
		menuColor(currentMenu.index,'',inactiveCellColor);
	}
	
	activeMenuIndex = obj;
	currentMenu = TopMenuObjArray[obj];
	
	if(currentMenu.displayStatus == 2) // expanding
	{
		currentMenu.expand = false;
		currentMenu.displayStatus = 1; //set to fully expanded and visible
	}
	else if(currentMenu.displayStatus == 3) //collapsing	
	{
		currentMenu.collapse = false;
		currentMenu.displayStatus = 0; //set to fully collapsed and hidden
	}
	if (currentMenu.displayStatus == 1) //is visible
	{
		currentMenu.displayStatus = 3 //set to menu is collapsing
		currentMenu.collapse = true;
		currentMenu.collapseTo(currentMenu.currentMenuSize);
		menuColor(obj,'',inactiveCellColor);
		//currentMenu.hideIt();
	}	
	else //is hidden
	{
		currentMenu.showIt();
		currentMenu.displayStatus = 2 //set to menu is expanding
		currentMenu.expand = true;
		currentMenu.expandTo(currentMenu.currentMenuSize);
		menuColor(obj,'',activeCellColor);
	}
}
function menuColor(index,nest,clr)
{
	obj = "row" + index;
	nest=(!nest) ? "":'document.'+nest+'.'
	evnt = document.getElementById?document.getElementById(obj):document.all?document.all[obj]:document.layers?eval(nest+'document.'+obj):0;	
	css = evnt.style?evnt.style:evnt;
	css.backgroundColor = clr;
}
function closeSubMenus()
{
	if(activeMenuIndex != -1)
	{
		currentMenu.clipTo(0,0,0,0);
		currentMenu.currentMenuSize = 0;
		currentMenu.hideIt();
		menuColor(currentMenu.index,'',inactiveCellColor);
	}
}
function toggle(obj,nest,img)
{
	//closeSubMenus();
	nest=(!nest) ? "":'document.'+nest+'.'
	evnt = document.getElementById?document.getElementById(obj):document.all?document.all[obj]:document.layers?eval(nest+'document.'+obj):0;
	css = evnt.style?evnt.style:evnt;
	if (css.display == 'none')
	{ 
		
		aficnt = document.getElementById?document.getElementById('afi_cnt'):document.all?document.all['afi_cnt']:document.layers?eval(nest+'document.'+'afi_cnt'):0;	
		for (i=0; i<aficnt.value; i++) //close all AFI Tables
		{
			delete_cookie ( 'AFI'+i );	
			afi = document.getElementById?document.getElementById('AFI'+i):document.all?document.all['AFI'+i]:document.layers?eval(nest+'document.'+'AFI'+i):0;
			aficss = afi.style?afi.style:afi;
			aficss.display = 'none';
			//imgobj = document.getElementById?document.getElementById('toggleImage'+i):document.all?document.all['toggleImage'+i]:document.layers?eval(nest+'document.'+'toggleImage'+i):0;
			//imgobj.src = "../images/maximize.gif";
		}
		css.display = 'block';
		set_cookie ( obj, "course_menu");
		//imgobj = document.getElementById?document.getElementById(img):document.all?document.all[img]:document.layers?eval(nest+'document.'+img):0;
		//imgobj.src = "../images/minimize.gif";
	}
	else
	{
		css.display = 'none';
		//delete_cookie ( obj,'','/development/odysseytraining/' );
		delete_cookie ( obj );
		//imgobj = document.getElementById?document.getElementById(img):document.all?document.all[img]:document.layers?eval(nest+'document.'+img):0;
		//imgobj.src = "../images/maximize.gif";
	}
	return	
}
function toggle2(obj,nest,img)
{
	//if (obj != 'LinkTable')
	//	closeSubMenus();
	nest=(!nest) ? "":'document.'+nest+'.'
	evnt = document.getElementById?document.getElementById(obj):document.all?document.all[obj]:document.layers?eval(nest+'document.'+obj):0;
	css = evnt.style?evnt.style:evnt;
	if (css.display == 'none')
	{ 
		css.display = 'block';
		set_cookie ( obj, "other_menu");
		//imgobj = document.getElementById?document.getElementById(img):document.all?document.all[img]:document.layers?eval(nest+'document.'+img):0;
		//imgobj.src = "../images/minimize.gif";
	}
	else
	{
		css.display = 'none';
		//delete_cookie ( obj,'','/development/odysseytraining/' );
		delete_cookie ( obj );
		//imgobj = document.getElementById?document.getElementById(img):document.all?document.all[img]:document.layers?eval(nest+'document.'+img):0;
		//imgobj.src = "../images/maximize.gif";
	}
	return	
}
function submenu(obj,nest,img)
{
	nest=(!nest) ? "":'document.'+nest+'.'
	evnta = document.getElementById?document.getElementById('row'+obj+'a'):document.all?document.all['row'+obj+'a']:document.layers?eval(nest+'document.'+'row'+obj+'a'):0;
	
	if (evnta != null)
	{
		cssa = evnta.style?evnta.style:evnta;
		evntb = document.getElementById?document.getElementById('row'+obj+'b'):document.all?document.all['row'+obj+'b']:document.layers?eval(nest+'document.'+'row'+obj+'b'):0;
		cssb = evntb.style?evntb.style:evntb;
		if (cssa.display == 'none')
		{
			cssa.display = 'block';
			cssa.visibility = 'visible';
			cssb.display = 'none';
			cssb.visibility = 'hidden';
			cssb.zIndex = 1;
			//delete_cookie ( obj,'','/development/odysseytraining/' );
			delete_cookie ( obj );
		}
		else
		{
			cssa.display = 'none';
			cssa.visibility = 'hidden';
			cssb.display = 'block';
			cssb.visibility = 'visible';
			cssb.zIndex = 99;
			set_cookie ( obj, "sub_menu");
		}
	}
	return	
}

function subsubmenu(obj,nest,img)
{
	nest=(!nest) ? "":'document.'+nest+'.';
	evnt = document.getElementById?document.getElementById(obj):document.all?document.all[obj]:document.layers?eval(nest+'document.'+obj):0;
	
	if (evnt != null)
	{
		css = evnt.style?evnt.style:evnt;
		if (css.display == 'block')
		{
			css.display = 'none';
			css.visibility = 'hidden';
			css.zIndex = 1;
			//delete_cookie ( obj,'','/development/odysseytraining/' );
			delete_cookie ( obj );
		}
		else
		{
			css.display = 'block';
			css.visibility = 'visible';
			css.zIndex = 99;
			set_cookie ( obj, "subsub_menu");
		}
	}
	return	
}

function reopen_menus(arg)
{//alert(document.cookie);
	var x;
	var temp = new Array();
	var temp2 = new Array();
	var nest = '';
	if (arg == 'in')
	{
		x = document.cookie; //get the cooking string
		temp = x.split('; '); //split the cookie string into an array of name/value pairs
		for (i=0; i<temp.length; i++)
		{	
			temp2 = temp[i].split('=');	//split each name/value pair into it own array
			//alert(temp[i]);
			if (temp2[1] == 'other_menu' || temp2[1] == 'course_menu') //check value of name
			{
				evnt = document.getElementById?document.getElementById(temp2[0]):document.all?document.all[temp2[0]]:document.layers?eval(nest+'document.'+temp2[0]):0;
				if (evnt != null) //check if evnt is found on page
				{
					css = evnt.style?evnt.style:evnt;
					css.display = 'block';
				}
			}
			else if (temp2[1] == 'sub_menu')
			{
				submenu(temp2[0],'','');	
			}
			else if (temp2[1] == 'subsub_menu')
			{
				subsubmenu(temp2[0],'','');	
			}
		}
	}
	else //out
	{
		//set_cookie('UserTable','other_menu');
	}
}
	
function set_cookie ( name, value, exp_y, exp_m, exp_d, path, domain, secure )
{
  var cookie_string = name + "=" + escape ( value );

  if ( exp_y )
  {
    var expires = new Date ( exp_y, exp_m, exp_d );
    cookie_string += "; expires=" + expires.toGMTString();
  }

  if ( path )
        cookie_string += "; path=" + escape ( path );

  if ( domain )
        cookie_string += "; domain=" + escape ( domain );
  
  if ( secure )
        cookie_string += "; secure";
  
  document.cookie = cookie_string;
}
/*function delete_cookie( name, path, domain ) {
if ( get_cookie( name ) ) document.cookie = name + "=" +
( ( path ) ? ";path=" + path : "") +
( ( domain ) ? ";domain=" + domain : "" ) +
";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}*/

function delete_cookie ( cookie_name )
{
  //alert(document.cookie);
  var cookie_date = new Date ( );  // current date & time
  cookie_date.setTime ( cookie_date.getTime() - 1 );
  document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
  //alert(document.cookie);
}

function get_cookie ( cookie_name )
{
  var results = document.cookie.match ( cookie_name + '=(.*?)(;|$)' );

  if ( results )
    return ( unescape ( results[1] ) );
  else
    return null;
}


/*****************************************************************************************************************************************/
