Madan,
I'm a little late responding to this one, but I'd like to point out that in your example: Player 1 pre-flop is different from Player 1 post flop. You did not specify the limit being played although I know it was not a limit game. I only mention this because there is a difference, as Dave stated on his reply. I will also "assume" that the all-in player who raised 300 made the total bet 800, am I correct?
To simplify the correct answer, I would say that any player that is already in for all bets on the current betting street can only call or fold, he can not raise. Now, if you want to add a little to your situation, let's say post flop, Player 1 checks and then Player 2 opens the betting with 500, and Player 3 calls and Player 4 raises to 800 (300 more). Because Player 1 checked, he has all options open to him, he may call 800, fold, or raise. The min raise would be to 1300. 500 original bet, 300 more all-in and anther minimum 500 equaling the largest bet on the current round. I hope this is clear. If you have any questions, or don't understand my explanation let me know, it's that important.