var fb_classname = 'box';

var fb_stepin = 5;
var fb_timein = 50;

var fb_stepout = -1;
var fb_timeout = 50;
var fb_delayout = 2500;

var fb_minalpha = 85;
var fb_maxalpha = 100;

var fb_fadeincn = 'fb_FadeingIn';


//------------- Start -------------
addLoadEvent(fb_init);

function fb_hasclass(classes, search){
	var ca = classes.split(' ');
	for (var i = 0; i < ca.length; i ++)
		if (ca[i] == search) return (i + 1);
	return false;
}
function fb_addclass(classes, newclass){
	if (!fb_hasclass(classes, newclass))
		return (classes + ' ' + newclass);
	return classes;
}
function fb_stripclass(classes, del){
	var i = fb_hasclass(classes, del);
	if (i) {
		i -= 1;
		var ca = classes.split(' ');
		return (ca.slice(0, i).join(' ') + ' ' + ca.slice(i + 1, ca.length).join(' '));
	}
	return classes;
}

function fb_find(e){
	while(e && !fb_hasclass(e.className, 'box'))
		e = e.parentNode;
	return e;
}
function fb_show(e){
	if (e) var box = fb_find(e.target);
	else var box = fb_find(event.srcElement);
	box.className = fb_addclass(box.className, fb_fadeincn);
	fb_fadein(box.id);
}
function fb_hide(e){
	if (e) var box = fb_find(e.target);
	else var box = fb_find(event.srcElement);
	box.className = fb_stripclass(box.className, fb_fadeincn);
	window.setTimeout('fb_fadeoutdelay("'+box.id+'")', fb_timeout);
}

function fb_fadein(id){
	var box = document.getElementById(id);
	if (!fb_hasclass(box.className, fb_fadeincn)) return;
	if (fb_doopacity(box, fb_stepin) < fb_maxalpha)
		window.setTimeout('fb_fadein("'+id+'")', fb_timein);
}
function fb_fadeoutdelay(id, callnum){
	if (!callnum) callnum = 1;
	var box = document.getElementById(id);
	if (fb_hasclass(box.className, fb_fadeincn)) return;
	if (callnum * fb_timeout < fb_delayout)
		window.setTimeout('fb_fadeoutdelay("'+box.id+'", '+(callnum+1)+')', fb_timeout);
	else fb_fadeout(id);
}
function fb_fadeout(id){
	var box = document.getElementById(id);
	if (fb_hasclass(box.className, fb_fadeincn)) return;
	if (fb_doopacity(box, fb_stepout) > fb_minalpha)
		window.setTimeout('fb_fadeout("'+id+'")', fb_timeout);
}

function fb_minalphamax(alpha){
	if (alpha > fb_maxalpha) return fb_maxalpha;
	else if (alpha < fb_minalpha) return fb_minalpha;
	return alpha;
}
function fb_doopacity(box, step){
	if (!box) return;
	if (document.all) {
		var alpha = /Alpha\(opacity\s*?=\s*?(\d+).*?\)$/i
		alpha.exec(box.style.filter);
		alpha = fb_minalphamax(Number(RegExp.$1) + step);
		box.style.filter = 'Alpha(opacity='+alpha+')';
	}
	else {
		var alpha = fb_minalphamax(Number(box.style.opacity) * 100 + step);
		box.style.opacity = alpha / 100;
	}
	return alpha;
}

function fb_init(){
	var divs = document.getElementsByTagName('div');
	for (var i = 0; i < divs.length; i ++) {
		if (!fb_hasclass(divs[i].className, fb_classname) || divs[i].id != '') {
			continue;
		}
		divs[i].id = 'fb_fadebox_'+i;
		if (document.all) divs[i].style.filter = 'Alpha(opacity='+fb_minalpha+')';
		else divs[i].style.opacity = fb_minalpha / 100;
		divs[i].onmouseover = fb_show;
		divs[i].onmouseout 	= fb_hide;
	}
}