Heavy fighting as Taliban attack western Afghan city