Question: Given the code below:

```js
function test() {
    document.forms[0].TEST[0].focus();
}
```

```html
<form>
    <input type="button" value="Test" onclick="test()" />
    <input type="radio" name="TEST" value="A">A
    <input type="radio" name="TEST" value="B">B
</form>
```

In IE6, clicking the button doesn't focus the control, unless I've already tabbed through the radio at least once, in which case it works. =/

Any idea how I should be focusing the control? The above works perfectly fine in FF of course.

Edit: I found that the control is being focused, except the highlight box around the radio button is not being rendered. (I can hit space to activate the radio button, and also use arrow keys to change the active button). So the question becomes: how can I force the focus highlighting box to render?

Answer: 
My general rules of thumb are as follows

* If it needs to always run, it's a service.
* If it needs to be run under a particular user account, Network Service, Local System, generally it's a service (or a COM+ application)
* If the user needs some control over it, it's generally a notification area application.
* If it needs to notify the user of something, it's a notification area application

The fun comes when you have the need to run something as a system account, but also interact with it. IIS is a good example of this, it's a service, but the administration is an application - it needs to be running at the startup, it needs access to particular things a user can't normal access (c:\inetpub), but the user needs to be able to start, stop and configure it.
I would design an application as a service if the applcation has a critical purpose and should never (or rarely) be closed. Windows services provide good crash-recovery options, good notifications (see the recovery tab in service property).

Also a good reason to use services is because they can run under any user ( so if you 
deploy them on a server that you remote to, you can safely log out after starting the service without worring that the application will close too).

I also design services in combination with a desktop application that can interact with the service and can be used to monitor or reconfigure the service while running. This way you can have all the benefits of a tray application, in your service.

However, you should not abuse using services and only use them, as I said, for cirtical applications.