/* contentclips.com/javascript/cc/cz/ck/stories/stories.js
 * (c)2007-2010 by Zelestra, all rights reserved, @author David C. Tessman
 * maxWidth=32&amp;maxHeight=32 changed to "48" on line 774, [rt] 2010-02-21
 * loadBiographies(url) changes to loadBiographies(url,criteria) on line 167, [dct] 2010-03-05
 * @version 2010-03-05
 */

// Global Variables

var items = null;
var itemNum = -1;

var bioImage = null;
var bioImageCaption = null;
var bioDisplayName = null;
var bioLifeSpan = null;
var bioBirthplace = null;
var bioField = null;
var bioIdea = null;
var bioAchievement = null;
var bioResource = null;
var bioClipSet = null;
var bioStory = null;
var isLoading = false;
var itemMaxListSize = 15;
var contentHeaderHeight = 0;
var bioHeaderHeight = 0;

// Global Functions

function initContentHeader() {
	var keywords = $("keywords");
	if (keywords && (keywords.getAttribute("type") == "text")) {
   		setTextFocusById("keywords");
   		Event.observe(keywords,"keydown",pvtDetectEnterKey);
	}
    setSimpleLink($("searchButton"),search);
    setSimpleLink($("searchAllButton"),searchAll);
    setSimpleLink($("resetButton"),reset);
    setSimpleLink($("searchAgainButton"),searchAgain);
    setSimpleLink($("srcNextButton"),gotoNext);
    setSimpleLink($("srcPrevButton"),gotoPrev);
    setSimpleLink($("backToListButton"),backToList);
    setSimpleLink($("prevBioButton"),prevBio);
    setSimpleLink($("nextBioButton"),nextBio);
    setSimpleLink($("bioClipSet"),openBioClipSet);
	setPopUpLink($("helpLink"),600,700,"help");
	setPopUpLink($("helpButton"),600,700,"help");
	setPopUpLink($("helpLinkBtn"),600,700,"help");
    setPopUpLink($("aboutLink"),600,700);
	setPopUpLink($("policiesLink"),600,700);
	setPopUpLink($("termsLink"),600,700);
	setPopUpLink($("FAQ_quickLink"),600,700);
	setPopUpLink($("policyLink"),600,700);
	setPopUpLink($("FAQLink"),600,700);
	setWindowLink($("ccLink"));
	var elems = $("fieldCodes").select('input');
	for(var i = 0; i < elems.length; ++i) {
		var elem = elems[i];
		if (elem.id == "allLifeScience")
			Event.observe(elem,"click",toggleAllLifeScience);
		else if (elem.id == "allPhyScience")
			Event.observe(elem,"click",toggleAllPhyScience);
		else if (elem.id == "allOtherFields")
			Event.observe(elem,"click",toggleAllOtherFields);
		else
			Event.observe(elem,"click",toggleFieldCode);
	}
	contentHeaderHeight = $("contentHeader").getHeight();
	bioHeaderHeight = $("bioHeader").getHeight();
};

// Search Sub-Tab Functions

function buildSearchQuery() {
	var criteria = "";
	var query = "";
	var elem = $("keywords");
	var keywords = elem.value;
	if (keywords.length > 0) {
		query = "?keywords=" + encodeURIComponent(keywords);
		criteria += "<strong>keywords:</strong> " + CSV.parse(keywords," ").join(", ");
	}
	var elem = $("bornRanges");
	var elems = elem.select('input');
	var i;
	var first = true;
	for(i = 0; i < elems.length; ++i) {
		elem = elems[i];
		if (elem.id == "allBornRanges")
			continue;
		if (!elem.checked)
			continue;
		if (query != "")
			query += "&";
		else
			query += "?";
		query += "bornRange=" + elem.value;
		if (first) {
			first = false;
			if (criteria.length > 0)
				criteria += ";&nbsp;&nbsp; ";
			criteria += "<strong>birth dates:</strong> ";
		} else
			criteria += ", ";
		criteria += elem.next().innerHTML;
	};
	elem = $("fieldCodes");
	elems = elem.select('input');
	first = true;
	var allLifeScience = false;
	var allPhyScience = false;
	var allOtherFields = false;
	for(i = 0; i < elems.length; ++i) {
		elem = elems[i];
		if (elem.id == "allFieldCodes")
			continue;
		if (!elem.checked)
			continue;
		if (elem.id == "allLifeScience")
			allLifeScience = true;
		else if (elem.id == "allPhyScience")
			allPhyScience = true;
		else if (elem.id == "allOtherFields")
			allOtherFields = true;
		if (query != "")
			query += "&";
		else
			query += "?";
		query += "fieldCode=" + elem.value;
		if (allLifeScience && elem.hasClassName("lifeScience"))
			continue;
		if (allPhyScience && elem.hasClassName("phyScience"))
			continue;
		if (allOtherFields && elem.hasClassName("otherFields"))
			continue;
		if (first) {
			first = false;
			if (criteria.length > 0)
				criteria += ";&nbsp;&nbsp; ";
			criteria += "<strong>fields:</strong> ";
		} else
			criteria += ", ";
		criteria += elem.next().innerHTML;
	};
	criteria = "<span>" + criteria + "</span>";
	$("searchCriteria").innerHTML = criteria;
	return query;
};

function clearAllBornRanges() {
	var elem = $("bornRanges");
	var elems = $(elem).select('input');
	var i;
	for(i = 0; i < elems.length; ++i)
		elems[i].checked = false;
	return false;
}

function clearAllFieldCodes() {
	var elem = $("fieldCodes");
	var elems = $(elem).select('input');
	var i;
	for(i = 0; i < elems.length; ++i)
		elems[i].checked = false;
	return false;
}

function loadBiographies(url,criteria) {
	if (isLoading)
		return;
	if (criteria) {
		criteria = "<span>" + criteria + "</span>";
		$("searchCriteria").innerHTML = criteria;
	}
	isLoading = true;
	setTimeout("pvtAdjustLoadingSpinner()",1000);
	var elem = $("searchAllButton");
	elem.addClassName("disabled");
   	elem.style.cursor = "default";
   	elem = $("searchButton");
	elem.addClassName("disabled");
   	elem.style.cursor = "default";
	postAjaxRequest(url, { success : function(data) {
		try {
			var xml = document.createXmlDocument(data);
			if (xml != null) {
				var elems = xml.getElementsByTagName("searchBiographyResponse");
				if (elems.length == 1)
					pvtSetResults(elems[0],data);
				else
					pvtSetResults(null);
			}
		} catch(ex) {
			pvtSetResults(null);
		}
	}, fail: function(statusCode,message) {
		pvtSetResults(null);
	}});
};

function reset() {
	clearAllBornRanges();
	clearAllFieldCodes();
	$("keywords").value = "";
	return false;
};

function search() {
	var query = buildSearchQuery();
	if (query == "") {
		$("searchCriteria").innerHTML = "<strong>no search criteria entered</strong>";
		pvtSetResults(null);
		return;
	}
	loadBiographies("/services/searchBiographies" + query + "&itemMaxListSize=" + itemMaxListSize);
	return false;
};

function searchAll() {
	reset();
	$("searchCriteria").innerHTML = "<strong>all biographies</strong>";
	loadBiographies("/services/searchBiographies?itemListMaxSize=" + itemMaxListSize);
	return false;
};

function toggleAllLifeScience() {
	var val = $("allLifeScience").checked;
	elem = $("fieldCodes");
	var elems = elem.select('input.lifeScience');
	elems.each(function(s) {
		s.checked = val;
	});
	toggleFieldCode();
	return false;
};

function toggleAllOtherFields() {
	var val = $("allOtherFields").checked;
	elem = $("fieldCodes");
	var elems = elem.select('input.otherFields');
	elems.each(function(s) {
		s.checked = val;
	});
	toggleFieldCode();
	return false;
};

function toggleAllPhyScience() {
	var val = d$("allPhyScience").checked;
	elem = $("fieldCodes");
	var elems = elem.select('input.phyScience');
	elems.each(function(s) {
		s.checked = val;
	});
	toggleFieldCode();
	return false;
};

function toggleFieldCode() {
	var lifeScienceAnyNotChecked = false;
	var phyScienceAnyNotChecked = false;
	var otherFieldsAnyNotChecked = false;
	var elem = $("fieldCodes");
	var elems = $(elem).select('input');
	var i;
	for(i = 0; i < elems.length; ++i) {
		elem = elems[i];
		if (elem.hasClassName("lifeScience"))
			lifeScienceAnyNotChecked |= !elem.checked;
		else if (elem.hasClassName("phyScience"))
			phyScienceAnyNotChecked |= !elem.checked;
		else if (elem.hasClassName("otherFields"))
			otherFieldsAnyNotChecked |= !elem.checked;

	};
	$("allLifeScience").checked = !lifeScienceAnyNotChecked;
	$("allPhyScience").checked = !phyScienceAnyNotChecked;
	$("allOtherFields").checked = !otherFieldsAnyNotChecked;
	return false;
}

// Results Sub-Tab Functions

function gotoNext() {
	var href = $("srcNextButton").href;
	if (!href)
		gotoPage(1);
	else
		gotoPage(Number(href.substring(5)));
	return false;
};

function gotoPage(pageNumber) {
	loadBiographies("/services/searchBiographies?pageNumber=" + pageNumber);
};

function gotoPrev() {
	var href = $("srcPrevButton").href;
	if (!href)
		gotoPage(Number($("srcTotalPages").innerHTML));
	else
		gotoPage(Number(href.substring(5)));
	return false;
};

function loadBiography(url) {
	isLoading = true;
	setTimeout("pvtAdjustLoadingSpinner()",1000);
	postAjaxRequest(url, { success: function(data) {
		try {
			var xml = document.createXmlDocument(data);
			if (xml != null) {
				var elems = xml.getElementsByTagName("BiographyDefinition");
				if (elems.length == 1)
					pvtSetBio(elems[0],data);
				else
					pvtSetBio(null);
			}
		} catch(ex) {
			pvtSetBio(null);
		}
	}, fail: function(statusCode,message) {
		pvtSetBio(null);
	}});
};

function openBiography(itemId) {
	itemNum = Number(itemId.substring(4));
	var itemUri = items[itemNum];
	loadBiography(itemUri);
}

function searchAgain() {
	$("bioHeader").style.display = "none";
	$("bioDetail").style.display = "none";
	$("resultsHeader").style.display = "none";
	$("resultsDetail").style.display = "none";
	if (Prototype.Browser.Gecko) { // Kludge for very strange FireFox bug
		var searchDetail = $("searchDetail");
		searchDetail.up().removeChild(searchDetail);
		$("srcDstTable").down().appendChild(searchDetail);
	}
	$("contentHeader").setStyle({ height: (contentHeaderHeight + "px")});
	$("searchHeader").style.display = "block";
	$("searchDetail").style.display = "block";
	$("srcDstTable").removeClassName("tinted");
};

// Biography Sub-Tab Functions

function backToList() {
	$("bioHeader").style.display = "none";
	$("bioDetail").style.display = "none";
	$("searchHeader").style.display = "none";
	$("searchDetail").style.display = "none";
	if (Prototype.Browser.Gecko) { // Kludge for very strange FireFox bug
		var resultsDetail = $("resultsDetail");
		resultsDetail.up().removeChild(resultsDetail);
		$("srcDstTable").down().appendChild(resultsDetail);
	}
	$("contentHeader").setStyle({ height: (contentHeaderHeight + "px")});
	$("resultsHeader").style.display = "block";
	$("resultsDetail").style.display = "block";
	$("srcDstTable").addClassName("tinted");
}

function nextBio() {
	++itemNum;
	if (itemNum >= items.length) {
		gotoNext();
		return;
	}
	var itemUri = items[itemNum];
	loadBiography(itemUri);
}

function openBioClipSet() {
	if (bioClipSet == null)
		return;
	openPresenter(bioClipSet);
}

function prevBio() {
	--itemNum;
	if (itemNum < 0) {
		gotoPrev();
		return;
	}
	var itemUri = items[itemNum];
	loadBiography(itemUri);
}

// Private Functions

function pvtAdjustLoadingSpinner() {
	if (isLoading) {
		$("searchReady").style.display = "none";
		$("searchLoading").style.display = "block";
		$("resultsReady").style.display = "none";
		$("resultsLoading").style.display = "block";
		$("bioLoading").style.display = "block";
	} else {
		$("searchReady").style.display = "block";
		$("searchLoading").style.display = "none";
		$("resultsReady").style.display = "block";
		$("resultsLoading").style.display = "none";
		$("bioLoading").style.display = "none";
	}
}

function pvtDetectEnterKey(event) {
	if ((event.which && event.which == 13) ||
		(event.keyCode && event.keyCode == 13)) {
		Event.stop(event);
		if (!$("searchButton").hasClassName("disabled"))
			search();
		return false;
	}
	return true;
};

function pvtSetBio(elem,data) {
	if (elem == null) {
		isLoading = false;
		pvtAdjustLoadingSpinner();
		return;
	}

	var tmpBtn = $("searchAllButton");
	tmpBtn.style.cursor = "pointer";
	tmpBtn.removeClassName("disabled");
	tmpBtn = $("searchButton");
	tmpBtn.style.cursor = "pointer";
	tmpBtn.removeClassName("disabled");

	$("resultsLoading").style.display = "none";
	$("resultsReady").style.display = "block";

	$("bioLoading").style.display = "none";

	bioImage = null;
	bioImageCaption = null;
	bioDisplayName = null;
	bioField = null;
	bioLifeSpan = null;
	bioBirthplace = null;
	bioIdea = null;
	bioAchievement = null;
	bioResource = null;
	bioClipSet = null;
	bioStory = null;
	try {
		if (elem != null) {
			var elems = elem.childNodes;
			for(var i = 0; i < elems.length; ++i) {
				elem = elems[i];
				if (elem.nodeType == Node.ELEMENT_NODE)
					pvtSetBioField(elem.tagName,elem);
			}
		}
	} catch(ex) {
		alert(ex);
	}

	$("bioDisplayName").innerHTML = bioDisplayName;

	elem = $("bioImage");
	if (bioImage != null)
		elem.src = bioImage.escapeHTML();
	else
		elem.src = "/themes/" + sessionContext.theme + "/cc/ck/stories/defaultPortrait.jpg";

	elem = $("bioImageCaption")
	if (bioImageCaption != null) {
		elem.innerHTML = bioImageCaption;
		$(elem).up().style.display="block";
	} else
		$(elem).up().style.display="none";

	elem = $("bioField")
	if (bioField != null) {
		elem.innerHTML = bioField;
		$(elem).up().up().style.display="block";
	} else
		$(elem).up().up().style.display="none";

	elem = $("bioLifeSpan")
	if (bioLifeSpan != null) {
		elem.innerHTML = bioLifeSpan;
		$(elem).up().up().style.display="block";
	} else
		$(elem).up().up().style.display="none";

	elem = $("bioBirthplace")
	if (bioBirthplace != null) {
		elem.innerHTML = bioBirthplace;
		$(elem).up().up().style.display="block";
	} else
		$(elem).up().up().style.display="none";

	elem = $("bioIdea");
	if (bioIdea != null) {
		elem.innerHTML = bioIdea;
		$(elem).up().style.display="block";
	} else
		$(elem).up().style.display="none";

	elem = $("bioAchievement");
	if (bioAchievement != null) {
		elem.innerHTML = bioAchievement;
		$(elem).up().up().style.display="block";
	} else
		$(elem).up().up().style.display="none";

	elem = $("bioStory");
	if (bioStory != null) {
		elem.innerHTML = bioStory;
		$(elem).up().style.display="block";
	} else
		$(elem).up().style.display="none";

	elem = $("bioResource");
	if (bioResource != null) {
		elem.innerHTML = bioResource;
		$(elem).up().up().style.display="block";
	} else
		$(elem).up().up().style.display="none";

	elem = $("bioClipSet");
	if (bioClipSet != null)
		$(elem).style.display="block";
	else
		$(elem).style.display="none";

	$("searchHeader").style.display = "none";
	$("searchDetail").style.display = "none";
	$("resultsHeader").style.display = "none";
	$("resultsDetail").style.display = "none";
	$("srcDstTable").removeClassName("tinted");
	if (Prototype.Browser.Gecko) { // Kludge for very strange FireFox bug
		var bioDetail = $("bioDetail");
		bioDetail.up().removeChild(bioDetail);
		$("srcDstTable").down().appendChild(bioDetail);
	}
	$("contentHeader").setStyle({ height: (bioHeaderHeight + "px")});
	$("bioHeader").style.display = "block";
	$("bioDetail").style.display = "block";
	isLoading = false;
	pvtAdjustLoadingSpinner();
};

function pvtSetBioField(tag,elem) {
	if (tag == "DisplayName") {
		bioDisplayName = elem.getAttribute("value");
		if (bioDisplayName != null)
			bioDisplayName = bioDisplayName.escapeHTML();
	}
	if (tag == "Image") {
		bioImage = elem.getAttribute("value");
	}
	if (tag == "ImageCaption") {
		bioImageCaption = elem.getAttribute("value");
		if (bioImageCaption != null)
			bioImageCaption = bioImageCaption.escapeHTML();
	}
	if (tag == "Field") {
		bioField = elem.getAttribute("value");
		if (bioField != null)
			bioField = bioField.escapeHTML();
	}
	if (tag == "LifeSpan") {
		bioLifeSpan = elem.getAttribute("value");
		if (bioLifeSpan != null)
			bioLifeSpan = bioLifeSpan.escapeHTML();
	}
	if (tag == "Birthplace") {
		bioBirthplace = elem.getAttribute("value");
		if (bioBirthplace != null)
			bioBirthplace = bioBirthplace.escapeHTML();
	}
	if (tag == "Idea") {
		var tmpIdea = elem.getAttribute("value");
		if (tmpIdea != null) {
			if (bioIdea != null)
				bioIdea += tmpIdea.escapeHTML() + "<br/>";
			else
				bioIdea = tmpIdea.escapeHTML() + "<br/>";
		}
	}
	if (tag == "Achievement") {
		var tmpAchievement = elem.getAttribute("value");
		if (tmpAchievement != null) {
			if (bioAchievement != null)
				bioAchievement += tmpAchievement.escapeHTML() + "<br/>";
			else
				bioAchievement = tmpAchievement.escapeHTML() + "<br/>";
		}
	}
	if (tag == "Resource") {
		var tmpResource = elem.getAttribute("value");
		if (tmpResource != null) {
			if (bioResource != null)
				bioResource += textToHtml(tmpResource.escapeHTML()) + "<br/>";
			else
				bioResource = textToHtml(tmpResource.escapeHTML()) + "<br/>";
		}
	}
	if (tag == "ClipSet") {
		bioClipSet = elem.getAttribute("value");
	}
	if (tag == "Story") {
		if (typeof XMLSerializer != "undefined")
			bioStory = (new XMLSerializer()).serializeToString(elem) ;
		else if (elem.xml)
		 	bioStory = elem.xml;
		bioStory = bioStory.replace(/^<Story [^>]*>/,"");
		bioStory = bioStory.replace(/<\/Story>$/,"");
	}
}

function pvtSetResults(elem,data) {
	$("searchLoading").style.display = "none";
	$("searchReady").style.display = "block";
	var tmpBtn = $("searchAllButton");
	tmpBtn.style.cursor = "pointer";
	tmpBtn.removeClassName("disabled");
	tmpBtn = $("searchButton");
	tmpBtn.style.cursor = "pointer";
	tmpBtn.removeClassName("disabled");

	$("resultsLoading").style.display = "none";
	$("resultsReady").style.display = "block";

	$("bioLoading").style.display = "none";

	var frag = "";
	var count = 0;
	try {
		if (elem != null) {
			var elems = elem.childNodes;
			for(var i = 0; i < elems.length; ++i) {
				elem = elems[i];
				if (elem.nodeType == Node.ELEMENT_NODE) {
					frag = pvtSetResultsField(frag,elem.tagName,elem,count);
					if (elem.tagName == "item")
						++count;
				}
			}
		}
	} catch(ex) {
		alert(ex);
	}

	var pageList = $("srcPageList");
	if (count == 0) {
		pageList.getElementsByClassName("p1")[0].style.display = "none";
		pageList.getElementsByClassName("p2")[0].style.display = "none";
		if (elem == null) {
			pageList.getElementsByClassName("p3")[0].style.display = "none";
			pageList.getElementsByClassName("p4")[0].style.display = "block";
		} else {
			pageList.getElementsByClassName("p4")[0].style.display = "none";
			pageList.getElementsByClassName("p3")[0].style.display = "block";
		}
	} else {
		pageList.getElementsByClassName("p1")[0].style.display = "block";
		pageList.getElementsByClassName("p2")[0].style.display = "block";
		pageList.getElementsByClassName("p3")[0].style.display = "none";
		pageList.getElementsByClassName("p4")[0].style.display = "none";
	}

	pageList.removeClassName("disabled");
	$("srcItemList").innerHTML = frag;

	if ($("bioHeader").getStyle('display') == "none") {
		$("searchHeader").style.display = "none";
		$("searchDetail").style.display = "none";
		if (Prototype.Browser.Gecko) { // Kludge for very strange FireFox bug
			var resultsDetail = $("resultsDetail");
			resultsDetail.up().removeChild(resultsDetail);
			$("srcDstTable").down().appendChild(resultsDetail);
		}
		$("contentHeader").setStyle({ height: (contentHeaderHeight + "px")});
		$("resultsHeader").style.display = "block";
		$("resultsDetail").style.display = "block";
		$("srcDstTable").addClassName("tinted");
	} else {
		if (itemNum < 0)
			itemNum = items.length - 1;
		else
			itemNum = 0;
		var itemUri = items[itemNum];
		loadBiography(itemUri);
	}
	isLoading = false;
	pvtAdjustLoadingSpinner();
};

function pvtSetResultsField(frag,tag,elem,count) {
	var TOTAL_PAGES = 7;
	if (tag == "totalItems") {
		var totalItems = elem.firstChild.nodeValue.strip() - 0;
		items = new Array();
		if (totalItems == 1)
			var plural = "";
		else
			var plural = "s";
		$("srcTotalItems").innerHTML = totalItems + " item" + plural;
		return frag;
	}
	if (tag == "totalPages") {
		$("srcTotalPages").innerHTML = elem.firstChild.nodeValue.strip();
		return frag;
	}
	if (tag == "pageNumber") {
		var totalPages = ($("srcTotalPages").innerHTML - 0);
		var pageNumber = (elem.firstChild.nodeValue.strip() - 0);
		$("srcPageNumber").innerHTML = pageNumber;
		var start = pageNumber - (TOTAL_PAGES - 1) / 2;
		if (start < 1)
			start = 1;
		var end = start + (TOTAL_PAGES - 1);
		if (end > totalPages) {
			end = totalPages;
			start = end - (TOTAL_PAGES - 1)
			if (start < 1)
				start = 1;
		}
		var pages = "";
		for (var i = start; i <= end; ++i) {
			if (i == pageNumber)
				pages += " <a class='disabled'>" + i + "</a>";
			else
				pages += " <a href='data:" + i + "' onclick='gotoPage(\"" + i + "\"); return false;'>" + i + "</a>";
		}
		$("srcPages").innerHTML = pages;
		var prevElem = $("srcPrevButton");
		var nextElem = $("srcNextButton");
		if ((pageNumber - 1) > 0) {
			setLinkEnabled(prevElem,true);
			prevElem.href = "data:" + (pageNumber - 1);
		} else {
			setLinkEnabled(prevElem,false);
			prevElem.removeAttribute("href");
		}
		if ((pageNumber + 1) > totalPages) {
			setLinkEnabled(nextElem,false);
			nextElem.removeAttribute("href");
		} else {
			setLinkEnabled(nextElem,true);
			nextElem.href = "data:" + ((pageNumber - 0) + 1);
		}
		return frag;
	}
	if (tag == "item") {
		var elems = elem.childNodes;
		var state = 0;
		for(var i = 0; i < elems.length; ++i) {
			elem = elems[i];
			if (elem.nodeType != Node.ELEMENT_NODE)
				continue;
			var tagName = elem.nodeName;
			var value = elem.firstChild.nodeValue.strip();
			if (tagName == "uri")
				var tmpUri = value;
			else if (tagName == "firstName")
				var firstName = value;
			else if (tagName == "lastName")
				var lastName = value;
			else if (tagName == "field")
				var field = value;
			else if (tagName == "lifeSpan")
				var lifeSpan = value;
		}
		frag += "<div id='item" + count + "' class='item' unselectable='on'><a onclick='openBiography(\"item" + count + "\"); return false;'>";
		frag += "<div class='itemIcon'><img src='/services/getImage?uri=" + encodeURIComponent(tmpUri) + "&amp;vers=" + sessionContext.version + "&amp;maxWidth=48&amp;maxHeight=48&amp;defaultCategory=biography'/></div>";
		frag += "<div class='itemText'><span><strong>" + lastName.escapeHTML();
		if (firstName)
			frag += ", " + firstName.escapeHTML();
		frag += "</strong>";
		if (lifeSpan || field) {
			frag += "&nbsp;&nbsp;";
			if (lifeSpan)
				frag += "(" + lifeSpan.escapeHTML() + ")";
			if (field) {
				if (lifeSpan)
					frag += ", ";
				frag += field.escapeHTML();
			}
		}
		frag += "</span></div></a></div>";
		items.push(tmpUri);
	}
	return frag;
};

function textToHtml(str) {
	str = str.replace(/\b([a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4})\b/g,"<a href=\"mailto:$1\">$1</a>")
 	str = str.replace(/\b((http|https):\/\/[a-z0-9]+([-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(\/\S*)?)\b/g,"<a href=\"$1\" target=\"_blank\">$1</a>");
 	return str;
}

document.observe("dom:loaded", function() {
	initContentHeader();
});