At least 18 dead in battle over disputed Somali port city