Sorry, but Project will never make decisions about which resource is "available" and make an assignment. You may assign resources and then use the Resource Leveling function to delay tasks that cause overallocations.
If using Project 2010, you can see immediately when an overallocation is created at the task level.
I hope this helps.
JUlie