Apparently, my friend added another line which I don't know what for, so I simply comment the unnecessary line to make it work.
window.fbAsyncInit = function() {
FB.init({appId: 'config->item("facebook_app_id");?>', status: true, cookie: true, xfbml: true, oauth: true});
//FB.UIServer.setLoadedNode = function (a, b){FB.UIServer._loadedNodes[a.id] = b; }
};
A couple days ago it worked fine though, so I guess Facebook has been updating in the background.