inkinru.SaveButton = function (id)
{
    this.id = id;
}

    inkinru.SaveButton.prototype.create = function (sh, submitText)
    {
        var that = this;

        this.submitText = submitText;
        this.element = document.getElementById(this.id);
        this.element.onclick = function () { inkinru.page.save(that.dataSaver); };
        $(this.element).attr({
            disabled:   'disabled'
        });

        inkinru.page.addChangeListener(this.createChangeListener());

        sh.load(['text'], function (sh) { that.createWithStringsLoaded(sh); });
    }

    inkinru.SaveButton.prototype.createWithStringsLoaded = function (sh)
    {
        var that = this;

        this.element.innerHTML = this.submitText ? this.submitText : sh.get('text');
    }

    inkinru.SaveButton.prototype.markChanged = function ()
    {
        $(this.element).removeAttr('disabled');
    }

    inkinru.SaveButton.prototype.markUnchanged = function ()
    {
        $(this.element).attr('disabled', 'disabled');
    }

    inkinru.SaveButton.prototype.markSaved = function ()
    {
        $(this.element).attr('disabled', 'disabled');
    }

    inkinru.SaveButton.prototype.createChangeListener = function ()
    {
        return {
//            hasDataSavers:  false,
            control:        this,

//            setHasDataSavers: function ()
//            {
//                if (!this.hasDataSavers)
//                {
//                    this.module.addSaveButton();
//                    this.hasDataSavers = true;
//                }
//            },

            setHasDataSavers: function () {},

            notifyChanged: function ()
            {
                this.control.markChanged();
            },

            notifyUnchanged: function ()
            {
                this.control.markUnchanged();
            },

            notifySaved: function ()
            {
                this.control.markSaved();
            }
        };
    }

