1. Oops!  Sorry, the drag force should not be a constant.
It will keep in the same direction if you changed it to

vx-=b*vx;
vy-=b*vy;

The b will determine how fast the particle will be stopped.
You can try it with 0.1 and adjusted as you need. May be make it as an adjustable parameter.

2. Because velocity = Math.sqrt(vx * vx + vy * vy);
So velocity will always be positive or zero.