function Breadcrumb() {
	//////////////////////
	// Begin customization
	//////////////////////
	this.homeLinkText = 	'Bauer Home'; 	// Text for the home link
	this.separator = 		'  ';		// Character(s) to use between breadcrumbs
	this.homeLinkPosition = 0;			// Where is home? 0 = domain, 1 = 1st directory, and so on ...
	this.attachTo = 		'#breadcrumb';	// Attach breadcrumb to a tag or an ID: e.g., body, h1, div, #header, #breadcrumb
	this.replaceTheseCharacters = [		// You can replace any text with customized text
	//	["this text", "will be replaced with this text"],
		[ "_" , " " ],
		[ "-" , " " ],
		[ "<", "&lt;"],
		[ ">", "&gt;"],
		[ "\"", "&quot;"],
		['','']];
	
	////////////////////
	// End customization
	////////////////////

	this.output = writeHTML;
	var homeText = this.homeLinkText;
	var sep = this.separator;
	var position = this.homeLinkPosition;
	var tag = this.attachTo;
	var replacements = this.replaceTheseCharacters;
	var d = document, text = url = d.location.href.split('//')[1];
	var title = d.title;
	
	// This next set of "if" clauses removes the cgi-bin++ portion of the URL for
	// pages that include the cgi-bin directory.
	if(url.search("cgi-bin") > 0) {
		// Get rid of the stuff after .cgi?...
		var badReg = /\w+\.cgi\?.*/i;
		var goodReg =  "" + url.match(badReg);
		goodReg = goodReg.substring(0,goodReg.indexOf("?"));
		url=url.replace(badReg,goodReg);
		
		badReg = /\/cgi-bin\/.+url=/i;
		url=url.replace(badReg,"");
		if(url.search("cgi-bin") > 0) {
			badReg = /\/cgi-bin\//i;
			url=url.replace(badReg,"/hsl/");
			
			if(url.search("admin") > 0) {
				badReg = /\/admin/i;
				url=url.replace(badReg,"");
			}
		}
		
		if(url.search("/hsl/hsl/") > 0) {
			badReg = /\/hsl\/hsl\//i;
			url=url.replace(badReg,"/hsl/");
		}
	}
	
	if(url.search("&url=") > 0) {
		badReg = /\/hsl\/.+url=/i;
		url=url.replace(badReg,"");
	}
	
	//if(url.search("washington.edu") > 0) {
	//	badReg = /healthlinks.washington.edu/i;
	//	url=url.replace(badReg,"");
	//}

	// End cgi-bin removal clauses
	
	url = url.split('/');
	if(url[url.length-1] == '') {url.pop();}
	url.pop();
	for (var i=0; i < replacements.length; i++) {
		rex = new RegExp(replacements[i][0], "g");
		text = text.replace(rex,replacements[i][1]);
		title = title.replace(rex,replacements[i][1]);
	}
	text = text.split('/');
	
	function createBreadcrumbs() {
		var href = '', a, div = d.createElement('div');
		div.setAttribute('id', 'breadcrumbs');
		for (var i = 0; i < url.length; i++) {
			href += url[i] + '/';
			if (i < position) {continue;}
			if (i == position) {text[i] = homeText;}
			text[i] = text[i].charAt(0).toUpperCase() + text[i].substr(1);
			a = d.createElement('a');		
			a.setAttribute('href', 'http://' + href);
			a.appendChild(d.createTextNode(sanitize(text[i])));
			div.appendChild(a);
			div.appendChild(d.createTextNode(sep));
		}
		div.appendChild(d.createTextNode(title));
		return div;
	}
	
	function writeHTML() {
		tag = tag.match('#') ? d.getElementById(tag.substring(1)) : d.getElementsByTagName(tag)[0];
		if(tag) {
			tag.appendChild(createBreadcrumbs());
		}
	}

	function sanitize(text) {
		var str = new String(text);
	        str = str.replace(/&/g, "&amp;");
	        str = str.replace(/</g, "&lt;");
	        str = str.replace(/>/g, "&gt;");
	        str = str.replace(/"/g, "&quot;");
	        return str;
	}
}

function sanitize(text) {
	var str = new String(text);
        str = str.replace(/&/g, "&amp;");
        str = str.replace(/</g, "&lt;");
        str = str.replace(/>/g, "&gt;");
        str = str.replace(/"/g, "&quot;");
        return str;
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

addLoadEvent(function() {
	var crumb = new Breadcrumb();
	crumb.output();					  
});

