Temporizador de cuenta regresiva de Javascript que se detiene cuando la ventana no está enfocada

Ok, estoy teniendo problemas para resolver esto, soy un desarrollador web php / C #, y no tengo experiencia ni conocimientos de Javascript, solo tengo que hacer una cosa que necesita Javascript:

Cuando se carga una determinada página, se inicia un contador. El cliente debe permanecer en esta página durante 20 segundos. después, quiero ejecutar el código php.

Entonces, hay 2 problemas que me conciernen, primero: cómo detengo el contador, si el cliente abandona la página (lo que significa que la página no está enfocada).

2) ¿Cómo puedo ejecutar php en javascript? , o llamar a una función php desde Javascript.

El código que tengo hasta ahora es este:

<html>
<head>
</head>

<body>
<div id='timer'>
<script type="text/javascript">

COUNTER_START = 20

function tick () {
    if (document.getElementById ('counter').firstChild.data > 0) {
        document.getElementById ('counter').firstChild.data = document.getElementById ('counter').firstChild.data - 1
        setTimeout ('tick()', 1000)
    } else {
        document.getElementById ('counter').firstChild.data = 'done'
    }
}

if (document.getElementById) onload = function () {
    var t = document.createTextNode (COUNTER_START)
    var p = document.createElement ('P')
    p.appendChild (t)
    p.setAttribute ('id', 'counter')

    var body = document.getElementsByTagName ('BODY')[0]
    var firstChild = body.getElementsByTagName ('*')[0]

    body.insertBefore (p, firstChild)
    tick()
}

</script>
</div>
</body>
</html>

y también quiero que el temporizador comience a marcar cuando el cliente regrese a la página

Muchas gracias por su ayuda por adelantado.

Respuestas a la pregunta(2)

Su respuesta a la pregunta