Give same name to the new windows and it will open in the same window all the time.
Right now, you must be using different name in all the cases for the new window. This forces to open in the different one and not in the existing one only.
For ex: 'myWindowName' is the name that needs to be same all the time.
var reportWindow = window.open('CostByProject.aspx', 'myWindowName','height=650,width=900,resizable=1,status=yes,scrollbars=1,toolbar=no,menubar=no,location=no');
Read the details here: MSDN: Window.Open()
P.S.: "_blank" will always trigger a new window. Replace it with a fixed name and you will be set.