/*
 * set up a breadcrumb trail for pages in e or staffweb. 
 *
 * see:
 * /data/web/e/meta/nodes
 * /data/web/e/we-scripts/NODES.e
 */ 

if (!JEJ)
	var JEJ = {};

// homemade loader, f/ window.onload
if (!JEJ.doubledelegate) {
	JEJ.doubledelegate = function(f1, f2) {
		return function() {
			if (f1)
				f1();
			if (f2)
				f2();
		}
	}
}

if (!BREADCRUMBS)
	var BREADCRUMBS = {};

/*
 * load NODES file.
 */

BREADCRUMBS.loader = function() {
	if (!document.getElementById('crumbs'))
		return;
	if (window.ActiveXObject) {
		BREADCRUMBS.req = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		BREADCRUMBS.req = new XMLHttpRequest();
	}
	var u = window.location.href;
	if (u.indexOf('/staffweb/') > -1)
		BREADCRUMBS.req.open('GET', 'http://www.lib.uchicago.edu/staffweb/we-scripts/NODES.staffweb', true);
	else
		BREADCRUMBS.req.open('GET', 'http://www.lib.uchicago.edu/e/we-scripts/NODES.e', true);
	BREADCRUMBS.req.onreadystatechange = BREADCRUMBS.handler;
	BREADCRUMBS.req.send(null);
}
window.onload = JEJ.doubledelegate(window.onload, BREADCRUMBS.loader);

/*
 * get an array of nodes, from '' ('e') to the current page.
 */

BREADCRUMBS.nodearray = function() {
	var u = window.location.href;
	if (window.console)
		window.console.log(u);
	// drop the 'http://'
	var nodes = u.split('//');
	var path = nodes.slice(1).join('/');
	// drop the 'www.lib.uchicago.edu' or 'convert.lib.uchicago.edu'
	nodes = path.split('/');
	nodes = nodes.slice(1);
	// drop the 'e'
	if (nodes[0] == 'e')
		nodes = nodes.slice(1);
	// drop the 'staffweb'
	if (nodes[0] == 'staffweb')
		nodes = nodes.slice(1);
	// drop the 'z-convert', if it's there
	if (nodes[0] == 'z-convert')
		nodes = nodes.slice(1);
	// drop the 'z-sandbox', if it's there
	if (nodes[0] == 'z-sandbox')
		nodes = nodes.slice(1);
	// slice off the trailing '/' (really the empty string) or page name,
	// if it's there.
	nodes = nodes.slice(0, nodes.length-1);

	// create breadcrumb trail of nodes
	var r = Array();
	r.push('');
	var i = 1;
	while (i <= nodes.length) {
		r.push(nodes.slice(0,i).join('/'));
		i++;
	}
	return r;
}

/*
 * load and display breadcrumb data and contact data.
 */

BREADCRUMBS.handler = function() {
	if (BREADCRUMBS.req.readyState != 4) 
		return;
	BREADCRUMBS.data = eval('(' + BREADCRUMBS.req.responseText + ')');
	var nodes = BREADCRUMBS.nodearray();
	i = 0;
	while (i < nodes.length) {
		var a = document.createElement('a');
		if (window.location.href.indexOf('/e/') > -1)
			var h = 'http://www.lib.uchicago.edu/e/' + nodes[i];
		else
			var h = 'http://www.lib.uchicago.edu/staffweb/' + nodes[i];
		if (nodes[i] != '') {
			h += '/';
		}
		a.setAttribute('href', h);
		var t = document.createTextNode(BREADCRUMBS.data[nodes[i]]['longtitle']);
		a.appendChild(t);
		document.getElementById('crumbs').appendChild(a);
	
		if (i < nodes.length-1) {
			var s = document.createElement('span');
			s.appendChild(document.createTextNode(' > '));
			document.getElementById('crumbs').appendChild(s);
		}
		i++;
	}
}
