You could store all the item names in a string as Item1;Item2;Item3 then replace all the stuff to do with the item object using a text object. And then for setting the animation name just do
Text: Set Text to tokenat(ItemNames, ItemID - 1, ";")
That will get the item name from the string at ItemID. the - 1 is there because 0 in your item index would be nothing whereas the itemlist's 0 would be an item name.
I'm not completely sure if the above makes sense, I'm very tired right now.