offset faces of a solid

Hello,

what I am trying to do is offset the gray surfaces towards the inside of the part.  I want to cut everything x distance away from the gray surfaces but only on the direction normal to the surface.  I have tried a few aproaches but I cannot seem to sucessfully do what I want to do.  I am looking for a 1 or 2 step aproach for the whole thing or for each surface that will work everytime because this will be done on many objects by an API program.

Note also the highlighted surface on the second picture is causing a lot of problems.

Thanks,

Robert Potier

SolidworksParts And Features