function getParentElement(element, nodeName) {
	if(!element.parentNode) return null;
	if(element.parentNode.nodeName == nodeName.toUpperCase()) return element.parentNode;
	return getParentElement(element.parentNode, nodeName);
}

function validateUrl(url) {
	window.open(Format.url(url), 'cvb');
}

var Format = {
	url: function(url) {
		return (new RegExp('^[a-zA-Z]+://', 'ig')).test(url) ? url : 'http://' + url;
	}
};

function getNextSiblingElement(element, nodeName) {
	if(!element.nextSibling) return null;
	if(element.nextSibling.nodeName == nodeName.toUpperCase()) return element.nextSibling;
	return getNextSiblingElement(element.nextSibling, nodeName);
}

// assumes your inside 1 table row above the meta row
function toggle_meta(anchor) {
	var tr = getParentElement(anchor, 'TR');
	var more = getNextSiblingElement(tr, 'TR');
	if(more.style.display == 'none')
		new Effect.Appear(more);
	else
		new Effect.Fade(more);
	return false;
}

// assumes you're in the meta row
function hide_meta(anchor) {
	var more = getParentElement(anchor, 'TR');
	new Effect.Fade(more);
	return false;
}