Temporizador de contagem regressiva de Javascript que para quando a janela não está em foco

Ok, estou tendo problemas para resolver isso, sou desenvolvedor web php / c #, e não tenho experiência ou conhecimento em Javascript, tenho que fazer exatamente isso que precisa de Javascript:

Quando uma determinada página é carregada, um contador é iniciado. O cliente deve permanecer nessa página por 20 segundos. depois, eu quero executar o código php.

Portanto, há duas questões a meu respeito: primeiro, como faço para parar o contador, se o cliente sair da página (o que significa que a página não está em foco).

2) Como posso executar o php em javascript? , ou ligue para uma função PHP a partir do Javascript.

O código que tenho até agora é 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>

e também quero que o temporizador comece a marcar quando o cliente voltar na página

Muito obrigado pela sua ajuda com antecedência

questionAnswers(2)

yourAnswerToTheQuestion