Таймер обратного отсчета Javascript, который останавливается, когда окно не в фокусе

Хорошо, у меня проблемы с этим, я веб-разработчик на php / C #, и у меня нет опыта или знаний в Javascript, я должен сделать только одну вещь, которая требует Javascript:

Когда загружается определенная страница, запускается счетчик. Клиент должен оставаться на этой странице в течение 20 секунд. после, я хочу выполнить PHP-код.

Итак, передо мной стоят два вопроса: во-первых, как остановить счетчик, если клиент покидает страницу (то есть страница не в фокусе).

2) Как я могу выполнить php в javascript? Или вызовите функцию php из Javascript.

Код, который у меня пока есть, такой:

<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>

и я также хочу, чтобы таймер начал тикать, когда клиент возвращается на страницу

Большое спасибо за вашу помощь заранее

Ответы на вопрос(2)

Ваш ответ на вопрос