alert() replaced with extensible replacement