//menu vars
var curSubMenu = null; 
var curMenu = null;
var curSubmenuTimer = null; 
var menuTO = 2000;
var bOKToHide = false;
var bLoaded = false;

function loadpage()
{
	SetEvents();
	try
	{
		doLoad();//defined on pages that need it
	}
	catch(e){}
	bLoaded = true;
}

function unloadpage()
{
	try
	{
		doUnload();//defined on pages that need it
	}
	catch(e){}
}

function SetAAACookie(cookieName,cookieValue,nDays,path) 
{
	path = path ? path : "/"
	var today = new Date();
	var expire = new Date();
	nDays = nDays ? nDays : 1;
	expire.setTime(today.getTime() + 3600000*24*nDays);
	document.cookie = cookieName+"="+escape(cookieValue)
					 + ";expires="+expire.toGMTString()+";path="+path;
}
function ReadAAACookie(cookieName) 
{
 	var theCookie=""+document.cookie;
	 var ind=theCookie.indexOf(cookieName);
 	if (ind==-1 || cookieName=="") return ""; 
	 var ind1=theCookie.indexOf(';',ind);
	 if (ind1==-1) ind1=theCookie.length; 
	 return unescape(theCookie.substring(ind+cookieName.length+1,ind1));
}

function clickMenu(submenuopt)
{
	try
	{
		submenuopt.childNodes[0].click();
	} 
	catch(e)
	{
		try {submenuopt.childNodes[1].onclick();} catch(e){}
	}
}

var NewWin;
function GoPage(page, target, wid, hei, bPlain, x, y)
{
	var bInNew = target != undefined && target != "_self" && target != "_top"; 
	//bPlain should be "yes" or "no"
	bPlain = bPlain == true ? "no" : "yes";
	
	var otherparms = "";
	x = x ? x : 0;
	y= y ? y : 0;
	if(x) otherparms += ",left="+x; 
	if(y) otherparms += ",top="+y;
	
	if(bInNew)
	{
		wid = wid ? wid : 800;
		hei = hei ? hei : 600;
		NewWin=window.open(page,"Win","toolbar="+bPlain+",location="+bPlain+",directories=no,status="+bPlain+",menubar="+bPlain+",scrollbars="+bPlain+",status="+bPlain+",resizable=yes,width="+wid+",height="+hei+otherparms);
	}
	else
	{	
		document.location.href = page;
	}
}

function SetEvents()
{
	try
	{
		document.body.addEventListener("click", HideSubMenu, false);
		if (document.captureEvents) document.captureEvents(Event.CLICK);
		document.body.addEventListener("unload", unloadpage, false);
	}
	catch(e){}
	document.onclick = HideSubMenu;
}
	
function GetSubMenu(menu)
{
	var submenuid = menu.id.toString() + "Sub"; 
	return document.getElementById(submenuid);
}

function GetMenuOption(submenu)
{
	var menuid = submenu.id.substring(0, submenu.id.length-3);
	return document.getElementById(menuid);
}

function setbOKToHide(bOK)
{
	bOKToHide = bOK ? bOK : true;
}

function CheckMenuStyle(menu)
{
	//setting bok var because this fcn is called onmouseout 
	bOKToHide = true;
	var source = menu.id + ".jpg"; 
	if(GetSubMenu(menu) == curSubMenu && curSubMenu != null)
	{
		doBtnOver(menu);
	}
	else
	{
		doBtnOut(menu);
	}
}

function ShowSubMenu(menu, bIsSub)
{
	if(bIsSub)
	{
		bOKToHide = false;
		window.clearTimeout(curSubmenuTimer);
		curSubmenuTimer = window.setTimeout("HideSubMenu()", menuTO); 
		return;
	}
	
	var submenu = GetSubMenu(menu);
	bOKToHide = true;
	if(submenu)
		{
			if(submenu != curSubMenu)
			{
				if(curSubMenu != null) HideSubMenu();
				curSubMenu = submenu;
				var xpos = parseInt(GetRealLeft(menu));
				var ypos = parseInt(GetRealTop(menu)); 
				xpos += 145;  
				ypos += 2; 
				submenu.style.position  ="absolute"; 
				submenu.style.left = xpos + "px"; 
				submenu.style.top = ypos + "px"; 
				submenu.style.display = "block"; 
				if(curSubmenuTimer!=null) window.clearTimeout(curSubmenuTimer);
				curSubmenuTimer = window.setTimeout("HideSubMenu()", menuTO); 
			}
		bOKToHide = false;
		}
	else
	{
		if(curSubMenu != null) HideSubMenu();
	}
	//menu option
	if(curMenu != menu && curMenu != null)
	{
		doBtnOut(curMenu);
	}
	
	curMenu = menu; 
	doBtnOver(menu);
}

function HideSubMenu(menu)
{
	var submenu = menu != undefined ? GetSubMenu(menu) : curSubMenu;
	
	if(submenu)
		{
			if(bOKToHide)
			{
				var menuopt = GetMenuOption(submenu);
				submenu.style.display = "none"; 
				menuopt = GetMenuOption(submenu); 
				doBtnOut(menuopt);
				if(curSubMenu == submenu)
					curSubMenu = null; 
			}
			else
			{
			curSubmenuTimer = window.setTimeout("HideSubMenu()", menuTO); 
			}
		}
	else
		curSubMenu = null;
}

function GetRealLeft(el) 
{
	var xPos = el.offsetLeft;
	var tempEl = el.offsetParent;
	while (tempEl != null) 
	{
		xPos += tempEl.offsetLeft;
		tempEl = tempEl.offsetParent;
	}
	return xPos;
}

function GetRealTop(el) 
{
	var yPos = el.offsetTop;
	var tempEl = el.offsetParent;
	while (tempEl != null) 
	{
		yPos += tempEl.offsetTop;
		tempEl = tempEl.offsetParent;
	}
	return yPos;
}

//menu buttons highlite
function doBtnOver(btnimg)
{
	if(btnimg.tagName == "IMG")
	{
		var source = btnimg.id + ".jpg"; 
		btnimg.src = "images/MenuOverState/" + source;
	}
	else //TD, set background prop
	{
		btnimg.className = btnimg.className.indexOf("_over") == -1 ? btnimg.className + "_over" : btnimg.className; 
	}
	
}

function doBtnOut(btnimg)
{
	if(btnimg.tagName == "IMG")
	{
		var source = btnimg.id + ".jpg"; 
		btnimg.src = "images/" + source;
	}
	else //TD, set background prop
	{
		var ind = btnimg.className.indexOf("_over");
		if(ind > -1)
			btnimg.className = btnimg.className.substr(0, ind); 
	}
}

//debug
function debugPrint(val)
{
	var db = document.getElementById("dbg");
	//var db = document.getElementById("divContent");
	db.style.display = "inline"; 
	db.innerHTML += "<br>" + val;	
	//alert(val);
}
//////AJAX FUNCTIONS//////////////
var bLoc = true;
function ajaxInclude(url, bReturnText) 
{
	var now = new Date();
	var srchpre = url.indexOf("?")>-1 ? "&" : "?"; 
	if(!bLoc)
		url += srchpre + "time=" + now.getTime();
	var page_request = null;
	if (window.XMLHttpRequest && navigator.appName.toLowerCase().indexOf("microsoft") == -1) // if Mozilla, Safari etc
		page_request = new XMLHttpRequest();
	else if (window.ActiveXObject)
	{ // if IE
		try {page_request = new ActiveXObject("Msxml2.XMLHTTP");} 
		catch (e){try {page_request = new ActiveXObject("Microsoft.XMLHTTP");}catch (e){}}
	}
	else return "";
	try {page_request.open('GET', url, false);page_request.send(null);}
	catch(e) {return "";}
	return page_request.responseText ? page_request.responseText : "Page Not Found";
}

function getTop(sectname)
{
	var htm = ajaxInclude("i_top.htm");
	if(!sectname) sectname = "general"; 
	return findReplace(htm, "[IMAGENAME]", sectname);
}

function getFooter()
{
	return ajaxInclude("i_footer.htm");
}

//employees var is used with videos display and also right side employee profiles displays
var employees = 
{
	Geoff : {key: "Geoff", 	name: "Geoff B", 	title: "Manager, Data Services", dept: "Geographical Information Systems",years:18, vid:"emp2", 
			 quickquote: "I feel privileged to work in an atmosphere that continually fosters technological and professional growth."}, 
	Yolanda : {key: "Yolanda", 	name: "Yolanda C", 	title: "Managing Director", dept: "Public Relations",years: 1, vid:"emp1", 
			 quickquote: "As a proud and active member of the Central Florida community, the AAA National Office actively pursues community relationships."},
	Andrea : {key: "Andrea", 	name: "Andrea F", 	title: "Supervisor of Services, former Intern", dept: "Member Relations", years: "Started as an AAA intern in 1995, joined AAA full-time in 1999.", vid:"emp3", 
			 quickquote: "There is no better teacher than experience."},
	Ingrid : {key: "Ingrid", 	name: "Ingrid P", 	title: "Member Relations Coordinator", dept: "Member Relations",years: "Started in April 2007", vid:"emp4", 
			 quickquote: "AAA allows me to be creative in my work, in a way that makes it simple to help others."},
	Lara : {key: "Lara", 	name: "Lara C", 	title: "Senior Analyst", dept: "Member Relationship Management (MRM) Action Center",years: 11, vid:"emp5", 
			 quickquote: "It's nice to work for a company where you enjoy going to work each day."}
	
}; 

//create an array of employee keys
var arrEmployees = []; 
for(var Key in employees)
{
	arrEmployees[arrEmployees.length] = Key; 
}

function showSideBarVideo(key, bPrev)
{
	var getit = function(id){return document.getElementById(id);};
	var emp = employees[key];
	try
	{
		var vidpath = bPrev == true ? "video/" + emp["vid"] + "_prev.html" : "video/" + emp["vid"] + "_mov.html";
		GoPage(vidpath, "vidwin", 320, 287, true);
	}
	catch(e){}
}
//returns a random employee from the employees keys array, build out of employees collection
function getEmp()
{
	var ind = Math.round(Math.random()*arrEmployees.length-1);
	ind = ind >= 0 ? ind : -ind;
	return employees[arrEmployees[ind]];	
}

function getRight(name)
{
	//get the employee object
	var emp = name ? employees[name] : getEmp(); 
	var htm = ajaxInclude("employeesidebar.htm"); //generic employee sidebar page
	htm = findReplace(htm, "[key]", emp.key); 
	htm = findReplace(htm, "[name]", emp.name); 
	htm = findReplace(htm, "[title]", emp.title);
	htm = findReplace(htm, "[quickquote]", emp.quickquote);
	return htm; 
	
}

//finds and replaces a string, case sensitive, no line breaks, for includes, to replace keys with strings for dynamic elements 
function findReplace(str, findstr, repstr)
{
	try
	{
		while(str.indexOf(findstr) > - 1)
		{
			str = str.replace(findstr, repstr);
		}
		return str; 
	}
	catch(e){return "error: " + e.toString();}
}