Fouling mechanisms in nanofiltration membranes used for surface water treatment