﻿(function($) {
    $.fn.imageButton = function(options) {
        settings = jQuery.extend({
            className: 'mid',
            rootClassName: 'button mid'
        }, options);

        return this.each(function() {
            var button = $(this);

            appendAnchorTag(button);

            var cssClass = settings.className;

            var enabled = button.attr("enabled");
            if (enabled == "false") {
                button.addClass(settings.rootClassName + " " + cssClass + "Disabled");
                button.unbind("click");

                var anchor = button.find("a").remove();
                var anchorText = anchor.text();
                anchor.remove();

                button.text(anchorText);
            }
            else {
                button.addClass(settings.rootClassName)
            .hover(
                  function() {
                      button.toggleClass(cssClass + "Hover");
                  },
                  function() {
                      button.toggleClass(cssClass + "Hover");
                  }
                )
            .mousedown(function() { button.toggleClass(cssClass + "Click"); })
            .mouseup(function() { button.removeClass(cssClass + "Click"); })
            .mouseout(function() { button.removeClass(cssClass + "Click"); })
            .change(function(evt, data) {
                if (data == 'disabled') {
                    button.addClass(cssClass + "Disabled")
                    .mousedown(function() { })
                    .mouseup(function() { })
                    .mouseout(function() { });
                }
                else if (data == 'enabled') {
                    button.removeClass(cssClass + "Disabled")
                    .mousedown(function() { button.toggleClass(cssClass + "Click"); })
                    .mouseup(function() { button.removeClass(cssClass + "Click"); })
                    .mouseout(function() { button.removeClass(cssClass + "Click"); })
                }
            });
            }
        })
    }
})(jQuery);

function appendAnchorTag(button) {
    var anchor = button.find("a");

    if (anchor.length == 0) {
        var buttonText = button[0].innerHTML;

        button.text('');
        var newAnchor = $("<a href='#'></a>").html(buttonText);

        button.append(newAnchor);
    }
}


