Element.addMethods({
	textShadow: function(element, offset) {
		if (!Object.isArray(offset)) { offset = [offset, offset]; }
		
		element.setStyle({ 'position': 'relative', 'zIndex': 1 });
		
		var shadow = new Element('span', { 'class': 'shadow' }).update(element.firstChild.nodeValue);
		element.insert(shadow);
		
		shadow.setStyle({
			'position': 'absolute',
			'paddingLeft': element.getStyle('paddingLeft'),
			'paddingTop': element.getStyle('paddingTop'),
			'zIndex': -1,
			'top': offset[0]+'px',
			'left': offset[1]+'px'
		});
	}
});

Event.observe(document, 'dom:loaded', function() {
	// makes sure we're applying the shadows only to Firefox < 3.1
	if ((Prototype.Browser.Gecko && !Prototype.BrowserFeatures.SelectorsAPI) || Prototype.Browser.IE) {
		['#navigation a span', '#login_box label'].collect($$).flatten().invoke('textShadow', -1);
	}
});