Generally if the transaction doesn't confirm within 3 days or so, blockchain.info will stop broadcasting the transaction. As long as nobody else re-broadcasts the transaction, blockchain.info will drop the transaction and return the funds to your wallet.
The blockchain.info wallet should calculate the correct fee for you unless you use "custom transaction". If you use "custom transaction" and you don't know what you're doing, you are likely to pay insufficient fees and have this problem.
Yes.
Thank you for the explanation. I used the custom transaction 'cos i needed to send money to 3 wallets and wanted to minimize the fee, now i know it don't work like that (a formula for calculating the fees would be nice tough). I also used to store my money in many different address for inventary purpouse, now i know it's not a good thing for fees issues when i want to transfer money.
There is a section on the bitcoin wiki about the transaction fees, but after reading it I still have no idea how it works. There are no calculators either.