For the oil spots, after you do the kitty litter thing, mix up some hot wash water with dawn dishwashing liquid and use that to mop the floor (with an old mop that you dont' want to use in the house again.)
Dawn will take out a lot of oil.
We always use kitty litter. Don't use the clumping kind, just the regular kitty litter. You can even use the cheaper one from the Dollar Store. Sprinkle it over the stains and grind in with your foot. Let it sit overnight and then sweep up. It absorbs the oil and the odor.
I learned this trick while I was working at a truck stop: If you have some powdered Tide laundry cleaner, that will work fine. Just wet down the area, sprinkle the powder down, scrub spots as necessary, and then rinse. This should also get rid of pet smells. Ammonia is not a good idea as it resembles the smell of animal urine and may actually attract more pets!
You might try going to a janitorial supply or similar place, and getting a quart or gallon of deodorizing enzyme stuff, apply and leave; it should permanently digest odor producing bacteria. But first I'd try white vinegar, full strength over a 6x6 foot area say, leave it to dry, and see how it smells. Certainly less expensive.
I wouldn't use ammonia, because urine is undoubtedly present, which produces ammonia, and you want to neutralize that alkali (vinegar), or digest (enzymes).
Add your voice to the conversation. Click here to answer this question.