Sumyjkl , I think the answer to that is on the page you linked..
I'll try to rewrite it in more gamer language.
obj1_finalVelocityX = ((obj1_mass - obj2_mass) / (obj1_mass + obj2_mass)) * obj1_currentVelocityX + ((2 * obj2_mass) / (obj1_mass + obj2_mass)) * obj2_currentVelocityX
obj2_finalVelocityX = ((obj2_mass - obj1_mass) / (obj1_mass + obj2_mass)) * obj2_currentVelocityX + ((2 * obj1_mass) / (obj1_mass + obj2_mass)) * obj1_currentVelocityX
That is just for the X velocities, and you can do the same for Y.
Depending upon how the objects collide(which side) you'd adjust either the X velocities or the Y velocities. So you'd need a way to determine which side is colliding.
One way is to determine how far the object overlaps each other in the x and y axis, and depending upon which depth is shorter, use that axis.
The RIGHT side of obj1, should check with the LEFT side of obj2. abs(obj1.boundingboxright-obj2.boundingboxleft).
The LEFT side of obj1 should check with the Right side of obj2. abs(obj1.boundinboxleft-obj2.boundingboxright).
Similarly for the Top, and Bottom..
Then check which value is smallest, to determine which velocities to adjust.