Friction should be a constant rather than a proportion of velocity.
Yes but you also need to ensure that by applying it you do not reverse the sign of the velocity. I guess you could simulate static friction in your example by setting frx and fry to xvel, yvel if the speed < 0.1.
Stevie