﻿(function($) {

    $.widget("ui.iconButton", {

        _init: function() {
            var o = this.options;            
            this.element.addClass("ui-widget ui-state-default ui-corner-all ui-icon-button");
            this.span = $("<span></span>");
            this.span.prependTo(this.element)

            this._setData();
        },

        _setData: function(key, value) {
            $.widget.prototype._setData.apply(this, arguments);
            var o = this.options;
            var widget = this;

            if (o.iconDisplayed)
                this.span.addClass("ui-icon ui-icon-button-icon ui-icon-" + o.iconType);
            else
                this.span.removeClass("ui-icon ui-icon-button-icon ui-icon-" + o.iconType);                

            if (o.title)
                this.element.attr("title", o.title);

            if (!o.disabled) {
                this.element.removeClass("ui-state-disabled")
                .hover(function() { $(this).addClass("ui-state-hover"); }, function() { $(this).removeClass("ui-state-hover"); })
                .click(function() { widget._trigger("onClick", null, {}); });
            }
            else
                this.element.addClass("ui-state-disabled").unbind();
        }

    });

    $.extend($.ui.iconButton, {
        version: "0.1.0",
        defaults: {
            iconDisplayed: true,
            iconType: "help"
        }
    });

})(jQuery);
