knockout generic required text field validation

http://stackoverflow.com/questions/6706281/knockoutjs-can-we-create-a-dependentobservable-function-with-a-parameter

HTML

<script src="http://knockoutjs.com/downloads/knockout-2.2.1.js"></script>
<script src="https://rawgithub.com/BorisMoore/jquery-tmpl/master/jquery.tmpl.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout-validation/2.0.3/knockout.validation.min.js"></script>
<input type="text" runat="server" ID="FirstName" data-bind="value: firstName, hasfocus: firstName.focused"/>

JavaScript

var viewModel;

viewModel = function() {
    var self, firstNameFirstTime;
    self = this;
    firstNameFirstTime = true;
    self.firstName = ko.observable().extend({
        required: true,
        notify: 'always'
    });
    
    self.firstName.focused = ko.observable();
    
    self.firstName.focused.subscribe(function (newValue) {
        if (!newValue && !firstNameFirstTime) {
            self.firstName(self.firstName());
        }
        firstNameFirstTime = false;
    });
};

ko.applyBindings(new viewModel());