var crossFade = function(from, to, container) {

    var fromDiv = YAHOO.util.Dom.get(from);
    var toDiv = YAHOO.util.Dom.get(to);
    YAHOO.util.Dom.setStyle(toDiv, 'display', 'block');
    var toRegion = YAHOO.util.Dom.getRegion(toDiv);
    var toHeight = toRegion.bottom - toRegion.top;        
    
    var fromRegion = YAHOO.util.Dom.getRegion(fromDiv);
    var fromWidth = fromRegion.right - fromRegion.left; 
    
    YAHOO.util.Dom.setStyle(toDiv, 'width', '' + fromWidth + 'px'); 
    
    if (container) {
        var resizeDiv = new YAHOO.util.Anim(container, {height: { to: toHeight}});
        resizeDiv.animate();
    }

    var fadeInDiv = new YAHOO.util.Anim(toDiv, { opacity: { from: 0, to: 1 }});
    var fadeOutDiv = new YAHOO.util.Anim(fromDiv, { opacity: { from: 1, to: 0 }});
    fadeInDiv.animate();
    fadeOutDiv.animate();
    fadeOutDiv.onComplete.subscribe(
    	function() { 
    		YAHOO.util.Dom.setStyle(fromDiv, 'display', 'none');
    	});
}
