What does this code mean?

name = this._name;
	piece = name.substring(1);
	piece = parseInt(piece);
if(eval(this._droptarget) == _parent["placeholder"+piece] )
_parent.finish++;

im confused to the what substring does, parseInt, and eval do

please could you explain thanks