Cuando me refería a poner la función timer de ámbito global, no me refería a englobar todo el código dentro de ella.
Este es el código que intentaba explicarte:
<script src="/mootools-core-1.4.5-full-compat-yc.js"></script>
<script>
var seg = 1
function timer()
{
$('temp_copiado').set('text', seg)
seg++
}
window.addEvent('domready', function()
{
$('botonCopy').addEvent(
'click',
function()
{
$('temp_copiado').set('text', $('temporizador').get('text'))
}
);
new Request({
'url' : 'script_hora.php',
onSuccess: function(response)
{
$('temporizador').set('text', response)
}
})
setTimeout('timer', 1000)
})
</script>
El evento domready se ejecuta cuando todos los elementos la jerarquía de elementos DOM (Document Object Model) son cargados. Posteriormente, añades un evento click, al "botonCopy" (yo lo cambiaría a buttonCopy por consistencia de nombres en ingles), que será ejecutado sólo cuando se haga click. Después se hace una llamada Ajax con Request al script php, que si es exitosa, establecerá el valor recibido en el elemento temporizador.
Una vez se haya ejecutado todo, pasará a llamarse la función timer, a intervalos de 1000 ms (1 seg). La función timer, debe tener ámbito global al domready, por lo que se ejecuta estableciendo el valor de la variable seg e incrementándola.