integration/lib/jquery-ui/ui/jquery.ui.slider.js
author Anthony Ly <anthonyly.com@gmail.com>
Tue, 14 May 2013 18:19:04 +0200
changeset 2 78f71aa0a477
parent 1 integration/back-office/lib/jquery-ui/ui/jquery.ui.slider.js@b95aebb070b5
permissions -rw-r--r--
first commit back office front metadatacomposer
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     1
/*!
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     2
 * jQuery UI Slider 1.10.3
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     3
 * http://jqueryui.com
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     4
 *
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     5
 * Copyright 2013 jQuery Foundation and other contributors
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     6
 * Released under the MIT license.
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     7
 * http://jquery.org/license
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     8
 *
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     9
 * http://api.jqueryui.com/slider/
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    10
 *
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    11
 * Depends:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    12
 *	jquery.ui.core.js
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    13
 *	jquery.ui.mouse.js
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    14
 *	jquery.ui.widget.js
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    15
 */
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    16
(function( $, undefined ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    17
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    18
// number of pages in a slider
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    19
// (how many times can you page up/down to go through the whole range)
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    20
var numPages = 5;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    21
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    22
$.widget( "ui.slider", $.ui.mouse, {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    23
	version: "1.10.3",
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    24
	widgetEventPrefix: "slide",
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    25
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    26
	options: {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    27
		animate: false,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    28
		distance: 0,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    29
		max: 100,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    30
		min: 0,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    31
		orientation: "horizontal",
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    32
		range: false,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    33
		step: 1,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    34
		value: 0,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    35
		values: null,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    36
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    37
		// callbacks
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    38
		change: null,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    39
		slide: null,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    40
		start: null,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    41
		stop: null
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    42
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    43
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    44
	_create: function() {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    45
		this._keySliding = false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    46
		this._mouseSliding = false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    47
		this._animateOff = true;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    48
		this._handleIndex = null;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    49
		this._detectOrientation();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    50
		this._mouseInit();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    51
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    52
		this.element
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    53
			.addClass( "ui-slider" +
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    54
				" ui-slider-" + this.orientation +
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    55
				" ui-widget" +
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    56
				" ui-widget-content" +
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    57
				" ui-corner-all");
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    58
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    59
		this._refresh();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    60
		this._setOption( "disabled", this.options.disabled );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    61
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    62
		this._animateOff = false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    63
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    64
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    65
	_refresh: function() {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    66
		this._createRange();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    67
		this._createHandles();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    68
		this._setupEvents();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    69
		this._refreshValue();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    70
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    71
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    72
	_createHandles: function() {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    73
		var i, handleCount,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    74
			options = this.options,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    75
			existingHandles = this.element.find( ".ui-slider-handle" ).addClass( "ui-state-default ui-corner-all" ),
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    76
			handle = "<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    77
			handles = [];
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    78
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    79
		handleCount = ( options.values && options.values.length ) || 1;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    80
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    81
		if ( existingHandles.length > handleCount ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    82
			existingHandles.slice( handleCount ).remove();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    83
			existingHandles = existingHandles.slice( 0, handleCount );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    84
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    85
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    86
		for ( i = existingHandles.length; i < handleCount; i++ ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    87
			handles.push( handle );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    88
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    89
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    90
		this.handles = existingHandles.add( $( handles.join( "" ) ).appendTo( this.element ) );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    91
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    92
		this.handle = this.handles.eq( 0 );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    93
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    94
		this.handles.each(function( i ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    95
			$( this ).data( "ui-slider-handle-index", i );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    96
		});
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    97
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    98
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    99
	_createRange: function() {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   100
		var options = this.options,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   101
			classes = "";
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   102
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   103
		if ( options.range ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   104
			if ( options.range === true ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   105
				if ( !options.values ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   106
					options.values = [ this._valueMin(), this._valueMin() ];
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   107
				} else if ( options.values.length && options.values.length !== 2 ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   108
					options.values = [ options.values[0], options.values[0] ];
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   109
				} else if ( $.isArray( options.values ) ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   110
					options.values = options.values.slice(0);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   111
				}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   112
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   113
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   114
			if ( !this.range || !this.range.length ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   115
				this.range = $( "<div></div>" )
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   116
					.appendTo( this.element );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   117
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   118
				classes = "ui-slider-range" +
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   119
				// note: this isn't the most fittingly semantic framework class for this element,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   120
				// but worked best visually with a variety of themes
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   121
				" ui-widget-header ui-corner-all";
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   122
			} else {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   123
				this.range.removeClass( "ui-slider-range-min ui-slider-range-max" )
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   124
					// Handle range switching from true to min/max
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   125
					.css({
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   126
						"left": "",
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   127
						"bottom": ""
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   128
					});
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   129
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   130
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   131
			this.range.addClass( classes +
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   132
				( ( options.range === "min" || options.range === "max" ) ? " ui-slider-range-" + options.range : "" ) );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   133
		} else {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   134
			this.range = $([]);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   135
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   136
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   137
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   138
	_setupEvents: function() {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   139
		var elements = this.handles.add( this.range ).filter( "a" );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   140
		this._off( elements );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   141
		this._on( elements, this._handleEvents );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   142
		this._hoverable( elements );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   143
		this._focusable( elements );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   144
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   145
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   146
	_destroy: function() {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   147
		this.handles.remove();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   148
		this.range.remove();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   149
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   150
		this.element
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   151
			.removeClass( "ui-slider" +
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   152
				" ui-slider-horizontal" +
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   153
				" ui-slider-vertical" +
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   154
				" ui-widget" +
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   155
				" ui-widget-content" +
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   156
				" ui-corner-all" );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   157
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   158
		this._mouseDestroy();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   159
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   160
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   161
	_mouseCapture: function( event ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   162
		var position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   163
			that = this,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   164
			o = this.options;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   165
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   166
		if ( o.disabled ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   167
			return false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   168
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   169
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   170
		this.elementSize = {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   171
			width: this.element.outerWidth(),
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   172
			height: this.element.outerHeight()
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   173
		};
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   174
		this.elementOffset = this.element.offset();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   175
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   176
		position = { x: event.pageX, y: event.pageY };
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   177
		normValue = this._normValueFromMouse( position );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   178
		distance = this._valueMax() - this._valueMin() + 1;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   179
		this.handles.each(function( i ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   180
			var thisDistance = Math.abs( normValue - that.values(i) );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   181
			if (( distance > thisDistance ) ||
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   182
				( distance === thisDistance &&
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   183
					(i === that._lastChangedValue || that.values(i) === o.min ))) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   184
				distance = thisDistance;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   185
				closestHandle = $( this );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   186
				index = i;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   187
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   188
		});
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   189
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   190
		allowed = this._start( event, index );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   191
		if ( allowed === false ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   192
			return false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   193
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   194
		this._mouseSliding = true;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   195
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   196
		this._handleIndex = index;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   197
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   198
		closestHandle
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   199
			.addClass( "ui-state-active" )
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   200
			.focus();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   201
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   202
		offset = closestHandle.offset();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   203
		mouseOverHandle = !$( event.target ).parents().addBack().is( ".ui-slider-handle" );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   204
		this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   205
			left: event.pageX - offset.left - ( closestHandle.width() / 2 ),
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   206
			top: event.pageY - offset.top -
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   207
				( closestHandle.height() / 2 ) -
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   208
				( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) -
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   209
				( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) +
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   210
				( parseInt( closestHandle.css("marginTop"), 10 ) || 0)
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   211
		};
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   212
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   213
		if ( !this.handles.hasClass( "ui-state-hover" ) ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   214
			this._slide( event, index, normValue );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   215
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   216
		this._animateOff = true;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   217
		return true;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   218
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   219
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   220
	_mouseStart: function() {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   221
		return true;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   222
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   223
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   224
	_mouseDrag: function( event ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   225
		var position = { x: event.pageX, y: event.pageY },
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   226
			normValue = this._normValueFromMouse( position );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   227
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   228
		this._slide( event, this._handleIndex, normValue );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   229
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   230
		return false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   231
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   232
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   233
	_mouseStop: function( event ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   234
		this.handles.removeClass( "ui-state-active" );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   235
		this._mouseSliding = false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   236
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   237
		this._stop( event, this._handleIndex );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   238
		this._change( event, this._handleIndex );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   239
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   240
		this._handleIndex = null;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   241
		this._clickOffset = null;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   242
		this._animateOff = false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   243
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   244
		return false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   245
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   246
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   247
	_detectOrientation: function() {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   248
		this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal";
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   249
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   250
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   251
	_normValueFromMouse: function( position ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   252
		var pixelTotal,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   253
			pixelMouse,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   254
			percentMouse,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   255
			valueTotal,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   256
			valueMouse;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   257
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   258
		if ( this.orientation === "horizontal" ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   259
			pixelTotal = this.elementSize.width;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   260
			pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   261
		} else {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   262
			pixelTotal = this.elementSize.height;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   263
			pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   264
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   265
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   266
		percentMouse = ( pixelMouse / pixelTotal );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   267
		if ( percentMouse > 1 ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   268
			percentMouse = 1;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   269
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   270
		if ( percentMouse < 0 ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   271
			percentMouse = 0;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   272
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   273
		if ( this.orientation === "vertical" ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   274
			percentMouse = 1 - percentMouse;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   275
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   276
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   277
		valueTotal = this._valueMax() - this._valueMin();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   278
		valueMouse = this._valueMin() + percentMouse * valueTotal;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   279
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   280
		return this._trimAlignValue( valueMouse );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   281
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   282
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   283
	_start: function( event, index ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   284
		var uiHash = {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   285
			handle: this.handles[ index ],
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   286
			value: this.value()
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   287
		};
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   288
		if ( this.options.values && this.options.values.length ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   289
			uiHash.value = this.values( index );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   290
			uiHash.values = this.values();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   291
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   292
		return this._trigger( "start", event, uiHash );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   293
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   294
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   295
	_slide: function( event, index, newVal ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   296
		var otherVal,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   297
			newValues,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   298
			allowed;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   299
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   300
		if ( this.options.values && this.options.values.length ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   301
			otherVal = this.values( index ? 0 : 1 );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   302
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   303
			if ( ( this.options.values.length === 2 && this.options.range === true ) &&
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   304
					( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) )
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   305
				) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   306
				newVal = otherVal;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   307
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   308
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   309
			if ( newVal !== this.values( index ) ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   310
				newValues = this.values();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   311
				newValues[ index ] = newVal;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   312
				// A slide can be canceled by returning false from the slide callback
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   313
				allowed = this._trigger( "slide", event, {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   314
					handle: this.handles[ index ],
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   315
					value: newVal,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   316
					values: newValues
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   317
				} );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   318
				otherVal = this.values( index ? 0 : 1 );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   319
				if ( allowed !== false ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   320
					this.values( index, newVal, true );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   321
				}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   322
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   323
		} else {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   324
			if ( newVal !== this.value() ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   325
				// A slide can be canceled by returning false from the slide callback
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   326
				allowed = this._trigger( "slide", event, {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   327
					handle: this.handles[ index ],
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   328
					value: newVal
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   329
				} );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   330
				if ( allowed !== false ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   331
					this.value( newVal );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   332
				}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   333
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   334
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   335
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   336
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   337
	_stop: function( event, index ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   338
		var uiHash = {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   339
			handle: this.handles[ index ],
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   340
			value: this.value()
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   341
		};
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   342
		if ( this.options.values && this.options.values.length ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   343
			uiHash.value = this.values( index );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   344
			uiHash.values = this.values();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   345
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   346
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   347
		this._trigger( "stop", event, uiHash );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   348
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   349
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   350
	_change: function( event, index ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   351
		if ( !this._keySliding && !this._mouseSliding ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   352
			var uiHash = {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   353
				handle: this.handles[ index ],
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   354
				value: this.value()
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   355
			};
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   356
			if ( this.options.values && this.options.values.length ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   357
				uiHash.value = this.values( index );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   358
				uiHash.values = this.values();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   359
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   360
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   361
			//store the last changed value index for reference when handles overlap
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   362
			this._lastChangedValue = index;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   363
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   364
			this._trigger( "change", event, uiHash );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   365
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   366
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   367
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   368
	value: function( newValue ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   369
		if ( arguments.length ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   370
			this.options.value = this._trimAlignValue( newValue );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   371
			this._refreshValue();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   372
			this._change( null, 0 );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   373
			return;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   374
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   375
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   376
		return this._value();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   377
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   378
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   379
	values: function( index, newValue ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   380
		var vals,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   381
			newValues,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   382
			i;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   383
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   384
		if ( arguments.length > 1 ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   385
			this.options.values[ index ] = this._trimAlignValue( newValue );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   386
			this._refreshValue();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   387
			this._change( null, index );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   388
			return;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   389
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   390
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   391
		if ( arguments.length ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   392
			if ( $.isArray( arguments[ 0 ] ) ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   393
				vals = this.options.values;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   394
				newValues = arguments[ 0 ];
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   395
				for ( i = 0; i < vals.length; i += 1 ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   396
					vals[ i ] = this._trimAlignValue( newValues[ i ] );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   397
					this._change( null, i );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   398
				}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   399
				this._refreshValue();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   400
			} else {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   401
				if ( this.options.values && this.options.values.length ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   402
					return this._values( index );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   403
				} else {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   404
					return this.value();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   405
				}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   406
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   407
		} else {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   408
			return this._values();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   409
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   410
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   411
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   412
	_setOption: function( key, value ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   413
		var i,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   414
			valsLength = 0;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   415
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   416
		if ( key === "range" && this.options.range === true ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   417
			if ( value === "min" ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   418
				this.options.value = this._values( 0 );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   419
				this.options.values = null;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   420
			} else if ( value === "max" ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   421
				this.options.value = this._values( this.options.values.length-1 );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   422
				this.options.values = null;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   423
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   424
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   425
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   426
		if ( $.isArray( this.options.values ) ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   427
			valsLength = this.options.values.length;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   428
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   429
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   430
		$.Widget.prototype._setOption.apply( this, arguments );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   431
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   432
		switch ( key ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   433
			case "orientation":
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   434
				this._detectOrientation();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   435
				this.element
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   436
					.removeClass( "ui-slider-horizontal ui-slider-vertical" )
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   437
					.addClass( "ui-slider-" + this.orientation );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   438
				this._refreshValue();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   439
				break;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   440
			case "value":
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   441
				this._animateOff = true;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   442
				this._refreshValue();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   443
				this._change( null, 0 );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   444
				this._animateOff = false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   445
				break;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   446
			case "values":
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   447
				this._animateOff = true;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   448
				this._refreshValue();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   449
				for ( i = 0; i < valsLength; i += 1 ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   450
					this._change( null, i );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   451
				}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   452
				this._animateOff = false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   453
				break;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   454
			case "min":
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   455
			case "max":
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   456
				this._animateOff = true;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   457
				this._refreshValue();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   458
				this._animateOff = false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   459
				break;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   460
			case "range":
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   461
				this._animateOff = true;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   462
				this._refresh();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   463
				this._animateOff = false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   464
				break;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   465
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   466
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   467
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   468
	//internal value getter
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   469
	// _value() returns value trimmed by min and max, aligned by step
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   470
	_value: function() {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   471
		var val = this.options.value;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   472
		val = this._trimAlignValue( val );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   473
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   474
		return val;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   475
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   476
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   477
	//internal values getter
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   478
	// _values() returns array of values trimmed by min and max, aligned by step
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   479
	// _values( index ) returns single value trimmed by min and max, aligned by step
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   480
	_values: function( index ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   481
		var val,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   482
			vals,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   483
			i;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   484
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   485
		if ( arguments.length ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   486
			val = this.options.values[ index ];
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   487
			val = this._trimAlignValue( val );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   488
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   489
			return val;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   490
		} else if ( this.options.values && this.options.values.length ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   491
			// .slice() creates a copy of the array
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   492
			// this copy gets trimmed by min and max and then returned
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   493
			vals = this.options.values.slice();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   494
			for ( i = 0; i < vals.length; i+= 1) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   495
				vals[ i ] = this._trimAlignValue( vals[ i ] );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   496
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   497
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   498
			return vals;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   499
		} else {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   500
			return [];
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   501
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   502
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   503
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   504
	// returns the step-aligned value that val is closest to, between (inclusive) min and max
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   505
	_trimAlignValue: function( val ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   506
		if ( val <= this._valueMin() ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   507
			return this._valueMin();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   508
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   509
		if ( val >= this._valueMax() ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   510
			return this._valueMax();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   511
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   512
		var step = ( this.options.step > 0 ) ? this.options.step : 1,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   513
			valModStep = (val - this._valueMin()) % step,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   514
			alignValue = val - valModStep;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   515
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   516
		if ( Math.abs(valModStep) * 2 >= step ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   517
			alignValue += ( valModStep > 0 ) ? step : ( -step );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   518
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   519
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   520
		// Since JavaScript has problems with large floats, round
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   521
		// the final value to 5 digits after the decimal point (see #4124)
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   522
		return parseFloat( alignValue.toFixed(5) );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   523
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   524
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   525
	_valueMin: function() {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   526
		return this.options.min;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   527
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   528
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   529
	_valueMax: function() {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   530
		return this.options.max;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   531
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   532
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   533
	_refreshValue: function() {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   534
		var lastValPercent, valPercent, value, valueMin, valueMax,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   535
			oRange = this.options.range,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   536
			o = this.options,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   537
			that = this,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   538
			animate = ( !this._animateOff ) ? o.animate : false,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   539
			_set = {};
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   540
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   541
		if ( this.options.values && this.options.values.length ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   542
			this.handles.each(function( i ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   543
				valPercent = ( that.values(i) - that._valueMin() ) / ( that._valueMax() - that._valueMin() ) * 100;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   544
				_set[ that.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   545
				$( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   546
				if ( that.options.range === true ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   547
					if ( that.orientation === "horizontal" ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   548
						if ( i === 0 ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   549
							that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   550
						}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   551
						if ( i === 1 ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   552
							that.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   553
						}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   554
					} else {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   555
						if ( i === 0 ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   556
							that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   557
						}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   558
						if ( i === 1 ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   559
							that.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   560
						}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   561
					}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   562
				}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   563
				lastValPercent = valPercent;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   564
			});
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   565
		} else {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   566
			value = this.value();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   567
			valueMin = this._valueMin();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   568
			valueMax = this._valueMax();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   569
			valPercent = ( valueMax !== valueMin ) ?
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   570
					( value - valueMin ) / ( valueMax - valueMin ) * 100 :
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   571
					0;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   572
			_set[ this.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   573
			this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   574
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   575
			if ( oRange === "min" && this.orientation === "horizontal" ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   576
				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   577
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   578
			if ( oRange === "max" && this.orientation === "horizontal" ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   579
				this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   580
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   581
			if ( oRange === "min" && this.orientation === "vertical" ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   582
				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   583
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   584
			if ( oRange === "max" && this.orientation === "vertical" ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   585
				this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   586
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   587
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   588
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   589
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   590
	_handleEvents: {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   591
		keydown: function( event ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   592
			/*jshint maxcomplexity:25*/
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   593
			var allowed, curVal, newVal, step,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   594
				index = $( event.target ).data( "ui-slider-handle-index" );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   595
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   596
			switch ( event.keyCode ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   597
				case $.ui.keyCode.HOME:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   598
				case $.ui.keyCode.END:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   599
				case $.ui.keyCode.PAGE_UP:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   600
				case $.ui.keyCode.PAGE_DOWN:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   601
				case $.ui.keyCode.UP:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   602
				case $.ui.keyCode.RIGHT:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   603
				case $.ui.keyCode.DOWN:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   604
				case $.ui.keyCode.LEFT:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   605
					event.preventDefault();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   606
					if ( !this._keySliding ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   607
						this._keySliding = true;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   608
						$( event.target ).addClass( "ui-state-active" );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   609
						allowed = this._start( event, index );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   610
						if ( allowed === false ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   611
							return;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   612
						}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   613
					}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   614
					break;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   615
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   616
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   617
			step = this.options.step;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   618
			if ( this.options.values && this.options.values.length ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   619
				curVal = newVal = this.values( index );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   620
			} else {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   621
				curVal = newVal = this.value();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   622
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   623
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   624
			switch ( event.keyCode ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   625
				case $.ui.keyCode.HOME:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   626
					newVal = this._valueMin();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   627
					break;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   628
				case $.ui.keyCode.END:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   629
					newVal = this._valueMax();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   630
					break;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   631
				case $.ui.keyCode.PAGE_UP:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   632
					newVal = this._trimAlignValue( curVal + ( (this._valueMax() - this._valueMin()) / numPages ) );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   633
					break;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   634
				case $.ui.keyCode.PAGE_DOWN:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   635
					newVal = this._trimAlignValue( curVal - ( (this._valueMax() - this._valueMin()) / numPages ) );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   636
					break;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   637
				case $.ui.keyCode.UP:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   638
				case $.ui.keyCode.RIGHT:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   639
					if ( curVal === this._valueMax() ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   640
						return;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   641
					}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   642
					newVal = this._trimAlignValue( curVal + step );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   643
					break;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   644
				case $.ui.keyCode.DOWN:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   645
				case $.ui.keyCode.LEFT:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   646
					if ( curVal === this._valueMin() ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   647
						return;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   648
					}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   649
					newVal = this._trimAlignValue( curVal - step );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   650
					break;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   651
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   652
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   653
			this._slide( event, index, newVal );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   654
		},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   655
		click: function( event ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   656
			event.preventDefault();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   657
		},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   658
		keyup: function( event ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   659
			var index = $( event.target ).data( "ui-slider-handle-index" );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   660
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   661
			if ( this._keySliding ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   662
				this._keySliding = false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   663
				this._stop( event, index );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   664
				this._change( event, index );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   665
				$( event.target ).removeClass( "ui-state-active" );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   666
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   667
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   668
	}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   669
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   670
});
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   671
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   672
}(jQuery));