Se que para desactivar un boton es algo asi como:
function desactivar(esto) {
esto.botonEjemplo.disabled = true
}
y el boton es: <input type="submit" name="boton" onclick="desactivar(this)">
O algo similar x.x pero para hacer las dos cosas, por por ejemplo que en el boton dice Haz Click AQUI y cuando se le da click se bloquee para que no den mas click y que cambie el texto a YA Diste Click!
(esto es solo un ejemplo, para una mejor explicacion)