function play_opacity(id, opacity_start, opacity_end, millisec, end_callback) {
	var speed = Math.round(millisec / 100);
	var timer = 0;

    id = $(id).id;
	if(opacity_start > opacity_end) {
		for(i = opacity_start; i >= opacity_end; i--) {
			setTimeout("play_opacity_entry('" + id + "'," + i + "," + opacity_end + ",'" + end_callback + "')",(timer * speed));
			timer++;
		}   
	} 
    else if(opacity_start < opacity_end) {
		for(i = opacity_start; i <= opacity_end; i++) {
			setTimeout("play_opacity_entry('" + id + "'," + i + "," + opacity_end + ",'" + end_callback + "')",(timer * speed));
			timer++;
		}
        
	}
}

function play_opacity_entry(id, opacity, barrier, end_callback) {
    set_opacity(id, opacity);
    if(opacity==barrier) {
        if(end_callback && end_callback!='undefined')
            eval(end_callback+'();');
    }
}

function effect_fade(id, millisec, end_callback) {
    play_opacity(id, 100, 0, millisec, end_callback);        
}

function effect_appear(id, millisec, end_callback) {
    play_opacity(id, 0, 100, millisec, end_callback);        
}

function set_opacity(id, opacity) {
    object = $(id);

	object.style.opacity = (opacity / 100);
	object.style.MozOpacity = (opacity / 100);
	object.style.KhtmlOpacity = (opacity / 100);
	object.style.filter = "alpha(opacity=" + opacity + ")";
}

function current_opacity(id, opacity_end, millisec) {
	var curr_opacity = 100;
    object = $(id);
    
	if(object.style.opacity < 100) {
		curr_opacity = object.style.opacity * 100;
	}
    
	set_opacity(id, curr_opacity, opacity_end, millisec)
}

