// 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 = 1; // idea from Hassan Schroeder



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



var startName = "City Of Houston";



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=0;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=0;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=2;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=2;x<urlL;x++)

	{

		linkName[x]=urlTextArray[x].toUpperCase();

	}

}



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



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



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



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=="directory")

					{

						d.write(sep+linkName[x]);

						break;

					}

					

					else

					{

						if(lcase!="yes")

						{

							d.write(sep+d.title);

							break;

						}



						else

						{

							var ttl = d.title.toLowerCase();

							d.write(sep+ttl);

							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(sep+d.title);

				}

			}

		}

	}

}