Why my BEFORE UPDATE trigger takes values from the NEW record?
Use record type OLD to access the old values as you do NEW to access the new values when updating a record in a table.

Refer: http://www.postgresql.org/docs/9.1/static/plpgsql-trigger.html