
function breadRender(xml, id) {

	var elm = document.getElementById(id);

	while(elm.childNodes.length > 0) 
		elm.removeChild(elm.firstChild);

	var ul = document.createElement('ul');
	elm.appendChild(ul);

	bcrumbs = xml.getElementsByTagName('crumb');

	for(var i = 0; i < bcrumbs.length; i++) {

		var txt;
		var href;

		for(var j = 0; j < bcrumbs[i].childNodes.length; j++) {

			if(bcrumbs[i].childNodes[j].nodeType == Node.ELEMENT_NODE &&
				bcrumbs[i].childNodes[j].tagName == "text" ) {
				
				if(bcrumbs[i].childNodes[j].textContent)
					txt = bcrumbs[i].childNodes[j].textContent;
				else
					txt = bcrumbs[i].childNodes[j].text;
			}

			if(bcrumbs[i].childNodes[j].nodeType == Node.ELEMENT_NODE &&
				bcrumbs[i].childNodes[j].tagName == "url" ) {

				if(bcrumbs[i].childNodes[j].textContent)
					href = bcrumbs[i].childNodes[j].textContent;
				else
					href = bcrumbs[i].childNodes[j].text;
			}

		}

		var arrow = "";
		if(i != 0)
			arrow = '&#187;&nbsp;';

		var li = document.createElement('li');

		if(i == bcrumbs.length - 1)
			li.innerHTML = arrow + txt;
		else
			li.innerHTML = "<a href='" + href + "'> " + arrow + txt + "</a>";

		ul.appendChild(li);

	}

	var p = document.createElement('p');
	p.innerHTML = "<a href='http://www.oberlin.edu/library/libstaff/webdesign/breadcompare.html'>To Breadcrumb Index</a>";
	elm.appendChild(p);

	
}




function edit(id, url, pass) {

	var button = document.getElementById('editBut');
	if(button)
		document.getElementById('breadcrumbs').removeChild(button);

	var elm = document.getElementById(id);
	
	while(elm.childNodes.length > 0) 
		elm.removeChild(elm.firstChild);

	// If embedded title in span, use that
	var titleElm = document.getElementById('title' + id);
	var titleTxt;
	if(titleElm) {
		if(titleElm.textContent)
			titleTxt = titleElm.textContent;
		else if(titleElm.text)
			titleTxt = titleElm.text;
	} else {
		titleTxt = '';
	}

	// Otherwise, grab default title from header
	var headers = document.getElementsByTagName('h1');
	
	if(titleTxt == '' && headers[0] && headers[0].textContent) {
		titleTxt = headers[0].textContent;
	}

	elm.innerHTML = "Enter the name for this breadcrumb : <input type='text' size='20' id='bName_" + id + "' value='" + titleTxt + "'/>" +
					"<input type='button' onclick='editParent(\"" + id + "\", \"" + url + "\", \"" + pass + "\")' value='Next >>' />" + 
					"";

	document.getElementById('bName_' + id).focus();

}



function editParent(id, url, pass) {

	var elm = document.getElementById(id);
	
	var name = document.getElementById('bName_' + id).value;

	while(elm.childNodes.length > 0) 
		elm.removeChild(elm.firstChild);


	// Get default dir
	var defPar = url;
	var lastSlash = defPar.lastIndexOf('/');
	if(lastSlash + 1 == defPar.length) {
		defPar = defPar.substring(0, lastSlash);
		defPar = defPar.substring(0, defPar.lastIndexOf('/') + 1);
	} else {
		defPar = defPar.substring(0, lastSlash + 1);
	}

	// Remove /library
	if(defPar.substring(0, 8) == '/library')
		defPar = defPar.substring(8);
	


	elm.innerHTML = "Enter the relative parent URL for this breadcrumb : /library<input type='text' size='20' id='bParent_" + id + "'  value='" + defPar + "' />" +
					"<input type='button' onclick='send(\"" + escape(id) + "\", \"" 
					+ escape(name) + "\", \"" + url + "\",\"" + pass + "\" )' value='Submit' />" +	"";

	document.getElementById('bParent_' + id).focus();

}



function getText(node){
	if(node && node.nodeType==3){

		if(node.textContent) { // Firefox, Opera, ...	
			var txt = node.textContent;
		} else { // IE - damn it
			var txt = node.text;
		}
	}

	return txt;

}


function revert(id) {

	document.getElementById(id) = bk;
	
}




function send(id, name, url, pass) {

	id = unescape(id);
	name = unescape(name);

	var parent = document.getElementById('bParent_' + id).value;
	
	var validRequest = 'http://www.oberlin.edu/cgi-bin/cgiwrap/library/checkInfinity.php?checkInfinityURL=' +
						encodeURIComponent(url) + '&checkInfinityParent=' + encodeURIComponent('/library' + parent);
	
	makeRequest(validRequest,
				'GET',
				'loadimg',
				function(xml){
					xmlReceive(xml, 'breadcrumbs', url, parent, name, id, pass);
				});


	
	return;
}



function xmlReceive(xml, bId, url, parent, name, id, pass){
	
	var isValid = xml.getElementsByTagName('valid');
	if(getText(isValid[0].firstChild).indexOf('1') != -1){
		
		var full =	'http://www.oberlin.edu/cgi-bin/cgiwrap/library/crumbentry.php?url=' + 
					encodeURIComponent(url) + '&parentid=' + encodeURIComponent('/library' + parent) + 
					'&text=' + encodeURIComponent(name) + '&pass=' + encodeURIComponent(pass);
	
		
		makeRequest(full, 'GET', 'loadimg', function(xml) { breadRender(xml, bId) });

		var elm = document.getElementById('x' + id);

		while(elm && elm.hasChildNodes())
			elm.removeChild(elm.firstChild);

	}
	
	else{
		alert("You can't do that. (Make sure breacrumb parent does not refer to itself.)");

		var textBox = document.getElementById('bParent_' + id);
		textBox.value='';
		textBox.focus();
	}
}

	