﻿(function($) {

    $.widget("ui.checkboxEntry", {
        _init: function() {
            var o = this.options;
            var element = $(this.element);
            var widget = this;
            var title = element.attr("title");

            element.inputEntry({
                rightIconDisplayed: false,
                leftIconDisplayed: true,
                leftIconClickable: true,
                leftIconType: o.isChecked ? "check" : "close",
                editable: false,

                leftIconClick: function() {
                    var isChecked = widget.isChecked();
                    widget.isChecked(!isChecked);
                    widget._trigger('checkChanged', null, !isChecked); ;
                }
            });

            var input = $("input", element);
            input.parent().text(title);
            input.hide();
        },

        destroy: function() {
        },

        isChecked: function(aNewIsChecked) {
            if (undefined != aNewIsChecked) {
                $(this.element).inputEntry("option", "leftIconType", aNewIsChecked ? "check" : "close");
            }

            return $(this.element).inputEntry("option", "leftIconType") == "check";
        }
    });

    $.extend($.ui.checkboxEntry, {
        version: "0.1.0",
        getter: "isChecked",
        defaults: {
            isChecked: false
    }
});

})(jQuery);

