function fade_in(el,t,o,end) {
	if(typeof(end)=='undefined') end=1;
	if(typeof(o)=='undefined') o=0;
	if(typeof(el)!='object') {
		el=document.getElementById(el);
		if(!el) return false;
	}
	if(el.style.display=='' || el.style.display=='none') el.style.display='block';
	if(o<end) {
		if(!t) t=1000;
		o+=end/(t/50);
		set_opac(el,o);
		setTimeout(function() { fade_in(el,t,o,end); },50);
	} 
	return true;	
}

function fade_out(el,t,o) {
	if(typeof(el)!='object') {
		el=document.getElementById(el);
		if(!el) return false;
	}
	if(typeof(o)=='undefined') {
		if(el.style.opacity>0) o=el.style.opacity;
		else o=1;
	}
	if(o>0) {
		if(!t) t=1000;
		o-=1/(t/50);
		set_opac(el,o);
		setTimeout(function() { fade_out(el,t,o); },50);
	} else el.style.display='none';
	return true;
}

function set_opac(el,o) {
	el.style.opacity = o;
	el.style.MozOpacity = o;
	el.style.filter = 'alpha(opacity=' + (o*100) + ')';	
}
