Croatian, Bosnian, and Serbian are all (basically) the same language (formally known as Serbo-Croatian). I studied it for three years at my university (the class was called BCS for Bosnian, Croatian, Serbian). If you learn any of them, you'll be able to get along just fine in Croatia, Bosnia, Serbia, and Montenegro as well as read texts from those regions. The main difference is that Croatian uses ijekavian (you write mlijeko for milk) and Serbian uses ekavian (you write mleko). Before the break-up of Yugoslavia, these were considered two variants of a single language, but now they are considered separate languages for political reasons. If you have any questions, I can try to help.