if you have a full day where you dont need the car you can do a really good diy job for under $50. I bought some headliner/carpet glue or somethin like that 2yrs ago and took the current material to a fabric shop and got pretty much the exact material and colour for $15 for 6 meters (epic cheap), $20 for the glue (online) and $12 for ultrathin foam (not sure if you need it if the material your using is thicker) Pretty much remove the rooflining board thingy, be careful not to break it when taking it out of the car, clean off the rotted existing foam, spray on the glue(sprays out reasonably thick so one even coating should be enough, lay on new material and use a ruler or something flat to flattened it out so you dont get loose patches and your done. Its a pretty vague description of what i did but rest of the stuff is common sense as your doing it youll know what your doing. Dont do it if you need the car a few hours later or something as it might take longer than you think and taking as much time as possible will get the best result. Owner sold the car a year after i did and it still looked factory new