Stop beating yourself up. Now.
If you beat yourself up and tell yourself you're 'stupid', then you lose respect for yourself and you HAVE to respect yourself to realise how much you deserve this.
You DESERVE to be slim and healthy, you deserve to feel proud of yourself, and you deserve to have a totally fantastic time on your next holiday, lapping up all the attention and compliments and abusing the shops!
There will be reasons you are eating, and excuses you will make to yourself as you do. You need to be totally honest with yourself and just recognise what they are. Don't start fretting about how you're going to change that just yet, start with stage 1, WHY are you doing it?
When you truly know why, and there will probably be multiple reasons, then pick one of those feelings, the easiest one, and think about it logically. If it doesn't stand up to examination (most don't) then write that down on a post it and stick it somewhere you will see every day.
If, for example, you think every day 'everyone who crash diets puts it all back on', then you will realise that not EVERYBODY does, and teh only thing that will determine whether weight goes on or not is how you behave. You could write on a post it 'I am in control of my future', and stick that somewhere you'll see it everyday, gradually replacing that negative thought with a positive one.