Code:
var Cam_Rotate;
var Cam_Tilt;
var Cam_Dist;


camera.x = player.x + (cos(Cam_Rotate) * cos(Cam_Tilt)) * Cam_Dist;
camera.y = player.y + (sin(Cam_Rotate) * cos(Cam_Tilt)) * Cam_Dist;
camera.z = player.z + sin(Cam_Tilt) * Cam_Dist;
if(mouse_middle)
{
Cam_Rotate -= mouse_force.x / time_step * 2;
Cam_Tilt += mouse_force.y / time_step * 2;
}



That should work for what you need...Cam_Dist is the Camera distance away from the player