// Dynamic Breadcrumbs
// Written by Harry Love
// Email: hlove@u.washington.edu
// Use at your own risk.
// Feel free to use, personalize, improve, and distribute.
// Last update: 07/06/04

var startPoint = 2; // idea from Hassan Schroeder

var sep = "&nbsp;&gt;&nbsp;"

var startName = "VP Research Home";

var uppercase = "yes";
var allUppercase = "no";

var replaceSpecialCharacters = "yes";
var specialCharactersUpper = "yes";
var charactersToReplace = new Array (
	[ "_" , "&nbsp;" ],
	[ "bnb", "B&amp;B" ],
	[ "hsl" , "HSL" ],
	[ "kks" , "KKS" ],
	[ "swl" , "SWL" ],
	[ "howto" , "How-To" ],
	[ "endnote" , "EndNote" ],
	[ "cinahl" , "CINAHL" ],
	[ "ebp" , "EBP" ],
	[ "docservices" , "Document Services" ],
	[ "-" , "-" ],
	[ "leave this alone" , "leave this alone" ]);

var endPoint = "title";

var d=document;
var url = d.location.href;
var endChar = url.substr(url.length-1);


url=url.replace("//","/");

// 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") != -1)
{
	// 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") != -1)
	{
		badReg = /\/cgi-bin\//i;
		url=url.replace(badReg,"/hsl/");
		
		if(url.search("admin") != -1)
		{
			badReg = /\/admin/i;
			url=url.replace(badReg,"");
		}
	}
	
	if(url.search("/hsl/hsl/") != -1)
	{
		badReg = /\/hsl\/hsl\//i;
		url=url.replace(badReg,"/hsl/");
	}
}

if(url.search("&url=") != -1)
{
	badReg = /\/hsl\/.+url=/i;
	url=url.replace(badReg,"");
}

if(url.search("washington.edu") != -1)
{
	badReg = /https:\/\/healthlinks.washington.edu/i;
	url=url.replace(badReg,"");
}

// End cgi-bin removal clauses

var urlText = url;
var urlLinkArray=url.split('/');


if(startName=="domain")
{
	var y;
	startName="";
	for(x=2;x<startPoint;x++)
	{
		y=x+1;
		if(y>=1&&y<startPoint)
		{
			startName = startName + urlLinkArray[y] + "/";
		}

		else
		{
			startName = startName + urlLinkArray[y];
		}
	}
}

if(replaceSpecialCharacters == "yes")
{
	for(x=0;x<charactersToReplace.length;x++)
	{
		var myRegExp = new RegExp(charactersToReplace[x][0], "g");
		urlText = urlText.replace(myRegExp,charactersToReplace[x][1]);
	}
}

var urlTextArray=urlText.split('/');

var urlL = urlLinkArray.length;
var uppercaseText;
var lowercaseText;
var lcase;
var linkName=new Array();


if(uppercase=="yes"&&allUppercase=="no")
{
	if(replaceSpecialCharacters=="yes"&&specialCharactersUpper=="yes")
	{
		for(x=2;x<charactersToReplace.length;x++)
		{
			var myRegExp = new RegExp(charactersToReplace[x][1]+"[a-z]", "g");
			for(y=2;y<urlL;y++)
			{
				if(urlTextArray[y].search(myRegExp)!=-1)
				{
					var regExpArray = new Array();
					regExpArray = urlTextArray[y].match(myRegExp);
					for(z=0;z<regExpArray.length;z++)
					{
						
						if(urlTextArray[y].search(myRegExp)!=-1)
						{
							
							var lastLetter = regExpArray[z].substr(regExpArray[z].length-1,regExpArray.length).toUpperCase();
							
							var newText = charactersToReplace[x][1]+lastLetter;
							urlTextArray[y] = urlTextArray[y].replace(regExpArray[z],newText);
						}
					}
				}
			}
		}
	}

	for(x=3;x<urlL;x++)
	{
		uppercaseText=urlTextArray[x].substr(0,1).toUpperCase();
		lowercaseText=urlTextArray[x].substr(1, urlTextArray[x].length);
		linkName[x]=uppercaseText+lowercaseText;
	}
}

else if(allUppercase=="yes"||uppercase=="yes"&&allUppercase=="yes")
{
	for(x=3;x<urlL;x++)
	{
		linkName[x]=urlTextArray[x].toUpperCase();
	}
}

else{linkName=urlTextArray;lcase="yes";}

var start=urlLinkArray[0]+"//";

if(startPoint<1){startPoint=2;}

for(y=1;y<=startPoint;y++)
{
	start=start+urlLinkArray[y]+"/";
}

function createBreadcrumbs()
{
	if(lcase!="yes")
	{
		d.write('<a href="'+start+'">'+startName+'</a>');
	}

	else
	{
		startName = startName.toLowerCase();
		d.write('<a href="'+start+'">'+startName+'</a>');
	}
	
	
	if(urlL>2)
	{	
		for(x=startPoint+1;x<urlL;x++)
		{			
			if(x<urlL-1)
			{
				if(x==urlL-2&&linkName[urlL-1]=="")
				{
					if(endPoint=="")
					{
						d.write(sep+linkName[x]);
						break;
					}
					
					else
					{
						if(lcase!="yes")
						{
							d.write(sep);
							break;
						}

						else
						{
							var ttl = d.title.toLowerCase();
							d.write(sep);
							break;
						}						
					}
				}
				
				else
				{
					start=start+urlLinkArray[x]+"/";
					d.write(sep+'<a href="'+start+'">'+linkName[x]+'</a>');
				}
			}
			
			else
			{
				start=start+urlLinkArray[x];
				if(endChar=="/")
				{
					d.write(sep+linkName[x]);
				}
				
				else
				{
					d.write();
				}
			}
		}
	}
}