Subversion Repositories Sites.obs-saisons.fr

Rev

Blame | Last modification | View Log | RSS feed

/*
 * jQuery UI Progressbar 1.8.5
 *
 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Progressbar
 *
 * Depends:
 *   jquery.ui.core.js
 *   jquery.ui.widget.js
 */
(function( $, undefined ) {

$.widget( "ui.progressbar", {
        options: {
                value: 0
        },

        min: 0,
        max: 100,

        _create: function() {
                this.element
                        .addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
                        .attr({
                                role: "progressbar",
                                "aria-valuemin": this.min,
                                "aria-valuemax": this.max,
                                "aria-valuenow": this._value()
                        });

                this.valueDiv = $( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" )
                        .appendTo( this.element );

                this._refreshValue();
        },

        destroy: function() {
                this.element
                        .removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
                        .removeAttr( "role" )
                        .removeAttr( "aria-valuemin" )
                        .removeAttr( "aria-valuemax" )
                        .removeAttr( "aria-valuenow" );

                this.valueDiv.remove();

                $.Widget.prototype.destroy.apply( this, arguments );
        },

        value: function( newValue ) {
                if ( newValue === undefined ) {
                        return this._value();
                }

                this._setOption( "value", newValue );
                return this;
        },

        _setOption: function( key, value ) {
                if ( key === "value" ) {
                        this.options.value = value;
                        this._refreshValue();
                        this._trigger( "change" );
                }

                $.Widget.prototype._setOption.apply( this, arguments );
        },

        _value: function() {
                var val = this.options.value;
                // normalize invalid value
                if ( typeof val !== "number" ) {
                        val = 0;
                }
                return Math.min( this.max, Math.max( this.min, val ) );
        },

        _refreshValue: function() {
                var value = this.value();
                this.valueDiv
                        .toggleClass( "ui-corner-right", value === this.max )
                        .width( value + "%" );
                this.element.attr( "aria-valuenow", value );
        }
});

$.extend( $.ui.progressbar, {
        version: "1.8.5"
});

})( jQuery );