var faderConfig = 
	{
		bg_container: 'div',
		popup_container: 'span', popup_position: 'link-related',
		popup_top: -32, popup_left: 120,
		elements: 'div.prompt-cont a'
	};

var activeFader = -1;
var activeLink = null;

var overFader = false;
var overLink = false;

function initFaders()
{
	if (faderConfig.length < 1)
		return;
	$j(faderConfig.elements).attr("faderIndex", 0).bind('mouseover', showFader).bind('mouseout', hideFader);
}

function showFader(e)
{
	overLink = true;

	var faderid = $j(this).attr('faderid');
	if (faderid == undefined) return;

	var fader = $j(faderConfig.bg_container + '[faderid=' + faderid + ']');
	var popup = $j(faderConfig.popup_container + '[faderid=' + faderid + ']');
	
	if (fader.length && popup.length){
		popup.css({
			'display': 'block',
			'visibility': 'hidden',
			'position': 'absolute'
		});
		
		popup.parent().bind('mouseover', function(){
			overFader = true;
		});
		
		popup.parent().bind('mouseout', function(){
			overFader = false;
			setTimeout('hideFaderOut()', 100);
		});

		activeLink = this;
		activeFader = 0;

		fader_set_popup_position(popup, faderConfig.popup_position, faderConfig.popup_top, faderConfig.popup_left);
	}
}

function hideFader(e)
{
	overLink = false;
	setTimeout('hideFaderOut()', 100);
}

function hideFaderOut(){
	if(activeFader <= -1) return;
	
	var faderid = $j(activeLink).attr('faderid');
	if (faderid == undefined) return;
	
	var fader = $j(faderConfig.bg_container + '[faderid=' + faderid + ']');
	var popup = $j(faderConfig.popup_container + '[faderid=' + faderid + ']');
	if (fader && popup){
		if (!overFader && !overLink){
			popup.css('display', 'none');
			activeFader = -1;
			activeLink = null;
		}
	}
}

function fader_set_popup_position(popup, popup_position, popup_top, popup_left) {
	var screenW = $j(window).width();
	var screenH = $j(window).height();
	var popupW = popup.width();
	var popupH = popup.height();
	
	var popupStyles = {};
	switch(popup_position){
		case 'none':
			break;
		case 'centered':
			popupStyles.top = (screenH - popupH) / 2;
			popupStyles.left = (screenW - popupW) / 2;
			break;
		case 'link-related':
			popupStyles.top = $j(activeLink).offset().top + popup_top;
			popupStyles.left = $j(activeLink).offset().left + popup_left;
			break;
		case 'absolute':
			popupStyles.top = popup_top;
			popupStyles.left = popup_left;
			break;
	}
	
	popupStyles.visibility = 'visible';
	popup.css(popupStyles);
}
