Completed

I did something very simple.

I'm not very good at encapuslating new functionality, I always wonder _what_ should be encapsulated...

Since you said you are testing in Chrome, I didn't check for local storage compatibility.

Local storage can only store strings, I don't know when it will run out of space. Since the example is so simple, I didn't bother. But that would probably be an issue if I was dealing with thousands of photos... I had the idea to generate an MD5 hash for every ID to save space... but I didn't do it. I guess that, ultimately, the local storage can be used as a save state and not as some sort of permanent database; eventually the 'favorite' option of every item should be uploaded to a server, right? And the storage would be cleared so it could be reused.

Anyway, I hope I didn't messed up too much. This was cool.