
/* Since Javascript is available, hide all submenus. */
document.writeln('<style type="text/css">#side_menu ul{display:none}</style>')

function menu() {
	var menu = document.getElementById('side_menu');
	if ( menu ) {
		var menuLinks = menu.getElementsByTagName('a');
		var pageUrl = document.location.href.split('#')[0];
		var shortPageUrl = pageUrl.replace(/index\.html/, '');
		for ( var i = menuLinks.length - 1; i >= 0; i-- ) {
			if ( menuLinks[i].href == pageUrl || menuLinks[i].href == shortPageUrl ) {
				var currentPageLink = menuLinks[i]
				break;
			}
		}
		if ( ! currentPageLink ) {
			var linkList = document.getElementsByTagName('link');
			for ( var i = linkList.length - 1; i >= 0; i-- ) {
				if ( linkList[i].getAttribute('rel') == 'menuParent' ) {
					var menuParentLink = linkList[i]
					break;
				}
			}
			if ( menuParentLink ) {
				/* I hate Internet Explorer */
				var absoluteHref = document.location.href.substring( 0, document.location.href.lastIndexOf('/') )
				var relativeHref = menuParentLink.getAttribute('href');
				while ( relativeHref.substring(0,2) == '..' ) {
					absoluteHref = absoluteHref.substring( 0, absoluteHref.lastIndexOf('/') );
					relativeHref = relativeHref.substring( 3 );
				}
				absoluteHref += '/' + relativeHref;
				for ( var i = menuLinks.length - 1; i >= 0 ; i-- ) {
					if ( menuLinks[i].href == absoluteHref ) {
						var currentPageLink = menuLinks[i]
						break;
					}
				}
			}
		}
		if ( currentPageLink ) {
			var listItem = currentPageLink;
			while ( listItem.parentNode.getAttribute('id') != 'side_menu' ) {
				listItem = listItem.parentNode;
			}
			var parentLink = listItem.getElementsByTagName('a')[0];
			var subMenu = listItem.getElementsByTagName('ul')[0];
			if ( subMenu ) {
				subMenu.style.display = 'block';
			}
			if ( subMenu && parentLink == currentPageLink ) {
				currentPageLink.onclick = toggleSubMenu;
			} else if ( ! menuParentLink ) {
				currentPageLink.onclick = function() { return false; };
			}
			currentPageLink.setAttribute('id', 'current_page');	
		}
	}
}

function toggleSubMenu() {
	var subMenu = this.parentNode.getElementsByTagName('ul')[0];
	if ( subMenu ) {
		if ( subMenu.style.display == 'none' ) {
			subMenu.style.display = 'block';
		} else {
			subMenu.style.display = 'none';
		}
	}
	return false;
}


function addLinkIcons() {
	var arrDivs = new Array( 'content', 'related_links', 'sidebar', 'front_page_content' );
	var oDiv;
	var oLink;
	var strHref;
	var tempClass;
	
	var oPdfRegExp = /.pdf$/;
	var oMailtoRegExp = /^mailto:/;
	var oRestrictedRegExp = /^.*restricted\//;
	var oBresciaRegExp = new RegExp('^https?:\/\/www\.brescia\.uwo\.ca|^https?:\/\/www\.uwo\.ca\/brescia');
	//var oBresciaRegExp = /^https?:\/\/www\.brescia\.uwo\.ca/;
	//var oBresciaRegExp = /^https?:\/\/(www\.)?uwo\.ca\/b-new/;
	var oWesternRegExp = /^https?:\/\/[a-z0-9]*\.([a-z0-9]*\.)?uwo\.ca/;
	var oEmployeeRegExp = /^http:\/\/www\.uwo\.ca\/cgi-bin\/dsgw\/people\.pl/;
	var oExternalRegExp = /^https?:\/\//;
	
	for (var j = arrDivs.length - 1; j >= 0; j--) {
		oDiv = document.getElementById(arrDivs[j]);
		if ( oDiv ) {

			for (var i = 0; (oLink = oDiv.getElementsByTagName('a')[i]); i++) {
				if ( oLink.className.match(/no_auto/) )
					continue;
					
				strHref = oLink.href;
				tempClass = '';
				if ( strHref.match(oRestrictedRegExp) ) {
					tempClass = 'restricted';
				} else if ( strHref.match(oPdfRegExp) ) {
					tempClass = 'pdf';
					oLink.onclick = openWin;
				} else if ( strHref.match(oMailtoRegExp) ) {
					tempClass = 'mail';
				} else if ( ! strHref.match(oBresciaRegExp) ) {
					if ( strHref.match(oEmployeeRegExp) ) {
						tempClass = 'employee';
						oLink.onclick = openWin;				
					} else if ( strHref.match(oWesternRegExp) ) {
						tempClass = 'western';
						oLink.onclick = openWin;
					} else if ( strHref.match(oExternalRegExp) ) {
						tempClass = 'external';
						oLink.onclick = openWin;
					}
				}
				
				if ( tempClass && ! oLink.className.match(/no_style/) )
					oLink.className = tempClass;
			}
		}
	}
}


function setTitle() {
	if ( document.title == 'Brescia University College' ) {
		if ( document.getElementById('content') ) {
			var heading1 = document.getElementById('content').getElementsByTagName('h1')[0];
			if ( heading1 ) {
				document.title += ' - ' + heading1.innerHTML;
			}
		}
	}
}

/* Based on script provided by Google */
function searchBox() {
	var form = document.getElementById('searchbox_010074231819549340524:tjadvqk_kc8');
	if (form && form.q) {
		var q = form.q;	
		q.onfocus = function() {
			q.className = 'focus';
		};
		q.onblur = function() {
			if (q.value == '') {
				q.className = 'blur';
			}
		};	
		if ( ! /[&?]q=[^&]/.test(window.location.search) ) {
			q.onblur();
		}
	}
}
	

/*
	Taken from JSTarget function by Roger Johansson, www.456bereastreet.com
*/
function openWin(e) {
	var event = (!e) ? window.event : e;
	if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return true;
	else {
			var oWin = window.open(this.getAttribute('href'), '_blank');
		if (oWin) {
			if (oWin.focus) oWin.focus();
			return false;
		}
		oWin = null;
		return true;
	}
}


/*
	Simon Willison's addLoadEvent function (http://simon.incutio.com/archive/2004/05/26/addLoadEvent)
*/
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}

//var startTime;
//addLoadEvent( function() { startTime = new Date().getTime(); } );
addLoadEvent( menu );
addLoadEvent( searchBox );
addLoadEvent( addLinkIcons );
addLoadEvent( setTitle );
//addLoadEvent( function() { document.title += ' - Scripts took ' + (new Date().getTime() - startTime) + 'ms'; } );

